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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
U
­ý°dßÇã@s dZddlmZddlZddlmZmZddlZddlZddl    m
Z
ddl m m ZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddlm Z!ddl"m#Z#ddl$m%Z%e &d    ¡Z'Gd
d „d ƒZ(Gd d „d ƒZ)Gdd„dƒZ*Gdd„dƒZ+Gdd„dƒZ,Gdd„dƒZ-dS)z* test positional based indexing with iloc é)ÚdatetimeN)Úcatch_warningsÚ simplefilter)Ú IndexingError)ÚNAÚ CategoricalÚCategoricalDtypeÚ    DataFrameÚIndexÚIntervalÚNaTÚSeriesÚ    TimestampÚarrayÚconcatÚ
date_rangeÚinterval_rangeÚisnaÚ to_datetime)Ú    is_scalar)Ú"check_indexing_smoketest_or_raiseszuonly integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indicesc
@sXeZdZej ddddddgg¡ej dddg¡ej d    d
d d d dg¡dd„ƒƒƒZdS)ÚTestiLocÚkeyééÿÿÿÿréÚkindÚseriesÚframeÚcolÚlabelsÚmixedÚtsZfloatsÚemptycCs(| |›d|›¡}t|d|tddS)NÚ_Úiloc)Zfails)ZgetfixturevaluerÚ
IndexError)ÚselfrrrÚrequestÚobj©r*úVd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/indexing/test_iloc.pyÚ"test_iloc_getitem_int_and_list_int-süz+TestiLoc.test_iloc_getitem_int_and_list_intN)Ú__name__Ú
__module__Ú __qualname__ÚpytestÚmarkÚ parametrizer,r*r*r*r+r,s þrc @sŽeZdZdZej dedƒedƒedƒdddge    edƒƒe
  dddg¡g¡ej de j e jg¡d    d
„ƒƒZej d eeg¡d d „ƒZdd„Zdd„Zej de
 d¡edƒfg¡ej dedƒddggddgedƒfedddƒgedƒfg¡dd„ƒƒZdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zej d)d*d+gd*d+d*d+gg¡d,d-„ƒZd.d/„Z d0d1„Z!d2d3„Z"d4d5„Z#d6d7„Z$d8d9„Z%d:d;„Z&d<d=„Z'd>d?„Z(d@dA„Z)dBdC„Z*dDdE„Z+dFdG„Z,ej ddgedddƒe
 dg¡g¡ej dHdIge
 dIg¡g¡dJdK„ƒƒZ-dLdM„Z.dNdO„Z/dPdQ„Z0dRdS„Z1dTdU„Z2dVdW„Z3dXdY„Z4dZd[„Z5d\d]„Z6d^d_„Z7ej dHde8e
j9g¡d`da„ƒZ:ej dbe;ddƒdcddg¡dedf„ƒZ<dgdh„Z=ej de j e jg¡didj„ƒZ>dkdl„Z?dmdn„Z@ej doee
jg¡dpdq„ƒZAej ddgeddƒg¡drds„ƒZBdtdu„ZCdvdw„ZDdxdy„ZEdzd{„ZFd|d}„ZGd~d„ZHej d€ee
jg¡ej dee
jg¡d‚dƒ„ƒƒZId„d…„ZJd†d‡„ZKeLjMdˆd‰„ƒZNdŠd‹„ZOdS)ŒÚTestiLocBaseIndependentzTests Independent Of Base ClassrNérrrÚindexerc    Cstdtdƒitd}tdddgƒ}|s<|jjd |¡s<t‚| ¡}|j    }|||ƒ|df<td|iƒ 
t¡}|s†t   |dj    |¡s†t‚t  ||¡d|jd<|ddks¬t‚tt jddd    gtdtdƒd
œƒ}| ¡}|j    }|||ƒ|df<t| 
t¡tdƒd
œƒ}t  ||¡dS) Nrr4©ÚdtypeÚalphaÚbetaÚgamma©rrrr©rr)r    ÚrangeÚobjectrÚ_mgrÚblocksZ_can_hold_elementÚAssertionErrorÚcopyÚvaluesÚastypeÚnpÚ shares_memoryÚtmÚassert_frame_equalr%r)    r'r5rÚusing_array_managerrÚcatÚdfZ    orig_valsÚexpectedr*r*r+Ú%test_iloc_setitem_fullcol_categoricalCs&  
"z=TestiLocBaseIndependent.test_iloc_setitem_fullcol_categoricalÚboxcCsútddddgƒ}|| d¡ƒ}|tkr.|j}n |jjd}|tkr^||dd…ƒ|jdd…<n||dd…ƒ|jdd…df<|tjddddgddƒ}t     ||¡|tkrà|rÐ|j|k    s¼t
‚t  |j|¡sÞt
‚qö|j|ksöt
‚nt  |dj|¡söt
‚dS)Nrrr4éÚi8rr6) rZto_numpyr rCr?Zarraysr%rErGZ assert_equalrArF)r'Úframe_or_seriesrNÚusing_copy_on_writeÚarrr)rCrLr*r*r+Útest_iloc_setitem_ea_inplaceps   z4TestiLocBaseIndependent.test_iloc_setitem_ea_inplacecCsJtdddgƒ}ttdƒ|d}|j d¡s.t‚| ¡}|j d¡sFt‚dS)Nrrr4©Úindex)r©rr)r
r r=r%Z_is_scalar_accessrAÚto_frame)r'rVÚserrKr*r*r+Útest_is_scalar_accessŽs
z-TestiLocBaseIndependent.test_is_scalar_accessc    Csêttj d¡tdƒd}d}tjt|d$|jdd…dddd    d
d gfW5QRXtjt|d|jdd gW5QRXtjt|d|jdd gW5QRXtjt|d|jdgW5QRX|d}tjt|d|jdgW5QRXtjt|d|jdgW5QRXd}tjt|d|jd W5QRXtjt|d|jd W5QRXtjt|d|jd W5QRXtjt|d|jd W5QRX|jdd…d
d…f}|jdd…d
d…f}t     
||¡|jdd…dd…f}|jdd…dd…f}t     
||¡|jdd…dd
d…f}|jdd…dd
d…f}t     
||¡|jdd…d
dd…f}|jdd…d
dd…f}t     
||¡|jdd…dd
…f}|jdd…dd
…f}t     
||¡|jdd…dd
…f}|jdd…dd…f}t     
||¡|jdd…ddd…f}|jdd…dd…f}t     
||¡|jdd…dd…f}|jdd…dd…f}t     
||¡|jdd …}|jdd…}t      ||¡|jd d…}|jdd…}t      ||¡|jd dd…}|jddd…}t      ||¡dd„}ttj  d d¡tdƒd}||jdd…dd    …ft|j gdƒ||jdd…dd    …f|jdd…dgfƒ||jd
d…|jd
gƒd}tjt|d|jd
d dgW5QRXd}tjt|d|jdd…d
fW5QRXdS)N)ééÚABCDE©Úcolumnsz%positional indexers are out-of-bounds©Úmatchrrrr4rOr\éiâÿÿÿédÚAiœÿÿÿz*single positional indexer is out-of-boundsé
éüÿÿÿiöÿÿÿriõÿÿÿé écSst|ƒ|jt ||¡dS©N)ÚstrÚdtypesrGrH)ÚresultrLr*r*r+Úcheckìsz?TestiLocBaseIndependent.test_iloc_exceeds_bounds.<locals>.checkZAB©rVr_é)r    rEÚrandomZ random_sampleÚlistr0Úraisesr&r%rGrHÚassert_series_equalÚrandnrV)r'rKÚmsgÚsrlrLrmZdflr*r*r+Útest_iloc_exceeds_bounds˜sˆ(           &,z0TestiLocBaseIndependent.test_iloc_exceeds_boundsz index,columnsr[r]zindex_vals,column_valsrdÚDÚ1Ú2iãc    CsPttj t|ƒt|ƒ¡||d}d}tjt|d|j||fW5QRXdS)Nrnz$.iloc requires numeric indexers, gotr`)    r    rErprtÚlenr0rrr&r%)r'rVr_Z
index_valsZ column_valsrKrur*r*r+Útest_iloc_non_integer_raisesýs ÿz4TestiLocBaseIndependent.test_iloc_non_integer_raisesc    CsJtt d¡ dd¡ƒ}t ||¡}tjtdd|j    dW5QRXdS)NrcrezCannot index by location indexr`Úa)
r    rEÚarangeÚreshaperGÚget_objr0rrÚ    TypeErrorr%)r'rQr)r*r*r+Ú test_iloc_getitem_invalid_scalars z8TestiLocBaseIndependent.test_iloc_getitem_invalid_scalarcCs|t dddg¡}| ¡}tdddgddd    gd
d d gd œdddgd}|j|t ||¡|jdd…|ft ||¡dS)Nrrrrcéeéfégéhéiéjékél©rdÚBÚCr4rU)rErrBr    r%rGZassert_numpy_array_equal)r'Zarray_with_neg_numbersZ
array_copyrKr*r*r+Ú-test_iloc_array_not_mutating_negative_indicessþ
 zETestiLocBaseIndependent.test_iloc_array_not_mutating_negative_indicescCsÖtdddgdddgdœƒ}|d}|jd    }|jd
}t ||¡|jd    g}|jd
g}t ||¡|jd    }|jd
}||ks†t‚|jd    g}|jd
g}t ||¡td gdgd }|jd g}t ||¡dS)Nrr4r\érgé ©rdrŒrdréýÿÿÿr}rUr)r    r%rGrsrHrAr )r'rKrvrLrlr*r*r+Ú/test_iloc_getitem_neg_int_can_reach_first_index%s"
 
 
 
     zGTestiLocBaseIndependent.test_iloc_getitem_neg_int_can_reach_first_indexcCs˜tdddœdddœgƒ}tdddœdddœgƒ}t||gdd}|jd}t|ƒsVt‚|jddd…f}ttjdddgd    d
d    d
gdd }t     ||¡dS) Nrr‘rr4rO©Zaxisr;rrdrŒ)rVÚname)
r    rr%rrAr rEÚnanrGrs)r'Údf1Údf2rKrlrLr*r*r+Útest_iloc_getitem_dups@s
  z.TestiLocBaseIndependent.test_iloc_getitem_dupscCsÄtddddœddddœdd    d
dœgƒ}tddddœgƒ}t |jd g|¡tddddœddddœgƒ}t |jd dg|¡tddd œd    d
d œgd dgd }|jd dgddgf}t ||¡dS)Nrrr4r‹rcéÈé,éèéÐé¸ r)rŒrrU)r    rGrHr%©r'rKrLrlr*r*r+Útest_iloc_getitem_arrayNs
 
 
ýÿ z/TestiLocBaseIndependent.test_iloc_getitem_arraycCs tddddœddddœdd    d
dœgƒ}tddddœddddœgƒ}|jd d d g}t ||¡tddddœdd    d
dœgd dgd}|jdd„}t ||¡dS)Nrrr4r‹rcršr›rœrržTFrrUcSs|jddkS)NrrrU©Úxr*r*r+Ú<lambda>qóz@TestiLocBaseIndependent.test_iloc_getitem_bool.<locals>.<lambda>©r    r%rGrHrŸr*r*r+Útest_iloc_getitem_boolas
 
 
ýÿ ÿz.TestiLocBaseIndependent.test_iloc_getitem_boolrVTFc    CsNtdddgƒ}dt|ƒ›dt|ƒ›}tjt|d|j|W5QRXdS)Nrrr4z Boolean index has wrong length: z  instead of r`)r r{r0rrr&r%)r'rVrvrur*r*r+Útest_iloc_getitem_bool_diff_lentsz7TestiLocBaseIndependent.test_iloc_getitem_bool_diff_lencCsÚtddddœddddœdd    d
dœgƒ}tddddœddddœgƒ}|jdd…}t ||¡tddd œgdgd }|jdd…d d…f}t ||¡tdddœdddœdd
dœgƒ}|jdd…dd„f}t ||¡dS)Nrrr4r‹rcršr›rœrržr‘rUr)rdrcSsddgS)Nrrr*)rKr*r*r+r£r¤zATestiLocBaseIndependent.test_iloc_getitem_slice.<locals>.<lambda>r¥rŸr*r*r+Útest_iloc_getitem_slice|s"
 
 
ýÿ  ÿz/TestiLocBaseIndependent.test_iloc_getitem_slicecCs¦ttj dd¡ddddgd}ttjjdddd dd    ¡dd
gd}t||gd d }t |j    dd…dd…f|¡t |j    dd…dd…f|¡t||gd d }t |j    dd…dd    …f|¡t |j    dd…d    d…f|¡t||j    dd…dgfgd d }t |j    dd…dd …f|¡t||gdd }t |j    dd…dd    …f|¡t |j    dd…d    d…f|¡t |j    dd…dd    …f|¡t |j    dd…d    d…f|¡dS)NrerOrdrŒr^rr[©Úsizerrrr”r4)
r    rErprtÚrandintrrrGrHr%)r'r—r˜rKÚexpr*r*r+Útest_iloc_getitem_slice_dups“s$ÿ z4TestiLocBaseIndependent.test_iloc_getitem_slice_dupscCsêttj dd¡t ddd¡t ddd¡d}d|jd    <|jd    }|dksLt‚d|jdd…dd…f<|jdd…dd…f}|jdd…dd…f}t ||¡t    ddd
d gd }|jdd…d7<t    dddgdd
d gd }t 
||¡dS) NrOréré r4rnr©rrr\rorU) r    rErprtr~r%rArGrHr rs©r'rKrlrLrvr*r*r+Útest_iloc_setitem¬s  ÿ
 
  z)TestiLocBaseIndependent.test_iloc_setitemcCs¼tdddgdddgddd    ggƒ}tdddgdddgd
d
d
ggƒ}d
|jd d d <t ||¡tdddgdddgddd    ggƒ}tddd
gddd
gddd
ggƒ}d
|jdd d <t ||¡dS)NroÚcrerÚdrgr®Úer¯r\rr”rrr¥©r'rKrLr*r*r+Útest_iloc_setitem_axis_argumentÀs     z7TestiLocBaseIndependent.test_iloc_setitem_axis_argumentc Cs¢tt d¡ d¡dddgdddgd}|jddgdd    gf|jddgdd    gfd
7<tt dd d d dddddg    ¡ d¡dddgdddgd}t ||¡dS)Né    )r4r4rdrŒrrnrrrrcrƒr„r4r†r‡rorr®)r    rEr~rr%rrGrHr¶r*r*r+Útest_iloc_setitem_listÌsÿ ýz.TestiLocBaseIndependent.test_iloc_setitem_listcCsxtddddgƒ}tddddgƒ}| ¡}ddg|jtddgƒ<t ||¡| ¡}ddg|jtddgƒ<t ||¡dS)Nrrrr4réþÿÿÿ)r rBr%rGrsr
)r'Zs_origrLrvr*r*r+Útest_iloc_setitem_pandas_objectÛs z7TestiLocBaseIndependent.test_iloc_setitem_pandas_objectcCsftdddœdddœgƒ}tdddœdddœgƒ}t||gdd}| d¡}t |jdd…df¡}||j}|j|df|j|df<t ||¡tddgddgdœƒ}d    d    g|_    |d
=t ||¡|jddgddgf|jddgddgf<t ||¡|jddgddgfj
d d |jddgddgf<|jddgddgfj
d d |jddgddgf<t ||¡dS) Nrr‘rr4rOr”rr<rŒrdT)Zdrop) r    rZfillnarEÚisnanr%rVrGrHr_Z reset_index)r'r—r˜rKrLZindsÚmaskr*r*r+Útest_iloc_setitem_dupsès"
 
 
 ( 00z.TestiLocBaseIndependent.test_iloc_setitem_dupscCsÖtddgddggddgd}|jdd…df d¡|jdd…df<|sZt|jjƒdksZt‚|jdd…dfd|jdd…df<|s–t|jjƒdks–t‚| ¡}|jddgddgf|jddgddgf<t     ||¡dS)    Nrrrr4rŒr^Zf8gà?)
r    r%rDr{r?r@rArBrGrH)r'rIrKrLr*r*r+Ú9test_iloc_setitem_frame_duplicate_columns_multiple_blockss&$(zQTestiLocBaseIndependent.test_iloc_setitem_frame_duplicate_columns_multiple_blockscCsìttj dd¡tdddƒtdddƒd}|jd}|jd}t ||¡|jd}|jd    }||ksht    ‚|jdd…}|jdd
…}t 
||¡|jdd…dd …f}|jdd…dd …f}t 
||¡|jdd d g}|jdddg}t 
||¡|jdd d gdd gf}|jdddgddgf}t 
||¡|jdd d gdd gf}|jdddgddgf}t 
||¡|jddd d gdd gf}|jddddgddgf}t 
||¡t td d ƒt d}|j|j }|jddddg}t 
||¡dS)NrerOrr[rr®rn)rr)rOrOér4r\rrorrh)rVr7)r    rErprtr=r%ÚlocrGrsrArHr r>rV)r'rKrlr¬rLrvr*r*r+Útest_iloc_getitem_frame sB
 
ÿ
 
 
 
        z/TestiLocBaseIndependent.test_iloc_getitem_framec    Csêttj dd¡tdƒtdƒd}|jd}|jd}||ks@t‚|jdd…dd    …f}|jdd…d
gf}t     ||¡|jd }|jd }||ks–t‚d }t
j t |d|jdW5QRXd}t
j t |d|jd W5QRXdS)NrerOÚ
abcdefghijÚABCDrnr°)ÚbrŒrr4r)rr)Újrxz/index 5 is out of bounds for axis 0 with size 4r`)rer\zžLocation based indexing can only have \[integer, integer slice \(START point is INCLUDED, END point is EXCLUDED\), listlike of integers, boolean array\] types)r    rErprtrqr%rÁrArGrHr0rrr&Ú
ValueError)r'rKrlr¬rLrur*r*r+Ú test_iloc_getitem_labelled_frameOs* ÿ
 
 
 
 ÿz8TestiLocBaseIndependent.test_iloc_getitem_labelled_framecCs¬tj dd¡}tddd}tdƒ}t|||d}| ¡|jdd…d    d
…f}t|ƒ|j    t|dd…d    d
…f|dd…|d    d
…d}t
  ||¡td ƒ|_ |jdd…d    d
…f}t|ƒ|j    t|dd…d    d
…f|dd…td ƒd}t
  ||¡tj dd¡}tt d    d d
ƒƒ}tt d    dd
ƒƒ}t|||d}|sJ|jjd    j|jdd…d
d…f}t|ƒ|j    t|dd…d
d…f|dd…|d
d…d}t
  ||¡dS)NrorOZ20130101)ZperiodsrÄrnr4r\rrZaaaaZaar¯r®r)rErprtrrqr    Zdescriber%rjrkrGrHr_r=r?r@Zmgr_locs)r'rIrSrVr_rKrlrLr*r*r+Útest_iloc_getitem_doc_issueps6 . 
* .z3TestiLocBaseIndependent.test_iloc_getitem_doc_issuecCsbttj dd¡tdƒtdƒd}d|jd<|jd}|dks@t‚d|jdd…d    d
…f<|jdd…d    d
…f}|jdd…d    d
…f}t ||¡t    tj d¡t
dd d    ƒd }d|jd<|jd}|dksÊt‚d|jdd…<|jdd…}|jdd…}t  ||¡t    d gdƒ}dd    dg|jddd    …<dd
dg|jddd    …<|}t    ddd    d
ddgƒ}t  ||¡dS)NrerOrÃrÄrnrr°rrr4r[rUrror\) r    rErprtrqr%rArGrHr r=rsr±r*r*r+Útest_iloc_setitem_seriesšs4 ÿ
 
 
 
  z0TestiLocBaseIndependent.test_iloc_setitem_seriescCsÜttjdddtjdddddœƒ}ddgddgg|jd    d
…<td d ddd
gdd dddgdœƒ}t ||¡tdddddgtjdddddœƒ}ddgddgg|jd    d
…<tdddddgdd dddgdœƒ}t ||¡dS)Nr\Úint64r6rer‘rgr¯rrrOrrror¸r}rÅr³r´rµr¢Úy)r    rEr~r%rGrHr¶r*r*r+Útest_iloc_setitem_list_of_listsºsÿ" ÿ"z7TestiLocBaseIndependent.test_iloc_setitem_list_of_listsÚvalueÚZcCsLtddgddggddgd}||jd|f<|jd    }t|ƒrD|d
ksHt‚dS) Nrrr4rOrdrŒr^rr;rÏ)r    r%rrA)r'r5rÎrKrlr*r*r+Ú#test_iloc_setitem_with_scalar_indexËs
z;TestiLocBaseIndependent.test_iloc_setitem_with_scalar_indexc Cstttdƒƒtdƒdgd}|jddk}d}tjt|d|j|W5QRXtt|ƒƒ|_    d    }tjt
|d|j|W5QRX|jt j d
gt|ƒt d }t ||¡t  d ¡}d|}d d„|Dƒ}t||dœ|ƒ}ddddddddd    dœ    }td
døtdtƒdD]â}    |jdkj}|    rBt|ttt||    ƒƒƒƒ}dD]¬}
z:|
rft||
dd…ƒ} n|} tt| |d ¡ƒƒ} Wn2ttt
fk
r¶} z t| ƒ} W5d} ~ XYnX|    |
f}| |¡}|| krFtd|›d| ›d|›dƒ‚qFqW5QRXdS)Nr\r]r}rnrrzBiLocation based boolean indexing cannot use an indexable as a maskr`zDiLocation based boolean indexing on an integer type is not availableTr6rOcSsg|] }t|ƒ‘qSr*)Úbin)Ú.0Únumr*r*r+Ú
<listcomp>ësz:TestiLocBaseIndependent.test_iloc_mask.<locals>.<listcomp>)ÚlocsÚnumsZ0b1100Z0b11ztUnalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).)    )NÚ)Nú.loc)Nú.iloc)rVr×)rVrØ)rVrÙ)rÕr×)rÕrØ)rÕrÙ)ÚrecordÚignore)NrVrÕ)r×rØrÙrrÖú[z] does not match [z ], received [ú])r    rqr=r}r0rrrÇr%r{rVÚNotImplementedErrorrErÚboolrGrHr~rrÚ UserWarningrÖrCr ÚreversedÚgetattrrjrÑÚsumrÚgetrA)r'rKr½rurlrÕrÖZrepsrLÚidxÚmethodÚaccessorZanswerrµrÚrr*r*r+Útest_iloc_maskØs^ 
ð 
 þ
 
ÿz&TestiLocBaseIndependent.test_iloc_maskc    Cs¶tdgddgddœƒ}t d¡d}|j|}t|d|d|gƒ}|j|}t ||¡tdgd    dgd    dœƒ}t|d|d|gƒ}tjt    d
d |j
|W5QRXdS) N皙™™™™¹?ržrr‘rbécrr4rœz not in indexr`) r    rEr~r%rrGrHr0rrÚKeyErrorrÁ)r'rKrårLZdf3rlr˜r*r*r+Útest_iloc_non_unique_indexings
 
 z5TestiLocBaseIndependent.test_iloc_non_unique_indexingcCsžt dd¡}tj|jdd…gf|jdd…dd…fdddtj|jgdd…f|jdd…dd…fdddtj|jg|jdd…dd…fddddS)Nr\rrT)Zcheck_index_typeZcheck_column_type)rGZmakeCustomDataframerHr%©r'rKr*r*r+Ú"test_iloc_empty_list_indexer_is_ok/s& üüÿz:TestiLocBaseIndependent.test_iloc_empty_list_indexer_is_okcCstddddgiƒ}|jdd…}||k    s,t‚t |d|d¡sDt‚dddg|jdd…df<|r||ddddgk ¡st‚n|ddk ¡st‚tddddddgƒ}|jdd…}||k    s¾t‚dd    d
g|dd…<|rôt|dd…dddgkƒsòt‚n t|dd…dd    d
gkƒst‚dS) Nr}rrr4rOr\rorr®r¸)r    r%rArErFrÁÚallr )r'rRZ original_dfZ    sliced_dfZoriginal_seriesZ sliced_seriesr*r*r+Ú&test_identity_slice_returns_new_objectDs   z>TestiLocBaseIndependent.test_identity_slice_returns_new_objectcCsDtddgddggƒ}|jt d¡}tddgdd}t ||¡dS)Nrrr4rOr©r•)r    r%rErr rGrs)r'rKrlrvr*r*r+Útest_indexing_zerodim_np_arrayasz6TestiLocBaseIndependent.test_indexing_zerodim_np_arraycCs,tddgƒ}|jt d¡}|dks(t‚dS)Nrrr)r r%rErrA)r'rvrlr*r*r+Ú%test_series_indexing_zerodim_np_arrayhs z=TestiLocBaseIndependent.test_series_indexing_zerodim_np_arraycCs’tdddgƒ}t|dddgdœdd    }t |d|¡s:t‚|ddd
…|jdd…d f<t |d|¡sjt‚tdddgdddgd }t ||¡dS) NrdrŒrrrr4)rrF)rBrr©Ú
categories)rr    rGrFrAr%Zassert_categorical_equal)r'rJrKrLr*r*r+Ú-test_iloc_setitem_categorical_updates_inplacenszETestiLocBaseIndependent.test_iloc_setitem_categorical_updates_inplacecCsBtddgddgddgdtjggƒ}|j|jdkd9<tddgddgdd    gdtjggƒ}t ||¡|j|jdkd9<tddgddgdd    gd
tjggƒ}t ||¡|jd d d d gd9<tddgdd
gdd    gd
tjggƒ}t ||¡|jd d d d gd<tdd gddgddgdtjggƒ}t ||¡dS)Nrrrr4rOr\ror®rer¯TFg@g(@g@)r    rEr–r%rVrGrH©r'rlrLr*r*r+Ú test_iloc_with_boolean_operation}s"" " " "z8TestiLocBaseIndependent.test_iloc_with_boolean_operationcCsXtdtd ¡ƒiƒ}|jd}tdgdddddgd    }t|dgdd
d }t ||¡dS) Nr¢z    a b c d err}rÅr³r´rµrõÚcategory)rVr•r7)r    rÚsplitr%r rGrs)r'rKrlZraw_catrLr*r*r+Ú?test_iloc_getitem_singlerow_slice_categoricaldtype_gives_seriess
 
zWTestiLocBaseIndependent.test_iloc_getitem_singlerow_slice_categoricaldtype_gives_seriescCsºtdddgƒ d¡}|jdd…}tddgƒ tdddgƒ¡}t ||¡|jddg}tddgƒ tdddgƒ¡}t ||¡|jdddg}tdgƒ tdddgƒ¡}t ||¡dS)Nrrr4rúrTF)r rDr%rrGrs)r'rYrlrLr*r*r+Ú$test_iloc_getitem_categorical_values™s  z<TestiLocBaseIndependent.test_iloc_getitem_categorical_valuescCs>tdddgdd}||jd<ttddgdd}t ||¡dS)Nrrrztimedelta64[ns]r6)r r%r rGrs)r'rÎrrLr*r*r+Ú%test_iloc_setitem_td64_values_cast_na®s
z=TestiLocBaseIndependent.test_iloc_setitem_td64_values_cast_naÚnot_nar}gð?cCsXt|gd}t||||g|d}|||g|jdd…<t||||g|d}t ||¡dS)Nrõr6r4)rr r%rGrs)r'rÿZ nulls_fixturer7rYr¬r*r*r+Ú$test_setitem_mix_of_nan_and_interval¶s 
ÿz<TestiLocBaseIndependent.test_setitem_mix_of_nan_and_intervalc    Csltgƒ}ttj t|ƒt|ƒ¡||d}tjjddd}d|j›}tj    t
|dd|j |<W5QRXdS)Nrnr\)rrrr©zCannot set values with ndim > r`r) r
r    rErprtr{r«Úndimr0rrrÇr%)r'rår)Znd3rur*r*r+Ú4test_iloc_setitem_empty_frame_raises_with_3d_ndarrayÁs   zLTestiLocBaseIndependent.test_iloc_setitem_empty_frame_raises_with_3d_ndarraycCs¼t d¡}t|ƒ}t d¡}|jddt|ƒ}t ||ƒdddg||ƒdddg¡t ||ƒdg||ƒdg¡t ||ƒd||ƒd¡t ||ƒdd…||ƒdd…¡dS)NreF)Úwriterrr4)rEZeyer    ZsetflagsrGrHrs)r'r5Zrw_arrayZrw_dfZro_arrayZro_dfr*r*r+Ú"test_iloc_getitem_read_only_valuesÊs
 
 ( z:TestiLocBaseIndependent.test_iloc_getitem_read_only_valuescCs†tdtjdddiƒ}t dddg¡}d|j_|j|}|jdddg}t     ||¡|dj|}|djdddg}t 
||¡dS)    NÚdatarcÚfloat64r6rr4roF) r    rEZonesrÚflagsZ    writeabler%rÁrGrHrs)r'rKÚindicesrlrLr*r*r+Útest_iloc_getitem_readonly_keyÚs
 z6TestiLocBaseIndependent.test_iloc_getitem_readonly_keycCsVtdgdgd}tdddgƒ|jd<tdtdddgƒgidgdgd}t ||¡dS)Nr}r©r_rVrrr4r;)r    r r%rGrHr¶r*r*r+Ú"test_iloc_assign_series_to_df_cellès"z:TestiLocBaseIndependent.test_iloc_assign_series_to_df_cellÚklasscCsntdddgdddgdœƒ}|dd    d    gƒ}|j|dfd
|j|df<tdddgd
ddgdœƒ}t ||¡dS) Nr¢rÌÚzrr4rO)ÚflagrÎTFrr¥)r'r rKr5rLr*r*r+Útest_iloc_setitem_bool_indexerïs
z6TestiLocBaseIndependent.test_iloc_setitem_bool_indexercCstdddgdddgdœƒ}tdd    d
gd d d gdddgdœƒ}|jdd…dgf|jdd…|f<tdd    d
gdddgdddgdœƒ}t ||¡dS)Nrgr¯rrÀéé)Za2Zb2rrr4rOr\rorr®r¸)r}rÅr³rr¥)r'r5r—r˜rLr*r*r+Ú%test_iloc_setitem_pure_position_basedøs
"""z=TestiLocBaseIndependent.test_iloc_setitem_pure_position_basedcCs’tddgddgdœƒ}dddœ}||jd<tddgddgdœƒ}t ||¡tddgddgdœƒ}||jd<tddgddgdœƒ}t ||¡dS)Nrr)r¢rÌr¸rëg@gÀX@r¥)r'rKÚrhsrLr*r*r+Ú"test_iloc_setitem_dictionary_values
 
 
z:TestiLocBaseIndependent.test_iloc_setitem_dictionary_valuecCstttj dd¡dddgtdƒd}|jdd…}t |jd|¡|jdd…df}t     |jd|¡dddg|_
|jdd…}t |jd|¡|jdd…df}t     |jd|¡ttj d    d¡ddddgtdƒd}|jdd
…}t |jd|¡|jdd
…df}t     |jd|¡ddd dg|_
|jdd
g}t |jd|¡|jdd
gdf}t     |jd|¡dS) Nr4rê皙™™™™É?Úabcrnrr)rr}rOrr) r    rErprtrqr%rGrHrÁrsrV)r'rKÚexpectr*r*r+Ú"test_iloc_getitem_float_duplicatess8 ÿ 
ÿz:TestiLocBaseIndependent.test_iloc_getitem_float_duplicatescCs¶Gdd„dƒ}tddgdgd}|dƒ|jd<|dƒ|jd<tddgdgd}|dƒ|jd<t ||¡tddgdgd}|dƒ|jd<tj|jd<tddgdgd}t ||¡dS)Nc@sBeZdZddœdd„Zedœdd„ZeZedœdd„Zd    d
„Z    dS) zCTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TON)ÚreturncSs
||_dSri©rÎ)r'rÎr*r*r+Ú__init__3szLTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__init__cSsd|j›dS)NrÜrÝr©r'r*r*r+Ú__str__6szKTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__str__cSs |j|jkSrir)r'Úotherr*r*r+Ú__eq__;szJTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.__eq__cSs|Srir*rr*r*r+Úview>szHTestiLocBaseIndependent.test_iloc_setitem_custom_object.<locals>.TO.view)
r-r.r/rrjrÚ__repr__rßrr r*r*r*r+ÚTO2s
r"rrrnrWr)r    r%rGrHrEr–)r'r"rKrlr*r*r+Útest_iloc_setitem_custom_object0s  z7TestiLocBaseIndependent.test_iloc_setitem_custom_objectcCs†ttj dd¡tdƒtdƒd}|jd}t|tƒs8t‚t     
|j |j d¡|j jdd…df}t|tƒsnt‚t     
|j |j d¡dS)Nr4ÚABCZaabr
r) r    rErpZrandrqr%Ú
isinstancer rArGÚassert_almost_equalrCÚT)r'rKrlr*r*r+Ú!test_iloc_getitem_with_duplicatesRs 
z9TestiLocBaseIndependent.test_iloc_getitem_with_duplicatescCsVtdddgdddggdddgd}|jdd…dgf}|jdgdd    }t ||¡dS)
Nrrr4rOr\ror^rr”)r    r%ZtakerGrH©r'rKrlrLr*r*r+Ú"test_iloc_getitem_with_duplicates2]s"z:TestiLocBaseIndependent.test_iloc_getitem_with_duplicates2cCs¾ttddƒddgiƒ}|jd}ttddƒdidd}t ||¡|jdd…df}tddgtddƒd}t ||¡| ¡}|jdd…dfd7<ttddƒddgiƒ}t ||¡dS)Nrrrròr4)r    r r%r rGrsrBrHr)r*r*r+Útest_iloc_intervalds
  z*TestiLocBaseIndependent.test_iloc_intervalÚ indexing_funcÚrhs_funccCs˜tdddgƒ}|ddgƒ|j|dddgƒ<tdddgƒ}t ||¡tddddgiƒ}|dgdggƒ|j|dddgƒ<tddddgiƒ}t ||¡dS)    Nrrrr\reTFr})r r%rGrsr    rH)r'r-r,rYrLrKr*r*r+Útest_loc_setitem_boolean_listus  z5TestiLocBaseIndependent.test_loc_setitem_boolean_listcCs€tddddgidd}|jdd…ddd…f}t ||¡d|d    <|jdd…ddd…f}t|d    |dd
œƒ}t ||¡dS) Nrdrrr4ÚInt64r6rZfoorŒ)rŒrdr¥)r'rKÚresrLr*r*r+Ú.test_iloc_getitem_slice_negative_step_ea_blockƒs zFTestiLocBaseIndependent.test_iloc_getitem_slice_negative_step_ea_blockcCsptddddgidd}t dgdgg¡|jt ddg¡t dg¡f<tddddgi|djd}t ||¡dS)    NÚstatusr}rÅr³rúr6rr)r    rErr%r7rGrHr¶r*r*r+Ú*test_iloc_setitem_2d_ndarray_into_ea_blocks.zBTestiLocBaseIndependent.test_iloc_setitem_2d_ndarray_into_ea_blockcCsVtddƒj}t|ƒ}|jd}|d|dks2t‚|d|d<|d|dksRt‚dS)Nrg$@rrr)rZ_valuesr    r%rA)r'rSrKrYr*r*r+Ú*test_iloc_getitem_int_single_ea_block_view—s  
 zBTestiLocBaseIndependent.test_iloc_getitem_int_single_ea_block_viewcCsltddgddgdœƒ}tdtddgƒiƒ|jdd…dgf<ttdƒtd    ƒgddgdœƒ}tj||d
d dS) Nz
2022-01-01z
2022-01-02Z2021Z2022r‘rdrz2021-01-01 00:00:00z2022-01-01 00:00:00F)Z check_dtype)r    rr%rrGrHr¶r*r*r+Ú)test_iloc_setitem_multicolumn_to_datetime¦s$þûÿ    zATestiLocBaseIndependent.test_iloc_setitem_multicolumn_to_datetime)Pr-r.r/Ú__doc__r0r1r2Úslicer=r
rEZasarrayrGrÁr%rMrr rTrZrwr~rqrr|r‚rŽr“r™r r¦r§r¨r­r²r·r¹r»r¾r¿rÂrÈrÉrÊrÍrÐrérírïrñrórôr÷rùrürýr r–rþr rrrr    r rrrrr#r(r*r+r.r1r3ÚtdZ&skip_array_manager_not_yet_implementedr4r5r*r*r*r+r3@s®
úþ  !
 
eýþ          
  /!* $ F    
 
 
    
 
 
!"   
r3c@s$eZdZdd„Zdd„Zdd„ZdS)ÚTestILocErrorsc    Csd|}|tkr| ¡}d}tjt|d|jdW5QRXtjttdd|jd<W5QRXdS)Nz5Cannot index by location index with a non-integer keyr`g@r)r    rXr0rrrr%r&Ú_slice_iloc_msg)r'Zseries_with_simple_indexrQr)rur*r*r+Útest_iloc_float_raisesºsz%TestILocErrors.test_iloc_float_raisesc    Csptjtdd"|jdd…dd…dd…fW5QRXtjtdd"d|jdd…dd…dd…f<W5QRXdS)NzToo many indexersr`ztoo many indices for arrayr)r0rrrr%r&)r'Z float_framer*r*r+Ú*test_iloc_getitem_setitem_fancy_exceptionsÍs&z9TestILocErrors.test_iloc_getitem_setitem_fancy_exceptionsc    Csxtddddgiƒ}tddddgiƒ}d}tjt|dd|j|<W5QRXd    }tjt|d|j|W5QRXdS)
Nr}rrr4TFzADataFrame indexer for .iloc is not supported. Consider using .locr`zWDataFrame indexer is not allowed for .iloc
Consider using .loc for automatic alignment.)r    r0rrrr%r&)r'rKr5rur*r*r+Útest_iloc_frame_indexerÕsÿz&TestILocErrors.test_iloc_frame_indexerN)r-r.r/r;r<r=r*r*r*r+r9·sr9c@sDeZdZdd„Zdd„Zdd„Zej ddd    gd
d g¡d d „ƒZ    dS)ÚTestILocSetItemDuplicateColumnscCsˆtdddœdddœgƒ}tdddœdddœgƒ}t||gdd}d|jd<|jddks\t‚|jd    dksnt‚|jjdtjks„t‚dS)
Nrr‘rr4rOr”rr;)rr)r    rr%rArkrErË)r'r—r˜rKr*r*r+Ú*test_iloc_setitem_scalar_duplicate_columnsæs
zJTestILocSetItemDuplicateColumns.test_iloc_setitem_scalar_duplicate_columnscCsXtdddggdddgd}dg|jdd…df<tdddggdddgd}t ||¡dS)    NrrjÚstr2r}rÅr^Zstr3rr¥r¶r*r*r+Ú(test_iloc_setitem_list_duplicate_columnsñszHTestILocSetItemDuplicateColumns.test_iloc_setitem_list_duplicate_columnscCsjttjdtjd dd¡ddddgd}|jdd…df tj¡|jdd…df<|jjdtjksft    ‚dS)    Nr®r6rrOrdrŒr^r)
r    rEr~rËrr%rDrrkrArîr*r*r+Ú*test_iloc_setitem_series_duplicate_columnsús 
ÿ(zJTestILocSetItemDuplicateColumns.test_iloc_setitem_series_duplicate_columnsrkÚ
init_valueÚexpected_value)rËÚ0r)Úfloatz1.2g333333ó?cCslt|ddggdddgd}|jdd…df |¡|jdd…df<t|ddggdddgtd}t ||¡dS)Nrjr@r}rÅr^r)r_r7)r    r%rDr>rGrH)r'rkrCrDrKZ expected_dfr*r*r+Ú*test_iloc_setitem_dtypes_duplicate_columnss&
ýzJTestILocSetItemDuplicateColumns.test_iloc_setitem_dtypes_duplicate_columnsN)
r-r.r/r?rArBr0r1r2rGr*r*r*r+r>ås     þr>c@seZdZdd„Zdd„ZdS)ÚTestILocCallablecCsžtddddgtdƒdœtdƒd}|jd    d
„}t ||jddg¡|jd d
„dd…f}t ||jddgdd…f¡|jd d
„d d
„f}t ||jddgdf¡|jdd
„dd
„f}t ||jddgdgf¡|jddgdd
„f}t ||jddgdf¡|jddgdd
„f}t ||jddgdgf¡|jdd
„df}t ||jddgdf¡|jdd
„dgf}t ||jddgdgf¡dS)Nrrr4rOÚaabb©ÚXÚYrÄrUcSsddgS©Nrr4r*r¡r*r*r+r£r¤zCTestILocCallable.test_frame_iloc_getitem_callable.<locals>.<lambda>cSsddgSrMr*r¡r*r*r+r£ r¤cSsddgSrMr*r¡r*r*r+r£#r¤cSsdS©Nrr*r¡r*r*r+r£#r¤rcSsddgSrMr*r¡r*r*r+r£&r¤cSsdgSrNr*r¡r*r*r+r£&r¤cSsdSrNr*r¡r*r*r+r£*r¤cSsdgSrNr*r¡r*r*r+r£-r¤cSsddgSrMr*r¡r*r*r+r£0r¤cSsddgSrMr*r¡r*r*r+r£3r¤)r    rqr%rGrHrs)r'rKr0r*r*r+Ú test_frame_iloc_getitem_callables""z1TestILocCallable.test_frame_iloc_getitem_callablecCsFtddddgtdƒdœtdƒd}| ¡}d    |jd
d „<| ¡}d    |jddg<t ||¡| ¡}d |jd d „dd…f<| ¡}d |jddgdd…f<t ||¡| ¡}d|jdd „dd „f<| ¡}d|jddgd    f<t ||¡| ¡}d|jdd „dd „f<| ¡}d|jddgd    gf<t ||¡| ¡}d|jddgdd „f<| ¡}d|jddgd    f<t ||¡| ¡}d|jddgdd „f<| ¡}d|jddgd    gf<t ||¡| ¡}d|jdd „d    f<| ¡}d|jddgd    f<t ||¡| ¡}ddg|jdd „d    gf<| ¡}ddg|jddgd    gf<t ||¡dS)Nrrr4rOrIrJrÄrUrcSsddgSrMr*r¡r*r*r+r£<r¤zCTestILocCallable.test_frame_iloc_setitem_callable.<locals>.<lambda>rcSsddgSrMr*r¡r*r*r+r£Br¤r\cSsddgSrMr*r¡r*r*r+r£Hr¤cSsdSrNr*r¡r*r*r+r£Hr¤écSsddgSrMr*r¡r*r*r+r£Nr¤cSsdgSrNr*r¡r*r*r+r£Nr¤r’cSsdSrNr*r¡r*r*r+r£Ur¤éûÿÿÿcSsdgSrNr*r¡r*r*r+r£[r¤recSsddgSrMr*r¡r*r*r+r£ar¤cSsddgSrMr*r¡r*r*r+r£gr¤)r    rqrBr%rGrH)r'rKr0r¬r*r*r+Ú test_frame_iloc_setitem_callable6sR"       z1TestILocCallable.test_frame_iloc_setitem_callableN)r-r.r/rOrRr*r*r*r+rHsrHc@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
ÚTestILocSeriesc    Csttj d¡ttdddƒƒd}| ¡}tt|ƒƒD](}|j|}||j    |}t
  ||¡q4|jt ddƒ}|j dd…}t
 ||¡t
 d¡d|dd…<W5QRX|r¼t
 ||¡n|jdd…dk ¡sÖt‚|jddddd    g}| |j    ddddd    g¡}t
 ||¡dS)
Nrerr[rrUrr4rOr\)r rErprtrqr=rBr{r%rVrGr&r7rÁrsZassert_produces_warningrðrAZreindex)r'rRrYZ ser_originalÚirlr¬rLr*r*r+Ú    test_ilocns" 
  zTestILocSeries.test_iloccCs.tdddgdddgd}|jddks*t‚dS)NrrrrU)r r%rA)r'rYr*r*r+Útest_iloc_getitem_nonuniqueŠsz*TestILocSeries.test_iloc_getitem_nonuniquecCs\tdddgƒ}tdddgdddgd}|jdd…|jdd…<tdddgƒ}t ||¡dS)    Nrrr4rOr\rorrU)r r%rGrs)r'Zser1Zser2rLr*r*r+rŽs
z4TestILocSeries.test_iloc_setitem_pure_position_basedcCsdtdgtjgdœƒ}|jdd…df d¡|jdd…df<tdgttgdddœƒ}t ||¡dS)NÚtest)r}rÅrÅr/r6)    r    rEr–rÁrDrrrGrHrør*r*r+Ú#test_iloc_nullable_int64_size_1_nan–s&z2TestILocSeries.test_iloc_nullable_int64_size_1_nanN)r-r.r/rUrVrrXr*r*r*r+rSmsrS).r6rÚreÚwarningsrrÚnumpyrEr0Z pandas.errorsrZpandas.util._test_decoratorsÚutilZ_test_decoratorsr8Zpandasrrrr    r
r r r rrrrrrrZpandas._testingZ_testingrGZpandas.api.typesrZpandas.tests.indexing.commonrÚescaper:rr3r9r>rHrSr*r*r*r+Ú<module>s:  D   ÿ.2V