1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
U
­ý°dé4ã@sbddlZddlZddlmZmZmZddlmZ    ddl
m m Z Gdd„dƒZGdd„dƒZdS)éN)Ú    DataFrameÚIndexÚSeriesc@sÈeZdZejdd„ƒZej dee    dƒƒ¡dd„ƒZ
dd„Z d    d
„Z d d „Z d d„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zej dddd d!d"gfd#d$g¡d%d&„ƒZd'd(„Zd)d*„Zd+S),Ú
TestSamplecCs0|tkrtj d¡}ntj dd¡}||ddS)Né
)Zdtype)rÚnpÚrandomÚrandn)ÚselfÚframe_or_seriesZarr©r ú]d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/frame/methods/test_sample.pyÚobjszTestSample.objÚtestrc    CsBtj dd¡}t |jd|d|jd|d¡t |jd|d|jd|d¡t |jdtj |¡d|jdtj |¡d¡t |jdtj |¡d|jdtj |¡d¡t |jddtj |¡d    |jddtj |¡d    ¡gg}}tdƒD]4}tj |¡|     |jdd
¡|     |jdd ¡qôtj|Žtj|ŽdS) Nrédé©ÚnÚ random_stategffffffæ?)ÚfracréT)rÚreplacer©r©r)
rrÚrandintÚtmÚ assert_equalÚsampleZ RandomStateÚrangeÚseedÚappend)r
rrrZos1Zos2Ú_r r r Ú test_samples8 ÿ  þþþþ
 
zTestSample.test_samplecCsLt|jdddkƒst‚t|jdddkƒs0t‚t|jdddkƒsHt‚dS)NrrgÃõ(\ÂÕ?rég
×£p=
×?)ÚlenrÚAssertionError©r
rr r r Útest_sample_lengths>szTestSample.test_sample_lengthsc    Cs.d}tjt|d|jddW5QRXdS)Nzdrandom_state must be an integer, array-like, a BitGenerator, Generator, a numpy RandomState, or None©ÚmatchZa_string)r©ÚpytestÚraisesÚ
ValueErrorr©r
rÚmsgr r r Ú test_sample_invalid_random_stateDsÿz+TestSample.test_sample_invalid_random_statec    Cs0d}tjt|d|jdddW5QRXdS)Nz0Please enter a value for `frac` OR `n`, not bothr(r#g333333Ó?)rrr*r.r r r Ú"test_sample_wont_accept_n_and_fracMsz-TestSample.test_sample_wont_accept_n_and_fracc    CsPtjtdd|jddW5QRXtjtdd|jddW5QRXdS)Nz<A negative number of rows requested. Please provide `n` >= 0r(éýÿÿÿrz?A negative number of rows requested. Please provide `frac` >= 0g333333Ó¿rr*r&r r r Ú$test_sample_requires_positive_n_fracSsþþz/TestSample.test_sample_requires_positive_n_fracc    Cs*tjtdd|jddW5QRXdS)Nz$Only integers accepted as `n` valuesr(gš™™™™™    @rr*r&r r r Útest_sample_requires_integer_n_sz)TestSample.test_sample_requires_integer_nc    Csœd}tjt|d|jdddgdW5QRXtjt|ddgd}|jd|dW5QRXtjtd    d"tddd
gƒ}|jd |dW5QRXdS) Nú5Weights and axis to be sampled must be of same lengthr(r#ré©rÚweightsçà?é z%Fewer non-zero entries in p than sizegš™™™™™É?r)r+r,r-rr)r
rr/Ú bad_weightsZbad_weight_seriesr r r Ú"test_sample_invalid_weight_lengthsds
z-TestSample.test_sample_invalid_weight_lengthsc    Cs:dgd}d}tjt|d|jd|dW5QRXdS)Ngš™™™™™¹¿rz.weight vector many not include negative valuesr(r#r7r*)r
rr;r/r r r Útest_sample_negative_weightsrs
z'TestSample.test_sample_negative_weightsc    Cs‚dgd}tj|d<d}tjt|d|jd|dW5QRXdgd}tj |d<tjt|d|jd|dW5QRXdS)Ngš™™™™™¹?rrz*weight vector may not include `inf` valuesr(r#r7)rÚinfr+r,r-r)r
rZweights_with_infr/Zweights_with_ninfr r r Útest_sample_inf_weightsys
 
 
 z"TestSample.test_sample_inf_weightsc    Cs6dgd}tjtdd|jd|dW5QRXdS)Nrrú$Invalid weights: weights sum to zeror(r#r7r*)r
rZ zero_weightsr r r Útest_sample_zero_weights‡s
z#TestSample.test_sample_zero_weightsc    Cs8tjgd}tjtdd|jd|dW5QRXdS)Nrr@r(r#r7)rÚnanr+r,r-r)r
rZ nan_weightsr r r Útest_sample_missing_weightsŽs z&TestSample.test_sample_missing_weightscCs8dgd}d|d<t |jdd|d|jdd…¡dS)Nrr9ér6r©rÚaxisr8é)rrrÚiloc)r
rZweights_with_Noner r r Útest_sample_none_weights•s 
 ÿz#TestSample.test_sample_none_weightsz func_str,argznp.arrayrr#r6r)znp.random.MT19937r#)znp.random.PCG64r:cCshttddƒtddƒdœƒ}t ||¡}|jdt|ƒ|ƒd}|jdt t|ƒ|ƒ¡d}t ||¡dS)Nréé©Úcol1Úcol2r#r)    rrrÚget_objrÚevalÚcomrr)r
Zfunc_strÚargr rÚresultÚexpectedr r r Útest_sample_random_states
 
 z#TestSample.test_sample_random_statecCsˆ|t d¡ƒ}tj ¡}|jd|d}|jd|d}|jj|jjk ¡rLt‚|jdtj d¡d}|jdtj d¡d}t     
||¡dS)Nré2rr:) rZarangerZ default_rngrÚindexÚvaluesÚallr%rr)r
r rÚrngZresult1Zresult2r r r Útest_sample_generator­s
z TestSample.test_sample_generatorc    CsLtdtdƒiƒ}t ||¡}d}tjt|d|jdddW5QRXdS)NÚAÚabczJReplace has to be set to `True` when upsampling the population `frac` > 1.r(rF)rr)rÚlistrrOr+r,r-r)r
r rr/r r r Ú*test_sample_upsampling_without_replacement½s  ÿz5TestSample.test_sample_upsampling_without_replacementN)Ú__name__Ú
__module__Ú __qualname__r+ZfixturerÚmarkZ parametrizer^rr"r'r0r1r3r4r<r=r?rArCrIrUr[r_r r r r r s2
 
'     ýþ
rc@s<eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd S)ÚTestSampleDataFramec        Csdgd}d|d<ttddƒtddƒdgd|dœƒ}|jdd    d
}t ||jdd …¡ttdƒƒ}d }tjt    |d |jddd
W5QRXd}tjt    |d |jddddW5QRXtjt
dd |jddd
W5QRXdgd}d|d<t |jd|d
|jdd…¡ttdƒdgddœƒ}ddg}t |jdd|d|dg¡t |jdd|d|dg¡dgd}d|d<t |jdd|d|jdd …¡t |jdd|d|jdd …¡d}tjt    |d |jdddW5QRXd}tjt    |d |jdddW5QRXttdƒƒ}tjt    d d |jdddW5QRXd!}tjt    |d |jdddgddW5QRXdS)"Nrrr6rDrJrKÚa)rMrNÚ    colStringÚ easyweightsrgr7rGz@Strings cannot be passed as weights when sampling from a Series.r(r#Z weight_columnzLStrings can only be passed to weights when sampling from rows on a DataFrame)rr8rFz-'String passed to weights not a valid column'Znot_a_real_column_namer9rLrErNÚcolumnsÚrowsrWz)No axis named 2 for object type DataFramer)rrFz2No axis named not_a_name for object type DataFrameZ
not_a_namez&No axis named 1 for object type Seriesr5) rrrrÚassert_frame_equalrHrr+r,r-ÚKeyError)    r
Úeasy_weight_listÚdfÚsample1Úserr/Zweights_less_than_1Zsecond_column_weightZweightr r r r"Ïsp
üÿ ÿÿ
 ÿÿ
" ÿ zTestSampleDataFrame.test_samplecCs|dgd}d|d<ttddƒtddƒdgdd    œƒ}|jdd|d
}t ||d g¡t |jdd d |jddd d¡dS)Nrr#r6rrrJrKre©rMrNrfrErfé*r)rrFr)rrrrrj)r
rlrmrnr r r Útest_sample_axis1$s
ÿ ÿz%TestSampleDataFrame.test_sample_axis1c    Cstdddgdddgdœddd    gd
}td d d gd    ddgd
}t |jd    g|jd |d ¡tdd dgd    ddgd
}t |jd    g|jd |d ¡tdd gd    dgd
}t |jd    g|jd |d ¡td d gd dgd
}tjtdd|jd |d W5QRXdS)NrDrGéreÚbÚcrLé    r#)rWr6r©r8gü©ñÒMbP?i'rg{®Gáz„?rr@r()    rrrrjÚlocrr+r,r-)r
rmroZser2Zser3Zser4r r r Ú%test_sample_aligns_weights_with_frame4s$z9TestSampleDataFrame.test_sample_aligns_weights_with_framec    CsHttj dd¡dddgd}| d¡}t d¡d|d<W5QRXdS)    Nrr#rertru)rhr6Úd)rrrr    rrZassert_produces_warning)r
rmZdf2r r r Útest_sample_is_copyIs
 z'TestSampleDataFrame.test_sample_is_copycCs”t tjdtjg¡}| ¡}tdddgƒ}|j|dt ||¡tdddgdtjtjgdœƒ}|d ¡}|jdddd    |d}t     ||¡dS)
Nr6rr#rw)rXr8r8gð?T)rrr8)
rÚarrayrBÚcopyrrrZassert_numpy_array_equalrZassert_series_equal)r
rSrTrormr r r Ú#test_sample_does_not_modify_weightsRs   z7TestSampleDataFrame.test_sample_does_not_modify_weightscCsRttddƒtddƒdgddœƒ}|jddd}ttdƒƒ}tj|j|dd    dS)
NrrJrKrerpr#T)Z ignore_index)Úexact)rrrrrZassert_index_equalrW)r
rmrSZexpected_indexr r r Útest_sample_ignore_indexds ÿ z,TestSampleDataFrame.test_sample_ignore_indexN)    r`rarbr"rrryr{r~r€r r r r rdËs U    rd)Únumpyrr+ZpandasrrrZpandas._testingZ_testingrZpandas.core.commonÚcoreÚcommonrQrrdr r r r Ú<module>s ?