Ë
    8Ò^j¤]  ã            
       óp  — d dl Z d dlmZ d dlmZ d dlZd dlZd dlm	Z
 d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlm Z m!Z!m"Z"m#Z#m$Z$ d dl%m&Z& d„ Z'd„ Z(d	„ Z)ejT                  jW                  d
g e,dfg d¢e,df ejZ                  g «      e,df ejZ                  g d¢«      e,dfej\                  j]                  d«      e,dfg«      d„ «       Z/ejT                  jW                  di dddœg«      d„ «       Z0d„ Z1d„ Z2ejT                  jW                  dddg«      ejT                  jW                  dddg«      d„ «       «       Z3d„ Z4d„ Z5d„ Z6d„ Z7d„ Z8d„ Z9ejT                  jW                  dg d ¢ ejZ                  g d ¢«       e:g d ¢«      g«      d!„ «       Z;d"„ Z<d#„ Z=d$„ Z>d%„ Z?d&„ Z@d'„ ZAd(„ ZBd)„ ZCd*„ ZDejT                  jW                  d+ddg«      ejT                  jW                  d,g d-¢«      d.„ «       «       ZEejT                  jW                  d/ddg«      d0„ «       ZFd1„ ZGd2„ ZHd3„ ZId4„ ZJd5„ ZKd6„ ZLd7„ ZMy)8é    N)Údefaultdict)Úpartial)Úmake_biclustersÚ
make_blobsÚmake_checkerboardÚmake_circlesÚmake_classificationÚmake_friedman1Úmake_friedman2Úmake_friedman3Úmake_hastie_10_2Úmake_low_rank_matrixÚ
make_moonsÚmake_multilabel_classificationÚmake_regressionÚmake_s_curveÚmake_sparse_coded_signalÚmake_sparse_spd_matrixÚmake_sparse_uncorrelatedÚmake_spd_matrixÚmake_swiss_roll)Úassert_allcloseÚassert_allclose_dense_sparseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equal)Úassert_all_finitec                  ó,  — ddg} t        ddddddddd d | d	¬
«      \  }}| ddgk(  sJ ‚|j                  dk(  sJ d«       ‚|j                  dk(  sJ d«       ‚t        j                  |«      j                  dk(  sJ d«       ‚t	        |d	k(  «      dk(  sJ d«       ‚t	        |dk(  «      dk(  sJ d«       ‚t	        |dk(  «      dk(  sJ d«       ‚t        dddd	d	ddd	¬«      \  }}|j                  dk(  sJ d«       ‚|j                  dk(  sJ d«       ‚t        j                  |j                  d|j                  fg|j                  d   z  «      «      j                  |j                  «      j                  d |j                  d   «      j                  d	   dk(  sJ d!«       ‚y )"Nçš™™™™™¹?ç      Ð?éd   é   é   é   é   Fr   )Ú	n_samplesÚ
n_featuresÚn_informativeÚn_redundantÚ
n_repeatedÚ	n_classesÚn_clusters_per_classÚ	hypercubeÚshiftÚscaleÚweightsÚrandom_state©r!   r"   úX shape mismatch©r!   úy shape mismatch©r%   úUnexpected number of classesé
   z(Unexpected number of samples in class #0é   z(Unexpected number of samples in class #1é   éA   z(Unexpected number of samples in class #2éÐ  é   Tç      à?)r&   r'   r(   r)   r*   r-   r/   r1   )r<   r=   )r<   Ú éÿÿÿÿz Unexpected number of unique rows)r	   ÚshapeÚnpÚuniqueÚsumÚviewÚdtypeÚreshape)r0   ÚXÚys      úx/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/datasets/tests/test_samples_generator.pyÚtest_make_classificationrK   (   sÈ  € Ø�Dˆk€GÜØØØØØØØØØØØØô�D€A€qð �s˜D�kÒ!Ð!Ð!Ø�7‰7�iÒÐ3Ð!3Ó3ÐØ�7‰7�fÒÐ0Ð0Ó0ÐÜ�9‰9�Q‹<×Ñ Ò%ÐEÐ'EÓEÐ%Üˆq�A‰v‹;˜"ÒÐHÐHÓHÐÜˆq�A‰v‹;˜"ÒÐHÐHÓHÐÜˆq�A‰v‹;˜"ÒÐHÐHÓHÐô ØØØØØØØØô	�D€A€qð �7‰7�jÒ Ð4Ð"4Ó4Ð Ø�7‰7�gÒÐ1Ð1Ó1Ðä
�	‰	�!—&‘&˜2˜qŸw™w˜-˜¨1¯7©7°1©:Ñ5Ó6Ó7ß	‰ˆa�g‰g‹ß	‰��Q—W‘W˜Q‘ZÓ	 ß	‰ˆqñ	ð ò		ð*ð *ó*ñ	ó    c                  ó>  — d} t        t        | dddddd¬«      }ddgdfddgdz  dfdd	gd
z  dfddgdz  dfddd	gdfddgdz  dfddgdffD �]M  \  }}}t        |«      }||z  }|dz  }dD �]+  } ||||||||d¬«      \  }	}
|	j                  ||fk(  sJ ‚|
j                  |fk(  sJ ‚t	        j
                  |	«      }|j                  dj                  |j                  d   «      ¬«      j                  «       }t	        j                  |d¬«      \  }}t        |«      |k(  sJ d«       ‚t        t        «      }t        ||
«      D ]  \  }}||   j                  |«       Œ |j                  «       D ]  }t        |«      |k(  rŒJ d«       ‚ t        |«      |k(  sJ d«       ‚t!        t	        j"                  |
«      t        |
«      z  |z  dg|z  d¬«       t%        t        |«      «      D ]¯  }|	||k(     j'                  d¬«      }|r9t!        t	        j(                  |«      | z  t	        j*                  |«      dd¬«       ŒVt-        j.                  t0        «      5  t!        t	        j(                  |«      | z  t	        j*                  |«      dd¬«       d d d «       Œ± �Œ. �ŒP t-        j.                  t2        «      5   |dddd¬!«       d d d «       t-        j.                  t2        «      5   |dddd¬!«       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   ŒExY w# 1 sw Y   y xY w)"z­Test the construction of informative features in make_classification

    Also tests `n_clusters_per_class`, `n_classes`, `hypercube` and
    fully-specified `weights`.
    g    €„.Ar   r$   F)Ú	class_sepr)   r*   Úflip_yr.   r/   Úshuffler:   gUUUUUUÕ?r%   r    é   r>   ç      è?r8   é@   é2   )FT)r&   r+   r0   r'   r(   r,   r-   r1   z|S{0})rF   T)Úreturn_inversez6Wrong number of clusters, or not in distinct quadrantsz"Wrong number of clusters per classzWrong number of classesz!Wrong number of samples per class©Úerr_msg©Úaxisr#   z/Clusters are not centered on hypercube vertices)ÚdecimalrW   z5Clusters should not be centered on hypercube verticesN)r'   r(   r+   r,   )r   r	   ÚlenrA   rB   ÚsignrE   ÚformatÚstridesÚravelrC   r   ÚsetÚzipÚaddÚvaluesr   ÚbincountÚrangeÚmeanÚabsÚonesÚpytestÚraisesÚAssertionErrorÚ
ValueError)rN   Úmaker(   r0   r,   r+   Ú
n_clustersr&   r-   rH   rI   ÚsignsÚunique_signsÚcluster_indexÚclusters_by_classÚclusterÚclsÚclustersÚcentroids                      rJ   Ú-test_make_classification_informative_featuresrw   X   sz  € ð €IÜÜØØØØØØØô	€Dð 
ˆQˆC�ˆØ	
ˆUˆG�a‰K˜ÐØ	
ˆUˆG�a‰K˜ÐØ	
ˆUˆG�a‰K˜ÐØ	
ˆU�EˆN˜AÐØ	ˆeˆW�q‰[˜"ÐØ	ˆaˆS�!ˆð9ó GÑ4ˆ�wÐ 4ô ˜“Lˆ	ØÐ!5Ñ5ˆ
Ø ‘Oˆ	à&ó :	ˆIÙØ#Ø#ØØ(Ø+Ø%9Ø#Øô	‰DˆAˆqð —7‘7˜y¨-Ð8Ò8Ð8Ð8Ø—7‘7˜y˜lÒ*Ð*Ð*ô —G‘G˜A“JˆEØ—J‘J W§^¡^°E·M±MÀ!Ñ4DÓ%E�JÓF×LÑLÓNˆEÜ*,¯)©)°EÈ$Ô*OÑ'ˆL˜-ä�|Ó$¨
Ò2ð ØHóÐ2ô !,¬CÓ 0ÐÜ # M°1Ó 5ò 4‘�˜Ø! #Ñ&×*Ñ*¨7Õ3ð4à-×4Ñ4Ó6ò �Ü˜8“}Ð(<Ó<ð Ø8óÐ<ðô Ð(Ó)¨YÒ6ÐQÐ8QÓQÐ6ä%Ü—‘˜A“¤ Q£Ñ'¨7Ñ2Ø��i‘Ø;õô !¤ \Ó!2Ó3ò �Ø˜]¨gÑ5Ñ6×;Ñ;ÀÐ;ÓC�ÙÜ-ÜŸ™˜xÓ(¨9Ñ4ÜŸ™ Ó.Ø !Ø Qö	ô  Ÿ™¤~Ó6ñ Ü1ÜŸF™F 8Ó,¨yÑ8ÜŸG™G MÓ2Ø$%à Wõ÷ð òòQ:	ðGôR 
�‰”zÓ	"ñ QÙ˜¨°aÈaÕP÷Qä	�‰”zÓ	"ñ QÙ˜¨°aÈaÕP÷Qð Q÷ñ ú÷Qð Qú÷Qð Qús$   É9K:	Ê6LË$LË:LÌLÌLc                  ót  ‡— i dd“dd“dd“dd“d	d“d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“} t        d'i | ¤Ž\  }}d| d<   t        d'i | ¤ŽŠt        ‰d«      r0t        ‰d«      r$t        ‰d «      rt        ‰d!«      rt        ‰d"«      sJ ‚ˆfd#„}t        j                  |‰j                  «      sJ ‚t        j                  |‰j
                  «      sJ ‚‰j                  t         j                  k(  sJ ‚‰j                  | k(  sJ ‚ |d$«      | d   k(  sJ ‚ |d%«      | d   k(  sJ ‚ |d&«      | d	   k(  sJ ‚y)(zy
    Test that make_classification returns a Bunch when return_X_y is False.

    Also that bunch.X is the same as X
    r&   r!   r'   r"   r(   r#   r)   r$   r*   r+   r%   r,   r:   r0   NrO   ç{®Gáz„?rN   ç      ð?r-   Tr.   ç        r/   rP   r1   é*   Ú
return_X_yFÚDESCRÚ
parametersÚfeature_inforH   rI   c                 ó:   •— ‰j                   j                  | «      S )N)r€   Úcount)Ústr_Úbunchs    €rJ   r‚   z2test_make_classification_return_x_y.<locals>.countâ   s   ø€ Ø×!Ñ!×'Ñ'¨Ó-Ð-rL   ÚinformativeÚ	redundantÚrepeated© )	r	   ÚhasattrrB   Úarray_equalrH   rI   r~   Ú__doc__r   )ÚkwargsrH   rI   r‚   r„   s       @rJ   Ú#test_make_classification_return_x_yr�   »   sÚ  ø€ ðØ�Sðà�bðð 	˜ðð 	�qð	ð
 	�aðð 	�Qðð 	 ðð 	�4ðð 	�$ðð 	�Sðð 	�Tðð 	�ðð 	�ðð 	�4ðð 	˜ðð  	�dð!€Fô& Ñ( Ñ(�D€A€qà €Fˆ<ÑÜÑ) &Ñ)€Eô 	��wÔÜ�E˜<Ô(Ü�E˜>Ô*Ü�E˜3ÔÜ�E˜3Ôðð	 ô.ô �>‰>˜!˜UŸW™WÔ%Ð%Ð%Ü�>‰>˜!˜UŸW™WÔ%Ð%Ð%Ø�;‰;Ô-×5Ñ5Ò5Ð5Ð5Ø×Ñ˜vÒ%Ð%Ð%Ù�Ó 6¨/Ñ#:Ò:Ð:Ð:Ù�Ó ¨Ñ!6Ò6Ð6Ð6Ù�Ó  |Ñ 4Ò4Ð4Ñ4rL   zweights, err_type, err_msgz:Weights specified but incompatible with number of classes.)r    rR   r   r%   c                 ót   — t        j                  ||¬«      5  t        | ¬«       d d d «       y # 1 sw Y   y xY w)N©Úmatch)r0   )ri   rj   r	   )r0   Úerr_typerW   s      rJ   Ú%test_make_classification_weights_typer’   î   s/   € ô6 
�‰�x wÔ	/ñ -Ü GÕ,÷-÷ -ñ -ús   ˜.®7rŒ   )r+   r(   c                 ó¦   — t        dddgddœ| ¤Ž\  }}t        dt        j                  ddg«      ddœ| ¤Ž\  }}t        ||«       t        ||«       y )Nr   gÍÌÌÌÌÌì?r   )r0   r1   rˆ   )r	   rB   Úarrayr   )rŒ   ÚX1Úy1ÚX2Úy2s        rJ   Ú1test_make_classification_weights_array_or_list_okr™     sX   € ä ÐN¨#¨s¨À!ÑNÀvÑN�F€BˆÜ ÐX¬¯©°3¸°*Ó)=ÈAÑXÐQWÑX�F€BˆÜ˜˜BÔÜ˜˜BÕrL   c            	      óŒ  — t        dd«      D ]¦  \  } }t        ddddd| ¬«      \  }}|j                  d	k(  sJ d
«       ‚| s't        |D �cg c]  }t        |«      ‘Œ c}«      dk(  sJ ‚t	        |D �cg c]  }t        |«      ‘Œ c}«      |k(  sJ ‚t        |D �cg c]  }t        |«      ‘Œ c}«      dk  rŒ¦J ‚ y c c}w c c}w c c}w )N©TF©r   r$   r!   r"   r%   r   F)r&   r'   r+   r1   Úreturn_indicatorÚallow_unlabeledr2   r3   r:   )ra   r   rA   ÚmaxÚminr[   )rž   Ú
min_lengthrH   ÚYrI   s        rJ   Ú4test_make_multilabel_classification_return_sequencesr£     sË   € Ü'*¨=¸&Ó'Aò -Ñ#ˆ˜Ü-ØØØØØ"Ø+ô
‰ˆˆ1ð �w‰w˜)Ò#Ð7Ð%7Ó7Ð#ÙÜ¨Ö* 1œ˜A�Ò*Ó+¨qÒ0Ð0Ð0Ü AÖ&˜q”C˜•FÒ&Ó'¨:Ò5Ð5Ð5Ü AÖ&˜q”C˜•FÒ&Ó'¨1Ó,Ð,Ð,ñ-ùò +ùÚ&ùÚ&s   ÁB7
Á/B<
ÂC
c                  ó  — t        dd«      D ]s  \  } }t        dddd| ¬«      \  }}|j                  dk(  sJ d	«       ‚|j                  d
k(  sJ d«       ‚t        j                  t        j
                  |d¬«      |kD  «      rŒsJ ‚ t        dddd d¬«      \  }}}}t        |«       t        |«       |j                  dk(  sJ ‚t        |j                  «       d«       |j                  dk(  sJ ‚t        |j                  d¬«      dgdz  «       y )Nr›   rœ   r9   r"   r%   r   )r&   r'   r+   r1   rž   ©r9   r"   r3   ©r9   r%   úY shape mismatchrX   T)r&   r'   r+   r1   rž   Úreturn_distributionsr6   r$   )r"   r%   )	ra   r   rA   rB   ÚallrD   r   r   r   )rž   r¡   rH   r¢   r—   ÚY2Úp_cÚp_w_cs           rJ   Ú4test_make_multilabel_classification_return_indicatorr­   &  s  € Ü'*¨=¸&Ó'Aò 
6Ñ#ˆ˜Ü-ØØØØØ+ô
‰ˆˆ1ð �w‰w˜(Ò"Ð6Ð$6Ó6Ð"Ø�w‰w˜'Ò!Ð5Ð#5Ó5Ð!Ü�v‰v”b—f‘f˜Q QÔ'¨*Ñ4Õ5Ð5Ð5ð
6ô 8ØØØØØ'Ø!ôÑ€BˆˆC�ô ˜a Ô$Ü�q˜"ÔØ�9‰9˜ÒÐÐÜ˜Ÿ™›	 1Ô%Ø�;‰;˜'Ò!Ð!Ð!Ü˜Ÿ	™	 q˜	Ó)¨A¨3°©7Õ3rL   rž   TFÚsparse_featurec           	      ó  — t        dddd|d| ¬«      \  }}|j                  dk(  sJ d«       ‚|j                  d	k(  sJ d
«       ‚t        j                  |«      sJ ‚|rt        j                  |«      sJ ‚t        j                  |«      rJ ‚y y )Nr9   r"   r%   r   Úsparse)r&   r'   r+   r1   r°   r�   rž   r¥   r3   r¦   r§   )r   rA   ÚspÚissparse)rž   r®   rH   r¢   s       rJ   Ú1test_make_multilabel_classification_return_sparser³   E  s�   € ô *ØØØØØØ!Ø'ô�D€A€qð �7‰7�hÒÐ2Ð 2Ó2ÐØ�7‰7�gÒÐ1Ð1Ó1ÐÜ�;‰;�qŒ>Ðˆ>Ù+Œ2�;‰;�qŒ>ÐCÐC´R·[±[À´^ÐCÐC°^ˆ>rL   c                  óÎ   — t        dd¬«      \  } }| j                  dk(  sJ d«       ‚|j                  dk(  sJ d«       ‚t        j                  |«      j                  dk(  sJ d	«       ‚y )
Nr!   r   )r&   r1   ©r!   r8   r3   r4   r5   )r:   r7   )r   rA   rB   rC   ©rH   rI   s     rJ   Útest_make_hastie_10_2r·   W  sd   € Ü c¸Ô:�D€A€qØ�7‰7�iÒÐ3Ð!3Ó3ÐØ�7‰7�fÒÐ0Ð0Ó0ÐÜ�9‰9�Q‹<×Ñ Ò%ÐEÐ'EÓEÑ%rL   c           
      ó˜  — t        ddddddd| ¬«      \  }}}|j                  d	k(  sJ d
«       ‚|j                  dk(  sJ d«       ‚|j                  dk(  sJ d«       ‚t        |dk7  «      dk(  sJ d«       ‚t        t	        j
                  |t	        j                  ||«      z
  «      dd¬«       t        dd¬«      \  }}|j                  dk(  sJ ‚y )NéÈ   r8   r%   r#   Tr{   rz   )r&   r'   r(   Úeffective_rankÚcoefÚbiasÚnoiser1   )r¹   r8   r3   )r¹   r5   ©r8   úcoef shape mismatchú)Unexpected number of informative featuresr$   ©rZ   r!   )r&   r'   )r!   r$   )r   rA   rD   r   rB   ÚstdÚdot©Úglobal_random_seedrH   rI   Úcs       rJ   Útest_make_regressionrÇ   ^  sÚ   € ÜØØØØØØØØ'ô	�G€A€qˆ!ð �7‰7�iÒÐ3Ð!3Ó3ÐØ�7‰7�fÒÐ0Ð0Ó0ÐØ�7‰7�eÒÐ2Ð2Ó2ÐÜˆq�C‰x‹=˜AÒÐJÐJÓJÐô œŸ™˜q¤2§6¡6¨!¨Q£<Ñ/Ó0°#¸qÕAô  S°QÔ7�D€A€qØ�7‰7�hÒÐÑrL   c           	      óV  — t        dddddd| ¬«      \  }}}|j                  dk(  sJ d«       ‚|j                  d	k(  sJ d
«       ‚|j                  dk(  sJ d«       ‚t        t        |dk7  «      dd«       t	        t        j                  |t        j                  ||«      z
  «      dd¬«       y )Nr!   r8   r%   Trz   )r&   r'   r(   Ú	n_targetsr»   r½   r1   rµ   r3   )r!   r%   r5   )r8   r%   r¿   r{   rÀ   r$   rÁ   )r   rA   r   rD   r   rB   rÂ   rÃ   rÄ   s       rJ   Ú test_make_regression_multitargetrÊ   w  s¬   € ÜØØØØØØØ'ô�G€A€qˆ!ð �7‰7�iÒÐ3Ð!3Ó3ÐØ�7‰7�hÒÐ2Ð 2Ó2ÐØ�7‰7�gÒÐ4Ð4Ó4ÐÜ”s˜1 ™8“} aÐ)TÔUô œŸ™˜q¤2§6¡6¨!¨Q£<Ñ/Ó0°#¸qÖArL   c                 óÈ  — t        j                  g d¢«      }t        j                  ddgddgddgg«      }t        | dd||¬«      \  }}|j                  dk(  sJ d«       ‚|j                  d	k(  sJ d
«       ‚t        j                  |«      j                  dk(  sJ d«       ‚t        t        ||«      «      D ]-  \  }\  }}t        |||k(     |z
  j                  «       |dd«       Œ/ y )N©gš™™™™™©?gš™™™™™É?gš™™™™™Ù?r{   rz   rT   r:   )r1   r&   r'   ÚcentersÚcluster_std)rT   r:   r3   )rT   r5   r6   zUnexpected number of blobsr$   úUnexpected std)	rB   r”   r   rA   rC   Ú	enumeratera   r   rÂ   )rÅ   Úcluster_stdsÚcluster_centersrH   rI   ÚiÚctrrÂ   s           rJ   Útest_make_blobsrÕ   ‹  sì   € Ü—8‘8Ò,Ó-€LÜ—h‘h  c 
¨S°#¨J¸¸c¸
ÐCÓD€OÜØ'ØØØØ ô�D€A€qð �7‰7�gÒÐ1Ð1Ó1ÐØ�7‰7�eÒÐ/Ð/Ó/ÐÜ�9‰9�Q‹<×Ñ Ò%ÐCÐ'CÓCÐ%Ü"¤3 ¸Ó#EÓFò O‰ˆ‰:ˆC�Ü˜Q˜q A™v™Y¨™_×1Ñ1Ó3°S¸!Ð=MÕNñOrL   c                  óÖ   — g d¢} t        | dd¬«      \  }}|j                  t        | «      dfk(  sJ d«       ‚t        t	        j
                  |t        | «      ¬«      | k(  «      sJ d«       ‚y )N)rT   é   r"   r:   r   ©r&   r'   r1   r3   ©Ú	minlengthú$Incorrect number of samples per blob©r   rA   rD   r©   rB   rd   r[   )r&   rH   rI   s      rJ   Útest_make_blobs_n_samples_listrÝ   �  sf   € Ú€IÜ 	°aÀaÔH�D€A€qà�7‰7”s˜9“~ qÐ)Ò)Ð=Ð+=Ó=Ð)ÜŒr�{‰{˜1¬¨I«Ô7¸9ÑDÔEð Ø.óÑErL   c                 óÌ  — g d¢}t        j                  ddgddgddgg«      }t        j                  g d¢«      }t        |||| ¬«      \  }}|j                  t	        |«      dfk(  sJ d«       ‚t        t        j                  |t        |«      ¬«      |k(  «      sJ d	«       ‚t        t        ||«      «      D ]-  \  }\  }}t        |||k(     |z
  j                  «       |d
d«       Œ/ y )N©r"   r"   r"   r{   rz   rÌ   )r&   rÍ   rÎ   r1   r:   r3   rÙ   rÛ   r$   rÏ   )rB   r”   r   rA   rD   r©   rd   r[   rÐ   ra   r   rÂ   )	rÅ   r&   rÍ   rÑ   rH   rI   rÓ   rÔ   rÂ   s	            rJ   Ú+test_make_blobs_n_samples_list_with_centersrà   §  së   € Ú€IÜ�h‰h˜˜c˜
 S¨# J°°c°
Ð;Ó<€GÜ—8‘8Ò,Ó-€LÜØØØ Ø'ô	�D€A€qð �7‰7”s˜9“~ qÐ)Ò)Ð=Ð+=Ó=Ð)ÜŒr�{‰{˜1¬¨I«Ô7¸9ÑDÔEð Ø.óÐEô #¤3 w°Ó#=Ó>ò O‰ˆ‰:ˆC�Ü˜Q˜q A™v™Y¨™_×1Ñ1Ó3°S¸!Ð=MÕNñOrL   r&   )r#   r%   r   c                 óÒ   — d }t        | |d¬«      \  }}|j                  t        | «      dfk(  sJ d«       ‚t        t	        j
                  |t        | «      ¬«      | k(  «      sJ d«       ‚y )Nr   )r&   rÍ   r1   r:   r3   rÙ   rÛ   rÜ   )r&   rÍ   rH   rI   s       rJ   Ú&test_make_blobs_n_samples_centers_nonerâ   º  sh   € ð €GÜ 	°7ÈÔK�D€A€qà�7‰7”s˜9“~ qÐ)Ò)Ð=Ð+=Ó=Ð)ÜŒr�{‰{˜1¬¨I«Ô7¸9ÑDÔEð Ø.óÑErL   c                  ón   — ddg} d}t        | |dd¬«      \  }}}|j                  t        | «      |fk(  sJ ‚y )Nr8   r"   r%   Tr   )r&   r'   Úreturn_centersr1   )r   rA   r[   )r&   r'   rH   rI   rÍ   s        rJ   Útest_make_blobs_return_centersrå   Ç  sG   € Ø�R�€IØ€JÜØ¨
À4ÐVWô�M€A€qˆ'ð �=‰=œS ›^¨ZÐ8Ò8Ð8Ñ8rL   c                  óŒ  — g d¢} t        j                  ddgddgddgg«      }t        j                  g d¢«      }t        j                  d| › d|d d › �«      }t	        j
                  t        |¬«      5  t        | |d d ¬	«       d d d «       t        j                  d
|› d|d d › �«      }t	        j
                  t        |¬«      5  t        | ||d d ¬«       d d d «       dj                  d«      }t	        j
                  t        |¬«      5  t        | d¬	«       d d d «       y # 1 sw Y   ŒŸxY w# 1 sw Y   ŒXxY w# 1 sw Y   y xY w)Nrß   r{   rz   rÌ   zMLength of `n_samples` not consistent with number of centers. Got n_samples = z and centers = r@   r�   )rÍ   zNLength of `clusters_std` not consistent with number of centers. Got centers = z and cluster_std = )rÍ   rÎ   z8Parameter `centers` must be array-like. Got {!r} insteadr%   )	rB   r”   ÚreÚescaperi   rj   rl   r   r]   )r&   rÍ   rÑ   Úwrong_centers_msgÚwrong_std_msgÚwrong_type_msgs         rJ   Útest_make_blobs_errorrì   Ñ  sH  € Ú€IÜ�h‰h˜˜c˜
 S¨# J°°c°
Ð;Ó<€GÜ—8‘8Ò,Ó-€LÜŸ	™	ð	Ø$˜+ _°W¸S¸b°\°Nð	DóÐô 
�‰”zÐ):Ô	;ñ 4Ü�9 g¨c¨r lÕ3÷4ä—I‘Ið	Ø ˜	Ð!4°\À#À2Ð5FÐ4Gð	Ió€Mô 
�‰”z¨Ô	7ñ NÜ�9 g¸<ÈÈÐ;LÕM÷NàO×VÑVØ	ó€Nô 
�‰”z¨Ô	8ñ )Ü�9 aÕ(÷)ð )÷4ð 4ú÷Nð Nú÷
)ð )ús$   Á3D"ÃD.ÄD:Ä"D+Ä.D7Ä:Ec           
      ób  — t        ddd| ¬«      \  }}|j                  dk(  sJ d«       ‚|j                  dk(  sJ d«       ‚t        |dt        j                  t        j
                  |d d …d	f   z  |d d …d
f   z  «      z  d|d d …df   dz
  dz  z  z   d|d d …df   z  z   d|d d …df   z  z   «       y )Nr#   r8   r{   )r&   r'   r½   r1   ©r#   r8   r3   ©r#   r5   r   r$   r"   r:   r>   r%   rQ   )r
   rA   r   rB   ÚsinÚpi©rÅ   rH   rI   s      rJ   Útest_make_friedman1ró   è  sË   € ÜØ ¨#Ð<Nô�D€A€qð �7‰7�gÒÐ1Ð1Ó1ÐØ�7‰7�dŠ?Ð.Ð.Ó.ˆ?äØ	Ø
ŒR�V‰V”B—E‘E˜Aša ˜d™G‘O aª¨1¨¡gÑ-Ó.Ñ.Ø
�’!�Q�$‘˜#‘ !Ñ#Ñ
#ñ	$à
ˆq’�A�‰w‰,ñ	ð ˆa’�1�‰g‰+ñ	õrL   c           
      ó  — t        dd| ¬«      \  }}|j                  dk(  sJ d«       ‚|j                  dk(  sJ d«       ‚t        ||d d …df   d	z  |d d …d
f   |d d …d	f   z  d
|d d …d
f   |d d …df   z  z  z
  d	z  z   dz  «       y )Nr#   r{   ©r&   r½   r1   ©r#   rQ   r3   rï   r5   r   r:   r$   r%   r>   )r   rA   r   rò   s      rJ   Útest_make_friedman2r÷   ù  s    € Ü A¨SÐ?QÔR�D€A€qà�7‰7�fÒÐ0Ð0Ó0ÐØ�7‰7�dŠ?Ð.Ð.Ó.ˆ?äØ	ˆAŠa�ˆd‰G�q‰L˜Aša ˜d™G aª¨1¨¡gÑ-°°Q²q¸!°t±W¸qÂÀAÀ¹wÑ5FÑ0GÑGÈAÑMÑMÐRUÑUõrL   c                 ó   — t        dd| ¬«      \  }}|j                  dk(  sJ d«       ‚|j                  dk(  sJ d«       ‚t        |t        j                  |d d …df   |d d …d	f   z  d|d d …df   |d d …d
f   z  z  z
  |d d …df   z  «      «       y )Nr#   r{   rõ   rö   r3   rï   r5   r$   r:   r%   r   )r   rA   r   rB   Úarctanrò   s      rJ   Útest_make_friedman3rú     sš   € Ü A¨SÐ?QÔR�D€A€qà�7‰7�fÒÐ0Ð0Ó0ÐØ�7‰7�dŠ?Ð.Ð.Ó.ˆ?äØ	Œ2�9‰9�aš˜1˜‘g ¢! Q $¡Ñ'¨!¨q²°A°©w¸º1¸a¸4¹Ñ/@Ñ*AÑAÀQÂqÈ!ÀtÁWÑLÓMõrL   c                  ó¤   — t        ddddd¬«      } | j                  dk(  sJ d«       ‚dd	lm}  || «      \  }}}t	        |«      dz
  d
k  sJ d«       ‚y )NrT   r9   r#   ry   r   )r&   r'   rº   Útail_strengthr1   )rT   r9   r3   )Úsvdr   zX rank is not approximately 5)r   rA   Únumpy.linalgrý   rD   )rH   rý   ÚuÚsÚvs        rJ   Útest_make_low_rank_matrixr    sc   € ÜØØØØØô	€Að �7‰7�hÒÐ2Ð 2Ó2Ðå á�!‹f�G€A€qˆ!Üˆq‹6�A‰:˜ÒÐ<Ð<Ó<ÑrL   c                 óÐ  — t        dddd| ¬«      \  }}}|j                  dk(  sJ d«       ‚|j                  dk(  sJ d	«       ‚|j                  d
k(  sJ d«       ‚|D ]*  }t        t        j                  |«      «      dk(  rŒ%J d«       ‚ t        |||z  «       t        t        j                  |dz  j                  d¬«      «      t        j                  |j                  d   «      «       y )Nr#   é   r8   r%   )r&   Ún_componentsr'   Ún_nonzero_coefsr1   rî   r§   )r  r8   zD shape mismatch)r#   r  r3   zNon-zero coefs mismatchr:   r$   rX   r   )	r   rA   r[   rB   Úflatnonzeror   ÚsqrtrD   rh   )rÅ   r¢   ÚDrH   Úrows        rJ   Útest_make_sparse_coded_signalr     sß   € Ü&ØØØØØ'ô�G€A€qˆ!ð �7‰7�gÒÐ1Ð1Ó1ÐØ�7‰7�gÒÐ1Ð1Ó1ÐØ�7‰7�fÒÐ0Ð0Ó0ÐØò HˆÜ”2—>‘> #Ó&Ó'¨1Ó,ÐGÐ.GÓGÐ,ðHä�A�q˜1‘uÔÜ”B—G‘G˜Q ™TŸJ™J¨A˜JÓ.Ó/´·±¸¿¹À¹Ó1DÕErL   c                  ó~   — t        ddd¬«      \  } }| j                  dk(  sJ d«       ‚|j                  dk(  sJ d«       ‚y )	Nr#   r8   r   rØ   rî   r3   rï   r5   )r   rA   r¶   s     rJ   Útest_make_sparse_uncorrelatedr  1  sB   € Ü#¨a¸BÈQÔO�D€A€qà�7‰7�gÒÐ1Ð1Ó1ÐØ�7‰7�dŠ?Ð.Ð.Ó.‰?rL   c                 óÖ   — t        d| ¬«      }|j                  dk(  sJ d«       ‚t        ||j                  «       ddlm}  ||«      \  }}t        j                  |dkD  «      sJ d«       ‚y )Nr#   )Ún_dimr1   )r#   r#   r3   r   ©ÚeigúX is not positive-definite)r   rA   r   ÚTrþ   r  rB   r©   )rÅ   rH   r  ÚeigenvaluesÚ_s        rJ   Útest_make_spd_matrixr  8  sa   € Ü˜aÐ.@ÔA€Aà�7‰7�fÒÐ0Ð0Ó0ÐÜ˜a §¡Ô%å á˜“V�N€K�Ü�6‰6�+ ‘/Ô"Ð@Ð$@Ó@Ñ"rL   Ú	norm_diagÚsparse_format)NÚbsrÚcooÚcscÚcsrÚdiaÚdokÚlilc                 ó  — d}t        || ||¬«      }|j                  ||fk(  sJ d«       ‚|€0t        j                  |«      rJ ‚t	        ||j
                  «       |}nLt        j                  |«      r|j                  |k(  sJ ‚t        ||j
                  «       |j                  «       }ddl	m
}  ||«      \  }}t        j                  |dkD  «      sJ d«       ‚| r.t        |j                  «       t        j                  |«      «       y y )Nr#   )r  r  r  r1   r3   r   r  r  )r   rA   r±   r²   r   r  r]   r   Útoarrayrþ   r  rB   r©   r   Údiagonalrh   )	r  r  rÅ   r  rH   ÚXarrr  r  r  s	            rJ   Útest_make_sparse_spd_matrixr$  D  sê   € ð
 €EÜØØØ#Ø'ô		€Að �7‰7�u˜e�nÒ$Ð8Ð&8Ó8Ð$ØÐÜ—;‘;˜q”>Ð!Ð!Ü˜˜1Ÿ3™3ÔØ‰ä�{‰{˜1Œ~ !§(¡(¨mÒ";Ð;Ð;Ü$ Q¨¯©Ô,Ø�y‰y‹{ˆå ñ ˜“Y�N€K�Ü�6‰6�+ ‘/Ô"Ð@Ð$@Ó@Ð"áä! $§-¡-£/´2·7±7¸5³>ÕBð rL   Úholec                 ó  — t        dd| |¬«      \  }}|j                  dk(  sJ ‚|j                  dk(  sJ ‚t        |d d …df   |t        j                  |«      z  «       t        |d d …df   |t        j
                  |«      z  «       y )Nr#   r{   )r&   r½   r1   r%  ©r#   r%   rï   r   r:   )r   rA   r   rB   Úcosrð   )rÅ   r%  rH   Úts       rJ   Útest_make_swiss_rollr*  f  sz   € äØ˜3Ð-?Àdô�D€A€qð �7‰7�fÒÐÐØ�7‰7�dŠ?Ðˆ?Ü˜a¢ 1 ™g q¬2¯6©6°!«9¡}Ô5Ü˜a¢ 1 ™g q¬2¯6©6°!«9¡}Õ5rL   c                 óH  — t        dd| ¬«      \  }}|j                  dk(  sJ d«       ‚|j                  dk(  sJ d«       ‚t        |d d …df   t        j                  |«      «       t        |d d …d	f   t        j
                  |«      t        j                  |«      d
z
  z  «       y )Nr#   r{   rõ   r'  r3   rï   zt shape mismatchr   r:   r$   )r   rA   r   rB   rð   r\   r(  )rÅ   rH   r)  s      rJ   Útest_make_s_curver,  r  sˆ   € Ü !¨3Ð=OÔP�D€A€qà�7‰7�fÒÐ0Ð0Ó0ÐØ�7‰7�dŠ?Ð.Ð.Ó.ˆ?Ü˜a¢ 1 ™g¤r§v¡v¨a£yÔ1Ü˜a¢ 1 ™g¤r§w¡w¨q£z´R·V±V¸A³YÀ±]Ñ'CÕDrL   c                  ó.  — t        dddd¬«      \  } }}| j                  dk(  sJ d«       ‚|j                  dk(  sJ d«       ‚|j                  dk(  sJ d	«       ‚t        | «       t        |«       t        |«       t        dddd¬«      \  }}}t        | |«       y )
N©r!   r!   rQ   Tr   ©rA   rn   rP   r1   r3   )rQ   r!   úrows shape mismatchúcolumns shape mismatch)r   rA   r   r   )rH   ÚrowsÚcolsr—   r  s        rJ   Útest_make_biclustersr4  {  s±   € Ü#Ø Q°À1ô�M€A€tˆTð �7‰7�jÒ Ð4Ð"4Ó4Ð Ø�:‰:˜Ò!Ð8Ð#8Ó8Ð!Ø�:‰:ð ò ð  ð  ó ð ô �aÔÜ�dÔÜ�dÔäØ Q°À1ô�H€Bˆˆ1ô ˜a Õ$rL   c                  óz  — t        dddd¬«      \  } }}| j                  dk(  sJ d«       ‚|j                  dk(  sJ d«       ‚|j                  dk(  sJ d«       ‚t        dd	dd¬«      \  } }}t        | «       t        |«       t        |«       t        dd	dd¬«      \  }}}t        dd	dd¬«      \  }}}t        ||«       y )
Nr.  )r"   r#   Tr   r/  r3   r0  r1  r:   )r   rA   r   r   )rH   r2  r3  r•   r  r—   s         rJ   Útest_make_checkerboardr6  �  sç   € Ü%Ø W°dÈô�M€A€tˆTð �7‰7�jÒ Ð4Ð"4Ó4Ð Ø�:‰:˜Ò#Ð:Ð%:Ó:Ð#Ø�:‰:ð ò ð  ð  ó ð ô
 &Ø Q°À1ô�M€A€tˆTô �aÔÜ�dÔÜ�dÔä Ø Q°À1ô�H€Bˆˆ1ô !Ø Q°À1ô�H€Bˆˆ1ô ˜b "Õ%rL   c                 ó°   — t        dd| ¬«      \  }}t        ||«      D ]6  \  }}|dk(  rddgnddg}||z
  dz  j                  «       }t        |dd	¬
«       Œ8 y )Nr%   F)rP   r1   r   r{   rz   r>   r:   z$Point is not on expected unit circlerV   )r   ra   rD   r   )rÅ   rH   rI   ÚxÚlabelÚcenterÚdist_sqrs          rJ   Útest_make_moonsr<  ª  sj   € Ü�a Ð5GÔH�D€A€qÜ˜˜1“Iò 
‰ˆˆ5Ø$¨šz�#�s‘°°S¨zˆØ˜‘Z AÑ%×*Ñ*Ó,ˆÜØ�cÐ#Iö	
ñ
rL   c                  ól  — t        d¬«      \  } }t        j                  |dk(  «      dk(  rt        j                  |dk(  «      dk(  sJ d«       ‚| j                  dk(  sJ d	«       ‚|j                  d
k(  sJ d«       ‚t	        j
                  t        d¬«      5  t        d¬«       d d d «       y # 1 sw Y   y xY w)N)é   r#   ©r&   r   r>  r$   r#   z$Number of samples in a moon is wrong)é   r:   r3   )r@  r5   z8`n_samples` can be either an int or a two-element tuple.r�   r¾   )r   rB   rD   rA   ri   rj   rl   r¶   s     rJ   Útest_make_moons_unbalancedrA  ´  sª   € Ü Ô'�D€A€qÜ�6‰6�!�q‘&‹>˜QÒ¤2§6¡6¨!¨q©&£>°QÒ#6ð Ø.óÐ6ð �7‰7�gÒÐ1Ð1Ó1ÐØ�7‰7�eÒÐ/Ð/Ó/Ðä	�‰ÜØIô
ñ $ô 	˜UÕ#÷	$÷ $ñ $ús   ÂB*Â*B3c                  óÀ  — d} dD ]×  \  }}}t        |dd | ¬«      \  }}|j                  |dfk(  sJ d«       ‚|j                  |fk(  sJ d«       ‚ddg}t        ||«      D ]A  \  }}||z
  dz  j                  «       }	|d	k(  rd
n| dz  }
|d	k(  rd
n| dz  }
t	        |	|
d¬«       ŒC ||d	k(     j                  |dfk(  sJ d«       ‚||dk(     j                  |dfk(  rŒÒJ d«       ‚ y )Ng333333Ó?))r>  r%   rQ   )r  rQ   rQ   F)rP   r½   Úfactorr:   r3   r5   r{   r   rz   zPoint is not on expected circlerV   z1Samples not correctly distributed across circles.r$   )r   rA   ra   rD   r   )rC  r&   Ún_outerÚn_innerrH   rI   r:  r8  r9  r;  Údist_exps              rJ   Útest_make_circlesrG  Ã  s>  € Ø€Fà'=ò ?Ñ#ˆ	�7˜Gô ˜I¨u¸DÈÔP‰ˆˆ1Ø�w‰w˜9 a˜.Ò(Ð<Ð*<Ó<Ð(Ø�w‰w˜9˜,Ò&Ð:Ð(:Ó:Ð&Ø�s�ˆÜ˜A˜q›	ò 	‰HˆAˆuØ˜V™¨Ñ)×.Ñ.Ó0ˆHØ# qšj‘s¨f°a©iˆHØ# qšj‘s¨f°a©iˆHÜØ˜(Ð,Möð		ð ��a‘‰y�‰ØØð#
ò 
ð 	?ð ?ó	?ð 
ð ��a‘‰y�‰ØØð#
ó 
ð 	?ð ?ó	?ð 
ñ'?rL   c                  óz  — t        d¬«      \  } }t        j                  |dk(  «      dk(  sJ d«       ‚t        j                  |dk(  «      dk(  sJ d«       ‚| j                  d	k(  sJ d
«       ‚|j                  dk(  sJ d«       ‚t	        j
                  t        d¬«      5  t        d¬«       d d d «       y # 1 sw Y   y xY w)N)r:   r  r?  r   r:   z*Number of samples in inner circle is wrongr$   r  z*Number of samples in outer circle is wrong)r8   r:   r3   r¾   r5   z7When a tuple, n_samples must have exactly two elements.r�   )r   rB   rD   rA   ri   rj   rl   r¶   s     rJ   Útest_make_circles_unbalancedrI  ß  s±   € Ü &Ô)�D€A€qä�6‰6�!�q‘&‹>˜QÒÐLÐ LÓLÐÜ�6‰6�!�q‘&‹>˜QÒÐLÐ LÓLÐØ�7‰7�gÒÐ1Ð1Ó1ÐØ�7‰7�eÒÐ/Ð/Ó/Ðä	�‰ÜØGô
ñ &ô 	˜uÕ%÷	&÷ &ñ &ús   ÂB1Â1B:)Nrç   Úcollectionsr   Ú	functoolsr   ÚnumpyrB   ri   Úscipy.sparser°   r±   Úsklearn.datasetsr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   Úsklearn.utils._testingr   r   r   r   r   Úsklearn.utils.validationr   rK   rw   r�   ÚmarkÚparametrizerl   r”   Úrandomr’   r™   r£   r­   r³   r·   rÇ   rÊ   rÕ   rÝ   rà   Útuplerâ   rå   rì   ró   r÷   rú   r  r  r  r  r$  r*  r,  r4  r6  r<  rA  rG  rI  rˆ   rL   rJ   ú<module>rU     sš  ðÛ 	Ý #Ý ã Û Ý ÷÷ ÷ ÷ ÷ ñ ÷*õ õ 7ò-*ò``QòF05ðf ‡�×ÑØ à	ˆZÐUÐVâØØHð	
ð ˆB�H‰H�R‹LØØHð	
ð ˆB�H‰HÒ&Ó'ØØHð	
ð �I‰I×Ñ˜QÓØØHð	
ð#óñ4-ó5ð4-ð
 ‡�×Ñ˜ B°aÈ!Ñ(LÐ#MÓNñ ó Oð ò-ò"4ð> ‡�×ÑÐ*¨T°5¨MÓ:Ø‡�×ÑÐ)¨D°%¨=Ó9ñDó :ó ;ðDò Fòò2Bò(Oò$òOð& ‡�×ÑØ’)˜X˜RŸX™X¢iÓ0±%º	Ó2BÐCóñóðò9ò)ò.ò"òò=ò"Fò"/ò	Að ‡�×Ñ˜ t¨U mÓ4Ø‡�×ÑØÒLóñCóó 5ðCð< ‡�×Ñ˜ %¨ Ó/ñ6ó 0ð6òEò%ò(&ò6
ò$ò?ó8&rL   