
    0Ph                         d dl Zd dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZ d Zd Zd Zej                            d	eeg          d
             ZdS )    N)euclidean_distances)KNeighborsTransformerRadiusNeighborsTransformer)_is_sorted_by_data)assert_array_equalc                  8   d} d}d}d}t           j                            d          }|                    ||          }|                    ||          }t          j        t          |          d          }dD ]}|dk    }	t          | |          }
|
                    |          }|j        ||fk    sJ |j	        j        || |	z   z  fk    sJ |j
        d	k    sJ t          |          sJ |
                    |          }|j        ||fk    sJ |j	        j        || |	z   z  fk    sJ |j
        d	k    sJ t          |          sJ dD ]}|dk    }	t          ||
          }
|
                    |          }|j        ||fk    sJ |j	        j        || |	z   z  fk    rJ |j
        d	k    sJ t          |          sJ |
                    |          }|j        ||fk    sJ |j	        j        || |	z   z  fk    rJ |j
        d	k    sJ t          |          sJ d S )N         
   *   )distanceconnectivityr   )n_neighborsmodecsr)radiusr   )nprandomRandomStaterandn
percentiler   r   fit_transformshapedataformatr   	transformr   )r   n_samples_fit	n_queries
n_featuresrngXX2r   r   add_onenntXtX2ts                b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/neighbors/tests/test_graph.pytest_transformer_resultr)   
   s   KMIJ
)


#
#C		-,,A	9j	)	)B].q11266F - ' '*$#$GGGq!!xM=99999w}+2G!H JJJJJyE!!!!!"%%%%%mmByY66666x~){W/D"E!GGGGGzU""""!#&&&&&& - ' '*$(TBBBq!!xM=999997=]kG6K%L$NNNNNyE!!!!!"%%%%%mmByY666668>i;3H&I%KKKKKzU""""!#&&&&&&' '    c                     |                                  } | j        | j        | j        k             }t          |          | j        d         k    S )z0Return True if the diagonal is explicitly storedr   )tocoorowcollenr   )r"   explicits     r(   _has_explicit_diagonalr1   7   s:    			AuQUae^$Hx==AGAJ&&r*   c                     d} d\  }}}t           j                            d          }|                    ||          }|                    ||          }t	          |           }|                    |          }t          |          sJ t          j        |j        	                    || dz             d d df         dk              sJ |
                    |          }t          |          sJ t          j        |j        	                    || dz             d d df         dk              sJ |
                    |          }	t          |	          rJ d S )Nr	   )r
   r   r   r   )r      r   )r   r   r   r   r   r   r1   allr   reshaper   )
r   r   n_samples_transformr    r!   r"   r#   r%   r&   r'   s
             r(   test_explicit_diagonalr7   >   sQ   K5?2M&

)


#
#C		-,,A	&
	3	3B
K
8
8
8C			1		B!"%%%%%6"'//-qAA!!!Q$G1LMMMMM	q		B!"%%%%%6"'//-qAA!!!Q$G1LMMMMM --

C%c*******r*   Klassc                    d}d}t           j                            d          }|                    ||          } |                                 |          }|                                }| j                                        t          j        fdt          |j
                  D             t                    }t          ||           dS )zFCheck `get_feature_names_out` for transformers defined in `_graph.py`.r
   r   r   c                     g | ]} | 	S  r;   ).0iclass_name_lowers     r(   
<listcomp>z0test_graph_feature_names_out.<locals>.<listcomp>b   s%    EEEa	!a	!	!EEEr*   )dtypeN)r   r   r   r   fitget_feature_names_out__name__lowerarrayrangen_samples_fit_objectr   )	r8   r   r    r!   r"   est	names_outexpected_names_outr>   s	           @r(   test_graph_feature_names_outrL   T   s     MJ
)


#
#C		-,,A
%''++a..C))++I~++--EEEE51C+D+DEEE   y"455555r*   )numpyr   pytestsklearn.metricsr   sklearn.neighborsr   r   sklearn.neighbors._baser   sklearn.utils._testingr   r)   r1   r7   markparametrizerL   r;   r*   r(   <module>rU      s         / / / / / / O O O O O O O O 6 6 6 6 6 6 5 5 5 5 5 5*' *' *'Z' ' '+ + +, #8:T"UVV6 6 WV6 6 6r*   