o
    i                     @   s   d dl Z d dlZd dlZd dlmZ d dlmZ dd Zdd Z	ej
dd	ej
d
ddd Zej
dd	dd Zdd ZdS )    N)	_QuadTree)check_random_statec                  C   s   g } |  tjddgddggtjd |  tjddgddggtjd |  tjddgddggtjd |  tjddgd	dggtjd | D ]}td
dd}|| |  qHd S )N   Zdtyper   gưgư>gо   n_dimensionsverboseappendnparrayfloat32r   
build_treeZ_check_coherenceZXsXtree r   `/home/kim/smarthome/.venv/lib/python3.10/site-packages/sklearn/neighbors/tests/test_quad_tree.py"test_quadtree_boundary_computation
   s   """"

r   c                  C   s@  g } |  tjddgddggtjd |  tjddgddggtjd |  tjd	dgd
dggtjd |  tjddgddggtjd |  tjddgddggtjd |  tjd	dgd
dggtjd |  tjddgddggtjd |  tjddgddggtjd | D ]}tddd}|| |  qd S )Nr   r	         r   g      ?g       @g      @grZ|
 ?g㈵ ?g9b->  @grZ|
  @g 9?g 9?r   r
   r   r   r   r   r   test_quadtree_similar_point   s    """""""

r   r   )r	   r   protocol)r   r   r	   c           
      C   sr   t d}|d| f}t| dd}|| tj||d}t|}|D ]}||}||}	||	ks6J q$d S )Nr   
   r
   )r   )r   random_sampler   r   pickledumpsloadsget_cell)
r   r   rngr   r   sZbt2xZcell_x_treeZ
cell_x_bt2r   r   r   test_quad_tree_pickle?   s   



r&   c           
      C   s   t d}|d| f}tj||d d f }t| dd}|| |j}|j}t|D ]\}}|	|}	||	 s:J ||	 d|dk  ksFJ q+d S )Nr   r      r
   r   )
r   r   r   Zr_r   r   cumulative_sizeleafs	enumerater"   )
r   r#   r   ZXdr   r(   r)   ir%   Zcell_idr   r   r   test_qt_insert_duplicateR   s   

r,   c                  C   s  d} t jddgddgddgddggt jd}|dd d f }|jd }|d }t|dd	}|| |||| \}}|| }||d  }	|dd  jdd
}
|d |
 d  }||ks_J |	dksjJ d	|	t 
||srJ |||d\}}|dd  jdd
}
|d |
 d  }|d| ksJ tdD ]5}||| |  }||| | d  }	|d ||d   d  }|	dksJ d	|	t 
||sJ qd S )Ng?g      $g      "@g      $@r   r   r   r	   )r   )Zaxisr   zsummary size = {}g        )r   r   r   shaper   r   Z_py_summarizemeansumformatiscloserange)Zangler   Zquery_ptr   offsetZqtidxsummaryZ	node_distZ	node_sizeZ
barycenterZds2cr+   r   r   r   test_summarizef   s8   

r6   )r   numpyr   ZpytestZsklearn.neighbors._quad_treer   Zsklearn.utilsr   r   r   markZparametrizer&   r,   r6   r   r   r   r   <module>   s    "
