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
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
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
U
O±d¶Ùã@s*ddlZddlZddlZddlZddlZddlZddlmZddl    m
Z
ddl m Z m Z mZmZmZmZmZmZGdd„dƒZGdd„dƒZGd    d
„d
ƒZGd d „d ƒZGd d„dƒZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZGdd„dƒZ dS)éN)Úarray_indexing)Úproduct)Úassert_Ú assert_equalÚ assert_raisesÚassert_raises_regexÚassert_array_equalÚ assert_warnsÚ HAS_REFCOUNTÚIS_WASMc@s¤eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„Zd;d<„Z d=d>„Z!d?d@„Z"dAdB„Z#dCdD„Z$dEdF„Z%dGdH„Z&dIdJ„Z'dKdL„Z(e)j* +dMdNdOe, -dPg¡g¡e)j* +dQdRdSg¡e)j* +dTdUdRg¡dVdW„ƒƒƒZ.e)j*j/e0dXdYdZd[„ƒZ1d\d]„Z2d^S)_Ú TestIndexingcs t dggg¡‰tt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fd    d„ƒtt‡fd
d„ƒtt‡fd d„ƒtt‡fd d„ƒtt‡fd d„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒdS)NécsˆdS©Nç©r©ÚarúUd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/core/tests/test_indexing.pyÚ<lambda>óz3TestIndexing.test_index_no_floats.<locals>.<lambda>csˆdS)N)rrrrrrrrrcsˆdS)N)rrrrrrrrrcsˆddd…fSrrrrrrrrcsˆdd…dfSrrrrrrrrcsˆdd…ddd…fSrrrrrrrrcsˆddd…dd…fSrrrrrrrrcsˆdS)N)rrrrrrrrrrcsˆdS)N)rrrrrrrrrrcsˆdS)N)rrrrrrrrrrcsˆdS©Nçffffffö¿rrrrrrrcsˆdS)N)rrrrrrrr rcsˆdS)N)rrrrrrrr!rcsˆddd…fSrrrrrrr"rcsˆdd…dfSrrrrrrr#rcsˆdd…ddd…fSrrrrrrr$rcsˆddd…dd…fSrrrrrrr%rcsˆdS)N)rrrrrrrrr&rcsˆdS)N)rrrrrrrrr'rcsˆdS)N)rrrrrrrrr(rcsˆdd…dfSrrrrrrr)rcsˆdd…ddd…fSrrrrrrr*r)ÚnpÚarrayrÚ
IndexError©ÚselfrrrÚtest_index_no_floatss.z!TestIndexing.test_index_no_floatscsžt dgg¡‰tt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fd    d„ƒtt‡fd
d„ƒtt‡fd d„ƒtt‡fd d„ƒtt‡fd d„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒtt‡fdd„ƒdS)Nr cs ˆdd…Srrrrrrr0rz5TestIndexing.test_slicing_no_floats.<locals>.<lambda>csˆdd…dd…fS)Nrrérrrrrr1rcsˆddd…dd…fS©Nrrrrrrrrr2rcsˆddd…dd…fS)Nrérrrrrrr3rcsˆdd…dd…fSrrrrrrr4rcs ˆdd…Srrrrrrr6rcsˆdd…dd…fS)Nrr ç@rrrrrr7rcsˆddd…dd…fSrrrrrrr8rcsˆdd…dd…fSrrrrrrr9rcsˆdd…ddd…fS)Nrç@rrrrrrr:rcsˆddd…S)Nçð?rrrrrr<rcsˆdd…ddd…fS)Nrrr!rrrrrr=rcsˆddd…dd…fS)Nr r"rrrrrrr>rcsˆddd…dd…fS)Nç@rrrrrr?rcsˆdd…ddd…fS)Nrér!rrrrrr@rcsˆddd…S)Nr#rr!rrrrrrBrcsˆddd…S)Nr#r!rrrrrrCrcsˆdd…ddd…fS)Nrr!rrrrrrDrcsˆddd…dd…fS)Nr#r r"rrrrrrrErcsˆddd…dd…fS)Nr#r$rrrrrrFrcsˆdd…ddd…fS)Ngš™™™™™Ù?r"r!rrrrrrGrcsˆddd…SrrrrrrrIr©rrrÚ    TypeErrorrrrrÚtest_slicing_no_floats,s.z#TestIndexing.test_slicing_no_floatscs&t dggg¡‰tt‡fdd„ƒdS)Nr csˆˆˆˆ…S©NrrrrrrOrz;TestIndexing.test_index_no_array_to_index.<locals>.<lambda>r&rrrrÚtest_index_no_array_to_indexKsz)TestIndexing.test_index_no_array_to_indexcCs>t dddg¡}t|d|tjƒt|dj|jdƒdS)Nr ré)rrrZnewaxisÚndim©rrrrrÚtest_none_indexQszTestIndexing.test_none_indexcCsRt dddg¡}t|d|ƒt|dj|kƒt d¡}tt|dtjƒƒdS)Nr rr+rr)rrrrÚbaseÚ
isinstanceÚint_r-rrrÚtest_empty_tuple_indexWs
 
z#TestIndexing.test_empty_tuple_indexcCsFtjddd}t|dj|jƒt|d|ƒtt|dƒtjƒdS)NrZV4©Údtype.)rÚzerosrr4ÚtypeÚndarray)rÚsrrrÚtest_void_scalar_empty_tuple_sz)TestIndexing.test_void_scalar_empty_tuplecCsät d¡}| tj¡}t d¡}t||||ƒt d¡||<t|t d¡ƒt d¡ dd¡}t||||ƒt d¡dd…df||<t|t d¡dd…dfjdddƒt d¡ dd¡}t|||f|||fƒdS)Nr é
rr ©Zaxisé)rÚarangeÚastypeZuintprÚreshapeÚrepeat)rÚindexZu_indexÚarrrrrÚtest_same_kind_index_castinges
 
&z)TestIndexing.test_same_kind_index_castingcCs|t dddg¡}t|ggƒt|gj|jƒtjgtjd}t|ggƒt|gj|jƒt g¡}tt|j|ƒdS)Nr rr+r3)rrrr4ÚintprrÚ __getitem__©rrÚbrrrÚtest_empty_fancy_indexys
z#TestIndexing.test_empty_fancy_indexcCsÎt dddgdddgddd    gg¡}t|d
|k    ƒt|d
|ƒt|d
j|kƒt|d |d ƒt|d |d dd…fƒt|d |dd…d fƒt|dt d¡ƒt d¡}d|tf<t|dƒdS)Nr rr+r%r éééé    .)r.r©.r)r.r )rrrrr/ÚEllipsisrFrrrÚtest_ellipsis_index‡s þ
 
z TestIndexing.test_ellipsis_indexcCsjt dddgdddgddd    gg¡}t|d
dddgƒt|d ddd    gƒtt|jd ƒtt|jd ƒdS)Nr rr+r%r rIrJrKrLréÿÿÿÿi@l)rrrrrrEr-rrrÚtest_single_int_indexŸs þz"TestIndexing.test_single_int_indexcCs^t dddgdddgddd    gg¡}t|t d
¡|dƒt|t d ¡|dd d …ƒdS© Nr rr+r%r rIrJrKrLTFr©rrrr-rrrÚtest_single_bool_index­s  þz#TestIndexing.test_single_bool_indexcCsxt d¡}t dg¡}tt|j|ƒt dgd¡}tt|j|ƒtjdtd}tt|j|ƒtt|jtdƒ|fƒdS)N)r r%r+TFrI©r%r%r3)    rÚonesrrrrEr5ÚboolÚslice)rrBrArrrÚtest_boolean_shape_mismatch¶s
 z(TestIndexing.test_boolean_shape_mismatchcCsNt dddgg¡}tjdgtd}t|||ƒd||<t|dddggƒdS)NrTr3r#)rrrWrrFrrrÚtest_boolean_indexing_onedimÄs
z)TestIndexing.test_boolean_indexing_onedimcCsTt d¡}dd„}tt||gƒtt||dddgƒtt||dd…dddgƒdS)Nr%cSs|||dk<dS)NrPr)rÚvrrrÚfÓsz>TestIndexing.test_boolean_assignment_value_mismatch.<locals>.fr rr+)rr=rÚ
ValueError)rrr\rrrÚ&test_boolean_assignment_value_mismatchÎs
 
z3TestIndexing.test_boolean_assignment_value_mismatchcCsZt d¡}tjdtd}d|dd…<tjdtd||<t d¡}d|dd…<t||ƒdS)Néèr3Tédr )rr5rWrVÚobjectr)rrBÚindxÚexpectedrrrÚ!test_boolean_assignment_needs_apiÚs
 
 z.TestIndexing.test_boolean_assignment_needs_apicCs¾t dddgdddgddd    gg¡}t d
d d
gd d
d gd
d d
gg¡}t||ddddd    gƒt||ddddggƒt||d ||dƒd ||<t|d dd gdd dgd dd ggƒdSrRrSrFrrrÚtest_boolean_indexing_twodimès  þ þ þz)TestIndexing.test_boolean_indexing_twodimcCsHt dddg¡}dddg}t||ddgƒt|d|fddggƒdS)Nr rr+TFrSrFrrrÚtest_boolean_indexing_listûs
z'TestIndexing.test_boolean_indexing_listcCsšt d¡}tjdtjdddd…}t d¡ddd…}|||<t|ddƒt d¡}t d¡ dd¡ddd…}|||dd…f<t|dddgƒdS)    Nr r3rPr©r rr:rr )rrVr5rDr=rr?)rrrGÚcrrrÚ,test_reverse_strides_and_subspace_bufferinits
 
z9TestIndexing.test_reverse_strides_and_subspace_bufferinitcCsXt d¡dd…df}t d¡ddd…}t|||| d¡ƒt d¡ dd¡}dS)Nr:rPÚCér)rr=rÚcopyr?)rrÚirrrÚ'test_reversed_strides_result_allocationsz4TestIndexing.test_reversed_strides_result_allocationcCsft dd¡}t dd¡}t d¡ ddd¡j|ddg<t d¡ ddd¡j ¡|ddg<t||ƒdS)N)r+r%rrPérr%rr )rÚfullr=r?ÚTrlrrFrrrÚ%test_uncontiguous_subspace_assignments
  "z2TestIndexing.test_uncontiguous_subspace_assignmentcCs*t d¡}tt|jt dg¡fdƒdS)N) 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é )rrVrrrErr-rrrÚ(test_too_many_fancy_indices_special_case)s
z5TestIndexing.test_too_many_fancy_indices_special_casecCsJt d¡}t|t d¡|t d¡ƒt|t d¡|t d¡ƒdS)Nr TF)rrrÚbool_r-rrrÚtest_scalar_array_bool.s
z#TestIndexing.test_scalar_array_boolcCsBt d¡}t||dk    ƒt||dk    ƒt||dd…k    ƒdS)Nr r.)rr=rr-rrrÚtest_everything_returns_views;s
z*TestIndexing.test_everything_returns_viewscCsHt d¡}tt|jddgdddgfƒtt|jddgdddgfdƒdS)N©r r rr r)rr5rrrEÚ __setitem__r-rrrÚtest_broaderrors_indexingCs
z&TestIndexing.test_broaderrors_indexingcCszt d¡}tjdtjd}d|d<tt|j|ƒtt|j|dƒtjdtjd}d|d<tt|j|ƒtt|j|dƒdS)Nr rkr3r:rPré )rr5rVrDrrrEry)rrÚindrrrÚ test_trivial_fancy_out_of_boundsHs
z-TestIndexing.test_trivial_fancy_out_of_boundscCstt d¡}tjdtjd ddd¡dd…dd…df}t|||ƒd||<t d¡}d|d<d|d<t||ƒdS)NrIr3rr r+rrP)rr=rDr?r)rrÚidxÚresrrrÚtest_trivial_fancy_not_possibleSs
,
z,TestIndexing.test_trivial_fancy_not_possiblecCs°Gdd„dtjƒ}t d¡}| ¡j|d}| d¡||ddddd    gdd…f<t|dk ¡ƒ||dd…ddddd    gf<t|dk ¡ƒ| d¡||d
<t|dk ¡ƒdS) Nc@seZdZdd„ZdS)z7TestIndexing.test_nonbaseclass_values.<locals>.SubClasscSs| d¡dS)Néc)Úfill©rÚoldrrrÚ__array_finalize__dszJTestIndexing.test_nonbaseclass_values.<locals>.SubClass.__array_finalize__N©Ú__name__Ú
__module__Ú __qualname__r…rrrrÚSubClasscsrŠrx)r6r rrr+r%.)rr7r5rlÚviewr‚rÚall)rrŠrr8rrrÚtest_nonbaseclass_valuesbs
 
 
z%TestIndexing.test_nonbaseclass_valuescCsŒt d¡}tjdtjd dd¡}t|ƒ|ddddd    gdd…f<t||ƒt|ƒ|dd…ddddd    gf<t||ƒt|ƒ|d
<t||ƒdS) Nrxr<r3r rr rr+r%.)rr5r=Úfloat64r?Ú
memoryviewr)rrr8rrrÚtest_array_like_valuesws
 
 
 z#TestIndexing.test_array_like_valuescCs€tjjdddgddgd}tjdddgtd}t||jjƒt d    d
g¡}t||jjƒt|d jjƒt|d    jjƒdS) N)ZNGC1001r{)ZNGC1002r#)ZNGC1003r#)ÚtargetZS20)ZV_magz>f4r3FTrr .)rZrecrrWrÚflagsÚ    writeable)rÚdr|rrrÚtest_subclass_writeable…sÿz$TestIndexing.test_subclass_writeablecCsRt d¡}t d¡ dd¡j}t||jjƒ| dd¡}t||dfjjƒdS)Nr:r rrPr r)rr=r?rqrr’Ú f_contiguousrFrrrÚtest_memory_orders
 
 zTestIndexing.test_memory_ordercCsBGdd„dƒ}|ƒ}Gdd„dƒ}t d¡}tt|dtjƒƒt d¡}tt||tjƒƒt d¡}tt||t d¡ftjƒƒtt|||ƒftjƒƒt d¡}tjdtd    }||d<tt|dtjƒƒt |dg¡}tt||tjƒƒt |dgg¡}tt||t d¡ftjƒƒtt|||ƒftjƒƒdS)
Nc@seZdZdd„ZdS)z2TestIndexing.test_scalar_return_type.<locals>.ZerocSsdS©NrrrrrrÚ    __index__Ÿsz<TestIndexing.test_scalar_return_type.<locals>.Zero.__index__N)r‡rˆr‰r™rrrrÚZerosršc@seZdZdd„ZdS)z7TestIndexing.test_scalar_return_type.<locals>.ArrayLikecSs
t d¡Sr˜©rrrrrrÚ    __array__¦szATestIndexing.test_scalar_return_type.<locals>.ArrayLike.__array__N)r‡rˆr‰rœrrrrÚ    ArrayLike¤srrr )r r rr3)rr5rr0Úfloat_rrar7)rršÚzrrrGrrrÚtest_scalar_return_typešs&
 
 
 
z$TestIndexing.test_scalar_return_typecCsªt dg¡}tr"t t tj¡¡}d|tjdgtjd<d|tjdgtjd<tt    |j
tjdgtjddƒtt    |j
tjdgtjddƒtr¦t t t tj¡¡|ƒdS)Nrr r3) rrr
ÚsysÚ getrefcountr4rDZuint8rrryr)rrÚrefcountrrrÚtest_small_regressions¼s ÿÿz#TestIndexing.test_small_regressionscCs<tjdtjdtdƒdd…}| t d¡¡}tjdtjdtdƒdd…}| t d¡¡}tjdd    d|d
<t |j¡}t    |||ƒ|||<t |jd¡ tj¡dt 
d ¡j d …}| tj
¡d|j…}t |j¡|d
<t    ||  tj ¡|ƒ|||  tj ¡<||d d k|ddd …||d d k<dS) Né@r3rr iùÿÿÿZS8roZbbbbbbbbÚS.rr)rr5Úint8Úordr‹r4rr=ÚsizerrDÚitemsizer>Úint16)rr[r”ÚxrGrrrÚtest_unalignedÌs   .zTestIndexing.test_unalignedcCsXt d¡}Gdd„dtƒ}dgdgf}||ƒ}t||jdkƒt||fjdkƒdS)Nrxc@s eZdZdS)z7TestIndexing.test_tuple_subclass.<locals>.TupleSubclassN©r‡rˆr‰rrrrÚ TupleSubclassæsr¯r ©r )rrVÚtuplerÚshape)rrBr¯rArrrÚtest_tuple_subclassâs 
 z TestIndexing.test_tuple_subclasscCs^Gdd„dƒ}t d¡}t||ƒ||ƒfƒtjdddgd}t||ƒ||ƒfƒdS)Nc@s$eZdZdd„Zdd„Zdd„ZdS)zDTestIndexing.test_broken_sequence_not_nd_index.<locals>.SequenceLikecSsdSr˜rrrrrr™õszNTestIndexing.test_broken_sequence_not_nd_index.<locals>.SequenceLike.__index__cSsdS)Nr rrrrrÚ__len__øszLTestIndexing.test_broken_sequence_not_nd_index.<locals>.SequenceLike.__len__cSs tdƒ‚dS)Nz Not possible)r)rÚitemrrrrEûszPTestIndexing.test_broken_sequence_not_nd_index.<locals>.SequenceLike.__getitem__N)r‡rˆr‰r™r´rErrrrÚ SequenceLikeôsr¶r:r°)Úf1Úi8)Úf2r¸r3)rr=rr5)rr¶rBrrrÚ!test_broken_sequence_not_nd_indexîs
 
 
z.TestIndexing.test_broken_sequence_not_nd_indexcCs‚t d¡}t d¡}t d¡dd…dddf}t |d¡}t|||| ¡ƒtjdtjd}t|||f|| ¡|fƒdS)Nr:)r:r)r:é7r%r%r%r3)rrVr=Z broadcast_torrlr5rD)rr¬Zx2r|ZzindrrrÚ!test_indexing_array_weird_stridess
 
 z.TestIndexing.test_indexing_array_weird_stridescCsLt d¡}|ddd…ddd…f}tdƒddddgf}d||<t|dƒdS)    NrUrPrr rr+r:g$@)rr5rXr)rZarrorBZslicesrrrÚ$test_indexing_array_negative_stridess
 
z1TestIndexing.test_indexing_array_negative_stridescCsHtjddd}t d¡|d<t|dtjdddƒ|ddksDt‚dS)N)r r rhr3Zasdfgr©rr ós)rr5Zstr_rrÚAssertionError)rrBrrrÚtest_character_assignmentsz&TestIndexing.test_character_assignmentrATFrÚnumrsé(Ú original_ndimr c    CsZt d|¡}t t¡||f|W5QRXt t¡d||f|<W5QRXdS)Nr°r#)rrVÚpytestÚraisesr)rrArÂrÄrBrrrÚtest_too_many_advanced_indices(s
  z+TestIndexing.test_too_many_advanced_indicesz no threading)Úreasoncs¾ddlm}t dg¡}t d|fgd¡}t d|fgd¡}tjjdd |¡dd…df‰tj ¡‰‡fdd    „‰|d
d ‰‡‡‡fd d „tdƒDƒ}|D] }|     ¡qžˆj|ksºt
‚dS)Nr)ÚThreadPoolExecutor)ÚÚf8rÊr)éprK)r©cs$ˆjdt|ƒdtjd}||dS)NrrÌ)r©r4)ZintegersÚlenrrD)rBrb)ÚrngrrÚfuncDsz<TestIndexing.test_structured_advanced_indexing.<locals>.funcrK)Ú max_workerscsg|]}ˆ ˆˆ¡‘qSr)Zsubmit)Ú.0Ú_)rBrÏÚtperrÚ
<listcomp>IszBTestIndexing.test_structured_advanced_indexing.<locals>.<listcomp>r:) Úconcurrent.futuresrÉrr4ÚrandomÚuniformr‹Z default_rngÚrangeÚresultrÀ)rrÉÚdtZfuturesr\r)rBrÏrÎrÓrÚ!test_structured_advanced_indexing6s   
 
 
z.TestIndexing.test_structured_advanced_indexingcCspt d¡ d¡}t|ddgt |d|dg¡ƒt|ddgddgft ddg¡ƒtt|jtdƒgƒdS)Nr<rxrr rI)    rr=r?rrrrrErXr-rrrÚtest_nontuple_ndindexOs$$z"TestIndexing.test_nontuple_ndindexN)3r‡rˆr‰rr(r*r.r2r9rCrHrOrQrTrYrZr^rdrerfrirnrrrtrvrwrzr}r€rrr•r—r r¤r­r³rºr¼r½rÁrÅÚmarkÚ parametrizerrrÇZskipifr rÛrÜrrrrr s^    
            
 " 
    ÿ
 
r c@seZdZdd„ZdS)ÚTestFieldIndexingcCs<t ddg¡}tt|dtjƒƒtt|dgtjƒƒdS)Nr)rrËr)rr5rr0r7r-rrrr Wsz)TestFieldIndexing.test_scalar_return_typeN)r‡rˆr‰r rrrrrßVsrßc    @s~eZdZdd„Zdd„Zdd„Zdd„Zej     d    d
d d ge
d ƒfdd gd
dfd
d d gd d gfg¡dd„ƒZ dd„Z dd„Z d S)ÚTestBroadcastedAssignmentscCs |||<|Sr)r)rrr|ÚvalrrrÚassign`sz!TestBroadcastedAssignments.assigncCstt d¡}t d¡|d<t d¡|dddgdd…f<t d¡|dd…ddgf<t d¡|dgdgdggddgf<dS)N)r+r)r r+r.rr r)rr5rVr-rrrÚtest_prepending_onesds
 
z/TestBroadcastedAssignments.test_prepending_onescCsz|j}tj}t d¡}tt|||dt d¡ƒtt|||dddgft d¡ƒtt|||dgdggft d¡ƒdS)Nr .©rr r rr+)rrr )rârÚs_r5rr]rV©rrârårrrrÚtest_prepend_not_onens 
"z/TestBroadcastedAssignments.test_prepend_not_onecCsº|j}tj}t d¡}tt|||dt d¡ƒtt|||dt d¡ƒtt|||dd…dgft d¡ƒtt|||dd…dgft d¡ƒtt|||dgdd…ft d¡ƒdS)N)r r .rg)r rrrä)rârrår5rr]rærrrÚtest_simple_broadcasting_errorsxs
$$z:TestBroadcastedAssignments.test_simple_broadcasting_errorsrA.r rNrc    Cs`t d¡}t d¡}t||jƒ dd¡}t t¡}|||<W5QRXt|jƒ     |¡s\t
‚dS)N©r`r`)r+r%r rIrJú rÊ) rr5Ústrr²ÚreplacerÅrÆr]ÚvalueÚendswithrÀ)rrAÚvaluesrBZ    shape_strÚerrrÚ*test_broadcast_error_reports_correct_shapeƒs 
 
 zETestBroadcastedAssignments.test_broadcast_error_reports_correct_shapecCsXt d¡}dddg|dgdgdggdddgf<t|dd…dd…fdddgk ¡ƒdS)Nrxrr+r%rr )rr5rrŒr-rrrÚtest_index_is_larger“s
$z/TestBroadcastedAssignments.test_index_is_largercCsZt d¡}t d¡dd…df}t d¡ddd…}|||<t|ddd…|k ¡ƒdS)Nrér`rP)rr5r=rrŒ)rrr[rGrrrÚtest_broadcast_subspacešs
 
z2TestBroadcastedAssignments.test_broadcast_subspace)r‡rˆr‰rârãrçrèrÅrÝrÞrXrñròrórrrrrà_s
 
  ý
ràc@s$eZdZdd„Zdd„Zdd„ZdS)ÚTestSubclassescCs4Gdd„dtjƒ}t d¡}| |¡}|dd…}tt|ƒ|kƒt|j|kƒt||dd…ƒ|dddg}tt|ƒ|kƒt|j|k    ƒtt|jƒtjkƒt||dddgƒt|j|dddgƒ||dk}tt|ƒ|kƒt|j|k    ƒtt|jƒtjkƒt|||dkƒt|j||dkƒdS)Nc@s eZdZdS)z+TestSubclasses.test_basic.<locals>.SubClassNr®rrrrrЍsrŠr r+rr r)rr7r=r‹rr6r/r)rrŠrr8Zs_sliceÚs_fancyZs_boolrrrÚ
test_basic£s&
 
  zTestSubclasses.test_basiccCsLGdd„dtjƒ}t d¡}| |¡}d|j_|dddg}t|jjƒdS)Nc@s eZdZdS)z8TestSubclasses.test_fancy_on_read_only.<locals>.SubClassNr®rrrrrŠÃsrŠr Frr r)rr7r=r‹r’r“r)rrŠrr8rõrrrÚtest_fancy_on_read_onlyÀs 
 
z&TestSubclasses.test_fancy_on_read_onlycCs–Gdd„dtjƒ}t d¡ |¡}|dd…}t|j|ƒt|j|ƒ|ddddg}t|j|ƒt|j|ƒ||dk}t|j|ƒt|j|ƒdS)Nc@seZdZdd„ZdS)z=TestSubclasses.test_finalize_gets_full_info.<locals>.SubClasscSst |¡|_||_dSr))rrÚfinalize_statusr„rƒrrrr…Ðs zPTestSubclasses.test_finalize_gets_full_info.<locals>.SubClass.__array_finalize__Nr†rrrrrŠÏsrŠr:r+rr r)rr7r=r‹rrør„)rrŠr8Znew_srrrÚtest_finalize_gets_full_infoÍs       z+TestSubclasses.test_finalize_gets_full_infoN)r‡rˆr‰rör÷rùrrrrrô¢s rôc@seZdZdd„ZdS)ÚTestFancyIndexingCastcCs d}t |¡ t¡}d|d<t |¡}t dg¡||<t|ddƒttj|jdgdgft dg¡ƒt|ddƒttj|j|t dg¡ƒt|ddƒdS)    N)rKé?Tr¾r ry@ð?ryð?)    rr5r>rWrrr    ZComplexWarningry)rr²Z
bool_indexZ
zero_arrayrrrÚtest_boolean_index_cast_assignãs$
 
 
ÿ
ÿz4TestFancyIndexingCast.test_boolean_index_cast_assignN)r‡rˆr‰rürrrrrúâsrúc@seZdZdd„Zdd„ZdS)ÚTestFancyIndexingEquivalencecCs\tjdtd}| ¡}dddg|dd…<dddg|dddg<t||ƒtjdtdddd…f}dddgg|dgdd…f<t||dƒ|j}dgdgdgg|dd…dgf<t||dd…dfƒtjdtd}| ¡}dgdgdgd    ggg|dd…d
f<dgdgdgd    ggg|dgd
f<t||ƒ| d ¡}dgdgdgd    ggg|dgd
f<t||ƒdS) Nr r3r ©r rr+rr)r+r%r r%.ÚF)rr=rarlrrqrV)rrrGrBZcmp_arrrrrÚtest_object_assignùs&
" 
 
 z/TestFancyIndexingEquivalence.test_object_assigncCs–t d¡}| ¡}t dddg¡|dd…<t dddg¡|dddg<t||ƒt d¡ddd…f}t dddgg¡|dgdd…f<t||dƒdS)    Nr Ú2z-3z-1r+rrr )rr=rlrrrFrrrÚtest_cast_equivalences
 
 z2TestFancyIndexingEquivalence.test_cast_equivalenceN)r‡rˆr‰rrrrrrrýøs rýc@sPeZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd d „Z    dd„Z
dd„Z dS)ÚTestMultiIndexingAutomateda:
    These tests use code to mimic the C-Code indexing for selection.
 
    NOTE:
 
        * This still lacks tests for complex item setting.
        * If you change behavior of indexing, you might want to modify
          these tests to try more combinations.
        * Behavior was written to match numpy version 1.8. (though a
          first version matched 1.7.)
        * Only tuple indices are supported by the mimicking code.
          (and tested as of writing this)
        * Error types should match most of the time as long as there
          is only one error. For multiple errors, what gets raised
          will usually not be the same one. They are *not* tested.
 
    Update 2016-11-30: It is probably not worth maintaining this test
    indefinitely and it can be dropped if maintenance becomes a burden.
 
    cCsPt t ddddg¡¡ dddd¡|_t d¡|_dtdt dd    d    g¡t dd    gd    dgg¡t d    d    gd    d    ggg¡t    d
dd ƒt    ddd ƒt    d ddƒt    dddƒtjdtj
dt dddg¡t d gdgdgg¡tjddgddggt  d¡  ¡dtjd dgtj dtjdgdtdt ddg¡g|_tdddgt dg¡dg|_t    ddƒdg|_dS)Nr+r r rI)r+rr rIÚskiprTFéûÿÿÿrr`r%rPéþÿÿÿéýÿÿÿ)rr r r3rDérr#)rr=Úprodr?rÚemptyrGrNrrXrDr4Z newbyteorderr§r5ÚintÚcomplex_indicesÚsimple_indicesÚ fill_indicesrrrrÚ setup_method>s.& 
 
 
 
" íÿz'TestMultiIndexingAutomated.setup_methodc
Csæt|ƒ}g}d}d}d}d}d}d}    t|ƒD]\}
} | dkr@q,t| tjƒr~| jtkr~d}| jdkrht‚|| j7}|| j7}q,| t    kr˜|    dkr”|
}    q,t‚t| t
ƒr¬|d7}q,t| tjƒsðztj | tj d} Wnt k
rät‚YnX| ||
<n$| jjdkr| jjdkrtd    ƒ‚| jdkr$d}|d7}|d7}q,|j|dkrJt‚|dkrjd|krj| ¡|fS|    dk    r–t
ddƒg|j|||    |    d…<t|ƒD]:\} } t| t
ƒrÞtj|  |j| ¡Ž} | d
| g¡qžnP| dkr.| d tj dgtj dg¡| |jd| …d |j| d…¡}qžt| tjƒr$| jtkr$| j|j| | | j…krht‚z*tjt | ¡|j| | | j…d d} Wn4tk
rÆd}tj dg|  ¡tj d} YnX| jdkr| |jd| …t |j| | | j…¡f|j| | jd…¡}| } nt‚n2| jdkrV| |j| ksR| |j|  krVt‚| jdkrˆ| |j| ks„| |j|  krˆt‚t|ƒdkrÂ|dddkrÂ| |    krÂ|d | ¡n|d7}| d| g¡qž|dkr¾|s¾|dd…}tt|jƒƒ}g}| ddg¡d}d}|D]†} |d7}| ddkr˜|d | dd…¡||=|d8}t||t| dd…ƒƒD]} | | ¡| | ¡q||t| ƒd7}q$|}|j||Ž}d} |D]} | ddkrÀt| ƒdkrìqÆ|j}|| | t| dd…ƒ…}| |jd| …t |¡  t!¡f|j| t| dd…ƒd…¡}tj"| dd…Ž}|j#dkrÎ|rzt‚t$| dd…|ƒD]@\}}|j#dkr¤qŒt %||k¡sÆt %|| k¡rŒt‚qŒt| dd…ƒt|ƒkrPt &|¡dkr6ztj| dd…|d d}Wntk
r2tdƒ‚YnXntj| dd…|dd}nt ‚|j'| (¡| d}z0| |jd| …|j|j| dd…¡}Wnt k
r°t‚YnX| |j7} qÆ|j'| d| d}| d7} qÆ||fS)aêMimic multi dimensional indexing.
 
        Parameters
        ----------
        arr : ndarray
            Array to be indexed.
        indices : tuple of index objects
 
        Returns
        -------
        out : ndarray
            An array equivalent to the indexing operation (but always a copy).
            `arr[indices]` should be identical.
        no_copy : bool
            Whether the indexing operation requires a copy. If this is `True`,
            `np.may_share_memory(arr, arr[indices])` should be `True` (with
            some exceptions for scalars and possibly 0-d arrays).
 
        Notes
        -----
        While the function may mostly match the errors of normal indexing this
        is generally not the case.
        TrFNr r3rGrmz;arrays used as indices must be of integer (or boolean) typer8Únr°Úraise)ÚmoderPr\zinvalid index into 0-sizedÚwrapr;))ÚlistÚ    enumerater0rr7r4rWr,rrNrXrrDr]Úkindrlr=Úindicesr²Úappendr?Zravel_multi_indexZnonzeroÚ    ExceptionÚsumr    rÍrØÚinsertÚextendÚremoveZ    transposer>r Ú    broadcastr©ÚzipÚanyrÚtakeÚravel)rrBrZ
in_indicesÚno_copyZ    num_fancyZ    fancy_dimZerror_unless_broadcast_to_emptyr,Z ellipsis_posrmrbZaxZ    flat_indxZ new_indicesZaxesZ
fancy_axesÚniZaiZ
orig_shapeZ
orig_slicerZ_indxÚ_sizeÚmirrrÚ_get_multi_index[s4
 
 
 
 
 
 
 
 
ÿ 
& ÿ
  ÿþ " "ÿþ 
 
ÿþ  "ÿ
ÿÿþ
 
 
 z+TestMultiIndexingAutomated._get_multi_indexc
Csšz| ||¡\}}Wnptk
r„}zRtr4t |¡}tt|ƒ|j|ƒtt|ƒ|j|dƒtrnt    |t |¡ƒWY¢dSd}~XYnX| 
||||¡dS)aCheck a multi index item getting and simple setting.
 
        Parameters
        ----------
        arr : ndarray
            Array to be indexed, must be a reshaped arange.
        index : tuple of indexing objects
            Index being tested.
        rN© r'rr
r¡r¢rr6rEryrÚ_compare_index_result©rrBrAÚ    mimic_getr#rðZ prev_refcountrrrÚ_check_multi_indexJs 
z-TestMultiIndexingAutomated._check_multi_indexc
Csœz| ||f¡\}}Wnptk
r†}zRtr6t |¡}tt|ƒ|j|ƒtt|ƒ|j|dƒtrpt    |t |¡ƒWY¢dSd}~XYnX| 
||||¡dS)aWCheck a single index item getting and simple setting.
 
        Parameters
        ----------
        arr : ndarray
            Array to be indexed, must be an arange.
        index : indexing object
            Index being tested. Must be a single index and not a tuple
            of indexing objects (see also `_check_multi_index`).
        rNr(r*rrrÚ_check_single_indexbs 
z.TestMultiIndexingAutomated._check_single_indexcCsÖ| ¡}||}t||ƒ|jdkrl|jdkrltt ||¡|kƒtrl|r\tt     
|¡dƒntt     
|¡dƒ| ¡}|d||<|jdkrŽdS|r²|jdkr²|d7}t||ƒdS|j |  ¡d7<t||ƒdS)z4Compare mimicked result to indexing result.
        rr+rr_N) rlrr©r,rrZmay_share_memoryr
rr¡r¢Zflatr")rrBrAr+r#Z indexed_arrrGrrrr)zs&
 
 
z0TestMultiIndexingAutomated._compare_index_resultcCs–t d¡}t|t d¡dƒd|t d¡<t|dƒ| |jtj|jtdf¡| |jtj|jtddf¡| |jtj|jtddf¡dS)Nr Tr r3rM)N.)rrrr,rZ
zeros_likerWr-rrrÚ test_booleanšs 
 
ÿÿÿz'TestMultiIndexingAutomated.test_booleanc    st ¡”t ddt¡t ddtj¡dd„‰dD]b}|j|j|j|jg}|j||<t    |ŽD]6}t
‡fdd„|Dƒƒ}|  |j |¡|  |j |¡q^q4W5QRX|  |j d¡|  |j d¡tt|j jd    ƒtt|j jd    d
ƒtt|j jd
d
d gd
d
fƒtt|j jd
d
d gd
d
fd
ƒdS) NÚerrorrÊcSst|tƒo|dkS)Nr)r0rë)r~rrrÚisskip´sz8TestMultiIndexingAutomated.test_multidim.<locals>.isskip)rrr+c3s|]}ˆ|ƒs|VqdSr)r)rÑrm©r0rrÚ    <genexpr>¼sz;TestMultiIndexingAutomated.test_multidim.<locals>.<genexpr>)rrrr)rrrrrrr )ÚwarningsÚcatch_warningsÚfilterwarningsÚDeprecationWarningrZVisibleDeprecationWarningrr r rr±r,rrGrrrEry)rZ
simple_posZtocheckrArr1rÚ test_multidim«s(
ÿ
 z(TestMultiIndexingAutomated.test_multidimcCs&t d¡}|jD]}| ||¡qdS)Nr:)rr=r r-)rrrArrrÚtest_1dÉs
 
z"TestMultiIndexingAutomated.test_1dN) r‡rˆr‰Ú__doc__rr'r,r-r)r.r7r8rrrrr(sp rc@s8eZdZdZdd„Zdd„Zdd„Zdd    „Zd
d „Zd S) ÚTestFloatNonIntegerArgumentzÙ
    These test that ``TypeError`` is raised when you try to use
    non-integers as arguments to for indexing and slicing e.g. ``a[0.0:5]``
    and ``a[0.5]``, or other functions like ``array.reshape(1., -1)``.
 
    cCstt dggg¡}|t dg¡|ddg|dd…ddgf|dd…ddd…f|dd…dd…dd…fdS)Nr rr›r-rrrÚtest_valid_indexingÕs  z/TestFloatNonIntegerArgument.test_valid_indexingcCs|t dggg¡}|dd…|dd…|dd…|dd…|ddd…|ddd…|ddd…|ddd…dS)Nr rrr r›r-rrrÚtest_valid_slicingßs    z.TestFloatNonIntegerArgument.test_valid_slicingcCsjt dgg¡}tttj|dƒtttj|t d¡dfƒtttj|dgdƒtttj|dgt d¡ƒdS)Nr )r#r#rPr#rPr)rrrr'r?r!rŽr-rrrÚ test_non_integer_argument_errorsìs
z<TestFloatNonIntegerArgument.test_non_integer_argument_errorscCs4dd„}tt|dgt d¡ƒ|dgt d¡ƒdS)NcSs||Sr)r)rrGrrrÚmultöszRTestFloatNonIntegerArgument.test_non_integer_sequence_multiplication.<locals>.multr r+)rr'rržr1)rr>rrrÚ(test_non_integer_sequence_multiplicationôszDTestFloatNonIntegerArgument.test_non_integer_sequence_multiplicationcCsNt d¡}tttj|dƒtttj|dƒtttj|dƒtttj|dƒdS)N)r+r+r+çà?)r@r )r gš™™™™™@)gš™™™™™É?g333333ó?)rr5rr'Úmin)rr”rrrÚtest_reduce_axis_float_indexýs
 
z8TestFloatNonIntegerArgument.test_reduce_axis_float_indexN)    r‡rˆr‰r9r;r<r=r?rBrrrrr:Îs 
     r:c@s$eZdZdd„Zdd„Zdd„ZdS)ÚTestBooleanIndexingcCszt dggg¡}tttj|dƒtttj|t d¡dfƒtttjt d¡ƒtt    tjtj
ƒtttj |dgdfddS)Nr )TrPTrPrF)Úargs) rrrr'r?ruÚoperatorrAr    r6ZTrue_r!r-rrrÚ test_bool_as_int_argument_errorss z4TestBooleanIndexing.test_bool_as_int_argument_errorscsZt d¡‰ˆdjdkst‚ˆdddgdddgdggfjdksDt‚tt‡fd    d
„ƒdS) N)rr+r%)FT.)rrr+r%Trr rrþcsˆdddgdfS)NFrr .rrrrrrrzETestBooleanIndexing.test_boolean_indexing_weirdness.<locals>.<lambda>)rrVr²rÀrrrrrrÚtest_boolean_indexing_weirdnesss
(z3TestBooleanIndexing.test_boolean_indexing_weirdnesscsÀt d¡‰t dgdg¡‰ttd‡‡fdd„ƒt dgddgg¡‰ttd‡‡fd    d„ƒt dgd
g¡‰ttd‡‡fd d„ƒt d ¡‰t dgdggg¡‰ttd ‡‡fdd„ƒdS)N)r+r+FrLztboolean index did not match indexed array along dimension 0; dimension is 3 but corresponding boolean dimension is 1csˆˆSr)rr)rÚidx1rrr#rzETestBooleanIndexing.test_boolean_indexing_fast_path.<locals>.<lambda>rKTcsˆˆSr)rr)rÚidx2rrr*rr:csˆˆSr)rr)rÚidx3rrr1r)r r rztboolean index did not match indexed array along dimension 1; dimension is 1 but corresponding boolean dimension is 2csˆˆSr)rr)rr~rrr9r)rrVrrrrr)rr~rHrIrJrÚtest_boolean_indexing_fast_paths,
 ý ý ý
 ýz3TestBooleanIndexing.test_boolean_indexing_fast_pathN)r‡rˆr‰rFrGrKrrrrrCs rCc@seZdZdZdd„ZdS)ÚTestArrayToIndexDeprecationz7Creating an index from array not 0-D is an error.
 
    cCsRt dggg¡}tttjt dg¡ƒtttj||dfƒtttj|dg|ƒdS)Nr rPr)rrrr'rErAr?r!r-rrrÚtest_array_to_index_error@sz5TestArrayToIndexDeprecation.test_array_to_index_errorN)r‡rˆr‰r9rMrrrrrL<srLc@seZdZdZdd„ZdS)ÚTestNonIntegerArrayLikez¢Tests that array_likes only valid if can safely cast to integer.
 
    For instance, lists give IndexError when they cannot be safely cast to
    an integer.
 
    cCs>t d¡}tt|jddgƒtt|jddgfƒ| g¡dS)Nr:r@gø?Ú1r)rr=rrrEr-rrrröPs
z"TestNonIntegerArrayLike.test_basicN©r‡rˆr‰r9rörrrrrNIsrNc@seZdZdZdd„ZdS)ÚTestMultipleEllipsisErrorz/An index can only have a single ellipsis.
 
    csLt d¡‰tt‡fdd„ƒttˆjtfdfƒttˆjtfdfƒdS)Nr:csˆdS)N)..rrrrrr`rz6TestMultipleEllipsisError.test_basic.<locals>.<lambda>rr+)rr=rrrErNrrrrrö^s
z$TestMultipleEllipsisError.test_basicNrPrrrrrQZsrQc@seZdZdd„Zdd„ZdS)ÚTestCApiAccesscCs²t td¡}tt|t d¡dƒtt|t d¡dƒtt|t d¡dƒtt|t d¡dƒtt|t d¡dƒt d¡}t|d||dƒƒ|     dd    ¡}t|d
||d
ƒƒdS) Nrrr:r{éõÿÿÿ©r:r:r%r réüÿÿÿ)
Ú    functoolsÚpartialrrrrrVr=rr?)rZ    subscriptrrrrÚ test_getitemfs 
 zTestCApiAccess.test_getitemcCsât td¡}tt|t d¡dƒtt|t d¡ddƒtt|t d¡ddƒtt|t d¡ddƒtt|t d¡ddƒtt|t d¡ddƒt d¡}||ddƒt    |ddkƒ| 
d    d
¡}||ddƒt |d ddgƒdS) Nr r:rrr{rSrTr%r rrP) rVrWrrr]rrVrr=rr?r)rrârrrrÚ test_setitemvs 
   zTestCApiAccess.test_setitemN)r‡rˆr‰rXrYrrrrrResrR)!r¡r3rVrErÅÚnumpyrZnumpy.core._multiarray_testsrÚ    itertoolsrZ numpy.testingrrrrrr    r
r r rßràrôrúrýrr:rCrLrNrQrRrrrrÚ<module>s8  (I    C@0)77