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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
U
­ý°d_Zã@s¾ddlZddlZddlZddlmZddlmZmZm    Z    m
Z
m Z m Z m Z mZmZmZmZmZmZmZmZddlmZGdd„dƒZGdd„dƒZGdd    „d    ƒZGd
d „d ƒZGd d „d ƒZdS)éN)ÚInvalidIndexError)ÚNAÚCategoricalIndexÚ DatetimeIndexÚIndexÚIntervalÚ IntervalIndexÚ
MultiIndexÚNaTÚ    TimedeltaÚ    TimestampÚarrayÚ
date_rangeÚinterval_rangeÚ period_rangeÚtimedelta_rangec @sÌeZdZej dddddg¡dd„ƒZej dd    d
d d d ddddg    ¡dd„ƒZej ddd
d ddddg¡dd„ƒZej dddddg¡ej dddddg¡d d!„ƒƒZ    ejjd"e
d#d$d%e
d#d$d&d'e d(d$d%gd)d*„d+d,d-„ƒZ ejjd.e
d#d$d%e
d/d$d%fe
d#d$d&d'e
d/d$d&d'fe d(d$d%e d0d$d%fgd1d*„d+d2d3„ƒZ ejjd4e
d5d$d6d7e
d5d$d6d&d8e d9d$d6d7e d:d;d;¡e ddd¡gd<d*„d+d=d>„ƒZej d?dgd@g¡dAdB„ƒZdCdD„ZdES)FÚ
TestGetLocÚsideÚrightÚleftÚbothÚneitherc
Cs*tjddg|d}ddgddgddgddgddgd    dgd
dgfD]ä}t d |d›d |d›d |›d¡}||krö|ddgkrœ| tdd|d¡dksôt‚nX|ddgkrÆ| tdd|d¡dksôt‚n.tjt    |d| t|d|iŽ¡W5QRXq@tjt    |d| t|d|iŽ¡W5QRXq@dS)N©ré©éé©Úclosedrrrréç@éÿÿÿÿú    Interval(ú, ú
, closed='ú')©Úmatchr)
rÚ from_tuplesÚreÚescapeÚget_locrÚAssertionErrorÚpytestÚraisesÚKeyError)ÚselfrrÚidxÚboundÚmsg©r4úbd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/indexes/interval/test_indexing.pyÚtest_get_loc_intervals2&   z TestGetLoc.test_get_loc_intervalÚscalarçà¿rçà?rçø?rr rç @c    Cs dddddœdddddœdddddddœdddœdœ}tjdd    g|d
}||| ¡krt| |¡|||ksœt‚n(tjtt|ƒd | |¡W5QRXdS) Nrr)r9rr r)rr9rr )rr9rrr r)r9r )rrrrrrrr&)    rr(Úkeysr+r,r-r.r/Ústr)r0rr7Úcorrectr1r4r4r5Útest_get_loc_scalar1s  üzTestGetLoc.test_get_loc_scalarr!ç@ééc    Cs`tjdg|d}||dkr4| |¡}|dks\t‚n(tjtt|ƒd| |¡W5QRXdS)N©rrArrr&)rr(r+r,r-r.r/r=)r0r7rÚindexÚresultr4r4r5Útest_get_loc_length_one_scalarFs  
z)TestGetLoc.test_get_loc_length_one_scalarÚ other_closedz left, rightrC)r!r)r!rB©rBéc Cs„tjdg|d}t|||d}||dkrB| |¡}|dks€t‚n>tjtt     d|›d|›d|›d¡d| |¡W5QRXdS)    NrCrrr"r#r$r%r&)
rr(rr+r,r-r.r/r)r*)r0rrrrGrDÚintervalrEr4r4r5Ú test_get_loc_length_one_intervalQs 
þz+TestGetLoc.test_get_loc_length_one_intervalÚbreaksZ20180101r©Úperiodsz
US/Eastern©rNÚtzz0 dayscCs
t|jƒS©N©r=Údtype©Úxr4r4r5Ú<lambda>iózTestGetLoc.<lambda>)ÚidscCsbt |¡}|dj}| |¡}d}||ks.t‚t|dj|djƒ}| |¡}d}||ks^t‚dS©Nr)rÚ from_breaksÚmidr+r,rrr)r0rLrDÚvaluerEÚexpectedrJr4r4r5Ú(test_get_loc_datetimelike_nonoverlappingbs
 
 
 
z3TestGetLoc.test_get_loc_datetimelike_nonoverlappingÚarraysZ20180103z2 dayscCst|djƒSrYrRrTr4r4r5rV‡rWcCsrtj|Ž}|djtdƒ}| |¡}tdddƒ}||ks>t‚t|dj|dj    ƒ}| |¡}d}||ksnt‚dS)Nrz12 hoursr)
rÚ from_arraysr[r r+Úslicer,rrr)r0r_rDr\rEr]rJr4r4r5Ú%test_get_loc_datetimelike_overlappingzs
 
 
z0TestGetLoc.test_get_loc_datetimelike_overlappingÚvaluesz
2018-01-04z-1D)rNÚfreq)rNrdrPz3 daysç@gð¿cCs
t|jƒSrQrRrTr4r4r5rV rWcCs>t |dd…|dd…¡}| |d¡}d}||ks:t‚dS)Nrr!r)rr`r+r,)r0rcrDrEr]r4r4r5Útest_get_loc_decreasing—s z"TestGetLoc.test_get_loc_decreasingÚkeyrc    CsDt dddddg¡}t|ƒ}tjt|d| |¡W5QRXdS)N©rr©rr)rrA)rIé
)rrjr&)rr(r=r-r.rr+)r0rgr1r3r4r4r5Útest_get_loc_non_scalar_errors©sz)TestGetLoc.test_get_loc_non_scalar_errorsc
Cs¨ttjtddƒtjgƒ}t dddg¡}dtjtfD]&}||ksDt‚| |¡}t     ||¡q4t
t  dd¡t  dd¡fD],}t jtt|ƒd| |¡W5QRXqvdS)NrrTFr
Únsr&)rÚnpÚnanrr rr,r+ÚtmÚassert_numpy_array_equalr
Z timedelta64Z
datetime64r-r.r/r=)r0rDr]rgrEr4r4r5Útest_get_indexer_with_nans²s 
z%TestGetLoc.test_get_indexer_with_nansN)Ú__name__Ú
__module__Ú __qualname__r-ÚmarkÚ parametrizer6r?rFrKrrr^rbrmÚarangerfrkrqr4r4r4r5rsZ
 
 
 
 
 
ýù    
  þ
 
þú ó
    û÷
 
rc@s‚eZdZej deddddgdgfeddddgdgfeddd    dgdgfeddd
dgdgfeddddgdgfed dddgdgfed d ddgdgfedddded dddgddgfeddddeddddgddgfeddddeddddgddgfeddddeddddgddgfg ¡dd„ƒZej ddgdgfd gdgfd gd gfdgd gfd gdgfdgdgfdgdgfdgdgfdgdgfdgdgfdgdgfddgd dgfdddgd ddgfddddgd dddgfdddddgd ddddgfg¡dd„ƒZej ddge     
d dd ¡g¡dd„ƒZ ej dddg¡dd„ƒZ ej de  d d!d"d#g¡e  d#d!d"e    jg¡e jd#d!d"gd    ddd d ddde    jgd$d$d%d&gg¡d'd(„ƒZd)d*„Zd+d,„Zej d-d.d/d"gd
fd0d1d2gdfd#d#d!gdfd#d3d"gd    fg¡d4d5„ƒZej ddgdgd gffd gd ggffd gd ggffdgd dggffd gd dggffdgd ddggffdgddggffdgdggffdgdggffdgdgd gffdgdgd gffddgd dd ddggffdddgd dd dddggffddddgd dd ddddgdgffdddddgd dd ddddd ddg
dgffg¡d6d7„ƒZd8d9„Zd:d;„Zd<d=„Zd>d?„Zej d@e eeg¡dAdB„ƒZdCS)DÚTestGetIndexerzquery, expectedrrrrrrr!rrrr9r:rArIcCs@dddg}tj|dd}| |¡}tj|dd}t ||¡dS)N©rrri)rArIrrÚintp©rS©rr(Ú get_indexerrmr rorp©r0Úqueryr]ÚtuplesrDrEr4r4r5Útest_get_indexer_with_intervalÂs
 
 
z-TestGetIndexer.test_get_indexer_with_intervalr8r rr;r@cCs@dddg}tj|dd}| |¡}tj|dd}t ||¡dS)Nr©rr©rrrrrzr{r|r~r4r4r5Ú#test_get_indexer_with_int_and_floatÚs
 
 
z2TestGetIndexer.test_get_indexer_with_int_and_floatÚitemcCsBtjdg|d}| |¡}tjdgt|ƒdd}t ||¡dS)NrCrrrzr{)rr(r}rmr Úlenrorp)r0r…rrDrEr]r4r4r5Útest_get_indexer_length_oneös
z*TestGetIndexer.test_get_indexer_length_oneÚsizecCsLtjdg|d}| tdd|ƒg|¡}tjdg|dd}t ||¡dS)NrCrrrArzr{)rr(r}rrmr rorp)r0rˆrrDrEr]r4r4r5Ú$test_get_indexer_length_one_intervalþsz3TestGetIndexer.test_get_indexer_length_one_intervalÚtarget)rIér‚rƒrÚfooÚbarZbazcCs@t dddg¡}t||d}| |¡}| |¡}t ||¡dS)Nrr‚rƒ)Úordered)rr(rr}rorp)r0rŠrŽrDZcategorical_targetrEr]r4r4r5Útest_get_indexer_categoricals
 
 
z+TestGetIndexer.test_get_indexer_categoricalc CsÔt tdƒ¡}| ttjgƒ¡}t|ƒ}| |¡}tjdtj    d}t
  ||¡|dd… |ddd…¡}tj dddddgtj    d}t
  ||¡| | |¡¡}tj ddddddddddg
tj    d}t
  ||¡dS)    NrAr{rr!rrrr) rrZÚrangeÚappendrmrnrr}rwrzrorpr )r0ÚiiZii2Zci2rEr]r4r4r5Ú&test_get_indexer_categorical_with_nanss
  $z5TestGetIndexer.test_get_indexer_categorical_with_nanscCs„t tddd¡}| tdgƒ¡}tjdgtjd}t     ||¡| tdgƒ 
t ¡¡}t     ||¡| tdgƒj ¡}t     ||¡dS)Nz
2018-01-01rrMz
2018-01-02rr{) rrZrr}rrmr rzrorpZastyper=Zasi8)r0r’rEr]r4r4r5Útest_get_indexer_datetime-s  z(TestGetIndexer.test_get_indexer_datetimeztuples, closedryrhrC)rrrHrc    Cs>tj||d}d}tjt|d| ddg¡W5QRXdS)NrzKcannot handle overlapping indices; use IntervalIndex.get_indexer_non_uniquer&rr)rr(r-r.rr})r0r€rrDr3r4r4r5Útest_get_indexer_errors;s
ÿz&TestGetIndexer.test_get_indexer_errorsc    Csfdddg}tj|dd}| |¡\}}tj|ddd}tj|d    dd}t ||¡t ||¡dS)
N)rr rhrirrrrzr{r)rr(Úget_indexer_non_uniquermr rorp)    r0rr]r€rDZresult_indexerZresult_missingZexpected_indexerZexpected_missingr4r4r5Ú.test_get_indexer_non_unique_with_int_and_floatOs
 z=TestGetIndexer.test_get_indexer_non_unique_with_int_and_floatcCs†t dddg¡}t ddddg¡}| |¡}tjddddgtjd    }t ||¡| |d
d…¡}tjd
dgtjd    }t ||¡dS) Nr)rrArrH)r‹é    rrr!r{r)rr(r}rmr rzrorp)r0Zidx1Zidx2rEr]r4r4r5Útest_get_indexer_non_monotonicqs
 z-TestGetIndexer.test_get_indexer_non_monotoniccCsTttjtjgƒ}ttjgƒ}|jr&t‚| |¡}tjddgtjd}t     ||¡dS)Nrrr{)
rrmrnZ_index_as_uniquer,Úget_indexer_forr rzrorp)r0rDÚotherrEr]r4r4r5rq}s  
 
z)TestGetIndexer.test_get_indexer_with_nanscCsLt ddddg¡}| tddƒg¡\}}tjddgtjd}t ||¡dS)N©ççð?©ržç@ržr rrr{)    rr(r–rrmr rzrorp)r0rDrEÚ_r]r4r4r5Ú'test_get_index_non_unique_non_monotonicˆs 
ÿz6TestGetIndexer.test_get_index_non_unique_non_monotoniccCsrtjdddgdd}tdddgd    d}t ||g¡}| d¡ td
d ƒg¡}tj    dd d gtj
d}t   ||¡dS)N)r rerœrŸrJ)ÚnamerrrrŒrržrrIr{) rr(rr    Z from_productZget_level_valuesršrrmr rzrorp)r0Zinterval_indexZ    foo_indexZ multi_indexrEr]r4r4r5Ú*test_get_indexer_multiindex_with_intervals’sÿ
 
ÿz9TestGetIndexer.test_get_indexer_multiindex_with_intervalsÚboxcCsTtdddd}|ttdƒdddƒ}| |¡}tjdddgtjd}t ||¡dS)Nz
2022-07-01ÚDr)rdrNZ3Dr!r{)    rrr r}rmr rzrorp)r0r¥Úrngr1Úactualr]r4r4r5Útest_get_indexer_interval_index¡s
 
z.TestGetIndexer.test_get_indexer_interval_indexN)rrrsrtr-rurvrrr„rmrwr‡r‰rr(rnrr“r”r•r—r™rqr¢r¤r Úlistr©r4r4r4r5rxÁs®""""õþ
 
 
 
 
 
 
 
 
 
 
 
ñþ
 
 
 
ûþ
 
        üþ    
"*ñþ
 
rxc @s‚eZdZdd„Zdd„Zej dddgddgdd    gdd
gg¡ej d d d dgdd d gd d dgd dd gd d dd gg¡dd„ƒƒZdS)Ú TestSliceLocsc    Cs¬t dddg¡}|jtddƒtddƒddks2t‚|jtddƒd    dksLt‚|jtddƒd
dksft‚|jtddƒd
d ks€t‚|jtddƒtddƒdd ks¢t‚t dddg¡}|jtddƒtddƒdd ksÔt‚|jtddƒd    d ksît‚|jtddƒd
d ks
t‚|jtddƒd
dks&t‚|jtddƒtddƒddksJt‚t dddg¡}|jtddƒtddƒddks~t‚|jtddƒd    dksšt‚|jtddƒd
dks¶t‚|jtddƒd
dksÒt‚|jtddƒtddƒddksöt‚t dddg¡}tjtt     d¡d |jtddƒtddƒdW5QRXtjtt     d¡d|jtddƒd    W5QRX|jtddƒd
dksŽt‚tjtt     d¡d|jtddƒd
W5QRXtjtt     d¡d |jtddƒtddƒdW5QRXt ddddg¡}|jtddƒtddƒddks0t‚|jtddƒd    dksLt‚|jtddƒd
dksht‚|jtddƒd
dks„t‚|jtddƒtddƒddks¨t‚dS)Nryrhrirrr)ÚstartÚend©rr)r¬)r­r©rrr)rrzR"Cannot get left slice bound for non-unique label: Interval(0, 2, closed='right')"r&zS"Cannot get right slice bound for non-unique label: Interval(0, 2, closed='right')")rr)
rr(Ú
slice_locsrr,r-r.r/r)r*©r0rDr4r4r5Útest_slice_locs_with_interval­sl"""$$$ÿþ$ÿþÿþÿþ$$z+TestSliceLocs.test_slice_locs_with_intervalcCst dddg¡}| dd¡dks$t‚| dd¡dks8t‚| dd¡dksLt‚| dd¡d    ks`t‚| dd
¡d kstt‚| dd
¡d ksˆt‚t dddg¡}| dd¡d ks¬t‚| dd¡dksÀt‚| dd¡dksÔt‚| dd¡dksèt‚| dd
¡dksüt‚| dd
¡dkst‚dS)Nrr‚rƒrrrryrr¯rrr®)rr)rr)rrrh)rr)rr(r°r,r±r4r4r5Ú-test_slice_locs_with_ints_and_floats_succeedsûsz;TestSliceLocs.test_slice_locs_with_ints_and_floats_succeedsrrrrrrr€ryrhric    Cs<|\}}t |¡}tjtdd| ||¡W5QRXdS)Nzt'can only get slices from an IntervalIndex if bounds are non-overlapping and all monotonic increasing or decreasing'r&)rr(r-r.r/r°)r0r€rr¬ÚstoprDr4r4r5Ú+test_slice_locs_with_ints_and_floats_errorss 
ýz9TestSliceLocs.test_slice_locs_with_ints_and_floats_errorsN)    rrrsrtr²r³r-rurvrµr4r4r4r5r«¬sN$
ûþ
r«c@s.eZdZej dddg¡dd„ƒZdd„ZdS)Ú TestPutmaskrPz
US/PacificNcCsvtdd|d}t |¡}tj|jtd}d|dd…<| ||d¡}t|dgdt|dd…ƒƒ}t     
||¡dS)    Nú
2016-01-01r˜rOr{Trrr!© rrrZrmÚzerosÚshapeÚboolZputmaskrªroZassert_index_equal)r0rPÚdtir1ÚmaskrEr]r4r4r5Útest_putmask_dt64(s
 "zTestPutmask.test_putmask_dt64cCs€tddd}||d}t |¡}tj|jtd}d|dd…<| ||d¡}t|dgdt|dd…ƒƒ}t     
||¡dS)    Nr·r˜rMrr{Trr!r¸)r0r¼Ztdir1r½rEr]r4r4r5Útest_putmask_td644s  
 "zTestPutmask.test_putmask_td64)rrrsrtr-rurvr¾r¿r4r4r4r5r¶'s
r¶c@seZdZdd„ZdS)Ú TestContainscCsÚtjddgddgdd}d|ks$t‚d|ks0t‚d|ks<t‚tdddd|ksRt‚tdddd|ksht‚tdddd|ks~t‚tdddd|ks”t‚td    dd
d|ksªt‚tddd
d|ksÀt‚tddd d|ksÖt‚dS) Nrrrrrr9rrAr!rr)rr`r,rr±r4r4r5Útest_contains_dunderDs   z!TestContains.test_contains_dunderN)rrrsrtrÁr4r4r4r5rÀAsrÀ)r)Únumpyrmr-Z pandas.errorsrZpandasrrrrrrr    r
r r r rrrrZpandas._testingZ_testingrorrxr«r¶rÀr4r4r4r5Ú<module>s D &l{