Ë
    ÷Q(hV  ã            
       óæ  — 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(ejR                  jU                  d	g e+d
fg d¢e+d
f ejX                  g «      e+d
f ejX                  g d¢«      e+d
fejZ                  j[                  d«      e+d
fg«      d„ «       Z.ejR                  jU                  di dddœg«      d„ «       Z/d„ Z0d„ Z1d„ Z2d„ Z3d„ Z4d„ Z5d„ Z6d„ Z7d„ Z8ejR                  jU                  dg d¢ ejX                  g d¢«       e9g d¢«      g«      d„ «       Z:d„ Z;d„ Z<d„ Z=d „ Z>d!„ Z?d"„ Z@d#„ ZAd$„ ZBd%„ ZCejR                  jU                  d&d'd(g«      ejR                  jU                  d)g d*¢«      d+„ «       «       ZDejR                  jU                  d,d(d'g«      d-„ «       ZEd.„ ZFd/„ ZGd0„ ZHd1„ ZId2„ ZJd3„ ZKd4„ ZLy)5é    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      úk/var/www/skyplay_api_hub/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                  óP  — 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t        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/        j0                  t2        «      5  t#        t        j*                  |«      | z  t        j,                  |«      dd¬«       d d d «       Œ± �Œ. �ŒP t/        j0                  t4        «      5   |dddd¬!«       d d d «       t/        j0                  t4        «      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	   ÚintÚ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_featuresrx   X   sƒ  € ð €IÜÜØØØØØØØô	€Dð 
ˆQˆC�ˆØ	
ˆUˆG�a‰K˜ÐØ	
ˆUˆG�a‰K˜ÐØ	
ˆUˆG�a‰K˜ÐØ	
ˆU�EˆN˜AÐØ	ˆeˆW�q‰[˜"ÐÜ	ˆR‹�1�#�qÐð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˜-ô �LÓ! ZÒ/ðHàGóHØ/ô !,¬CÓ 0ÐÜ # M°1Ó 5ò 4‘�˜Ø! #Ñ&×*Ñ*¨7Õ3ð4à-×4Ñ4Ó6ò 8�ä˜“MÐ%9Ó9ð8à7ó8Ø9ð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$   É9L	Ê?LË-LÌLÌLÌL%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   )rj   rk   r	   )r0   Úerr_typerW   s      rJ   Ú%test_make_classification_weights_typer}   »   s/   € ô6 
�‰�x wÔ	/ñ -Ü GÕ,÷-÷ -ñ -ús   ˜.®7Úkwargs)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	   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:   )rb   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%   )	rb   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   c            	      óÚ   — t        dd«      D ]\  \  } }t        ddddd| ¬«      \  }}|j                  d	k(  sJ d
«       ‚|j                  dk(  sJ d«       ‚t        j                  |«      rŒ\J ‚ y )Nrˆ   r‰   r9   r"   r%   r   ÚsparserŠ   r“   r3   r”   r•   )rb   r   rA   ÚspÚissparse)rŒ   r�   rH   r�   s       rJ   Ú;test_make_multilabel_classification_return_indicator_sparser      s   € Ü'*¨=¸&Ó'Aò Ñ#ˆ˜Ü-ØØØØØ%Ø+ô
‰ˆˆ1ð �w‰w˜(Ò"Ð6Ð$6Ó6Ð"Ø�w‰w˜'Ò!Ð5Ð#5Ó5Ð!Ü�{‰{˜1�~Ðˆ~ñ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¤   !  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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 )Nr!   r8   r%   r#   Tç        ç      ð?r   )r&   r'   r(   Úeffective_rankÚcoefÚbiasÚnoiser1   r¢   r3   r4   r5   ©r8   úcoef shape mismatchú)Unexpected number of informative featuresr$   ©rZ   )r&   r'   )r!   r$   )r   rA   rD   r   rB   ÚstdÚdot©rH   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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%   Tr§   r   )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·   A  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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¦   r§   r   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   Ú	enumeraterb   r   r°   )Úcluster_stdsÚcluster_centersrH   rI   ÚiÚctrr°   s          rJ   Útest_make_blobsrÂ   U  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   re   r\   )r&   rH   rI   s      rJ   Útest_make_blobs_n_samples_listrÊ   g  sk   € Ú€IÜ 	°aÀaÔH�D€A€qà�7‰7”s˜9“~ qÐ)Ò)Ð=Ð+=Ó=Ð)ÜÜ
�‰�A¤ Y£Ô0°IÑ=ôð .à-ó.ñ rL   c                  óÌ  — g d¢} t        j                  ddgddgddgg«      }t        j                  g d¢«      }t        | ||d¬«      \  }}|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¦   r§   r¹   r   )r&   rº   r»   r1   r:   r3   rÆ   rÈ   r$   r¼   )rB   r�   r   rA   rD   r—   re   r\   r½   rb   r   r°   )r&   rº   r¾   rH   rI   rÀ   rÁ   r°   s           rJ   Ú+test_make_blobs_n_samples_list_with_centersrÍ   q  sî   € Ú€IÜ�h‰h˜˜c˜
 S¨# J°°c°
Ð;Ó<€GÜ—8‘8Ò,Ó-€LÜØ W¸,ÐUVô�D€A€qð �7‰7”s˜9“~ qÐ)Ò)Ð=Ð+=Ó=Ð)ÜÜ
�‰�A¤ Y£Ô0°IÑ=ôð .à-ó.ð ô #¤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Ï   �  sm   € ð €GÜ 	°7ÈÔK�D€A€qà�7‰7”s˜9“~ qÐ)Ò)Ð=Ð+=Ó=Ð)ÜÜ
�‰�A¤ Y£Ô0°IÑ=ôð .à-ó.ñ rL   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¦   r§   r¹   zMLength of `n_samples` not consistent with number of centers. Got n_samples = z and centers = r@   rz   )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Úescaperj   rk   rm   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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'   r«   r1   ©r#   r8   r3   ©r#   r5   r$   r"   r:   r>   r%   rQ   )r
   rA   r   rB   ÚsinÚpir£   s     rJ   Útest_make_friedman1rß   ¯  sÅ   € Ü A°"¸CÈaÔP�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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&   r«   r1   ©r#   rQ   r3   rÜ   r5   r:   r$   r%   r>   )r   rA   r   r£   s     rJ   Útest_make_friedman2rã   ¾  sŸ   € Ü A¨S¸qÔA�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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á   râ   r3   rÜ   r5   r$   r:   r%   )r   rA   r   rB   Úarctanr£   s     rJ   Útest_make_friedman3ræ   É  s™   € Ü A¨S¸qÔA�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#   g{®Gáz„?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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   )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   rA   r\   rB   Úflatnonzeror   ÚsqrtrD   ri   )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ù   ö  sB   € Ü#¨a¸BÈQÔO�D€A€qà�7‰7�gÒÐ1Ð1Ó1ÐØ�7‰7�dŠ?Ð.Ð.Ó.‰?rL   c                  óÖ   — t        dd¬«      } | j                  dk(  sJ d«       ‚t        | | j                  «       ddlm}  || «      \  }}t        j                  |dkD  «      sJ d«       ‚y )Nr#   r   )Ún_dimr1   )r#   r#   r3   ©ÚeigúX is not positive-definite)r   rA   r   ÚTrê   rý   rB   r—   )rH   rý   ÚeigenvaluesÚ_s       rJ   Útest_make_spd_matrixr  ý  s`   € Ü˜a¨aÔ0€Aà�7‰7�fÒÐ0Ð0Ó0ÐÜ˜a §¡Ô%å á˜“V�N€K�Ü�6‰6�+ ‘/Ô"Ð@Ð$@Ó@Ñ"rL   Ú	norm_diagTFÚ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   Údiagonalri   )	r  r  Úglobal_random_seedrû   rH   ÚXarrrý   r   r  s	            rJ   Útest_make_sparse_spd_matrixr  	  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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&   r«   r1   r  ©r#   r%   rÜ   r:   )r   rA   r   rB   ÚcosrÝ   )r  rH   Úts      rJ   Útest_make_swiss_rollr  +  st   € ä Q¨cÀÈÔM�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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á   r  r3   rÜ   zt shape mismatchr:   r$   )r   rA   r   rB   rÝ   r]   r  )rH   r  s     rJ   Útest_make_s_curver  5  s‡   € Ü !¨3¸QÔ?�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   ro   rP   r1   r3   )rQ   r!   úrows shape mismatchúcolumns shape mismatch)r   rA   r   r   )rH   ÚrowsÚcolsr„   r  s        rJ   Útest_make_biclustersr!  >  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   r  r  r:   )r   rA   r   r   )rH   r  r   r‚   r  r„   s         rJ   Útest_make_checkerboardr#  R  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   r   r¦   r§   r>   r:   z$Point is not on expected unit circlerV   )r   rb   rD   r   )rH   rI   ÚxÚlabelÚcenterÚdist_sqrs         rJ   Útest_make_moonsr)  m  sg   € Ü�a Ô'�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.rz   r¬   )r   rB   rD   rA   rj   rk   rm   r£   s     rJ   Útest_make_moons_unbalancedr.  w  s¨   € Ü Ô'�D€A€qä
�‰ˆq�A‰v‹˜!Ò¤§¡ q¨A¡v£°!Ò 3ð.à-ó.Ø3à�7‰7�gÒÐ1Ð1Ó1ÐØ�7‰7�eÒÐ/Ð/Ó/Ðä	�‰ÜØMô
ñ $ô 	˜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   r§   zPoint is not on expected circlerV   z1Samples not correctly distributed across circles.r$   )r   rA   rb   rD   r   )r0  r&   Ún_outerÚn_innerrH   rI   r'  r%  r&  r(  Údist_exps              rJ   Útest_make_circlesr4  †  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.rz   )r   rB   rD   rA   rj   rk   rm   r£   s     rJ   Útest_make_circles_unbalancedr6  ¢  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:)MrÔ   Úcollectionsr   Ú	functoolsr   ÚnumpyrB   rj   Ú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   rx   ÚmarkÚparametrizerm   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  r!  r#  r)  r.  r4  r6  r€   rL   rJ   ú<module>rB     sO  ðÛ 	Ý #Ý ã Û Ý ÷÷ ÷ ÷ ÷ ñ ÷*õ õ 7ò-*ò``Qð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ò>ò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   