zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
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
U
­ý°dŠBã@sDddlZddlZddlZddlmZddlm    Z    Gdd„de    ƒZ
dS)éN)ÚBaseExtensionTestsc    @sèeZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zejjddd d!gejdd d!gd"d#e dd d!g¡gd$d%d&gd'd(d)„ƒZejjddd d!ejgejdd d!ejgd"d#gd$d%gd'd*d+„ƒZejjd,d-ejjddd d!ejgejdd d!ejgd"d#gd$d%gd'd.d/„ƒƒZd0d1„Zd2d3„Zd4d5„Zd6d7„Z d8d9„Z!d:d;„Z"d<d=„Z#d>d?„Z$d@dA„Z%ej dBdCdDg¡dEdF„ƒZ&dGdH„Z'dIdJ„Z(dKdL„Z)dMdN„Z*dOdP„Z+dQdR„Z,dSS)TÚBaseGetitemTestsz%Tests for ExtensionArray.__getitem__.cCsXt |¡}|jdd…}t |dd…¡}| ||¡|jddddg}| ||¡dS)Nérééé)ÚpdÚSeriesÚilocÚassert_series_equal©ÚselfÚdataÚserÚresultÚexpected©rúZd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/extension/base/getitem.pyÚtest_iloc_series s 
 z!BaseGetitemTests.test_iloc_seriescCs*t |tjt|ƒdddœ¡}t d|dd…i¡}|jdd…dgf}| ||¡|jdddd    gdgf}| ||¡tj|dd…dd
}|jdd…df}| ||¡|jdd…df}| ||¡|jdd…ddd…f}| ||dg¡|d dgjdd…ddd…f}| ||d g¡dS) NÚint64©Údtype©ÚAÚBrrrrrr©Únamer)    rÚ    DataFrameÚnpÚarangeÚlenr
Úassert_frame_equalr    r ©r rÚdfrrrrrÚtest_iloc_frames     z BaseGetitemTests.test_iloc_framecCsòt d|i¡}|jdd…dd…f}| ||¡|jdd…dd…f}| ||¡|jdd…dd…f}| ||¡|jdd…ddd…f}| ||¡|jdd…dd…f}| ||jdd…dd…f¡|jdd…dd…f}| ||¡dS)Nrrrréÿÿÿÿ)rrr
r!)r rr#rrrrÚtest_iloc_frame_single_block1s    z-BaseGetitemTests.test_iloc_frame_single_blockcCsXt |¡}|jdd…}t |dd…¡}| ||¡|jddddg}| ||¡dS)Nrrrrr)rr    Úlocr r rrrÚtest_loc_seriesGs 
 z BaseGetitemTests.test_loc_seriescCsÎt |tjt|ƒdddœ¡}t d|dd…i¡}|jdd…dgf}| ||¡|jddd    dgdgf}| ||¡tj|dd…dd
}|jdd…df}| ||¡|jdd…df}| ||¡dS) Nrrrrrrrrrr)    rrrrr r'r!r    r r"rrrÚtest_loc_framePs   zBaseGetitemTests.test_loc_framecCs~t d|i¡}tj|dgdgd|jd}|jd}| ||¡tj|dgdgt|ƒd|jd}|jd}| ||¡dS)Nrr)Úindexrrr%r)rrr    rr'r r r
r"rrrÚ test_loc_iloc_frame_single_dtypefs
 
ÿ
z1BaseGetitemTests.test_loc_iloc_frame_single_dtypecCs>|d}t||jjƒst‚t |¡d}t||jjƒs:t‚dS©Nr)Ú
isinstancerÚtypeÚAssertionErrorrr    ©r rrrrrÚtest_getitem_scalarusz$BaseGetitemTests.test_getitem_scalarc Csäd}tjt|d|dW5QRXtjt|d|dW5QRXt|ƒ}d dddd    |›d
|›d |d ›d |›d|d ›d |›g¡}tjt|d||d W5QRXtjt|d|| d W5QRXdS)Nz{only integers, slices \(`:`\), ellipsis \(`...`\), numpy.newaxis \(`None`\) and integer or boolean arrays are valid indices©ÚmatchZfoog@ú|zlist index out of rangezindex out of boundszOut of bounds accessz loc must be an integer between -z and zindex rz' is out of bounds for axis 0 with size zindex -)ÚpytestÚraisesÚ
IndexErrorr Újoin)r rÚmsgZubrrrÚtest_getitem_invalid|s(ÿúÿ
z%BaseGetitemTests.test_getitem_invalidcCs|d}|||ƒst‚dSr,)r/)r Ú data_missingÚna_cmpÚna_valuerrrrÚtest_getitem_scalar_na˜sz'BaseGetitemTests.test_getitem_scalar_nacCsL|g}t|ƒdkst‚t|t|ƒƒs*t‚|tjgdd}| ||¡dS)Nrrr)r r/r-r.rÚarrayÚassert_extension_array_equal)r rrrrrrÚtest_getitem_emptyœs
z#BaseGetitemTests.test_getitem_emptycCsàtjt|ƒtd}||}t|ƒdks*t‚t|t|ƒƒs<t‚tjt|ƒtd}t |¡|}t|ƒdkslt‚|j    |j    ks|t‚d|d<||}t|ƒdksœt‚t|t|ƒƒs®t‚t |¡|}t|ƒdksÌt‚|j    |j    ksÜt‚dS)NrrTr)
rÚzerosr Úboolr/r-r.rr    r)r rÚmaskrrrrÚtest_getitem_mask¥sz"BaseGetitemTests.test_getitem_maskc    Csrt ddg¡}dt|ƒ›}tjt|d||W5QRXtj|dd}tjt|d||W5QRXdS)NTFz-Boolean index has wrong length: 2 instead of r2Úbooleanr)rr?r r5r6r7r)r rrDr9rrrÚtest_getitem_mask_raises½sz)BaseGetitemTests.test_getitem_mask_raisescCsÎtjtj|jdddd}||}t|ƒdks2t‚t|t|ƒƒsDt‚t     |¡|}t|ƒdksbt‚|j
|j
ksrt‚d|dd…<|  dddd    d
g¡}||}|  ||¡t     |¡}t     |¡|}|  ||¡dS) NrCrrFrTérrrr)rr?rrBÚshaper r/r-r.r    rÚtaker@r )r rrDrrrrrÚtest_getitem_boolean_array_maskÇs  
z0BaseGetitemTests.test_getitem_boolean_array_maskcCs†tjtj|jdddd}tj|dd…<d|dd…<||}|| d¡}| ||¡t |¡}||}|| d¡}|     ||¡dS)NrCrrFrTrF)
rr?rrBrIÚNAZfillnar@r    r )r rrDrrÚsrrrÚ(test_getitem_boolean_na_treated_as_falseÚs  
z9BaseGetitemTests.test_getitem_boolean_na_treated_as_falseÚidxrrrZInt64rÚlistz integer-arrayz numpy-array)ÚidscCsn||}t|ƒdkst‚t|t|ƒƒs*t‚| dddg¡}| ||¡t |¡}t |¡|}| ||¡dS)Nrrrr)    r r/r-r.rJr@rr    r )r rrOrrrrrÚtest_getitem_integer_arrayìs 
z+BaseGetitemTests.test_getitem_integer_arrayc    Cs*d}tjt|d||W5QRXdS)Nú9Cannot index with an integer indexer containing NA valuesr2)r5r6Ú
ValueError)r rrOr9rrrÚ(test_getitem_integer_with_missing_raisesüsz9BaseGetitemTests.test_getitem_integer_with_missing_raiseszSTries label-based and raises KeyError; in some cases raises when calling np.asarray)Úreasonc    CsJd}tj|dd„tt|ƒƒDƒd}tjt|d||W5QRXdS)NrScSsg|]}t d¡‘qS)r)ÚtmZrands)Ú.0Ú_rrrÚ
<listcomp>szTBaseGetitemTests.test_getitem_series_integer_with_missing_raises.<locals>.<listcomp>©r*r2)rr    Úranger r5r6rT)r rrOr9rrrrÚ/test_getitem_series_integer_with_missing_raisess
 z@BaseGetitemTests.test_getitem_series_integer_with_missing_raisescCs@|tdƒ}t|t|ƒƒst‚|tdƒ}t|t|ƒƒs<t‚dS)Nrr)Úslicer-r.r/r0rrrÚtest_getitem_slices  z#BaseGetitemTests.test_getitem_slicecCsÔ|ddd…f}| ||¡|dd…df}| ||¡|ddd…f}| ||dd…¡|dd…df}| ||dd…¡|dddd…f}| ||ddd…¡|ddd…df}| ||ddd…¡dS)N.rr)r@r0rrrÚtest_getitem_ellipsis_and_slices  z0BaseGetitemTests.test_getitem_ellipsis_and_slicec    Cs¾tj|dd„tt|ƒƒDƒd}| d¡|jdks8t‚| ddg¡}|jddg}| ||¡| tdƒ¡}|jdd    g}| ||¡| d
¡dksšt‚| |j     
¡d    ¡dks¶t‚tj|dd…t d ƒd}| d ¡|jdksèt‚| td dƒ¡}|jd    ddg}| ||¡| d¡}|dks,t‚| d¡|jdksFt‚| d
¡|jd
ks`t‚| t|ƒ¡dksxt‚t |¡}t   d¡|ddd…}W5QRX| d    ¡dksºt‚dS)NcSsg|] }d|‘qS)rr)rXÚirrrrZ5sz-BaseGetitemTests.test_get.<locals>.<listcomp>r[rrérrrr%ZabcdefÚcÚbÚdÚZ)rr    r\r Úgetr
r/r r^r*ÚmaxrPrWZassert_produces_warning)r rrMrrÚs2rrrÚtest_get3s0    
 
 zBaseGetitemTests.test_getcCsZt |¡dddg}|jd|dks*t‚|jd|dks@t‚|jd|dksVt‚dS)Nrrrr)rr    r
r/r0rrrÚtest_take_sequenceXsz#BaseGetitemTests.test_take_sequencec    Cs²| ddg¡}|j|jkst‚|d|dks2t‚|d|dksFt‚|jddgd|d}|d|dksnt‚||d|ƒs€t‚tjtdd| t|ƒdg¡W5QRXdS)Nrr%rT)Ú
allow_fillÚ
fill_valuez out of boundsr2)rJrr/r5r6r7r )r rr=r<rrrrÚ    test_take^szBaseGetitemTests.test_takec    Cs„|dd…}|jdgdd}||d|ƒs.t‚d}tjt|d| dg¡W5QRXtjtdd| ddg¡W5QRXdS)    Nrr%T©rlz;cannot do a non-empty take from an empty axes|out of boundsr2zcannot do a non-empty taker)rJr/r5r6r7)r rr=r<Úemptyrr9rrrÚtest_take_emptyks z BaseGetitemTests.test_take_emptycCsJt|ƒ}| d| |ddg¡}| dd|d|dg¡}| ||¡dS)Nrrr%)r rJr@)r rÚnrrrrrÚtest_take_negativeysz#BaseGetitemTests.test_take_negativecCsX|d}|d}|j|||g|jd}|jddg|dd}| ddg¡}| ||¡dS)Nrrrr%T©rmrl)Ú_from_sequencerrJr@)r r;rmÚnaÚarrrrrrrÚtest_take_non_na_fill_value€sÿz,BaseGetitemTests.test_take_non_na_fill_valuec    Cs2tjtdd|jddg|ddW5QRXdS)NÚr2réþÿÿÿTrt)r5r6rTrJ)r rr=rrrÚ&test_take_pandas_style_negative_raises‹sz7BaseGetitemTests.test_take_pandas_style_negative_raisesrlTFc    CsB|dd…}tjtdd|jt ddg¡|dW5QRXdS)Nrzout of bounds|out-of-boundsr2rro)r5r6r7rJrZasarray)r rrlrwrrrÚtest_take_out_of_bounds_raisess z/BaseGetitemTests.test_take_out_of_bounds_raisescCsbt |¡}| ddg¡}tj|j|d|t|ƒdg|jddt|ƒdgd}| ||¡dS)Nrr%rrr[)rr    rJrur rr )r rrMrrrrrÚtest_take_series–s
"þz!BaseGetitemTests.test_take_seriescCsÜt |¡}| dddg¡}tj| dddg¡dddgd}| ||¡t|ƒ}| dd|g¡}tj|j||d|g|jddd|gd}| ||¡| ||dg¡}tj|j||g|jd||dgd}| ||¡dS)Nrrrr[r%r)rr    ÚreindexrJr r rur)r rr=rMrrrrrrrÚ test_reindexŸs"
  þ 
ÿzBaseGetitemTests.test_reindexcCsn|d}|d}|j||g|jd}t |¡}|jdddg|d}t |j|||g|jd¡}| ||¡dS)Nrrrr)rm)rurrr    r~r )r r;ZvalidrvrwrrrrrrÚtest_reindex_non_na_fill_value³s
ÿz/BaseGetitemTests.test_reindex_non_na_fill_valuecCsdt d|i¡}|jdgdf}|jdks,t‚|jjdjdksBt‚t|jdƒr`|jjjdks`t‚dS)NrrrÚblocks)    rrr'Úndimr/Z_mgrÚarraysÚhasattrÚ_block)r rr#ÚresrrrÚ test_loc_len1Às  zBaseGetitemTests.test_loc_len1c    Cs~t |¡}|dd… ¡}||dks*t‚d}tjt|d|dd… ¡W5QRXtjt|d| ¡W5QRXdS)Nrrz6can only convert an array of size 1 to a Python scalarr2)rr    Úitemr/r5r6rT)r rrMrr9rrrÚ    test_itemÉs
zBaseGetitemTests.test_itemcCs^Gdd„dtjjƒ}t d|tjddgtdƒi¡}|jdd…}| t    |djj
ƒd¡dS)    Ncs eZdZdZ‡fdd„Z‡ZS)zBBaseGetitemTests.test_ellipsis_index.<locals>.CapturingStringArrayz6Extend StringArray to capture arguments to __getitem__cs||_tƒ |¡S)N)Ú last_item_argÚsuperÚ __getitem__)r rˆ©Ú    __class__rrrŒÜszNBaseGetitemTests.test_ellipsis_index.<locals>.CapturingStringArray.__getitem__)Ú__name__Ú
__module__Ú __qualname__Ú__doc__rŒÚ __classcell__rrrrÚCapturingStringArrayÙsr”Zcol1ZhelloZworldrrzslice(None, 1, None)) rrƒZ StringArrayrrr?Úobjectr
Z assert_equalÚstrrŠ)r r”r#rYrrrÚtest_ellipsis_indexÖs ÿz$BaseGetitemTests.test_ellipsis_indexN)-rrr‘r’rr$r&r(r)r+r1r:r>rArErGrKrNr5ÚmarkZ parametrizerr?rrRrLrUZxfailr]r_r`rjrkrnrqrsrxr{r|r}rr€r‡r‰r—rrrrr    sj            
*ý
$ý
ÿ$ý %  
          r) Únumpyrr5ZpandasrZpandas._testingZ_testingrWZ pandas.tests.extension.base.baserrrrrrÚ<module>s