
    Mhw4                     n    S SK rS SKrS SKJrJrJr  S SKJr	  S SK
Js  Jr   " S S5      r " S S5      rg)    N)	DataFrameIndexSeriesc                   4   \ rS rSr\R
                  S 5       r\R                  R                  S\	" \
" S5      5      5      S 5       rS rS rS rS	 rS
 rS rS rS rS rS rS r\R                  R                  SS/ SQ4SS/5      S 5       rS rS rSrg)
TestSample   c                     U[         L a/  [        R                  R                  S5      R	                  S5      nO.[        R                  R                  S5      R	                  S5      nU" US S9$ )N   
   )r   r   )dtype)r   nprandomdefault_rngstandard_normal)selfframe_or_seriesarrs      X/var/www/html/env/lib/python3.13/site-packages/pandas/tests/frame/methods/test_sample.pyobjTestSample.obj   sU    f$))''*::2>C))''*::8DCs$//    testr   c           
         [         R                  R                  S5      R                  SS5      n[        R
                  " UR                  SUS9UR                  SUS95        [        R
                  " UR                  SUS9UR                  SUS95        [        R
                  " UR                  S[         R                  R                  U5      S9UR                  S[         R                  R                  U5      S95        [        R
                  " UR                  S[         R                  R                  U5      S9UR                  S[         R                  R                  U5      S95        [        R
                  " UR                  SS[         R                  R                  U5      S	9UR                  SS[         R                  R                  U5      S	95        / / pT[        S5       HA  nUR                  UR                  SUS95        UR                  UR                  SUS95        MC     [        R
                  " U6   [        R
                  " U6   g )
Nr
   r   d      nrandom_stategffffff?)fracr   T)r   replacer   )	r   r   r   integerstmassert_equalsamplerangeappend)r   r   r   seedos1os2_s          r   test_sampleTestSample.test_sample   s    yy$$Q'00C8
JJJ.

QT
0R	
 	JJCdJ3JJCdJ3	

 	JJ)>)>t)DJEJJ)>)>t)DJE	

 	JJCbii.C.CD.IJJJJCbii.C.CD.IJJ	

 	JJYY2248  
 JJYY2248  	
 rSqAJJszzADz9:JJszzsz>?  	
r   c                     [        UR                  SS9S:H  5      (       d   e[        UR                  SS9S:H  5      (       d   e[        UR                  SS9S:H  5      (       d   eg )Nr   r   g(\?r      g
ףp=
?)lenr$   r   r   s     r   test_sample_lengthsTestSample.test_sample_lengthsE   sd    3:::?a'((((3::4:(A-....3::4:(A-....r   c                     Sn[         R                  " [        US9   UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nzdrandom_state must be an integer, array-like, a BitGenerator, Generator, a numpy RandomState, or Nonematcha_string)r   pytestraises
ValueErrorr$   r   r   msgs      r    test_sample_invalid_random_state+TestSample.test_sample_invalid_random_stateK   s6    + 	 ]]:S1JJJJ/ 211s	   5
Ac                     Sn[         R                  " [        US9   UR                  SSS9  S S S 5        g ! , (       d  f       g = f)Nz0Please enter a value for `frac` OR `n`, not bothr6   r0   g333333?)r   r   r9   r=   s      r   "test_sample_wont_accept_n_and_frac-TestSample.test_sample_wont_accept_n_and_fracT   s1    @]]:S1JJJ% 211s	   6
Ac                    [         R                  " [        SS9   UR                  SS9  S S S 5        [         R                  " [        SS9   UR                  SS9  S S S 5        g ! , (       d  f       N@= f! , (       d  f       g = f)Nz<A negative number of rows requested. Please provide `n` >= 0r6   r.   z?A negative number of rows requested. Please provide `frac` >= 0g333333ӿr/   r9   r2   s     r   $test_sample_requires_positive_n_frac/TestSample.test_sample_requires_positive_n_fracZ   sm    ]]P
 JJJ	

 ]]S
 JJDJ!	
 

 


 
s   A$A5$
A25
Bc                     [         R                  " [        SS9   UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nz$Only integers accepted as `n` valuesr6   g	@r.   r9   r2   s     r   test_sample_requires_integer_n)TestSample.test_sample_requires_integer_nf   s,    ]]:-STJJJ UTTs	   3
Ac                    Sn[         R                  " [        US9   UR                  SSS/S9  S S S 5        [         R                  " [        US9   S/S-  nUR                  SUS9  S S S 5        [         R                  " [        S	S9   [	        / S
Q5      nUR                  SUS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N_= f! , (       d  f       g = f)N5Weights and axis to be sampled must be of same lengthr6   r0   r      r   weights      ?   z%Fewer non-zero entries in p than size)r   r   g?r   )r:   r;   r<   r$   r   )r   r   r>   bad_weightsbad_weight_seriess        r   "test_sample_invalid_weight_lengths-TestSample.test_sample_invalid_weight_lengthsk   s    E]]:S1JJQFJ+ 2 ]]:S1%"*KJJKJ0 2 ]]:-TU &{ 3JJ$5J6 VU 21 21 VUs#   B/C C/
B= 
C
Cc                     S/S-  nSn[         R                  " [        US9   UR                  SUS9  S S S 5        g ! , (       d  f       g = f)Ngr   z.weight vector many not include negative valuesr6   r0   rN   r9   )r   r   rR   r>   s       r   test_sample_negative_weights'TestSample.test_sample_negative_weightsy   s<    frk>]]:S1JJKJ0 211s	   <
A
c                 z   S/S-  n[         R                  US'   Sn[        R                  " [        US9   UR                  SUS9  S S S 5        S/S-  n[         R                  * US'   [        R                  " [        US9   UR                  SUS9  S S S 5        g ! , (       d  f       N[= f! , (       d  f       g = f)Ng?r   r   z*weight vector may not include `inf` valuesr6   r0   rN   )r   infr:   r;   r<   r$   )r   r   weights_with_infr>   weights_with_ninfs        r   test_sample_inf_weights"TestSample.test_sample_inf_weights   s      52: ff:]]:S1JJ$4J5 2 !EBJ "w!]]:S1JJ$5J6 21 21
 21s   BB,
B),
B:c                     S/S-  n[         R                  " [        SS9   UR                  SUS9  S S S 5        g ! , (       d  f       g = f)Nr   r   $Invalid weights: weights sum to zeror6   r0   rN   r9   )r   r   zero_weightss      r   test_sample_zero_weights#TestSample.test_sample_zero_weights   s;     sRx]]:-STJJLJ1 UTTs	   :
Ac                     [         R                  /S-  n[        R                  " [        SS9   UR                  SUS9  S S S 5        g ! , (       d  f       g = f)Nr   r`   r6   r0   rN   )r   nanr:   r;   r<   r$   )r   r   nan_weightss      r   test_sample_missing_weights&TestSample.test_sample_missing_weights   s?     vvhm]]:-STJJKJ0 UTTs   A
Ac                     S /S-  nSUS'   [         R                  " UR                  SSUS9UR                  SS 5        g )Nr   rP      rM   r   r   axisrO      )r"   r#   r$   iloc)r   r   weights_with_Nones      r   test_sample_none_weights#TestSample.test_sample_none_weights   sD    !FRK"!
JJ,=J>1	
r   zfunc_str,argznp.array)r
   r0   rM   r   )znp.random.MT19937r0   )znp.random.PCG64rQ   c                 D   [        [        SS5      [        SS5      S.5      n[        R                  " XC5      nUR	                  S[        U5      " U5      S9nUR	                  S[        R                  " [        U5      " U5      5      S9n[        R                  " XV5        g )Nr         col1col2r0   r   )	r   r%   r"   get_objr$   evalcomr   r#   )r   func_strargr   r   resultexpecteds          r   test_sample_random_state#TestSample.test_sample_random_state   s{     r2b"FGjj.ad8nS.AB::0@0@hPSAT0U:V
)r   c                    U" [         R                  " S5      5      n[         R                  R                  S5      nUR	                  SUS9nUR	                  SUS9nUR
                  R                  UR
                  R                  :H  R                  5       (       a   eUR	                  S[         R                  R                  S5      S9nUR	                  S[         R                  R                  S5      S9n[        R                  " XE5        g )Nr   r
   2   r   rQ   )
r   aranger   r   r$   indexvaluesallr"   r#   )r   r   r   rngresult1result2s         r   test_sample_generator TestSample.test_sample_generator   s    biin-ii##A& **r*4**r*4MM((GMM,@,@@EEGGGG **r		0E0Eb0I*J**r		0E0Eb0I*J
)r   c                     [        S[        S5      05      n[        R                  " X!5      nSn[        R
                  " [        US9   UR                  SSS9  S S S 5        g ! , (       d  f       g = f)NAabczJReplace has to be set to `True` when upsampling the population `frac` > 1.r6   r
   F)r   r    )r   listr"   rx   r:   r;   r<   r$   )r   r   r   r>   s       r   *test_sample_upsampling_without_replacement5TestSample.test_sample_upsampling_without_replacement   s[     d5k*+jj.4 	 ]]:S1JJAuJ- 211s   A""
A0 N)__name__
__module____qualname____firstlineno__r:   fixturer   markparametrizer   r%   r+   r3   r?   rB   rF   rI   rT   rW   r]   rb   rg   rp   r   r   r   __static_attributes__r   r   r   r   r      s    ^^0 0 [[VT%)_5, 6,\/0&
"
71721
 [[&$#	
*** .r   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestSampleDataFrame   c                 2   S/S-  nSUS'   [        [        SS5      [        SS5      S/S-  US.5      nUR                  SS	S
9n[        R                  " X2R
                  SS 5        [        [        S5      5      nSn[        R                  " [        US9   UR                  SSS
9  S S S 5        Sn[        R                  " [        US9   UR                  SSSS9  S S S 5        [        R                  " [        SS9   UR                  SSS
9  S S S 5        S/S-  nSUS'   [        R                  " UR                  SUS
9UR
                  S S 5        [        [        S5      S/S-  S.5      nSS/n[        R                  " UR                  SSUS9US/   5        [        R                  " UR                  SSUS9US/   5        S/S-  nSUS'   [        R                  " UR                  SSUS9UR
                  SS 5        [        R                  " UR                  SSUS9UR
                  SS 5        Sn[        R                  " [        US9   UR                  SSS9  S S S 5        Sn[        R                  " [        US9   UR                  SSS9  S S S 5        [        [        S5      5      n[        R                  " [        S S9   UR                  SSS9  S S S 5        S!n[        R                  " [        US9   UR                  SSS/S-  S9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN\= f! , (       d  f       GN<= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)"Nr   r   rM   rj   rs   rt   a)rv   rw   	colStringeasyweightsr   rN   rm   z@Strings cannot be passed as weights when sampling from a Series.r6   r0   weight_columnzLStrings can only be passed to weights when sampling from rows on a DataFrame)r   rO   rl   z-'String passed to weights not a valid column'not_a_real_column_namerP   ru   rk   rw   columnsrowsr   z)No axis named 2 for object type DataFramer
   )r   rl   z2No axis named not_a_name for object type DataFrame
not_a_namez&No axis named 1 for object type SeriesrL   )r   r%   r$   r"   assert_frame_equalrn   r   r:   r;   r<   KeyError)	r   easy_weight_listdfsample1serr>   weights_less_than_1second_column_weightweights	            r   r+   TestSampleDataFrame.test_sample   s6   
 38b"b"!URZ/	
 ))a)7
gwwq|4 U2YP]]:S1JJOJ4 2 	 ]]:S1II?I; 2 ]]K
 II#;I<
  !cBh!$A
bii!5HiI277SUTU;W b	C52:>? !1v
II+?I@"fX,	

 	II	3GIH"fX,	
 rq	
bii!&&iI277STUV<X
III8"''!A,	

 :]]:S1III" 2 C]]:S1III- 2 U2Y]]:-UVJJJ# W F]]:S1IIC52:I6 21w 21 21
 
F 21 21 WV
 21sT   L
L1=MMM&M7 N
L.1
M 
M
M#&
M47
N
Nc           	      &   S/S-  nSUS'   [        [        SS5      [        SS5      S/S-  S	.5      nUR                  SSUS
9n[        R                  " X2S/   5        [        R                  " UR                  SSS9UR                  SSSS95        g )Nr   r0   rM   r
   r   rs   rt   r   rv   rw   r   rk   r   *   r   )r   rl   r   )r   r%   r$   r"   r   )r   r   r   r   s       r   test_sample_axis1%TestSampleDataFrame.test_sample_axis1+  s    372r]E"bMPR
S
 ))aa1A)B
g;-'89 	III+RYYQSY-T	
r   c                 R   [        / SQ/ SQS./ SQS9n[        / SQ/ SQS9n[        R                  " UR                  S/   UR                  S	US
95        [        / SQ/ SQS9n[        R                  " UR                  S/   UR                  S	US
95        [        SS/SS/S9n[        R                  " UR                  S/   UR                  S	US
95        [        S	S/S	S/S9n[        R                  " [        SS9   UR                  S	US
9  S S S 5        g ! , (       d  f       g = f)N)rj   rm      r   bcru   )	   rj   r0   )r   )rM   r   r   )r0   rj   r   r0   rM   rO   )gMbP?r   i'  )r0   rj   r   g{Gz?r   rj   r
   r`   r6   )	r   r   r"   r   locr$   r:   r;   r<   )r   r   r   ser2ser3ser4s         r   %test_sample_aligns_weights_with_frame9TestSampleDataFrame.test_sample_aligns_weights_with_frame;  s    	?C9UYi0
bffaSk299Q9+DE 'z:
bffaSk299Q9+EF tQi1v.
bffaSk299Q9+EF q!fQF+]]:-STIIaI& UTTs   >D
D&c                     [        [        R                  R                  S5      R	                  S5      / SQS9nUR                  S5      n[        R                  " S 5         SUS'   S S S 5        g ! , (       d  f       g = f)Nr
   )r   r0   r   )r   r0   rM   d)r   r   r   r   r   r$   r"   assert_produces_warning)r   r   df2s      r   test_sample_is_copy'TestSampleDataFrame.test_sample_is_copyP  s_     II!!!$44W=
 iil''-CH .--s    A//
A=c                    [         R                  " [         R                  S[         R                  /5      nUR                  5       n[	        / SQ5      nUR                  US9  [        R                  " X5        [        / SQS[         R                  [         R                  /S.5      nUS   R                  5       nUR                  SSSS	9  US   n[        R                  " X5        g )
NrM   )rM   r
   r0   r   )rM   rM   rM   )r   rO   rO   g      ?T)r   r    rO   )
r   arrayre   copyr   r$   r"   assert_numpy_array_equalr   assert_series_equal)r   r}   r~   r   r   s        r   #test_sample_does_not_modify_weights7TestSampleDataFrame.test_sample_does_not_modify_weights[  s    2661bff-.;;=Y 	

6
"
##F5 )BFFBFF8KLMi=%%'
		sD)	<I
v0r   c                     [        [        SS5      [        SS5      S/S-  S.5      nUR                  SSS9n[        [        S5      5      n[        R
                  " UR                  USS	9  g )
Nr   rs   rt   r   r   r0   T)ignore_index)exact)r   r%   r$   r   r"   assert_index_equalr   )r   r   r}   expected_indexs       r   test_sample_ignore_index,TestSampleDataFrame.test_sample_ignore_indexm  s`    2r]E"bMPR
S
 140uQx
fllN$Gr   r   N)r   r   r   r   r+   r   r   r   r   r   r   r   r   r   r   r      s#    S7j
 '*	1$Hr   r   )numpyr   r:   pandasr   r   r   pandas._testing_testingr"   pandas.core.commoncorecommonrz   r   r   r   r   r   <module>r      s;      
     B. B.JbH bHr   