
    Pi                        d dl Zd dlZd dlmZmZ d dlmZmZm	Z	 d dl
mZ d dlmZmZ dZi i i  ed          dZe	egZd	 Zej                            d
e          d             Zej        j        ej                            d
e          d                         Zej                            de          d             Zej                            de          d             ZdS )    N)assert_allcloseassert_equal)KDTreeKDTree32KDTree64)get_dataset_for_binary_tree)Paralleldelayed   )p)	euclidean	manhattan	chebyshev	minkowskic                  >    t          t          t                    sJ d S N)
issubclassr   r        x/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/sklearn/neighbors/tests/test_kd_tree.py test_KDTree_is_KDTree64_subclassr      s    fh'''''''r   BinarySearchTreec                     t          j        g dt                    }t          j        t
          d          5   | |           ddd           dS # 1 swxY w Y   dS )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&      s     	222&AAAA	z)S	T	T	T                   s   AAAc                     t           j                            d          }|                    d          } | |d           t	          dd          fdd|gz  D                        dS )	zgMake 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   R   K   | ]!} t          j                  |          V  "d S r   )r
   query).0datatrees     r   	<genexpr>z4test_kdtree_picklable_with_joblib.<locals>.<genexpr>.   s8      $S$S4%8WTZ%8%8%>%>$S$S$S$S$S$Sr   N)r   randomRandomStaterandom_sampler	   )r   rngr%   r0   s      @r   !test_kdtree_picklable_with_joblibr6   !   s     )


"
"C'""AA+++D
 %HA!$$$$S$S$S$S1PQs7$S$S$SSSSSSr   metricc                    t          | d          \  }}}}t                              |i           }t          |fd|d|}t	          |fd|d|}d}	|                    ||	          \  }
}|                    ||	          \  }}t          |
|d           t          ||           |
j        t          j
        k    sJ |j        t          j        k    sJ d	}|                    ||
          }|                    ||
          }t          ||          D ]\  }}t          ||           |                    ||d          \  }}
|                    ||d          \  }}t          |||
|          D ]W\  }}}}t          ||           t          ||d           |j        t          j
        k    sJ |j        t          j        k    sJ Xd S )N2   )random_seedfeaturesr   r)   r7      )kh㈵>rtolg
ףp=
@)rT)rB   return_distance)r   METRICSgetr   r   r-   r   r   r   r   float64float32query_radiuszip)global_random_seedr7   X_64X_32Y_64Y_32metric_paramskd_64kd_32r>   dist_64ind_64dist_32ind_32rB   _ind64_ind32_dist_64_dist_32s                      r   "test_kd_tree_numerical_consistencyrZ   1   s"    9&  D$d KK++MTGQvGGGGETGQvGGGGE 	
Akk$!k,,OGVkk$!k,,OGVGW40000   =BJ&&&&=BJ&&&& 	A**F**Fff-- % %VV$$$$ ((D(IIOFG((D(IIOFG.1&&'7.S.S , ,*(VV$$$(6666~++++~+++++	, ,r   c                    t          |           \  }}}}t                              |i           }t          |fd|d|}t	          |fd|d|}d}	d}
|                    ||
|	d          }|                    ||
|	d          }t          ||d	           |j        t          j	        k    sJ |j        t          j
        k    sJ d S )
N)r:   r   r<   gaussiang?T)hkernelbreadth_firstr?   r@   )r   rD   rE   r   r   kernel_densityr   r   r   rF   rG   )rJ   r7   rK   rL   rM   rN   rO   rP   rQ   r^   r]   	density64	density32s                r   )test_kernel_density_numerical_consistencyrc   X   s     9EWXXXD$dKK++MTGQvGGGGETGQvGGGGEFA$$TQvT$RRI$$TQvT$RRIIyt4444?bj((((?bj((((((r   )numpyr   r"   numpy.testingr   r   sklearn.neighbors._kd_treer   r   r   &sklearn.neighbors.tests.test_ball_treer   sklearn.utils.parallelr	   r
   	DIMENSIONdictrD   KD_TREE_CLASSESr   markparametrizer&   thread_unsafer6   rZ   rc   r   r   r   <module>ro      s        7 7 7 7 7 7 7 7 A A A A A A A A A A N N N N N N 4 4 4 4 4 4 4 4	"44RS999
U
U ( ( ( +_==  >= +_==T T >= T 7++#, #, ,+#,L 7++) ) ,+) ) )r   