o
    \i:                     @   s   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dZe	egZd	d
 Zejdedd Zejdedd Zejdedd Zejdedd ZdS )    N)assert_allcloseassert_equal)KDTreeKDTree32KDTree64)get_dataset_for_binary_tree)Paralleldelayed   )p)	euclidean	manhattan	chebyshev	minkowskic                   C   s   t ttsJ d S N)
issubclassr   r    r   r   /var/www/www-root/data/www/176.119.141.140/sports-predictor/venv/lib/python3.10/site-packages/sklearn/neighbors/tests/test_kd_tree.py test_KDTree_is_KDTree64_subclass   s   r   BinarySearchTreec                 C   sN   t jg dtd}tjtdd | | W d   dS 1 s 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   Xr   r   r   test_array_object_type   s   
"r"   c                    sJ   t jd}|d}| |dd tddd fddd|g 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   s    | ]
}t  j|V  qd S r   )r	   query).0datatreer   r   	<genexpr>+   s    z4test_kdtree_picklable_with_joblib.<locals>.<genexpr>N)r   randomRandomStaterandom_sampler   )r   rngr!   r   r*   r   !test_kdtree_picklable_with_joblib   s   
(r1   metricc                 C   sj  t | dd\}}}}t|i }t|fd|d|}t|fd|d|}d}	|j||	d\}
}|j||	d\}}t|
|dd t|| |
jt	j
ksNJ |jt	jksVJ d	}|j||d
}|j||d
}t||D ]	\}}t|| qk|j||dd\}}
|j||dd\}}t|||
|D ]"\}}}}t|| t||dd |jt	j
ksJ |jt	jksJ qd S )N2   )random_seedfeaturesr   r$   r2      )kh㈵>rtolg
ףp=
@)rT)r<   return_distance)r   METRICSgetr   r   r'   r   r   r   r   float64float32query_radiuszip)global_random_seedr2   X_64X_32Y_64Y_32metric_paramskd_64kd_32r8   dist_64ind_64dist_32ind_32r<   _ind64_ind32_dist_64_dist_32r   r   r   "test_kd_tree_numerical_consistency.   s4   

rT   c                 C   s   t | d\}}}}t|i }t|fd|d|}t|fd|d|}d}	d}
|j||
|	dd}|j||
|	dd}t||dd	 |jtj	ksJJ |jtj
ksRJ d S )
N)r4   r   r6   gaussiang?T)hkernelbreadth_firstr9   r:   )r   r>   r?   r   r   kernel_densityr   r   r   r@   rA   )rD   r2   rE   rF   rG   rH   rI   rJ   rK   rW   rV   	density64	density32r   r   r   )test_kernel_density_numerical_consistencyU   s   r\   )numpyr   r   numpy.testingr   r   sklearn.neighbors._kd_treer   r   r   &sklearn.neighbors.tests.test_ball_treer   sklearn.utils.parallelr   r	   	DIMENSIONdictr>   KD_TREE_CLASSESr   markparametrizer"   r1   rT   r\   r   r   r   r   <module>   s(    


&