
    -i                        S SK r S SKrS SKrS SKJr  S SKJr  S rS r	\R                  R                  SS5      \R                  R                  SS	5      S
 5       5       r\R                  R                  SS5      S 5       rS rg)    N)	_QuadTree)check_random_statec                  0   / n U R                  [        R                  " SS/SS//[        R                  S95        U R                  [        R                  " SS/SS//[        R                  S95        U R                  [        R                  " SS/SS//[        R                  S95        U R                  [        R                  " SS/S	S//[        R                  S95        U  H.  n[	        S
SS9nUR                  U5        UR                  5         M0     g )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.13/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                     / n U R                  [        R                  " SS/SS//[        R                  S95        U R                  [        R                  " SS/SS//[        R                  S95        U R                  [        R                  " S	S/S
S//[        R                  S95        U R                  [        R                  " SS/SS//[        R                  S95        U R                  [        R                  " SS/SS//[        R                  S95        U R                  [        R                  " S	S/S
S//[        R                  S95        U R                  [        R                  " SS/SS//[        R                  S95        U R                  [        R                  " SS/SS//[        R                  S95        U  H.  n[	        SSS9nUR                  U5        UR                  5         M0     g )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                 .   [        S5      nUR                  SU 45      n[        U SS9nUR                  U5        [        R
                  " XAS9n[        R                  " U5      nU H,  nUR                  U5      nUR                  U5      n	X:X  a  M,   e   g )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T-A
,,q/CmmA&\\!_
((( r   c                 T   [        S5      nUR                  SU 45      n[        R                  X"S S 4   n[	        U SS9nUR                  U5        UR                  nUR                  n[        U5       H1  u  pxUR                  U5      n	Xi   (       d   eXY   SUS:  -   :X  a  M1   e   g )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	qBQ%xB,:DOOB**OJJE !--"~~'1A;666 r   c                  ~   Sn [         R                  " SS/SS/SS/SS//[         R                  S9nUSS S 24   nUR                  S   nUS-   n[	        USS	9nUR                  U5        UR                  X!U 5      u  pgXs   nXsS-      n	USS  R                  SS
9n
US   U
-
  S-  R                  5       nXd:X  d   eU	S:X  d   SR                  U	5      5       e[         R                  " X5      (       d   eUR                  X!S5      u  pgUSS  R                  SS
9n
US   U
-
  S-  R                  5       nUSU-  :X  d   e[        S5       Hq  nX|U-  U-      nX|U-  U-   S-      n	US   XS-      -
  S-  R                  5       nU	S:X  d   SR                  U	5      5       e[         R                  " X5      (       a  Mq   e   g )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!##H7LC%Iq()I 12#JqTJ1$))+D==>@.55i@@>::i&&&& ##H5LC12#JqTJ1$))+D!v,1XJ56	J59:	1a%Q&++-A~D299)DD~zz)**** 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   