zmc
2023-10-12 ed135d79df12a2466b52dae1a82326941211dcc9
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
U
­ý°d€-ã@sdZddlZddlZddlmZddlmZmZddl    m
Z
m Z m Z m Z mZmZmZmZddlmZGdd„dƒZGdd    „d    ƒZGd
d „d ƒZGd d „d ƒZGdd„dƒZGdd„dƒZej de dddgƒe dddgƒe dddgƒg¡dd„ƒZej dejdejgejgejddgej d fejdejgejdgejdddgej d fejejdejge!d ejgejddgej d fe d!eegƒegejddgej d fdddejgejgejdgej d fejdeje"d"ƒdge!d e ejge!d ejddgej d fg¡d#d$„ƒZ#d%d&„Z$dS)'aS
test_indexing tests the following Index methods:
    __getitem__
    get_loc
    get_value
    __contains__
    take
    where
    get_indexer
    get_indexer_for
    slice_locs
    asof_locs
 
The corresponding tests.indexes.[index_type].test_indexing files
contain tests for the corresponding methods specific to those Index subclasses.
éN)ÚInvalidIndexError)Úis_float_dtypeÚ    is_scalar)ÚNAÚ DatetimeIndexÚIndexÚ IntervalIndexÚ
MultiIndexÚNaTÚ PeriodIndexÚTimedeltaIndexc@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
ÚTestTakec    Csddg}d}tjt|d|j|ddW5QRXd}tjt|d|j||dW5QRXd}tjt|d|j|d    d
W5QRXdS) Nééz1take\(\) got an unexpected keyword argument 'foo'©Úmatch)Úfooz$the 'out' parameter is not supported)Úoutz%the 'mode' parameter is not supportedZclip)Úmode)ÚpytestÚraisesÚ    TypeErrorÚtakeÚ
ValueError)ÚselfÚindexÚindicesÚmsg©rúYd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/indexes/test_indexing.pyÚtest_take_invalid_kwargs)sz!TestTake.test_take_invalid_kwargsc    Cstddddg}t|ƒdkrdS| |¡}||}| |¡s<t‚t|tttfƒspd}tj    t
|d |j W5QRXdS)Néérréz*'(.*Index)' object has no attribute 'freq'r) ÚlenrÚequalsÚAssertionErrorÚ
isinstancerr r rrÚAttributeErrorÚfreq)rrÚindexerÚresultÚexpectedrrrrÚ    test_take8s  
zTestTake.test_takec    Cs@tddddgƒ}d}d}tjt|d| |¡W5QRXdS)Nrrrr"z!Expected indices to be array-liker)rrrrr)rZ integer_indexZ scalar_indexrrrrÚtest_take_indexer_typeHs
zTestTake.test_take_indexer_typecCsHt|ƒdkrdS| dddg¡}| ddt|ƒdg¡}t ||¡dS)Nréÿÿÿÿr)r$rÚtmZassert_index_equal)rrr+r,rrrÚtest_take_minus1_without_fillPs
 z&TestTake.test_take_minus1_without_fillN)Ú__name__Ú
__module__Ú __qualname__r r-r.r1rrrrr (sr c@seZdZej dedddgƒdfedddgƒdfedddejdgƒdfedddej    dgƒdfedddejgƒejfedddej    gƒej    fg¡dd„ƒZ
ej dedddgƒdfedddgƒdfedddejgƒdfedddej    gƒdfedddejgƒej    fedddej    gƒejfedddgej d    ejfedddgej d    ej    fedddgej d    ejfedddgej d    ej    fg
¡d
d „ƒZ ej dedddgƒdfedddgƒdfg¡d d „ƒZej dedddgƒdfedddgƒdfg¡dd„ƒZdd„Zdd„ZdS)Ú TestContainsz    index,valrrrÚ2r!cCs||ks t‚dS©N©r&©rrÚvalrrrÚtest_index_contains]s z TestContains.test_index_contains©ÚdtypecCs||ks t‚dSr7r8r9rrrÚtest_index_not_containsksz$TestContains.test_index_not_containscCs||ks t‚dSr7r8r9rrrÚtest_mixed_index_containssz&TestContains.test_mixed_index_containsÚ1cCs||ks t‚dSr7r8r9rrrÚtest_mixed_index_not_contains†sz*TestContains.test_mixed_index_not_containscCsˆ|}t|ƒsddddgn
ddddg}t||d    }t|jƒs`d|ksFt‚d
|ksRt‚d|ks„t‚n$d|kslt‚d
|ksxt‚d|ks„t‚dS) Nrrrr"皙™™™™¹?gš™™™™™ñ?gš™™™™™@gffffff
@r<çð?)rrr=r&)rZany_real_numpy_dtyper=ÚdatarrrrÚtest_contains_with_float_indexs  
    z+TestContains.test_contains_with_float_indexc    Cspt|tƒrdSd}tjt|dg|kW5QRXd dddddg¡}tjt|di|jkW5QRXdS)    Nzunhashable type: 'list'rú|zunhashable type: 'dict'zmust be real number, not dictzan integer is requiredz\{\}z6pandas\._libs\.interval\.IntervalTree' is not iterable)r'r    rrrÚjoinZ_engine)rrrrrrÚ&test_contains_requires_hashable_raisesœs
ûÿ    z3TestContains.test_contains_requires_hashable_raisesN)r2r3r4rÚmarkÚ parametrizerÚnpÚinfÚnanr;Úint64Zuint64r>r?rArErHrrrrr5\sLúþ
ôþ
"ÿ
"ÿ
r5c@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
Ú
TestGetLocc    Cs2tjttfdd| tddƒ¡W5QRXdS)NÚslicerrr)rrrrÚget_locrP)rrrrrÚtest_get_loc_non_hashable²sz$TestGetLoc.test_get_loc_non_hashablec    Csvddlm}Gdd„d|ƒ}t|jƒr*t‚t}d}t|ttt    t
fƒrLt }d}t j ||d| |j¡W5QRXdS)Nr)ÚEnumc@seZdZdZdS)z6TestGetLoc.test_get_loc_non_scalar_hashable.<locals>.EÚx1N)r2r3r4ÚX1rrrrÚE¼srVz <E.X1: 'x1'>zE.X1r)ÚenumrSrrUr&ÚKeyErrorr'rr r rrrrrQ)rrrSrVÚexcrrrrÚ test_get_loc_non_scalar_hashable¸s" üþ
z+TestGetLoc.test_get_loc_non_scalar_hashablec    CsRt}t|tttttfƒrt}tj    |dd| 
dd„t dƒDƒ¡W5QRXdS)Nzgenerator objectrcss|]
}|VqdSr7r)Ú.0ÚxrrrÚ    <genexpr>âsz4TestGetLoc.test_get_loc_generator.<locals>.<genexpr>r#) rXr'rr r rr    rrrrQÚrange)rrrYrrrÚtest_get_loc_generatorÒsûþ z!TestGetLoc.test_get_loc_generatorcCs@tddttgdd}| t¡}t ddddg¡}t ||¡dS)NrrÚInt64r<FT)rrrQrKÚarrayr0Úassert_numpy_array_equal©rÚidxr+r,rrrÚ!test_get_loc_masked_duplicated_naäs
z,TestGetLoc.test_get_loc_masked_duplicated_naN)r2r3r4rRrZr_rerrrrrO±srOc@s$eZdZdd„Zdd„Zdd„ZdS)ÚTestGetIndexerc    Cs„|jr0tj|jtjd}| |¡}t ||¡n(d}tj    t
|d| |¡W5QRXtj    t dd|j|ddW5QRXdS)Nr<ú8Reindexing only valid with uniquely valued Index objectsrzInvalid fill methodÚinvalid)Úmethod) Ú_index_as_uniquerKZarangeÚsizeÚintpÚ get_indexerr0rbrrrr)rrr,ÚactualrrrrÚtest_get_indexer_baseís
z$TestGetIndexer.test_get_indexer_basec    Cs¤|jr:| |dd…¡}t|tjƒs(t‚|jtjksjt‚n0d}tj    t
|d| |dd…¡W5QRX|  |dd…¡\}}t|tjƒst‚|jtjks t‚dS)Nrrrgr) rjrmr'rKZndarrayr&r=rlrrrÚget_indexer_non_unique)rrr*rÚ_rrrÚtest_get_indexer_consistencyúsz+TestGetIndexer.test_get_indexer_consistencycCsPtddttgdd}| tdtgdd¡}tjdddg|jd}t ||¡dS)Nrrr`r<rr")rrÚget_indexer_forrKrar=r0rbrcrrrÚ%test_get_indexer_masked_duplicated_na
sz4TestGetIndexer.test_get_indexer_masked_duplicated_naN)r2r3r4rorrrtrrrrrfìs rfc@seZdZdd„ZdS)ÚTestConvertSliceIndexerc    Csptdddƒ}t|tƒrBd}tjt|d| |d¡W5QRXn*d}tjt|d| |d¡W5QRXdS)NrzClabel-based slicing with step!=1 is not supported for IntervalIndexrÚlocz7'>=' not supported between instances of 'str' and 'int')rPr'rrrrZ_convert_slice_indexerr)rrÚkeyrrrrÚtest_convert_almost_null_slices 
z6TestConvertSliceIndexer.test_convert_almost_null_sliceN)r2r3r4rxrrrrrusruc@seZdZdd„ZdS)Ú TestPutmaskc    Cs²t|ƒs dS|d}d}tjt|d$| t t|ƒdtj¡|¡W5QRXtjt|d$| t t|ƒdtj¡|¡W5QRXtjt|d| d|¡W5QRXdS)Nrz,putmask: mask and data must be the same sizerrr)r$rrrZputmaskrKZonesZbool_)rrÚfillrrrrÚtest_putmask_with_wrong_mask#s((z(TestPutmask.test_putmask_with_wrong_maskN)r2r3r4r{rrrrry"sryrdrrr"rBgš™™™™™É?g333333Ó?ÚaÚbÚcc    Cs*d}tjt|d|dW5QRXdS)Nz,Indexing with a float is no longer supportedrrC)rrÚ
IndexError)rdrrrrÚtest_getitem_deprecated_float5sr€zidx,target,expectedZvar1r<z
2020-08-05ÚNaNcCs"t|ƒ}| |¡}t ||¡dSr7)rrsr0rb)rdÚtargetr,ZaxisrnrrrÚ)test_get_indexer_non_unique_multiple_nans@s
rƒcCsdtddgƒ}td|gdd}| |¡\}}t |tjddgtjd¡t |tjdgtjd¡dS)NrCg@rÚobjectr<rr/)rrpr0rbrKrarl)Z nulls_fixturerdr‚Z
result_idxZresult_missingrrrÚ7test_get_indexer_non_unique_nans_in_object_dtype_targetbs
 r…)%Ú__doc__ÚnumpyrKrZ pandas.errorsrZpandas.core.dtypes.commonrrZpandasrrrrr    r
r r Zpandas._testingZ_testingr0r r5rOrfruryrIrJr€rMrarlr„Úfloatrƒr…rrrrÚ<module>sR (
4U;&&ÿ
& ýý ý$ýîþ