
    Pi&]              
          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j*        +                    d
g e,dfg de,df ej-        g           e,df ej-        g d          e,dfej.        .                    d          e,dfg          d             Z/ej*        +                    di dddg          d             Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9ej*        +                    dg d ej-        g d           e:g d          g          d             Z;d Z<d Z=d  Z>d! Z?d" Z@d# ZAd$ ZBd% ZCd& ZDej*        +                    d'd(d)g          ej*        +                    d*g d+          d,                         ZEej*        +                    d-d)d(g          d.             ZFd/ ZGd0 ZHd1 ZId2 ZJd3 ZKd4 ZLd5 ZMdS )6    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                  h   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        |                    d|j        fg|j        d         z                                          |j                                      d |j        d                   j        d	         dk    s
J d!            d S )"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      /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/sklearn/datasets/tests/test_samples_generator.pytest_make_classificationrK   (   s   DkG  DAq sDk!!!!7i!37f09Q<<%%%'E%%%qAv;;"HqAv;;"HqAv;;"H 	 	 	DAq 7j   "4   7g1
	!&&2qw-171:56677	ag	QWQZ	 	 	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 ]\  }}}t          |          }||z  }|dz  }dD ]~} ||||||||d          \  }	}
|	j        ||fk    sJ |
j        |fk    sJ t	          j        |	          }|                    d                    |j        d                             	                                }t	          j
        |d          \  }}t          |          |k    s
J d            t          t                    }t          ||
          D ] \  }}||                             |           !|                                D ]}t          |          |k    s
J d             t          |          |k    s
J d            t!          t	          j        |
          t          |
          z  |z  dg|z  d           t%          t          |                    D ]}|	||k                                 d          }|r;t!          t	          j        |          | z  t	          j        |          dd           _t-          j        t0                    5  t!          t	          j        |          | z  t	          j        |          dd           d d d            n# 1 swxY w Y   ːt-          j        t2                    5   |dddd!           d d d            n# 1 swxY w Y   t-          j        t2                    5   |dddd!           d d d            d S # 1 swxY w Y   d S )"zTest 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   s    I	 	 	D 
QC	
UGaK	
UGaK	
UGaK	
UENA	eWq["	aS!9 G G4w 4 LL	!55
O	& :	 :	I4##(+%9#	 	 	DAq 7y-888887yl**** GAJJEJJW^^EM!4D%E%EJFFLLNNE*,)E$*O*O*O'L-|$$
222H 322 !,C 0 0 #M1 5 5 4 4!#&**73333-4466  8}}(<<<<8 =<<< ())Y6668Q666%AQ'72i;    !\!2!233  ]g56;;;CC -x((94.. ! Q	      ~66  1F8,,y8GM22$% W                 Q:	x 
z	"	" Q QaaPPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q	z	"	" Q QaaPPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs6   ;K%	%K),K)L**L.1L.M++M/2M/c                     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          r@t          d          r0t          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 dS )(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   {Gz?rN         ?r-   Tr.           r/   rP   r1   *   
return_X_yFDESCR
parametersfeature_inforH   rI   c                 8    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      sH   Sb 	 	q	
 	a 	Q 	 	4 	$ 	S 	T 	 	 	4 	  	d!F& ((((DAq F<))&))E 	wE<(( E>** E3	
 E3 	 . . . . . >!UW%%%%%>!UW%%%%%;-55555v%%%%56/#:::::5!666665| 4444444rL   zweights, err_type, err_msgz:Weights specified but incompatible with number of classes.)r    rR   r   r%   c                     t          j        ||          5  t          |            d d d            d S # 1 swxY w Y   d S )Nmatch)r0   )ri   rj   r	   )r0   err_typerW   s      rJ   %test_make_classification_weights_typer      s    6 
xw	/	/	/ - -G,,,,- - - - - - - - - - - - - - - - - -s   599r   )r+   r(   c                     t          dddgdd| \  }}t          dt          j        ddg          dd| \  }}t          ||           t          ||           d S )Nr   g?r   )r0   r1   r   )r	   rB   arrayr   )r   X1y1X2y2s        rJ   1test_make_classification_weights_array_or_list_okr     sw     N#s!NNvNNFB X3*)=)=AXXQWXXFBBBrL   c            	      J   t          dd          D ]\  } }t          ddddd|           \  }}|j        d	k    s
J d
            | st          d |D                       dk    sJ t	          d |D                       |k    sJ t          d |D                       dk    sJ d S )NTFr   r$   r!   r"   r%   r   Fr&   r'   r+   r1   return_indicatorallow_unlabeledr2   r3   c                 ,    g | ]}t          |          S r   )max.0rI   s     rJ   
<listcomp>zHtest_make_multilabel_classification_return_sequences.<locals>.<listcomp>!  s    ***1A***rL   r:   c                 ,    g | ]}t          |          S r   r[   r   s     rJ   r   zHtest_make_multilabel_classification_return_sequences.<locals>.<listcomp>"      &&&qCFF&&&rL   c                 ,    g | ]}t          |          S r   r   r   s     rJ   r   zHtest_make_multilabel_classification_return_sequences.<locals>.<listcomp>#  r   rL   )ra   r   rA   r   minr   
min_lengthrH   Ys       rJ   4test_make_multilabel_classification_return_sequencesr     s    '*=&'A'A - -#-"+
 
 
1 w)###%7### 	1*****++q0000&&A&&&'':5555&&A&&&''1,,,,,- -rL   c                  L   t          dd          D ]t\  } }t          dddd|           \  }}|j        dk    s
J d	            |j        d
k    s
J d            t          j        t          j        |d          |k              sJ ut          dddd| d          \  }}}}t          ||           t          ||           |j        dk    sJ t          |                                d           |j        dk    sJ t          |                    d          dgdz             d S )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   &  si   '*=&'A'A 
6 
6#-+
 
 
1 w("""$6"""w'!!!#5!!!vbfQQ'''*4555555 8'!  BC a$$$q"9		1%%%;'!!!!		q	))A373333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        |          sJ ^d S )Nr   r   r9   r"   r%   r   sparser   r   r3   r   r   )ra   r   rA   spissparser   s       rJ   ;test_make_multilabel_classification_return_indicator_sparser   E  s    '*=&'A'A  #-%+
 
 
1 w("""$6"""w'!!!#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	            d S )
Nr!   r   )r&   r1   r!   r8   r3   r4   r5   )r:   r7   )r   rA   rB   rC   rH   rI   s     rJ   test_make_hastie_10_2r   T  s{    c:::DAq7i!37f09Q<<%%%'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k              dk    s
J d            t          t	          j        |t	          j        ||          z
            dd           t          dd          \  }}|j        dk    sJ d S )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   '	 	 	GAq! 7i!37f07e2qCx==AJ q26!Q<</00#qAAAA SQ777DAq7hrL   c           	      p   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k              dd           t	          t          j        |t          j        ||          z
            dd           d S )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   t  s    '  GAq! 7i!37h 27g4s18}}a)TUUU q26!Q<</00#qAAAAA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 ]9\  }\  }}t          |||k             |z
                                  |dd           :d S )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,,,--Lhc
S#Jc
CDDO'   DAq 7g17e/9Q<<%%%'C%%%"3#E#EFF O O:CQqAvY_1133S!=MNNNNO OrL   c                      g d} t          | dd          \  }}|j        t          |           dfk    s
J d            t          t	          j        |t          |                     | k              s
J d            d S )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     s    I	aaHHHDAq7s9~~q))))+=)))r{1I7779DEE  . E  rL   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 ]9\  }\  }}t          |||k             |z
                                  |d
d           :d S )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     s8   Ihc
S#Jc
;<<G8,,,--L '	  DAq 7s9~~q))))+=)))r{1I7779DEE  . E #3w#=#=>> O O:CQqAvY_1133S!=MNNNNO 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            d S )Nr   )r&   r   r1   r:   r3   r   r   r   )r&   r   rH   rI   s       rJ   &test_make_blobs_n_samples_centers_noner     s     G	7KKKDAq7s9~~q))))+=)))r{1I7779DEE  . E  rL   c                  x    ddg} d}t          | |dd          \  }}}|j        t          |           |fk    sJ d S )Nr8   r"   r%   Tr   )r&   r'   return_centersr1   )r   rA   r[   )r&   r'   rH   rI   r   s        rJ   test_make_blobs_return_centersr     sZ    RIJ
4VW  MAq' =S^^Z888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            n# 1 swxY w Y   t          j        d
| d|d d                    }t	          j        t          |          5  t          | ||d d                    d d d            n# 1 swxY w Y   d                    d          }t	          j        t          |          5  t          | d	           d d d            d S # 1 swxY w Y   d S )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     s   Ihc
S#Jc
;<<G8,,,--L		D$	D 	D5<SbS\	D 	D  
z):	;	;	; 4 49gcrcl33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4I	I 	I 	I5A#2#5F	I 	I M 
z	7	7	7 N N9g<;LMMMMN N N N N N N N N N N N N N NOVV	 N 
z	8	8	8 ) )9a(((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s6   5BB"B#D

DDE$$E(+E(c           
         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              d S )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  DAq 7g17d???.???	
RVBEAaaadGOa1g-...
!!!Q$#!#
#	$
qAw,	 a1g+	    rL   c           
      8   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             d S )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    AS?QRRRDAq7f07d???.???	AaaadGqLAaaadGa1g-Qqqq!tWqAw5F0GGAMMRUU    rL   c                 J   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                       d S )Nr#   r{   r   r   r3   r   r5   r$   r:   r%   r   )r   rA   r   rB   arctanr   s      rJ   test_make_friedman3r    s    AS?QRRRDAq7f07d???.???	29a1g!!!Q$'!qAw111a4/@*AAQqqq!tWLM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            d S )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    s    	 	 	A 7h 2      c!ffGAq!q66A:<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 ]1}t          t          j        |                    dk    s
J d            2t          |||z             t          t          j        |dz                      d                    t          j        |j        d                              d S )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   &'  GAq! 7g17g17f0 H H2>#&&''1,,,.G,,,,Aq1uBGQTJJAJ..//1D1DEEEEErL   c                      t          ddd          \  } }| j        dk    s
J d            |j        dk    s
J d            d S )	Nr#   r8   r   r   r   r3   r   r5   )r   rA   r   s     rJ   test_make_sparse_uncorrelatedr  .  sP    #aBQOOODAq7g17d???.?????rL   c                     t          d|           }|j        dk    s
J d            t          ||j                   ddlm}  ||          \  }}t          j        |dk              s
J d            d S )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  5  s    a.@AAAA7f0a%%%      SVVNK6+/""@@$@@@"@@rL   	norm_diagTFsparse_format)Nbsrcoocsccsrdiadoklilc                 .   d}t          || ||          }|j        ||fk    s
J d            |.t          j        |          rJ t	          ||j                   |}nJt          j        |          r|j        |k    sJ t          ||j                   |                                }ddl	m
}  ||          \  }}t          j        |dk              s
J d            | r6t          |                                t          j        |                     d S d S )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-  A  s@   
 E#'		 	 	A 7uen$$$&8$$$;q>>!!!13{1~~;!(m";";";;$Q,,,yy{{       SYYNK6+/""@@$@@@" C!$--//275>>BBBBBC C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             d S )Nr#   r{   )r&   r   r1   r.  r#   r%   r   r   r:   )r   rA   r   rB   cosr   )r   r.  rH   ts       rJ   test_make_swiss_rollr3  c  s    3-?d  DAq 7f7d????a1gq26!99}555a1gq26!99}55555rL   c                 d   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             d S )Nr#   r{   r   r0  r3   r   zt shape mismatchr   r:   r$   )r   rA   r   rB   r   r\   r1  )r   rH   r2  s      rJ   test_make_s_curver5  o  s    !3=OPPPDAq7f07d???.???a1grvayy111a1grwqzzRVAYY]'CDDDDDrL   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          |            t          |           t          |           t          dddd          \  }}}t          | |           d S )
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_biclustersr=  x  s    #Q1  MAtT 7j   "4   :!!!#8!!!:         addQ1  HB1 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            t          dd	dd          \  } }}t          |            t          |           t          |           t          dd	dd          \  }}}t          dd	dd          \  }}}t          ||           d S )
Nr7  )r"   r#   Tr   r8  r3   r9  r:  r:   )r   rA   r   r   )rH   r;  r<  r   r  r   s         rJ   test_make_checkerboardr?    s=   %Wd  MAtT 7j   "4   :###%:###:        
 &Q1  MAtT add Q1  HB1 !Q1  HB1 b"%%%%%rL   c                     t          dd|           \  }}t          ||          D ]?\  }}|dk    rddgnddg}||z
  dz                                  }t          |dd	
           @d S )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_moonsrE    s    a5GHHHDAq1II 
 
5$zz#sSzZA%**,,c#I	
 	
 	
 	
 	

 
rL   c                     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            d S # 1 swxY w Y   d S )N)   r#   r&   r   rG  r$   r#   z$Number of samples in a moon is wrong)   r:   r3   )rI  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_unbalancedrJ    s"   '''DAq6!q&>>Q26!q&>>Q#6#6#6. $7#66 7g17e/	I
 
 
 $ $ 	U####	$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   B99B= B=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 ]K\  }}||z
  dz                                  }	|d	k    rd
n| dz  }
|d	k    rd
n| dz  }
t	          |	|
d           L||d	k             j        |dfk    s
J d            ||dk             j        |dfk    s
J d            d S )Ng333333?))rG  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   )rL  r&   n_outern_innerrH   rI   rC  rA  rB  rD  dist_exps              rJ   test_make_circlesrP    s   F'= ? ?#	7G IuDPPP1w9a.(((*<(((w9,&&&(:&&&sAq		 	 	HAuV)..00H#qjjssfaiH#qjjssfaiH(,M     ay#
 
 
 
 ?
 
 
 ay#
 
 
 
 ?
 
 
 
'? ?rL   c                     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            d S # 1 swxY w Y   d S )N)r:   r  rH  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_unbalancedrR    s.   &)))DAq6!q&>>Q L6!q&>>Q L7g17e/	G
 
 
 & & 	u%%%%	& & & & & & & & & & & & & & & & & &s   %CC
C)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-  r3  r5  r=  r?  rE  rJ  rP  rR  r   rL   rJ   <module>r^     s1   				 # # # # # #                                                          *              7 6 6 6 6 6-* -* -*``Q `Q `QF05 05 05f  	ZUVH	
 BHRLLH	
 BH&&&''H	
 IQH	
# 4- -5 4-
 Ba!(L(L#MNN    ON - - -"4 4 4>  F F F  2B B B(O O O$  O O O& )))XRXiii00%%			2B2BC   9 9 9) ) ).  "    = = ="F F F"/ / /	A 	A 	A tUm44LLL C C  54C< %//6 6 0/6E E E% % %(& & &6
 
 
$ $ $? ? ?8& & & & &rL   