Ë
    Ï.fŸ  ã                   ó¢   — d Z ddlZddlZddlmZ  G d„ dej
                  «      Z G d„ dej
                  «      Z G d„ d	ej
                  «      Zy)
zGeodesic testsé    N)ÚGeodesicc                   óž   — e Zd ZdZg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gZd„ Zd„ Zd„ Zy)ÚGeodesicTestzGeodesic test suite)g¶¾HhËÍA@gz6«>WnaÀg�ßîäQÆ[@gš|³Í�Y&ÀgÁÿV²c}QÀg}_µA)`@g—wï‘é
aAgöpoŽw T@géh'�$îWAg§B1õŽAÅ?gäè½…àÅ?gÝ€©X¼[§B)gÐ¸p $ÃK@g>–>tAƒZ@gdÈô¤"6@gî±ô¡BS@g²ºÕ¥h@g‰z®+G[@g 0ð¿QOAg£²SErB@gªãÎªB6MAgEñoÄÚŸé?g—ž·Þß¡é?gÏ»béÌB)g|,}è‚ú5Àg=,ÔšæÒa@gvÐ¡ç8@ÀgÁÿV²ëD@g¼?¤X@g¥¢ûëDÀg 	¡Ë`Ag
ˆFèR@gªò¤À€WAgœÏkÑÃÏ?gÓÓ %éÏ?gÞü&˜Â)g�x]¿`¿PÀgÞ	Š\@gÝ$g„·e@gï¬Ýv¡i)Àg_^€}tÞq@gº8 ‰@g_f�DeAg&çu$ÕY@g¹uJä„þWAg:D0ÑíÆ¿g³m•âT¯Æ¿gðÞA¶Ø“ÛÂ)gLqUÙwm1ÀgÉ<÷ªe@gS+„çácÀg5{ ²/Àg’yä¾@gt˜˜É4ÀgbC8eç©nAgóÁxÅ{b@g|FÓzLAgÂýM½ïê¿g{Y€dê¿g­BŠá8>ÖB)g÷Ç{ÕÊl@@gE*Œ-%H@gÁ(ÆÏb@gÛ…æ:�$LÀgwR~RIi@g^ûŠ‚…H@gŒ¾3žƒçoAg5’Òb@géGsHAg¬K:ûyòë¿g"IÑ~®ë¿gAäšyÞxÐÂ)gVñFæ‘ß@g4hèŸà^J@g;„é±8%W@gƒÀÊ¡E–ÀgØd�zˆÅi@g›V40®V@gÁþÓhOpAgß0g9·Dc@gÿ•ùÎ!&EAg?ï/ûÌì¿g³2¶è¹Ëì¿gìßèÓsÂ)gÔ} R›HIÀgƒ/L¦
N0Àg·ó1·#\ZÀg•‚n/iÈ@ÀgJ˜iûW¾WÀgÙš)7�¬GÀgBmÂ ] XAgTR·
M@gY!³_¢TAgªÛp´$úà?gÁ±„Öôà?g-ˆX­ÂB)gP6å
wMÀgTã¥›ÄÐ!ÀgÂ[$Šäža@g²ºÕsÒ!ÀgS?o*R¤`@gÉõÆÒcA3@gô´@DlfAgÖíË>]pZ@g1TˆNïvWAg,áí¹ýÐ¿g²º{€æRÑ¿g¯l—5–ÓÂ)gIKåí5QÀgy@Ù”+’RÀgÉ“ëéŽqW@g"lxz¥PIÀg@aÃÓ» ÀgZ+
ìSA@g@‰vd0NAgªçÃ¦?ÉA@g	ü)zíKLAg“fá¶ãê?gø!¦0ÿê?gå¶goÃÂ)g�Ÿqá@%Àg$—ÿ�~@ÀgkÖ>EO›UÀgÕxé&1ˆ@gw¡¹N#Ê`ÀgölmRTÀg›Ù]¬áeAg¸3ËØY@gÐ�bêv—WAg5ÂˆtžÍ¿g´ö_v£Í¿gbÜqÃáŒŽB)g%¯Î1 Ã5ÀgÙÄëúÜd@gÙp•–ÅQ=@g!¡J]H@gB•š=¿j@g·�)ÁE@g)ÉÁl°ZaAgâŒ>š©}T@g=3«:šXAg†!!>\àÁ?g•¦-&¥Â?gôJ	Š<¢B)g”í*¤Ì3Àg¥Ú§ã1ÏeÀgúOy¥´ÊQ@g[Î¥¸ªü'Àg|~!<KcÀgò#‹Ï³eP@gÖOnN±AAgpçWˆå4@gäÿhoœMAAg”qú<Šåí?gFÉ˜ã]åí?gHîˆìe¢ŒÂ)g%;6ñê'ÀgüŠ}<]Àg–‘4�›-W@g^h®ÓHK@gE¦aø¨@gU3“©S@g‚�R<cjAg×I»f,_@g7;cK�ñSAgä—Z‘Ž3â¿gYèTSÈ6â¿gµÍ¢j*¢Â)gbÖ‹¡œöUÀg}iÆjU@gÿGw5³GPÀgú³)"ŸP@g¨o™Óe0@g¬Q"�ü�Àg		u]|pAg»ä¿rc@g&Yˆ¼7DAg’°iúí¿gÝÌ3b�&í¿gÄýgÃB)gNîw(
ôû?gì£SW>
`@g™JûneYÀg'÷;U&ÀgË¾+‚ÿ½'@g] ÌÙ”UÀgléø£Æ¯hAgÖmÿ¡)]@gqMØ5Ž­UAg½?v\ƒµÜ¿gÀí,d°Ü¿gNÏ,ð“£B)g}iÆº9ÀgP6å
bÀgéÃC¸4cÀgJ˜iûWÚLÀg¡-çRÜÒpÀgéßà£,HÀg²Ù×hôaAg	Âï¸‡*U@g‰ ',4?XAghØ’ÖL¸?g·nLGí¸?gæbÛYñÐB)gE�>‘'�DÀg×£p=
•^@gçÙDbú‘,@g˜4Fë¨JÀg|DL‰$L`@gÌ~œ¯Pœ%@g¦Z~§MAg	¢„ñ+A@gv•Ëð/aKAg³Uåoê?gÅ–ÊªOlê?gÛŽå�rà�Â)gm±&@g§"ÆHa@go¢þõôÛS@g[rP‚@g)?©öéán@ge’ŸYQíY@gf5Ú¸fAg«¼§ëÝÕZ@gK#B.ž(WAgõŸ Ó¿geëuÿÓ¿gd÷”„á$¯B)g*‘D/£x=Àgs.ÅUeÉW@gÔËö¢îxdÀgå›mnLw;Àgê46JQÀg¿x&{”Ñ/ÀgšÕÑút¹iAgÛnUÑR^@g1§?õèTAgÒ·¶=}à¿g±• „à¿g�ƒ-Í×Bc                 ór  — t         j                  D �]#  }|\  }}}}}}}}	}
}}}t        j                  j	                  ||||t        j
                  t        j                  z  «      }| j                  ||d   d¬«       | j                  ||d   d¬«       | j                  ||d   d¬«       | j                  ||d   d¬«       | j                  |	|d   d¬«       | j                  |
|d	   d¬«       | j                  ||d
   d¬«       | j                  ||d   d¬«       | j                  ||d   d¬«       �Œ& y)z/Helper function for testing inverse calculationÚlon2ç‚vIhÂ%<=©ÚdeltaÚazi1Úazi2Ús12ç:Œ0âŽyE>Úa12Úm12ÚM12çVçž¯Ò<ÚM21ÚS12çš™™™™™¹?N)r   Ú	testcasesr   ÚWGS84ÚInverseÚALLÚLONG_UNROLLÚassertAlmostEqual)ÚselfÚlÚlat1Úlon1r   Úlat2r   r   r   r   r   r   r   r   Úinvs                  ú_C:\Users\user\Documents\project_loop\venv\Lib\site-packages\geographiclib/test/test_geodesic.pyÚtest_inversezGeodesicTest.test_inverse]   sG  € ä×#Ñ#ó ;ˆà'(ñ%€tˆT�4˜˜t TØ
ˆC��c˜3 Ü�N‰N×"Ñ" 4¨¨t°TÜ—\‘\¤H×$8Ñ$8Ñ8ó:€cà
×Ñ˜T 3 v¡;¸ÐÔ>Ø
×Ñ˜T 3 v¡;¸ÐÔ>Ø
×Ñ˜T 3 v¡;¸ÐÔ>Ø
×Ñ˜S # e¡*°dÐÔ;Ø
×Ñ˜S # e¡*°eÐÔ<Ø
×Ñ˜S # e¡*°dÐÔ;Ø
×Ñ˜S # e¡*°eÐÔ<Ø
×Ñ˜S # e¡*°eÐÔ<Ø
×Ñ˜S # e¡*°cÐÖ:ñ;ó    c                 óD  — t         j                  D �]  }|\  }}}}}}}}	}
}}}t        j                  j	                  ||||t        j
                  t        j                  z  «      }| j                  ||d   d¬«       | j                  ||d   d¬«       | j                  ||d   d¬«       | j                  |	|d   d¬«       | j                  |
|d   d¬«       | j                  ||d	   d
¬«       | j                  ||d   d
¬«       | j                  ||d   d¬«       �Œ y)z.Helper function for testing direct calculationr    r   r	   r   r   r   r   r   r   r   r   r   r   N)r   r   r   r   ÚDirectr   r   r   ©r   r   r   r   r   r    r   r   r   r   r   r   r   r   Údirects                  r"   Útest_directzGeodesicTest.test_directn   s/  € ä×#Ñ#ó >ˆà'(ñ%€tˆT�4˜˜t TØ
ˆC��c˜3 Ü�~‰~×$Ñ$ T¨4°°sÜ%-§\¡\´H×4HÑ4HÑ%HóJ€fà
×Ñ˜T 6¨&¡>¸5ÐÔAØ
×Ñ˜T 6¨&¡>¸5ÐÔAØ
×Ñ˜T 6¨&¡>¸5ÐÔAØ
×Ñ˜S &¨¡-¸ÐÔ?Ø
×Ñ˜S &¨¡-¸ÐÔ>Ø
×Ñ˜S &¨¡-¸ÐÔ?Ø
×Ñ˜S &¨¡-¸ÐÔ?Ø
×Ñ˜S &¨¡-¸ÐÖ=ñ>r$   c                 óD  — t         j                  D �]  }|\  }}}}}}}}	}
}}}t        j                  j	                  ||||	t        j
                  t        j                  z  «      }| j                  ||d   d¬«       | j                  ||d   d¬«       | j                  ||d   d¬«       | j                  ||d   d¬«       | j                  |
|d   d¬«       | j                  ||d	   d
¬«       | j                  ||d   d
¬«       | j                  ||d   d¬«       �Œ y)z>Helper function for testing direct calculation with arc lengthr    r   r	   r   r   r   r   r   r   r   r   r   r   N)r   r   r   r   Ú	ArcDirectr   r   r   r'   s                  r"   Útest_arcdirectzGeodesicTest.test_arcdirect~   s/  € ä×#Ñ#ó >ˆà'(ñ%€tˆT�4˜˜t TØ
ˆC��c˜3 Ü�~‰~×'Ñ'¨¨d°D¸#Ü(0¯©´x×7KÑ7KÑ(KóM€fà
×Ñ˜T 6¨&¡>¸5ÐÔAØ
×Ñ˜T 6¨&¡>¸5ÐÔAØ
×Ñ˜T 6¨&¡>¸5ÐÔAØ
×Ñ˜S &¨¡-¸ÐÔ>Ø
×Ñ˜S &¨¡-¸ÐÔ>Ø
×Ñ˜S &¨¡-¸ÐÔ?Ø
×Ñ˜S &¨¡-¸ÐÔ?Ø
×Ñ˜S &¨¡-¸ÐÖ=ñ>r$   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r#   r)   r,   © r$   r"   r   r      s—   „ ÙòCòCòCòGòEòFòEòCòFòDòDòCòCòEòEòEòCòCòEòFð[PG€)òd;ò">ó >r$   r   c                   óÐ   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d „ Z"d!„ Z#y")#ÚGeodSolveTestzGeodSolve testsc                 óÒ   — t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  |d	   d
d¬«       | j                  |d   dd¬«       y)Ú
GeodSolve0gÍÌÌÌÌLD@g33333sRÀg§J)""‚H@gffffff@r   gjö@+0¼J@çñhãˆµøÔ>r	   r   gr§t°þå[@r   i*PY ç      à?N©r   r   r   r   ©r   r!   s     r"   Útest_GeodSolve0zGeodSolveTest.test_GeodSolve0‘   sg   € ä
�.‰.×
 Ñ
   u¨k¸4Ó
@€CØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜v™;¨	¸6ÐÔBØ×Ñ˜3˜u™: w¸ÐÕ<r$   c                 óÒ   — t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  |d	   d
d¬«       | j                  |d   dd¬«       y)Ú
GeodSolve1gW¶îjâQD@g#qÉPÙqRÀg     ÀJ@g    äPVAr    g½á´à�H@r6   r	   r   gÀx}@r   g
ô‰<Iè[@N)r   r   r&   r   ©r   r(   s     r"   Útest_GeodSolve1zGeodSolveTest.test_GeodSolve1˜   sg   € ä�^‰^×"Ñ" ;°¸dÀFÓK€FØ×Ñ˜6 &™>¨8¸VÐÔDØ×Ñ˜6 &™>¨7¸FÐÔCØ×Ñ˜6 &™>¨9¸fÐÕEr$   c                 ó€  — t        dd«      }|j                  dddd«      }| j                  |d   dd	¬
«       | j                  |d   dd	¬
«       | j                  |d   dd¬
«       |j                  dddd«      }| j                  |d   dd	¬
«       | j                  |d   dd	¬
«       | j                  |d   dd¬
«       y)z4Check fix for antipodal prolate bug found 2010-09-04ç     jXAçOè´�N{¿g¤ˆ«x#³?r   g¤ˆ«x#³¿é´   r   gkŸŽÇ€V@r6   r	   r   r   éÑË2r7   r   gš™™™™™¹¿gKê4€V@N©r   r   r   ©r   Úgeodr!   s      r"   Útest_GeodSolve2zGeodSolveTest.test_GeodSolve2Ÿ   sÌ   € ä�E˜8Ó$€DØ
�,‰,�w  8¨SÓ
1€CØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜u™: x¸ÐÔ=Ø
�,‰,�s˜A˜t SÓ
)€CØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜u™: x¸ÐÕ=r$   c                 óv   — t         j                  j                  dddd«      }| j                  |d   dd¬«       y	)
z-Check fix for short line bug found 2010-05-21gº÷&?B@r   g»÷&?B@gH¯¼šò×ª>r   g;ßO�—n²?çü©ñÒMb@?r	   Nr8   r9   s     r"   Útest_GeodSolve4zGeodSolveTest.test_GeodSolve4«   s8   € ä
�.‰.×
 Ñ
  °!Ø!2°Ió?€Cà×Ñ˜3˜u™: u°fÐÕ=r$   c                 óR  — t         j                  j                  dddd«      }| j                  |d   dd¬«       |d	   dk  r8| j                  |d	   d
d¬«       | j                  t	        |d   «      dd¬«       y| j                  |d	   dd¬«       | j                  |d   dd¬«       y)z.Check fix for point2=pole bug found 2010-05-03g+ÉÞ@4’?é   r   ç    ÐcAr    éZ   r6   r	   r   ijÿÿÿr   rB   N)r   r   r&   r   Úabsr=   s     r"   Útest_GeodSolve5zGeodSolveTest.test_GeodSolve5±   s«   € ä�^‰^×"Ñ"Ð#3°R¸¸DÓA€FØ×Ñ˜6 &™>¨2°vÐÔ>Øˆf�~˜ÒØ
×Ñ˜V F™^¨T¸6ÐÔBØ
×ÑœS ¨¡Ó0°#¸vÐÕFà
×Ñ˜V F™^¨R¸ÐÔ@Ø
×Ñ˜V F™^¨Q¸ÐÕ?r$   c                 óZ  — t         j                  j                  dddd«      }| j                  |d   dd¬«       t         j                  j                  d	dd
d«      }| j                  |d   dd¬«       t         j                  j                  dddd«      }| j                  |d   dd¬«       y)z…Check fix for volatile sbet12a bug found 2011-06-25 (gcc 4.4.4
    x86 -O3).  Found again on 2012-03-27 with tdm-mingw32 (g++ 4.6.1).gÂËBÀõV@r   gÂËBÀõVÀgƒ‹Qˆdf@r   gD‹l£ÃsArI   r	   gP'ÓìÅPV@gP'ÓìÅPVÀg6›ô*Àf@gçû©]ÅsAg*q�åQUV@g*q�åQUVÀgOePÆf@gu“nÅsANr8   r9   s     r"   Útest_GeodSolve6zGeodSolveTest.test_GeodSolve6¼   s¬   € ô �.‰.×
 Ñ
  °!Ø!1Ð3IóK€Cà×Ñ˜3˜u™: |¸VÐÔDÜ
�.‰.×
 Ñ
  °!Ø!1Ð3IóK€Cà×Ñ˜3˜u™: |¸VÐÔDÜ
�.‰.×
 Ñ
  °!Ø!7Ð9NóP€Cà×Ñ˜3˜u™: |¸VÐÕDr$   c                 óv   — t         j                  j                  dddd«      }| j                  |d   dd¬«       y	)
zACheck fix for volatile x bug found 2011-06-25 (gcc 4.4.4 x86 -O3)gs)L@r   gs)LÀgjËèœEuf@r   gP�—d=sArI   r	   Nr8   r9   s     r"   Útest_GeodSolve9zGeodSolveTest.test_GeodSolve9É   s:   € ä
�.‰.×
 Ñ
  °!Ø!1Ð3IóK€Cà×Ñ˜3˜u™: |¸VÐÕDr$   c                 óv   — t         j                  j                  dddd«      }| j                  |d   dd¬«       y	)
zRCheck fix for adjust tol1_ bug found 2011-06-25 (Visual Studio
    10 rel + debug)gÎ¿W+idJ@r   gÍ¿W+idJÀg³HâMtf@r   g¸…ÁÂsArI   r	   Nr8   r9   s     r"   Útest_GeodSolve10zGeodSolveTest.test_GeodSolve10Ï   s<   € ô �.‰.×
 Ñ
  °!Ø!7Ð9OóQ€Cà×Ñ˜3˜u™: |¸VÐÕDr$   c                 óv   — t         j                  j                  dddd«      }| j                  |d   dd¬«       y	)
zRCheck fix for bet2 = -bet1 bug found 2011-06-25 (Visual Studio
    10 rel + debug)g]Q÷ŸíBH@r   g[Q÷ŸíBHÀgGôè0sf@r   gÓMbŒ)sArI   r	   Nr8   r9   s     r"   Útest_GeodSolve11zGeodSolveTest.test_GeodSolve11Ö   s<   € ô �.‰.×
 Ñ
  °!Ø!6Ð8NóP€Cà×Ñ˜3˜u™: |¸VÐÕDr$   c                 óÎ   — t        dd«      }|j                  dddd«      }| j                  |d   dd¬	«       | j                  |d
   dd¬	«       | j                  |d   dd¬	«       y)z›Check fix for inverse geodesics on extreme prolate/oblate
    ellipsoids Reported 2012-08-29 Stefan Guenther
    <stefan.gunther@embl.de>; fixed 2012-10-07g33333sV@gHáz®Gý¿r   éöÿÿÿé    r   gáz®G^@ç{®Gáz„?r	   r   gš™™™™IZ@r   g33333«p@r   NrD   rE   s      r"   Útest_GeodSolve12zGeodSolveTest.test_GeodSolve12Ý   so   € ô �D˜%Ó €DØ
�,‰,�q˜!˜S #Ó
&€CØ×Ñ˜3˜v™;¨¸ÐÔ=Ø×Ñ˜3˜v™;¨¸ÐÔ=Ø×Ñ˜3˜u™: u°dÐÕ;r$   c                 óN  — t         j                  j                  dddt        j                  «      }| j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       y)z*Check fix for inverse ignoring lon12 = nanr   é   r   r   r   N©r   r   r   ÚmathÚnanÚ
assertTrueÚisnanr9   s     r"   Útest_GeodSolve14zGeodSolveTest.test_GeodSolve14ç   sk   € ä
�.‰.×
 Ñ
   A q¬$¯(©(Ó
3€CØ‡O�O”D—J‘J˜s 6™{Ó+Ô,Ø‡O�O”D—J‘J˜s 6™{Ó+Ô,Ø‡O�O”D—J‘J˜s 5™zÓ*Õ+r$   c                 ó�   — t        dd«      }|j                  ddddt         j                  «      }| j                  |d   dd	¬
«       y)zcInitial implementation of Math::eatanhe was wrong for e^2 < 0.  This
    checks that this is fixed.r@   rA   r_   é   é   é   r   i”\  r7   r	   N)r   r&   ÚAREAr   ©r   rF   r(   s      r"   Útest_GeodSolve15zGeodSolveTest.test_GeodSolve15î   sC   € ô �E˜8Ó$€DØ�[‰[˜˜A˜q !¤X§]¡]Ó3€FØ×Ñ˜6 %™=¨%¸ÐÕ=r$   c                 óº  — t         j                  j                  ddddt         j                  t         j                  z  «      }| j                  |d   dd¬«       | j                  |d	   d
d¬«       | j                  |d   dd¬«       t         j                  j                  ddd«      }|j                  dt         j                  t         j                  z  «      }| j                  |d   dd¬«       | j                  |d	   d
d¬«       | j                  |d   dd¬«       t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  |d	   dd¬«       | j                  |d   dd¬«       |j                  d«      }| j                  |d   dd¬«       | j                  |d	   dd¬«       | j                  |d   dd¬«       y)z1Check fix for LONG_UNROLL bug found on 2015-05-07é(   iµÿÿÿrZ   ç    ÐsAr    iÙÿÿÿr_   r	   r   iÿÿÿr   éVÿÿÿéi   N)r   r   r&   ÚSTANDARDr   r   ÚLineÚPosition©r   r(   Úlines      r"   Útest_GeodSolve17zGeodSolveTest.test_GeodSolve17õ   sÀ  € ä�^‰^×"Ñ" 2 s¨C°Ü#+×#4Ñ#4´x×7KÑ7KÑ#KóM€Fà×Ñ˜6 &™>¨3¸ÐÔ:Ø×Ñ˜6 &™>¨4¸ÐÔ;Ø×Ñ˜6 &™>¨4¸ÐÔ;Ü�>‰>×Ñ˜r 3¨Ó,€DØ�]‰]˜3¤× 1Ñ 1´H×4HÑ4HÑ HÓI€FØ×Ñ˜6 &™>¨3¸ÐÔ:Ø×Ñ˜6 &™>¨4¸ÐÔ;Ø×Ñ˜6 &™>¨4¸ÐÔ;Ü�^‰^×"Ñ" 2 s¨C°Ó5€FØ×Ñ˜6 &™>¨3¸ÐÔ:Ø×Ñ˜6 &™>¨3¸ÐÔ:Ø×Ñ˜6 &™>¨4¸ÐÔ;Ø�]‰]˜3Ó€FØ×Ñ˜6 &™>¨3¸ÐÔ:Ø×Ñ˜6 &™>¨3¸ÐÔ:Ø×Ñ˜6 &™>¨4¸ÐÕ;r$   c                 ó�   — t        dd«      }|j                  ddddt         j                  «      }| j                  |d   dd	¬
«       y)z<Check 0/0 problem with area calculation on sphere 2015-09-08r@   r   r_   rg   rh   ri   r   g  Æ?Ü='Br7   r	   N©r   r   rj   r   rE   s      r"   Útest_GeodSolve26zGeodSolveTest.test_GeodSolve26
  sA   € ä�E˜1Ó€DØ
�,‰,�q˜!˜Q ¤8§=¡=Ó
1€CØ×Ñ˜3˜u™: }¸cÐÕBr$   c                 ór   — t        dd«      }|j                  dddd«      }| j                  |d   dd	¬
«       y)ztCheck for bad placement of assignment of r.a12 with |f| > 0.01 (bug in
    Java implementation fixed on 2015-05-19).r@   r   r_   rg   é
   ç    ÐSAr   g­ÔXg!GH@ç:Œ0âŽy5>r	   N)r   r&   r   rk   s      r"   Útest_GeodSolve28zGeodSolveTest.test_GeodSolve28  s=   € ô �E˜3Ó€DØ�[‰[˜˜A˜r 3Ó'€FØ×Ñ˜6 %™=¨+¸vÐÕFr$   c                 óà  — t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  |d   d	d¬«       | j                  |d
   dd¬«       t         j                  j                  ddddt         j                  t         j
                  z  «      }| j                  |d   dd¬«       | j                  |d   dd¬«       | j                  |d
   dd¬«       y)z=Check longitude unrolling with inverse calculation 2015-09-16r   i  éµ   r   é³   ç»½×Ùß|Û=r	   r   iMÿÿÿr   i¯e r7   i  N)r   r   r   r   rr   r   r=   s     r"   Útest_GeodSolve29zGeodSolveTest.test_GeodSolve29  sã   € ä�^‰^×#Ñ# A s¨A¨sÓ3€FØ×Ñ˜6 &™>¨3¸ÐÔ>Ø×Ñ˜6 &™>¨4¸ÐÔ?Ø×Ñ˜6 %™=¨&¸#ÐÔ>Ü�^‰^×#Ñ# A s¨A¨sÜ$,×$5Ñ$5¼×8LÑ8LÑ$LóN€Fà×Ñ˜6 &™>¨3¸ÐÔ>Ø×Ñ˜6 &™>¨3¸ÐÔ>Ø×Ñ˜6 %™=¨&¸#ÐÕ>r$   c                 ó¤  — t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  |d   dd¬«       | j                  |d   d	d
¬«       t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  |d   dd¬«       | j                  |d   dd
¬«       t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  t	        |d   «      dd¬«       | j                  |d   dd
¬«       t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  t	        |d   «      dd¬«       | j                  |d   dd
¬«       t        dd«      }|j                  dddd«      }| j                  |d   dd¬«       | j                  |d   dd¬«       | j                  |d   dd
¬«       |j                  dddd«      }| j                  |d   dd¬«       | j                  t	        |d   «      dd¬«       | j                  |d   dd
¬«       |j                  dddd«      }| j                  |d   dd¬«       | j                  t	        |d   «      dd¬«       | j                  |d   dd
¬«       t        dd«      }|j                  dddd«      }| j                  |d   dd¬«       | j                  |d   dd¬«       | j                  |d   dd
¬«       |j                  dddd«      }| j                  |d   dd¬«       | j                  |d   dd¬«       | j                  |d   dd
¬«       |j                  ddd
d«      }| j                  |d   dd¬«       | j                  |d   dd¬«       | j                  |d   dd
¬«       |j                  dddd«      }| j                  |d   dd¬«       | j                  t	        |d   «      dd¬«       | j                  |d   dd
¬«       y)z¥Check max(-0.0,+0.0) issues 2015-08-22 (triggered by bugs in
    Octave -- sind(-0.0) = +0.0 -- and in some version of Visual
    Studio -- fmod(-0.0, 360.0) = +0.0.r   r‚   r   g     €V@r6   r	   r   r   i­0r7   ç     pf@gÁÊ¡E¶ûK@g /Ý$_@i>â0rB   ç        ç     €f@i[<1r_   imŒ/r@   i|1rC   gOè´�Nk¿g:Xÿç0ƒ@@gzÂ(_b@i¹o2i†—1N)r   r   r   r   rO   )r   r!   rF   s      r"   Útest_GeodSolve33zGeodSolveTest.test_GeodSolve33#  sb  € ô �.‰.×
 Ñ
   A q¨#Ó
.€CØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜u™: x¸ÐÔ=Ü
�.‰.×
 Ñ
   A q¨%Ó
0€CØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜v™;¨	¸6ÐÔBØ×Ñ˜3˜u™: x¸ÐÔ=Ü
�.‰.×
 Ñ
   A q¨#Ó
.€CØ×Ñ˜3˜v™;¨¸ÐÔ@Ø×Ñœ3˜s 6™{Ó+¨YÀÐÔGØ×Ñ˜3˜u™: x¸ÐÔ=Ü
�.‰.×
 Ñ
   A q¨#Ó
.€CØ×Ñ˜3˜v™;¨¸ÐÔ@Ø×Ñœ3˜s 6™{Ó+¨YÀÐÔGØ×Ñ˜3˜u™: x¸ÐÔ=Ü�E˜1Ó€DØ
�,‰,�q˜!˜Q Ó
$€CØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜u™: x¸ÐÔ=Ø
�,‰,�q˜!˜Q Ó
$€CØ×Ñ˜3˜v™;¨¸ÐÔ@Ø×Ñœ3˜s 6™{Ó+¨YÀÐÔGØ×Ñ˜3˜u™: x¸ÐÔ=Ø
�,‰,�q˜!˜Q Ó
$€CØ×Ñ˜3˜v™;¨¸ÐÔ@Ø×Ñœ3˜s 6™{Ó+¨YÀÐÔGØ×Ñ˜3˜u™: x¸ÐÔ=Ü�E˜8Ó$€DØ
�,‰,�q˜!˜Q Ó
$€CØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜u™: x¸ÐÔ=Ø
�,‰,�q˜!˜Q Ó
$€CØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜u™: x¸ÐÔ=Ø
�,‰,�q˜!˜S #Ó
&€CØ×Ñ˜3˜v™;¨¸&ÐÔAØ×Ñ˜3˜v™;¨	¸6ÐÔBØ×Ñ˜3˜u™: x¸ÐÔ=Ø
�,‰,�q˜!˜Q Ó
$€CØ×Ñ˜3˜v™;¨¸ÐÔ@Ø×Ñœ3˜s 6™{Ó+¨YÀÐÔGØ×Ñ˜3˜u™: x¸ÐÕ=r$   c                 ó˜  — t         j                  j                  t        j                  ddd«      }| j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       t         j                  j                  t        j                  ddd«      }| j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       y)zoCheck fix for nan + point on equator or pole not returning all nans in
    Geodesic::Inverse, found 2015-09-23.r   rN   r   r   r   é	   Nr`   r9   s     r"   Útest_GeodSolve55zGeodSolveTest.test_GeodSolve55V  sÖ   € ô �.‰.×
 Ñ
 ¤§¡¨1¨a°Ó
4€CØ‡O�O”D—J‘J˜s 6™{Ó+Ô,Ø‡O�O”D—J‘J˜s 6™{Ó+Ô,Ø‡O�O”D—J‘J˜s 5™zÓ*Ô+Ü
�.‰.×
 Ñ
 ¤§¡¨1¨b°!Ó
4€CØ‡O�O”D—J‘J˜s 6™{Ó+Ô,Ø‡O�O”D—J‘J˜s 6™{Ó+Ô,Ø‡O�O”D—J‘J˜s 5™zÓ*Õ+r$   c                 óÒ   — t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  |d	   d
d¬«       | j                  |d   dd¬«       y)z>Check for points close with longitudes close to 180 deg apart.é   ç›+¡†›„=r|   rB   r   g(Í´#=g´àø¤tã=r	   r   gÿÿÿÿÿf@r   gÊrÎ~qAr~   Nr8   r9   s     r"   Útest_GeodSolve59zGeodSolveTest.test_GeodSolve59b  sk   € ä
�.‰.×
 Ñ
  Ð$4°b¸#Ó
>€CØ×Ñ˜3˜v™;Ð(9À7ÐÔKØ×Ñ˜3˜v™;Ð(:ÀGÐÔLØ×Ñ˜3˜u™:Ð'9À4ÐÕHr$   c                 óf  — t         j                  j                  ddddt         j                  t         j                  z  «      }| j                  |d   dd¬«       | j                  |d	   d
d¬«       | j                  t        |d   «      dd¬«       t         j                  j                  dddd«      }|j                  dt         j                  t         j                  z  «      }| j                  |d   dd¬«       | j                  |d	   d
d¬«       | j                  t        |d   «      dd¬«       y)z0Make sure small negative azimuths are west-goingé-   r   g�e»ºŒ«K¼rM   r    g,g~5§F@r6   r	   r   éLÿÿÿr   rB   éP   N)	r   r   r&   rr   r   r   rO   ÚInverseLinert   ru   s      r"   Útest_GeodSolve61zGeodSolveTest.test_GeodSolve61i  s  € ä�^‰^×"Ñ" 2 qÐ*?ÀÜ#+×#4Ñ#4´x×7KÑ7KÑ#KóM€Fà×Ñ˜6 &™>¨8¸VÐÔDØ×Ñ˜6 &™>¨4¸ÐÔ@Ø×Ñœ3˜v f™~Ó.°¸VÐÔDÜ�>‰>×%Ñ% b¨!¨RÐ1FÓG€DØ�]‰]˜3¤× 1Ñ 1´H×4HÑ4HÑ HÓI€FØ×Ñ˜6 &™>¨8¸VÐÔDØ×Ñ˜6 &™>¨4¸ÐÔ@Ø×Ñœ3˜v f™~Ó.°¸VÐÕDr$   c                 ó°  — t         j                  j                  ddddt         j                  «      }|j	                  dt         j                  t         j
                  z  «      }| j                  |d   dd¬	«       | j                  |d
   dd¬	«       | j                  t        |d   «      dd¬	«       | j                  |d   dd¬	«       | j                  |d   dd¬	«       | j                  t        |d   «      dd¬	«       | j                  |d   dd¬	«       | j                  |d   dd¬	«       | j                  |d   dd¬	«       | j                  |d   dd¬	«       | j                  |d   dd¬	«       | j                  |d   d d¬	«       |j	                  d!t         j                  t         j
                  z  «      }| j                  |d   dd¬	«       | j                  |d
   dd¬	«       | j                  t        |d   «      dd¬	«       | j                  |d   d"d¬	«       | j                  |d   d#d¬	«       | j                  |d   dd¬	«       | j                  |d   d$d¬	«       | j                  |d   d%d¬	«       | j                  |d   d&d¬	«       | j                  |d   d'd¬	«       | j                  |d   d(d¬	«       | j                  |d   d)d¬	«       y*)+zÇCheck for bug in east-going check in GeodesicLine (needed to check for
    sign of 0) and sign error in area calculation due to a bogus override
    of the code for alp12.  Found/fixed on 2015-12-19.rL   g¬CÒÑ]r2¼iáÿÿÿrB   rM   r   g      >@r6   r	   r   ç       €r   rˆ   r    g¶g–¨NÀr   r   r   i€–˜ r7   r   gjö@+0„V@r   iôa r   g.�ÅAøU¿r}   r   gÈÞA¢¿†V?gH¯¼šò×j>r   r   ro   g7ýÙ�	>Àç     €fÀi -1gŽÙëÝ~f@iFÔ  g´Uîª¬ð¿g/�º1˜Úï¿ç€»ƒnþÜBN)r   r   r•   r   rt   r   r   rO   ©r   rv   r(   s      r"   Útest_GeodSolve65zGeodSolveTest.test_GeodSolve65v  sÎ  € ô �>‰>×%Ñ% bÐ*?ÀÀcÜ&.§l¡ló4€Dà�]‰]˜3¤§¡¬x×/CÑ/CÑ CÓD€FØ×Ñ˜6 &™>¨8¸vÐÔFØ×Ñ˜6 &™>¨8¸vÐÔFØ×Ñœ3˜v f™~Ó.°	À6ÐÔJØ×Ñ˜6 &™>¨9¸vÐÔFØ×Ñ˜6 &™>¨8¸vÐÔFØ×Ñœ3˜v f™~Ó.°	À6ÐÔJØ×Ñ˜6 %™=¨8¸sÐÔCØ×Ñ˜6 %™=¨8¸vÐÔFØ×Ñ˜6 %™=¨7¸sÐÔCØ×Ñ˜6 %™=¨:¸uÐÔEØ×Ñ˜6 %™=¨9¸vÐÔFØ×Ñ˜6 %™=¨1¸sÐÔCØ�]‰]˜3¤§¡¬x×/CÑ/CÑ CÓD€FØ×Ñ˜6 &™>¨8¸vÐÔFØ×Ñ˜6 &™>¨8¸vÐÔFØ×Ñœ3˜v f™~Ó.°	À6ÐÔJØ×Ñ˜6 &™>¨9¸vÐÔFØ×Ñ˜6 &™>¨:¸vÐÔFØ×Ñ˜6 &™>¨8¸vÐÔFØ×Ñ˜6 %™=¨8¸sÐÔCØ×Ñ˜6 %™=¨9¸vÐÔFØ×Ñ˜6 %™=¨5¸sÐÔCØ×Ñ˜6 %™=¨:¸uÐÔEØ×Ñ˜6 %™=¨:¸vÐÔFØ×Ñ˜6 %™=Ð+<ÀcÐÕJr$   c                 ó:  — t         j                  j                  dddd«      }|j                  dt         j                  t         j
                  z  «      }| j                  |d   dd¬	«       | j                  |d
   dd¬	«       | j                  |d   dd¬	«       |j                  d|j                  z  t         j                  t         j
                  z  «      }| j                  |d   dd¬	«       | j                  |d
   dd¬	«       | j                  |d   dd¬	«       y)zVCheck for InverseLine if line is slightly west of S and that s13 is
    correctly set.éûÿÿÿgVçž¯â¼rZ   rB   ro   r    gA‚âÇ˜Û@r6   r	   r   r™   r   r˜   r7   gäIÒ5“áUÀN)r   r   r•   rt   rr   r   r   Ús13r›   s      r"   Útest_GeodSolve66zGeodSolveTest.test_GeodSolve66—  s  € ô �>‰>×%Ñ% bÐ*<¸cÀ3ÓG€DØ�]‰]˜3¤× 1Ñ 1´H×4HÑ4HÑ HÓI€FØ×Ñ˜6 &™>¨7¸vÐÔFØ×Ñ˜6 &™>¨:¸vÐÔFØ×Ñ˜6 &™>¨8¸vÐÔFØ�]‰]˜3 §¡™>Ü#×,Ñ,¬x×/CÑ/CÑCóE€Fà×Ñ˜6 &™>¨9¸vÐÔFØ×Ñ˜6 &™>¨8¸vÐÔFØ×Ñ˜6 &™>¨:¸vÐÕFr$   c                 óN  — t         j                  j                  dddd«      }|j                  d|j                  z  t         j
                  t         j                  z  «      }| j                  |d   dd¬	«       | j                  |d
   dd¬	«       | j                  |d   dd¬	«       y)zCheck that DirectLine sets s13.r_   rg   r’   rM   r7   r    g…ëQ¸í>@r6   r	   r   ggDioðÅB@r   gI¢—Q,·K@N)r   r   Ú
DirectLinert   rŸ   rr   r   r   r›   s      r"   Útest_GeodSolve71zGeodSolveTest.test_GeodSolve71¥  s”   € ä�>‰>×$Ñ$ Q¨¨2¨sÓ3€DØ�]‰]˜3 §¡™>Ü#×,Ñ,¬x×/CÑ/CÑCóE€Fà×Ñ˜6 &™>¨8¸VÐÔDØ×Ñ˜6 &™>¨8¸VÐÔDØ×Ñ˜6 &™>¨8¸VÐÕDr$   c                 ó(  — t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  |d	   d
d¬«       | j                  |d   dd¬«       | j	                  t        j                  d|d   «      dkD  «       y)a0  Check for backwards from the pole bug reported by Anon on 2016-02-13.
    This only affected the Java implementation.  It was introduced in Java
    version 1.44 and fixed in 1.46-SNAPSHOT on 2016-01-17.
    Also the + sign on azi2 is a check on the normalizing of azimuths
    (converting -0.0 to +0.0).rN   r|   rB   g    €„.Ár    g†¬nõBT@r6   r	   r   rp   r   r   r_   N)r   r   r&   r   rc   ra   Úcopysignr=   s     r"   Útest_GeodSolve73zGeodSolveTest.test_GeodSolve73®  s‰   € ô �^‰^×"Ñ" 2 r¨3°Ó5€FØ×Ñ˜6 &™>¨8¸VÐÔDØ×Ñ˜6 &™>¨4¸ÐÔ@Ø×Ñ˜6 &™>¨1°fÐÔ=Ø‡O�O”D—M‘M ! V¨F¡^Ó4°qÑ8Õ9r$   c                 óÖ  — t         j                  j                  ddddt         j                  «      }| j	                  |d   dd¬«       | j	                  |d	   d
d¬«       | j	                  |d   dd¬«       | j	                  |d   dd¬«       | j	                  |d   dd¬«       | j	                  |d   dd¬«       | j	                  |d   dd¬«       | j	                  |d   dd¬«       y)zNCheck fix for inaccurate areas, bug introduced in v1.46, fixed
    2015-10-16.gÎªÏÕVK@g¼?Æ.@g•eˆc]K@gƒQI�€Æ.@r   gÞOáŽÜK@r~   r	   r   gZ"a)œÜK@r   gK;:‹ÃC@r   g1Áf7L7?r   r   g$ÎPýÿÿï?r   r   gèMMZ¬±ArI   N)r   r   r   r   r   r9   s     r"   Útest_GeodSolve74zGeodSolveTest.test_GeodSolve74º  sï   € ô �.‰.×
 Ñ
  ¨'°7¸GÜ!)§¡ó/€Cà×Ñ˜3˜v™;¨¸dÐÔCØ×Ñ˜3˜v™;¨¸dÐÔCØ×Ñ˜3˜u™:¨¸dÐÔCØ×Ñ˜3˜u™:¨¸dÐÔCØ×Ñ˜3˜u™:¨¸dÐÔCØ×Ñ˜3˜u™:¨¸dÐÔCØ×Ñ˜3˜u™:¨¸dÐÔCØ×Ñ˜3˜u™: ÀÐÕEr$   c                 óÒ   — t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  |d	   d
d¬«       | j                  |d   dd¬«       y)zNThe distance from Wellington and Salamanca (a classic failure of
    Vincenty)g‰ˆˆˆˆ¨DÀg"""""Úe@g¼»»»»{D@g      Àr   g½¯ (†d@ç•dyáý•=r	   r   g]E¦!€3@r   gT·ý-	sAç�íµ ÷Æ >Nr8   r9   s     r"   Útest_GeodSolve76zGeodSolveTest.test_GeodSolve76È  sl   € ô �.‰.×
 Ñ
  °Ø!+¨\ó;€Cà×Ñ˜3˜v™;¨ÀÐÔIØ×Ñ˜3˜v™;¨ÀÐÔIØ×Ñ˜3˜u™:¨ÀÐÕHr$   c                 óÒ   — t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  |d	   d
d¬«       | j                  |d   dd¬«       y)z5An example where the NGS calculator fails to convergeg333333;@r‡   gš™™™™;Àr†   r   gï_Y�éF@rª   r	   r   gÛª‚ÚIÇ`@r   gæ”@,�sAr«   Nr8   r9   s     r"   Útest_GeodSolve78zGeodSolveTest.test_GeodSolve78Ñ  sg   € ä
�.‰.×
 Ñ
   s¨E°5Ó
9€CØ×Ñ˜3˜v™;¨ÀÐÔIØ×Ñ˜3˜v™;¨ÀÐÔIØ×Ñ˜3˜u™:¨ÀÐÕHr$   c                 ó  — t         j                  j                  ddddt         j                  «      }| j	                  |d   dd¬«       | j	                  |d   dd¬«       t         j                  j                  ddddt         j                  «      }| j	                  |d   d	d¬«       | j	                  |d   d	d¬«       t         j                  j                  d
dd
dt         j
                  «      }| j	                  |d   dd¬«       | j	                  |d   dd¬«       | j	                  |d   dd¬«       | j	                  |d   dd¬«       | j	                  |d   dd¬«       | j	                  |d   d	d¬«       | j	                  |d   d	d¬«       | j	                  |d   dd¬«       | j                  t        j                  d	|d   «      dkD  «       | j                  t        j                  d	|d   «      dkD  «       | j                  t        j                  d	|d   «      dkD  «       t         j                  j                  ddddt         j
                  «      }| j	                  |d   dd¬«       | j	                  |d   dd¬«       | j	                  |d   dd¬«       | j	                  |d   dd¬«       | j	                  |d   dd¬«       | j	                  |d   d	d¬«       | j	                  |d   d	d¬«       | j	                  |d   dd¬«       t         j                  j                  d	ddt         j                  «      }|j                  dt         j                  «      }| j                  t        j                  |d   «      «       y)z Some tests to add code coverage: computing scale in special cases + zero
    length geodesic (includes GeodSolve80 - GeodSolve83) + using an incapable
    line.r   rN   r   g3KÜö¤u¿g»½×Ùß|Ë=r	   r   g�íµ ÷Æ°>r_   gÇK7‰A 4@r   r   r   r   r   rB   r   r   r   r   rƒ   rš   r7   rg   éè  N)r   r   r   ÚGEODESICSCALEr   r   rc   ra   r¥   rs   ÚLATITUDErt   ÚEMPTYrd   )r   r!   rv   r(   s       r"   Útest_GeodSolve80zGeodSolveTest.test_GeodSolve80Ø  s,  € ô �.‰.×
 Ñ
   A q¨"¬h×.DÑ.DÓ
E€CØ×Ñ˜3˜u™: ~¸wÐÔGØ×Ñ˜3˜u™: ~¸wÐÔGä
�.‰.×
 Ñ
   A t¨T´8×3IÑ3IÓ
J€CØ×Ñ˜3˜u™: q°'ÐÔ:Ø×Ñ˜3˜u™: q°'ÐÔ:ä
�.‰.×
 Ñ
  ¨¨F°A´x·|±|Ó
D€CØ×Ñ˜3˜u™: q°%ÐÔ8Ø×Ñ˜3˜u™: q°$ÐÔ7Ø×Ñ˜3˜v™;¨°UÐÔ;Ø×Ñ˜3˜v™;¨°UÐÔ;Ø×Ñ˜3˜u™: q°4ÐÔ8Ø×Ñ˜3˜u™: q°%ÐÔ8Ø×Ñ˜3˜u™: q°%ÐÔ8Ø×Ñ˜3˜u™: q°%ÐÔ8Ø‡O�O”D—M‘M ! S¨¡ZÓ0°1Ñ4Ô5Ø‡O�O”D—M‘M ! S¨¡ZÓ0°1Ñ4Ô5Ø‡O�O”D—M‘M ! S¨¡ZÓ0°1Ñ4Ô5ä
�.‰.×
 Ñ
   Q¨¨C´·±Ó
>€CØ×Ñ˜3˜u™: q°%ÐÔ8Ø×Ñ˜3˜u™: q°$ÐÔ7Ø×Ñ˜3˜v™;¨°5ÐÔ9Ø×Ñ˜3˜v™;¨°UÐÔ;Ø×Ñ˜3˜u™: q°$ÐÔ7Ø×Ñ˜3˜u™: q°%ÐÔ8Ø×Ñ˜3˜u™: q°%ÐÔ8Ø×Ñ˜3˜u™:Ð'8À#ÐÔFô �>‰>×Ñ˜q ! R¬×):Ñ):Ó;€DØ�]‰]˜4¤§¡Ó0€FØ‡O�O”D—J‘J˜v e™}Ó-Õ.r$   c                 óÔ	  — t         j                  j                  dddt        j                  «      }| j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       t         j                  j                  dddt        j                  «      }| j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       t         j                  j                  ddt        j                  d«      }| j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       t         j                  j                  ddt        j                  d«      }| j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       t         j                  j                  dt        j                  dd«      }| j                  |d   dk(  «       | j                  t        j                  |d   «      «       | j                  |d   dk(  «       t         j                  j                  dt        j                  dd«      }| j                  |d   dk(  «       | j                  t        j                  |d   «      «       | j                  |d   dk(  «       t         j                  j                  t        j                  ddd«      }| j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       t         j                  j                  t        j                  ddd«      }| j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       y)	z€Tests for python implementation to check fix for range errors with
    {fmod,sin,cos}(inf) (includes GeodSolve84 - GeodSolve91).r   rN   r    r   r   r°   r   N)r   r   r&   ra   Úinfrc   rd   rb   r=   s     r"   Útest_GeodSolve84zGeodSolveTest.test_GeodSolve84   s<  € ô �^‰^×"Ñ" 1 a¨¬T¯X©XÓ6€FØ‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ü�^‰^×"Ñ" 1 a¨¬T¯X©XÓ6€FØ‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ü�^‰^×"Ñ" 1 a¬¯©°4Ó8€FØ‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ü�^‰^×"Ñ" 1 a¬¯©°4Ó8€FØ‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ü�^‰^×"Ñ" 1¤d§h¡h°°DÓ9€FØ‡O�O�F˜6‘N aÑ'Ô(Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O�F˜6‘N bÑ(Ô)Ü�^‰^×"Ñ" 1¤d§h¡h°°DÓ9€FØ‡O�O�F˜6‘N aÑ'Ô(Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O�F˜6‘N bÑ(Ô)Ü�^‰^×"Ñ"¤4§8¡8¨Q°°DÓ9€FØ‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ü�^‰^×"Ñ"¤4§8¡8¨Q°°DÓ9€FØ‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O”D—J‘J˜v f™~Ó.Ô/Ø‡O�O”D—J‘J˜v f™~Ó.Õ/r$   c                 óÒ   — t         j                  j                  dddd«      }| j                  |d   dd¬«       | j                  |d	   d
d¬«       | j                  |d   dd¬«       y)zªCheck fix for inaccurate hypot with python 3.[89].  Problem reported
    by agdhruv https://github.com/geopy/geopy/issues/466 ; see
    https://bugs.python.org/issue43088g¸´÷àB@gîÎÚmž^Àg·´÷àB@g6•Eaž^Àr   g8ÅüÿV@gH¯¼šò×z>r	   r   g•*r €V@r   gL7‰A`åÐ?rI   Nr8   r9   s     r"   Útest_GeodSolve92zGeodSolveTest.test_GeodSolve92$  sn   € ô �.‰.×
 Ñ
 Ð!3°ZØ!)°[óB€Cà×Ñ˜3˜v™;¨¸TÐÔDØ×Ñ˜3˜v™;¨¸TÐÔDØ×Ñ˜3˜u™:¨¸VÐÕDr$   c                 óN  — t         j                  j                  ddt        j                  d«      }| j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       | j                  t        j                  |d   «      «       y)zPCheck fix for lat2 = nan being treated as lat2 = 0 (bug found
       2021-07-26)r   rN   r   r   r   Nr`   r9   s     r"   Útest_GeodSolve94zGeodSolveTest.test_GeodSolve94.  sm   € ô �.‰.×
 Ñ
   A¤t§x¡x°Ó
4€CØ‡O�O”D—J‘J˜s 6™{Ó+Ô,Ø‡O�O”D—J‘J˜s 6™{Ó+Ô,Ø‡O�O”D—J‘J˜s 5™zÓ*Õ+r$   c                 ó�   — t        dd«      }|j                  ddddt         j                  «      }| j                  |d   dd¬	«       y
)zÿFailure with long doubles found with test case from Nowak + Nowak Da
       Costa (2022).  Problem was using somg12 > 1 as a test that it needed
       to be set when roundoff could result in somg12 slightly bigger that 1.
       Found + fixed 2022-03-30.i™Ra g!6‡Zwk?r   gr\Í¨
N@g­-•˜YvV@r   l   •WrY r7   r	   Nry   rE   s      r"   Útest_GeodSolve96zGeodSolveTest.test_GeodSolve966  sE   € ô
 �G˜_Ó-€DØ
�,‰,�q˜!Ð-Ð/?ÄÇÁÓ
O€CØ×Ñ˜3˜u™: ~¸sÐÕCr$   N)$r-   r.   r/   r0   r:   r>   rG   rJ   rP   rR   rT   rV   rX   r]   re   rl   rw   rz   r   r„   r‰   rŒ   r�   r–   rœ   r    r£   r¦   r¨   r¬   r®   r´   r·   r¹   r»   r½   r1   r$   r"   r3   r3   Ž   s»   „ Ùò=òFò
>ò>ò	@òEòEòEòEò<ò,ò>ò<ò*CòGò
?ò1>òf
,òIòEòKòBGòEò
:òFòIòIò&/òP"0òHEò,óDr$   r3   c                   óØ   — e Zd ZdZej
                  j                  d«      Zej
                  j                  d«      Ze	d„ «       Z
e	d„ «       Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚPlanimeterTestzPlanimeter testsFTc                 óØ   — t         j                  j                  «        | D ](  }t         j                  j                  |d   |d   «       Œ* t         j                  j	                  dd«      S )zHelper function for polygonsr   r_   FT)r¿   ÚpolygonÚClearÚAddPointÚCompute©ÚpointsÚps     r"   Ú
PlanimeterzPlanimeterTest.PlanimeterE  s\   € ô ×Ñ× Ñ Ô"Øò 2ˆÜ×Ñ×%Ñ% a¨¡d¨A¨a©DÕ1ð2ä×!Ñ!×)Ñ)¨%°Ó6Ð6r$   c                 óØ   — t         j                  j                  «        | D ](  }t         j                  j                  |d   |d   «       Œ* t         j                  j	                  dd«      S )zHelper function for polylinesr   r_   FT)r¿   ÚpolylinerÂ   rÃ   rÄ   rÅ   s     r"   Ú
PolyLengthzPlanimeterTest.PolyLengthM  s\   € ô ×Ñ×!Ñ!Ô#Øò 3ˆÜ×Ñ×&Ñ& q¨¡t¨Q¨q©TÕ2ð3ä×"Ñ"×*Ñ*¨5°$Ó7Ð7r$   c                 ó  — ddgddgddgddgg}t         j                  |«      \  }}}| j                  |dd¬«       | j                  |d	d
¬«       ddgddgddgddgg}t         j                  |«      \  }}}| j                  |dd¬«       | j                  |dd
¬«       ddgddgdd
gd
dgg}t         j                  |«      \  }}}| j                  |dd¬«       | j                  |dd
¬«       ddgddgddgg}t         j                  |«      \  }}}| j                  |dd
¬«       | j                  |dd
¬«       t         j                  |«      \  }}}| j                  |dd
¬«       | j	                  t        j                  |«      «       y)z2Check fix for pole-encircling bug found 2011-03-16éY   r   rN   rB   i  gÉv¾¿H#Ag-Cëâ6?r	   g  8à=Br_   i§ÿÿÿg  8à=ÂéÿÿÿÿgaÃÓ‹'#Ag  (ºíBiÊg€»ƒnþÌBiï}1N)r¿   rÈ   r   rË   rc   ra   rd   ©r   rÆ   Ú_Ú	perimeterÚareas        r"   Útest_Planimeter0zPlanimeterTest.test_Planimeter0U  sº  € à�1ˆg˜˜B�x " c ¨R°¨IÐ6€FÜ'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 k¸4ÐÔ@Ø×Ñ˜4 ¸ÐÔ:Ø�Aˆh˜˜b˜	 C¨ :°°S¨zÐ:€FÜ'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 k¸4ÐÔ@Ø×Ñ˜4 ¸ÐÔ;à�"ˆg˜˜A�w  A ¨¨A¨Ð/€FÜ'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 k¸4ÐÔ@Ø×Ñ˜4 ¸ÐÔ:à�1ˆg˜˜1�v  2˜wÐ'€FÜ'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 h¸ÐÔ:Ø×Ñ˜4Ð!1¸1ÐÔ=Ü'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 h¸ÐÔ:Ø‡O�O”D—J‘J˜tÓ$Õ%r$   c                 óœ   — ddgddgddgg}t         j                  |«      \  }}}| j                  |dd¬«       | j                  |dd¬«       y	)
z;Check fix for Planimeter pole crossing bug found 2011-06-24rÍ   r   gfffff†V@gÍÌÌÌÌ|fÀi¡: r_   r	   g  4à=BN©r¿   rÈ   r   rÏ   s        r"   Útest_Planimeter5zPlanimeterTest.test_Planimeter5m  s[   € à�3ˆi˜"˜d˜ b¨& \Ð2€FÜ'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 f°aÐÔ8Ø×Ñ˜4 ¸ÐÕ:r$   c                 ód  — ddgddgddgg}t         j                  |«      \  }}}| j                  |dd¬«       | j                  |dd¬«       ddgddgddgg}t         j                  |«      \  }}}| j                  |dd¬«       | j                  |dd¬«       ddgddgddgg}t         j                  |«      \  }}}| j                  |dd¬«       | j                  |dd¬«       ddgddgddgg}t         j                  |«      \  }}}| j                  |dd¬«       | j                  |dd¬«       y	)
z<Check fix for Planimeter lon12 rounding bug found 2012-12-03r‹   g›+¡†›„½rB   r   ií¹%r_   r	   r�   NrÕ   rÏ   s        r"   Útest_Planimeter6zPlanimeterTest.test_Planimeter6t  sn  € àÐ#Ð$ q¨# h°°A°Ð7€FÜ'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 h¸ÐÔ:Ø×Ñ˜4 ¨AÐÔ.ØÐ"Ð# a¨ V¨a°¨XÐ6€FÜ'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 h¸ÐÔ:Ø×Ñ˜4 ¨AÐÔ.ØÐ"Ð# a¨ X°°1¨vÐ6€FÜ'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 h¸ÐÔ:Ø×Ñ˜4 ¨AÐÔ.ØÐ#Ð$ q¨! f¨q°#¨hÐ7€FÜ'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 h¸ÐÔ:Ø×Ñ˜4 ¨AÐÕ.r$   c                 óœ   — ddgddgddgg}t         j                  |«      \  }}}| j                  |dd¬«       | j                  |dd¬«       y)	z@Area of arctic circle (not really -- adjunct to rhumb-area test)çÄ$êrû£P@r   rB   ih  éÁ±Ÿ r_   r	   NrÕ   rÏ   s        r"   Útest_Planimeter12z PlanimeterTest.test_Planimeter12‡  s^   € à˜QÐ ,°Ð!4°|ÀSÐ6IÐJ€FÜ'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 h¸ÐÔ:Ø×Ñ˜4 ¨AÐÕ.r$   c                 óœ   — ddgddgddgg}t         j                  |«      \  }}}| j                  |dd¬«       | j                  |dd¬«       y)	zReverse area of arctic circlerÚ   r   r“   é˜þÿÿrÛ   r_   r	   NrÕ   rÏ   s        r"   Útest_Planimeter12rz!PlanimeterTest.test_Planimeter12rŽ  s^   € à˜RÐ  <°Ð"6¸ÀtÐ8LÐM€FÜ'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 h¸ÐÔ:Ø×Ñ˜4 ¨AÐÕ.r$   c                 ó®   — ddgddgddgddgddgddgg}t         j                  |«      \  }}}| j                  |dd	¬
«       | j                  |dd	¬
«       y)zCheck encircling pole twicerÍ   rÞ   iÿÿÿiˆÿÿÿr   éx   éð   i%¶ r_   r	   g  À¤d0BNrÕ   rÏ   s        r"   Útest_Planimeter13z PlanimeterTest.test_Planimeter13•  sm   € à�$ˆi˜"˜T˜ R¨ I°°1¨v¸¸3°xÀ"ÀSÀÐJ€FÜ'×2Ñ2°6Ó:Ñ€A€y�$Ø×Ñ˜9 g°qÐÔ9Ø×Ñ˜4 ¸ÐÕ:r$   c                 óT  — g d¢}g d¢}d}d}t         j                  j                  «        t         j                  j                  |d   |d   «       t         j                  j                  |d   |d   «       t         j                  j	                  |d   |d   dd	«      \  }}}| j                  ||d
¬«       t         j                  j	                  |d   |d   dd«      \  }}}| j                  ||d
¬«       t         j                  j	                  |d   |d   d	d	«      \  }}}| j                  || d
¬«       t         j                  j	                  |d   |d   d	d«      \  }}}| j                  |||z
  d
¬«       t        j                  j                  |d   |d   |d   |d   «      }|d   }|d   }	t         j                  j                  ||	dd	«      \  }}}| j                  ||d
¬«       t         j                  j                  ||	dd«      \  }}}| j                  ||d
¬«       t         j                  j                  ||	d	d	«      \  }}}| j                  || d
¬«       t         j                  j                  ||	d	d«      \  }}}| j                  |||z
  d
¬«       t         j                  j                  |d   |d   «       t         j                  j                  dd	«      \  }}}| j                  ||d
¬«       t         j                  j                  dd«      \  }}}| j                  ||d
¬«       t         j                  j                  d	d	«      \  }}}| j                  || d
¬«       t         j                  j                  d	d«      \  }}}| j                  |||z
  d
¬«       y)z{Coverage tests, includes Planimeter15 - Planimeter18 (combinations of
    reverse and sign) + calls to testpoint, testedge.)rg   r_   rh   )r_   rg   rh   gÎUé/Bçˆ»ƒnþüBr   r_   rg   FTr7   r	   r   r   N)r¿   rÁ   rÂ   rÃ   Ú	TestPointr   r   r   r   ÚTestEdgerÄ   )
r   ÚlatÚlonÚrÚa0rÐ   rÒ   r!   r   r   s
             r"   Útest_Planimeter15z PlanimeterTest.test_Planimeter15œ  sv  € ò €CÚ
€CØ€AØ	€BÜ×Ñ× Ñ Ô"Ü×Ñ×#Ñ# C¨¡F¨C°©FÔ3Ü×Ñ×#Ñ# C¨¡F¨C°©FÔ3Ü×'Ñ'×1Ñ1°#°a±&¸#¸a¹&À%ÈÓN�J€A€qˆ$Ø×Ñ˜4 ¨CÐÔ0Ü×'Ñ'×1Ñ1°#°a±&¸#¸a¹&À%ÈÓO�J€A€qˆ$Ø×Ñ˜4 ¨CÐÔ0Ü×'Ñ'×1Ñ1°#°a±&¸#¸a¹&À$ÈÓM�J€A€qˆ$Ø×Ñ˜4 ! ¨SÐÔ1Ü×'Ñ'×1Ñ1°#°a±&¸#¸a¹&À$ÈÓN�J€A€qˆ$Ø×Ñ˜4  A¡¨sÐÔ3Ü
�.‰.×
 Ñ
   Q¡¨¨Q©°°Q±¸¸Q¹Ó
@€CØˆv‰;€DØ
ˆe‰*€CÜ×'Ñ'×0Ñ0°°s¸EÀ4ÓH�J€A€qˆ$Ø×Ñ˜4 ¨CÐÔ0Ü×'Ñ'×0Ñ0°°s¸EÀ5ÓI�J€A€qˆ$Ø×Ñ˜4 ¨CÐÔ0Ü×'Ñ'×0Ñ0°°s¸DÀ$ÓG�J€A€qˆ$Ø×Ñ˜4 ! ¨SÐÔ1Ü×'Ñ'×0Ñ0°°s¸DÀ%ÓH�J€A€qˆ$Ø×Ñ˜4  A¡¨sÐÔ3Ü×Ñ×#Ñ# C¨¡F¨C°©FÔ3Ü×'Ñ'×/Ñ/°°tÓ<�J€A€qˆ$Ø×Ñ˜4 ¨CÐÔ0Ü×'Ñ'×/Ñ/°°uÓ=�J€A€qˆ$Ø×Ñ˜4 ¨CÐÔ0Ü×'Ñ'×/Ñ/°°dÓ;�J€A€qˆ$Ø×Ñ˜4 ! ¨SÐÔ1Ü×'Ñ'×/Ñ/°°eÓ<�J€A€qˆ$Ø×Ñ˜4  A¡¨sÐÕ3r$   c                 ó´  — t         j                  j                  «        t         j                  j                  dd«      \  }}}| j	                  |dk(  «       | j	                  |dk(  «       t         j                  j                  dddd«      \  }}}| j	                  |dk(  «       | j	                  |dk(  «       t         j                  j                  dddd«      \  }}}| j	                  t        j                  |«      «       | j	                  t        j                  |«      «       t         j                  j                  dd«       t         j                  j                  dd«      \  }}}| j	                  |dk(  «       | j	                  |dk(  «       t         j                  j                  «        t         j                  j                  dd«      \  }}}| j	                  |dk(  «       t         j                  j                  dddd«      \  }}}| j	                  |dk(  «       t         j                  j                  dddd«      \  }}}| j	                  t        j                  |«      «       t         j                  j                  dd«       t         j                  j                  dd«      \  }}}| j	                  |dk(  «       t         j                  j                  dd«       t         j                  j                  dddd«      \  }}}| j                  |dd¬«       t         j                  j                  d	d	dd«      \  }}}| j                  |d
d¬«       y)z]Coverage tests, includes Planimeter19 - Planimeter20 (degenerate
    polygons) + extra cases.FTr   r_   rN   r°   rƒ   r	   rg   gyé&1a&ArI   N)r¿   rÁ   rÂ   rÄ   rc   ræ   rç   ra   rd   rÃ   rÊ   r   )r   rÐ   rÑ   rÒ   s       r"   Útest_Planimeter19z PlanimeterTest.test_Planimeter19Ã  s±  € ô ×Ñ× Ñ Ô"Ü'×/Ñ/×7Ñ7¸¸tÓDÑ€A€y�$Ø‡O�O�D˜A‘IÔØ‡O�O�I ‘NÔ#Ü'×/Ñ/×9Ñ9¸!¸QÀÀtÓLÑ€A€y�$Ø‡O�O�D˜A‘IÔØ‡O�O�I ‘NÔ#Ü'×/Ñ/×8Ñ8¸¸TÀ5È$ÓOÑ€A€y�$Ø‡O�O”D—J‘J˜tÓ$Ô%Ø‡O�O”D—J‘J˜yÓ)Ô*Ü×Ñ×#Ñ# A qÔ)Ü'×/Ñ/×7Ñ7¸¸tÓDÑ€A€y�$Ø‡O�O�D˜A‘IÔØ‡O�O�I ‘NÔ#Ü×Ñ×!Ñ!Ô#Ü'×0Ñ0×8Ñ8¸ÀÓEÑ€A€y�$Ø‡O�O�I ‘NÔ#Ü'×0Ñ0×:Ñ:¸1¸aÀÈÓMÑ€A€y�$Ø‡O�O�I ‘NÔ#Ü'×0Ñ0×9Ñ9¸"¸dÀEÈ4ÓPÑ€A€y�$Ø‡O�O”D—J‘J˜yÓ)Ô*Ü×Ñ×$Ñ$ Q¨Ô*Ü'×0Ñ0×8Ñ8¸ÀÓEÑ€A€y�$Ø‡O�O�I ‘NÔ#Ü×Ñ×#Ñ# A qÔ)Ü'×0Ñ0×9Ñ9¸"¸dÀEÈ4ÓPÑ€A€y�$Ø×Ñ˜9 d°EÐÔ:Ü'×0Ñ0×:Ñ:¸1¸aÀÈÓMÑ€A€y�$Ø×Ñ˜9 j¸&ÐÕAr$   c                 ól  — d}d}d}d}d}t         j                  j                  «        t         j                  j                  |d«       t         j                  j                  |d«       t         j                  j                  |d«       t         j                  j                  |d«       t         j                  j                  |d«       t         j                  j                  |d«       d	D �]F  }t         j                  j                  |d«       t         j                  j                  |d«       t         j                  j	                  |dd
d«      \  }}}| j                  |||z  d¬«       t         j                  j	                  |dd
d
«      \  }}}| j                  |||z  d¬«       t         j                  j	                  |ddd«      \  }}}| j                  || |z  d¬«       t         j                  j	                  |ddd
«      \  }}}| j                  || |z  |z   d¬«       t         j                  j                  ||d
d«      \  }}}| j                  |||z  d¬«       t         j                  j                  ||d
d
«      \  }}}| j                  |||z  d¬«       t         j                  j                  ||dd«      \  }}}| j                  || |z  d¬«       t         j                  j                  ||dd
«      \  }}}| j                  || |z  |z   d¬«       t         j                  j                  |d«       t         j                  j                  d
d«      \  }}}| j                  |||z  d¬«       t         j                  j                  d
d
«      \  }}}| j                  |||z  d¬«       t         j                  j                  dd«      \  }}}| j                  || |z  d¬«       t         j                  j                  dd
«      \  }}}| j                  || |z  |z   d¬«       �ŒI y)z�Some tests to add code coverage: multiple circlings of pole (includes
    Planimeter21 - Planimeter28) + invocations via testpoint and testedge.r’   g¹\ärs›C@gH6-¬`Ag·ŒYµîÁBrå   é<   rB   iÄÿÿÿ)rh   ri   FTr7   r	   N)r¿   rÁ   rÂ   rÃ   ræ   r   rç   rÄ   )	r   rè   ÚaziÚsrê   rë   ÚirÐ   rÒ   s	            r"   Útest_Planimeter21z PlanimeterTest.test_Planimeter21ä  sÐ  € ð €CØ
 €CØ€AØ€AØ	€BÜ×Ñ× Ñ Ô"Ü×Ñ×#Ñ# C¨"Ô-Ü×Ñ×#Ñ# C¨Ô-Ü×Ñ×#Ñ# C¨Ô-Ü×Ñ×#Ñ# C¨"Ô-Ü×Ñ×#Ñ# C¨Ô-Ü×Ñ×#Ñ# C¨Ô-Øó ;ˆÜ×Ñ×%Ñ% c¨BÔ/Ü×Ñ×%Ñ% c¨3Ô/Ü!×)Ñ)×3Ñ3°C¸¸eÀTÓJ�j€aˆˆDØ
×Ñ˜T A a¡C°ÐÔ5Ü!×)Ñ)×3Ñ3°C¸¸eÀUÓK�j€aˆˆDØ
×Ñ˜T A a¡C°ÐÔ5Ü!×)Ñ)×3Ñ3°C¸¸dÀDÓI�j€aˆˆDØ
×Ñ˜T A 2 a¡4°ÐÔ5Ü!×)Ñ)×3Ñ3°C¸¸dÀEÓJ�j€aˆˆDØ
×Ñ˜T A 2 a¡4¨"¡9°cÐÔ:Ü!×)Ñ)×2Ñ2°3¸¸5À$ÓG�j€aˆˆDØ
×Ñ˜T A a¡C°ÐÔ5Ü!×)Ñ)×2Ñ2°3¸¸5À%ÓH�j€aˆˆDØ
×Ñ˜T A a¡C°ÐÔ5Ü!×)Ñ)×2Ñ2°3¸¸4ÀÓF�j€aˆˆDØ
×Ñ˜T A 2 a¡4°ÐÔ5Ü!×)Ñ)×2Ñ2°3¸¸4ÀÓG�j€aˆˆDØ
×Ñ˜T A 2 a¡4¨"¡9°cÐÔ:Ü×Ñ×%Ñ% c¨3Ô/Ü!×)Ñ)×1Ñ1°%¸Ó>�j€aˆˆDØ
×Ñ˜T A a¡C°ÐÔ5Ü!×)Ñ)×1Ñ1°%¸Ó?�j€aˆˆDØ
×Ñ˜T A a¡C°ÐÔ5Ü!×)Ñ)×1Ñ1°$¸Ó=�j€aˆˆDØ
×Ñ˜T A 2 a¡4°ÐÔ5Ü!×)Ñ)×1Ñ1°$¸Ó>�j€aˆˆDØ
×Ñ˜T A 2 a¡4¨"¡9°cÐÖ:ñ7;r$   c                 ó°  — t         j                  j                  «        t         j                  j                  dd«       t         j                  j	                  dd«       t         j                  j	                  dd«       t         j                  j	                  dd«       t         j                  j                  dd«      \  }}}| j                  |dd¬	«       y
)zACheck fix to transitdirect vs transit zero handling inconsistencyr   rN   r°   i¦ÿÿÿFTg    €„.Ar\   r	   N)r¿   rÁ   rÂ   rÃ   ÚAddEdgerÄ   r   )r   rÐ   rÒ   s      r"   Útest_Planimeter29z PlanimeterTest.test_Planimeter29  s¡   € ä×Ñ× Ñ Ô"Ü×Ñ×#Ñ# A qÔ)Ü×Ñ×"Ñ" B¨Ô-Ü×Ñ×"Ñ" Q¨Ô-Ü×Ñ×"Ñ" 3¨Ô-Ü×'Ñ'×/Ñ/°°tÓ<�J€A€qˆ$ð 	×Ñ˜4 °DÐÕ9r$   N)r-   r.   r/   r0   r   r   ÚPolygonrÁ   rÊ   ÚstaticmethodrÈ   rË   rÓ   rÖ   rØ   rÜ   rß   rã   rì   rî   rô   r÷   r1   r$   r"   r¿   r¿   ?  s‰   „ Ùà�N‰N×"Ñ" 5Ó)€'Ø�^‰^×#Ñ# DÓ)€(àñ7ó ð7ð ñ8ó ð8ò&ò0;ò/ò&/ò/ò;ò%4òNBòB*;óX
:r$   r¿   )	r0   Úunittestra   Úgeographiclib.geodesicr   ÚTestCaser   r3   r¿   r1   r$   r"   ú<module>rý      sQ   ðÙ ã Û å +ôD>�8×$Ñ$ô D>ôLoD�H×%Ñ%ô oDôb[:�X×&Ñ&õ [:r$   