
    sg                        d dl Z d dlZd dlZd dlmZ d dlmZ d Zd Z	ej                  j                  dd      ej                  j                  dd	      d
               Zej                  j                  dd      d        Zd Zy)    N)	_QuadTree)check_random_statec                  B   g } | j                  t        j                  ddgddggt        j                               | j                  t        j                  ddgddggt        j                               | j                  t        j                  ddgddggt        j                               | j                  t        j                  ddgd	dggt        j                               | D ]0  }t	        d
d      }|j                  |       |j                          2 y )N   dtyper   gưgư>gо   n_dimensionsverboseappendnparrayfloat32r   
build_tree_check_coherenceXsXtrees      Y/var/www/html/venv/lib/python3.12/site-packages/sklearn/neighbors/tests/test_quad_tree.py"test_quadtree_boundary_computationr   
   s    	B IIbhhQ"b*"**=>IIbhhAA'rzz:;IIbhhR2q'*"**=>IIbhhu~6bjjIJ  a3     c                     g } | j                  t        j                  ddgddggt        j                               | j                  t        j                  ddgddggt        j                               | j                  t        j                  d	dgd
dggt        j                               | j                  t        j                  ddgddggt        j                               | j                  t        j                  ddgddggt        j                               | j                  t        j                  d	dgd
dggt        j                               | j                  t        j                  ddgddggt        j                               | j                  t        j                  ddgddggt        j                               | D ]0  }t	        dd      }|j                  |       |j                          2 y )Nr   r         r	   g      ?g       @g      @grZ|
 ?g㈵ ?g9b->  @grZ|
  @g 9?g 9?r   r   r   r   s      r   test_quadtree_similar_pointr!      s    
B IIbhhAA'rzz:;IIbhhc
S#J/rzzBCIIbhh##7rzzJKIIbhhc
S#J/rzzBCIIbhhgg7rzzJKIIbhh'*Wg,>?rzzRS IIbhhO,q/.BC2::VW II
?C(?C*@AT   a3 r   r   )r   r   protocol)r   r   r   c                 4   t        d      }|j                  d| f      }t        | d      }|j                  |       t	        j
                  ||      }t	        j                  |      }|D ]+  }|j                  |      }|j                  |      }	||	k(  r+J  y )Nr   
   r   )r"   )r   random_sampler   r   pickledumpsloadsget_cell)
r   r"   rngr   r   sbt2xcell_x_tree
cell_x_bt2s
             r   test_quad_tree_pickler0   ?   s     Q
C2|,-A,:DOOATH-A
,,q/C )mmA&\\!_
j((()r   c                 R   t        d      }|j                  d| f      }t        j                  ||d d f   }t	        | d      }|j                  |       |j                  }|j                  }t        |      D ]-  \  }}|j                  |      }	||	   sJ ||	   d|dk  z   k(  r-J  y )Nr   r$      r   r   )
r   r%   r   r_r   r   cumulative_sizeleafs	enumerater)   )
r   r*   r   Xdr   r4   r5   ir-   cell_ids
             r   test_qt_insert_duplicater:   R   s    
Q
C2|,-A	q!BQ%xB,:DOOB**OJJE ! 71--"W~~w'1A;6667r   c                     d} t        j                  ddgddgddgddggt         j                        }|dd d f   }|j                  d   }|dz   }t	        |d	      }|j                  |       |j                  |||       \  }}||   }||dz      }	|dd  j                  d
      }
|d   |
z
  dz  j                         }||k(  sJ |	dk(  sJ dj                  |	             t        j                  ||      sJ |j                  ||d      \  }}|dd  j                  d
      }
|d   |
z
  dz  j                         }|d|z  k(  sJ t        d      D ]m  }|||z  |z      }|||z  |z   dz      }	|d   ||dz      z
  dz  j                         }|	dk(  sJ dj                  |	             t        j                  ||      rmJ  y )Ng?g      $g      "@g      $@r	   r   r   r   )r   )axisr   zsummary size = {}g        )r   r   r   shaper   r   _py_summarizemeansumformatiscloserange)angler   query_ptr   offsetqtidxsummary	node_dist	node_size
barycenterds2cr8   s                r   test_summarizerN   f   s	    E

#ttSkD$<@

	A AwH771:LAF	<	+BMM!##Ha7LC%Iq()I 12#JqTJ1$))+D&==>@.55i@@>::i&&& ##Ha5LC12#JqTJ1$))+D!v,1X +AJ56	AJ59:	1!a%Q&++-A~D299)DD~zz)T***+r   )r&   numpyr   pytestsklearn.neighbors._quad_treer   sklearn.utilsr   r   r!   markparametrizer0   r:   rN    r   r   <module>rV      s       2 , & D 0Y/) 0 1)" 07 17&*+r   