~/PyGeodesy-17.7.9/test/run.py typical test results (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2)

running Pythonista3 ~/PyGeodesy-17.7.9/test/testBases.py

    testing testBases.py 17.06.23 (module pygeodesy.bases 17.06.25)
    test 1 lat, lon: 50.06632°N, 005.71475°W
    test 2 lat, lon: 50.066389°N, 005.714722°W
    test 3 equals: True
    test 4 toStr: 51°28′40″N, 000°00′06″W
    test 5 toStr: 51.4778°N, 000.0016°W
    test 6 precision: 0
    test 7 toStr: 51°28′40″N, 000°00′06″W, +42.00m
    all testBases.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 1.288 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testClasses.py

    testing testClasses.py 17.06.25

    testCartesianAttrs(17.06.25)
    test 1 angleTo() method: ellipsoidalNvector, ellipsoidalVincenty
    test 2 classname() method: ellipsoidalNvector, ellipsoidalVincenty
    test 3 classof() method: ellipsoidalNvector, ellipsoidalVincenty
    test 4 copy() method: ellipsoidalNvector, ellipsoidalVincenty
    test 5 cross() method: ellipsoidalNvector, ellipsoidalVincenty
    test 6 dividedBy() method: ellipsoidalNvector, ellipsoidalVincenty
    test 7 dot() method: ellipsoidalNvector, ellipsoidalVincenty
    test 8 equals() method: ellipsoidalNvector, ellipsoidalVincenty
    test 9 length property: ellipsoidalNvector, ellipsoidalVincenty
    test 10 minus() method: ellipsoidalNvector, ellipsoidalVincenty
    test 11 negate() method: ellipsoidalNvector, ellipsoidalVincenty
    test 12 others() method: ellipsoidalNvector, ellipsoidalVincenty
    test 13 parse() method: ellipsoidalNvector, ellipsoidalVincenty
    test 14 plus() method: ellipsoidalNvector, ellipsoidalVincenty
    test 15 rotate() method: ellipsoidalNvector, ellipsoidalVincenty
    test 16 rotateAround() method: ellipsoidalNvector, ellipsoidalVincenty
    test 17 sum() method: ellipsoidalNvector, ellipsoidalVincenty
    test 18 times() method: ellipsoidalNvector, ellipsoidalVincenty
    test 19 to2ll() method: ellipsoidalNvector, ellipsoidalVincenty
    test 20 to3llh() method: ellipsoidalNvector, ellipsoidalVincenty
    test 21 to3xyz() method: ellipsoidalNvector, ellipsoidalVincenty
    test 22 toLatLon() method: ellipsoidalNvector, ellipsoidalVincenty
    test 23 toNvector() method: ellipsoidalNvector
    test 24 toStr() method: ellipsoidalNvector, ellipsoidalVincenty
    test 25 toStr2() method: ellipsoidalNvector, ellipsoidalVincenty
    test 26 unit() method: ellipsoidalNvector, ellipsoidalVincenty
    test 27 x property: ellipsoidalNvector, ellipsoidalVincenty
    test 28 y property: ellipsoidalNvector, ellipsoidalVincenty
    test 29 z property: ellipsoidalNvector, ellipsoidalVincenty

    testCartesianMro(17.06.25)
    test 30 ellipsoidalNvector: ellipsoidalNvector.Cartesian, ellipsoidalBase.CartesianBase, vector3d.Vector3d, bases.Base
    test 31 ellipsoidalVincenty: ellipsoidalVincenty.Cartesian, ellipsoidalBase.CartesianBase, vector3d.Vector3d, bases.Base

    testLatLonAttrs(17.06.25)
    test 32 alongTrackDistanceTo() method: sphericalNvector, sphericalTrigonometry
    test 33 bearingTo() method: ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 34 bounds() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 35 classname() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 36 classof() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 37 convertDatum() method: ellipsoidalNvector, ellipsoidalVincenty
    test 38 copy() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 39 crossTrackDistanceTo() method: sphericalNvector, sphericalTrigonometry
    test 40 crossingParallels() method: sphericalTrigonometry
    test 41 datum property: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 42 deltaTo() method: ellipsoidalNvector
    test 43 destination() method: ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 44 destination2() method: ellipsoidalVincenty
    test 45 destinationNed() method: ellipsoidalNvector
    test 46 distanceTo() method: ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 47 distanceTo3() method: ellipsoidalVincenty
    test 48 ellipsoid() method: ellipsoidalNvector, ellipsoidalVincenty
    test 49 ellipsoids() method: ellipsoidalNvector, ellipsoidalVincenty
    test 50 epsilon property: ellipsoidalVincenty
    test 51 equals() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 52 finalBearingOn() method: ellipsoidalVincenty
    test 53 finalBearingTo() method: ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 54 greatCircle() method: sphericalNvector, sphericalTrigonometry
    test 55 greatCircleTo() method: sphericalNvector
    test 56 height property: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 57 initialBearingTo() method: ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 58 intermediateChordTo() method: sphericalNvector
    test 59 intermediateTo() method: ellipsoidalNvector, sphericalNvector, sphericalTrigonometry
    test 60 intersection() method: sphericalNvector, sphericalTrigonometry
    test 61 isEllipsoidal property: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 62 isEnclosedBy() method: sphericalNvector, sphericalTrigonometry
    test 63 isSpherical property: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 64 isWithin() method: sphericalNvector
    test 65 iterations property: ellipsoidalVincenty
    test 66 lat property: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 67 lon property: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 68 maxLat() method: sphericalNvector, sphericalTrigonometry
    test 69 midpointTo() method: sphericalNvector, sphericalTrigonometry
    test 70 minLat() method: sphericalNvector, sphericalTrigonometry
    test 71 nearestOn() method: sphericalNvector
    test 72 others() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 73 parse() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 74 points() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 75 rhumbBearingTo() method: sphericalNvector, sphericalTrigonometry
    test 76 rhumbDestination() method: sphericalNvector, sphericalTrigonometry
    test 77 rhumbDistanceTo() method: sphericalNvector, sphericalTrigonometry
    test 78 rhumbMidpointTo() method: sphericalNvector, sphericalTrigonometry
    test 79 to2ab() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 80 to3llh() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 81 to3xyz() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 82 to4xyzh() method: ellipsoidalNvector, sphericalNvector
    test 83 toCartesian() method: ellipsoidalNvector, ellipsoidalVincenty
    test 84 toNvector() method: ellipsoidalNvector, sphericalNvector
    test 85 toOsgr() method: ellipsoidalNvector, ellipsoidalVincenty
    test 86 toStr() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 87 toStr2() method: ellipsoidalNvector, ellipsoidalVincenty, sphericalNvector, sphericalTrigonometry
    test 88 toUtm() method: ellipsoidalNvector, ellipsoidalVincenty
    test 89 toVector3d() method: sphericalTrigonometry
    test 90 triangulate() method: sphericalNvector
    test 91 trilaterate() method: sphericalNvector

    testLatLonMro(17.06.25)
    test 92 ellipsoidalNvector: ellipsoidalNvector.LatLon, nvector.LatLonNvectorBase, ellipsoidalBase.LatLonEllipsoidalBase, bases.LatLonHeightBase, bases.Base
    test 93 ellipsoidalVincenty: ellipsoidalVincenty.LatLon, ellipsoidalBase.LatLonEllipsoidalBase, bases.LatLonHeightBase, bases.Base
    test 94 sphericalNvector: sphericalNvector.LatLon, nvector.LatLonNvectorBase, sphericalBase.LatLonSphericalBase, bases.LatLonHeightBase, bases.Base
    test 95 sphericalTrigonometry: sphericalTrigonometry.LatLon, sphericalBase.LatLonSphericalBase, bases.LatLonHeightBase, bases.Base

    testNvectorAttrs(17.06.25)
    test 96 H str: ellipsoidalNvector, nvector, sphericalNvector
    test 97 angleTo() method: ellipsoidalNvector, nvector, sphericalNvector
    test 98 classname() method: ellipsoidalNvector, nvector, sphericalNvector
    test 99 classof() method: ellipsoidalNvector, nvector, sphericalNvector
    test 100 copy() method: ellipsoidalNvector, nvector, sphericalNvector
    test 101 cross() method: ellipsoidalNvector, nvector, sphericalNvector
    test 102 datum property: ellipsoidalNvector
    test 103 dividedBy() method: ellipsoidalNvector, nvector, sphericalNvector
    test 104 dot() method: ellipsoidalNvector, nvector, sphericalNvector
    test 105 equals() method: ellipsoidalNvector, nvector, sphericalNvector
    test 106 greatCircle() method: sphericalNvector
    test 107 h property: ellipsoidalNvector, nvector, sphericalNvector
    test 108 length property: ellipsoidalNvector, nvector, sphericalNvector
    test 109 minus() method: ellipsoidalNvector, nvector, sphericalNvector
    test 110 negate() method: ellipsoidalNvector, nvector, sphericalNvector
    test 111 others() method: ellipsoidalNvector, nvector, sphericalNvector
    test 112 parse() method: ellipsoidalNvector, nvector, sphericalNvector
    test 113 plus() method: ellipsoidalNvector, nvector, sphericalNvector
    test 114 rotate() method: ellipsoidalNvector, nvector, sphericalNvector
    test 115 rotateAround() method: ellipsoidalNvector, nvector, sphericalNvector
    test 116 sum() method: ellipsoidalNvector, nvector, sphericalNvector
    test 117 times() method: ellipsoidalNvector, nvector, sphericalNvector
    test 118 to2ll() method: ellipsoidalNvector, nvector, sphericalNvector
    test 119 to3llh() method: ellipsoidalNvector, nvector, sphericalNvector
    test 120 to3xyz() method: ellipsoidalNvector, nvector, sphericalNvector
    test 121 to4xyzh() method: ellipsoidalNvector, nvector, sphericalNvector
    test 122 toCartesian() method: ellipsoidalNvector
    test 123 toLatLon() method: ellipsoidalNvector, sphericalNvector
    test 124 toStr() method: ellipsoidalNvector, nvector, sphericalNvector
    test 125 toStr2() method: ellipsoidalNvector, nvector, sphericalNvector
    test 126 toVector3d() method: ellipsoidalNvector, nvector, sphericalNvector
    test 127 unit() method: ellipsoidalNvector, nvector, sphericalNvector
    test 128 x property: ellipsoidalNvector, nvector, sphericalNvector
    test 129 y property: ellipsoidalNvector, nvector, sphericalNvector
    test 130 z property: ellipsoidalNvector, nvector, sphericalNvector

    testNvectorMro(17.06.25)
    test 131 ellipsoidalNvector: ellipsoidalNvector.Nvector, nvector.Nvector, vector3d.Vector3d, bases.Base
    test 132 sphericalNvector: sphericalNvector.Nvector, nvector.Nvector, vector3d.Vector3d, bases.Base
    test 133 nvector: nvector.Nvector, vector3d.Vector3d, bases.Base

    testVector3dAttrs(17.06.25)
    test 134 angleTo() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 135 classname() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 136 classof() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 137 copy() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 138 cross() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 139 dividedBy() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 140 dot() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 141 equals() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 142 length property: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 143 minus() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 144 negate() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 145 others() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 146 parse() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 147 plus() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 148 rotate() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 149 rotateAround() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 150 sum() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 151 times() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 152 to2ll() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 153 to3xyz() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 154 toStr() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 155 toStr2() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 156 unit() method: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 157 x property: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 158 y property: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d
    test 159 z property: ellipsoidalNvector, nvector, sphericalTrigonometry, vector3d

    testVector3dMro(17.06.25)
    test 160 ellipsoidalNvector: vector3d.Vector3d, bases.Base
    test 161 sphericalTrigonometry: vector3d.Vector3d, bases.Base
    test 162 nvector: vector3d.Vector3d, bases.Base
    test 163 vector3d: vector3d.Vector3d, bases.Base

    all testClasses.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 11.986 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testDatum.py

    testing testDatum.py 17.06.23 (module datum 17.06.25)
    test 1 ellipsoid: True
    test 2 transform: True
    test 3 datum: True
    test 4 TestEllipsiod: name='TestEllipsiod', a=1000.0, b=1000.0, f_=0, f=0, e2=0, e22=0, R=1000.0, Rm=1000.0, R2=1000.0, R3=1000.0, Rr=1000.0
    test 5 TestTransform: name='TestTransform', tx=0, ty=0, tz=0, rx=0, ry=0, rz=0, s=0, s1=1, sx=0, sy=0, sz=0
    test 6 TestDatum: name='TestDatum', ellipsoid=Ellipsoids.TestEllipsiod, transform=Transforms.TestTransform
    test 7 ED50.inverse().inverse(): True
    test 8 meanR: 6371008.7714
    test 9 WGS84: name='WGS84', a=6378137.0, b=6356752.3142499998, f_=298.257223563, f=0.0033528107, e2=0.00669438, e22=0.0067394967, R=6371008.7714166669, Rm=6367435.6797186071, R2=6371007.180920884, R3=6371000.7900107643, Rr=6367449.1458250266
    test 10 WGS84: A=6367449.1458234154, e=0.0818191908, f_=298.2572235630, n=0.0016792204(-3.7914875232e-13)
    test 11 WGS84: Alpha6=(0, 8.377318206245e-04, 7.608527773572e-07, 1.197645503329e-09, 2.429170607201e-12, 5.711757677866e-15, 1.491117731258e-17)
    test 12 WGS84: Beta6=(0, 8.377321640579e-04, 5.905870152220e-08, 1.673482665284e-1, 2.164798040063e-13, 3.787978046169e-16, 7.248748890694e-19)
    all testDatum.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 5.410 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testDms.py

    testing testDms.py 17.06.21 (module dms 17.06.04)
    test 1 parseDMS: 0.0
    test 2 parseDMS: 0.0
    test 3 parseDMS: 0.0
    test 4 parseDMS: 0.0
    test 5 parseDMS: 0.0
    test 6 parseDMS: 0.0
    test 7 parse3llh: 51.477811, -0.001475, 0.000000
    test 8 toDMS(): 45°45′45.36″
    test 9 toDMS(d): 45.7626°
    test 10 toDMS(dm): 45°45.756′
    test 11 toDMS(dms): 45°45′45.36″
    test 12 toDMS(deg): 45.7626
    test 13 toDMS(min): 4545.756
    test 14 toDMS(sec): 454545.36
    test 15 toDMS(rad): 0.79871
    test 16 toDMS(d): 45.7626°
    test 17 toDMS(dm): 45°45.7560′
    test 18 toDMS(dms): 45°45′45.36″
    test 19 toDMS(deg): 45.762600
    test 20 toDMS(min): 4545.75600
    test 21 toDMS(sec): 454545.360
    test 22 toDMS(rad): 0.798708
    test 23 compassPoint: N
    test 24 compassPoint: N
    test 25 compassPoint: N
    test 26 compassPoint: N
    test 27 compassPoint: NNE
    test 28 compassPoint: N
    test 29 compassPoint: NE
    test 30 compassPoint: NNE
    test 31 compassPoint: SW
    test 32 compassPoint: W
    test 33 compassPoint: SW
    test 34 compassPoint: SW
    test 35 compassPoint: WSW
    test 36 compassPoint: W
    test 37 compassPoint: SW
    test 38 compassPoint: WSW
    test 39 compassPoint: NbE
    test 40 compassPoint: NEbN
    test 41 compassPoint: NEbE
    test 42 compassPoint: EbN
    test 43 compassPoint: EbS
    test 44 compassPoint: SEbE
    test 45 compassPoint: SEbS
    test 46 compassPoint: SbE
    test 47 compassPoint: SbW
    test 48 compassPoint: SWbS
    test 49 compassPoint: SWbW
    test 50 compassPoint: WbS
    test 51 compassPoint: WbN
    test 52 compassPoint: NWbW
    test 53 compassPoint: NWbN
    test 54 compassPoint: NbW
    all testDms.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 1.798 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testEllipsoidal.py

    testing testEllipsoidal.py 17.06.25

    testEllipsoidal(ellipsoidalNvector, 17.06.25)
    test 1 isEllipsoidal: True
    test 2 isSpherical: False
    test 3 isEllipsoidal: True
    test 4 isSpherical: False
    test 5 convertDatum: 51.477284°N, 000.00002°E, -45.91m
    test 6 convertDatum: 51.4773°N, 000.0°E, -45.91m
    test 7 toNVector: (0.6228, 0.0, 0.7824, +0.24)
    test 8 toNvector: True
    test 9 toCartesian: [3980581, 97, 4966825]
    test 10 toCartesian: True
    test 11 Nvector: (0.5, 0.5, 0.7071)
    test 12 toCartesian: [3194434.411, 3194434.411, 4487326.82]
    test 13 toCartesian: True
    test 14 toLatLon: 45.0°N, 045.0°E, +0.00m
    test 15 toLatLon: True
    test 16 Nvector: (0.51, 0.512, 0.707, +1.00)

    testLatLon(ellipsoidalNvector, 17.06.25)
    test 17 isEllipsoidal: True
    test 18 isSpherical: False
    test 19 lat/lonDMS: 52.20472°N, 000.14056°E
    test 20 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E
    test 21 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E
    test 22 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E
    test 23 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E
    test 24 lat/lonDMS F_RAD: 0.911144N, 0.002453E
    test 25 equals: True
    test 26 equals: False
    test 27 copy: True
    test 28 intermediateTo: 51.372294°N, 000.707192°E
    test 29 intermediateTo: True
    test 30 intermediateTo+5: 35.560239°N, 008.833512°E
    test 31 intermediateTo-4: 64.570387°N, 013.156352°W
    test 32 isclockwise: False
    test 33 isclockwise: True
    test 34 isclockwise: too few points: 2
    test 35 isconvex: False
    test 36 isconvex: True
    test 37 isconvex: too few points: 2

    testVectorial(ellipsoidalNvector, 17.06.25)
    test 38 toLatLon: 44.995674°N, 045.0°E
    test 39 toNvector: (0.50004, 0.50004, 0.70705)
    test 40 equals: False
    test 41 equals: True
    test 42 length: 0.99992449715
    test 43 length: 1.0
    test 44 sumOf: (52.70504, 0.61904, 0.70705)
    test 45 sumOf: Nv
    test 46 length: 52.7134151513
    test 47 copy: True
    test 48 length: 52.2051356286
    test 49 length: 52.2051356286

    testLatLon(ellipsoidalVincenty, 17.06.25)
    test 50 isEllipsoidal: True
    test 51 isSpherical: False
    test 52 lat/lonDMS: 52.20472°N, 000.14056°E
    test 53 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E
    test 54 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E
    test 55 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E
    test 56 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E
    test 57 lat/lonDMS F_RAD: 0.911144N, 0.002453E
    test 58 equals: True
    test 59 equals: False
    test 60 initialBearingTo: 156.1106
    test 61 finalBearingTo: 157.8345
    test 62 initialBearingTo: 65.9335
    test 63 copy: True
    test 64 distanceTo: 404607.805988
    test 65 distanceTo: 404607.805988
    test 66 distanceTo: 3981601
    test 67 destination: 51.513526°N, 000.098038°W
    test 68 destination: 51°30′49″N, 000°05′53″W
    test 69 destination: 33°57′N, 118°24′W
    test 70 destination: 33.950367°N, 118.399012°W
    test 71 isclockwise: False
    test 72 isclockwise: True
    test 73 isclockwise: too few points: 2
    test 74 isconvex: False
    test 75 isconvex: True
    test 76 isconvex: too few points: 2

    testVincenty(ellipsoidalVincenty, 17.06.25, datum=WGS84)
    test 77 distanceTo: 866455.43292
    test 78 VincentyError: LatLon(41°29′24.29″N, 071°18′46.07″W) coincident with LatLon(41°29′24.29″N, 071°18′46.07″W)
    test 79 ValueError: other Ellipsoid mistmatch: Ellipsoids.Airy1830 vs Ellipsoids.WGS84
    test 80 isEllipsoidal: True
    test 81 isSpherical: False
    test 82 copy: True
    test 83 isEllipsoidal: True
    test 84 isSpherical: False
    test 85 copy: 37°57′03.7203″S, 144°25′29.5244″E
    test 86 destination: 37.6528°S, 143.9265°E
    test 87 destination: True
    test 88 destination2: 37.652821°S, 143.926496°E, 307.1736°NW
    test 89 destination2: True
    test 90 finalBearingOn: 307.1736°, 307°10′25.07″NW
    test 91 distanceTo: 969954.166
    test 92 distanceTo3: 969954.166314, 9.141877, 11.29722
    test 93 initialBearingTo: 9.1419°, 9°08′30.76″N
    test 94 finalBearingTo: 11.2972°, 11°17′49.99″NNE
    test 95 distanceTo: 404607.806
    test 96 distanceTo3: 404607.805988, 156.11064, 157.8345
    test 97 initialBearingTo: 156.1106°, 156°06′38.31″SSE
    test 98 finalBearingTo: 157.8345°, 157°50′04.2″SSE
    test 99 distanceTo: 54973.295
    test 100 distanceTo3: 54973.29527, 233.13008, 232.82461
    test 101 initialBearingTo: 233.1301°, 233°07′48.28″SW
    test 102 finalBearingTo: 232.8246°, 232°49′28.59″SW
    test 103 distanceToMP: 298396.057
    test 104 distanceToMP: 111319.491
    test 105 distanceToMP: 110574.389
    test 106 distanceToKW: 222638.982
    test 107 distanceToKW: 111319.491

    testVincenty(ellipsoidalVincenty, 17.06.25, datum=NAD83)
    test 108 distanceTo: 866455.43292
    test 109 VincentyError: LatLon(41°29′24.29″N, 071°18′46.07″W) coincident with LatLon(41°29′24.29″N, 071°18′46.07″W)
    test 110 ValueError: other Ellipsoid mistmatch: Ellipsoids.Airy1830 vs Ellipsoids.GRS80
    test 111 isEllipsoidal: True
    test 112 isSpherical: False
    test 113 copy: True
    test 114 isEllipsoidal: True
    test 115 isSpherical: False
    test 116 copy: 37°57′03.7203″S, 144°25′29.5244″E
    test 117 destination: 37.6528°S, 143.9265°E
    test 118 destination: True
    test 119 destination2: 37.652821°S, 143.926496°E, 307.1736°NW
    test 120 destination2: True
    test 121 finalBearingOn: 307.1736°, 307°10′25.07″NW
    test 122 distanceTo: 969954.166
    test 123 distanceTo3: 969954.166314, 9.141877, 11.29722
    test 124 initialBearingTo: 9.1419°, 9°08′30.76″N
    test 125 finalBearingTo: 11.2972°, 11°17′49.99″NNE
    test 126 distanceTo: 404607.806
    test 127 distanceTo3: 404607.805988, 156.11064, 157.8345
    test 128 initialBearingTo: 156.1106°, 156°06′38.31″SSE
    test 129 finalBearingTo: 157.8345°, 157°50′04.2″SSE
    test 130 distanceTo: 54973.295
    test 131 distanceTo3: 54973.29527, 233.13008, 232.82461
    test 132 initialBearingTo: 233.1301°, 233°07′48.28″SW
    test 133 finalBearingTo: 232.8246°, 232°49′28.59″SW
    test 134 distanceToMP: 298396.057
    test 135 distanceToMP: 111319.491
    test 136 distanceToMP: 110574.389
    test 137 distanceToKW: 222638.982
    test 138 distanceToKW: 111319.491

    testNOAA(ellipsoidalVincenty, 17.06.25)
    test 139 NOAAexample1: 191872.1190, 249 03 16.4237, 67 59 11.1619
    test 140 NOAAexample2: 182009.1679, 254 42 44.6439, 73 09 21.3315
    test 141 NOAAexample3: 123456.7891, 245 00 34.7001, 64 20 24.6864
    test 142 NOAAexample4: 145239.0603, 114 29 26.9586, 295 21 32.6566

    all testEllipsoidal.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 12.890 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testGeohash.py

    testing testGeohash.py 17.07.09 (module geohash 17.07.09)
    test 1 Geohash: Geohash('geek')
    test 2 Geohash: geek
    test 3 Geohash: geek
    test 4 bounds: (LatLon(65°23′26.25″N, 017°55′46.88″W), LatLon(65°33′59.06″N, 017°34′41.25″W))
    test 5 toLatLon: 65.478516°N, 017.753906°W
    test 6 latlon: 65.47851562, -17.75390625
    test 7 ab: 1.14281569, -0.30986412
    test 8 Geohash: geehpbpbp
    test 9 toLatLon: 65.390625°N, 017.929689°W
    test 10 latlon: 65.390625, -17.929689
    test 11 ab: 1.14128171, -0.31293211
    test 12 decode: ('65.390646', '-17.929709')
    test 13 decode_error: 2.145767e-05, 2.145767e-05
    test 14 distance1: 2758.887
    test 15 distance2: 676.254
    test 16 distance3: 397.404
    test 17 sizes: 19.1, 38.2
    test 18 encode-decode: u120fxw
    test 19 encode-decode: geek
    test 20 encode-decode: fur
    test 21 encode-decode: geehpbpbp
    test 22 encode-decode: u4pruydqqvj8
    test 23 encode-decode: bgr96qxvpd46
    test 24 encode-decode: 0123456789
    test 25 encode-decode: zzzzzz
    test 26 Geohash: u4pruydq
    test 27 N.E.S.W: True
    test 28 E.S.W.N: True
    test 29 S.W.N.E: True
    test 30 W.N.E.S: True
    test 31 N.E.S.S.W.W.N.N.E.S: True
    test 32 Geohash: u4pruydqq
    test 33 N.E.S.W: True
    test 34 E.S.W.N: True
    test 35 S.W.N.E: True
    test 36 W.N.E.S: True
    test 37 N.E.S.S.W.W.N.N.E.S: True
    test 38 Geohash: u4pruydqqv
    test 39 N.E.S.W: True
    test 40 E.S.W.N: True
    test 41 S.W.N.E: True
    test 42 W.N.E.S: True
    test 43 N.E.S.S.W.W.N.N.E.S: True
    test 44 Geohash: u4pruydqqvj
    test 45 N.E.S.W: True
    test 46 E.S.W.N: True
    test 47 S.W.N.E: True
    test 48 W.N.E.S: True
    test 49 N.E.S.S.W.W.N.N.E.S: True
    test 50 Geohash: u4pruydqqvj8
    test 51 N.E.S.W: True
    test 52 E.S.W.N: True
    test 53 S.W.N.E: True
    test 54 W.N.E.S: True
    test 55 N.E.S.S.W.W.N.N.E.S: True
    test 56 encode: u120fxw
    test 57 decode: ('52.205', '0.1188')
    test 58 decode_error: 6.866455e-04, 6.866455e-04
    test 59 distance1: 486.71
    test 60 distance2: 3.374
    test 61 distance3: 2.798
    test 62 sizes: 610.0, 1220.0
    test 63 encode: fur
    test 64 decode: ('69.6', '-45.7')
    test 65 decode: ('70.3', '-51')
    test 66 decode: ('68', '-68')
    test 67 decode_error: (0.703125, 0.703125)
    test 68 decode_error: (2.8125, 5.625)
    test 69 decode_error: (22.5, 22.5)
    all testGeohash.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 16.808 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testGreatCircle.py

    testing testGreatCircle.py 17.06.23

    testGreatCircle(sphericalNvector, 17.06.25)
    test 1 InitialBearingSameLocations: 0.0
    test 2 InitialBearingEqualLocations: 0.0
    test 3 FinalBearingSameLocations: 180.0
    test 4 FinalBearingEqualLocations: 180.0
    test 5 DistanceSameLocations: 0.0
    test 6 DistanceEqualLocations: 0.0
    test 7 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705
    test 8 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705
    test 9 InitialBearingEiffelToVersailles: 245.13460297
    test 10 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″
    test 11 InitialBearingVersaillesToEiffel: 65.003253951
    test 12 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″
    test 13 FinalBearingEiffelToVersailles: 245.00325395
    test 14 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″
    test 15 FinalBearingVersaillesToEiffel: 65.134602969
    test 16 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″
    test 17 GenerateLocationVersailles: 48.804766°N, 002.120339°E
    test 18 GenerateLocationEiffel: 48.858158°N, 002.294825°E
    test 19 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E
    test 20 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E
    test 21 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330
    test 22 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E
    test 23 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E
    test 24 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330
    test 25 Intersection: 48.83569095°N, 002.221252031°E
    test 26 Intersection: 48.8356909498836°N, 002.2212520313074°E
    test 27 CrossTrackDistance200m+90°: 200.0
    test 28 CrossTrackDistance200m+270°: -200.0
    test 29 CrossTrackDistanceCloseToZero: 0.0000000

    testGreatCircle(sphericalTrigonometry, 17.06.25)
    test 30 InitialBearingSameLocations: 0.0
    test 31 InitialBearingEqualLocations: 0.0
    test 32 FinalBearingSameLocations: 180.0
    test 33 FinalBearingEqualLocations: 180.0
    test 34 DistanceSameLocations: 0.0
    test 35 DistanceEqualLocations: 0.0
    test 36 DistanceEiffelToVersailles: 14084.300096  FAILED, KNOWN, expected 14084.280705
    test 37 DistanceVersaillesToEiffel: 14084.300096  FAILED, KNOWN, expected 14084.280705
    test 38 InitialBearingEiffelToVersailles: 245.13460297
    test 39 InitialBearingEiffelToVersailles(DMS): 245°08′04.5707″
    test 40 InitialBearingVersaillesToEiffel: 65.003253951
    test 41 InitialBearingVersaillesToEiffel(DMS): 65°00′11.7142″
    test 42 FinalBearingEiffelToVersailles: 245.00325395
    test 43 FinalBearingEiffelToVersailles(DMS): 245°00′11.7142″
    test 44 FinalBearingVersaillesToEiffel: 65.134602969
    test 45 FinalBearingVersaillesToEiffel(DMS): 65°08′04.5707″
    test 46 GenerateLocationVersailles: 48.804766°N, 002.120339°E
    test 47 GenerateLocationEiffel: 48.858158°N, 002.294825°E
    test 48 MidpointEiffelToVersailles: 48.831495°N, 002.207536°E
    test 49 MidpointEiffelToVersailles(DMS): 48°49′53.3817″N, 002°12′27.1279″E
    test 50 MidpointEiffelToVersailles(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330
    test 51 MidpointVersaillesToEiffel: 48.831495°N, 002.207536°E  FAILED, KNOWN, expected 48.831495°N, 002.207535°E
    test 52 MidpointVersaillesToEiffel(DMS): 48°49′53.3817″N, 002°12′27.1279″E
    test 53 MidpointVersaillesToEiffel(m): 7042.15004788  FAILED, KNOWN, expected 7042.15974330
    test 54 Intersection: 48.83569095°N, 002.221252031°E
    test 55 Intersection: 48.8356909498836°N, 002.2212520313074°E
    test 56 CrossTrackDistance200m+90°: 200.0
    test 57 CrossTrackDistance200m+270°: -200.0
    test 58 CrossTrackDistanceCloseToZero: 0.0000000

    10 testGreatCircle.py tests (17.2%) FAILED, incl. 10 KNOWN (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 8.092 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testLatLon.py

    testing testLatLon.py 17.06.25

    testLatLon(ellipsoidalNvector, 17.06.25)
    test 1 isEllipsoidal: True
    test 2 isSpherical: False
    test 3 lat/lonDMS: 52.20472°N, 000.14056°E
    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E
    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E
    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E
    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E
    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E
    test 9 equals: True
    test 10 equals: False
    test 11 copy: True
    test 12 intermediateTo: 51.372294°N, 000.707192°E
    test 13 intermediateTo: True
    test 14 intermediateTo+5: 35.560239°N, 008.833512°E
    test 15 intermediateTo-4: 64.570387°N, 013.156352°W
    test 16 isclockwise: False
    test 17 isclockwise: True
    test 18 isclockwise: too few points: 2
    test 19 isconvex: False
    test 20 isconvex: True
    test 21 isconvex: too few points: 2

    testLatLon(ellipsoidalVincenty, 17.06.25)
    test 22 isEllipsoidal: True
    test 23 isSpherical: False
    test 24 lat/lonDMS: 52.20472°N, 000.14056°E
    test 25 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E
    test 26 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E
    test 27 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E
    test 28 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E
    test 29 lat/lonDMS F_RAD: 0.911144N, 0.002453E
    test 30 equals: True
    test 31 equals: False
    test 32 initialBearingTo: 156.1106
    test 33 finalBearingTo: 157.8345
    test 34 initialBearingTo: 65.9335
    test 35 copy: True
    test 36 distanceTo: 404607.805988
    test 37 distanceTo: 404607.805988
    test 38 distanceTo: 3981601
    test 39 destination: 51.513526°N, 000.098038°W
    test 40 destination: 51°30′49″N, 000°05′53″W
    test 41 destination: 33°57′N, 118°24′W
    test 42 destination: 33.950367°N, 118.399012°W
    test 43 isclockwise: False
    test 44 isclockwise: True
    test 45 isclockwise: too few points: 2
    test 46 isconvex: False
    test 47 isconvex: True
    test 48 isconvex: too few points: 2

    testLatLon(sphericalNvector, 17.06.25)
    test 49 isEllipsoidal: False
    test 50 isSpherical: True
    test 51 lat/lonDMS: 52.20472°N, 000.14056°E
    test 52 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E
    test 53 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E
    test 54 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E
    test 55 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E
    test 56 lat/lonDMS F_RAD: 0.911144N, 0.002453E
    test 57 equals: True
    test 58 equals: False
    test 59 initialBearingTo: 156.1666
    test 60 finalBearingTo: 157.8904
    test 61 initialBearingTo: 65.8921
    test 62 copy: True
    test 63 distanceTo: 404279.720589
    test 64 distanceTo: 404279.720589
    test 65 distanceTo: 2145
    test 66 intermediateTo: 51.372084°N, 000.707337°E
    test 67 intermediateTo: True
    test 68 intermediateTo: 404279.721
    test 69 intermediateTo+5: 35.160975°N, 008.989542°E
    test 70 intermediateTo+5: 5.000
    test 71 intermediateTo-4: 64.911647°N, 013.726301°W
    test 72 intermediateTo-4: 4.000
    test 73 intermediateChordTo: 51.372294°N, 000.707192°E
    test 74 intermediateChordTo: True
    test 75 midpointTo: 50.536327°N, 001.274614°E
    test 76 destination: 51.513546°N, 000.098345°W
    test 77 destination: 51°30′49″N, 000°05′54″W
    test 78 destination: 34°37′N, 116°33′W
    test 79 destination: 34.613647°N, 116.55116°W
    test 80 alongTrackDistanceTo: 62331.59
    test 81 alongTrackDistanceTo: 62331.58
    test 82 alongTrackDistanceTo: 99.588
    test 83 alongTrackDistanceTo: -7702.7
    test 84 alongTrackDistanceTo: 7587.6
    test 85 crossTrackDistanceTo: -305.67
    test 86 crossTrackDistanceTo: -307.55
    test 87 crossTrackDistanceTo: 7.4524
    test 88 greatCircle: (-0.79408, 0.12856, 0.59406)
    test 89 greatCircleTo: (-0.79408, 0.12859, 0.59406)
    test 90 isclockwise: False
    test 91 isclockwise: True
    test 92 isclockwise: too few points: 2
    test 93 isconvex: False
    test 94 isconvex: True
    test 95 isconvex: too few points: 2

    testLatLon(sphericalTrigonometry, 17.06.25)
    test 96 isEllipsoidal: False
    test 97 isSpherical: True
    test 98 lat/lonDMS: 52.20472°N, 000.14056°E
    test 99 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E
    test 100 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E
    test 101 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E
    test 102 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E
    test 103 lat/lonDMS F_RAD: 0.911144N, 0.002453E
    test 104 equals: True
    test 105 equals: False
    test 106 initialBearingTo: 156.1666
    test 107 finalBearingTo: 157.8904
    test 108 initialBearingTo: 65.8921
    test 109 copy: True
    test 110 distanceTo: 404279.720589
    test 111 distanceTo: 404279.720589
    test 112 distanceTo: 2145
    test 113 intermediateTo: 51.372084°N, 000.707337°E
    test 114 intermediateTo: True
    test 115 intermediateTo: 404279.721
    test 116 intermediateTo+5: 35.160975°N, 008.989542°E
    test 117 intermediateTo+5: 5.000
    test 118 intermediateTo-4: 64.911647°N, 013.726301°W
    test 119 intermediateTo-4: 4.000
    test 120 midpointTo: 50.536327°N, 001.274614°E
    test 121 destination: 51.513546°N, 000.098345°W
    test 122 destination: 51°30′49″N, 000°05′54″W
    test 123 destination: 34°37′N, 116°33′W
    test 124 destination: 34.613647°N, 116.55116°W
    test 125 alongTrackDistanceTo: type(end) mismatch: int vs sphericalTrigonometry.LatLon
    test 126 alongTrackDistanceTo: 62331.58
    test 127 alongTrackDistanceTo: 99.588
    test 128 alongTrackDistanceTo: -7702.7
    test 129 alongTrackDistanceTo: 7587.6
    test 130 crossTrackDistanceTo: type(end) mismatch: int vs sphericalTrigonometry.LatLon
    test 131 crossTrackDistanceTo: -307.55
    test 132 crossTrackDistanceTo: 7.4524
    test 133 greatCircle: (-0.79408, 0.12856, 0.59406)
    test 134 isclockwise: False
    test 135 isclockwise: True
    test 136 isclockwise: too few points: 2
    test 137 isconvex: False
    test 138 isconvex: True
    test 139 isconvex: too few points: 2

    all testLatLon.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 11.979 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testLcc.py

    testing testLcc.py 17.06.16 (module lcc 17.06.25)

    testLcc(ellipsoidalNvector, 17.06.25)
    test 1 lb1: 448251.0 5411932.0001
    test 2 lb1: 448251, 5411932
    test 3 lb1: WRF_Lb.WGS84
    test 4 LatLon: 46.5°N, 003.0°E
    test 5 LatLon: 46°30′00.0″N, 003°00′00.0″E
    test 6 toLcc1: 700000 6600000
    test 7 toLcc1: 46.5°N, 003.0°E
    test 8 lb2: 1894411 1564650
    test 9 lb2: Clarke1866
    test 10 toLatLon2: 35.0°N, 075.0°W
    test 11 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W
    test 12 toLatLon2: NAD27
    test 13 toLcc2: 1894410.9 1564649.5
    test 14 toLcc2: Snyder.NAD27
    test 15 Be08Lb: 49.833333°N, 003.025882°E
    test 16 Be08Lb: GRS80
    test 17 Be08Lb: 49.833333°N, 004.359216°E
    test 18 Be08Lb: GRS80
    test 19 Be08Lb: 49.833333°N, 005.69255°E
    test 20 Be08Lb: GRS80
    test 21 Be08Lb: 51.166667°N, 003.025882°E
    test 22 Be08Lb: GRS80
    test 23 Be08Lb: 51.166667°N, 004.359216°E
    test 24 Be08Lb: GRS80
    test 25 Be08Lb: 51.166667°N, 005.69255°E
    test 26 Be08Lb: GRS80
    test 27 Be72Lb: 49.833334°N, 003.034153°E
    test 28 Be72Lb: NAD83
    test 29 Be72Lb: 49.833334°N, 004.367487°E
    test 30 Be72Lb: NAD83
    test 31 Be72Lb: 49.833334°N, 005.70082°E
    test 32 Be72Lb: NAD83
    test 33 Be72Lb: 51.166667°N, 003.034153°E
    test 34 Be72Lb: NAD83
    test 35 Be72Lb: 51.166667°N, 004.367487°E
    test 36 Be72Lb: NAD83
    test 37 Be72Lb: 51.166667°N, 005.70082°E
    test 38 Be72Lb: NAD83
    test 39 Fr93Lb: 49.0°N, 002.0°W
    test 40 Fr93Lb: WGS84
    test 41 Fr93Lb: 49.0°N, 003.0°E
    test 42 Fr93Lb: WGS84
    test 43 Fr93Lb: 49.0°N, 008.0°E
    test 44 Fr93Lb: WGS84
    test 45 Fr93Lb: 44.0°N, 002.0°W
    test 46 Fr93Lb: WGS84
    test 47 Fr93Lb: 44.0°N, 003.0°E
    test 48 Fr93Lb: WGS84
    test 49 Fr93Lb: 44.0°N, 008.0°E
    test 50 Fr93Lb: WGS84
    test 51 MaNLb: 31.73°N, 008.54°W
    test 52 MaNLb: NTF
    test 53 MaNLb: 31.73°N, 005.4°W
    test 54 MaNLb: NTF
    test 55 MaNLb: 31.73°N, 002.26°W
    test 56 MaNLb: NTF
    test 57 MaNLb: 34.87°N, 008.54°W
    test 58 MaNLb: NTF
    test 59 MaNLb: 34.87°N, 005.4°W
    test 60 MaNLb: NTF
    test 61 MaNLb: 34.87°N, 002.26°W
    test 62 MaNLb: NTF
    test 63 MxLb: 17.5°N, 114.0°W
    test 64 MxLb: WGS84
    test 65 MxLb: 17.5°N, 102.0°W
    test 66 MxLb: WGS84
    test 67 MxLb: 17.5°N, 090.0°W
    test 68 MxLb: WGS84
    test 69 MxLb: 29.5°N, 114.0°W
    test 70 MxLb: WGS84
    test 71 MxLb: 29.5°N, 102.0°W
    test 72 MxLb: WGS84
    test 73 MxLb: 29.5°N, 090.0°W
    test 74 MxLb: WGS84
    test 75 PyT_Lb: 45.898939°N, 000.540154°E
    test 76 PyT_Lb: NTF
    test 77 PyT_Lb: 45.898939°N, 002.337229°E
    test 78 PyT_Lb: NTF
    test 79 PyT_Lb: 45.898939°N, 004.134305°E
    test 80 PyT_Lb: NTF
    test 81 PyT_Lb: 47.696014°N, 000.540154°E
    test 82 PyT_Lb: NTF
    test 83 PyT_Lb: 47.696014°N, 002.337229°E
    test 84 PyT_Lb: NTF
    test 85 PyT_Lb: 47.696014°N, 004.134305°E
    test 86 PyT_Lb: NTF
    test 87 Snyder: 33.0°N, 108.0°W
    test 88 Snyder: NAD27
    test 89 Snyder: 33.0°N, 096.0°W
    test 90 Snyder: NAD27
    test 91 Snyder: 33.0°N, 084.0°W
    test 92 Snyder: NAD27
    test 93 Snyder: 45.0°N, 108.0°W
    test 94 Snyder: NAD27
    test 95 Snyder: 45.0°N, 096.0°W
    test 96 Snyder: NAD27
    test 97 Snyder: 45.0°N, 084.0°W
    test 98 Snyder: NAD27
    test 99 USA_Lb: 33.0°N, 108.0°W
    test 100 USA_Lb: WGS84
    test 101 USA_Lb: 33.0°N, 096.0°W
    test 102 USA_Lb: WGS84
    test 103 USA_Lb: 33.0°N, 084.0°W
    test 104 USA_Lb: WGS84
    test 105 USA_Lb: 45.0°N, 108.0°W
    test 106 USA_Lb: WGS84
    test 107 USA_Lb: 45.0°N, 096.0°W
    test 108 USA_Lb: WGS84
    test 109 USA_Lb: 45.0°N, 084.0°W
    test 110 USA_Lb: WGS84
    test 111 WRF_Lb: 33.0°N, 109.0°W
    test 112 WRF_Lb: WGS84
    test 113 WRF_Lb: 33.0°N, 097.0°W
    test 114 WRF_Lb: WGS84
    test 115 WRF_Lb: 33.0°N, 085.0°W
    test 116 WRF_Lb: WGS84
    test 117 WRF_Lb: 45.0°N, 109.0°W
    test 118 WRF_Lb: WGS84
    test 119 WRF_Lb: 45.0°N, 097.0°W
    test 120 WRF_Lb: WGS84
    test 121 WRF_Lb: 45.0°N, 085.0°W
    test 122 WRF_Lb: WGS84

    testLcc(ellipsoidalVincenty, 17.06.25)
    test 123 lb1: 448251.0 5411932.0001
    test 124 lb1: 448251, 5411932
    test 125 lb1: WRF_Lb.WGS84
    test 126 LatLon: 46.5°N, 003.0°E
    test 127 LatLon: 46°30′00.0″N, 003°00′00.0″E
    test 128 toLcc1: 700000 6600000
    test 129 toLcc1: 46.5°N, 003.0°E
    test 130 lb2: 1894411 1564650
    test 131 lb2: Clarke1866
    test 132 toLatLon2: 35.0°N, 075.0°W
    test 133 toLatLon2: 35°00′00.0007″N, 074°59′59.9997″W
    test 134 toLatLon2: NAD27
    test 135 toLcc2: 1894410.9 1564649.5
    test 136 toLcc2: Snyder.NAD27
    test 137 Be08Lb: 49.833333°N, 003.025882°E
    test 138 Be08Lb: GRS80
    test 139 Be08Lb: 49.833333°N, 004.359216°E
    test 140 Be08Lb: GRS80
    test 141 Be08Lb: 49.833333°N, 005.69255°E
    test 142 Be08Lb: GRS80
    test 143 Be08Lb: 51.166667°N, 003.025882°E
    test 144 Be08Lb: GRS80
    test 145 Be08Lb: 51.166667°N, 004.359216°E
    test 146 Be08Lb: GRS80
    test 147 Be08Lb: 51.166667°N, 005.69255°E
    test 148 Be08Lb: GRS80
    test 149 Be72Lb: 49.833334°N, 003.034153°E
    test 150 Be72Lb: NAD83
    test 151 Be72Lb: 49.833334°N, 004.367487°E
    test 152 Be72Lb: NAD83
    test 153 Be72Lb: 49.833334°N, 005.70082°E
    test 154 Be72Lb: NAD83
    test 155 Be72Lb: 51.166667°N, 003.034153°E
    test 156 Be72Lb: NAD83
    test 157 Be72Lb: 51.166667°N, 004.367487°E
    test 158 Be72Lb: NAD83
    test 159 Be72Lb: 51.166667°N, 005.70082°E
    test 160 Be72Lb: NAD83
    test 161 Fr93Lb: 49.0°N, 002.0°W
    test 162 Fr93Lb: WGS84
    test 163 Fr93Lb: 49.0°N, 003.0°E
    test 164 Fr93Lb: WGS84
    test 165 Fr93Lb: 49.0°N, 008.0°E
    test 166 Fr93Lb: WGS84
    test 167 Fr93Lb: 44.0°N, 002.0°W
    test 168 Fr93Lb: WGS84
    test 169 Fr93Lb: 44.0°N, 003.0°E
    test 170 Fr93Lb: WGS84
    test 171 Fr93Lb: 44.0°N, 008.0°E
    test 172 Fr93Lb: WGS84
    test 173 MaNLb: 31.73°N, 008.54°W
    test 174 MaNLb: NTF
    test 175 MaNLb: 31.73°N, 005.4°W
    test 176 MaNLb: NTF
    test 177 MaNLb: 31.73°N, 002.26°W
    test 178 MaNLb: NTF
    test 179 MaNLb: 34.87°N, 008.54°W
    test 180 MaNLb: NTF
    test 181 MaNLb: 34.87°N, 005.4°W
    test 182 MaNLb: NTF
    test 183 MaNLb: 34.87°N, 002.26°W
    test 184 MaNLb: NTF
    test 185 MxLb: 17.5°N, 114.0°W
    test 186 MxLb: WGS84
    test 187 MxLb: 17.5°N, 102.0°W
    test 188 MxLb: WGS84
    test 189 MxLb: 17.5°N, 090.0°W
    test 190 MxLb: WGS84
    test 191 MxLb: 29.5°N, 114.0°W
    test 192 MxLb: WGS84
    test 193 MxLb: 29.5°N, 102.0°W
    test 194 MxLb: WGS84
    test 195 MxLb: 29.5°N, 090.0°W
    test 196 MxLb: WGS84
    test 197 PyT_Lb: 45.898939°N, 000.540154°E
    test 198 PyT_Lb: NTF
    test 199 PyT_Lb: 45.898939°N, 002.337229°E
    test 200 PyT_Lb: NTF
    test 201 PyT_Lb: 45.898939°N, 004.134305°E
    test 202 PyT_Lb: NTF
    test 203 PyT_Lb: 47.696014°N, 000.540154°E
    test 204 PyT_Lb: NTF
    test 205 PyT_Lb: 47.696014°N, 002.337229°E
    test 206 PyT_Lb: NTF
    test 207 PyT_Lb: 47.696014°N, 004.134305°E
    test 208 PyT_Lb: NTF
    test 209 Snyder: 33.0°N, 108.0°W
    test 210 Snyder: NAD27
    test 211 Snyder: 33.0°N, 096.0°W
    test 212 Snyder: NAD27
    test 213 Snyder: 33.0°N, 084.0°W
    test 214 Snyder: NAD27
    test 215 Snyder: 45.0°N, 108.0°W
    test 216 Snyder: NAD27
    test 217 Snyder: 45.0°N, 096.0°W
    test 218 Snyder: NAD27
    test 219 Snyder: 45.0°N, 084.0°W
    test 220 Snyder: NAD27
    test 221 USA_Lb: 33.0°N, 108.0°W
    test 222 USA_Lb: WGS84
    test 223 USA_Lb: 33.0°N, 096.0°W
    test 224 USA_Lb: WGS84
    test 225 USA_Lb: 33.0°N, 084.0°W
    test 226 USA_Lb: WGS84
    test 227 USA_Lb: 45.0°N, 108.0°W
    test 228 USA_Lb: WGS84
    test 229 USA_Lb: 45.0°N, 096.0°W
    test 230 USA_Lb: WGS84
    test 231 USA_Lb: 45.0°N, 084.0°W
    test 232 USA_Lb: WGS84
    test 233 WRF_Lb: 33.0°N, 109.0°W
    test 234 WRF_Lb: WGS84
    test 235 WRF_Lb: 33.0°N, 097.0°W
    test 236 WRF_Lb: WGS84
    test 237 WRF_Lb: 33.0°N, 085.0°W
    test 238 WRF_Lb: WGS84
    test 239 WRF_Lb: 45.0°N, 109.0°W
    test 240 WRF_Lb: WGS84
    test 241 WRF_Lb: 45.0°N, 097.0°W
    test 242 WRF_Lb: WGS84
    test 243 WRF_Lb: 45.0°N, 085.0°W
    test 244 WRF_Lb: WGS84

    testConic(ellipsoidalNvector, 17.06.25)
    test 245 SnyderN: name='SnyderN', lat0=23.0, lon0=-96.0, par1=33.0, par2=45.0, E0=0, N0=0, k0=1, SP=2, datum=(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)

    testConic(ellipsoidalVincenty, 17.06.25)
    test 246 SnyderV: name='SnyderV', lat0=23.0, lon0=-96.0, par1=33.0, par2=45.0, E0=0, N0=0, k0=1, SP=2, datum=(name='NAD27', ellipsoid=Ellipsoids.Clarke1866, transform=Transforms.NAD27)

    all testLcc.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 25.858 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testMgrs.py

    testing testMgrs.py 17.06.21 (module mgrs 17.06.04)
    test 1 Mgrs1: 31U DQ 48251 11932
    test 2 Mgrs1: [Z:31U, G:DQ, E:48251, N:11932]
    test 3 Mgrs2: 31U DQ 48251 11932
    test 4 Mgrs2: [Z:31U, G:DQ, E:48251, N:11932]
    test 5 Mgrs3: 31U DQ 48251 11932
    test 6 Mgrs3: [Z:31U, G:DQ, E:48251, N:11932]
    test 7 toUtm1: 31 N 448251 5411932
    test 8 toUtm1: [Z:31, H:N, E:448251, N:5411932]
    test 9 toMgrs: 31U DQ 48251 11932
    test 10 toUtm(60.0°N, 001.0°E).toMgrs: 31V CG 88455 53097
    test 11 toUtm(60.0°N, 003.0°E).toMgrs: 32V JM 65640 66593
    test 12 toUtm(60.0°N, 009.0°E).toMgrs: 32V NM 00000 51411
    test 13 toUtm(76.0°N, 001.0°E).toMgrs: 31X DE 45999 36099
    test 14 toUtm(76.0°N, 013.0°E).toMgrs: 33X VE 45999 36099
    test 15 toUtm(76.0°N, 025.0°E).toMgrs: 35X ME 45999 36099
    test 16 toUtm(76.0°N, 037.0°E).toMgrs: 37X DE 45999 36099
    all testMgrs.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 3.899 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testModules.py

    testing testModules.py 17.06.23

    testModule(pygeodesy, 17.07.09)
    test 1 pygeodesy.Conic() class (lcc): True
    test 2 pygeodesy.Conics attribute (datum): True
    test 3 pygeodesy.Datum() class (datum): True
    test 4 pygeodesy.Datums attribute (datum): True
    test 5 pygeodesy.EPS float: True
    test 6 pygeodesy.EPS1 float: True
    test 7 pygeodesy.EPS2 float: True
    test 8 pygeodesy.Ellipsoid() class (datum): True
    test 9 pygeodesy.Ellipsoids attribute (datum): True
    test 10 pygeodesy.F_D str: True
    test 11 pygeodesy.F_DEG str: True
    test 12 pygeodesy.F_DM str: True
    test 13 pygeodesy.F_DMS str: True
    test 14 pygeodesy.F_MIN str: True
    test 15 pygeodesy.F_RAD str: True
    test 16 pygeodesy.F_SEC str: True
    test 17 pygeodesy.Geohash() class (geohash): True
    test 18 pygeodesy.Lcc() class (lcc): True
    test 19 pygeodesy.Mgrs() class (mgrs): True
    test 20 pygeodesy.Osgr() class (osgr): True
    test 21 pygeodesy.PI float: True
    test 22 pygeodesy.PI2 float: True
    test 23 pygeodesy.PI_2 float: True
    test 24 pygeodesy.R_KM float: True
    test 25 pygeodesy.R_M float: True
    test 26 pygeodesy.R_M float: True
    test 27 pygeodesy.R_NM float: True
    test 28 pygeodesy.R_SM float: True
    test 29 pygeodesy.S_DEG str: True
    test 30 pygeodesy.S_MIN str: True
    test 31 pygeodesy.S_RAD str: True
    test 32 pygeodesy.S_SEC str: True
    test 33 pygeodesy.S_SEP str: True
    test 34 pygeodesy.Transform() class (datum): True
    test 35 pygeodesy.Transforms attribute (datum): True
    test 36 pygeodesy.Utm() class (utm): True
    test 37 pygeodesy.VincentyError() class (ellipsoidalVincenty): True
    test 38 pygeodesy.bearingDMS() function (dms): True
    test 39 pygeodesy.cbrt() function (utils): True
    test 40 pygeodesy.cbrt2() function (utils): True
    test 41 pygeodesy.compassDMS() function (dms): True
    test 42 pygeodesy.compassPoint() function (dms): True
    test 43 pygeodesy.datum module: True
    test 44 pygeodesy.degrees attribute (math): True
    test 45 pygeodesy.degrees180() function (utils): True
    test 46 pygeodesy.degrees360() function (utils): True
    test 47 pygeodesy.degrees90() function (utils): True
    test 48 pygeodesy.dms module: True
    test 49 pygeodesy.ellipsoidalNvector module: True
    test 50 pygeodesy.ellipsoidalVincenty module: True
    test 51 pygeodesy.fStr() function (utils): True
    test 52 pygeodesy.fStrzs() function (utils): True
    test 53 pygeodesy.false2f() function (utils): True
    test 54 pygeodesy.favg() function (utils): True
    test 55 pygeodesy.fdot() function (utils): True
    test 56 pygeodesy.fdot3() function (utils): True
    test 57 pygeodesy.fsum attribute (math): True
    test 58 pygeodesy.ft2m() function (utils): True
    test 59 pygeodesy.geohash module: True
    test 60 pygeodesy.halfs() function (utils): True
    test 61 pygeodesy.hsin() function (utils): True
    test 62 pygeodesy.hsin3() function (utils): True
    test 63 pygeodesy.hypot attribute (math): True
    test 64 pygeodesy.hypot1() function (utils): True
    test 65 pygeodesy.hypot3() function (utils): True
    test 66 pygeodesy.isclockwise() function (bases): True
    test 67 pygeodesy.isconvex() function (bases): True
    test 68 pygeodesy.isint() function (utils): True
    test 69 pygeodesy.isscalar() function (utils): True
    test 70 pygeodesy.latDMS() function (dms): True
    test 71 pygeodesy.lcc module: True
    test 72 pygeodesy.len2() function (utils): True
    test 73 pygeodesy.lonDMS() function (dms): True
    test 74 pygeodesy.m2NM() function (utils): True
    test 75 pygeodesy.m2SM() function (utils): True
    test 76 pygeodesy.m2ft() function (utils): True
    test 77 pygeodesy.m2km() function (utils): True
    test 78 pygeodesy.map1() function (utils): True
    test 79 pygeodesy.map2() function (utils): True
    test 80 pygeodesy.mgrs module: True
    test 81 pygeodesy.normDMS() function (dms): True
    test 82 pygeodesy.nvector module: True
    test 83 pygeodesy.osgr module: True
    test 84 pygeodesy.parse3llh() function (dms): True
    test 85 pygeodesy.parseDMS() function (dms): True
    test 86 pygeodesy.parseMGRS() function (mgrs): True
    test 87 pygeodesy.parseOSGR() function (osgr): True
    test 88 pygeodesy.parseUTM() function (utm): True
    test 89 pygeodesy.precision() function (dms): True
    test 90 pygeodesy.radians attribute (math): True
    test 91 pygeodesy.radiansPI() function (utils): True
    test 92 pygeodesy.radiansPI2() function (utils): True
    test 93 pygeodesy.radiansPI_2() function (utils): True
    test 94 pygeodesy.simplify module: True
    test 95 pygeodesy.simplify1() function (simplify): True
    test 96 pygeodesy.simplify2() function (simplify): True
    test 97 pygeodesy.simplifyRDP() function (simplify): True
    test 98 pygeodesy.simplifyRDPm() function (simplify): True
    test 99 pygeodesy.simplifyVW() function (simplify): True
    test 100 pygeodesy.simplifyVWm() function (simplify): True
    test 101 pygeodesy.sphericalNvector module: True
    test 102 pygeodesy.sphericalTrigonometry module: True
    test 103 pygeodesy.tanPI_2_2() function (utils): True
    test 104 pygeodesy.toDMS() function (dms): True
    test 105 pygeodesy.toLcc() function (lcc): True
    test 106 pygeodesy.toMgrs() function (mgrs): True
    test 107 pygeodesy.toOsgr() function (osgr): True
    test 108 pygeodesy.toUtm() function (utm): True
    test 109 pygeodesy.utils module: True
    test 110 pygeodesy.utm module: True
    test 111 pygeodesy.vector3d module: True
    test 112 pygeodesy.version str: True
    test 113 pygeodesy.wrap180() function (utils): True
    test 114 pygeodesy.wrap360() function (utils): True
    test 115 pygeodesy.wrap90() function (utils): True
    test 116 pygeodesy.wrapPI() function (utils): True
    test 117 pygeodesy.wrapPI2() function (utils): True
    test 118 pygeodesy.wrapPI_2() function (utils): True

    testModule(datum, 17.06.25)
    test 119 datum.Datum() class: True
    test 120 datum.Datums attribute: True
    test 121 datum.Ellipsoid() class: True
    test 122 datum.Ellipsoids attribute: True
    test 123 datum.R_KM float: True
    test 124 datum.R_M float: True
    test 125 datum.R_NM float: True
    test 126 datum.R_SM float: True
    test 127 datum.Transform() class: True
    test 128 datum.Transforms attribute: True

    testModule(dms, 17.06.04)
    test 129 dms.F_D str: True
    test 130 dms.F_DEG str: True
    test 131 dms.F_DM str: True
    test 132 dms.F_DMS str: True
    test 133 dms.F_MIN str: True
    test 134 dms.F_RAD str: True
    test 135 dms.F_SEC str: True
    test 136 dms.S_DEG str: True
    test 137 dms.S_MIN str: True
    test 138 dms.S_RAD str: True
    test 139 dms.S_SEC str: True
    test 140 dms.S_SEP str: True
    test 141 dms.bearingDMS() function: True
    test 142 dms.compassDMS() function: True
    test 143 dms.compassPoint() function: True
    test 144 dms.latDMS() function: True
    test 145 dms.lonDMS() function: True
    test 146 dms.normDMS() function: True
    test 147 dms.parse3llh() function: True
    test 148 dms.parseDMS() function: True
    test 149 dms.precision() function: True
    test 150 dms.toDMS() function: True

    testModule(ellipsoidalNvector, 17.06.25)
    test 151 ellipsoidalNvector.Cartesian() class: True
    test 152 ellipsoidalNvector.LatLon() class: True
    test 153 ellipsoidalNvector.Ned() class: True
    test 154 ellipsoidalNvector.Nvector() class: True
    test 155 ellipsoidalNvector.meanOf() function: True
    test 156 ellipsoidalNvector.toNed() function: True

    testModule(ellipsoidalVincenty, 17.06.25)
    test 157 ellipsoidalVincenty.Cartesian() class: True
    test 158 ellipsoidalVincenty.LatLon() class: True
    test 159 ellipsoidalVincenty.VincentyError() class: True

    testModule(lcc, 17.06.25)
    test 160 lcc.Conic() class: True
    test 161 lcc.Conics attribute (datum): True
    test 162 lcc.Lcc() class: True
    test 163 lcc.toLcc() function: True

    testModule(mgrs, 17.06.04)
    test 164 mgrs.Mgrs() class: True
    test 165 mgrs.parseMGRS() function: True
    test 166 mgrs.toMgrs() function: True

    testModule(nvector, 17.06.25)
    test 167 nvector.NorthPole attribute: True
    test 168 nvector.Nvector() class: True
    test 169 nvector.SouthPole attribute: True
    test 170 nvector.sumOf() function: True

    testModule(osgr, 17.06.04)
    test 171 osgr.Osgr() class: True
    test 172 osgr.parseOSGR() function: True
    test 173 osgr.toOsgr() function: True

    testModule(simplify, 17.06.04)
    test 174 simplify.simplify1() function: True
    test 175 simplify.simplify2() function: True
    test 176 simplify.simplifyRDP() function: True
    test 177 simplify.simplifyRDPm() function: True
    test 178 simplify.simplifyVW() function: True
    test 179 simplify.simplifyVWm() function: True

    testModule(sphericalNvector, 17.06.25)
    test 180 sphericalNvector.LatLon() class: True
    test 181 sphericalNvector.Nvector() class: True
    test 182 sphericalNvector.areaOf() function: True
    test 183 sphericalNvector.intersection() function: True
    test 184 sphericalNvector.meanOf() function: True
    test 185 sphericalNvector.triangulate() function: True
    test 186 sphericalNvector.trilaterate() function: True

    testModule(sphericalTrigonometry, 17.06.25)
    test 187 sphericalTrigonometry.LatLon() class: True
    test 188 sphericalTrigonometry.areaOf() function: True
    test 189 sphericalTrigonometry.intersection() function: True
    test 190 sphericalTrigonometry.isPoleEnclosedBy() function: True
    test 191 sphericalTrigonometry.meanOf() function: True

    testModule(vector3d, 17.06.25)
    test 192 vector3d.Vector3d() class: True
    test 193 vector3d.sumOf() function: True

    testModule(utm, 17.06.04)
    test 194 utm.Utm() class: True
    test 195 utm.parseUTM() function: True
    test 196 utm.toUtm() function: True

    testModule(utils, 17.06.04)
    test 197 utils.EPS float: True
    test 198 utils.EPS1 float: True
    test 199 utils.EPS2 float: True
    test 200 utils.PI float: True
    test 201 utils.PI2 float: True
    test 202 utils.PI_2 float: True
    test 203 utils.R_M float: True
    test 204 utils.cbrt() function: True
    test 205 utils.cbrt2() function: True
    test 206 utils.degrees attribute (math): True
    test 207 utils.degrees180() function: True
    test 208 utils.degrees360() function: True
    test 209 utils.degrees90() function: True
    test 210 utils.fStr() function: True
    test 211 utils.fStrzs() function: True
    test 212 utils.false2f() function: True
    test 213 utils.favg() function: True
    test 214 utils.fdot() function: True
    test 215 utils.fdot3() function: True
    test 216 utils.fsum attribute (math): True
    test 217 utils.ft2m() function: True
    test 218 utils.halfs() function: True
    test 219 utils.hsin() function: True
    test 220 utils.hsin3() function: True
    test 221 utils.hypot attribute (math): True
    test 222 utils.hypot1() function: True
    test 223 utils.hypot3() function: True
    test 224 utils.isint() function: True
    test 225 utils.isscalar() function: True
    test 226 utils.len2() function: True
    test 227 utils.m2NM() function: True
    test 228 utils.m2SM() function: True
    test 229 utils.m2ft() function: True
    test 230 utils.m2km() function: True
    test 231 utils.map1() function: True
    test 232 utils.map2() function: True
    test 233 utils.radians attribute (math): True
    test 234 utils.radiansPI() function: True
    test 235 utils.radiansPI2() function: True
    test 236 utils.radiansPI_2() function: True
    test 237 utils.tanPI_2_2() function: True
    test 238 utils.wrap180() function: True
    test 239 utils.wrap360() function: True
    test 240 utils.wrap90() function: True
    test 241 utils.wrapPI() function: True
    test 242 utils.wrapPI2() function: True
    test 243 utils.wrapPI_2() function: True

    all testModules.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 6.016 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testNavlabExamples.py

    testing testNavlabExamples.py 17.06.23
    test 1 Example 1 delta: [N:331730.863, E:332998.501, D:17398.304]
    test 2 Example 1 delta: [L:470357.384, B:45.109°, E:-2.12°]
    test 3 Example 1 elevation: -2.1198
    test 4 Example 1 bearing: 45.109
    test 5 Example 1 length: 470357.384
    test 6 Example 2 LatLon: 53.301°N, 063.435°E, +400.00m
    test 7 Example 2 toNvector: (0.267, 0.535, 0.802, +400.00)
    test 8 Example 2 delta: [N:3000.0, E:2000.0, D:100.0]
    test 9 Example 2 delta: [L:3606.938, B:33.69°, E:-1.589°]
    test 10 Example 2 destinationNed: 53.327726°N, 063.464965°E, +301.02m  FAILED, KNOWN, expected 53.327726°N, 063.464965°E, +299.138m
    test 11 Example 2 delta: [N:-86126, E:-78900, D:1069]
    test 12 Example 2 delta: [L:116807.681, B:222.493°, E:-0.524°]
    test 13 Example 2 destinationNed: 48.88667°N, 002.37472°E, +0.00m  FAILED, KNOWN, expected 48.88667°N, 002.37472°E
    test 14 Example 3 toLatLon: 39.379°N, 048.013°W, +4702059.83m
    test 15 Example 4 toCartesian: [6373290.277, 222560.201, 110568.827]
    test 16 Example 5 distanceTo: 332457
    test 17 Example 6 intermediateChordTo: 89.799981°N, 180.0°E
    test 18 Example 6 intermediateTo: 89.8°N, 180.0°E
    test 19 Example 6 intermediateChordTo: 51.372294°N, 000.707192°E
    test 20 Example 6 intermediateTo: 51.372084°N, 000.707337°E
    test 21 Example 7 meanOf: 67.2362°N, 006.9175°W
    test 22 Example 8 destination(sphNv): 79.991549°N, 090.017698°W
    test 23 Example 8 destination(sphTy): 79.991549°N, 090.017698°W
    test 24 Example 8 destination(elVincenty): 79.991584°N, 090.017621°W
    test 25 Example 9 intersection: 40.318643°N, 055.901868°E
    test 26 Example 10 crossTrackDistance: 11118
    2 testNavlabExamples.py tests (7.7%) FAILED, incl. 2 KNOWN (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 4.381 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testOsgr.py

    testing testOsgr.py 17.06.23 (module osgr 17.06.04)
    test 1 WGS84: 51.4778°N, 000.0016°W
    test 2 OSGB36: 51.477284°N, 000.00002°E
    test 3 WGS84: 51.4778°N, 000.0016°W
    test 4 OSgr1: TG 51409 13177
    test 5 OSgr1: [G:TG, E:51409, N:13177]
    test 6 toLatLon1: 52°39′28.72″N, 001°43′00.63″E  FAILED, KNOWN, expected 52°39′28.72″N, 001°42′57.74″E
    test 7 toLatLon1: 52.657979°N, 001.716843°E  FAILED, KNOWN, expected 52.657977°N, 001.716038°E
    test 8 toOsgr1: 651463,313180  FAILED, KNOWN, expected 651409.903, 313177.270
    test 9 toLatLon2: 52°39′27.25″N, 001°43′07.37″E  FAILED, KNOWN, expected 52°39′27.25″N, 001°43′04.47″E
    test 10 toLatLon2: 52.65757°N, 001.718713°E  FAILED, KNOWN, expected 52.657568°N, 001.717908°E
    test 11 toOsgr2: 651463,313180  FAILED, KNOWN, expected 651409,313177
    test 12 toOsgr3: TG 51409 13177
    test 13 toOsgr4: TG 51409 13177
    test 14 OSGR1: TG 48251 11932
    test 15 OSGR1: [G:TG, E:48251, N:11932]
    test 16 OSGR2: TG 51409 13177
    test 17 OSGR2: [G:TG, E:51409, N:13177]
    test 18 OSGR3: TG 51409 13177
    test 19 OSGR3: [G:TG, E:51409, N:13177]
    test 20 OSGR4: TG 51409 13177
    test 21 OSGR4: [G:TG, E:51409, N:13177]
    test 22 OSGR5: 651409,313177
    test 23 OSGR5: [OSGR:651409.000,313177.000]
    test 24 OSGR6: 651409,313177
    6 testOsgr.py tests (25.0%) FAILED, incl. 6 KNOWN (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 4.096 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testRoutes.py

    testing testRoutes.py 17.06.21
    all testRoutes.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 10.014 us

running Pythonista3 ~/PyGeodesy-17.7.9/test/testSimplify.py

    testing testSimplify.py 17.06.23 (module simplify 17.06.04)
    test 1 simplify1(16614, adjust=True) 1m (111.256 ms): 16597
    
    test 2 simplify2(16614, adjust=True, shortest=False) 1m (173.797 ms): 8239
    
    test 3 simplify2(16614, adjust=True, shortest=True) 1m (176.678 ms): 8247
    
    test 4 simplifyVWm(16614, adjust=True) 1m (276.349 ms): 16488
    
    test 5 simplifyVWm(16614, adjust=False) 1m (212.474 ms): 16490
    
    test 6 simplifyRDPm(16614, adjust=True, shortest=False) 1m (336.312 ms): 16196
    
    test 7 simplifyRDPm(16614, adjust=True, shortest=True) 1m (343.679 ms): 16201
    
    test 8 simplifyVW(1661, adjust=True) 1m (29.970 ms): 1657
    
    test 9 simplifyVW(1661, adjust=False) 1m (20.612 ms): 1657
    
    test 10 simplifyRDP(1661, adjust=True, shortest=False) 1m (8.618 sec): 1660
    
    test 11 simplifyRDP(1661, adjust=True, shortest=True) 1m (9.188 sec): 1661
    
    test 12 simplifyVW(69, adjust=False) 1m (998.020 us): 69
    
    test 13 simplifyRDP(69, adjust=False, shortest=False) 1m (7.038 ms): 68
    
    all testSimplify.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 19.501 sec

running Pythonista3 ~/PyGeodesy-17.7.9/test/testSpherical.py

    testing testSpherical.py 17.06.25

    testLatLon(sphericalNvector, 17.06.25)
    test 1 isEllipsoidal: False
    test 2 isSpherical: True
    test 3 lat/lonDMS: 52.20472°N, 000.14056°E
    test 4 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E
    test 5 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E
    test 6 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E
    test 7 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E
    test 8 lat/lonDMS F_RAD: 0.911144N, 0.002453E
    test 9 equals: True
    test 10 equals: False
    test 11 initialBearingTo: 156.1666
    test 12 finalBearingTo: 157.8904
    test 13 initialBearingTo: 65.8921
    test 14 copy: True
    test 15 distanceTo: 404279.720589
    test 16 distanceTo: 404279.720589
    test 17 distanceTo: 2145
    test 18 intermediateTo: 51.372084°N, 000.707337°E
    test 19 intermediateTo: True
    test 20 intermediateTo: 404279.721
    test 21 intermediateTo+5: 35.160975°N, 008.989542°E
    test 22 intermediateTo+5: 5.000
    test 23 intermediateTo-4: 64.911647°N, 013.726301°W
    test 24 intermediateTo-4: 4.000
    test 25 intermediateChordTo: 51.372294°N, 000.707192°E
    test 26 intermediateChordTo: True
    test 27 midpointTo: 50.536327°N, 001.274614°E
    test 28 destination: 51.513546°N, 000.098345°W
    test 29 destination: 51°30′49″N, 000°05′54″W
    test 30 destination: 34°37′N, 116°33′W
    test 31 destination: 34.613647°N, 116.55116°W
    test 32 alongTrackDistanceTo: 62331.59
    test 33 alongTrackDistanceTo: 62331.58
    test 34 alongTrackDistanceTo: 99.588
    test 35 alongTrackDistanceTo: -7702.7
    test 36 alongTrackDistanceTo: 7587.6
    test 37 crossTrackDistanceTo: -305.67
    test 38 crossTrackDistanceTo: -307.55
    test 39 crossTrackDistanceTo: 7.4524
    test 40 greatCircle: (-0.79408, 0.12856, 0.59406)
    test 41 greatCircleTo: (-0.79408, 0.12859, 0.59406)
    test 42 isclockwise: False
    test 43 isclockwise: True
    test 44 isclockwise: too few points: 2
    test 45 isconvex: False
    test 46 isconvex: True
    test 47 isconvex: too few points: 2

    testSpherical(sphericalNvector, 17.06.25)
    test 48 isSpherical: True
    test 49 isEllipsoidal: False
    test 50 isSpherical: True
    test 51 isEllipsoidal: False
    test 52 intersection: 50.907608°N, 004.508575°E
    test 53 intersection: 50°54′27.39″N, 004°30′30.87″E
    test 54 intersection: True
    test 55 intersection: 43.5719°N, 116.188757°W
    test 56 intersection: 43°34′18.84″N, 116°11′19.53″W
    test 57 intersection: True
    test 58 maxLat0: 90.0
    test 59 maxLat1: 89.0
    test 60 maxLat90: 0.0
    test 61 rhumbBearingTo: 116.722
    test 62 rhumbDestination: 50.964155°N, 001.853°E
    test 63 rhumbDestination: True
    test 64 rhumbDistanceTo: 40307.8
    test 65 rhumbMidpointo: 51.0455°N, 001.595727°E
    test 66 rhumbMidpointo: True
    test 67 areaOf: 8.6660587507e+09
    test 68 areaOf: 6.18e+09

    testVectorial(sphericalNvector, 17.06.25)
    test 69 crossTrackDistanceTo: -305.67
    test 70 crossTrackDistanceTo: -307.55
    test 71 toLatLon: 44.995674°N, 045.0°E
    test 72 toNvector: (0.50004, 0.50004, 0.70705)
    test 73 equals: False
    test 74 equals: True
    test 75 length: 0.99992449715
    test 76 length: 1.0
    test 77 sumOf: (52.70504, 0.61904, 0.70705)
    test 78 sumOf: Nv
    test 79 length: 52.7134151513
    test 80 copy: True
    test 81 length: 52.2051356286
    test 82 length: 52.2051356286
    test 83 nearestOn: 51.0004°N, 001.9°E
    test 84 nearestOn: True
    test 85 distanceTo: 42.712
    test 86 nearestOn: 51.0°N, 002.0°E
    test 87 nearestOn: True
    test 88 nearestOn: 00.0°N, 000.0°E
    test 89 nearestOn: True
    test 90 nearestOn: 00.0°N, 020.0°E
    test 91 nearestOn: True
    test 92 BasseC: 47.3038°N, 002.5721°W
    test 93 BasseH: 47.311067°N, 002.528617°W
    test 94 triangulate: 47.323667°N, 002.568501°W
    test 95 triangulate: True

    testLatLon(sphericalTrigonometry, 17.06.25)
    test 96 isEllipsoidal: False
    test 97 isSpherical: True
    test 98 lat/lonDMS: 52.20472°N, 000.14056°E
    test 99 lat/lonDMS F_DM: 52°12.283′N, 000°08.434′E
    test 100 lat/lonDMS F_DM: 52°12.2832′N, 000°08.4336′E
    test 101 lat/lonDMS F_DMS: 52°12′17″N, 000°08′26″E
    test 102 lat/lonDMS F_DMS: 52°12′17.0″N, 000°08′26.0″E
    test 103 lat/lonDMS F_RAD: 0.911144N, 0.002453E
    test 104 equals: True
    test 105 equals: False
    test 106 initialBearingTo: 156.1666
    test 107 finalBearingTo: 157.8904
    test 108 initialBearingTo: 65.8921
    test 109 copy: True
    test 110 distanceTo: 404279.720589
    test 111 distanceTo: 404279.720589
    test 112 distanceTo: 2145
    test 113 intermediateTo: 51.372084°N, 000.707337°E
    test 114 intermediateTo: True
    test 115 intermediateTo: 404279.721
    test 116 intermediateTo+5: 35.160975°N, 008.989542°E
    test 117 intermediateTo+5: 5.000
    test 118 intermediateTo-4: 64.911647°N, 013.726301°W
    test 119 intermediateTo-4: 4.000
    test 120 midpointTo: 50.536327°N, 001.274614°E
    test 121 destination: 51.513546°N, 000.098345°W
    test 122 destination: 51°30′49″N, 000°05′54″W
    test 123 destination: 34°37′N, 116°33′W
    test 124 destination: 34.613647°N, 116.55116°W
    test 125 alongTrackDistanceTo: type(end) mismatch: int vs sphericalTrigonometry.LatLon
    test 126 alongTrackDistanceTo: 62331.58
    test 127 alongTrackDistanceTo: 99.588
    test 128 alongTrackDistanceTo: -7702.7
    test 129 alongTrackDistanceTo: 7587.6
    test 130 crossTrackDistanceTo: type(end) mismatch: int vs sphericalTrigonometry.LatLon
    test 131 crossTrackDistanceTo: -307.55
    test 132 crossTrackDistanceTo: 7.4524
    test 133 greatCircle: (-0.79408, 0.12856, 0.59406)
    test 134 isclockwise: False
    test 135 isclockwise: True
    test 136 isclockwise: too few points: 2
    test 137 isconvex: False
    test 138 isconvex: True
    test 139 isconvex: too few points: 2

    testSpherical(sphericalTrigonometry, 17.06.25)
    test 140 isSpherical: True
    test 141 isEllipsoidal: False
    test 142 isSpherical: True
    test 143 isEllipsoidal: False
    test 144 intersection: 50.907608°N, 004.508575°E
    test 145 intersection: 50°54′27.39″N, 004°30′30.87″E
    test 146 intersection: True
    test 147 intersection: 43.5719°N, 116.188757°W
    test 148 intersection: 43°34′18.84″N, 116°11′19.53″W
    test 149 intersection: True
    test 150 maxLat0: 90.0
    test 151 maxLat1: 89.0
    test 152 maxLat90: 0.0
    test 153 crossingParallels: 009°35′38.65″E, 170°24′21.35″E
    test 154 rhumbBearingTo: 116.722
    test 155 rhumbDestination: 50.964155°N, 001.853°E
    test 156 rhumbDestination: True
    test 157 rhumbDistanceTo: 40307.8
    test 158 rhumbMidpointo: 51.0455°N, 001.595727°E
    test 159 rhumbMidpointo: True
    test 160 areaOf: 8.6660587507e+09
    test 161 areaOf: 6.18e+09
    test 162 isPoleEnclosedBy: True
    test 163 isPoleEnclosedBy: False  FAILED, KNOWN, expected True

    1 testSpherical.py test (0.6%) FAILED, incl. 1 KNOWN (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 16.060 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testUtm.py

    testing testUtm.py 17.06.21 (module utm 17.06.04)
    test 1 Utm1: 03 N 448251.0 5411932.0001
    test 2 Utm2: 31 N 448252 5411933
    test 3 Utm2: 31 N 448251.795 5411932.678
    test 4 Utm2: 31 N 448251.8 5411932.7 n/a n/a
    test 5 Utm.toLatLon1: 48.8582°N, 002.2945°E
    test 6 Utm.toLatLon1: 48°51′29.52″N, 002°17′40.2″E
    test 7 toUtm1: 31 N 448252 5411933
    test 8 toUtm1: 31 N 448251.795 5411932.678
    test 9 toUtm2: [Z:31, H:N, E:448252, N:5411933, C:-000.53131221°, S:0.9996329]
    test 10 toUtm4: 48 N 377302 1483035
    test 11 toUtm5: 48P N 377302.354183 1483034.777084 -000.26291348° 0.99978623
    test 12 toUtm6: 13 S 622698 8516965
    test 13 toUtm7: 13L S 622697.645817 8516965.222916 -000.26291348° 0.99978623
    test 14 toMgrs1: 13L FF 22697 16965
    test 15 toMgrs2: 31U DQ 48251 11932
    test 16 Utm8: 18 N 516620 4574500
    test 17 Utm8.toLatLon: 41.321801°N, 074.801413°W
    test 18 Utm8.toLatLon: 41.321801N, 074.801413W
    test 19 toUtm(61.44°N, 025.4°E): 35V N 414668 6812845
    test 20 toUtm(47.04°S, 073.48°W): 18G S 615472 4789270
    test 21 toUtm(40.4°N, 074.7°W): 18T N 525458 4472198
    test 22 toUtm(44.5°N, 088.5°W): 16T N 380753 4928503
    test 23 toUtm(50.8694°N, 115.6508°W): 11U N 594937 5636169
    test 24 toUtm(00.0°N, 000.0°E): 31N N 166021 0
    test 25 toUtm(00.13°N, 000.2324°W): 30N N 808084 14386
    test 26 toUtm(45.6456°S, 023.3545°E): 34G S 683474 4942631
    test 27 toUtm(12.765°S, 033.8765°W): 25L S 404859 8588691
    test 28 toUtm(80.5434°S, 170.654°W): lat outside UTM: -80.54340000000002
    test 29 toUtm(90.0°N, 177.0°E): lat outside UTM: 90.0
    test 30 toUtm(90.0°S, 177.0°W): lat outside UTM: -90.0
    test 31 toUtm(90.0°N, 003.0°E): lat outside UTM: 90.0
    test 32 toUtm(23.4578°N, 135.4545°W): 08Q N 453580 2594273
    test 33 toUtm(77.345°N, 156.9876°E): 57X N 450794 8586116
    test 34 toUtm(89.3454°S, 048.9306°W): lat outside UTM: -89.34539999999998
    test 35 toUtm(60.0°N, 001.0°E): 31V N 388456 6653097
    test 36 toUtm(60.0°N, 003.0°E): 32V N 165640 6666594
    test 37 toUtm(60.0°N, 006.0°E): 32V N 332705 6655205
    test 38 toUtm(60.0°N, 009.0°E): 32V N 500000 6651411
    test 39 toUtm(60.0°N, 012.0°E): 33V N 332705 6655205
    test 40 toUtm(76.0°N, 001.0°E): 31X N 446000 8436100
    test 41 toUtm(76.0°N, 007.0°E): 31X N 607943 8438843
    test 42 toUtm(76.0°N, 013.0°E): 33X N 446000 8436100
    test 43 toUtm(76.0°N, 019.0°E): 33X N 607943 8438843
    test 44 toUtm(76.0°N, 025.0°E): 35X N 446000 8436100
    test 45 toUtm(76.0°N, 031.0°E): 35X N 607943 8438843
    test 46 toUtm(76.0°N, 037.0°E): 37X N 446000 8436100
    all testUtm.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 8.554 ms

running Pythonista3 ~/PyGeodesy-17.7.9/test/testVectorial.py

    testing testVectorial.py 17.06.23

    testVectorial(ellipsoidalNvector, 17.06.25)
    test 1 toLatLon: 44.995674°N, 045.0°E
    test 2 toNvector: (0.50004, 0.50004, 0.70705)
    test 3 equals: False
    test 4 equals: True
    test 5 length: 0.99992449715
    test 6 length: 1.0
    test 7 sumOf: (52.70504, 0.61904, 0.70705)
    test 8 sumOf: Nv
    test 9 length: 52.7134151513
    test 10 copy: True
    test 11 length: 52.2051356286
    test 12 length: 52.2051356286

    testVectorial(sphericalNvector, 17.06.25)
    test 13 crossTrackDistanceTo: -305.67
    test 14 crossTrackDistanceTo: -307.55
    test 15 toLatLon: 44.995674°N, 045.0°E
    test 16 toNvector: (0.50004, 0.50004, 0.70705)
    test 17 equals: False
    test 18 equals: True
    test 19 length: 0.99992449715
    test 20 length: 1.0
    test 21 sumOf: (52.70504, 0.61904, 0.70705)
    test 22 sumOf: Nv
    test 23 length: 52.7134151513
    test 24 copy: True
    test 25 length: 52.2051356286
    test 26 length: 52.2051356286
    test 27 nearestOn: 51.0004°N, 001.9°E
    test 28 nearestOn: True
    test 29 distanceTo: 42.712
    test 30 nearestOn: 51.0°N, 002.0°E
    test 31 nearestOn: True
    test 32 nearestOn: 00.0°N, 000.0°E
    test 33 nearestOn: True
    test 34 nearestOn: 00.0°N, 020.0°E
    test 35 nearestOn: True
    test 36 BasseC: 47.3038°N, 002.5721°W
    test 37 BasseH: 47.311067°N, 002.528617°W
    test 38 triangulate: 47.323667°N, 002.568501°W
    test 39 triangulate: True

    all testVectorial.py tests passed (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 4.164 ms

~/PyGeodesy-17.7.9/test/run.py Pythonista3 all 1460 tests OK (PyGeodesy 17.7.9 Python 3.5.1 64bit iOS 10.3.2) 20.574 sec
