+
    LV-jÉÃ  ã                   ó2  € ^ RI t ^ RIt^ RIt^ RIHtHtHtHtH	t	 ^ RI
t
^ RI
Ht ^ RIHu Ht ^ RIHt ^ RIHt ^ RItR t]3R lt]P2                  P5                  R4       . R/Ot]P8                  ! . R0R0.NR0R1.NR0R2.NR0R3.NR0R.NR0R.NR0R.NR0R
.NR0R	.NR1R0.NR1R1.NR1R2.NR1R3.NR1R.NR1R.NR1R.NR1R
.NR1R	.NR2R3.NR2R.NR2R2.NR2R.NR2R.NR2R0.NR2R1.NR2R
.NR2R	.NR3R2.NR3R.NR3R0.NR3R1.NR3R3.NR3R.NR3R.NR3R
.NR3R	.NRR0.NRR1.NRR2.NRR3.NRR.NRR.NRR.NRR
.NRR	.NRR0.NRR1.NRR3.NRR.NRR.NRR
.NRR	.NRR2.NRR.NRR0.NRR1.NRR
.NRR	.NRR2.NRR.NRR.NRR3.NRR.NR
R0.NR
R1.NR
R2.NR
R3.NR
R.NR
R.NR
R.NR
R
.NR
R	.NR	R0.NR	R1.NR	R2.NR	R3.NR	R.NR	R.NR	R.NR	R
.NR	R	.N4      t]P8                  ! R4R4.R4^ .R4^.^ R4.^ ^ .^ ^.^R4]P<                  ! ]P>                  4      P@                  ,
          .^^ .^^..	4      t!]P2                  PE                  ^
^4      ]P8                  ! ^ ^ .^ ^.^^ .^^..4      .t#]#]P2                  PE                  ^
^4      R]P8                  ! ^ ^ .^ ^.^^ .^^..4      ,           .,           t$R]PJ                  ! ]4      R]P2                  PE                  ^^4      R]P2                  PE                  ^^4      R]P2                  PE                  ^^4      R]P2                  PE                  ^^4      R]P2                  PE                  ^
^4      R]P2                  PE                  ^
^4      R]P2                  PE                  ^
^4      R]R]!/
t&R]#R3R]$R3/t'R t(]& F  t)R5 F  t*](! ])]*4       K  	  K  	   ! R R4      t+ ! R R4      t, ! R  R!4      t- ! R" R#4      t.R$ t/ ! R% R&4      t0 ! R' R(4      t1 ! R) R*4      t2]
Pf                  Pi                  R+]]Pj                  .4      R, 4       t6R- t7R. t8R# )6é    N)Úassert_equalÚassert_almost_equalÚassert_Úassert_allcloseÚassert_array_equal)Úraises)ÚcKDTree)ÚVoronoic                 ó*   € \        \        V 4      4      # ©N©ÚtupleÚsorted©Úxs   &Úo/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/scipy/spatial/tests/test_qhull.pyÚsorted_tupler      s   € Ü”˜“ÓÐó    c                 ól  € \        V \        P                  4      '       d   V P                  4       p \        V\        P                  4      '       d   VP                  4       p\	        \        W 4      4      p V P                  4        \	        \        W!4      4      pVP                  4        \        W4       R # r   )Ú
isinstanceÚnpÚndarrayÚtolistÚlistÚmapÚsortr   )ÚaÚbÚtpls   &&&r   Ú!assert_unordered_tuple_list_equalr       sp   € Ü�!”R—Z‘Z× Ò Ø�H‰H‹JˆÜ�!”R—Z‘Z× Ò Ø�H‰H‹JˆÜŒS�‹[Ó€AØ‡F�F„HÜŒS�‹[Ó€AØ‡F�F„HÜ�Ör   éÒ  g…ëQ¸	@gáz®Gá@g…ëQ¸ù?gHáz®Gé?ç        ç      Ð?úsome-pointsz	random-2dz	random-3dz	random-4dz	random-5dz	random-6dz	random-7dz	random-8dúpathological-1úpathological-2zbug-2850z
bug-2850-2c                ó6  € \         V ,          pVP                  ^,          pRpV^,           pV R8X  d   RpM	V R8X  d   ^pVRV .p\        V\        V4      V4       F  pVP	                  W'Wq,            4       K  	  V  RV 2pV\
        9  g   Q hWd3\
        V&   R# )z4
Generate incremental datasets from basic data sets
Nr$   zQJ Ppr%   z-chunk-)ÚDATASETSÚshapeÚrangeÚlenÚappendÚINCREMENTAL_DATASETS)	ÚnameÚ	chunksizeÚpointsÚndimÚoptsÚnminÚchunksÚjÚnew_names	   &&       r   Ú_add_inc_datar7   ]   s¨   € ô �d�^€FØ�<‰<˜�?€Dà€DØ�!�8€Dàˆ}Ôà‰Ø	Ð!Ô	!àˆà�U�dˆmˆ_€FÜ�4œ˜V› iÖ0ˆØ�‰�f˜q�{Ð+Ö,ñ 1ð ��w˜y˜kÐ*€HØÔ/Ô/Ð/Ð/Ø&, ^Ô˜Ó"r   c                   ó,   a € ] tR t^|t o R tR tRtV tR# )Ú
Test_Qhullc                ó¬  € \         P                  ! R \        P                  ! ^ ^ .^ ^.^^ .^R.RR..4      R4      p\        P
                  ! VP                  4       4      p\         P                  ! R \        P                  ! ^ ^ .^ ^.^^ .^R..4      R4      p\        P
                  ! VP                  4       4      p\        P
                  ! VP                  4       4      pVP                  4        \        P
                  ! VP                  4       4      pVP                  4        \        \        VP                  4       \        \        VP                  4       \        V^ ,          V^ ,          4       \        V^,          V^,          \        R7       \        V^,          V^,          \        R7       \        V^,          V^,          \        R7       \        V^,          V^,          4       \        V^ ,          V^ ,          4       \        V^,          V^,          \        R7       \        V^,          V^,          \        R7       \        V^,          V^,          \        R7       \        V^,          V^,          4       VP                  4        \        \        VP                  4       VP                  4        \        \        VP                  4       R# )ó   vç      ð?ç      à?s   Qzç       @©r   N)ÚqhullÚ_Qhullr   ÚarrayÚcopyÚdeepcopyÚget_voronoi_diagramÚcloseÚassert_raisesÚRuntimeErrorr   r    r   r   )Úselfr   ÚxdÚyÚydÚxd2Úyd2s   &      r   Útest_swappingÚTest_Qhull.test_swapping}   sþ  € ô �LŠL˜ÜŸš A a 5¨!¨A¨°°!¨u°a¸°V¸SÀ¸IÐ"FÓGØó ˆô �]Š]˜1×0Ñ0Ó2Ó3ˆä�LŠL˜ÜŸš A a 5¨!¨A¨°°!¨u°a¸°VÐ"<Ó=Øó ˆô �]Š]˜1×0Ñ0Ó2Ó3ˆä�mŠm˜A×1Ñ1Ó3Ó4ˆØ	�‰Œ	Ü�mŠm˜A×1Ñ1Ó3Ó4ˆØ	�‰Œ	ä”l A×$9Ñ$9Ô:Ü”l A×$9Ñ$9Ô:ä˜˜1�˜s 1�vÔ&Ü)¨"¨Q­%°°Qµ¼\ÕJÜ)¨"¨Q­%°°Qµ¼\ÕJÜ)¨"¨Q­%°°Qµ¼\ÕJÜ˜2˜a�5 # a¥&Ô)ä˜˜1�˜s 1�vÔ&Ü)¨"¨Q­%°°Qµ¼\ÕJÜ)¨"¨Q­%°°Qµ¼\ÕJÜ)¨"¨Q­%°°Qµ¼\ÕJÜ˜2˜a�5 # a¥&Ô)à	�‰Œ	Ü”l A×$9Ñ$9Ô:Ø	�‰Œ	Ü”l A×$9Ñ$9Ö:r   c                ó~   € \         P                  ! ^ ^ .^ ^.^ ^.^^ .^^.^^.^^ .^^.^^..	4      p\        V4       R# )r   N)r   rB   r
   )rI   r0   s   & r   Útest_issue_8051ÚTest_Qhull.test_issue_8051£   sT   € Ü—’Ø�ˆV�a˜�V˜a ˜V a¨ V¨a°¨V°a¸°V¸QÀ¸FÀQÈÀFÈQÐPQÈFÐSó
ˆô 	�Žr   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rO   rR   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r9   r9   |   s   ø‡ € ò$;÷Lð r   r9   c                   ó  a € ] tR t^ªt o RtR tR tR tR tR t	R t
RR lt]P                  P                  ^
4      R	 4       t]P                  P                   ]P                  P                  ^4      R
 4       4       tRtV tR# )ÚTestUtilitiesz%
Check that utility functions work.

c                óx  € \         P                  ! . RO\         P                  R7      p\        P                  ! V4      p\        VP                  . RO. RO.4       R FY  pVP                  VR,          4      p\        WC^,          V: R7       \        P                  ! W#R,          4      p\        WE4       K[  	  R# )	r   ©Údtype:Né   N©Úerr_msgN©©r   r   ©r   é   ©rh   rh   ©rh   r   ©rh   é   rb   ©rl   rh   r   ))r#   r#   rh   )ç      è?rn   r   )ç333333Ó?çš™™™™™É?rh   )	r   rB   Úfloat64r@   ÚDelaunayr   Ú	simplicesÚfind_simplexÚtsearch)rI   r0   ÚtriÚpÚir5   s   &     r   Útest_find_simplexÚTestUtilities.test_find_simplex°   s†   € ä—’Ò6¼b¿j¹jÔIˆÜ�nŠn˜VÓ$ˆô 	�S—]‘]¢Y²	Ð$:Ô;ó!ˆAð × Ñ   2¥Ó'ˆAÜ˜˜a�D¨Q©EÕ3Ü—’˜c R¥5Ó)ˆAÜ˜Öó!r   c                ó  € \         P                  ! . RO\         P                  R7      p\         P                  ! RR.\         P                  R7      p\        P                  ! V4      pVP                  V4      pVP                  V4      pVP                  V4      p\        VP                  4       FÚ  w  rxWH^ ,          ,          p	WH^,          ,          p
WH^,          ,          p\         P                  ! W›,
          W«,
          4      pV\         P                  ! \         P                  ! WÌ4      4      ,          pV\         P                  ! V^,          4      ) ,          p\         P                  ! WÅV,
          4      p\        Wg,          V4       KÜ  	  R# )r   r`   gä†›Býï?gÒÝÄ?N)rf   ri   rj   )g]2Ê�½ï?g>mj‡Ø?)g~T›!Òï?g^RÎz¥êÜ?)r   rB   rq   r@   rr   Úlift_pointsÚplane_distanceÚ	enumeraters   ÚcrossÚsqrtÚdotÚsignr   )rI   r   rw   rv   ÚzÚpzÚdistr5   ÚvÚx1Úx2Úx3ÚnÚds   &             r   Útest_plane_distanceÚ!TestUtilities.test_plane_distanceÅ   s  € ô �HŠHò 0Ü79·z±zôCˆä�HŠH�j *Ð-´R·Z±ZÔ@ˆä�nŠn˜QÓˆà�O‰O˜AÓˆØ�_‰_˜QÓˆà×!Ñ! !Ó$ˆä˜cŸm™mÖ,‰DˆAØ�Q•4•ˆBØ�Q•4•ˆBØ�Q•4•ˆBä—’˜� "¥'Ó*ˆAØ”—’œŸš ›Ó&Õ&ˆAØ”"—'’'˜!˜A�$“-�ÕˆAä—’�q˜r�'Ó"ˆAä ¥¨Ö+ó -r   c                óÆ   € \         P                  ! . RO\         P                  R7      p\        P                  ! V4      p\        VP                  ^^.^^.^^ .^^ ..4       R# ©r   r`   Nre   )r   rB   rq   r@   rr   r   Úconvex_hull©rI   r0   rv   s   &  r   Útest_convex_hullÚTestUtilities.test_convex_hullà   sN   € ä—’Ò6¼b¿j¹jÔIˆÜ�nŠn˜VÓ$ˆô 	�S—_‘_¨¨1 v°°1¨v¸¸1°vÀÀ1¸vÐ&FÖGr   c                óÆ   € \         P                  ! . RO4      p\        P                  ! V4      p\	        VP
                  RRRR7       \	        VP                  RRRR7       R# )	r   r<   ç›+¡†›„=zVolume of cube is incorrect©Úrtolrd   ç      @zArea of cube is incorrectN©)r   r   r   )r   rh   r   )rh   r   r   )rh   rh   r   )r   r   rh   )r   rh   rh   )rh   r   rh   )rh   rh   rh   ©r   rB   r@   Ú
ConvexHullr   ÚvolumeÚarea©rI   r0   Úhulls   &  r   Útest_volume_areaÚTestUtilities.test_volume_areaí   sQ   € ä—’ò Gó Hˆä×Ò Ó'ˆä˜Ÿ™ R¨eØ =õ	?ä˜Ÿ	™	 2¨EØ ;÷	=r   c                óÆ   € \         P                  ! . RO4      p\        P                  ! V4      p\	        VP
                  RRRR7       \	        VP                  RRRR7       R# )	ç¿„ñQ4×?gY þ/®£Â?çH¯¼šò×z>z(Volume of random polyhedron is incorrectr–   g\¬¨Á4¬ú?z&Area of random polyhedron is incorrectN)
)r£   gŽÎœRë@Þ?gX&ÜlL5Ö?)gfÙÇN»zç?gjýž©Mä?g{Dí�šjî?)ga?8å\à?g®µ‚–ì?g�w5­KÁÚ?)g,lnq›³?g6½„î=àà?gŒ UáÔä?)gwì»�æÆÂ?g�ã°`ã?gaè‚³¢ì?)gâ+´qà?g\h½¿Ï±?gLƒg¼ýà?)g¾GéÕeà?gEˆ9²;å?gd:ëL£?)gÈŠK×BÞ?gB²Y’M”Ý?g�ßñÈÿÁ?)g~EHàyËÎ?gUƒdkÈêè?gmÖVq"ç?)gæÉÌqÑpî?g•¹e«ñî?g\û*L€ì?rš   rž   s   &  r   Útest_random_volume_areaÚ%TestUtilities.test_random_volume_areaø   sW   € ô —’ò 	Mó 	Nˆô ×Ò Ó'ˆÜ˜Ÿ™ Z°eØ Jõ	Lä˜Ÿ	™	 9°5Ø H÷	Jr   c                ó  € ^p^p\         P                  P                  W34      p\        P                  ! VRV^,           1R3,          RR7      p\        P                  ! VRV^,           1R3,          RR7      p\	        V^,           V4       Fù  p\        P                  ! VRV^,           1R3,          4      pVP                  W6V^,           1R3,          4       VP                  W6V^,           1R3,          RR7       \        VP                  VP                  RR7       \        VP                  VP                  RR7       \        VP                  VP                  RR7       \        VP                  VP                  RR7       Kû  	  R# )zoTest that incremental mode gives the same volume/area as
non-incremental mode and incremental mode with restartNºNNNT©Úincremental©Úrestartr¤   ©r—   )	r   Úrandomr@   r›   r*   Ú
add_pointsr   rœ   r�   )rI   Ú	nr_pointsÚdimr0   Úinc_hullÚinc_restart_hullrx   rŸ   s   &       r   Ú)test_incremental_volume_area_random_inputÚ7TestUtilities.test_incremental_volume_area_random_input  s6  € ð ˆ	ØˆÜ—‘×!Ñ! 9Ð"2Ó3ˆÜ×#Ò# F¨6¨C°­E¨6°1¨9Õ$5À4ÔHˆÜ ×+Ò+¨F°6°C¸µE°6¸1°9Õ,=È4ÔPÐÜ�s˜1•u˜iÖ(ˆAÜ×#Ò# F¨4¨A¨a­C¨4°¨7¥OÓ4ˆDØ×Ñ ¨¨1­ u¨a xÕ 0Ô1Ø×'Ñ'¨°°1µ¨u°a¨xÕ(8À$Ð'ÔGÜ˜DŸK™K¨¯©¸tÕDÜ˜DŸK™KÐ)9×)@Ñ)@ÀtÕLÜ˜DŸI™I x§}¡}¸4Õ@Ü˜DŸI™IÐ'7×'<Ñ'<À4×Hó )r   c                ó†  € VP                   VP                  ,          p^VP                  R,           ,          pVP                  ^R7      V,          pR p\        P
                  ! \        4      P                  p	V! VP                  V4      p
\        P                  ! RR7      ;_uu_ 4        \        P                  ! V
4      P                  ^R7      \        W¦,
          4      V,          R8  P                  ^R7      ,          pRRR4       \        XP                  4       V R\        P                  ! V( 4       24       VR	RR
1R	3,          VR,          ,
          p\        P                  ! \!        VP"                  4       Uu. uF+  p\        P$                  P'                  WÍR	R	3,          4      NK-  	  up4      p\        P(                  ! VP                  R,          4      V\        P*                  ! V	4      8  ,          p\        VP                  4       V R\        P                  ! V( 4       24       VP-                  V4      pVR
8g  \        P                  ! VP                  R,          4      ,          p\        VP                  4       V R\        P                  ! V( 4       24       V'       dz   Wt8*  P/                  ^R7      pVV^V,
          8¬  P/                  ^R7      ,          pVR
8g  V,          p\        VP                  4       V R\        P                  ! V( 4       24       R# R#   + '       g   i     EL2; iu upi )z@Check that a triangulation has reasonable barycentric transformsr<   ©Úaxisc                 ól   € V R,          pV R RR1R 3,          p\         P                  ! RW1V,
          4      # )r¨   Nz
ijk,ik->ijéÿÿÿÿ)r¨   rº   r¨   )r   Úeinsum)Útrr   ÚrÚTinvs   &&  r   Úbarycentric_transformÚJTestUtilities._check_barycentric_transforms.<locals>.barycentric_transform(  s3   € Ø�6•
ˆAØ�a˜˜˜˜A�g•;ˆDÜ—9’9˜\¨4°QµÓ7Ð7r   Úignore)Úinvalidgš™™™™™¹?NÚ r¨   rº   )r¨   rº   Nr¨   ©r¨   r   r   )r0   rs   r1   Úsumr   ÚfinfoÚfloatÚepsÚ	transformÚerrstateÚisnanÚallÚabsr   ÚnonzerorB   r*   ÚnsimplexÚlinalgÚdetÚisfiniter€   rt   Úany)rI   rv   rd   Ú	unit_cubeÚunit_cube_tolÚverticesÚscÚ	centroidsr¿   rÈ   ÚcÚokÚqÚkrœ   r5   Úat_boundarys   &&&&&            r   Ú_check_barycentric_transformsÚ+TestUtilities._check_barycentric_transforms  so  € ð —:‘:˜cŸm™mÕ,ˆØ�—‘˜3•ÕˆØ—L‘L a�LÓ(¨2Õ-ˆ	ò
	8ô
 �hŠh”u‹o×!Ñ!ˆá! #§-¡-°Ó;ˆÜ�[Š[ ×*Ö*Ü—’˜!“—‘ a�Ó(¬C°µ«K¸­N¸SÑ,@×+EÑ+EÈ1Ð+EÓ+MÕMˆB÷ +ô 	�—‘“˜W˜I Q¤r§z¢z°2°#£Ð&7Ð8Ô9ð �Q�s˜�s˜1�WÕ ¨Õ 5Õ5ˆÜ—’Ü$)¨#¯,©,Ô$7ó9Ù$7˜qô Ÿ9™9Ÿ=™=¨¨Q¨q¨5­Ö2Ù$7ñ9ó :ˆä�[Š[˜Ÿ™ uÕ-Ó.°&¼2¿7º7À3»<Ñ2GÕHˆÜ�—‘“˜W˜I Q¤r§z¢z°2°#£Ð&7Ð8Ô9ð ×Ñ˜YÓ'ˆØ�2‰gœŸš #§-¡-°Õ"6Ó7Õ7ˆÜ�—‘“˜W˜I Q¤r§z¢z°2°#£Ð&7Ð8Ô9çà$Ñ5×:Ñ:ÀÐ:ÓBˆKØ˜I¨¨]Õ):Ñ:×?Ñ?ÀQÐ?ÓGÕGˆKà�r‘'˜[Õ(ˆBÜ�B—F‘F“H  	¨¬2¯:ª:°r°c«?Ð*;Ð<Ö=ñ ÷% +×*Ð*üò9s   Â*AL*Æ 1L>Ì*L;	c                óº  € \         P                  ! \        P                  P	                  \        P                  P                  \        4      R R4      4      pVR,          pVP                  4        \        P                  ! V4      p\         P                  ! VP                  R,          4      P                  4       p\        V^8  V4       V P                  V4       R# )Údatazdegenerate_pointset.npzrÙ   NrÄ   )r   ÚloadÚosÚpathÚjoinÚdirnameÚ__file__rF   r@   rr   rË   rÉ   rÅ   r   rÞ   )rI   rá   r0   rv   Ú	bad_counts   &    r   Ú&test_degenerate_barycentric_transformsÚ4TestUtilities.test_degenerate_barycentric_transformsJ  s–   € ô �wŠw”r—w‘w—|‘|¤B§G¡G§O¡O´HÓ$=¸vØ$=ó?ó @ˆà�c•ˆØ�
‰
Œä�nŠn˜VÓ$ˆô —H’H˜SŸ]™]¨5Õ1Ó2×6Ñ6Ó8ˆ	Ü�	˜B‘ 	Ô*ð 	×*Ñ*¨3Ö/r   c                óF  € \         P                  ! \        4      P                  p^^F^^^^^^/p\	        ^^4       EFá  p\         P
                  ! ^ ^W#,          4      p\         P                  \        \        \         P                  \         P                  ! \         P                  ! V.V,          !  !  4      4      ,          P                  pRV 2p\        P                  ! V4      pV P                  WvRR7       \         P                   P#                  R4       \         P                   P%                  VP&                  ^ ,          4      R8  pWXR3;;,          ^V,          \         P                   P$                  ! WXR3,          P&                  !  R,
          ,          ,          uu&   \        P                  ! V4      pV P                  WvR^V,          R7       \        P                  ! \         P(                  WU3,          4      pV P                  WvR^V,          R7       EKä  	  R	# )
rb   zndim=T)rd   rÔ   r!   rp   r¨   r=   )rd   rÔ   rÕ   N)r   rÆ   rÇ   rÈ   r*   ÚlinspaceÚc_r   r   ÚravelÚbroadcast_arraysÚix_ÚTr@   rr   rÞ   r®   ÚseedÚrandr)   Úr_)	rI   rÈ   Únpointsr1   r   Úgridrd   rv   Úms	   &        r   Ú test_more_barycentric_transformsÚ.TestUtilities.test_more_barycentric_transforms\  s˜  € ô �hŠh”u‹o×!Ñ!ˆà�b˜!˜R  A q¨!Ð,ˆä˜!˜Q—KˆDä—’˜A˜q '¥-Ó0ˆAÜ—5‘5Ü”SœŸ™¤2×#6Ò#6¼¿ºÀ!ÀÀTÅÑ8KÑ#LÓMÓNõç‰að ð ˜d˜V�nˆGô —.’. Ó&ˆCØ×.Ñ.¨sØ9=ð /ô ?ô �I‰I�N‰N˜4Ô Ü—‘—‘ §
¡
¨1¥Ó.°Ñ4ˆAØ�1��I˜˜3�¤§	¡	§¢°°q°Sµ	·±Ñ @À3Õ FÕGÕG‹Iä—.’. Ó&ˆCØ×.Ñ.¨sØ9=Ø=>¸s½Uð /ô Dô
 —.’.¤§¡ t zÕ!2Ó3ˆCØ×.Ñ.¨sØ9=Ø=>¸s½Uð /÷ Dó5  r   rT   N)Ú Fr   )rU   rV   rW   rX   Ú__doc__ry   rŒ   r’   r    r¥   r´   rÞ   ÚpytestÚmarkÚ	fail_slowré   Úslowrø   rY   rZ   r[   s   @r   r^   r^   ª   s‹   ø‡ € ñò
ò*,ò6Hò	=òJò(Iô"+>ðZ ‡[�[×Ñ˜2Óñ0ó ð0ð" ‡[�[×ÑØ‡[�[×Ñ˜2Óñ#Dó ó ö#Dr   r^   c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )ÚTestVertexNeighborVerticesi…  c                ó$  € \        VP                  P                  ^ ,          4       Uu. uF  p\        4       NK  	  ppVP                   F4  pV F+  pV F"  pWV8w  g   K  W5,          P                  V4       K$  	  K-  	  K6  	  VP                  w  rx\        VP                  P                  ^ ,          4       Uu. uF2  p\        \        \        W‡V,          Wr^,           ,           4      4      NK4  	  p	p\        W“V	: RV: 2R7       R# u upi u upi )r   z != rc   N)
r*   r0   r)   Úsetrs   ÚaddÚvertex_neighbor_verticesr   Úintr   )
rI   rv   r5   ÚexpectedÚsr   r   ÚindptrÚindicesÚgots
   &&        r   Ú_checkÚ!TestVertexNeighborVertices._check†  sä   € Ü#(¨¯©×)9Ñ)9¸!Õ)<Ô#=Ó>Ñ#=˜a”C–EÑ#=ˆÐ>Ø—”ˆAÛ�Û�AØ–vØ �Ÿ™¨Ö*ó ó ñ ð ×6Ñ6‰ˆô ˜cŸj™j×.Ñ.¨qÕ1Ô2ó4Ù2�1ô ”3”s˜G¨1¥I¨f°qµS­kÐ:Ó;Ö<Ù2ð 	ð 4ô 	�S¨s©g°T¸(¹Ð,F×Gùò ?ùò4s   ©DÂ88Dc                ó¤   € \         P                  ! . RO\         P                  R7      p\        P                  ! V4      pV P                  V4       R# )r   r`   N)rf   rg   rj   ©r   rB   rq   r@   rr   r  r‘   s   &  r   Útest_triangleÚ(TestVertexNeighborVertices.test_triangle•  s1   € Ü—’Ò/´r·z±zÔBˆÜ�nŠn˜VÓ$ˆØ�‰�CÖr   c                ó¤   € \         P                  ! . RO\         P                  R7      p\        P                  ! V4      pV P                  V4       R# r�   r  r‘   s   &  r   Útest_rectangleÚ)TestVertexNeighborVertices.test_rectangleš  s1   € Ü—’Ò6¼b¿j¹jÔIˆÜ�nŠn˜VÓ$ˆØ�‰�CÖr   c                ó¤   € \         P                  ! . RO\         P                  R7      p\        P                  ! V4      pV P                  V4       R# )r   r`   N)rf   rg   ri   rj   ©r=   r=   )gÍÌÌÌÌÌì?r=   r  r‘   s   &  r   Útest_complicatedÚ+TestVertexNeighborVertices.test_complicatedŸ  s7   € Ü—’ò 3Ü:<¿*¹*ôFˆä�nŠn˜VÓ$ˆØ�‰�CÖr   rT   N)
rU   rV   rW   rX   r  r  r  r  rY   rZ   r[   s   @r   r  r  …  s   ø‡ € òHòò
÷
ð r   r  c                   óª   a € ] tR tRt o RtR tR tR tR tR t	R t
R	 tR
 tR t]P                  P!                  R]! ]4      4      R 4       tRtV tR# )ÚTestDelaunayi¦  z"
Check that triangulation works.

c                ó‚   € \         P                  P                  ^4      p\        \        \
        P                  V4       R# ©rh   N)r   ÚmaÚ
masked_allrG   Ú
ValueErrorr@   rr   ©rI   Úmasked_arrays   & r   Útest_masked_array_failsÚ$TestDelaunay.test_masked_array_fails«  s&   € Ü—u‘u×'Ñ'¨Ó*ˆÜ”j¤%§.¡.°,Ö?r   c                ó¸   € \         P                  ! RRR^\         P                  3.\         P                  R7      p\	        \
        \        P                  V4       R# )r   r`   Nrf   rg   ri   )r   rB   Únanrq   rG   r  r@   rr   ©rI   Úpoints_with_nans   & r   Útest_array_with_nans_failsÚ'TestDelaunay.test_array_with_nans_fails²  s7   € ÜŸ(š( E¨5°%¸!¼B¿F¹F¸Ð#DÌBÏJÉJÔWˆÜ”j¤%§.¡.°/ÖBr   c           
     ó
  € \        ^^4       Fò  p\        P                  ! V^,           V34      p\        V4       F	  pRW#V3&   K  	  RVR&   \        P                  ! V4      pVP
                  P                  4        \        VP
                  \        P                  ! V^,           \        R7      R,          4       \        VP                  R\        P                  ! V^,           \        R7      R,          ,           4       Kô  	  R# )rb   r<   r`   Nrº   )rº   r¨   )Nr¨   )r*   r   Úzerosr@   rr   rs   r   r   Úaranger  Ú	neighbors)rI   Úndr0   r5   rv   s   &    r   Útest_nd_simplexÚTestDelaunay.test_nd_simplex¶  s±   € ä˜˜1–+ˆBÜ—X’X˜r !�t R˜jÓ)ˆFÜ˜2–Y�Ø!�˜�s“ñ àˆF�4‰Lä—.’. Ó(ˆCà�M‰M×ÑÔ ä˜Ÿ™¬¯	ª	°"°Qµ$¼cÔ(BÀ7Õ(KÔLÜ˜Ÿ™¨¬R¯XªX°r¸!µtÄCÔ-HÈÕ-PÕ(PÖQó r   c                óò   € \         P                  ! . RO\         P                  R7      p\        P                  ! V4      p\        VP                  . RO. RO.4       \        VP                  . RO. RO.4       R# )r   r`   Nre   rk   rm   )rº   rº   rh   )rº   rº   r   )r   rB   rq   r@   rr   r   rs   r-  r‘   s   &  r   Útest_2d_squareÚTestDelaunay.test_2d_squareÅ  sK   € ä—’Ò6¼b¿j¹jÔIˆÜ�nŠn˜VÓ$ˆä�S—]‘]¢Y²	Ð$:Ô;Ü�S—]‘]¢[²+Ð$>Ö?r   c                ó¶  € \         P                  ! . RO\         P                  R7      p\         P                  ! . RO\         P                  R7      p\         P                  W3,          p\         P                  W"3,          p\        P
                  ! \         P                  W3,          4       \        P
                  ! \         P                  W43,          4       R# )r   r`   N)r   rh   r   rh   )r   r   rh   rh   )r   rB   rq   rô   r@   rr   rí   )rI   r   rK   ÚxpÚyps   &    r   Útest_duplicate_pointsÚ"TestDelaunay.test_duplicate_pointsÍ  sv   € Ü�HŠH’\¬¯©Ô4ˆÜ�HŠH’\¬¯©Ô4ˆä�U‰U�1�4�[ˆÜ�U‰U�1�4�[ˆô 	�Š”r—u‘u˜Q˜T•{Ô#Ü�Š”r—u‘u˜R˜V•}Ö%r   c                óª  € \         R ,          p\        P                  ! V4      p\        VP                  VP
                  ,          P                  4       VP                  4       4       \        VP                  VP
                  ,          P                  4       VP                  4       4       \         R,          p\        P                  ! V4      p\        VP                  VP
                  ,          P                  4       VP                  4       4       \        VP                  VP
                  ,          P                  4       VP                  4       4       R# )r%   r&   N)r(   r@   rr   r   r0   rs   ÚmaxÚminr‘   s   &  r   Útest_pathologicalÚTestDelaunay.test_pathologicalØ  sÌ   € äÐ*Õ+ˆÜ�nŠn˜VÓ$ˆÜ�S—Z‘Z §¡Õ.×2Ñ2Ó4°f·j±j³lÔCÜ�S—Z‘Z §¡Õ.×2Ñ2Ó4°f·j±j³lÔCäÐ*Õ+ˆÜ�nŠn˜VÓ$ˆÜ�S—Z‘Z §¡Õ.×2Ñ2Ó4°f·j±j³lÔCÜ�S—Z‘Z §¡Õ.×2Ñ2Ó4°f·j±j³lÖCr   c                óP  € \         P                  P                  ^
^4      p\         P                  W3,          p\        P
                  ! VRR7      p\        \         P                  ! VP                  P                  4       4      \         P                  ! \        V4      4      4       R# )é
   z	QJ Qbb Pp©Úqhull_optionsN)r   r®   ró   rô   r@   rr   r   Úuniquers   rî   r,  r+   r‘   s   &  r   Útest_joggleÚTestDelaunay.test_joggleä  sh   € ô —‘—‘  AÓ&ˆÜ—‘�v�~Õ&ˆä�nŠn˜V°;Ô?ˆÜœ2Ÿ9š9 S§]¡]×%8Ñ%8Ó%:Ó;ÜŸ9š9¤S¨£[Ó1ö	3r   c                óš  € \         P                  P                  ^
^4      p\         P                  W3,          p\        P
                  ! V4      p\        \        \         P                  ! VP                  P                  4       4      4      \        V4      ^,          8H  4       \        \        VP                  4      \        V4      ^,          8H  4       \        \        \         P                  ! VP                  R,          4      4      \        V4      ^,          8H  4       \        \         P                  ! VP                  ^ 8¬  4      4       R# )r?  N)r¨   rb   )r   r®   ró   rô   r@   rr   r   r+   rB  rs   rî   ÚcoplanarrÌ   Úvertex_to_simplexr‘   s   &  r   Útest_coplanarÚTestDelaunay.test_coplanarï  sÊ   € ä—‘—‘  AÓ&ˆÜ—‘�v�~Õ&ˆä�nŠn˜VÓ$ˆä””B—I’I˜cŸm™m×1Ñ1Ó3Ó4Ó5¼¸V»Àa½ÑGÔHÜ”�C—L‘LÓ!¤S¨£[°!¥^Ñ3Ô4ä””B—I’I˜cŸl™l¨3Õ/Ó0Ó1´S¸³[À!µ^ÑCÔDä”—’�s×,Ñ,°Ñ1Ó2Ö3r   c                óš   € . ROp\         P                  ! VRR7      p\        P                  ! RR.4      p\	        VP
                  V4       R# )r   T©Úfurthest_siteN©rf   rg   rj   r  )çš™™™™™ñ?rN  )rh   é   r   )rO  rb   r   )r@   rr   r   rB   r   rs   )rI   r0   rv   r  s   &   r   Útest_furthest_siteÚTestDelaunay.test_furthest_siteý  s8   € ÚAˆÜ�nŠn˜V°4Ô8ˆä—8’8˜Y¨	Ð2Ó3ˆÜ˜3Ÿ=™=¨(Ö3r   r.   c                óþ  € \         V,          w  r#\        P                  ! V^ R7      p\        P                  ! V^ ,          RVR7      pVR,           F  pVP                  V4       K  	  \        P                  ! V4      p\        P                  ! V^ ,          RVR7      p\        V4      ^8”  d1   VP                  \        P                  ! VR,          ^ R7      RR7       VP                  R4      '       d¼   \        \        P                  ! VP                  P                  4       4      \        P                  ! VP                  ^ ,          4      4       \        \        P                  ! VP                  P                  4       4      \        P                  ! VP                  ^ ,          4      4       M&\        VP                  VP                  \        R7       \        VP                  VP                  \        R7       R# )	r   r·   T©rª   rA  ºrh   NNr«   Úpathologicalr?   N)r-   r   Úconcatenater@   rr   r¯   r+   Ú
startswithr   rB  rs   rî   r,  r)   r    r   )	rI   r.   r4   r2   r0   ÚobjÚchunkÚobj2Úobj3s	   &&       r   Útest_incrementalÚTestDelaunay.test_incremental  s\  € ô ,¨DÕ1‰ˆÜ—’ ¨QÔ/ˆä�nŠn˜V A�Y°DØ+/ô1ˆà˜B—Z�ZˆEØ�N‰N˜5Ö!ñ  ô �~Š~˜fÓ%ˆä�~Š~˜f Q�i°TØ,0ô2ˆäˆv‹;˜Œ?Ø�O‰OœBŸNšN¨6°"­:¸AÔ>Ø$(ð ô *ð �?‰?˜>×*Ò*ô œrŸyšy¨¯©×)<Ñ)<Ó)>Ó?Ü!Ÿyšy¨¯©°a­Ó9ô;äœrŸyšy¨¯©×)=Ñ)=Ó)?Ó@Ü!Ÿyšy¨¯©°a­Ó9õ;ô .¨c¯m©m¸T¿^¹^Ü2>õ@ô 	*¨$¯.©.¸$¿.¹.Ü.:÷	<r   rT   N)rU   rV   rW   rX   rû   r"  r(  r/  r2  r7  r<  rC  rH  rP  rü   rý   Úparametrizer   r-   r\  rY   rZ   r[   s   @r   r  r  ¦  sh   ø‡ € ñò@òCòRò@ò	&ò
Dò	3ò4ò4ð ‡[�[×Ñ˜V¡VÐ,@Ó%AÓBñ!<ó Cö!<r   r  c                 óò  € \        \        \        V4      4      p\        \        \        V4      4      pW8w  Ed3   V P                  ^,          ^8X  Ed   R\        P
                  ! \        4      P                  ,          pV EFå  w  rEV EFÐ  w  rgW,          W,          ,
          pV\        P                  P                  V4      ,          p\        P                  ! V^,          ) V^ ,          .4      p	\        P                  ! W�V,          W,          ,
          4      p
\        P                  ! W�V,          W,          ,
          4      p\        P                  ! \        P                  ! W©4      ^ 4      '       g   Kï  \        P                  ! \        P                  ! W¹4      ^ 4      '       g   EK#  \        P                  ! W€V,          W,          ,
          4      p
\        P                  ! W€V,          W,          ,
          4      p\        P                  ! W€V,          W,          ,
          4      pW£) 8  g   W¬V,           8”  d   EK¸  W³) 8  g   W¼V,           8”  d   EKÏ   EKÛ  	  \        R4      h	  R# \        W4       R# )rh   iè  zcomparison failsN)r  r   r   r)   r   rÆ   rÇ   rÈ   rÐ   ÚnormrB   r�   ÚallcloseÚAssertionErrorr   )r0   Úfacets_1Úfacets_2rÈ   r   r   ÚapÚbpÚtrŠ   Úc1Úc2Úc3s   &&&          r   Úassert_hulls_equalrk  )  s«  € ô ”3”| XÓ.Ó/€HÜ”3”| XÓ.Ó/€HàÕ §¡¨Q¥°1Õ 4ð ”R—X’Xœe“_×(Ñ(Õ(ˆä‰DˆAÜ"‘�Ø•J ¥Õ+�Ø”R—Y‘Y—^‘^ AÓ&Õ&�Ü—H’H˜q �t˜e Q q¥T˜]Ó+�ô —V’V˜A a�y¨6­:Õ5Ó6�Ü—V’V˜A a�y¨6­:Õ5Ó6�Ü—{’{¤2§6¢6¨"£=°!×4Ò4ÙÜ—{’{¤2§6¢6¨"£=°!×4Ò4Úô —V’V˜A a�y¨6­:Õ5Ó6�Ü—V’V˜A a�y¨6­:Õ5Ó6�Ü—V’V˜A b�z¨F­JÕ6Ó7�Ø˜”9 ¨#¥X¤ÚØ˜”9 ¨#¥X¤Úó ñ1 #ô4 %Ð%7Ó8Ð8ñ7 ñ< 	ä�Ö$r   c                   ó(  a € ] tR tRt o R tR t]P                  P                  R]	! ]
4      4      R 4       t]P                  P                  R]	! ]4      4      R 4       tR tR t]P                  P                  R	R
R.4      R 4       t]P                  P                  RRR.4      ]P                  P                  R]P$                  ! RR..4      ]P$                  ! . RO]R7      3]P$                  ! RR..4      ]P$                  ! . RO]R7      3]P$                  ! RR..4      ]P$                  ! . R O]R7      3]P$                  ! RR.RR..4      ]P$                  ! . R!O]R7      3]P$                  ! RR"..4      ]P$                  ! . RO]R7      3.4      R 4       4       t]P                  P                  R	R
R.4      R 4       t]P                  P                  R	R
R.4      R 4       t]P                  P                  R	R
R.4      R 4       tRtV tR# )#ÚTestConvexHulli`  c                ó‚   € \         P                  P                  ^4      p\        \        \
        P                  V4       R# r  )r   r  r  rG   r  r@   r›   r   s   & r   r"  Ú&TestConvexHull.test_masked_array_failsa  s(   € Ü—u‘u×'Ñ'¨Ó*ˆÜ”j¤%×"2Ñ"2°LÖAr   c                ó¶   € \         P                  ! RR^\         P                  3.\         P                  R7      p\	        \
        \        P                  V4       R# )r   r`   Nrf   ri   )r   rB   r%  rq   rG   r  r@   r›   r&  s   & r   r(  Ú)TestConvexHull.test_array_with_nans_failse  s7   € ÜŸ(š( E¨5°1´R·V±V°*Ð#=ÄRÇZÁZÔPˆÜ”j¤%×"2Ñ"2°OÖDr   r.   c                óä  € \         V,          p\        P                  ! V4      p\        P                  ! V4      p\	        W#P
                  VP                  4       VP                  ^,          ^8X  dK   \        \        P                  ! VP                  4      \        P                  ! VP                  4      4       R# \        \        P                  ! VP                  4      VP                  4       R# r  )r(   r@   rr   r›   rk  r�   rs   r)   r   r   rB  r   rÖ   )rI   r.   r0   rv   rŸ   s   &&   r   Útest_hull_consistency_triÚ(TestConvexHull.test_hull_consistency_trii  sŽ   € ô ˜$•ˆä�nŠn˜VÓ$ˆÜ×Ò Ó'ˆä˜6§?¡?°D·N±NÔCð �<‰<˜�?˜aÔÜœŸš 4§>¡>Ó2´B·G²G¸D¿M¹MÓ4JÖKäœŸš 4§>¡>Ó2°D·M±MÖBr   c                ó>  € \         V,          w  r#\        P                  ! V^ R7      p\        P                  ! V^ ,          RR7      pVR,           F  pVP                  V4       K  	  \        P                  ! V4      p\        P                  ! V^ ,          RR7      p\        V4      ^8”  d1   VP                  \        P                  ! VR,          ^ R7      RR7       \        WEP                  VP                  4       \        WEP                  VP                  4       R# )r   r·   Tr©   rT  r«   N)	r-   r   rV  r@   r›   r¯   r+   rk  rs   )	rI   r.   r4   Ú_r0   rX  rY  rZ  r[  s	   &&       r   r\  ÚTestConvexHull.test_incrementalz  sÐ   € ô )¨Õ.‰	ˆÜ—’ ¨QÔ/ˆä×Ò˜v a�y°dÔ;ˆØ˜B—Z�ZˆEØ�N‰N˜5Ö!ñ  ô ×Ò Ó'ˆä×Ò  q¥	°tÔ<ˆÜˆv‹;˜Œ?Ø�O‰OœBŸNšN¨6°"­:¸AÔ>Ø$(ð ô *ô 	˜6§=¡=°$·.±.ÔAÜ˜6§=¡=°$·.±.ÖAr   c           	     ó¤  € \         P                  P                  R 4       \         P                  P                  ^^4      p\        P
                  ! V4      p\        \         P                  ! VP                  4      \         P                  ! VP                  4      4       VP                  VP                  ,          P                  w  r4\         P                  ! WDP                  4       ,
          W3P                  4       ,
          4      p\        \         P                   ! \         P"                  ! \         P$                  ! V4      4      ^ 8„  4      4       R# )r!   N)r   r®   rò   ró   r@   r›   r   rB  rs   r   rÖ   r0   rñ   Úarctan2Úmeanr   rÌ   ÚdiffÚunwrap)rI   r0   rŸ   r   rK   Úangles   &     r   Útest_vertices_2dÚTestConvexHull.test_vertices_2d�  s¾   € ä
�	‰	�‰�tÔÜ—‘—‘  AÓ&ˆä×Ò Ó'ˆÜ”R—Y’Y˜tŸ~™~Ó.´·²¸¿¹Ó0FÔGð �{‰{˜4Ÿ=™=Õ)×+Ñ+‰ˆÜ—
’
˜1Ÿv™v›x�<¨¯V©V«X­Ó6ˆÜ”—’”r—w’wœrŸyšy¨Ó/Ó0°1Ñ4Ó5Ö6r   c                óÂ   € \         P                  ! . RO4      p\        P                  ! V4      p\	        VP
                  RRR7       \	        VP                  RRR7       R# )r   r<   r•   r­   r˜   Nr™   rš   r‘   s   &  r   r    ÚTestConvexHull.test_volume_areaœ  sG   € ä—’ò Gó Hˆä×Ò˜vÓ&ˆä˜Ÿ
™
 B¨UÕ3Ü˜Ÿ™ "¨5×1r   rª   FTc                óì   € \         P                  ! R R .R R.RR.RR .RR..4      p\        P                  ! VVRR7      p\         P                  ! . RO\        R7      pVP
                  p\        WT4       R# )	rp   çš™™™™™Ù?ro   ç333333ã?ÚQG4©r0   rª   rA  r`   N)FTFF©r   rB   r@   r›   ÚboolÚgoodr   ©rI   rª   r0   rŸ   r  Úactuals   &&    r   Útest_good2dÚTestConvexHull.test_good2d¥  sw   € ô —’˜C ˜:Ø ˜:Ø ˜:Ø ˜:Ø ˜:ð	'ó (ˆô
 ×Ò vØ,7Ø.3ô5ˆô —8’8Ò7¼tÔDˆØ—‘ˆÜ�VÖ&r   Ú
visibilityr…  zQG-4znew_gen, expectedro   gffffffæ?r`   g=
×£p=Ú?r=   r„  c                ó  € \         P                  ! R R .R R.RR.RR .RR..4      p\        P                  ! VRVR7      pVP	                  V4       VP
                  pRV9   d   \         P                  ! V4      p\        Wb4       R# )rp   rƒ  ro   r„  Tr†  Ú-N)r   rB   r@   r›   r¯   r‰  Úinvertr   )rI   Únew_genr  rŽ  r0   rŸ   r‹  s   &&&&   r   Útest_good2d_incremental_changesÚ.TestConvexHull.test_good2d_incremental_changes´  s‰   € ôN —’˜C ˜:Ø ˜:Ø ˜:Ø ˜:Ø ˜:ð	'ó (ˆô
 ×Ò vØ,0Ø.8ô:ˆð 	�‰˜Ô Ø—‘ˆØ�*ÔÜ—y’y Ó*ˆHÜ�VÖ&r   c                ó&  € \         P                  ! R R .R R.RR.RR .RR..4      p\        P                  ! VVR7      pVP                  pVe   Q hV'       d:   VP                  \         P                  ! R4      4       VP                  pVe   Q hR# R# )rp   rƒ  ro   r„  )r0   rª   N©rh   rb   )r   rB   r@   r›   r‰  r¯   r+  )rI   rª   r0   rŸ   r‹  s   &&   r   Útest_good2d_no_optionÚ$TestConvexHull.test_good2d_no_optioné  s“   € ô —’˜C ˜:Ø ˜:Ø ˜:Ø ˜:Ø ˜:ð	'ó (ˆô
 ×Ò vØ,7ô9ˆà—‘ˆØŠ~Ðˆ~çØ�O‰OœBŸHšH VÓ,Ô-Ø—Y‘YˆFØ’>Ð!’>ñ r   c                óì   € \         P                  ! R R .R R.RR.RR .RR..4      p\        P                  ! VVRR7      p\         P                  ! . RO\        R7      pVP
                  p\        WT4       R# )rp   rƒ  ro   r…  r†  r`   N)FFFFr‡  rŠ  s   &&    r   Útest_good2d_insideÚ!TestConvexHull.test_good2d_insideü  sw   € ô
 —’˜C ˜:Ø ˜:Ø ˜:Ø ˜:Ø ˜:ð	'ó (ˆô
 ×Ò vØ,7Ø.3ô5ˆô —8’8Ò8ÄÔEˆØ—‘ˆÜ�VÖ&r   c                óê   € \         P                  ! . RO. RO. RO. RO. R	O.4      p\        P                  ! VVRR7      p\         P                  ! . R
O\        R7      p\        VP                  V4       R# )r"   ÚQG0r†  r`   N©r"   r"   r"   )gŠNžË7Ïì?g+ï²xÙ¿g¸gÈ>é@È?)gFE÷%'ß?gW¯¦Û§=ç¿g¤úÎ/Jß?)g›˜ä6Ðrâ?gtÄ­Ä4úé¿g¤¾��Å·¿)g¶w6y¶å?g’«QÂæ¿gÿ€b¿‚�Ç?)TFFF)r   rB   r@   r›   rˆ  r   r‰  )rI   rª   r0   rŸ   r  s   &&   r   Útest_good3dÚTestConvexHull.test_good3d  sb   € ô —’š?Ú@Ú@ÚAÚ@ð	Bó Cˆô
 ×Ò vØ,7Ø.3ô5ˆô —8’8Ò7¼tÔDˆÜ�T—Y‘Y Ö)r   rT   N)FFFFFgffffffæ¿)FTFFF)FFFTT)FFTFFg433333ã?)rU   rV   rW   rX   r"  r(  rü   rý   r^  r   r(   rs  r-   r\  r~  r    rŒ  r   rB   rˆ  r“  r—  rš  rŸ  rY   rZ   r[   s   @r   rm  rm  `  sA  ø‡ € òBòEð ‡[�[×Ñ˜V¡V¨HÓ%5Ó6ñCó 7ðCð  ‡[�[×Ñ˜V¡VÐ,@Ó%AÓBñBó CðBò(7ò2ð ‡[�[×Ñ˜]¨U°D¨MÓ:ñ'ó ;ð'ð ‡[�[×Ñ˜\Ø#Ø$ð, ó !ð ‡[�[×ÑÐ0ð 
�Š�C˜�:�,Ó	Ø	�ŠÒ5¸TÔ	Bð	Dð
 
�Š�C˜�;�-Ó	 Ø	�ŠÒ4¸DÔ	Að	Cð
 
�Š�C˜�;�-Ó	 Ø	�ŠÒ3¸4Ô	@ð	Bð 
�Š�C˜�:  S˜zÐ*Ó	+Ø	�ŠÒ4¸DÔ	Að	Cð 
�Š�C˜Ð%Ð&Ó	'Ø	�ŠÒ5¸TÔ	Bð	Dð93
ó ñ>'ó?ó	!ðF'ð$ ‡[�[×Ñ˜]¨U°D¨MÓ:ñ"ó ;ð"ð$ ‡[�[×Ñ˜]¨U°D¨MÓ:ñ'ó ;ð'ð  ‡[�[×Ñ˜]¨U°D¨MÓ:ñ*ó ;ö*r   rm  c                   óæ  a € ] tR tRt o ]P
                  P                  RRR.4      ]P
                  P                  R^2^d.4      ]P
                  P                  R^^.4      R 4       4       4       tR tR t	R t
]P
                  P                  R	]! ]4      4      R
 4       tR tR t]P
                  P!                  ^
4      ]P
                  P                  R	]! ]4      4      R 4       4       tRtV tR# )ÚTestVoronoii  zqhull_opts, extra_ptsÚn_ptsr1   c                óŽ  € \         P                  P                  R 4      pVP                  W$34      p\        WaR7      pVP                  pVP                  4       V^,
          V,           8X  g   Q hVP                  \        VP                  4      V,
          8X  g   Q h\        VP                  4      W#,           8X  g   Q hVP                  P                  ^ ,          V8X  g   Q hV'       dW   VP                   U	u. uF  p	\        V	4      NK  	  p
p	V
P                  ^ 4      ^8X  g   Q hV
P                  ^ 4      V9  g   Q hR# R# u up	i )in  r@  N)r   r®   Údefault_rngr
   Úpoint_regionr:  Úsizer+   Úregionsr0   r)   ÚcountÚindex)rI   Ú
qhull_optsr£  Ú	extra_ptsr1   Úrngr0   ÚvorÚ	pt_regionr   Úsublenss   &&&&&      r   Útest_point_region_structureÚ'TestVoronoi.test_point_region_structure  s
  € ô �i‰i×#Ñ# DÓ)ˆØ—‘˜U˜MÓ*ˆÜ�fÔ7ˆØ×$Ñ$ˆ	Ø�}‰}‹ %¨!¥)¨iÕ"7Ô7Ð7Ð7Ø�~‰~¤ S§[¡[Ó!1°IÕ!=Ô=Ð=Ð=Ü�3—;‘;Ó 5Õ#4Ô4Ð4Ð4Ø�z‰z×Ñ Õ" eÔ+Ð+Ð+÷ Ø'*§{¢{Ó3¡{ !”s˜1–v¡{ˆGÐ3ð —=‘= Ó# qÔ(Ð(Ð(Ø—=‘= Ó#¨9Ô4Ð4Ò4ñ ùÚ3s   Ã8Ec                ó‚   € \         P                  P                  ^4      p\        \        \
        P                  V4       R# r  )r   r  r  rG   r  r@   r
   r   s   & r   r"  Ú#TestVoronoi.test_masked_array_fails@  s&   € Ü—u‘u×'Ñ'¨Ó*ˆÜ”j¤%§-¡-°Ö>r   c                ó4   € . ROpRpV P                  W4       R# )r   a	  
        2
        5 10 1
        -10.101 -10.101
           0.5    0.5
           0.5    1.5
           1.5    0.5
           1.5    1.5
        2 0 1
        3 2 0 1
        2 0 2
        3 3 0 1
        4 1 2 4 3
        3 4 0 2
        2 0 3
        3 4 0 3
        2 0 4
        0
        12
        4 0 3 0 1
        4 0 1 0 1
        4 1 4 1 2
        4 1 2 0 2
        4 2 5 0 2
        4 3 4 1 3
        4 3 6 0 3
        4 4 5 2 4
        4 4 7 3 4
        4 5 8 0 4
        4 6 7 0 3
        4 7 8 0 4
        N)	rf   rg   )r   rb   rj   ri   r–  )rb   r   )rb   rh   )rb   rb   ©Ú_compare_qvoronoi©rI   r0   Úoutputs   &  r   Útest_simpleÚTestVoronoi.test_simpleD  s!   € ò*ˆð
ˆð@ 	×Ñ˜vÖ.r   c                óÈ  € VP                  4       P                  4        Uu. uF*  p\        \        \        VP                  4       4      4      NK,  	  pp\        V^,          ^ ,          4      p\        \        \        V^^V,            4      4      p\        V^,          ^,          4      pV^V,           ^V,           V,             UUu. uF,  pVR,           Uu. uF  p\        V4      ^,
          NK  	  upNK.  	  p	ppV^V,           V,           R  UUu. uF%  pVR,           Uu. uF  p\        V4      NK  	  upNK'  	  p
ppV^V,           V,           R  UUu. uF,  pVR,           Uu. uF  p\        V4      ^,
          NK  	  upNK.  	  ppp\        P                  ! V3/ VB pR p\        VP                  V4       \        \        \        \        VP                  4      4      \        \        \        V	4      4      4       \        \        \        \        WÚ4      4      \        \        WÛ4      4      4      4      p\        \        \        \        WÜP                   P#                  4       4      4      \        \        WÜP$                  4      4      4      4      pVP'                  4        VP'                  4        \        Wï4       R# u upi u upi u uppi u upi u uppi u upi u uppi )z:Compare to output from 'qvoronoi o Fv < data' to Voronoi()rT  N:rh   rl   N:rl   NNc                 ó*   € \        \        V 4      4      # r   r   r   s   &r   Ú	sorttupleÚ0TestVoronoi._compare_qvoronoi.<locals>.sorttuple  s   € Üœ ›Ó#Ð#r   )ÚstripÚ
splitlinesr   r   rÇ   Úsplitr  r   r@   r
   r   rÖ   r   r  r¨  ÚzipÚridge_pointsr   Úridge_verticesr   )rI   r0   r¹  Úkwr   ÚnvertexrÖ   ÚnregionrK   r¨  rÄ  rÅ  r®  r¾  Úp1Úp2s   &&&,            r   r·  ÚTestVoronoi._compare_qvoronoim  sc  € ð 8>·|±|³~×7PÑ7PÔ7RÓSÑ7R°!”$”sœ5 !§'¡'£)Ó,Ö-Ñ7RˆÐSÜ�f˜Q•i •lÓ#ˆÜœœE 6¨!¨A¨g­IÐ#6Ó7Ó8ˆÜ�f˜Q•i •lÓ#ˆà" 1 W¥9¨Q¨w­Y°wÕ->Ñ?ôAÙ?�qð '(¨¦eÓ,¡e ”C˜“F˜1—H�H¡eÔ,Ù?ð 	ñ Að "(¨¨'­	°'Õ(9Ð(:Ñ!;ô=Ù!;˜Að *+¨3®Ó0© Aœ˜Qž©Ô0Ù!;ð 	ñ =ð $*¨!¨G­)°GÕ*;Ð*<Ñ#=ô?Ù#=˜að ./¨r®UÓ3©U¨œ3˜q›6 !Ÿ8˜8©UÔ3Ù#=ð 	ñ ?ô �mŠm˜FÑ) bÑ)ˆò	$ô 	˜Ÿ™ hÔ/Ü”SœœU C§K¡KÓ0Ó1ÜœœU GÓ,Ó-ô	/ô ”#”dœ3˜yÓ7Ó8Üœ3˜yÓ9Ó:ó<ó =ˆä”#”dœ3˜y×*:Ñ*:×*AÑ*AÓ*CÓDÓEÜœ3˜y×*<Ñ*<Ó=Ó>ó@ó Aˆà
�‰Œ	Ø
�‰Œ	ä�RÖùò9 Tùò -ùó Aùâ0ùó =ùâ3ùó ?sM   ¡0J>ÃKÃKÃ0KÄKÄ KÄ4KÅKÅ$KÅ?KËKËKËKr.   c                óF  € \         V,          p\        V4      p\        P                  ! V4      pVP                  P                  4        FÔ  w  rV\        P                  ! \        P                  ! V4      ^ 8¬  4      '       g   K:  VP                  V,          P                  ^ R7      pRW%^ ,          ,          V,
          ,          pVP                  Wx,           ^R7      w  rš\        W¥^ ,          4       VP                  Wx,
          ^R7      w  rš\        W¥^,          4       KÖ  	  R# )r   r·   g�íµ ÷Æ°>)rÜ   N)r(   ÚKDTreer@   r
   Ú
ridge_dictÚitemsr   rÌ   ÚasarrayrÖ   rz  Úqueryr   )rI   r.   r0   Útreer®  rw   r†   Úridge_midpointr‹   r…   rÜ   s   &&         r   Útest_ridgesÚTestVoronoi.test_ridges�  sÒ   € ô ˜$•ˆä�f‹~ˆÜ�mŠm˜FÓ#ˆà—N‘N×(Ñ(Ö*‰DˆAä—6’6œ"Ÿ*š* Q›-¨1Ñ,×-Ò-Ùà Ÿ\™\¨!�_×1Ñ1°qÐ1Ó9ˆNØ˜ �t� ~Õ5Õ6ˆAà—j‘j Õ!3°q�jÓ9‰GˆDÜ˜˜a�DÔ!à—j‘j Õ!3°q�jÓ9‰GˆDÜ˜˜a�DÖ!ó +r   c                ó8   € . ROpRpV P                  WRR7       R# )r   a'  
        2
        3 5 1
        -10.101 -10.101
        0.6000000000000001    0.5
           0.5 0.6000000000000001
        3 0 2 1
        2 0 1
        2 0 2
        0
        3 0 2 1
        5
        4 0 2 0 2
        4 0 4 1 2
        4 0 1 0 1
        4 1 4 0 1
        4 2 4 0 2
        TrK  NrM  r¶  r¸  s   &  r   rP  ÚTestVoronoi.test_furthest_site¨  s#   € ÚAˆðˆð$ 	×Ñ˜v¸TÐÖBr   c                ó–   € . ROp\        V4      p\        VP                  R4       \        VRR7      p\        VP                  R4       R# )r   FTrK  NrM  )r
   r   rL  )rI   r0   r®  s   &  r   Útest_furthest_site_flagÚ#TestVoronoi.test_furthest_site_flagÀ  s<   € ÚAˆä�f‹oˆÜ�S×&Ñ& uÔ-Ü�f¨4Ô0ˆÜ�S×&Ñ& tÖ,r   c                ó®  aaa€ \         V,          ^ ,          ^ ,          P                  ^,          ^8”  d   R# \         V,          w  r#\        P                  ! V^ R7      p\        P
                  ! V^ ,          RVR7      pVR,           F  pVP                  V4       K  	  \        P
                  ! V4      p\        P
                  ! V^ ,          RVR7      p\        V4      ^8”  d1   VP                  \        P                  ! VR,          ^ R7      RR7       \        \        VP                  4      \        VP                  4      4       \        \        VP                  4      \        VP                  4      4       WX3 FÕ  oR	R	/o\        SP                  4       FF  w  rš\        VP                  4       F(  w  r¼\        P                  ! W¬4      '       g   K#  VSV	&   K*  	  KH  	  VVV3R loR p\        V! S! SP                  4      4      V! VP                  4      4       \        V! S! SP                  4      4      V! VP                  4      4       K×  	  R# )
r   Nr·   TrS  rT  r«   c                 óô   <€ \        V R 4      '       d"   \        V  Uu0 uF  pS! V4      kK  	  up4      #  SV ,          # u upi   \         d)   pRSP                  T ,          : 2p\	        T4      ThRp?ii ; i)Ú__len__z*incremental result has spurious vertex at N)Úhasattrr   ÚKeyErrorrÖ   rb  )r   rK   ÚeÚmessageÚobjxÚremapÚ
vertex_maps   &   €€€r   rã  Ú+TestVoronoi.test_incremental.<locals>.remapî  s|   ø€ Ü˜1˜i×(Ò(Ü ±AÓ!6±A¨q¡%¨¦(±AÑ!6Ó7Ð7ð9Ø% a�=Ð(ùò "7øô  ô 9ð"%Ø%)§]¡]°1Õ%5Ñ$8ð :�Gä(¨Ó1°qÐ8ûð9ús   �?¶A ÁA7Á#A2Á2A7c                 óØ   € \        \        \        V 4      4      pRV9   d   VP                  R4       V U u. uF  p \	        V 4      ^8”  g   K  V NK  	  pp VP                  4        V# u up i )rh   rT   )r  r   r   Úremover+   r   )r   rÏ  s   & r   Ú
simplifiedÚ0TestVoronoi.test_incremental.<locals>.simplifiedø  sY   € ÜœC¤¨aÓ0Ó1�Ø˜”;Ø—L‘L Ô$Ù$)Ó8¡E˜q¬S°«V°a©ZŸ˜¡E�Ð8Ø—
‘
”Ø�ùò 9s   ¶A'ÁA'rº   )r-   r)   r   rV  r@   r
   r¯   r+   r   r¦  r~   rÖ   ra  r¨  rÅ  )rI   r.   r4   r2   r0   rX  rY  rZ  r[  rx   r†   r5   Úv2rè  râ  rã  rä  s   &&            @@@r   r\  ÚTestVoronoi.test_incrementalÈ  sË  ú€ ô
   Õ% aÕ(¨Õ+×1Ñ1°!Õ4°qÔ8áä+¨DÕ1‰ˆÜ—’ ¨QÔ/ˆä�mŠm˜F 1�I°4Ø+/ô1ˆà˜B—Z�ZˆEØ�N‰N˜5Ö!ñ  ô �}Š}˜VÓ$ˆä�}Š}˜V A�Y°DØ+/ô1ˆäˆv‹;˜Œ?Ø�O‰OœBŸNšN¨6°"­:¸AÔ>Ø$(ð ô *ô 	”S˜×)Ñ)Ó*¬C°×0AÑ0AÓ,BÔCÜ”S˜×)Ñ)Ó*¬C°×0AÑ0AÓ,BÔCð “IˆDØ˜b˜ˆJÜ! $§-¡-Ö0‘�Ü& t§}¡}Ö5‘E�AÜ—{’{ 1×)Ô)Ø()˜
 1›ó 6ñ 1÷
9òô Ù™5 §¡Ó.Ó/Ù˜4Ÿ<™<Ó(ôô Ù™5 ×!4Ñ!4Ó5Ó6Ù˜4×.Ñ.Ó/öó; r   rT   N)z	Qbb Qc Qzrh   )zQbb Qcr   )rU   rV   rW   rX   rü   rý   r^  r±  r"  rº  r·  r   r(   rÔ  rP  rÙ  rþ   r-   r\  rY   rZ   r[   s   @r   r¢  r¢    sû   ø‡ € à‡[�[×ÑÐ4ð 	Øð	7ó ð ‡[�[×Ñ˜W r¨3 iÓ0Ø‡[�[×Ñ˜V a¨ VÓ,ñ5ó -ó 1óð5ò4?ò'/òR ðD ‡[�[×Ñ˜V¡V¨HÓ%5Ó6ñ"ó 7ð"ò0Cò0-ð ‡[�[×Ñ˜2ÓØ‡[�[×Ñ˜V¡VÐ,@Ó%AÓBñ=ó Có ö=r   r¢  c            
       ó   a € ] tR tRt o RR lt]P                  P                  R]P                  ]
.4      R 4       tR tR tR tR t]P                  P                  R	]! ^^4      4      R
 4       t]P                  P                  R]P$                  ! . RO4      ]P$                  ! . RO. RO. RO.4      .4      R 4       tR tR tR tRtV tR# )ÚTest_HalfspaceIntersectioni  c                ó¦  € \        VP                  VP                  4       \        P                  ! VP                  ^ ,          3\        R7      pV Fc  p\        P
                  ! \        W%,
          4      V8  P                  ^R7      4      ^ ,          p\        VP                  R4       RWF^ ,          &   Ke  	  \        VP                  4       4       R# )z2Check that every line in arr1 is only once in arr2r`   r·   TN)rh   )	r   r)   r   r+  rˆ  rÎ   rÍ   rÌ   r   )rI   Úarr1Úarr2r—   ÚtruthsÚl1Úindexess   &&&&   r   Úassert_unordered_allcloseÚ4Test_HalfspaceIntersection.assert_unordered_allclose  s�   € ä�T—Z‘Z §¡Ô,ä—’˜4Ÿ:™: a�=Ð*´$Ô7ˆÛˆBÜ—j’j¤# d¥i£.°4Ñ"7×!<Ñ!<À!Ð!<Ó!DÓEÀaÕHˆGÜ˜Ÿ™¨Ô-Ø!%ˆF˜1•:Óñ ô 	�—
‘
“Ör   Údtc                ó  € \         P                  ! . RO. RO. RO. RO.VR7      p\         P                  ! ^^.VR7      p\         P                  ! RR.RR.RR.RR..4      p\        P                  ! W#4      p\	        VP
                  V4       R# )	rh   r`   r"   r>   N)rº   r   r   )r   rº   r   )rh   r   éþÿÿÿ)r   rh   rø  )r   rB   r@   ÚHalfspaceIntersectionr   Úintersections)rI   rö  Ú
halfspacesÚfeasible_pointr0   rŸ   s   &&    r   Ú test_cube_halfspace_intersectionÚ;Test_HalfspaceIntersection.test_cube_halfspace_intersection  s‚   € ä—X’XšzÚ)Ú)Ú)ð+ð 35ô6ˆ
ô Ÿš 1 a &°Ô3ˆä—’˜C ˜:¨¨S z°C¸°:ÀÀS¸zÐJÓKˆä×*Ò*¨:ÓFˆä˜×*Ñ*¨FÖ3r   c           	     óî  € \         P                  P                  \         P                  P                  \        4      R R4      p\
        P                  ! V4      p\
        P                  ! VR,          VR,          34      ) p\
        P                  ! . RO4      p\        P                  ! W44      p\        VP                  P                  R	4       \        VP                  R4       \        \!        VP"                  4      ^4       VP"                   F  p\        \!        V4      ^4       K  	  VR,          VRRR
13,          P%                  V4      ,           pV P'                  VRRR
13,          P(                  V,          P(                  VP*                  4       \,        P.                  ! . RO4      pV F@  p	\        \
        P0                  ! VP                  V	8H  P3                  ^R7      4      ^4       KB  	  R# )rá   zselfdual-4d-polytope.txtr¨   g      @@Nr·   )r¨   rT  )r¨   :Nrh   N)r"   r"   r"   r"   )é   rO  rº   )r¨   rº   )r"   r"   r=   ç      à¿)rã   rä   rå   ræ   rç   r   Ú
genfromtxtÚhstackrB   r@   rù  r   rú  r)   r   Údual_volumer+   Údual_facetsr�   rô  rñ   Údual_pointsÚ	itertoolsÚpermutationsrÅ   rÌ   )
rI   ÚfnameÚineqsrû  Ú
feas_pointÚhsÚfacetÚdistsr0   Úpoints
   &         r   Ú$test_self_dual_polytope_intersectionÚ?Test_HalfspaceIntersection.test_self_dual_polytope_intersection&  sh  € Ü—‘—‘œRŸW™WŸ_™_¬XÓ6¸Ø7ó9ˆä—’˜eÓ$ˆÜ—i’i  u¥¨u°U­|Ð <Ó=Ð=ˆ
ä—X’XÒ.Ó/ˆ
Ü×(Ò(¨Ó@ˆä�R×%Ñ%×+Ñ+¨WÔ5ä˜BŸN™N¨DÔ1Ü”S˜Ÿ™Ó(¨"Ô-Ø—^”^ˆEÜœ˜U› QÖ'ñ $ð ˜5Õ! J¨q°#°2°#¨vÕ$6×$:Ñ$:¸:Ó$FÕFˆØ×&Ñ&¨
°1°c°r°c°6Õ(:×(<Ñ(<¸UÕ(B×'EÑ'EÀrÇ~Á~ÔVä×'Ò'Ò(;Ó<ˆÛˆEÜœŸš ×!1Ñ!1°UÑ!:× ?Ñ ?ÀQÐ ?Ó GÓHÈ!ÖLó r   c                ó  € \         P                  ! . RO. RO. RO. RO.4      p\         P                  ! . RO4      p\        \        \        P
                  W4       \         P                  ! R.R..4      p\        \        \        P
                  W4       \         P                  ! RR..4      p\        \        \        P
                  W4       \         P                  ! RR.4      p\        \        P                  \        P
                  W4       R# )	r<   r=   N)ç      ð¿r"   r"   )r"   r  r"   ©r<   r"   r  ©r"   r<   r  ©r=   r=   r=   r  )r   rB   rG   r  r@   rù  Ú
QhullError)rI   rû  rü  s   &  r   Útest_wrong_feasible_pointÚ4Test_HalfspaceIntersection.test_wrong_feasible_point=  sÍ   € Ü—X’XÒ/Ú/Ú/Ú/ð1ó 2ˆ
ô Ÿš¢/Ó2ˆä”jÜ×1Ñ1°:ô	OäŸš C 5¨3¨% .Ó1ˆä”jÜ×1Ñ1°:ô	OäŸš C¨ : ,Ó/ˆä”jÜ×1Ñ1°:ô	Oô Ÿš 4¨ ,Ó/ˆä”e×&Ñ&Ü×1Ñ1°:ö	Or   c           	     ó>  € \         P                  ! . RO. RO. R	O. R
O. RO. RO.4      p\         P                  ! . RO. RO. RO. RO.4      p\         P                  ! R..^,          4      p\         P                  ! \         P                  ! W") 34      V34      p\         P                  ! . RO4      p\        P
                  ! WRR7      p\        P
                  ! WRR7      p\        V4       EF  w  r‰VP                  V	\         P                  R3,          4       VP                  V	\         P                  R3,          RR7       \         P                  ! WRV^,           1R3,          34      p
\        P
                  ! W¥4      p\        VP                  VP                  4       \        VP                  VP                  4       \        VP                  VP                  4       V P                  VP                  VP                  4       EK   	  VP                  4        R# )r"   Tr©   r¨   r«   Nr  )r"   r"   r  r  )r"   r  r"   r  )r  r"   r"   r  )r<   r"   r"   r  )r"   r<   r"   r  )r"   r"   r<   r  )r<   r<   r<   )r<   r<   r  )r<   r  r<   )rh   r  r  rž  )r   rB   r  Úvstackr@   rù  r~   Úadd_halfspacesÚnewaxisr   rû  rú  rô  rF   )rI   rû  Úextra_normalsÚoffsetsÚextra_halfspacesr  Úinc_hsÚ
inc_res_hsrx   ÚehsÚtotalr  s   &           r   r\  Ú+Test_HalfspaceIntersection.test_incrementalT  s©  € ä—X’XÒ2Ú2Ú2Ú1Ú1Ú1ð3ó 4ˆ
ô Ÿš¢,Ú"/Ú"/Ú"/ð"1ó 2ˆô —(’(˜S˜E˜7 1�9Ó%ˆÜŸ9š9¤b§i¢i°ÀÐ0OÓ&PØ&-ð&/ó 0Ðô —X’XšlÓ+ˆ
ä×,Ò,¨ZÐQUÔVˆä×0Ò0°Ø=AôCˆ
ô  Ð 0×1‰FˆAØ×!Ñ! #¤b§j¡j°! mÕ"4Ô5à×%Ñ% c¬"¯*©*°a¨-Õ&8À$Ð%ÔGä—I’I˜z¸D¸Q¸q½S¸DÀ!¸GÕ+DÐEÓFˆEä×,Ò,¨UÓ?ˆBä˜F×-Ñ-¨z×/DÑ/DÔEÜ˜F×-Ñ-¨r¯}©}Ô=ô ˜B×,Ñ,¨j×.FÑ.FÔGà×*Ñ*¨6×+?Ñ+?À×AQÑAQ×Rñ 2ð" 	�‰Žr   c           	     ó  € \         P                  ! . RO. RO. RO. RO. RO. RO.4      p\         P                  ! . RO4      p\        P                  ! W4      p\         P                  ! . R	O. R
O. RO. RO. RO. RO.4      p. RO. RO. RO. RO. RO. RO. RO. RO.p\	        V4      \	        VP
                  4      8X  g   Q h\        WSP
                  4       F   w  rg\        V4      \        V4      8X  d   K   Q h	  \        VP                  V4       R# )r<   N)r  r"   r"   r"   )r<   r"   r"   r  )r"   r  r"   r"   )r"   r<   r"   r  )r"   r"   r  r"   )r"   r"   r<   r  r  )rø  r   r   )rb   r   r   )r   rø  r   )r   rb   r   )r   r   rø  )r   r   rb   )rb   rO  r   )rO  rb   rh   )é   rb   r   )rb   r'  rh   )rl   rO  rh   )rO  rl   r   )r'  rl   rh   )rl   r'  r   )
r   rB   r@   rù  r+   r  rÃ  r  r   r  )rI   rû  r  r  Úqhalf_pointsÚqhalf_facetsr   r   s   &       r   Ú	test_cubeÚ$Test_HalfspaceIntersection.test_cube  sè   € ä—X’XÒ0Ú0Ú0Ú0Ú0Ú0ð2ó 3ˆ
ô —’šÓ)ˆä×(Ò(¨Ó;ˆô —x’xÚÚÚÚÚÚð!ó ˆò ÚÚÚÚÚÚÚðˆô �<Ó ¤C¨¯©Ó$7Ô7Ð7Ð7Ü˜§n¡nÖ5‰DˆAÜ�q“6œS ›VÖ#Ð#Ð#ñ 6ô 	˜Ÿ™¨Ö5r   rÜ   c                óž  € \         P                  ! . RO. R	O. R
O. RO.4      p\         P                  ! . RO. RO. RO. RO.4      p\        P                  ! V\         P                  ! RR.4      RR7      pVP	                  V^ V1R3,          4       VP	                  W1^1R3,          4       VP                  4        \         P                  ! R R .R R.RR .RR..4      pVP                  p\         P                  ! VR,          VR,          34      p\         P                  ! VR,          VR,          34      p\        Wg,          WX,          4       R# )r<   gCëâ6Ô?gaÃÓ+eÑ?Tr©   r¨   N)r<   r"   ç       Àr  )r  r"   r-  )r"   r<   r-  )r"   r  r-  r  )r  r"   r  r  )r"   r  r  )r¨   rh   )r¨   r   )	r   rB   r@   rù  r  rF   rú  Úlexsortr   )	rI   rÜ   Ú
big_squareÚsmall_squarer  Úexpected_intersectionsÚactual_intersectionsÚind1Úind2s	   &&       r   Útest_halfspace_batchÚ/Test_HalfspaceIntersection.test_halfspace_batch£  s;  € ô —X’XšÚ.Ú.Ú.ð0ó 1ˆ
ô
 —x’x¢Ú!0Ú!0Ú!0ð!2ó 3ˆô
 ×(Ò(¨Ü)+¯ª°6¸6Ð2BÓ)CØ59ô;ˆð 	×Ñ˜, q¨ s¨1 uÕ-Ô.Ø
×Ñ˜,¨ s¨1 uÕ-Ô.Ø
�‰Œ
ô "$§¢¨B°¨8Ø,.°¨9Ø,/°¨9Ø,/°¨:ð+7ó "8Ðð  "×/Ñ/Ðô �zŠzÐ/°Õ5Ð7KÈDÕ7QÐRÓSˆÜ�zŠzÐ1°$Õ7Ð9OÐPTÕ9UÐVÓWˆÜÐ,Õ2Ð4JÕ4PÖQr   rû  c                ó\  € \         P                  ! . RO. RO. RO. R	O.4      p\        P                  ! V\         P                  ! ^4      RR7      p\
        P                  ! \        P                  RR7      ;_uu_ 4        VP                  V4       RRR4       R#   + '       g   i     R# ; i)
rh   Tr©   zfeasible.*-0.706.*©ÚmatchN©rh   r   rº   ©r   rh   rº   ©rº   r   rº   ©r   rº   rº   ©	r   rB   r@   rù  r+  rü   r   r  r  )rI   rû  Úinitial_squareÚincremental_intersectors   &&  r   Útest_gh_19865Ú(Test_HalfspaceIntersection.test_gh_19865Æ  sz   € ô Ÿ(š(Ú¢ª[º+ÐFóˆô #(×"=Ò"=¸nÜ>@¿hºhÀq»kØJNô#PÐô �]Š]œ5×+Ñ+Ð3G×HÖHØ#×2Ñ2°:Ô>÷ I×H×HÒHús   Á>BÂB+	c           	     ó¦  € \         P                  ! . RO. RO. RO.4      p\         P                  ! . R	O. R
O. RO. RO. RO. RO.4      p\        P                  ! V\         P                  ! ^4      RR7      p\
        P                  ! \        P                  RR7      ;_uu_ 4        VP                  V4       RRR4       R#   + '       g   i     R# ; i)rh   Tr©   zfeasible.*[1 0 0 0]r8  N)rh   rh   rh   rº   )rº   rº   rº   rº   )rh   r   r   r   )rh   r   r   rº   )rº   r   r   rº   )r   rh   r   rº   )r   rº   r   rº   )r   r   rh   rº   )r   r   rº   rº   r>  )rI   rû  Úinitial_cuber@  s   &   r   Útest_gh_19865_3dÚ+Test_HalfspaceIntersection.test_gh_19865_3dÛ  s¡   € ô —X’Xš}Ú/Ú+ð-ó .ˆ
ô —x’x¢Ú!/Ú!.Ú!/Ú!.Ú!/ð!1ó 2ˆô #(×"=Ò"=¸lÜ>@¿hºhÀq»kØJNô#PÐô �]Š]œ5×+Ñ+Ð3H×IÖIØ#×2Ñ2°:Ô>÷ J×I×IÒIús   Â#B?Â?C	c                óp  € \         P                  ! . RO. RO. RO. R	O.4      p\        P                  ! V\         P                  ! ^4      RR7      p\
        P                  ! \        RR7      ;_uu_ 4        VP                  \         P                  ! R
4      4       RRR4       R#   + '       g   i     R# ; i)rh   Tr©   z2D arrayr8  Nr:  r;  r<  r=  )rO  rO  rO  )
r   rB   r@   rù  r+  rü   r   r  r  Úones©rI   r?  r@  s   &  r   Útest_2d_add_halfspace_inputÚ6Test_HalfspaceIntersection.test_2d_add_halfspace_inputî  s{   € ô Ÿ(š(Ú¢ª[º+ÐFóˆô #(×"=Ò"=¸nÜ>@¿hºhÀq»kØJNô#PÐô �]Š]œ:¨Z×8Ö8Ø#×2Ñ2´2·7²7¸9Ó3EÔF÷ 9×8×8Ò8ús   Á4&B$Â$B5	c                óš  € \         P                  ! . RO. RO. RO. RO.4      p\        P                  ! V\         P                  ! ^4      RR7      p\        VP                  \         P                  ! ^4      4       VP                  \         P                  ! . RO4      4       \        VP                  \         P                  ! ^4      4       R# )	rh   Tr©   Nr:  r;  r<  r=  )rb   rb   rº   )	r   rB   r@   rù  r+  r   Údual_verticesr,  r  rI  s   &  r   Útest_1d_add_halfspace_inputÚ6Test_HalfspaceIntersection.test_1d_add_halfspace_inputú  s‹   € äŸ(š(Ú¢ª[º+ÐFóˆô #(×"=Ò"=¸nÜ>@¿hºhÀq»kØJNô#PÐô 	Ð/×=Ñ=¼r¿yºyÈ»|ÔLØ×.Ñ.¬r¯xªxº
Ó/CÔDÜÐ/×=Ñ=¼r¿yºyÈ»|ÖLr   rT   N)r¤   )gÃÀJp°˜æ¿g¦zøS_-Ý¿g-|†d¥?)gÑ#Â–‰¨æ?gó–'çöÝ¿g1&Ü¯kÝ¿)r"   gŒ:çe|è?g¹Ä‘"ËÖ¿)rU   rV   rW   rX   rô  rü   rý   r^  r   rq   r  rý  r  r  r\  r*  r*   r5  rB   rA  rE  rJ  rN  rY   rZ   r[   s   @r   rí  rí    sæ   ø‡ € ô	ð ‡[�[×Ñ˜T B§J¡J°Ð#4Ó5ñ4ó 6ð4òMò.Oò.)òV"6ðH ‡[�[×Ñ˜S¡%¨¨!£*Ó-ñRó .ðRðD ‡[�[×Ñ˜\Ø‡X‚XÒ4Ó5Ø‡X‚XÒ6Ú5Ú-ð/ó 0ð,ó ñ?óð?ò?ò&
G÷
Mð 
Mr   rí  Údiagram_typec                 óø   € \         P                  P                  ^{4      pVP                  R4      p\        P                  ! \
        RR7      ;_uu_ 4        V ! V4       RRR4       R#   + '       g   i     R# ; i)é{   Ú
dimensionsr8  N)rO  r?  rl   )r   r®   r¥  rü   r   r  )rP  r­  Úinvalid_datas   &  r   Útest_gh_20623rU    sL   € ä
�)‰)×
Ñ
 Ó
$€CØ—:‘:˜jÓ)€LÜ	�Š”z¨×	6Ö	6Ù�\Ô"÷ 
7×	6×	6Ò	6ús   Á	A(Á(A9	c                  ó´  € \         P                  ! ^ ^ .^ R.^^ .^^..4      p \        P                  ! V 4      p\        P
                  ! \        4      ;_uu_ 4        VP                  ^4       RRR4       \        P
                  ! \        4      ;_uu_ 4        VP                  V4       RRR4       R#   + '       g   i     LN; i  + '       g   i     R# ; i)r   rN  N)r   rB   r@   rr   rü   r   Ú
IndexErrorrt   ©Ú
generatorsrv   s     r   Útest_gh_21286rZ    s“   € Ü—’˜A˜q˜6 A s 8¨a°¨V°a¸°VÐ<Ó=€JÜ
�.Š.˜Ó
$€Cä	�Š”z×	"Õ	"Ø×Ñ˜Ô÷ 
#ä	�Š”z×	"Õ	"ð 	×Ñ˜Ô÷ 
#Ñ	"÷ 
#×	"úç	"×	"Ð	"ús   ÁB3ÂCÂ3C	ÃC	c                  ó  € \         P                  ! ^ ^ .^ R.^^ .^^..4      p \        P                  ! V 4      p\        P
                  ! \        4      ;_uu_ 4        VP                  . RO4       RRR4       R#   + '       g   i     R# ; i)r   rN  N)rb   rb   rb   )r   rB   r@   rr   rü   r   r  rt   rX  s     r   Útest_find_simplex_ndim_errr\    sc   € Ü—’˜A˜q˜6 A s 8¨a°¨V°a¸°VÐ<Ó=€JÜ
�.Š.˜Ó
$€CÜ	�Š”z×	"Õ	"Ø×ÑšÔ#÷ 
#×	"×	"Ò	"ús   ÁA9Á9B
	)rf   rg   rj   ri   r  )r=   g      ø?g…ëQ¸	Àgáz®GáÀg…ëQ¸ù¿gHáz®Gé¿rº   )rh   rO  é   )9rã   rC   Únumpyr   Únumpy.testingr   r   r   r   r   rü   r   rG   Úscipy.spatial._qhullÚspatialÚ_qhullr@   Úscipy.spatialr	   rÍ  r
   r  r   r   r    r®   rò   r0   rB   Úpathological_data_1rÆ   rq   rÈ   Úpathological_data_2ró   Úbug_2850_chunksÚbug_2850_chunks_2rÐ  r(   r-   r7   r.   r/   r9   r^   r  r  rk  rm  r¢  rí  rý   r^  rr   rU  rZ  r\  rT   r   r   Ú<module>rh     sL  ðÛ 	Û ã ÷Iõ Iã Ý *ç $Ð $Ý +Ý !ã òð 16ô 	ð ‡	�	‡�ˆtÔ â	=€à—h’hð  Ø
ˆ5€Mð Ø˜%�=ð Ø#(¨ -ð Ø27¸°ð à
ˆ3€Kð à˜�ð à % d˜|ð à.3°D¨\ð ð ˆ4€Lð ð ˜�-ð ð #(¨ ð ð 27°u°ð ð ˆ5€Mð	 ð ˜#�;ð	 ð "' t ð	 ð 05°T¨lð	 ð
 ˆ4€Lð ð
 ˜�,ð ð
 "' u ð ð
 16°d¨|ð ð ˆ5€Mð ð ˜#�;ð ð "' t ð ð 05°U¨mð ð ˆ5€Mð ð ˜$�<ð ð #(¨ ð ð 16°e¨}ð ð ˆ4€Lð ð ˜�-ð ð #(¨ ð ð 27°u°ð ð ˆ3€Kð ð ˜�ð ð !& d˜|ð ð /4°D¨\ð ð 	ˆ€Kð ð �e�ð ð  # 5˜kð ð -0°¨;ð ð :=¸S¸	ð ð 	ˆ€Jð ð �T�
ð ð ! ˜Jð ð *-¨T¨
ð ð 6:¸%°Lð ð 
ˆ%€Lð ð ˜�,ð ð "& c 
ð ð .2°$¨Kð ð 
ˆ$€Kð ð �t�ð ð  $ E˜lð ð .2°$¨Kð ð 
ˆ%€Lð ð ˜�,ð ð "& d ð ð /3°4¨[ð ð 
ˆ%€Lð ð ˜�*ð ð  $ D˜kð ð -1°¨<ð ð  
ˆ$€Kð! ð  �u�ð! ð  !% U˜|ð! ð  /3°5¨\ð! ð" 
ˆ%€Lð# ð" ˜�*ð# ð"  $ D˜kð# ð" -1°¨;ð# ð$ 
ˆ$€Kð% ð$ �t�ð% ð$  $ E˜lð% ð$ .2°%¨Lð% ð& 
ˆ%€Lð' ð& ˜�,ð' ð& "& c 
ð' ð& .2°$¨Kð' ð( 
ˆ$€Kð) ð( �t�ð) ð(  $ D˜kð) ó Ð ð. —h’hØˆ€Hˆr�1ˆg˜˜A�wØˆ€Gˆa�ˆV�a˜�VØˆˆR�XŠX�b—j‘jÓ!×%Ñ%Õ%Ð&¨¨A¨°°A°ð ó Ð ð —9‘9—>‘> " aÓ(Ø—8’8˜a ˜U Q q E¨A¨a¨5°1°Q°%Ð8Ó9ð€ð
 %Ø—i‘i—n‘n R¨Ó+Ø˜RŸXšX¨¨! u¨q°¨e°a¸°U¸Q¸q¸EÐ&BÓCÕCðEõEÐ ð
 �2—:’:˜fÓ%Ø�—‘—‘  AÓ&Ø�—‘—‘  AÓ&Ø�—‘—‘  AÓ&Ø�—‘—‘  AÓ&Ø�—‘—‘  AÓ&Ø�—‘—‘  AÓ&Ø�—‘—‘  AÓ&ØÐ)ØÐ)ð€ð � $Ð'ØÐ$ dÐ+ðÐ ò4ó4 €DÛˆ	Ù�d˜IÖ&ó ñ ÷
+ñ +÷\XDñ XD÷vñ ÷B@<ñ @<òF4%÷nz*ñ z*÷xkñ k÷`xMñ xMðv ‡�×Ñ˜¨'°5·>±>Ð)BÓCñ#ó Dð#ò	ô$r   