
    -i:                        S SK rS SKrS SKJrJr  S SKJrJrJ	r	  S SK
Jr  S SKJrJr  Sr0 0 0 \" SS9S.r\	\/rS	 r\R(                  R+                  S
\5      S 5       r\R(                  R+                  S
\5      S 5       r\R(                  R+                  S\5      S 5       r\R(                  R+                  S\5      S 5       rg)    N)assert_allcloseassert_equal)KDTreeKDTree32KDTree64)get_dataset_for_binary_tree)Paralleldelayed   )p)	euclidean	manhattan	chebyshev	minkowskic                  :    [        [        [        5      (       d   eg N)
issubclassr   r        W/var/www/html/venv/lib/python3.13/site-packages/sklearn/neighbors/tests/test_kd_tree.py test_KDTree_is_KDTree64_subclassr      s    fh''''r   BinarySearchTreec                     [         R                  " / SQ[        S9n[        R                  " [
        SS9   U " U5        SSS5        g! , (       d  f       g= f)z/Check that we do not accept object dtype array.))      r   )r      )r   r   r   r   )dtypez(setting an array element with a sequence)matchN)nparrayobjectpytestraises
ValueError)r   Xs     r   test_array_object_typer&      s9     	2&AA	z)S	T 
U	T	Ts   	A
Ac                    ^ [         R                  R                  S5      nUR                  S5      nU " USS9m[	        SSS9" U4S jSU/-   5       5        g)	zcMake sure that KDTree queries work when joblib memmaps.

Non-regression test for #21685 and #21228.r   )
   r   r   )	leaf_sizer   )n_jobs
max_nbytesc              3   Z   >#    U  H   n[        TR                  5      " U5      v   M"     g 7fr   )r
   query).0datatrees     r   	<genexpr>4test_kdtree_picklable_with_joblib.<locals>.<genexpr>+   s"     $S74WTZZ%8%>%>7s   (+N)r   randomRandomStaterandom_sampler	   )r   rngr%   r0   s      @r   !test_kdtree_picklable_with_joblibr7      sS    
 ))


"C'"AA+D
 A!$$S1PQs7$SSr   metricc                     [        U SS9u  p#pE[        R                  U0 5      n[        U4SUS.UD6n[	        U4SUS.UD6nSn	UR                  XIS9u  pUR                  XYS9u  p[        XSS9  [        X5        U
R                  [        R                  :X  d   eUR                  [        R                  :X  d   eS	nUR                  XNS
9nUR                  X^S
9n[        X5       H  u  nn[        UU5        M     UR                  XNSS9u  pUR                  X^SS9u  p[        XX5       H_  u  nnnn[        UU5        [        UUSS9  UR                  [        R                  :X  d   eUR                  [        R                  :X  a  M_   e   g )N2   )random_seedfeaturesr   r)   r8      )kh㈵>rtolg
ףp=
@)rT)rC   return_distance)r   METRICSgetr   r   r-   r   r   r   r   float64float32query_radiuszip)global_random_seedr8   X_64X_32Y_64Y_32metric_paramskd_64kd_32r?   dist_64ind_64dist_32ind_32rC   _ind64_ind32_dist_64_dist_32s                      r   "test_kd_tree_numerical_consistencyr[   .   s    9&D KK+MTGQvGGETGQvGGE 	
Akk$k,OGkk$k,OGG40 ==BJJ&&&==BJJ&&& 	A*F*Ff-VV$ .
 ((D(IOF((D(IOF.1&'.S*(VV$(6~~+++~~+++	 /Tr   c                 d   [        U S9u  p#pE[        R                  U0 5      n[        U4SUS.UD6n[	        U4SUS.UD6nSn	Sn
UR                  XJU	SS9nUR                  XZU	SS9n[        XSS	9  UR                  [        R                  :X  d   eUR                  [        R                  :X  d   eg )
N)r;   r   r=   gaussiang?T)hkernelbreadth_firstr@   rA   )r   rE   rF   r   r   kernel_densityr   r   r   rG   rH   )rK   r8   rL   rM   rN   rO   rP   rQ   rR   r_   r^   	density64	density32s                r   )test_kernel_density_numerical_consistencyrd   U   s     9EWXDKK+MTGQvGGETGQvGGEFA$$TvT$RI$$TvT$RIIt4??bjj(((??bjj(((r   )numpyr   r"   numpy.testingr   r   sklearn.neighbors._kd_treer   r   r   &sklearn.neighbors.tests.test_ball_treer   sklearn.utils.parallelr	   r
   	DIMENSIONdictrE   KD_TREE_CLASSESr   markparametrizer&   r7   r[   rd   r   r   r   <module>ro      s      7 A A N 4	"4RS9
U ( +_= > +_=T >T 7+#, ,#,L 7+) ,)r   