a
    ¶Àh¤
  ã                   @   sh   d Z ddlZddlZddlZddlmZ ddlmZ ddl	m
Z
 ddlmZ dd„ Zd	d
„ Zdd„ ZdS )z2
Tests for sklearn.cluster._feature_agglomeration
é    N)Úassert_array_equal)ÚFeatureAgglomeration)Ú
make_blobs)Úassert_array_almost_equalc                  C   s€  d} t  g d¢¡ dd¡}t| t jd}t| t jd}| |¡ | |¡ t  t  |j	¡¡| ksdJ ‚t  t  |j	¡¡| ks~J ‚t  |j	¡|j
d ks˜J ‚t  |j	¡|j
d ks²J ‚| |¡}| |¡}|j
d | ksØJ ‚|j
d | ksêJ ‚|t  dg¡ksþJ ‚|t  dg¡ksJ ‚| |¡}| |¡}t  |d ¡j| ksBJ ‚t  |d ¡j| ks\J ‚t| |¡|ƒ t| |¡|ƒ d S )Né   ©r   r   r   é   ©Ú
n_clustersZpooling_funcgUUUUUUÕ?g        r   )ÚnpÚarrayÚreshaper   ÚmeanZmedianÚfitÚsizeÚuniqueZlabels_ÚshapeÚ	transformÚinverse_transformr   )r
   ÚXZ
agglo_meanZagglo_medianZXt_meanZ	Xt_medianZX_full_meanZX_full_median© r   úl/var/www/html/assistant/venv/lib/python3.9/site-packages/sklearn/cluster/tests/test_feature_agglomeration.pyÚtest_feature_agglomeration   s,    





r   c                  C   sN   t ddd\} }tdd}| | ¡ |j}| ¡ }tdd„ t|ƒD ƒ|ƒ dS )	z9Check `get_feature_names_out` for `FeatureAgglomeration`.é   r   )Z
n_featuresZrandom_stater   )r
   c                 S   s   g | ]}d |› ‘qS )Zfeatureagglomerationr   )Ú.0Úir   r   r   Ú
<listcomp>9   ó    z@test_feature_agglomeration_feature_names_out.<locals>.<listcomp>N)r   r   r   Zn_clusters_Zget_feature_names_outr   Úrange)r   Ú_Zagglor
   Z	names_outr   r   r   Ú,test_feature_agglomeration_feature_names_out0   s    

ÿr    c                  C   s*  t  g d¢¡ dd¡} tdt jd}| | ¡ | | ¡} tjt	dd | 
¡  W d   ƒ n1 sd0    Y  tjt	dd |j
| | d W d   ƒ n1 s 0    Y  tjd	d
$ t d¡ | 
| ¡ W d   ƒ n1 sà0    Y  tjtdd |j
| d W d   ƒ n1 s0    Y  d S )Nr   r   r   r	   z$Missing required positional argument)Úmatchz%Cannot use both X and Xt. Use X only.)r   ÚXtT)ÚrecordÚerrorzXt was renamed X in version 1.5)r"   )r   r   r   r   r   r   r   ÚpytestZraisesÚ	TypeErrorr   ÚwarningsÚcatch_warningsÚsimplefilterZwarnsÚFutureWarning)r   Zestr   r   r   Ú%test_inverse_transform_Xt_deprecation>   s    

&,
(r+   )Ú__doc__r'   Únumpyr   r%   Znumpy.testingr   Zsklearn.clusterr   Zsklearn.datasetsr   Zsklearn.utils._testingr   r   r    r+   r   r   r   r   Ú<module>   s    