+
    Z°³jLÏ  ã                   ó"  € ^ RI t ^ RIt^ RIHtHtHtHtHtHt ^ RI	H
t ^ RI	t	^ RIt^ RIHt ^ RIHtHtHtHt ^ RIHt ^ RIHtHt ^ RIHtHt ^ R	IHtHtHtH t  ]	PB                  ! ]].R
7      R 4       t"R t#R t$ ! R R4      t%]# ! R R]%4      4       t&]# ! R R]&4      4       t']# ! R R]%4      4       t(]# ! R R](4      4       t) ! R R4      t* ! R R4      t+ ! R R4      t,]# ! R R],4      4       t-]# ! R  R!],4      4       t.]# ! R" R#],4      4       t/]# ! R$ R%]-4      4       t0]# ! R& R']-4      4       t1]# ! R( R)]-4      4       t2]# ! R* R+].4      4       t3]# ! R, R-]-4      4       t4]# ! R. R/]-4      4       t5R0 t6]	Pn                  Pq                  R1R27      ]	Pn                  Ps                  ^4      R3 4       4       t:]	Pn                  Pq                  R1R27      ]	Pn                  Ps                  ^4      R4 4       4       t; ! R5 R64      t<]# ! R7 R8]<4      4       t=]# ! R9 R:]<4      4       t>]# ! R; R<]=4      4       t?]# ! R= R>]>4      4       t@]# ! R? R@]=4      4       tA]# ! RA RB]>4      4       tB ! RC RD4      tCRE tDRF tERG tFRH tG ! RI RJ4      tH]# ! RK RL]H4      4       tI ! RM RN4      tJ]# ! RO RP]J4      4       tKRQ tLRR tMRS tNRT tORU tPRV tQRW tRRX tSRY tTRZ tUR[ tVR\ tWR] tXR^ tYR_ tZR` t[]	Pn                  Ps                  ^
4      Ra 4       t\Rb t]Rc t^Rd t_Re t`]	Pn                  PÂ                  Rf 4       tbRg tc]	Pn                  Ps                  ^
4      Rh 4       tdRi teRj tfRk tgRl thRm tiRn tjRo tk]	Pn                  PÙ                  Rp. R�O4      Rq 4       tm]# ! Rr Rs4      4       tnRt toRu tpRv tq]	Pn                  Pq                  RwR27      Rx 4       trRy ts]	Pn                  PÙ                  Rz]].4      R{ 4       ttR| tuR} tv]	Pn                  PÙ                  R~]].4      R 4       twR€ txR# )‚é    N)Úassert_equalÚassert_array_equalÚassert_Úassert_almost_equalÚassert_array_almost_equalÚassert_allclose)Úraises)Ú_run_concurrent_barrier)ÚKDTreeÚ	RectangleÚdistance_matrixÚcKDTree)ÚcKDTreeNode)Úminkowski_distanceÚminkowski_distance_p)ÚcdistÚ	minkowski)Ú	dok_arrayÚ	coo_arrayÚ
dok_matrixÚ
coo_matrix)Úparamsc                 ó   € V P                   # ©N)Úparam)Úrequests   &Ú`/home/luca/screen-checking/.venv/lib/python3.14/site-packages/scipy/spatial/tests/test_kdtree.pyÚkdtree_typer      s   € à�=‰=Ðó    c                óT  € V P                   P                  R4      '       g   \        R4      h\        \        3 Fk  pV P                   R,          R,           VP                   ,           pV\        4       9   d   \        RV,           4      h\        W 3RV/4      pV\        4       V&   Km  	  V # )zƒClass decorator to create test cases for KDTree and cKDTree

Tests use the class variable ``kdtree_type`` as the tree constructor.
Ú_Testz)Expected a class name starting with _Test:é   NNÚ_zDuplicated test name: r   )Ú__name__Ú
startswithÚRuntimeErrorr   r   ÚglobalsÚtype)ÚklsÚtreeÚ	test_nameÚ	test_cases   &   r   Ú
KDTreeTestr-      s“   € ð
 �<‰<×"Ñ" 7×+Ò+ÜÐFÓGÐGäœÓ!ˆØ—L‘L Õ$ sÕ*¨T¯]©]Õ:ˆ	àœ›	Ô!ÜÐ7¸)ÕCÓDÐDô ˜ F¨]¸DÐ,AÓBˆ	Ø(Œ‹	�)Óñ "ð €Jr   c                 ó¨   € W,
          pWDR V,          8„  ;;,          V,          uu&   WDRV,          8  ;;,          V,          uu&   \        V^ V4      pV# )ç      à?g      à¿©r   )ÚaÚbÚpÚboxsizeÚdiffÚds   &&&&  r   Údistance_boxr7   .   sJ   € Ø�5€DØ��g•Ñ	× 'Õ)ÓØ��w•Ñ	× 7Õ*ÓÜ�$˜˜1Ó€AØ€Hr   c                   óJ   a € ] tR t^5t o R tR tR tR tR tR t	R t
RtV tR	# )
ÚConsistencyTestsc                ó   € \        WV4      # r   r0   ©Úselfr1   r2   r3   s   &&&&r   ÚdistanceÚConsistencyTests.distance6   ó   € Ü˜˜qÓ!Ð!r   c           
     óÒ  € V P                   pV P                  P                  V^4      w  r#\        V^,          \        P
                  ! WP                  V,          ,
          ^,          4      4       Rp\        \        P                  ! \        P
                  ! V P                  V\        P                  R3,          ,
          ^,          ^R7      V^,          V,
          8„  4      4       R# )r"   ç:Œ0âŽyE>ºNNN©ÚaxisN)
ÚxÚkdtreeÚqueryr   ÚnpÚsumÚdatar   ÚallÚnewaxis)r<   rE   r6   ÚiÚepss   &    r   Útest_nearestÚConsistencyTests.test_nearest9   s’   € Ø�F‰FˆØ�{‰{× Ñ   AÓ&‰ˆÜ˜A˜q�D¤"§&¢&¨!¯I©I°a­L­.¸1Õ)<Ó"=Ô>ØˆÜ”—’”r—v’v˜tŸy™y¨¬2¯:©:°q¨=Õ)9Õ9¸AÕ=ÀAÔFÈÈAÍÈcÍÑQÓRÖSr   c           
     óP  € V P                   pV P                  pV P                  P                  W4      w  r4\        P
                  ! V4      pV\        P                  ! V4      ,          p\        V^,          \        P                  ! WP                  V,          ,
          ^,          4      4       Rp\        \        P                  ! \        P                  ! V P                  V\        P                  R3,          ,
          ^,          ^R7      V^,          V,           8  4      V4       R# )é   rA   rB   rC   N)rE   ÚmrF   rG   rH   ÚamaxÚargmaxr   rI   rJ   r   rL   )r<   rE   rS   ÚddÚiir6   rM   rN   s   &       r   Útest_m_nearestÚConsistencyTests.test_m_nearest@   s¾   € Ø�F‰FˆØ�F‰FˆØ—‘×"Ñ" 1Ó(‰ˆÜ�GŠG�B‹KˆØŒr�yŠy˜‹}ÕˆÜ˜A˜q�D¤"§&¢&¨!¯I©I°a­L­.¸1Õ)<Ó"=Ô>ØˆÜÜ�FŠF”2—6’6˜4Ÿ9™9 Q¤r§z¡z°1 }Õ%5Õ5¸Õ9ÀÔBÀQÈÅTÈ#ÅXÑMÓNØö	
r   c           	     óh  € V P                   pV P                  pV P                  P                  WP                  P                  VR 7      w  r4Rp^ p\        W44       F‡  w  rxV\        P                  8X  d   K  V^,          p\        V^,          \        P                  ! WP                  V,          ,
          ^,          4      4       \        WrV,           8  RVR RVR 24       K‰  	  \        \        P                  ! V P                  V P                  V^4      V^,          V,           8  4      V4       R# )©ÚkÚdistance_upper_boundrA   únear_d=Úgú should be less than N)rE   r6   rF   rG   ÚnÚziprH   Úinfr   rI   rJ   r   r   r=   ©	r<   rE   r6   rV   rW   rN   ÚhitsÚnear_dÚnear_is	   &        r   Útest_points_nearÚ!ConsistencyTests.test_points_nearM   sæ   € Ø�F‰FˆØ�F‰FˆØ—‘×"Ñ" 1¯©¯©ÈAÐ"ÓN‰ˆØˆØˆÜ! "žk‰NˆFØœŸ™ÔÙØ�A�IˆDÜ ¨¥	¬2¯6ª6°1·Y±Y¸vÕ5FÕ3FÈÕ2JÓ+KÔLÜ�F˜s�U‘N g¨f°Q¨ZÐ7LÈQÈqÈEÐ$RÖSñ *ô 	”R—V’V˜DŸM™M¨$¯)©)°Q¸Ó:¸QÀ½TÀ#½XÑEÓFÈÖMr   c           	     ó(  € V P                   pV P                  pV P                  P                  WP                  P                  ^VR7      w  r4Rp^ p\        W44       Fn  w  rxV\        P                  8X  d   K  V^,          p\        WpP                  WP                  V,          ^4      4       \        WrV,           8  RVR RVR 24       Kp  	  \        \        P                  ! V P                  V P                  V^4      W%,           8  4      V4       R# )r"   ©r\   r3   r]   rA   r^   r_   r`   N)rE   r6   rF   rG   ra   rb   rH   rc   r   r=   rJ   r   r   rI   rd   s	   &        r   Útest_points_near_l1Ú$ConsistencyTests.test_points_near_l1[   s×   € Ø�F‰FˆØ�F‰FˆØ—‘×"Ñ" 1¯©¯©¸ÐQRÐ"ÓS‰ˆØˆØˆÜ! "žk‰NˆFØœŸ™ÔÙØ�A�IˆDÜ ¯©°a¿¹À6Õ9JÈAÓ(NÔOÜ�F˜s�U‘N g¨f°Q¨ZÐ7LÈQÈqÈEÐ$RÖSñ *ô 	”R—V’V˜DŸM™M¨$¯)©)°Q¸Ó:¸Q½UÑBÓCÀTÖJr   c           	     ó|  € V P                   pV P                  pV P                  P                  WP                  P                  \
        P                  VR 7      w  r4Rp^ p\        W44       F|  w  rxV\
        P                  8X  d   K  V^,          p\        WpP                  WP                  V,          \
        P                  4      4       \        WrV,           8  RVR RVR 24       K~  	  \        \
        P                  ! V P                  V P                  V\
        P                  4      W%,           8  4      V4       R# )rk   rA   r^   r_   r`   N)rE   r6   rF   rG   ra   rH   rc   rb   r   r=   rJ   r   r   rI   rd   s	   &        r   Útest_points_near_linfÚ&ConsistencyTests.test_points_near_linfi   sã   € Ø�F‰FˆØ�F‰FˆØ—‘×"Ñ" 1¯©¯©¼¿¹ÐVWÐ"ÓX‰ˆØˆØˆÜ! "žk‰NˆFØœŸ™ÔÙØ�A�IˆDÜ ¯©°a¿¹À6Õ9JÌBÏFÉFÓ(SÔTÜ�F˜s�U‘N g¨f°Q¨ZÐ7LÈQÈqÈEÐ$RÖSñ *ô 	”R—V’V˜DŸM™M¨$¯)©)°Q¼¿¹Ó?À!Å%ÑGÓHÈ$ÖOr   c                ó  € V P                   pV P                  pR pV P                  P                  W4      w  rEV P                  P                  WVR7      w  rg\	        \
        P                  ! Wd^V,           ,          8*  4      4       R# )çš™™™™™¹?©rN   N)rE   r\   rF   rG   r   rH   rK   )r<   rE   r\   rN   Úd_realÚi_realr6   rM   s   &       r   Útest_approxÚConsistencyTests.test_approxw   sf   € Ø�F‰FˆØ�F‰FˆØˆØŸ™×*Ñ*¨1Ó0‰ˆØ�{‰{× Ñ  ¨3Ð Ó/‰ˆÜ”—’�q A c¥E�NÑ*Ó+Ö,r   © N)r$   Ú
__module__Ú__qualname__Ú__firstlineno__r=   rO   rX   rh   rl   ro   rv   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r9   r9   5   s1   ø‡ € ò"òTò
òNòKòP÷-ð -r   r9   c                   ó&   a € ] tR t^€t o R tRtV tR# )Ú_Test_randomc                óŽ  € ^dV n         ^V n        \        P                  P	                  R4       \        P                  P                  V P                   V P                  4      V n        V P                  V P                  ^R7      V n        \        P                  P                  V P                  4      V n	        RV n
        ^
V n        R# )éd   éÒ  ©Úleafsizeçš™™™™™É?N)ra   rS   rH   ÚrandomÚseedÚrandnrJ   r   rF   rE   r6   r\   ©r<   s   &r   Úsetup_methodÚ_Test_random.setup_method‚   s   € ØˆŒØˆŒÜ
�	‰	�‰�tÔÜ—I‘I—O‘O D§F¡F¨D¯F©FÓ3ˆŒ	Ø×&Ñ& t§y¡y¸1Ð&Ó=ˆŒÜ—‘—‘ §¡Ó(ˆŒØˆŒØˆŽr   ©r6   rJ   r\   rF   rS   ra   rE   N©r$   ry   rz   r{   rŒ   r|   r}   r~   s   @r   r�   r�   €   s   ø‡ € ÷ð r   r�   c                   ó2   a a€ ] tR t^�t oV 3R ltRtVtV ;t# )Ú_Test_random_farc                óŽ   <€ \         SV `  4        \        P                  P	                  V P
                  4      ^
,           V n        R# )é
   N)ÚsuperrŒ   rH   rˆ   rŠ   rS   rE   ©r<   Ú	__class__s   &€r   rŒ   Ú_Test_random_far.setup_method�   s+   ø€ Ü‰ÑÔÜ—‘—‘ §¡Ó(¨Õ+ˆŽr   )rE   ©r$   ry   rz   r{   rŒ   r|   r}   Ú__classcell__©r–   r   s   @@r   r‘   r‘   �   s   ù‡ € ÷,õ ,r   r‘   c                   ó2   a € ] tR t^”t o R tR tR tRtV tR# )Ú_Test_smallc                óº  € \         P                  ! . RO. RO. RO. RO. RO. R	O. R
O. RO.4      V n        V P                  V P                  4      V n        V P                  P
                  V n        V P                  P                  V n        \         P                  P                  R4       \         P                  P                  ^4      V n
        RV n        ^V n        R# )r   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"   )rH   ÚarrayrJ   r   rF   ra   rS   rˆ   r‰   rŠ   rE   r6   r\   r‹   s   &r   rŒ   Ú_Test_small.setup_method–   s–   € Ü—H’HšiÚ'Ú'Ú'Ú'Ú'Ú'Ú'ð)ó *ˆŒ	ð ×&Ñ& t§y¡yÓ1ˆŒØ—‘—‘ˆŒØ—‘—‘ˆŒÜ
�	‰	�‰�tÔÜ—‘—‘ Ó#ˆŒØˆŒØˆŽr   c                óR   € \        V P                  P                  R^4      R4       R# )r   N©r   r   rr   )rr   r   ©r   rF   rG   r‹   s   &r   rO   Ú_Test_small.test_nearest§   s!   € ÜØ—‘×!Ñ! +¨qÓ1Øö	r   c                ó^   € \        V P                  P                  R^4      RR.^ ^.34       R# )r   rr   gÍÌÌÌÌÌì?Nr©   rª   r‹   s   &r   Útest_nearest_twoÚ_Test_small.test_nearest_two¬   s.   € ÜØ—‘×!Ñ! +¨qÓ1Ø�s�˜a ˜VÐ$ö	&r   rŽ   N)	r$   ry   rz   r{   rŒ   rO   r­   r|   r}   r~   s   @r   rœ   rœ   ”   s   ø‡ € òò"÷
&ð &r   rœ   c                   ó2   a a€ ] tR t^²t oV 3R ltRtVtV ;t# )Ú_Test_small_nonleafc                óh   <€ \         SV `  4        V P                  V P                  ^R7      V n        R# )r"   r…   N)r”   rŒ   r   rJ   rF   r•   s   &€r   rŒ   Ú _Test_small_nonleaf.setup_method´   s)   ø€ Ü‰ÑÔØ×&Ñ& t§y¡y¸1Ð&Ó=ˆŽr   )rF   r˜   rš   s   @@r   r°   r°   ²   s   ù‡ € ÷>õ >r   r°   c                   óD   a € ] tR t^¹t o R tR tR tR tR tR t	Rt
V tR# )	ÚTest_vectorization_KDTreec                ó    € \         P                  ! . RO. RO. RO. RO. RO. RO. RO. R	O.4      V n        \        V P                  4      V n        R# ©
r   Nrž   rŸ   r    r¡   r¢   r£   r¤   r¥   )rH   r¦   rJ   r   rF   r‹   s   &r   rŒ   Ú&Test_vectorization_KDTree.setup_methodº   s@   € Ü—H’HšiÚ'Ú'Ú'Ú'Ú'Ú'Ú'ð)ó *ˆŒ	ô ˜TŸY™YÓ'ˆŽr   c                óú   € V P                   P                  \        P                  ! . RO4      4      w  r\	        \        V\        4      4       \	        \        P                  ! V\        P                  4      4       R# ©r   Nrž   )	rF   rG   rH   r¦   r   Ú
isinstanceÚfloatÚ
issubdtypeÚsignedinteger©r<   r6   rM   s   &  r   Útest_single_queryÚ+Test_vectorization_KDTree.test_single_queryÅ   sI   € Ø�{‰{× Ñ ¤§¢ª)Ó!4Ó5‰ˆÜ”
˜1œeÓ$Ô%Ü”—’˜a¤×!1Ñ!1Ó2Ö3r   c                óè   € V P                   P                  \        P                  ! R4      4      w  r\	        \        P
                  ! V4      R4       \	        \        P
                  ! V4      R4       R# ©rR   N©rR   é   é   )rR   rÄ   ©rF   rG   rH   Úzerosr   Úshaper¾   s   &  r   Útest_vectorized_queryÚ/Test_vectorization_KDTree.test_vectorized_queryÊ   óE   € Ø�{‰{× Ñ ¤§¢¨)Ó!4Ó5‰ˆÜ”R—X’X˜a“[ &Ô)Ü”R—X’X˜a“[ &Ö)r   c           	     ó  € ^pV P                   P                  V,           pV P                   P                  \        P                  ! . RO4      VR7      w  r4\        \        P                  ! V4      V34       \        \        P                  ! V4      V34       \        \        P                  ! \        P                  ! W1) R 4      ( 4      4       \        \        P                  ! WA) R V P                   P                  8H  4      4       R# ©é   ©r\   Nrž   )
rF   ra   rG   rH   r¦   r   rÈ   r   rK   Úisfinite©r<   ÚsÚkkr6   rM   s   &    r   Ú$test_single_query_multiple_neighborsÚ>Test_vectorization_KDTree.test_single_query_multiple_neighborsÏ   s«   € ØˆØ�[‰[�]‰]˜1�_ˆØ�{‰{× Ñ ¤§¢ª)Ó!4¸Ð Ó;‰ˆÜ”R—X’X˜a“[ 2 %Ô(Ü”R—X’X˜a“[ 2 %Ô(Ü”—’œŸš A b c FÓ+Ð+Ó,Ô-Ü”—’�q˜˜�v §¡§¡Ñ.Ó/Ö0r   c                ó>  € ^pV P                   P                  V,           pV P                   P                  \        P                  ! R4      VR7      w  r4\        \        P                  ! V4      ^^V34       \        \        P                  ! V4      ^^V34       \        \        P                  ! \        P                  ! VRRV) R13,          4      ( 4      4       \        \        P                  ! VRRV) R13,          V P                   P                  8H  4      4       R# ©rÎ   rÏ   rB   NrÃ   ©
rF   ra   rG   rH   rÇ   r   rÈ   r   rK   rÐ   rÑ   s   &    r   Ú(test_vectorized_query_multiple_neighborsÚBTest_vectorization_KDTree.test_vectorized_query_multiple_neighborsØ   óÃ   € ØˆØ�[‰[�]‰]˜1�_ˆØ�{‰{× Ñ ¤§¢¨)Ó!4¸Ð Ó;‰ˆÜ”R—X’X˜a“[ 1 a¨ *Ô-Ü”R—X’X˜a“[ 1 a¨ *Ô-Ü”—’œŸš A a¨¨Q¨B©C i¥LÓ1Ð1Ó2Ô3Ü”—’�q˜˜A ˜r™s˜•| t§{¡{§}¡}Ñ4Ó5Ö6r   c                óÆ   € R p\         P                  ! \        RR7      ;_uu_ 4        V P                  P	                  VRR7       RRR4       R#   + '       g   i     R# ; i)ç      ð?zk must be an integer or*©ÚmatchNrÏ   )Úpytestr	   Ú
ValueErrorrF   rG   )r<   rE   s   & r   Útest_query_raises_for_k_noneÚ6Test_vectorization_KDTree.test_query_raises_for_k_noneá   s@   € ØˆÜ�]Š]œ:Ð-G×HÖHØ�K‰K×Ñ˜a 4ÐÔ(÷ I×H×HÒHús   §AÁA 	©rJ   rF   N)r$   ry   rz   r{   rŒ   r¿   rÉ   rÔ   rÙ   râ   r|   r}   r~   s   @r   r´   r´   ¹   s(   ø‡ € ò	(ò4ò
*ò
1ò7÷)ð )r   r´   c                   óD   a € ] tR t^æt o R tR tR tR tR tR t	Rt
V tR# )	ÚTest_vectorization_cKDTreec                ó    € \         P                  ! . RO. RO. RO. RO. RO. RO. RO. R	O.4      V n        \        V P                  4      V n        R# r¶   )rH   r¦   rJ   r   rF   r‹   s   &r   rŒ   Ú'Test_vectorization_cKDTree.setup_methodç   s@   € Ü—H’HšiÚ'Ú'Ú'Ú'Ú'Ú'Ú'ð)ó *ˆŒ	ô ˜dŸi™iÓ(ˆŽr   c                ó¨   € V P                   P                  . RO4      w  r\        \        V\        4      4       \        \        V\
        4      4       R# r¹   )rF   rG   r   rº   r»   Úintr¾   s   &  r   r¿   Ú,Test_vectorization_cKDTree.test_single_queryò   s6   € Ø�{‰{× Ñ ¢Ó+‰ˆÜ”
˜1œeÓ$Ô%Ü”
˜1œcÓ"Ö#r   c                óè   € V P                   P                  \        P                  ! R4      4      w  r\	        \        P
                  ! V4      R4       \	        \        P
                  ! V4      R4       R# rÂ   rÆ   r¾   s   &  r   rÉ   Ú0Test_vectorization_cKDTree.test_vectorized_query÷   rË   r   c                óJ  € \         P                  P                  R 4       \         P                  P                  ^R4      P                  pV P
                  P                  V4      w  r#\        WV4       F,  w  rEp\        V P
                  P                  V4      WV34       K.  	  R# )r„   éè  N)	rH   rˆ   r‰   rŠ   ÚTrF   rG   rb   r   )r<   ÚqsÚdsÚi_sÚqr6   rM   s   &      r   Ú*test_vectorized_query_noncontiguous_valuesÚETest_vectorization_cKDTree.test_vectorized_query_noncontiguous_valuesü   sr   € Ü
�	‰	�‰�tÔÜ�Y‰Y�_‰_˜Q Ó%×'Ñ'ˆØ—+‘+×#Ñ# BÓ'‰ˆÜ˜2 3Ö'‰GˆA�!Ü˜Ÿ™×*Ñ*¨1Ó-°¨vÖ6ó (r   c           	     óê  € ^pV P                   P                  V,           pV P                   P                  . ROVR7      w  r4\        \        P
                  ! V4      V34       \        \        P
                  ! V4      V34       \        \        P                  ! \        P                  ! W1) R 4      ( 4      4       \        \        P                  ! WA) R V P                   P                  8H  4      4       R# rÍ   )	rF   ra   rG   r   rH   rÈ   r   rK   rÐ   rÑ   s   &    r   rÔ   Ú?Test_vectorization_cKDTree.test_single_query_multiple_neighbors  s¢   € ØˆØ�[‰[�]‰]˜1�_ˆØ�{‰{× Ñ ¢¨bÐ Ó1‰ˆÜ”R—X’X˜a“[ 2 %Ô(Ü”R—X’X˜a“[ 2 %Ô(Ü”—’œŸš A b c FÓ+Ð+Ó,Ô-Ü”—’�q˜˜�v §¡§¡Ñ.Ó/Ö0r   c                ó>  € ^pV P                   P                  V,           pV P                   P                  \        P                  ! R4      VR7      w  r4\        \        P                  ! V4      ^^V34       \        \        P                  ! V4      ^^V34       \        \        P                  ! \        P                  ! VRRV) R13,          4      ( 4      4       \        \        P                  ! VRRV) R13,          V P                   P                  8H  4      4       R# r×   rØ   rÑ   s   &    r   rÙ   ÚCTest_vectorization_cKDTree.test_vectorized_query_multiple_neighbors  rÛ   r   rä   N)r$   ry   rz   r{   rŒ   r¿   rÉ   rõ   rÔ   rÙ   r|   r}   r~   s   @r   ræ   ræ   æ   s(   ø‡ € ò	)ò$ò
*ò
7ò1÷7ð 7r   ræ   c                   ó6   a € ] tR tRt o RtR tR tR tRtV t	R# )Úball_consistencyi  ç        c                ó8   € \        VR ,          VR ,          V4      # ©rÝ   r0   r;   s   &&&&r   r=   Úball_consistency.distance  s   € Ü˜˜S� ! c¥'¨1Ó-Ð-r   c                óä  € \         P                  ! V P                  4      p\         P                  ! V P                  VP
                  R R 4      pV P                  P                  WP                  V P                  V P                  R7      p\        V4       FÖ  w  rEV P                  V P                  V,          W,          V P                  4      W$,          RV P                  ,           ,          ,
          pV P                  V P                  V,          W,          V P                  4      W$,          RV P                  ,           ,          ,           p\        W`P                  V,          8  R4       KØ  	  R # )N©r3   rN   rÝ   Téÿÿÿÿ)rH   Ú
atleast_2drE   Úbroadcast_tor6   rÈ   rð   Úquery_ball_pointr3   rN   Ú	enumerater=   rJ   r   Útol)r<   rE   r6   ÚlrM   ÚindÚdistÚnorms   &       r   Útest_in_ballÚball_consistency.test_in_ball  sæ   € Ü�MŠM˜$Ÿ&™&Ó!ˆÜ�OŠO˜DŸF™F A§G¡G¨C¨R LÓ1ˆØ�F‰F×#Ñ# A§v¡v°·±¸T¿X¹XÐ#ÓFˆÜ –l‰FˆAØ—=‘= §¡¨3¥°µ°t·v±vÓ>ÀÅÀrÈ$Ï(É(Å{ÕASÕSˆDØ—=‘= §¡¨3¥°µ°t·v±vÓ>ÀÅÀrÈ$Ï(É(Å{ÕASÕSˆDÜ˜t§h¡h°¥oÑ5°tÖ<ó #r   c                óR  € \         P                  ! V P                  4      p\         P                  ! V P                  VP
                  R R 4      pV P                  P                  WP                  V P                  V P                  R7      p\        V4       EF  w  rE\         P                  ! V P                  P                  \        R7      pRWe&   V P                  V P                  V,          W,          V P                  4      W$,          RV P                  ,           ,          ,
          pV P                  V P                  V,          W,          V P                  4      W$,          RV P                  ,           ,          ,           p\!        WpP"                  ) V,          8„  R4       EK  	  R # )Nr  ©ÚdtypeFrÝ   Tr  )rH   r  rE   r  r6   rÈ   rð   r  r3   rN   r  Úonesra   Úboolr=   rJ   r   r  )	r<   rE   r6   r	  rM   r
  Úcr  r  s	   &        r   Útest_found_allÚball_consistency.test_found_all$  s  € Ü�MŠM˜$Ÿ&™&Ó!ˆÜ�OŠO˜DŸF™F A§G¡G¨C¨R LÓ1ˆØ�F‰F×#Ñ# A§v¡v°·±¸T¿X¹XÐ#ÓFˆÜ —l‰FˆAÜ—’˜Ÿ™Ÿ™¬Ô-ˆAØˆA‰FØ—=‘= §¡¨1¥¨q­t°T·V±VÓ<¸q½tÀRÈÏÉÅ[Õ?QÕQˆDØ—=‘= §¡¨1¥¨q­t°T·V±VÓ<¸q½tÀRÈÏÉÅ[Õ?QÕQˆDÜ˜t§x¡x i°$Õ&6Ñ6¸×=ó #r   rx   N)
r$   ry   rz   r{   r  r=   r  r  r|   r}   r~   s   @r   rü   rü     s   ø‡ € Ø
€Cò.ò=÷	>ð 	>r   rü   c                   ó&   a € ] tR tRt o R tRtV tR# )Ú_Test_random_balli/  c                óJ  € ^dp^p\         P                  P                  R4       \         P                  P                  W4      V n        V P                  V P                  ^R7      V n        \         P                  P                  V4      V n        RV n        ^ V n	        RV n
        R# )rƒ   r„   r…   ç       @r‡   N)rH   rˆ   r‰   rŠ   rJ   r   rð   rE   r3   rN   r6   ©r<   ra   rS   s   &  r   rŒ   Ú_Test_random_ball.setup_method1  st   € ØˆØˆÜ
�	‰	�‰�tÔÜ—I‘I—O‘O AÓ)ˆŒ	Ø×!Ñ! $§)¡)°aÐ!Ó8ˆŒÜ—‘—‘ Ó#ˆŒØˆŒØˆŒØˆŽr   ©rð   r6   rJ   rN   r3   rE   Nr�   r~   s   @r   r  r  /  s   ø‡ € ÷	ð 	r   r  c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )Ú_Test_random_ball_periodici=  c                ó   € \        WVR 4      # rÿ   ©r7   r;   s   &&&&r   r=   Ú#_Test_random_ball_periodic.distance?  ó   € Ü˜A ! SÓ)Ð)r   c                ó@  € R p^p\         P                  P                  R4       \         P                  P                  W3R7      V n        V P                  V P                  ^^R7      V n        \         P                  ! VR4      V n        RV n	        ^ V n
        RV n        R# )é'  r„   ©Úsize©r†   r4   rr   r  r‡   N)rH   rˆ   r‰   ÚuniformrJ   r   rð   ÚfullrE   r3   rN   r6   r  s   &  r   rŒ   Ú'_Test_random_ball_periodic.setup_methodB  sz   € ØˆØˆÜ
�	‰	�‰�tÔÜ—I‘I×%Ñ%¨A¨6Ð%Ó2ˆŒ	Ø×!Ñ! $§)¡)°aÀÐ!ÓCˆŒÜ—’˜˜C“ˆŒØˆŒØˆŒØˆŽr   c                óú  € V P                   P                  V P                  R ,           V P                  V P                  V P
                  R7      pV Fi  p\        V P                  V P                  V,          V P                  V P                  4      V P                  R V P
                  ,           ,          8*  4       Kk  	  V P                   P                  V P                  R ,
          V P                  V P                  V P
                  R7      pV Fi  p\        V P                  V P                  V,          V P                  V P                  4      V P                  R V P
                  ,           ,          8*  4       Kk  	  R# )rÝ   r  N)	rð   r  rE   r6   r3   rN   r   r=   rJ   )r<   r	  rM   s   &  r   Útest_in_ball_outsideÚ/_Test_random_ball_periodic.test_in_ball_outsideM  sî   € Ø�F‰F×#Ñ# D§F¡F¨S¥L°$·&±&¸D¿F¹FÈÏÉÐ#ÓQˆÛˆAÜ�D—M‘M $§)¡)¨A¥,°·±¸¿¹Ó?À4Ç6Á6È2ÈdÏhÉhÍ;ÕCWÑWÖXñ à�F‰F×#Ñ# D§F¡F¨S¥L°$·&±&¸D¿F¹FÈÏÉÐ#ÓQˆÛˆAÜ�D—M‘M $§)¡)¨A¥,°·±¸¿¹Ó?À4Ç6Á6È2ÈdÏhÉhÍ;ÕCWÑWÖXó r   c                ó’  € \         P                  ! V P                  P                  \        R 7      pV P                  P                  V P                  R,           V P                  V P                  V P                  R7      pRW&   \         P                  ! V P                  V P                  V,          V P                  V P                  4      V P                  RV P                  ,           ,          8¬  4      '       g   Q hV P                  P                  V P                  R,
          V P                  V P                  V P                  R7      pRW&   \         P                  ! V P                  V P                  V,          V P                  V P                  4      V P                  RV P                  ,           ,          8¬  4      '       g   Q hR# )r  rÝ   r  FN)rH   r  rð   ra   r  r  rE   r6   r3   rN   rK   r=   rJ   )r<   r  r	  s   &  r   Útest_found_all_outsideÚ1_Test_random_ball_periodic.test_found_all_outsideU  s.  € Ü�GŠG�D—F‘F—H‘H¤DÔ)ˆØ�F‰F×#Ñ# D§F¡F¨S¥L°$·&±&¸D¿F¹FÈÏÉÐ#ÓQˆØˆ‰Ü�vŠvØ�M‰M˜$Ÿ)™) A�,¨¯©°·±Ó7¸4¿6¹6À2ÀdÇhÁhÅ;Õ;OÑO÷
ò 
ð 	
ð 
ð �F‰F×#Ñ# D§F¡F¨S¥L°$·&±&¸D¿F¹FÈÏÉÐ#ÓQˆØˆ‰Ü�vŠvØ�M‰M˜$Ÿ)™) A�,¨¯©°·±Ó7¸4¿6¹6À2ÀdÇhÁhÅ;Õ;OÑO÷
ò 
ð 	
ò 
r   r  N)
r$   ry   rz   r{   r=   rŒ   r-  r0  r|   r}   r~   s   @r   r  r  =  s   ø‡ € ò*ò	òY÷
ð 
r   r  c                   ó*   a € ] tR tRt o RtR tRtV tR# )Ú"_Test_random_ball_largep_issue9890id  g‚vIhÂ%<=c                ó(  € R p^p\         P                  P                  ^{4       \         P                  P                  ^dR W3R7      V n        V P                  V P                  4      V n        V P                  V n        ^dV n        ^ V n	        ^
V n
        R# )rï   r&  N)rH   rˆ   r‰   ÚrandintrJ   r   rð   rE   r3   rN   r6   r  s   &  r   rŒ   Ú/_Test_random_ball_largep_issue9890.setup_methodj  sq   € ØˆØˆÜ
�	‰	�‰�sÔÜ—I‘I×%Ñ% c¨4°q°fÐ%Ó=ˆŒ	Ø×!Ñ! $§)¡)Ó,ˆŒØ—‘ˆŒØˆŒØˆŒØˆŽr   r  N)r$   ry   rz   r{   r  rŒ   r|   r}   r~   s   @r   r3  r3  d  s   ø‡ € ð €C÷	ð 	r   r3  c                   ó2   a a€ ] tR tRt oV 3R ltRtVtV ;t# )Ú_Test_random_ball_approxiv  c                ó2   <€ \         SV `  4        R V n        R# ©rr   N©r”   rŒ   rN   r•   s   &€r   rŒ   Ú%_Test_random_ball_approx.setup_methody  ó   ø€ Ü‰ÑÔØˆŽr   rs   r˜   rš   s   @@r   r8  r8  v  ó   ù‡ € ÷õ r   r8  c                   ó2   a a€ ] tR tRt oV 3R ltRtVtV ;t# )Ú!_Test_random_ball_approx_periodici~  c                ó2   <€ \         SV `  4        R V n        R# r:  r;  r•   s   &€r   rŒ   Ú._Test_random_ball_approx_periodic.setup_method�  r=  r   rs   r˜   rš   s   @@r   r@  r@  ~  r>  r   r@  c                   ó2   a a€ ] tR tRt oV 3R ltRtVtV ;t# )Ú_Test_random_ball_fari†  c                ó2   <€ \         SV `  4        R V n        R# ©r  N©r”   rŒ   r6   r•   s   &€r   rŒ   Ú"_Test_random_ball_far.setup_method‰  ó   ø€ Ü‰ÑÔØˆŽr   ©r6   r˜   rš   s   @@r   rD  rD  †  ó   ù‡ € ÷õ r   rD  c                   ó2   a a€ ] tR tRt oV 3R ltRtVtV ;t# )Ú_Test_random_ball_far_periodici�  c                ó2   <€ \         SV `  4        R V n        R# rF  rG  r•   s   &€r   rŒ   Ú+_Test_random_ball_far_periodic.setup_method�  rI  r   rJ  r˜   rš   s   @@r   rM  rM  �  rK  r   rM  c                   ó2   a a€ ] tR tRt oV 3R ltRtVtV ;t# )Ú_Test_random_ball_l1i•  c                ó2   <€ \         SV `  4        ^V n        R# )r"   N)r”   rŒ   r3   r•   s   &€r   rŒ   Ú!_Test_random_ball_l1.setup_method˜  ó   ø€ Ü‰ÑÔØˆŽr   ©r3   r˜   rš   s   @@r   rQ  rQ  •  ó   ù‡ € ÷õ r   rQ  c                   ó2   a a€ ] tR tRt oV 3R ltRtVtV ;t# )Ú_Test_random_ball_linfi�  c                óN   <€ \         SV `  4        \        P                  V n        R # r   ©r”   rŒ   rH   rc   r3   r•   s   &€r   rŒ   Ú#_Test_random_ball_linf.setup_method   ó   ø€ Ü‰ÑÔÜ—‘ˆŽr   rU  r˜   rš   s   @@r   rX  rX  �  ó   ù‡ € ÷õ r   rX  c                 ód  € ^p^p\         P                  P                  R4       V ! \         P                  P                  W4      4      pVP	                  \         P                  P                  ^^V4      ^4      p\        VP                  R4       \        \        VR,          \        4      4       R# )é   r„   N©rR   rÅ   ©r   r   )
rH   rˆ   r‰   rŠ   r  r   rÈ   r   rº   Úlist)r   ra   rS   rð   Úrs   &    r   Útest_random_ball_vectorizedrd  ¥  sw   € Ø
€AØ	€AÜ‡I�I‡N�N�4ÔÙ”B—I‘I—O‘O AÓ)Ó*€Aà	×Ñœ2Ÿ9™9Ÿ?™?¨1¨a°Ó3°QÓ7€AÜ�—‘˜&Ô!ÜŒJ�q˜•w¤Ó%Ö&r   zTest spawns worker threads)Úreasonc                 ó2  € \         P                  P                  ^ 4       Rp^p\         P                  P                  W4      pV ! V4      pVP	                  VR^R7      pVP	                  VR^@R7      pVP	                  VRRR7      p\        V4       F9  pWX,          '       g   Wh,          '       g   K!  \        WX,          Wh,          4       K;  	  \        V4       F9  pWX,          '       g   Wx,          '       g   K!  \        WX,          Wx,          4       K;  	  R# )r   éˆ  gú~j¼t“h?©ÚworkersNr  )rH   rˆ   r‰   rŠ   r  Úranger   )	r   ra   r\   Úpointsrð   Úl1Úl2Úl3rM   s	   &        r   Ú+test_query_ball_point_multithreaded_workersro  °  sÓ   € ô ‡I�I‡N�N�1ÔØ€AØ	€AÜ�Y‰Y�_‰_˜QÓ"€FÙ�FÓ€AØ	
×	Ñ	˜F E°1Ð	Ó	5€BØ	
×	Ñ	˜F E°2Ð	Ó	6€BØ	
×	Ñ	˜F E°2Ð	Ó	6€Bä�1ŽXˆØ�5Œ5�B—E–EÜ˜r�u b¥eÖ,ñ ô �1ŽXˆØ�5Œ5�B—E–EÜ˜r�u b¥eÖ,ó r   c                 óî  a€ \         P                  P                  R 4      pRp^pVP                  W#4      pV ! V4      p^
pW&,          V,          V8X  g   Q hVP                  WbV,          V4      p\         P                  ! WrV34      pRoV3R lp	\        WiWW4      p
VP                  VS4      p\        \         P                  ! \         P                  ! V
4      4      \         P                  ! V4      4       R# )l   e]IG r%  ç333333Ó?c                 ó4   <€ VP                  W ,          S4      # r   )r  )rM   r*   Úsearch_pointsÚradiuss   &&&€r   Úworker_funcÚAtest_query_ball_point_multithreaded_explicit.<locals>.worker_funcÔ  s   ø€ Ø×$Ñ$ ]Õ%5°vÓ>Ð>r   N)
rH   rˆ   ÚRandomStaterŠ   Úreshaper
   r  r   ÚsortÚconcatenate)r   Úrngra   r\   rk  r*   Úmax_workersrs  Úall_search_pointsru  ÚresultsÚserial_resultsrt  s   &           @r   Ú,test_query_ball_point_multithreaded_explicitr€  Å  sÒ   ø€ ô �)‰)×
Ñ
 
Ó
+€CØ€AØ	€Aà�Y‰Y�q‹_€FÙ�vÓ€DØ€KØ�>˜KÕ'¨1Ô,Ð-Ð,Ø—I‘I˜k¨k­>¸1Ó=€MÜŸ
š
 =°a°&Ó9ÐØ€Fõ?ô &Ø $ó7€Gð ×*Ñ*Ð+<¸fÓE€Nô ”r—w’wœrŸ~š~¨gÓ6Ó7¼¿ºÀÓ9PÖQr   c                   ó2   a € ] tR tRt o R tR tR tRtV tR# )Útwo_trees_consistencyià  c                ó   € \        WV4      # r   r0   r;   s   &&&&r   r=   Útwo_trees_consistency.distanceâ  r?   r   c                óž  € V P                   P                  V P                  V P                  V P                  V P
                  R 7      p\        V4       Fv  w  r#V Fk  pV P                  V P                  V,          V P                  V,          V P                  4      V P                  RV P
                  ,           ,          8:  d   Kk  Q h	  Kx  	  R# )r  rÝ   N)
ÚT1Úquery_ball_treeÚT2r6   r3   rN   r  r=   Údata1Údata2)r<   rc  rM   r	  Újs   &    r   Útest_all_in_ballÚ&two_trees_consistency.test_all_in_ballå  s�   € Ø�G‰G×#Ñ# D§G¡G¨T¯V©V°t·v±vÀ4Ç8Á8Ð#ÓLˆÜ˜a–L‰DˆAÛ�ØŸ™ d§j¡j°¥m°T·Z±ZÀµ]ÀDÇFÁFÓKØŸ6™6 2 d§h¡h¥;Õ/ö0ð 1ð 0ó ó !r   c                ó$  € V P                   P                  V P                  V P                  V P                  V P
                  R 7      p\        V4       F¹  w  r#\        P                  ! V P                  P                  \        R7      pRWC&   \        P                  ! V P                  V P                  V,          V P                  V,          V P                  4      V P                  RV P
                  ,           ,          8¬  4      '       d   K¹  Q h	  R# )r  r  FrÝ   N)r†  r‡  rˆ  r6   r3   rN   r  rH   r  ra   r  rK   r=   rŠ  r‰  )r<   rc  rM   r	  r  s   &    r   r  Ú$two_trees_consistency.test_found_allì  sµ   € Ø�G‰G×#Ñ# D§G¡G¨T¯V©V°t·v±vÀ4Ç8Á8Ð#ÓLˆÜ˜a–L‰DˆAÜ—’˜Ÿ™Ÿ	™	¬Ô.ˆAØˆA‰DÜ—6’6˜$Ÿ-™-¨¯
©
°1­°t·z±zÀ!µ}ÀdÇfÁfÓMØ!ŸV™V R¨¯©¥[Õ1ñ2÷ 3ô 3ð 3ð 3ó !r   rx   N)	r$   ry   rz   r{   r=   rŒ  r  r|   r}   r~   s   @r   r‚  r‚  à  s   ø‡ € ò"ò1÷3ð 3r   r‚  c                   ó&   a € ] tR tRt o R tRtV tR# )Ú_Test_two_random_treesiõ  c                óŽ  € ^2p^p\         P                  P                  R4       \         P                  P                  W4      V n        V P                  V P                  ^R7      V n        \         P                  P                  W4      V n        V P                  V P                  ^R7      V n        RV n	        ^ V n
        RV n        R# )é2   r„   r…   r  r‡   N)rH   rˆ   r‰   rŠ   r‰  r   r†  rŠ  rˆ  r3   rN   r6   r  s   &  r   rŒ   Ú#_Test_two_random_trees.setup_methodø  s�   € ØˆØˆÜ
�	‰	�‰�tÔÜ—Y‘Y—_‘_ QÓ*ˆŒ
Ø×"Ñ" 4§:¡:¸Ð"Ó:ˆŒÜ—Y‘Y—_‘_ QÓ*ˆŒ
Ø×"Ñ" 4§:¡:¸Ð"Ó:ˆŒØˆŒØˆŒØˆŽr   ©r†  rˆ  r6   r‰  rŠ  rN   r3   Nr�   r~   s   @r   r‘  r‘  õ  s   ø‡ € ÷
ð 
r   r‘  c                   ó,   a € ] tR tRt o R tR tRtV tR# )Ú_Test_two_random_trees_periodici  c                ó   € \        WVR 4      # rÿ   r!  r;   s   &&&&r   r=   Ú(_Test_two_random_trees_periodic.distance  r#  r   c                óš  € ^2p^p\         P                  P                  R4       \         P                  P                  W3R7      V n        V P                  V P                  ^RR7      V n        \         P                  P                  W3R7      V n        V P                  V P                  ^RR7      V n        RV n	        ^ V n
        RV n        R# )r“  r„   r&  rÝ   r(  r  r‡   N)rH   rˆ   r‰   r)  r‰  r   r†  rŠ  rˆ  r3   rN   r6   r  s   &  r   rŒ   Ú,_Test_two_random_trees_periodic.setup_method
  s¡   € ØˆØˆÜ
�	‰	�‰�tÔÜ—Y‘Y×&Ñ&¨Q¨FÐ&Ó3ˆŒ
Ø×"Ñ" 4§:¡:¸À3Ð"ÓGˆŒÜ—Y‘Y×&Ñ&¨Q¨FÐ&Ó3ˆŒ
Ø×"Ñ" 4§:¡:¸À3Ð"ÓGˆŒØˆŒØˆŒØˆŽr   r•  N)r$   ry   rz   r{   r=   rŒ   r|   r}   r~   s   @r   r—  r—    s   ø‡ € ò*÷
ð 
r   r—  c                   ó2   a a€ ] tR tRt oV 3R ltRtVtV ;t# )Ú_Test_two_random_trees_fari  c                ó2   <€ \         SV `  4        ^V n        R# ©rR   NrG  r•   s   &€r   rŒ   Ú'_Test_two_random_trees_far.setup_method  rT  r   rJ  r˜   rš   s   @@r   r�  r�    rV  r   r�  c                   ó2   a a€ ] tR tRt oV 3R ltRtVtV ;t# )Ú#_Test_two_random_trees_far_periodici  c                ó2   <€ \         SV `  4        ^V n        R# rŸ  rG  r•   s   &€r   rŒ   Ú0_Test_two_random_trees_far_periodic.setup_method"  rT  r   rJ  r˜   rš   s   @@r   r¢  r¢    rV  r   r¢  c                   ó2   a a€ ] tR tRt oV 3R ltRtVtV ;t# )Ú_Test_two_random_trees_linfi'  c                óN   <€ \         SV `  4        \        P                  V n        R # r   rZ  r•   s   &€r   rŒ   Ú(_Test_two_random_trees_linf.setup_method*  r\  r   rU  r˜   rš   s   @@r   r¦  r¦  '  r]  r   r¦  c                   ó2   a a€ ] tR tRt oV 3R ltRtVtV ;t# )Ú$_Test_two_random_trees_linf_periodici/  c                óN   <€ \         SV `  4        \        P                  V n        R # r   rZ  r•   s   &€r   rŒ   Ú1_Test_two_random_trees_linf_periodic.setup_method2  r\  r   rU  r˜   rš   s   @@r   rª  rª  /  r]  r   rª  c                   óP   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V tR# )ÚTest_rectanglei7  c                ó0   € \        ^ ^ .^^.4      V n        R# )r   N)r   Úrectr‹   s   &r   rŒ   ÚTest_rectangle.setup_method9  s   € Ü˜q !˜f q¨! fÓ-ˆŽ	r   c                óT   € \        V P                  P                  R R .4      ^ 4       R# ©r/   N©r   r°  Úmin_distance_pointr‹   s   &r   Útest_min_insideÚTest_rectangle.test_min_inside<  s   € Ü˜DŸI™I×8Ñ8¸#¸s¸ÓDÀaÖHr   c                óT   € \        V P                  P                  R R.4      R 4       R# ©r/   ç      ø?Nr´  r‹   s   &r   Útest_min_one_sideÚ Test_rectangle.test_min_one_side?  s   € Ü˜DŸI™I×8Ñ8¸#¸s¸ÓDÀcÖJr   c                ó|   € \        V P                  P                  ^^.4      \        P                  ! ^4      4       R# rŸ  )r   r°  rµ  rH   Úsqrtr‹   s   &r   Útest_min_two_sidesÚ!Test_rectangle.test_min_two_sidesB  s'   € Ü˜DŸI™I×8Ñ8¸!¸Q¸Ó@Ä"Ç'Â'È!Ã*ÖMr   c                óŠ   € \        V P                  P                  R R .4      ^\        P                  ! ^4      ,          4       R# r³  ©r   r°  Úmax_distance_pointrH   r¾  r‹   s   &r   Útest_max_insideÚTest_rectangle.test_max_insideE  s,   € Ü˜DŸI™I×8Ñ8¸#¸s¸ÓDÀaÌÏÊÐPQË
ÅlÖSr   c                ó~   € \        V P                  P                  R R.4      \        P                  ! R R4      4       R# r¹  )r   r°  rÃ  rH   Úhypotr‹   s   &r   Útest_max_one_sideÚ Test_rectangle.test_max_one_sideH  s-   € Ü˜DŸI™I×8Ñ8¸#¸s¸ÓDÜŸHšH S¨#Ó.ö	0r   c                óŠ   € \        V P                  P                  ^^.4      ^\        P                  ! ^4      ,          4       R# rŸ  rÂ  r‹   s   &r   Útest_max_two_sidesÚ!Test_rectangle.test_max_two_sidesL  s+   € Ü˜DŸI™I×8Ñ8¸!¸Q¸Ó@À!ÄBÇGÂGÈAÃJÅ,ÖOr   c                ó  € V P                   P                  ^ R4      w  r\        VP                  R^.4       \        VP                  ^ ^ .4       \        VP                  ^^.4       \        VP                  R^ .4       R# )r   rr   N)r°  Úsplitr   ÚmaxesÚmins)r<   ÚlessÚgreaters   &  r   Ú
test_splitÚTest_rectangle.test_splitO  s`   € ØŸ	™	Ÿ™¨¨3Ó/‰ˆÜ˜4Ÿ:™:¨¨Q xÔ0Ü˜4Ÿ9™9 q¨! fÔ-Ü˜7Ÿ=™=¨1¨a¨&Ô1Ü˜7Ÿ<™<¨#¨q¨Ö2r   )r°  N)r$   ry   rz   r{   rŒ   r¶  r»  r¿  rÄ  rÈ  rË  rÓ  r|   r}   r~   s   @r   r®  r®  7  s7   ø‡ € ò.òIòKòNòTò0òP÷3ð 3r   r®  c            	      óˆ  € \         P                  ! R R7      ;_uu_ 4        \        \        ^ ^ .^^.^4      \        P
                  ! ^4      4       RRR4       \         P                  ! R R7      ;_uu_ 4        \        \        ^ ^ .^^.^4      ^4       RRR4       R#   + '       g   i     LU; i  + '       g   i     R# ; i©ú1.20.0rÞ   N)rà   Údeprecated_callr   r   rH   r¾  r   rx   r   r   Útest_distance_l2rÙ  W  s„   € Ü	×	Ò	 h×	/Ö	/ÜÔ.°°1¨v¸¸1°v¸qÓAÄ2Ç7Â7È1Ã:ÔN÷ 
0ä	×	Ò	 h×	/Ö	/ÜÔ0°!°Q°¸!¸Q¸ÀÓCÀQÔG÷ 
0Ñ	/÷ 
0×	/úç	/×	/Ð	/ús    0BÁ7B0ÂB-	Â0C	c            	      ó´   € \         P                  ! R R7      ;_uu_ 4        \        \        ^ ^ .^^.^4      ^4       RRR4       R#   + '       g   i     R# ; irÖ  )rà   rØ  r   r   rx   r   r   Útest_distance_l1rÛ  ^  s>   € Ü	×	Ò	 h×	/Ö	/ÜÔ.°°1¨v¸¸1°v¸qÓAÀ1ÔE÷ 
0×	/×	/Ò	/ús    AÁA	c            	      óÐ   € \         P                  ! R R7      ;_uu_ 4        \        \        ^ ^ .^^.\        P
                  4      ^4       RRR4       R#   + '       g   i     R# ; irÖ  )rà   rØ  r   r   rH   rc   rx   r   r   Útest_distance_linfrÝ  c  sB   € Ü	×	Ò	 h×	/Ö	/ÜÔ.°°1¨v¸¸1°v¼r¿v¹vÓFÈÔJ÷ 
0×	/×	/Ò	/ús    *AÁA%	c                  ó~  € \         P                  P                  R 4       \         P                  P                  ^
^^4      p \         P                  P                  ^^^4      p\        P
                  ! RR7      ;_uu_ 4        \        \        W4      P                  R4       RRR4       R#   + '       g   i     R# ; i)r„   r×  rÞ   N)r“   é   )	rH   rˆ   r‰   rŠ   rà   rØ  r   r   rÈ   )rE   Úys     r   Útest_distance_vectorizationrá  h  st   € Ü‡I�I‡N�N�4ÔÜ
�	‰	�‰˜˜A˜qÓ!€AÜ
�	‰	�‰˜˜1˜aÓ €AÜ	×	Ò	 h×	/Ö	/ÜÔ'¨Ó-×3Ñ3°WÔ=÷ 
0×	/×	/Ò	/ús   Â B+Â+B<	c                   ó2   a € ] tR tRt o R tR tR tRtV tR# )Úcount_neighbors_consistencyip  c                ó  € R p\        V P                  P                  V P                  V4      \        P
                  ! V P                  P                  V P                  V4       Uu. uF  p\        V4      NK  	  up4      4       R# u upi )r‡   N©r   r†  Úcount_neighborsrˆ  rH   rI   r‡  Úlen©r<   rc  r	  s   &  r   Útest_one_radiusÚ+count_neighbors_consistency.test_one_radiusq  s`   € ØˆÜ�T—W‘W×,Ñ,¨T¯W©W°aÓ8Ü—’¨¯©×(?Ñ(?ÀÇÁÈÔ(KÓLÑ(K 1œ˜AžÑ(KÑLÓMö	OùÚLó   Á%Bc                ó  € R p\        V P                  P                  V P                  V4      \        P
                  ! V P                  P                  V P                  V4       Uu. uF  p\        V4      NK  	  up4      4       R# u upi )rï   Nrå  rè  s   &  r   Útest_large_radiusÚ-count_neighbors_consistency.test_large_radiusv  s`   € ØˆÜ�T—W‘W×,Ñ,¨T¯W©W°aÓ8Ü—’¨¯©×(?Ñ(?ÀÇÁÈÔ(KÓLÑ(K 1œ˜AžÑ(KÑLÓMö	OùÚLrë  c                óî  € \         P                  ! \         P                  ! \         P                  ! R 4      \         P                  ! ^
4      ^4      4      pV P                  P                  V P                  V4      p\        \         P                  ! \         P                  ! V4      ^ 8¬  4      4       \        W4       F5  w  r4\        V P                  P                  V P                  V4      V4       K7  	  R# )ç{®Gáz„?N)rH   ÚexpÚlinspaceÚlogr†  ræ  rˆ  r   rK   r5   rb   r   )r<   Úrsr~  rc  Úresults   &    r   Útest_multiple_radiusÚ0count_neighbors_consistency.test_multiple_radius{  s–   € Ü�VŠV”B—K’K¤§¢ t£¬b¯fªf°R«j¸!Ó<Ó=ˆØ—'‘'×)Ñ)¨$¯'©'°2Ó6ˆÜ”—’”r—w’w˜wÓ'¨1Ñ,Ó-Ô.Ü˜RÖ)‰IˆAÜ˜Ÿ™×0Ñ0°·±¸!Ó<¸fÖEó *r   rx   N)	r$   ry   rz   r{   ré  rí  rö  r|   r}   r~   s   @r   rã  rã  p  s   ø‡ € òOò
O÷
Fð Fr   rã  c                   ó&   a € ] tR tRt o R tRtV tR# )Ú_Test_count_neighborsi‚  c                ó   € ^2p^p\         P                  P                  R4       V P                  \         P                  P	                  W4      ^R7      V n        V P                  \         P                  P	                  W4      ^R7      V n        R# )r“  r„   r…   N)rH   rˆ   r‰   r   rŠ   r†  rˆ  r  s   &  r   rŒ   Ú"_Test_count_neighbors.setup_method„  sd   € ØˆØˆÜ
�	‰	�‰�tÔØ×"Ñ"¤2§9¡9§?¡?°1Ó#8À1Ð"ÓEˆŒØ×"Ñ"¤2§9¡9§?¡?°1Ó#8À1Ð"ÓEˆŽr   )r†  rˆ  Nr�   r~   s   @r   rù  rù  ‚  s   ø‡ € ÷Fð Fr   rù  c                   óD   a € ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
Ú"sparse_distance_matrix_consistencyiŒ  c                ó   € \        WV4      # r   r0   r;   s   &&&&r   r=   Ú+sparse_distance_matrix_consistency.distanceŽ  r?   r   c           
     ó2  € V P                   P                  V P                  V P                  R R7      pV P                   P	                  V P                  V P                  4      p\        V4       Fu  w  r4V Fj  p\        WV3,          V P                  V P                   P                  V,          V P                  P                  V,          V P                  4      ^R7       Kl  	  Kw  	  VP                  4        F  w  w  r5p\        WRV,          9   4       K  	  R# ©r   ©Úoutput_type©ÚdecimalN)r†  Úsparse_distance_matrixrˆ  rc  r‡  r  r   r=   rJ   r3   Úitemsr   )r<   ÚMrc  rM   r	  r‹  r6   s   &      r   Útest_consistency_with_neighborsÚBsparse_distance_matrix_consistency.test_consistency_with_neighbors‘  sÃ   € Ø�G‰G×*Ñ*¨4¯7©7°D·F±FÈÐ*ÓTˆØ�G‰G×#Ñ# D§G¡G¨T¯V©VÓ4ˆÜ˜a–L‰DˆAÛ�Ü#Ø˜�d•GØ—M‘M $§'¡'§,¡,¨q¥/°4·7±7·<±<Àµ?ÀDÇFÁFÓKØ÷ó ñ !ð Ÿ7™7ž9‰K‰Vˆa�QÜ�A˜1�‘IÖó %r   c                ój   € V P                   P                  V P                   V P                  R R7       R# )r   r  N)r†  r  rc  r‹   s   &r   Útest_zero_distanceÚ5sparse_distance_matrix_consistency.test_zero_distancež  s#   € à�‰×&Ñ& t§w¡w°·±ÀKÐ&ÖPr   c                ó,  € V P                   P                  V P                  V P                  R R7      p\	        V P                   P
                  V P                  P
                  4      p^ W"V P                  8„  &   \        VP                  4       V^R7       R# r  )r†  r  rˆ  rc  r   rJ   r   Útoarray)r<   ÚM1Úexpecteds   &  r   Útest_consistencyÚ3sparse_distance_matrix_consistency.test_consistency¢  sd   € à�W‰W×+Ñ+¨D¯G©G°T·V±VÈÐ+ÓUˆÜ˜Ÿ™Ÿ™ t§w¡w§|¡|Ó4ˆØ&'ˆ˜DŸF™FÑ"Ñ#Ü! "§*¡*£,°À"×Er   c                óR  € \         P                  P                  ^ 4       \         P                  ! \         P                  P	                  ^^4      \
        R7      pV P                  VRRR7      pVP                  V^RR7      P                  4       p\        W3P                  ^R7       R# )r   r  F©Úbalanced_treeÚcompact_nodesr   r  r  N)rH   rˆ   r‰   r¦   rŠ   rê   r   r  r  r   rð   )r<   Útoo_manyr*   r6   s   &   r   Ú#test_against_logic_error_regressionÚFsparse_distance_matrix_consistency.test_against_logic_error_regression©  s|   € ä
�	‰	�‰�qÔÜ—8’8œBŸI™IŸO™O¨B°Ó2¼#Ô>ˆØ×ÑØ E¸ð  ó @ˆà×'Ñ'¨¨a¸[Ð'ÓI×QÑQÓSˆÜ! !§S¡S°"×5r   c                ó  € \         P                  ! V P                  V P                  34      p\        V P                  4       Fh  p\        V P                  4       FL  pV P                  VR 3,          V P
                  VR 3,          ,
          p\         P                  ! WD4      WV3&   KN  	  Kj  	  \         P                  ! V4      pRWV P                  8„  &   \         P                  ! V P                  V P                  34      pV P                  P                  V P                  V P                  RR7      pVP                  4        F  w  r#WbV3,          WRV3&   K  	  \        W^R7       \         P                  ! V P                  V P                  34      pV P                  P                  V P                  V P                  RR7      p\        VP                  ^ ,          4       F8  pVR,          V,          pVR,          V,          pVR,          V,          pWEW#3&   K:  	  \        W^R7       V P                  P                  V P                  V P                  R	R7      p\        WP                  4       ^R7       \!        V\"        4      '       g   Q hV P                  P                  V P                  V P                  R
R7      p\        WP                  4       ^R7       \!        V\$        4      '       g   Q hV P                  P                  V P                  V P                  RR7      p\        WP                  4       ^R7       \!        V\&        4      '       g   Q hV P                  P                  V P                  V P                  RR7      p\        WP                  4       ^R7       \!        V\(        4      '       g   Q hV P                  P                  V P                  V P                  4      p\!        V\$        4      '       g   Q hR# )rB   rý   Údictr  r  ÚndarrayrM   r‹  Úvr   r   r   r   N)rH   rÇ   ra   rj  r‰  rŠ  Údotr¾  rc  r†  r  rˆ  Úkeysr   rÈ   r  rº   r   r   r   r   )r<   ÚrefrM   r‹  r  r  rc  r\   s   &       r   Útest_ckdtree_return_typesÚ<sparse_distance_matrix_consistency.test_ckdtree_return_types²  sõ  € ä�hŠh˜Ÿ™ §¡Ð'Ó(ˆÜ�t—v‘v–ˆAÜ˜4Ÿ6™6–]�Ø—J‘J˜q !˜tÕ$ t§z¡z°!°Q°$Õ'7Õ7�ÜŸFšF 1›L��q�D“	ó #ñ ô �gŠg�c‹lˆØˆ�$—&‘&‰LÑä�xŠx˜Ÿ™ §¡Ð(Ó)ˆØ�G‰G×*Ñ*¨4¯7©7°D·F±FÈÐ*ÓOˆØ—F‘F–H‰DˆAØ˜q˜6�ˆD�A�‹Jñ ä! #°RÕ8ä�xŠx˜Ÿ™ §¡Ð(Ó)ˆØ�G‰G×*Ñ*¨4¯7©7°D·F±FØ!ð +ó #ˆä�q—w‘w˜q•zÖ"ˆAØ�#•�q•	ˆAØ�#•�q•	ˆAØ�#•�q•	ˆAØ��‹Jñ	 #ô
 	" #°RÕ8à�G‰G×*Ñ*¨4¯7©7°D·F±FØ#ð +ó %ˆä! #§y¡y£{¸BÕ?Ü˜!œY×'Ò'Ð'Ð'à�G‰G×*Ñ*¨4¯7©7°D·F±FØ$ð +ó &ˆä! #§y¡y£{¸BÕ?Ü˜!œZ×(Ò(Ð(Ð(à�G‰G×*Ñ*¨4¯7©7°D·F±FØ#ð +ó %ˆä! #§y¡y£{¸BÕ?Ü˜!œY×'Ò'Ð'Ð'à�G‰G×*Ñ*¨4¯7©7°D·F±FØ$ð +ó &ˆä! #§y¡y£{¸BÕ?Ü˜!œZ×(Ò(Ð(Ð(à�G‰G×*Ñ*¨4¯7©7°D·F±FÓ;ˆÜ˜!œZ×(Ò(Ð(Ò(r   rx   N)r$   ry   rz   r{   r=   r	  r  r  r  r"  r|   r}   r~   s   @r   rý  rý  Œ  s*   ø‡ € ò"òòQòFò6÷/)ð /)r   rý  c                   ó&   a € ] tR tRt o R tRtV tR# )Ú_Test_sparse_distance_matrixiä  c                ót  € ^2p^p\         P                  P                  R4       \         P                  P                  W4      p\         P                  P                  W4      pV P	                  V^R7      V n        V P	                  V^R7      V n        RV n        ^V n        W0n	        W@n
        Wn        W n        R# )r“  r„   r…   r/   N)rH   rˆ   r‰   rŠ   r   r†  rˆ  rc  r3   r‰  rŠ  ra   rS   )r<   ra   rS   r‰  rŠ  s   &    r   rŒ   Ú)_Test_sparse_distance_matrix.setup_methodæ  s�   € ØˆØˆÜ
�	‰	�‰�tÔÜ—	‘	—‘ Ó%ˆÜ—	‘	—‘ Ó%ˆØ×"Ñ" 5°1Ð"Ó5ˆŒØ×"Ñ" 5°1Ð"Ó5ˆŒØˆŒØˆŒØŒ
ØŒ
ØŒØŽr   )r†  rˆ  r‰  rŠ  rS   ra   r3   rc  Nr�   r~   s   @r   r%  r%  ä  s   ø‡ € ÷ð r   r%  c                  óš  € ^
p ^p^p\         P                  P                  R4       \         P                  P                  W4      p\         P                  P                  W4      p\        P
                  ! RR7      ;_uu_ 4        \        W44      pRRR4       \        XP                  W34       \        V 4       Fg  p\        V4       FU  p\        P
                  ! RR7      ;_uu_ 4        \        \        W6,          WG,          4      WVV3,          4       RRR4       KW  	  Ki  	  R#   + '       g   i     LŸ; i  + '       g   i     Kƒ  ; i)r“   r„   r×  rÞ   N)rH   rˆ   r‰   rŠ   rà   rØ  r   r   rÈ   rj  r   r   )rS   ra   r\   ÚxsÚysrò   rM   r‹  s           r   Útest_distance_matrixr+  ö  sÛ   € Ø
€AØ
€AØ	€AÜ‡I�I‡N�N�4ÔÜ	�‰�‰˜Ó	€BÜ	�‰�‰˜Ó	€BÜ	×	Ò	 h×	/Ö	/Ü˜RÓ$ˆ÷ 
0ä�—‘˜A˜6Ô"Ü�1ŽXˆÜ�q–ˆAÜ×'Ò'¨h×7Ö7Ü#Ô$6°rµu¸b½eÓ$DÀbÈAÈÅhÔO÷ 8Ñ7ó ó ÷ 
0×	/ú÷
 8×7Ð7ús   ÂD&Ã)+D9	Ä&D6	Ä9E
c                  ó   € ^
p ^p^p\         P                  P                  R4       \         P                  P                  W4      p\         P                  P                  W4      p\        P
                  ! RR7      ;_uu_ 4        \        W44      pRRR4       \        P
                  ! RR7      ;_uu_ 4        \        W4^R7      pRRR4       \        XX4       R#   + '       g   i     LS; i  + '       g   i     L1; i)r“   r„   r×  rÞ   N)Ú	threshold)rH   rˆ   r‰   rŠ   rà   rØ  r   r   )rS   ra   r\   r)  r*  rò   Údsls          r   Útest_distance_matrix_loopingr/    s¡   € Ø
€AØ
€AØ	€AÜ‡I�I‡N�N�4ÔÜ	�‰�‰˜Ó	€BÜ	�‰�‰˜Ó	€BÜ	×	Ò	 h×	/Ö	/Ü˜RÓ$ˆ÷ 
0ä	×	Ò	 h×	/Ö	/Ü˜b°Ô2ˆ÷ 
0ä��SÖ÷	 
0×	/úç	/×	/ús   ÂCÂ6C-ÃC*	Ã-C=	c                 óâ   € V P                  W4      p\        4       p\        V4       F(  w  rEV F  pWF8  g   K  VP                  WF34       K  	  K*  	  \	        W0P                  V4      8H  4       R # r   )r‡  Úsetr  Úaddr   Úquery_pairs)rð   r6   rc  rÒ   rM   r	  r‹  s   &&     r   Úcheck_onetree_queryr4    s[   € Ø	×Ñ˜!Ó€AÜ‹€AÜ˜!–‰ˆÛˆAØŽuØ—‘�q�f–ó ñ ô
 ˆA—‘˜qÓ!Ñ!Ö"r   c                 óÄ  € \         P                  P                  ^ 4       ^2p^p\         P                  P                  W4      pV ! V4      p\	        VR4       \         P                  P                  ^V,          V4      pVRV;;; R,          uuu% W1^V,          ;;; ^,          uuu% V ! V4      p\	        VR4       \	        VR4       \	        VR4       \	        VR4       R# )r   rr   Ngü©ñÒMbP?gñhãˆµøä>g�íµ ÷Æ°>)rH   rˆ   r‰   rŠ   r4  )r   ra   r\   rk  rð   s   &    r   Útest_onetree_queryr6    s®   € Ü‡I�I‡N�N�1ÔØ
€AØ	€AÜ�Y‰Y�_‰_˜QÓ"€FÙ�FÓ€AÜ˜˜3Ôä�Y‰Y�_‰_˜Q˜q�S !Ó$€FØ
ˆ2ˆAƒJ�%ÕƒJØ
ˆQˆq�SƒM�QÕƒMÙ�FÓ€AÜ˜˜3ÔÜ˜˜5Ô!Ü˜˜7Ô#Ü˜˜4Ö r   c                 ób   € V ! ^ ^..4      p\        VP                  R4      \        4       4       R# )r   r/   N)r   r3  r1  )r   r*   s   & r   Útest_query_pairs_single_noder8  0  s)   € Ù˜˜A˜�xÓ €DÜ�×!Ñ! #Ó&¬«Ö.r   c           	      óx  € \         P                  P                  ^ 4       ^2p^pRpV^,          p\         P                  P                  W4      pV ! V4      p\	        4       p\        V4       Fe  p\        V^,           V4       FK  p	WXR3,          WYR3,          ,
          p
\         P                  ! Wª4      V8:  g   K9  VP                  W‰34       KM  	  Kg  	  \        V4      pVP                  V4      p\        V4      p\        W½4       VP                  VRR7      p\        V4      p\        W½4       \	        4       pVP                  VRR7      p\        VP                  ^ ,          4       F8  pVP                  \        Wè^ 3,          4      \        Wè^3,          4      34       K:  	  \        V4      p\        W¿4       R# )r   rr   rB   r1  r  r  N)rH   rˆ   r‰   rŠ   r1  rj  r  r2  Úsortedr3  r   rÈ   rê   )r   ra   r\   rc  Úr2rk  rð   ÚbruterM   r‹  r  Úl0rÒ   rl  Úarrrm  s   &               r   Útest_kdtree_query_pairsr?  5  sV  € Ü‡I�I‡N�N�1ÔØ
€AØ	€AØ€AØ	
ˆA�€BÜ�Y‰Y�_‰_˜QÓ"€FÙ�FÓ€Aä‹E€EÜ�1ŽXˆÜ�q˜•s˜A–ˆAØ˜!�t•˜v¨ d�|Õ+ˆAÜ�vŠv�a‹|˜rÖ!Ø—	‘	˜1˜&Ö!ó ñ ô
 
�‹€Bà	�‰�aÓ€AÜ	�‹€BÜ�rÔà	�‰�a UˆÓ+€AÜ	�‹€BÜ�rÔä‹€AØ
�-‰-˜ yˆ-Ó
1€CÜ�3—9‘9˜Q•<Ö ˆØ	�‰Œs�3˜!�t•9‹~œs 3¨! t¥9›~Ð.Ö/ñ !ä	�‹€BÜ�rÖr   c                 óp  € \         P                  ! ^4      p\         P                  ! ^ ^V,          ^4      p\         P                  ! ^ ^V,          ^4      pV UUu. uF  qC F  qTV3NK  	  K  	  pppV ! V4      pVP                  VRR7      pVP                  VR,          R7      p	\	        W˜4       R# u uppi )rR   rr   )rc  rN   ç)\�Âõ(ð?©rc  N)rH   r¾  rò  r3  r   )
r   ÚspacingÚx_rangeÚy_rangeÚxiÚyiÚxy_arrayr*   Ú	pairs_epsÚpairss
   &         r   Útest_query_pairs_epsrK  V  sœ   € Ü�gŠg�a‹j€Gä�kŠk˜!˜Q �[¨!Ó,€GÜ�kŠk˜!˜Q �[¨!Ó,€GÙ#*Ô=¡7˜R²W¨r�R“±W‘¡7€HÑ=Ù�xÓ €DØ× Ñ  7°Ð Ó3€Ià×Ñ˜w¨�~ÐÓ.€Eä�Ö"ùó >s   ÁB2c           	      ó²  € \         P                  R,          w  r\        \        VP	                  4       VP	                  4       4      4      pV ! V4      p\        \        . RO4      \        VP                  R^4      4      4       \         P                  ! V\        R7      pV ! V4      p\        \        . RO4      \        VP                  R^4      4      4       R# )ºr   rÄ   Nr  N)rM  rM  )rÄ   é   é	   é   )rR   r   )
rH   Úmgridrb  rb   Úravelr   r:  r  Úasarrayr»   )r   rE   rà  rk  r*   s   &    r   Útest_ball_point_intsrT  d  s›   € ä�8‰8�HÕ�D€AÜ”#�a—g‘g“i §¡£Ó+Ó,€FÙ�vÓ€DÜ”šÓ&Ü˜×-Ñ-¨f°aÓ8Ó9ô;ä�ZŠZ˜¤eÔ,€FÙ�vÓ€DÜ”šÓ&Ü˜×-Ñ-¨f°aÓ8Ó9ö;r   c            	      óº   € \        ^4       U u. uF  p \        P                  ! 4       NK  	  pp \        \	        V4      \	        VRRR1,          4      4       R# u up i )rÅ   Nr  )rj  r   Únoder   r:  )r#   Únodess     r   Útest_kdtree_comparisonsrX  q  s@   € ä$)¨!¤HÓ-¡H˜qŒV�[Š[Ž]¡H€EÐ-Ü”˜“¤ u©T¨r¨T¥{Ó 3Ö4ùò .s   ŽAc                 óÚ  € \         P                  P                  ^ 4       Rp^p\         P                  P                  W4      pV ! V4      P	                  V^R7      R,          pV ! VRR7      P	                  V^R7      R,          pV ! VRR7      P	                  V^R7      R,          pV ! VRRR7      P	                  V^R7      R,          p\        WE4       \        WF4       \        WG4       R# )	r   rg  rÏ   F)r  )r  )r  r  Nr  )rH   rˆ   r‰   rŠ   rG   r   )r   ra   r\   rk  r†  rˆ  ÚT3ÚT4s   &       r   Útest_kdtree_build_modesr\  w  sÎ   € ä‡I�I‡N�N�1ÔØ€AØ	€AÜ�Y‰Y�_‰_˜QÓ"€FÙ	�VÓ	×	"Ñ	" 6¨QÐ	"Ó	/°Õ	3€BÙ	�V¨5Ô	1×	7Ñ	7¸À!Ð	7Ó	DÀRÕ	H€BÙ	�V¨5Ô	1×	7Ñ	7¸À!Ð	7Ó	DÀRÕ	H€BÙ	�V¨5Ø#(ô
*ß*/©%°¸!¨%Ó*<¸Rõ
A€Bä�rÔÜ�rÔÜ�rÖr   c                 ód  € ^ RI p\        P                  P                  ^ 4       ^2p^p\        P                  P	                  W#4      pV ! V4      pVP                  V4      pVP                  V4      pVP                  V^R7      R,          pVP                  V^R7      R,          p\        WW4       R# )r   NrÏ   r  )	ÚpicklerH   rˆ   r‰   rŠ   ÚdumpsÚloadsrG   r   ©r   r^  ra   r\   rk  r†  Útmprˆ  s   &       r   Útest_kdtree_picklerc  †  s�   € ãÜ‡I�I‡N�N�1ÔØ
€AØ	€AÜ�Y‰Y�_‰_˜QÓ"€FÙ	�VÓ	€BØ
�,‰,�rÓ
€CØ	�‰�cÓ	€BØ	�‰�&˜AˆÓ	˜rÕ	"€BØ	�‰�&˜AˆÓ	˜rÕ	"€BÜ�rÖr   c                 ól  € ^ RI p\        P                  P                  ^ 4       ^2p^p\        P                  P	                  W#3R7      pV ! VRR7      pVP                  V4      pVP                  V4      pVP                  V^R7      R,          pVP                  V^R7      R,          p\        WW4       R# )r   Nr&  rÝ   ©r4   rÏ   r  )	r^  rH   rˆ   r‰   r)  r_  r`  rG   r   ra  s   &       r   Útest_kdtree_pickle_boxsizerf  ”  s–   € ãÜ‡I�I‡N�N�1ÔØ
€AØ	€AÜ�Y‰Y×Ñ Q FÐÓ+€FÙ	�V SÔ	)€BØ
�,‰,�rÓ
€CØ	�‰�cÓ	€BØ	�‰�&˜AˆÓ	˜rÕ	"€BØ	�‰�&˜AˆÓ	˜rÕ	"€BÜ�rÖr   c                 ó€  € \         P                  P                  ^ 4       Rp^p\         P                  P                  W4      pV ! VRR7      pVP	                  4       pVP                  V^R7      R,          p\         P                  P                  W4      VR&   VP                  V^R7      R,          p\        Wg4       R# )r   rg  T)Ú	copy_datarÏ   .Nr  )rH   rˆ   r‰   rŠ   ÚcopyrG   r   )r   ra   r\   rk  rð   rô   r†  rˆ  s   &       r   Útest_kdtree_copy_datarj  ¢  s‘   € ô ‡I�I‡N�N�1ÔØ€AØ	€AÜ�Y‰Y�_‰_˜QÓ"€FÙ�F dÔ+€AØ�‰‹€AØ	
�‰��aˆ‹˜Õ	€BÜ—)‘)—/‘/ !Ó'€Fˆ3�KØ	
�‰��aˆ‹˜Õ	€BÜ�rÖr   c                 ó@  € \         P                  P                  ^ 4       Rp^p\         P                  P                  W#4      pV ! V4      pVP	                  V^^@R7      R
,          pVP	                  V^R
R7      R
,          pVP	                  V^R7      R
,          p\        Wg4       \        Wh4       VP                  \        RR 4       \        P                  ! \        RR7      ;_uu_ 4        VP	                  V^R
R7       R	R	R	4       R	#   + '       g   i     R	# ; i)r   rg  )r\   ri  rÏ   Ú	cpu_countc                  ó   € R # r   rx   rx   r   r   Ú<lambda>Ú'test_ckdtree_parallel.<locals>.<lambda>¾  s   € ±r   zCannot determine therÞ   rh  Nr  )rH   rˆ   r‰   rŠ   rG   r   ÚsetattrÚosrà   r	   ÚNotImplementedError)	r   Úmonkeypatchra   r\   rk  rð   r†  rˆ  rZ  s	   &&       r   Útest_ckdtree_parallelrt  ±  sØ   € ä‡I�I‡N�N�1ÔØ€AØ	€AÜ�Y‰Y�_‰_˜QÓ"€FÙ�FÓ€AØ	
�‰�˜1 bˆÓ	)¨"Õ	-€BØ	
�‰�˜1 bˆÓ	)¨"Õ	-€BØ	
�‰�˜1ˆÓ	˜bÕ	!€BÜ�rÔÜ�rÔà×Ñœ˜K©Ô6Ü	�ŠÔ*Ð2H×	IÖ	IØ	�‰�˜ 2ˆÔ&÷ 
J×	I×	IÒ	Iús   Ã-DÄD	c                  óº  aa€ \         P                  P                  ^ 4       ^dp ^p\         P                  P                  W4      p\	        V4      oVV3R loS! SP
                  4       SP
                  p \        \         P                  ! V P                  4      \        ^d4      4       \        SP                  V P                  R3,          V P                  4       R# )r   c                 ób  <€ \        \        V \        4      4       V P                  R8X  dd   \        V P                  RJ 4       \        V P
                  RJ 4       \        V P                  P                  ^ ,          SP                  8*  4       R# S! V P                  4       S! V P
                  4       V P                  P                  RV P                  3,          pV P
                  P                  RV P                  3,          p\        VP                  4       VP                  4       8  4       R# )r"   NrB   r  )r   rº   r   Ú	split_dimÚlesserrÒ  ÚindicesrÈ   r†   Údata_pointsÚmaxÚmin)ra   rE   rà  rF   Úrecurse_trees   &  €€r   r}  Ú'test_ckdtree_view.<locals>.recurse_treeÎ  sÇ   ø€ Ü”
˜1œkÓ*Ô+Ø�;‰;˜"ÔÜ�A—H‘H Ð$Ô%Ü�A—I‘I Ð%Ô&Ü�A—I‘I—O‘O AÕ&¨&¯/©/Ñ9Ö:á˜Ÿ™Ô"Ù˜Ÿ™Ô#Ø—‘×$Ñ$ Q¨¯© ^Õ4ˆAØ—	‘	×%Ñ% a¨¯© nÕ5ˆAÜ�A—E‘E“G˜aŸe™e›gÑ%Ö&r   rB   N)rH   rˆ   r‰   rŠ   r   r*   r   ry  ry  rj  rJ   rz  )ra   r\   rk  rF   r}  s      @@r   Útest_ckdtree_viewr  Ã  s�   ù€ ô ‡I�I‡N�N�1ÔØ€AØ	€AÜ�Y‰Y�_‰_˜QÓ"€FÜ�V‹_€Fö'ñ �—‘Ôà�‰€AÜ”r—w’w˜qŸy™yÓ)¬5°«:Ô6ä�v—{‘{ 1§9¡9¨a <Õ0°!·-±-Ö@r   c                 ó`  € ^Èp^p. ROp^p\         P                  P                  R4       \         P                  P                  W3R7      pV ! V^R7      pVP	                  WS4      w  rxVP	                  WT4      w  rš\        Wy4       \        WŠ4       \         P                  ! ^^.4      p^pVP	                  WT4      w  rxVP	                  WS4      w  rš\        W—RV^,
          3,          4       \        W¨RV^,
          3,          4       VP	                  V^4      w  rxVP	                  V^.4      w  rš\        \        VP                  4      ^4       \        \        V	P                  4      ^4       \        V\         P                  ! V	4      4       \        V\         P                  ! V
4      4       R# )éÈ   r„   r&  r…   .N)r"   rR   rÅ   )
rH   rˆ   r‰   r)  rG   r   r¦   rç  rÈ   rR  )r   ra   rS   ÚklistÚkintrJ   rF   rV   rW   Údd1Úii1s   &          r   Útest_kdtree_list_kr†  å  sP  € à€AØ	€AÚ€EØ€Dä‡I�I‡N�N�4ÔÜ�9‰9×Ñ 1 &ÐÓ)€DÙ˜¨Ô*€Fð �\‰\˜$Ó&�F€BØ�|‰|˜DÓ'�H€CÜ�ÔÜ�Ôô �HŠH�a˜�VÓ€EØ€DØ�\‰\˜$Ó%�F€BØ�|‰|˜DÓ(�H€CÜ�˜˜e a�i˜Õ(Ô)Ü�˜˜e a�i˜Õ(Ô)ð �\‰\˜$ Ó"�F€BØ�|‰|˜D 1 #Ó&�H€CÜ”�R—X‘X“ Ô"Ü”�S—Y‘Y“ Ô#Ü�”R—X’X˜c“]Ô#Ü�”R—X’X˜c“]Ö#r   c           	      ó2  € R p^p^p\         P                  P                  R4       \         P                  P                  W3R7      pV ! V^RR7      pV ! V^R7      p^^R\         P                  3 F£  pVP                  WCVR7      w  r‰VP                  VR,           W7R7      w  r«\        WŠ4       \        W›4       VP                  VR,
          W7R7      w  r«\        WŠ4       \        W›4       \        WdVRVR7      w  rÍ\        WŒ4       \        W�4       K¥  	  R	# )
éÐ  r„   r&  rÝ   r(  r…   g      @rU  )r4   r3   N)	rH   rˆ   r‰   r)  rc   rG   r   r   Úsimulate_periodic_box)r   ra   rS   r\   rJ   rF   Úkdtree2r3   rV   rW   r„  r…  Údd2Úii2s   &             r   Útest_kdtree_boxr�    sõ   € ð 	€AØ	€AØ	€AÜ‡I�I‡N�N�4ÔÜ�9‰9×Ñ 1 &ÐÓ)€DÙ˜¨°3Ô7€Fñ ˜$¨Ô+€Gà��CœŸ™Ó ˆØ—‘˜d¨�Ó+‰ˆà—<‘<  s¥
¨A�<Ó3‰ˆÜ˜BÔ$Ü�RÔà—<‘<  s¥
¨A�<Ó3‰ˆÜ˜BÔ$Ü�RÔä(¨¸À3È!ÔL‰ˆÜ˜BÔ$Ü�RÖó !r   c                 óp  € R p^p^p\         P                  P                  R4       \         P                  P                  W3R7      pV ! V^RR7      pV ! V^R7      p^^\         P                  3 FC  pVP                  WCVR7      w  r‰VP                  WCVR7      w  r«\        WŠ4       \        W›4       KE  	  R# )rˆ  r„   r&  rý   r(  r…   rU  N)rH   rˆ   r‰   r)  rc   rG   r   r   )r   ra   rS   r\   rJ   rF   rŠ  r3   rV   rW   r„  r…  s   &           r   Útest_kdtree_box_0boxsizer�  #  s¢   € à€AØ	€AØ	€AÜ‡I�I‡N�N�4ÔÜ�9‰9×Ñ 1 &ÐÓ)€DÙ˜¨°3Ô7€Fñ ˜$¨Ô+€Gà�”B—F‘F‹^ˆØ—‘˜d¨�Ó+‰ˆà—=‘= ¨A�=Ó.‰ˆÜ˜BÔ$Ü�RÖó r   c                 óº  € \         P                  ! ^ ^^
4      P                  R^4      pVR;;,          ^
,          uu&   \        P                  ! \
        4      ;_uu_ 4        V ! V^RR7       RRR4       \        P                  ! \
        4      ;_uu_ 4        V ! V^RR7       RRR4       V ! V^RR7       R#   + '       g   i     LS; i  + '       g   i     L0; i)r   rÝ   r(  Nr  )rB   r"   )rý   r  )r  rý   )rH   rò  rx  rà   r	   rá   ©r   rJ   s   & r   Útest_kdtree_box_upper_boundsr’  6  s�   € Ü�;Š;�q˜!˜RÓ ×(Ñ(¨¨QÓ/€DØˆ‡J�"ÕƒJÜ	�Š”z×	"Õ	"Ù�D 1¨cÕ2÷ 
#ä	�Š”z×	"Õ	"Ù�D 1¨jÕ9÷ 
#ñ �˜q¨*×5÷ 
#×	"úç	"×	"ús   Á B7ÂC
Â7C	Ã
C	c                 ó\   € \         P                  ! R^^
4      p\        \        W^RR7       R# )r"   rÝ   r(  Nr  )rH   rò  Úassert_raisesrá   r‘  s   & r   Útest_kdtree_box_lower_boundsr•  @  s"   € Ü�;Š;�r˜1˜bÓ!€DÜ”*˜k¸!ÀS×Ir   c                 ór  € . p. p\         P                  ! ^VP                  ^,          ,          4      p\         P                  ! \         P                  ! V^.VP                  ^,          ,          4      4      P
                  pVR,
          pV Ft  p	WR,          V,          ,           p
V P                  W¢VR7      w  r¼VP                  R
V4      pVP                  R
V4      pVP                  V4       VP                  V4       Kv  	  \         P                  ! VR
R7      p\         P                  ! VR
R7      p\         P                  ! \        V4      \        V4      V,          .RR.R7      pWmR,          R&   W]R,          R&   VP                  RR7       VR,          RR	V13,          VR,          RR	V13,          3# )rÅ   rÝ   rU  rC   rW   rV   r  rB   )ÚorderNr  )rW   Úi8)rV   Úf8)rH   ÚarangerÈ   r¦   Úunravel_indexrð   rG   rx  Úappendrz  Úemptyrç  ry  )rF   rJ   r\   r4   r3   rV   rW   rE   Únnra   Úimager‹  rŒ  rõ  s   &&&&&         r   r‰  r‰  D  sf  € Ø	€BØ	€BÜ
�	Š	�!�t—z‘z !•}Õ$Ó%€AÜ	�Š”"×"Ò" 1 q c¨D¯J©J°q­MÕ&9Ó:Ó	;×	=Ñ	=€BØ	ˆc�€BÛˆØ˜3•w Õ(Õ(ˆØ—<‘< ¨A�<Ó.‰ˆØ�k‰k˜"˜aÓ ˆØ�k‰k˜"˜aÓ ˆØ
�	‰	�#ŒØ
�	‰	�#Žñ ô 
�Š˜ Ô	$€BÜ	�Š˜ Ô	$€Bä�XŠX”s˜4“y¤# b£'¨A¥+Ð.ØØð7ô €Fð ˆ4…L��OØˆ4…L��OØ
‡K�K�d€KÔØ�$�<˜˜2˜A˜2˜Õ  t¥¨Q°°°¨UÕ 3Ð3Ð3r   c                  ó  €  ^ RI p RRr!\        P                  \	        ^^T,           T4      \	        ^^T,           T4      3,          w  r4\        P
                  ! T4      ^
,          \        P                  ! ^
Y4,          ,           4      \        P                  ! T4      ,          ,           p\        P                  ! T4      pYVR&   Rp\        P                  P                  ^ TP                  \        P                  P                  ^24      ^,           4      pYvP                  T&   \        P                  ! \        P                  ! YG8g  4      4      P                  p	\        P                  ! \        P                  ! YG8H  4      4      P                  p
T P                  T P                   4      P"                  p\%        ^
4       F  p\'        T	4      pK  	  ^ p\%        ^d4       F�  pT P                  T P                   4      P"                  p\'        T	4      pTP)                  T
^^R7      w  ppT P                  T P                   4      P"                  pTT8”  g   Kx  T^,          pKƒ  	  \+        T^
8  4       R#   \         d     R# i ; i)r   Nçš™™™™™©?rB   g     ÀX@)r\   r3   )ÚresourceÚImportErrorrH   rQ  ÚsliceÚsinÚcosÚ
empty_likerˆ   r5  r'  ÚflatÚvstackÚnonzerorð   Ú	getrusageÚRUSAGE_SELFÚ	ru_maxrssrj  r   rG   r   )r¢  ÚdxÚdyrà  rE   ÚzÚz_copyÚFILLVALÚmaskÚigoodÚibadÚmem_userM   r*   Ú	num_leaksr  ÚiqueryÚnew_mem_uses                     r   Útest_ckdtree_memuserº  ]  sá  € ðÛð
 �4ˆÜ�8‰8”E˜!˜Q �V RÓ(Ü˜!˜Q �V RÓ(ð)õ *�D€Aä
�Šˆq‹	�2�œŸš˜r A¥C�xÓ(¬2¯6ª6°!«9Õ4Õ4€AÜ�]Š]˜1Ó€FØˆ1�Ià€GÜ�9‰9×Ñ˜Q §¡¬¯	©	×(9Ñ(9¸"Ó(=ÀÕ(AÓB€DØ‡K�K�ÑÜ�IŠI”b—j’j ¡Ó.Ó/×1Ñ1€EÜ�9Š9”R—Z’Z ¡Ó-Ó.×0Ñ0€DØ× Ñ  ×!5Ñ!5Ó6×@Ñ@€Gä�2ŽYˆÜ�u‹~Šñ ð €IÜ�3ŽZˆØ×$Ñ$ X×%9Ñ%9Ó:×DÑDˆÜ�u‹~ˆØ—z‘z $¨!¨q�zÓ1‰ˆˆfØ×(Ñ(¨×)=Ñ)=Ó>×HÑHˆØ˜Ö Ø˜�NŠIñ ô ˆI˜‰NÖøô? ô âðús   ‚I1 É1J É?J c                 óÞ  € \         P                  ! ^ ^^4      P                  R^4      pV ! V^R7      p\         P                  ! \	        V4      RR7      pVP                  V4      p\        V. RO4       \        \        VP
                  VRR 4       \        ^
4       Fù  pVP                  V\         P                  ! ^ ^
V4      4      pVP                  V\         P                  ! ^ ^
V4      W33R7      pVP                  V\         P                  ! ^ ^
V4      VR3R7      pVP                  V\         P                  ! ^ ^
V4      RV3R7      p	VP                  V\         P                  ! ^ ^
V4      VR7       \        Wg4       \        Wh4       \        Wi4       Kû  	  \        \	        V4      4       F¼  pVP                  4       p
^ W¥&   W^ 8g  ,          pV ! V4      pVP                  V\         P                  ! ^ ^
^d4      Wª3R7      pVP                  V\         P                  ! ^ ^
^d4      4      p\        Wg4       \        \        VP                  V\         P                  ! ^ ^
^d4      V
R7       K¾  	  R# )r   r…   Úf4r  N)Úweightsr  )rÄ   rR   r"   r"   rR   r"   r"   )rH   rò  rx  r  rç  Ú_build_weightsr   r”  rá   rj  ræ  ri  )r   rJ   Útree1r½  ÚnwrM   Úc1Úc2Úc3Úc4Úw1rŠ  Útree2s   &            r   Útest_kdtree_weightsrÇ  ˆ  s   € ä�;Š;�q˜!˜QÓ×'Ñ'¨¨AÓ.€DÙ˜ qÔ)€EÜ�gŠg”c˜$“i tÔ,€Gà	×	Ñ	˜gÓ	&€BÜ�rÒ0Ô1ä”*˜e×2Ñ2°G¸C¸R°LÔAä�2ŽYˆà×"Ñ" 5¬"¯+ª+°a¸¸QÓ*?Ó@ˆØ×"Ñ" 5¬"¯+ª+°a¸¸QÓ*?Ø Ð*ð #ó ,ˆà×"Ñ" 5¬"¯+ª+°a¸¸QÓ*?Ø  $˜ð #ó )ˆà×"Ñ" 5¬"¯+ª+°a¸¸QÓ*?Ø˜w˜ð #ó )ˆà×Ñ˜e¤R§[¢[°°B¸Ó%:Øð 	ô 	!ô 	˜2Ô"Ü˜2Ô"Ü˜2Ö"ñ ô  ”3�t“9Öˆà�\‰\‹^ˆØˆ‰Ø˜1‘W•ˆÙ˜EÓ"ˆà×"Ñ" 5¬"¯+ª+°a¸¸SÓ*AØ˜ð #ó "ˆð ×"Ñ" 5¬"¯+ª+°a¸¸SÓ*AÓBˆä˜2Ô"ô 	”j %×"7Ñ"7Ø”2—;’;˜q " cÓ*°B÷	8ó! r   c                 ó4  € R p^p\         P                  P                  R4       \         P                  P                  W3R7      pV ! V^R7      p. ROp\         P                  ! \        V4      4      pVP                  WE4      pVP                  WERR7      p\        WxP                  4       4       \        \        P                  ! V4      \        P                  ! V4      4       F1  w  ršVP                  WJ4      p\        W\        V	4      ,          4       K3  	  R# )rˆ  r„   r&  r…   F©Ú
cumulativeN)r   rð  rð  g{®Gáz”?r¡  )rH   rˆ   r‰   Únormalrš  rç  ræ  r   Úcumsumrb   Ú	itertoolsÚpermutationsr   rb  )r   ra   rS   rJ   rF   Úr0Úi0Ún0ÚnncrM   rc  s   &          r   Ú&test_kdtree_count_neighbous_multiple_rrÓ  ¶  sÙ   € à€AØ	€AÜ‡I�I‡N�N�4ÔÜ�9‰9×Ñ ! ÐÓ(€DÙ˜¨Ô*€FÚ	$€BÜ	�Š”3�r“7Ó	€BØ	×	Ñ	 Ó	+€BØ
×
 Ñ
  ¸Ð
 Ó
>€CÜ�—Z‘Z“\Ô"ä”I×*Ò*¨2Ó.Ü×*Ò*¨2Ó.ö0‰ˆð ×"Ñ" 6Ó-ˆÜ˜1¤ a£�kÖ*ó	0r   c                 ób  € \         P                  P                  R 4      pVP                  ^
^4      pVP                  ^
^4      pV ! V4      pVP	                  RR.^R7      w  rVVP                  RR.RV,          4      p\        V. 4       VP	                  V^R7      w  rVVP                  4       pVP                  VRV,          4      p\         P                  ! R\        R7      p	V	P                  . 4       \        W—4       V ! V4      p
VP                  V
RV,          4      p	\        ^
. .,          V	4       VP                  V
RV,          4      p	\        V	^ 8H  4       VP                  V
RV,          RR7      p	\        V	\         P                  ! R4      8H  R4       VP                  V
RV,          RR7      p	\        V	\         P                  ! R4      8H  R4       VP                  V
RV,          R	R7      p	\!        V	/ 4       VP                  V
RV,          R
R7      p	R\         P"                  3R\         P"                  3R\         P$                  3.p\         P&                  ! VRR7      p\         P                  ! RVR7      p\        W—4       VP	                  V^R7      w  rVVR,          P                  4       pVP)                  RV,          RR7      p	\!        V	\+        4       4       VP)                  RV,          R
R7      p	\         P                  ! R\         P"                  R7      p\        W—4       R# )r„   r/   rÏ   rr   )rÈ   r  r   r  Tr   r  r  rM   r‹  r  )Úalignr1  N)r“   )r“   r“   )r   )rB   r  )r   rR   )rH   rˆ   rw  ÚrandrG   r  r   r|  r�  ÚobjectÚfillr‡  ræ  r   r  rÇ   r   ÚintpÚfloat64r  r3  r1  )r   r{  ÚXÚYr*   r6   rM   r°  Úmindrà  ÚotherÚ_dtypeÚ	res_dtypes   &            r   Útest_len0_arraysrá  É  s“  € ô �)‰)×
Ñ
 Ó
%€CØ�‰��Q‹€AØ�‰��Q‹€AÙ�q‹>€Dà�:‰:�r˜2�h !ˆ:Ó$�D€AØ×Ñ˜r 2˜h¨¨A­Ó.€AÜ�q˜"Ôà�:‰:�a˜1ˆ:Ó�D€AØ�5‰5‹7€DØ×Ñ˜a  T¥Ó*€AÜ
�Š�v¤VÔ,€AØ‡F�Fˆ2„JÜ�qÔá˜‹N€EØ×Ñ˜U C¨¥HÓ-€AÜ�r˜2˜$•w Ô"à×Ñ˜U C¨¥HÓ-€AÜˆA�‰F„Oà×#Ñ# E¨3¨t­8ÀÐ#ÓM€AÜ�qœBŸHšH XÓ.Ñ.°Ô5Ø×#Ñ# E¨3¨t­8ÀÐ#ÓM€AÜ�qœBŸHšH XÓ.Ñ.°Ô5Ø×#Ñ# E¨3¨t­8ÀÐ#ÓH€AÜ��BÔØ×#Ñ# E¨3¨t­8ÀÐ#ÓK€AØ”B—G‘Gˆn˜s¤B§G¡G˜n¨s´B·J±JÐ.?Ð@€FÜ—’˜ tÔ,€IÜ
�Š�u IÔ.€AÜ�qÔà�:‰:�a˜1ˆ:Ó�D€AØˆU�8�<‰<‹>€DØ×Ñ˜˜T�¨uÐÓ5€AÜ�”C“EÔØ×Ñ˜˜T�¨yÐÓ9€AÜ
�Š�v¤R§W¡WÔ-€AÜ�qÖr   c           
      óŽ  € R p\        ^^4       EF1  p\        P                  ! W34      p^W1^,          R% \        P                  ! R^R7       Fï  w  rEV ! W4V^R7      pVP
                  ^8X  g   Q hV \        J d   VP                  MVP                  P                  p\        \        P                  ! VP                  P                  4      \        P                  ! ^ V^,          4      4       \        \        P                  ! VP                  P                  4      \        P                  ! V^,          V4      4       Kñ  	  EK4  	  R# )i   N)Úrepeat)r  r  r†   ©FT)rj  rH   r  rÍ  Úproductr'  r   r*   Ú_noder   ry  rx  ry  rš  rÒ  )r   ra   rS   rJ   ÚbalancedÚcompactrF   r*   s   &       r   Útest_kdtree_duplicated_inputsré  ÷  sö   € à€AÜ�1�a�[ˆÜ�wŠw˜�v‹ˆØˆ��TˆUˆä!*×!2Ò!2°=È×!KÑˆHÙ  Ø/6ÀôDˆFà—;‘; !Ô#Ð#Ð#à#.´'Ó#9�F—K’KØ—K‘K×%Ñ%ð ô Ü—’˜Ÿ™×+Ñ+Ó,Ü—	’	˜!˜Q !�VÓ$ô&ô Ü—’˜Ÿ™×,Ñ,Ó-Ü—	’	˜!˜q�& !Ó$ö&ô "Ló	 r   c                 ó^   € V ! ^ ..^R7      p\        \        VP                  VR^ .RR7       R# )r   r…   rr   FrÉ  N)r”  rá   ræ  )r   rF   s   & r   Ú'test_kdtree_noncumulative_nondecreasingrë    s1   € ñ
 ˜1˜#˜¨Ô+€Fä”*˜f×4Ñ4Ø��a� U÷,r   c                 ór  € \         P                  ! . RO. RO. R	O. R
O. RO. RO.RR7      pV ! V4      pVP                  V^RR7      w  r4\        VR \         P                  \         P                  \         P                  .R R\         P                  \         P                  .R R\         P                  \         P                  .R R\         P                  \         P                  .R R\         P                  \         P                  .R \         P                  \         P                  \         P                  ..4       R# )rý   rÚ  r  r‡   r[   rð  N)rý   rý   rý   )rA  rý   rý   )rý   rÝ   rý   )rý   rA  rý   )rÝ   rý   rý   )rÝ   rÝ   rý   )rH   r¦   rG   r   rc   )r   ÚxyzÚckdtÚdeqÚieqs   &    r   Útest_short_knnrñ    sß   € ô �(Š(ÚÚÚÚÚÚðð ô€Cñ �sÓ€Dà�z‰z˜# ¸ˆzÓ=�H€Cä˜cØ”"—&‘&œ"Ÿ&™&¤"§&¡&Ð)Ø�”r—v‘vœrŸv™vÐ&Ø�”r—v‘vœrŸv™vÐ&Ø�”r—v‘vœrŸv™vÐ&Ø�”r—v‘vœrŸv™vÐ&Ø”—‘œŸ™¤§¡Ð(ð*ö+r   c                 ó  € \         P                  P                  R 4       \         P                  P                  RR7      p\         P                  P                  RR7      pV ! V4      p\         P                  P	                  ^ R\        V4      R7      pVP                  W$4      p\        W$4       UUu. uF  w  rgVP                  Wg4      NK  	  ppp\        WX4       F#  w  rš\        \        V	4      \        V
4      4       K%  	  R# u uppi )r„   r&  rq  N©rƒ   rÅ   )
rH   rˆ   r‰   rË  r)  rç  r  rb   r   r:  )r   rJ   rG   r*   r6   ÚrvectorÚqiÚdiÚrscalarr1   r2   s   &          r   Útest_query_ball_point_vector_rrø  1  sÇ   € ä‡I�I‡N�N�4ÔÜ�9‰9×Ñ ÐÓ*€DÜ�I‰I×Ñ (ÐÓ+€EÙ�tÓ€DÜ
�	‰	×Ñ˜!˜S¤s¨5£zÐÓ2€Aà×#Ñ# EÓ-€GÜ;>¸u¼=ÔI¹=±°ˆt×$Ñ$ RÖ,¹=€GÑIÜ�GÖ%‰ˆÜœ6 !›9¤f¨Q£iÖ0ó &ùó Js   Â2Dc           	      óH  € \         P                  P                  R 4       \         P                  P                  RR7      p\         P                  P                  RR7      pV ! V4      pRpVP	                  W$RR7      pVP	                  W$RR7       Uu. uF  p\        V4      NK  	  ppV Uu. uF  p\        VP	                  W„4      4      NK  	  p	pV Uu. uF  qƒP	                  W„RR7      NK  	  p
p\        WW4       \        WY4       \        WZ4       R# u upi u upi u upi )r„   r&  rq  T©Úreturn_lengthFNró  )rH   rˆ   r‰   rË  r  rç  r   )r   rJ   rG   r*   r6   Úlengthr
  Úlength2rõ  Úlength3Úlength4s   &          r   Útest_query_ball_point_lengthr   >  sù   € ä‡I�I‡N�N�4ÔÜ�9‰9×Ñ ÐÓ*€DÜ�I‰I×Ñ (ÐÓ+€EÙ�tÓ€DØ€Aà×"Ñ" 5¸4Ð"Ó@€FØ#'×#8Ñ#8¸ÐQVÐ#8Ô#WÓXÑ#W˜CŒs�3ŽxÑ#W€GÐXÙ;@ÓA¹5°RŒs�4×(Ñ(¨Ó/Ö0¹5€GÐAÙJOÓPÉ%ÀB×$Ñ$ R¸$Ð$Ö?É%€GÐPÜ�vÔ'Ü�vÔ'Ü�vÖ'ùò YùÚAùÚPs   ÂDÂ,#DÃDc                 óz  € \         P                  P                  R 4       \         P                  P                  RR7      p\         P                  ! ^d4      R,          p\         P
                  ! \         P                  ! ^d4      RRR1,          R,          4      RRR1,          p\         P                  P                  RR7      p\         P
                  ! VP                  4      P                  pVP                  R,          VP                  R,          8w  g   Q hVP                  R,          VP                  R,          8w  g   Q hV ! V4      pVP                  VVRR7      pVP                  VVRR7      p\        Wx4       VP                  V^4      w  ršVP                  V^4      w  r¼\        W›4       \        W¬4       R# )r„   r&  g{®Gáz¤?NTrú  ró  r  )rH   rˆ   r‰   rË  rš  Úascontiguousarrayrð   Ústridesr  r   rG   )r   rJ   Úd_contiguousÚd_discontiguousÚquery_contiguousÚquery_discontiguousr*   Úlength1rý  Úd1Úi1Úd2Úi2s   &            r   Útest_discontiguousr  N  su  € ä‡I�I‡N�N�4ÔÜ�9‰9×Ñ ÐÓ*€DÜ—9’9˜S“> DÕ(€LÜ×*Ò*ÜŸ)š) C›.©¨2¨Õ.°Õ5ó7Ù7;¸°tõ=€Oä—y‘y×'Ñ'¨XÐ'Ó6ÐÜ×.Ò.Ð/?×/AÑ/AÓB×DÑDÐØ×&Ñ& rÕ*Ð.>×.FÑ.FÀrÕ.JÔJÐJÐJØ×"Ñ" 2Õ&¨,×*>Ñ*>¸rÕ*BÔBÐBÐBá�tÓ€Dà×#Ñ#Ð$4Ø$0Àð $ó F€Gà×#Ñ#Ð$7Ø$3À4ð $ó I€Gô �wÔ(à�Z‰ZÐ(¨!Ó,�F€BØ�Z‰ZÐ+¨QÓ/�F€Bä�rÔÜ�rÖr   zbalanced_tree, compact_nodesc                 óz  € \         P                  P                  R 4       \         P                  ! R	R7      p\         P                  ! R
R7      p\         P                  ! RR7      pV ! W1VR7      pVP                  VRRR7      pV^ 8X  g   Q hVP                  V^4      w  r‰V	P                  R8X  g   Q hVP                  R8X  g   Q h\         P                  ! V4      P                  4       '       g   Q hVP                  V^ ^.4      p
\        V
^ ^ .4       VP                  VRRR7      pVP                  R8X  g   Q hR# )r„   )rÈ   r  rq  Trú  r   r  N)r   rÅ   )r"   rÅ   r`  )rR   rR   ra  )rH   rˆ   r‰   r�  r  r  rG   rÈ   ÚisinfrK   ræ  r   r  )r   r  r  Úempty_v3Úquery_v3Úquery_v2r*   rü  rV   rW   ÚNr  s   &&&         r   Útest_kdtree_empty_inputr  j  s  € ô ‡I�I‡N�N�4ÔÜ�xŠx˜fÔ%€HÜ�wŠw˜VÔ$€HÜ�wŠw˜VÔ$€Há�xØ%2ô4€Dà×"Ñ" 8¨SÀÐ"ÓE€FØ�QŒ;Ðˆ;à�Z‰Z˜ !Ó$�F€BØ�8‰8�vÔÐÐØ�8‰8�vÔÐÐÜ�8Š8�B‹<×Ñ×ÒÐÐà×Ñ˜T A q 6Ó*€AÜ�q˜1˜a˜&Ô!à×#Ñ# D¨#¸;Ð#ÓG€AØ�7‰7�fÔÐÒr   c                   ó2   a € ] tR tRt o R tR tR tRtV tR# )Ú_Test_sorted_query_ball_pointi†  c                óÎ   € \         P                  P                  R 4       \         P                  P                  ^d^4      V n        V P                  V P                  4      V n        R# ©r„   N)rH   rˆ   r‰   rŠ   rE   r   rî  r‹   s   &r   rŒ   Ú*_Test_sorted_query_ball_point.setup_methodˆ  s>   € Ü
�	‰	�‰�tÔÜ—‘—‘  aÓ(ˆŒØ×$Ñ$ T§V¡VÓ,ˆŽ	r   c                ó  € V P                   P                  V P                  R RR7      pV F  p\        V\	        V4      4       K  	  V P                   F6  pV P                   P                  VR RR7      p\        V\	        V4      4       K8  	  R# )rÝ   T©Úreturn_sortedN)rî  r  rE   r   r:  )r<   Ú	idxs_listÚidxsrF  s   &   r   Útest_return_sorted_TrueÚ5_Test_sorted_query_ball_point.test_return_sorted_True�  sr   € Ø—I‘I×.Ñ.¨t¯v©v°rÈÐ.ÓNˆ	ÛˆDÜ˜t¤V¨D£\Ö2ñ ð —&”&ˆBØ—9‘9×-Ñ-¨b°"ÀDÐ-ÓIˆDÜ˜t¤V¨D£\Ö2ó r   c                óŽ  € V P                   P                  V P                  R4      pV F  p\        V\	        V4      4       K  	  V P                   Uu. uF  q0P                   P                  VR4      NK   	  ppV P                   P                  V P                  RRR7      p\        WT4       F  w  rg\        Wg4       K  	  R# u upi )z“Previous behavior was to sort the returned indices if there were
multiple points per query but not sort them if there was a single point
per query.rÝ   Fr  N)rî  r  rE   r   r:  rb   )r<   r  r  rF  Úidxs_list_singleÚidxs_list_FalseÚidxs0Úidxs1s   &       r   Útest_return_sorted_NoneÚ5_Test_sorted_query_ball_point.test_return_sorted_None–  s¡   € ð —I‘I×.Ñ.¨t¯v©v°rÓ:ˆ	ÛˆDÜ˜t¤V¨D£\Ö2ñ ð JNÏÊÓPÉÀ2ŸI™I×6Ñ6°r¸2Ö>ÉÐÐPØŸ)™)×4Ñ4°T·V±V¸RÈuÐ4ÓUˆÜ ÖB‰LˆEÜ˜uÖ,ó Cùò Qs   Á$C)rî  rE   N)	r$   ry   rz   r{   rŒ   r  r&  r|   r}   r~   s   @r   r  r  †  s   ø‡ € ò-ò
3÷-ð -r   r  c                  óv  € \         P                  P                  ^
^4      P                  \        4      p \
        P                  ! \        RR7      ;_uu_ 4        \        V 4      pRRR4       \        V P                  4      p\
        P                  ! \        RR7      ;_uu_ 4        VP                  V 4       RRR4       \
        P                  ! \        RR7      ;_uu_ 4        VP                  V ^R7       RRR4       R#   + '       g   i     L¥; i  + '       g   i     Le; i  + '       g   i     R# ; i)r“   zcomplex datarÞ   NrB  )rH   rˆ   rÖ  ÚviewÚcomplexrà   r	   Ú	TypeErrorr   ÚrealrG   r  ©rk  Úts     r   Útest_kdtree_complex_datar/  ¤  s½   € ä�Y‰Y�^‰^˜B Ó"×'Ñ'¬Ó0€Fä	�Š”y¨×	7Ö	7Ü�6‹Nˆ÷ 
8ô 	ˆv�{‰{Ó€Aä	�Š”y¨×	7Ö	7Ø	�‰�Œ÷ 
8ô 
�Š”y¨×	7Ö	7Ø	×Ñ˜6 QÐÔ'÷ 
8Ñ	7÷ 
8×	7ú÷
 
8×	7ú÷ 
8×	7Ð	7ús$   ÁDÂ%DÃ#D'ÄD	ÄD$	Ä'D8	c                 ón  € VP                   p\        V\        P                  4      '       g   Q hVP                  VP
                  ^ ,          8X  g   Q hV.pV'       Ed×   VP                  R4      p\        V\        P                  4      '       d{   \        VP                  \        4      '       g   Q hVP                  \        VP                  4      8X  g   Q h\        W%P                  ,          VP                  P                  4       K´  \        V\        P                  4      '       g   Q h\        VP                  \        4      '       g   Q h^ VP                  u;8:  d   VP                  8  g   Q h Q h\        VP                   \"        4      '       g   Q h\        VP                  \        4      '       g   Q hVP                  VP$                  P                  VP&                  P                  ,           8X  g   Q hVP)                  VP&                  4       VP)                  VP$                  4       EKß  R# )r   Nr  )r*   rº   r   Ú	innernodeÚchildrenrÈ   ÚpopÚleafnoderê   rç  Úidxr   ræ  rz  rw  rS   rÎ  r»   rÑ  rÒ  rœ  )rM   r.  rk  ÚrootrW  ra   s   &&&   r   Ú
visit_treer7  ´  s‚  € Ø�6‰6€Dä�dœF×,Ñ,×-Ò-Ð-Ð-Ø�=‰=˜FŸL™L¨�OÔ+Ð+Ð+ð ˆF€Eç
ˆ%Ø�I‰I�b‹Mˆä�aœŸ™×)Ò)Ü˜aŸj™j¬#×.Ò.Ð.Ð.Ø—:‘:¤ Q§U¡U£Ô+Ð+Ð+Ü˜v§e¡e�}¨a¯g©g×.AÑ.AÖBä˜a¤×!1Ñ!1×2Ò2Ð2Ð2Ü˜aŸk™k¬3×/Ò/Ð/Ð/Ø˜Ÿ™Ö) a§c¡cÔ)Ð)Ñ)Ð)Ð)Ü˜aŸg™g¤u×-Ò-Ð-Ð-Ü˜aŸj™j¬#×.Ò.Ð.Ð.Ø—:‘: §¡§¡°1·9±9×3EÑ3EÕ!EÔEÐEÐEØ�L‰L˜Ÿ™Ô#Ø�L‰L˜Ÿ™× ñ r   c                  ó²   € \         P                  P                  R 4       \         P                  P                  ^d^4      p \	        V 4      p\        ^ W4       R# r  )rH   rˆ   r‰   rÖ  r   r7  r-  s     r   Útest_kdtree_tree_accessr9  Ð  s9   € ä‡I�I‡N�N�4ÔÜ�Y‰Y�^‰^˜C Ó#€FÜˆv‹€AÜˆq�!Ör   zSpawns worker threadsc                  ó    € \         P                  P                  R 4      p V P                  ^d^4      p\	        V4      p\        ^
\        W!4       R# )l   ]Q’s N)rH   rˆ   rw  rÖ  r   r
   r7  )r{  rk  r.  s      r   Útest_multithreaded_tree_accessr;  Ø  s=   € ô �)‰)×
Ñ
 
Ó
+€CØ�X‰X�c˜1Ó€FÜˆv‹€AÜ˜B¤
¨AÖ6r   c                  ó  € \         P                  P                  R 4       \         P                  P                  ^d^4      p \	        V 4      p\        VP                  \        4      '       g   Q hVP                  V P                  ^ ,          8X  g   Q h\        VP                  \        4      '       g   Q hVP                  V P                  ^,          8X  g   Q h\        VP                  \        4      '       g   Q hVP                  ^
8X  g   Q h\        VP                  \         P                  ! V ^ R7      4       \        VP                  \         P                  ! V ^ R7      4       VP                   P"                  V J g   Q hR# )r„   rC   N)rH   rˆ   r‰   rÖ  r   rº   rS   rê   ra   rÈ   r†   r   rÏ  rT   rÐ  ÚaminrJ   Úbaser-  s     r   Útest_kdtree_attributesr?  â  s  € ä‡I�I‡N�N�4ÔÜ�Y‰Y�^‰^˜C Ó#€FÜˆv‹€Aä�a—c‘cœ3×ÒÐÐØ�3‰3�&—,‘,˜q•/Ô!Ð!Ð!ä�a—c‘cœ3×ÒÐÐØ�3‰3�&—,‘,˜q•/Ô!Ð!Ð!ä�a—j‘j¤#×&Ò&Ð&Ð&Ø�:‰:˜ÔÐÐä�q—w‘w¤§¢¨°QÔ 7Ô8Ü�q—v‘vœrŸwšw v°AÔ6Ô7Ø�6‰6�;‰;˜&Ó Ð Ò r   Úkdtree_classc           
      óú  € \         P                  P                  R 4      p\         P                  ! R^R4      pVP                  ^4      P	                  R4      pVP                  ^-4      P	                  R4      pVP                  ^4      pVP                  ^4      pV ! V4      pV ! V4      pVP                  W‚RWV3R7      p	VR,          VR	,          ,          p
\         P                  P                  VR
,          VR,          ,
          RR7      p\        \        P                  ! ^ .VRR 4      V4       UUu. uF-  w  rÍ\         P                  ! W¬V8  W½8*  ,          ,          4      NK/  	  ppp\        Wž4       R# u uppi )r„   r¡  F)rÊ  r½  NrC   )rß  rÅ   )é   rÅ   )NrB   ©rB   N)NrB   rB   )rB   NrB   r  )rH   rˆ   rw  rš  rx  ræ  Úlinalgr  rb   rÍ  ÚchainrI   r   )r@  r{  rc  ÚAÚBÚwAÚwBÚkdAÚkdBÚnABr½  r  Úprev_radiusrt  Úexpects   &              r   Ú$test_kdtree_count_neighbors_weightedrO  ö  s9  € ä
�)‰)×
Ñ
 Ó
%€CÜ
�	Š	�$˜˜4Ó €Aà�
‰
�2‹×Ñ˜uÓ%€AØ�
‰
�2‹×Ñ˜vÓ&€Aà	�‰�A‹€BØ	�‰�B‹€Bá
�q‹/€CÙ
�q‹/€Cà
×
Ñ
˜c°ÀÀÐ
Ó
H€Cð ��k˜B˜w�KÕ'€GÜ�9‰9�>‰>˜!˜J�-¨!¨J­-Õ7¸bˆ>ÓA€Dä),¬Y¯_ª_¸a¸SÀ!ÀCÀRÀ&Ó-IÈ1Ô)MôOÙ)MÑ%�+ô �fŠf�W¨DÑ0°T±^ÕDÕEÖFÙ)Mð ñ Oä�CÖ ùóOs   Ä43E7c                  ó@  € . ROp \        V 4      p\        P                  ! V \        P                  ! V\        P                  4      .4      R,          p\
        P                  ! \        RR7      ;_uu_ 4        \        V4       RRR4       R#   + '       g   i     R# ; i)r"   Númust be finiterÞ   )
r"   é   iöÿÿÿrß  éüÿÿÿiðÿÿÿiúÿÿÿé   rÅ   iõÿÿÿrC  )	rç  rH   rz  r*  Únanrà   r	   rá   r   )Úvalsra   rJ   s      r   Útest_kdtree_nanrW    s_   € Ú1€DÜˆD‹	€AÜ�>Š>˜4¤§¢¨¬B¯F©FÓ!3Ð4Ó5°gÕ>€DÜ	�Š”zÐ)9×	:Ö	:ÜˆtŒ÷ 
;×	:×	:Ò	:ús   Á6BÂB	c                  óÄ  € \         P                  P                  R 4      p V P                  R
RRR7      p\	        VRRR7      p\        ^4       Uu. uF  p\         P                  NK  	  pp\        P                  ! \        RR7      ;_uu_ 4        VP                  V4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        VP                  V^4       RRR4       \         P                  VR&   \        P                  ! \        RR7      ;_uu_ 4        \	        VR	RR7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \	        VRR	R7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \	        VR	R	R7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \	        VRRR7       RRR4       R# u upi   + '       g   i     ELV; i  + '       g   i     EL+; i  + '       g   i     Lð; i  + '       g   i     LÈ; i  + '       g   i     L ; i  + '       g   i     R# ; i)i90  rý   rr   )r'  ÚlowÚhighFr  rQ  rÞ   NTró  )r   rB   )rH   rˆ   Údefault_rngr)  r   rj  rU  rà   r	   rá   rG   r  )r{  Úcoordsr.  r#   Ú	bad_coords        r   Útest_nonfinite_inputs_gh_18223r^    sv  € Ü
�)‰)×
Ñ
 Ó
&€CØ�[‰[˜h¨C°cˆ[Ó:€FÜˆv U¸%Ô@€AÜ!& q¤Ó*¡˜A”—”¡€IÐ*ä	�Š”zÐ)9×	:Ö	:Ø	�‰�	Ô÷ 
;ä	�Š”zÐ)9×	:Ö	:Ø	×Ñ˜9 aÔ(÷ 
;ô —6‘6€Fˆ4�LÜ	�Š”zÐ)9×	:Ö	:Üˆv T¸Õ?÷ 
;ä	�Š”zÐ)9×	:Ö	:Üˆv U¸$Õ?÷ 
;ä	�Š”zÐ)9×	:Ö	:Üˆv T¸Õ>÷ 
;ä	�Š”zÐ)9×	:Ö	:Üˆv U¸%Õ@÷ 
;Ñ	:ùò +ç	:×	:Ð	:úç	:×	:Ð	:ú÷ 
;×	:úç	:×	:úç	:×	:úç	:×	:Ð	:úsN   ÁG(ÂG-ÃHÄHÅH(ÆH;ÇIÇ-G>	ÈH	ÈH%	È(H8	È;I	ÉI	Úincantationc                 óä   €  ! R  R\         P                  4      pRR.RR.RR..p\         P                  ! V4      pV! V4      pV ! V^
4      pVP                  V^4       VP	                  V^È4       R# )	c                   ó,   a € ] tR tRt o R tR tRtV tR# )Útest_gh_18800.<locals>.ArrLikei2  c                ó^   € \         P                  ! V4      P                  V 4      pR Vn        V# r   )rH   rS  r)  rK   )ÚclsÚinput_arrayÚobjs   && r   Ú__new__Ú&test_gh_18800.<locals>.ArrLike.__new__3  s)   € Ü—*’*˜[Ó)×.Ñ.¨sÓ3ˆCð ˆCŒGØˆJr   c                ó6   € Vf   R # \        VRR 4      V n        R # )NrK   )ÚgetattrrK   )r<   rf  s   &&r   Ú__array_finalize__Ú1test_gh_18800.<locals>.ArrLike.__array_finalize__:  s   € ØŠ{ÙÜ˜s E¨4Ó0ˆDŽHr   )rK   N)r$   ry   rz   r{   rg  rk  r|   r}   r~   s   @r   ÚArrLikerb  2  s   ø‡ € ò	÷	1ð 	1r   rm  g®GázŽP@g…ëQ¸E@@g…ëQ¸…6@g¤p=
×c6@gÃõ(\�?@g=
×£pMT@N)rH   r  r¦   rG   r  )r_  rm  rk  r>  Úarr_liker*   s   &     r   Útest_gh_18800ro  ,  ss   € ô1”"—*‘*ô 1ð 
�ˆØ	�ˆØ	�ˆð
€Fô
 �(Š(�6Ó
€CÙ�s‹|€HÙ�v˜rÓ"€DØ‡J�Jˆx˜ÔØ×Ñ˜( CÖ(r   c           
      óš  € \         P                  P                  R 4      pRp^pVP                  W#4      pV ! V^R7      pR^R^R^dR^RR/pVP	                  4        F>  w  rx\
        P                  ! \        R	R
7      ;_uu_ 4        \        WWV4       RRR4       K@  	  R\         P                  ! ^ ^ .\         P                  R7      R^R^RRRR/p	V	P	                  4        F@  w  rx\
        P                  ! \        RR
7      ;_uu_ 4        V\        WW4      R&   RRR4       KB  	  R#   + '       g   i     KÛ  ; i  + '       g   i     Kk  ; i)l   ¿X rï   re  rS   ra   r'  r†   r*   Nz(is not writable|has no setter)rÞ   rJ   r  ry  r4   rÏ  rº  rÐ  zdestination is read-onlyrB   )rH   rˆ   rw  rÖ  r  rà   r	   ÚAttributeErrorrp  r¦   rÚ  rá   rj  )
r   r{  ra   r\   rk  rð   Úobject_attrsÚattrÚattr_valÚarray_attrss
   &         r   Útest_immutablerv  K  s%  € Ü
�)‰)×
Ñ
 
Ó
+€CØ€AØ	€AØ�X‰X�a‹^€FÙ�F AÔ&€AàˆQØˆQØ�Ø�BØ�ð€Lð '×,Ñ,Ö.‰ˆÜ�]Š]œ>Ð1R×SÖSÜ�A˜XÔ&÷ TÑSñ /ð 	”—’˜!˜Q˜¤r§z¡zÔ2Ø�1Ø�1Ø�Ø�ð€Kð &×+Ñ+Ö-‰ˆÜ�]Š]œ:Ð-G×HÖHØ"*ŒG�AÓ˜QÑ÷ IÑHó .÷ T×SÐSú÷ I×HÐHús   ÂD%ÄD9Ä%D6Ä9E
))TF)TT)FFrä  )yrÍ  rq  Únumpy.testingr   r   r   r   r   r   rà   r	   r”  ÚnumpyrH   Úscipy._lib._testutilsr
   Úscipy.spatialr   r   r   r   Úscipy.spatial._ckdtreer   r   r   Úscipy.spatial.distancer   r   Úscipy.sparser   r   r   r   Úfixturer   r-   r7   r9   r�   r‘   rœ   r°   r´   ræ   rü   r  r  r3  r8  r@  rD  rM  rQ  rX  rd  ÚmarkÚthread_unsafeÚ	fail_slowro  r€  r‚  r‘  r—  r�  r¢  r¦  rª  r®  rÙ  rÛ  rÝ  rá  rã  rù  rý  r%  r+  r/  r4  r6  r8  r?  rK  rT  rX  r\  rc  rf  rj  rt  r  r†  r�  r�  r’  r•  r‰  Ú	fail_asanrº  rÇ  rÓ  rá  ré  rë  rñ  rø  r   r  Úparametrizer  r  r/  r7  r9  r;  r?  rO  rW  r^  ro  rv  rx   r   r   Ú<module>r„     s‡  ðó Û 	÷,÷ ,õ +Û Û Ý 9ß EÓ EÝ .ß Bß 3ß EÓ Eð ‡‚˜ Ð(Ô)ñó *ðòò(÷H-ñ H-ðV ô	Ð#ó 	ó ð	ð ô,�|ó ,ó ð,ð ô&Ð"ó &ó ð&ð: ô>˜+ó >ó ð>÷+)ñ +)÷Z-7ñ -7÷^>ñ >ð4 ô
Ð(ó 
ó ð
ð ô#
Ð!1ó #
ó ð#
ðL ôÐ)9ó ó ðð" ôÐ0ó ó ðð ôÐ(9ó ó ðð ôÐ-ó ó ðð ôÐ%?ó ó ðð ôÐ,ó ó ðð ôÐ.ó ó ðò'ð ‡�×ÑÐ">ÐÓ?Ø‡�×Ñ�qÓñ-ó ó @ð-ð& ‡�×ÑÐ">ÐÓ?Ø‡�×Ñ�qÓñRó ó @ðR÷23ñ 3ð* ôÐ2ó ó ðð ôÐ&;ó ó ðð" ôÐ!7ó ó ðð ôÐ*Ió ó ðð ôÐ"8ó ó ðð ôÐ+Jó ó ð÷3ñ 3ò@HòFò
Kò
>÷Fñ Fð$ ôFÐ7ó Fó ðF÷U)ñ U)ðp ôÐ#Eó ó ðò"Pò ò#ò!ò$/ò
òB#ò
;ò5òòòòò'ò$AòD $ðD ‡�×Ñ�rÓñó ðò6ò&6òJò4ð2 ‡�×Ññ(ó ð(òT,8ð\ ‡�×Ñ�rÓñ+ó ð+ò$,ò\&ò.,ò+ò21ò(ò ð8 ‡�×ÑÐ7òóñ
óð
ð. ÷-ð -ó ð-ò:(ò !ò8ð ‡�×ÑÐ"9ÐÓ:ñ7ó ;ð7ò!ð( ‡�×Ñ˜¨&°'Ð):Ó;ñ!ó <ð!ò.òAð, ‡�×Ñ˜¨°&Ð(9Ó:ñ)ó ;ð)ô<+r   