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
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
U
O±dã@szddlZddlZddlZddlZddlZddlmmZddlm    Z    m
Z
m Z m Z ddl mZmZmZmZmZmZmZmZdd„Zdd„Zdd    „Zejje d
d d d „ƒZdd„Zdd„Zdd„Zdd„Zdd„Z ejje d
d dd„ƒZ!dd„Z"dd„Z#dd„Z$d d!„Z%d"d#„Z&d$d%„Z'd&d'„Z(d(d)„Z)d*d+„Z*d,d-„Z+d.d/„Z,d0d1„Z-d2d3„Z.d4d5„Z/d6d7„Z0d8d9„Z1d:d;„Z2d<d=„Z3d>d?„Z4d@dA„Z5dBdC„Z6dDdE„Z7dFdG„Z8dHdI„Z9dJdK„Z:dLdM„Z;dNdO„Z<dPdQ„Z=dRdS„Z>dTdU„Z?ej @dVejAdW¡ej @dXejAdW¡ej BdY¡dZd[„ƒƒƒZCd\d]„ZDd^d_„ZEd`da„ZFdbdc„ZGddde„ZHdfdg„ZIdhdi„ZJdjdk„ZKdldm„ZLdndo„ZMdpdq„ZNdrds„ZOdtdu„ZPdvdw„ZQdxdy„ZRdzd{„ZSd|d}„ZTd~d„ZUd€d„ZVd‚dƒ„ZWd„d…„ZXd†d‡„ZYdˆd‰„ZZdŠd‹„Z[ejjedŒd ejje dd dŽd„ƒƒZ\dd‘„Z]d’d“„Z^d”d•„Z_d–d—„Z`ejjad˜d™„ƒZbdšd›„ZcGdœd„dƒZddždŸ„Zed d¡„Zfd¢d£„Zgd¤d¥„Zhd¦d§„Zid¨d©„Zjej @dªejkd«d¬d­ejkd®d¬d­ddd¯…dd…fejkd°d¬d­ddd¯…dd…ddd¯…dd…fejkd±d¬d­ddd²…ejkd³d¬d­ddd¯…ddd´…fejkd°d¬d­ddd¯…dd…ddd¯…dddµ…fg¡d¶d·„ƒZlej @d¸d¹gddµdgfejkdºd»d­dd¼gfejkdºd»d­dfejkd½d»d­dµdgfejkd¾d»d­dµdµgfejkd¾d»d­dfg¡d¿dÀ„ƒZmdÁd„ZndÃdĄZodÅdƄZpdÇdȄZqdÉdʄZrdËd̄ZsdÍd΄ZtdÏdЄZuej @dÑejvdÒewd­dd…ddd¯…dd…fejvdÒewdÓdԍdd…ddd¯…dd…fejvdÒewd­dd…ddd¯…dd…f xdÓ¡g¡dÕdքƒZyd×d؄ZzdÙdڄZ{dÛd܄Z|dÝdބZ}dßdà„Z~dádâ„Zejje d
d dãd䄃Z€ejjejdd¯…dåkoej‚dækdçd ej @dèdégdêdëdìdíg¡ej @dîd¼d¯d²g¡dïdð„ƒƒƒZƒejje d
d ej @dèdégdëdíg¡dñdò„ƒƒZ„dódô„Z…dS)õéN)ÚarrayÚarangeÚnditerÚall)Úassert_Ú assert_equalÚassert_array_equalÚ assert_raisesÚIS_WASMÚ HAS_REFCOUNTÚsuppress_warningsÚ break_cyclescCs$g}|js | |j¡| ¡q|S©N)ÚfinishedÚappendÚ multi_indexÚiternext©ÚiÚret©rúSd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/core/tests/test_nditer.pyÚiter_multi_indexs
 
rcCs$g}|js | |j¡| ¡q|Sr)rrÚindexrrrrrÚ iter_indicess
 
rcCs$g}|js | |j¡| ¡q|Sr)rrÚ    iterindexrrrrrÚiter_iterindicess
 
rzPython lacks refcounts)Úreasonc    Csrtdƒ}t d¡ ¡}t |¡}t |¡}t|gddggd|gd6}t|j ƒtt |¡|kƒtt |¡|kƒW5QRXd}t    t |¡|ƒt    t |¡|ƒtddd}t d¡}t |¡}t |¡}t|gdgg|gd}t |¡}t |¡}| 
¡}tt |¡|kƒtt |¡|kƒd}t    t |¡|ƒt    t |¡|ƒd}t    t |¡|ƒt    t |¡|ƒ~dS)    NéÚf4Ú    readwriteÚ updateifcopyÚunsafe©ÚcastingÚ    op_dtypes©Údtype©r%) rÚnpr'Ú newbyteorderÚsysÚ getrefcountrrÚiterationneedsapirÚcopy)ÚaÚdtZrc_aZrc_dtÚitZrc2_aZrc2_dtÚit2rrrÚtest_iter_refcount%sH
 
ý  
 
 
þ
 
r3cCs dD]}tt |¡ƒ}tdt|ƒƒD]Ü}tdƒgt|ƒ}tt|ƒƒD] }d||@rJtdddƒ||<qJt|ƒ}| |¡|}t|gdggƒ}t    dd„|Dƒ|ƒt|j
gdggƒ}t    dd„|Dƒ|ƒt|ƒdkr(t|  dd    ¡gdggƒ}t    d
d„|Dƒ|ƒq(qdS) N©)é©éé©ér7r8)r:r7r8r7)r:r7r:r:r7r:éÿÿÿÿÚreadonlycSsg|]}|‘qSrr©Ú.0ÚxrrrÚ
<listcomp>bsz(test_iter_best_order.<locals>.<listcomp>cSsg|]}|‘qSrrr=rrrr@esrécSsg|]}|‘qSrrr=rrrr@is) rr)ÚprodÚrangeÚlenÚsliceÚtupleÚreshaperrÚTÚswapaxes©Úshaper/ÚdirsÚ
dirs_indexÚbitÚaviewrrrrÚtest_iter_best_orderPs 
  rPcCs"dD]}tt |¡ƒ}tdt|ƒƒD]ò}tdƒgt|ƒ}tt|ƒƒD] }d||@rJtdddƒ||<qJt|ƒ}| |¡|}t|dd}t    dd„|Dƒ|j
ddƒt|j dd}t    dd„|Dƒ|j j
ddƒt|ƒdkr(t|  d    d
¡dd}t    d d„|Dƒ|  d    d
¡j
ddƒq(qdS) Nr4r:r;ÚC©ÚordercSsg|]}|‘qSrrr=rrrr@|sz%test_iter_c_order.<locals>.<listcomp>cSsg|]}|‘qSrrr=rrrr@srrAcSsg|]}|‘qSrrr=rrrr@ƒs© rr)rBrCrDrErFrGrrÚravelrHrIrJrrrÚtest_iter_c_orderks$
   ÿrVcCs"dD]}tt |¡ƒ}tdt|ƒƒD]ò}tdƒgt|ƒ}tt|ƒƒD] }d||@rJtdddƒ||<qJt|ƒ}| |¡|}t|dd}t    dd„|Dƒ|j
ddƒt|j dd}t    dd„|Dƒ|j j
ddƒt|ƒdkr(t|  d    d
¡dd}t    d d„|Dƒ|  d    d
¡j
ddƒq(qdS) Nr4r:r;ÚFrRcSsg|]}|‘qSrrr=rrrr@—sz%test_iter_f_order.<locals>.<listcomp>cSsg|]}|‘qSrrr=rrrr@šsrrAcSsg|]}|‘qSrrr=rrrr@žsrTrJrrrÚtest_iter_f_order†s$
   ÿrXcCs"dD]}tt |¡ƒ}tdt|ƒƒD]ò}tdƒgt|ƒ}tt|ƒƒD] }d||@rJtdddƒ||<qJt|ƒ}| |¡|}t|dd}t    dd„|Dƒ|j
ddƒt|j dd}t    dd„|Dƒ|j j
ddƒt|ƒdkr(t|  d    d
¡dd}t    d d„|Dƒ|  d    d
¡j
ddƒq(qdS) Nr4r:r;ÚArRcSsg|]}|‘qSrrr=rrrr@²sz*test_iter_c_or_f_order.<locals>.<listcomp>cSsg|]}|‘qSrrr=rrrr@µsrrAcSsg|]}|‘qSrrr=rrrr@¹srTrJrrrÚtest_iter_c_or_f_order¡s$
   ÿrZcCsHt d¡ dd¡}tj|dgd}d|_tdd„|Dƒddd    d
gƒdS) Nrr:r7r©Úflags©rr:cSsg|]}|‘qSrr)r>rrrrr@Äsz/test_nditer_multi_index_set.<locals>.<listcomp>r8r5)r)rrGrrr)r/r1rrrÚtest_nditer_multi_index_set¼sr^cCsLd}tjt ddddg¡dgd}t |¡}|f|_t |¡}t||ƒdS)NréoéÞiMi¼rr[)r)rrr+r,rr)rrZ start_countZ    end_countrrrÚ$test_nditer_multi_index_set_refcountÆs 
 
racCsftdƒ}t|dgdggƒ}tt|ƒddddgƒt|ddd…dgdggƒ}tt|ƒddddgƒdS)    Nr8rr<©r©rA©r:©r7r;)rrrr©r/rrrrÚ#test_iter_best_order_multi_index_1dÓs
rgcCs,tdƒ}t| dd¡dgdggƒ}tt|ƒdddd    d
d gƒt| dd¡jd d dgdggƒ}tt|ƒdd    dd
dd gƒt| dd¡ddd…dgdggƒ}tt|ƒd    d
d dddgƒt| dd¡dd…ddd…fdgdggƒ}tt|ƒdddd d
d    gƒt| dd¡ddd…ddd…fdgdggƒ}tt|ƒd d
d    dddgƒt| dd¡jd d ddd…dgdggƒ}tt|ƒd    dd
dd dgƒt| dd¡jd d dd…ddd…fdgdggƒ}tt|ƒdd dd
dd    gƒt| dd¡jd d ddd…ddd…fdgdggƒ}tt|ƒd dd
dd    dgƒdS)Nrr:r7rr<©rr©rrAr]©rAr©rArA©rAr:rWrRr;©rrrGrrr.rfrrrÚ#test_iter_best_order_multi_index_2dÞs."$,.,&ÿ(ÿrncCs¤tdƒ}t| ddd¡dgdggƒ}tt|ƒdddd    d
d d d ddddg ƒt| ddd¡jdddgdggƒ}tt|ƒdd ddd
ddd d    dd dg ƒt| ddd¡ddd…dgdggƒ}tt|ƒd d dddddddd    d
d g ƒt| ddd¡dd…ddd…fdgdggƒ}tt|ƒd
d dd    ddddddd d g ƒt| ddd¡dd…dd…ddd…fdgdggƒ}tt|ƒddd    dd d
d d ddddg ƒt| ddd¡jddddd…dgdggƒ}tt|ƒd ddddd
d ddd    dd g ƒt| ddd¡jdddd…ddd…fdgdggƒ}tt|ƒd
ddddd d dd    ddd g ƒt| ddd¡jdddd…dd…ddd…fdgdggƒ}tt|ƒdd d    dd ddd ddd
dg ƒdS)Né r:r7rr<)rrr)rrrA)rrAr)rrArA)rr:r)rr:rA)rArr)rArrA)rArAr)rArArA)rAr:r)rAr:rArWrRr;rmrfrrrÚ#test_iter_best_order_multi_index_3dùsÄ ÿÿ$ ÿÿ& ÿÿ. ÿÿ4 ÿÿ ÿ ÿÿ(ÿ ÿÿ.ÿ ÿÿrpcCsftdƒ}t|dgdggƒ}tt|ƒddddgƒt|ddd…dgdggƒ}tt|ƒddddgƒdS)    Nr8Úc_indexr<rrAr:r7r;©rrrrrfrrrÚtest_iter_best_order_c_index_1d%s
rscCs,tdƒ}t| dd¡dgdggƒ}tt|ƒdddddd    gƒt| dd¡jd
d dgdggƒ}tt|ƒdddddd    gƒt| dd¡ddd …dgdggƒ}tt|ƒddd    dddgƒt| dd¡dd…ddd …fdgdggƒ}tt|ƒdddd    ddgƒt| dd¡ddd …ddd …fdgdggƒ}tt|ƒd    dddddgƒt| dd¡jd
d ddd …dgdggƒ}tt|ƒddddd    dgƒt| dd¡jd
d dd…ddd …fdgdggƒ}tt|ƒdd    ddddgƒt| dd¡jd
d ddd …ddd …fdgdggƒ}tt|ƒd    dddddgƒdS) Nrr:r7rqr<rrAr8r5rWrRr;©rrrGrrr.rfrrrÚtest_iter_best_order_c_index_2d0s:ÿ$,.ÿ&ÿ(ÿrucCs¤tdƒ}t| ddd¡dgdggƒ}tt|ƒdddddd    d
d d d ddg ƒt| ddd¡jdddgdggƒ}tt|ƒdd
dd dddd dd d    dg ƒt| ddd¡ddd…dgdggƒ}tt|ƒd
d d d dddddddd    g ƒt| ddd¡dd…ddd…fdgdggƒ}tt|ƒdd    ddddddd d d
d g ƒt| ddd¡dd…dd…ddd…fdgdggƒ}tt|ƒddddd    dd d
d d ddg ƒt| ddd¡jddddd…dgdggƒ}tt|ƒd
dd dddd dd ddd    g ƒt| ddd¡jdddd…ddd…fdgdggƒ}tt|ƒdddd dd
d    ddd dd g ƒt| ddd¡jdddd…dd…ddd…fdgdggƒ}tt|ƒdd dd d    ddd
dd ddg ƒdS)Nror:r7rqr<rrAr8r5rééé    é
é rWrRr;rtrfrrrÚtest_iter_best_order_c_index_3dMsZÿÿÿ&ÿ.ÿ4ÿ ÿÿ(ÿÿ.ÿÿr{cCsftdƒ}t|dgdggƒ}tt|ƒddddgƒt|ddd…dgdggƒ}tt|ƒddddgƒdS)    Nr8Úf_indexr<rrAr:r7r;rrrfrrrÚtest_iter_best_order_f_index_1drs
r}cCs,tdƒ}t| dd¡dgdggƒ}tt|ƒdddddd    gƒt| dd¡jd
d dgdggƒ}tt|ƒdddddd    gƒt| dd¡ddd …dgdggƒ}tt|ƒddd    dddgƒt| dd¡dd…ddd …fdgdggƒ}tt|ƒdddd    ddgƒt| dd¡ddd …ddd …fdgdggƒ}tt|ƒd    dddddgƒt| dd¡jd
d ddd …dgdggƒ}tt|ƒddddd    dgƒt| dd¡jd
d dd…ddd …fdgdggƒ}tt|ƒdd    ddddgƒt| dd¡jd
d ddd …ddd …fdgdggƒ}tt|ƒd    dddddgƒdS) Nrr:r7r|r<rr8rAr5rWrRr;rtrfrrrÚtest_iter_best_order_f_index_2d}s:ÿ$,.ÿ&ÿ(ÿr~cCs¤tdƒ}t| ddd¡dgdggƒ}tt|ƒddddd    d
d d dd ddg ƒt| ddd¡jdddgdggƒ}tt|ƒdd ddd    ddd dd d
dg ƒt| ddd¡ddd…dgdggƒ}tt|ƒd d dd ddddddd    d
g ƒt| ddd¡dd…ddd…fdgdggƒ}tt|ƒd    d
dddddddd d d g ƒt| ddd¡dd…dd…ddd…fdgdggƒ}tt|ƒddddd
d    d d d dddg ƒt| ddd¡jddddd…dgdggƒ}tt|ƒd ddddd    d dd ddd
g ƒt| ddd¡jdddd…ddd…fdgdggƒ}tt|ƒd    ddddd d
ddd dd g ƒt| ddd¡jdddd…dd…ddd…fdgdggƒ}tt|ƒdd dd d
ddd ddd    dg ƒdS)Nror:r7r|r<rrrwr8ryrArvrxr5rzrWrRr;rtrfrrrÚtest_iter_best_order_f_index_3dšsZÿÿÿ&ÿ.ÿ4ÿ ÿÿ(ÿÿ.ÿÿrcCs6dD]*}t |¡}t|ƒ}tdt|ƒƒD]}tdƒgt|ƒ}tt|ƒƒD] }d||@rPtdddƒ||<qPt|ƒ}| |¡|}t|dgdggƒ}t    |j
dƒt    |dj |fƒt|j dgdggƒ}t    |j
dƒt    |dj |fƒt|ƒdkr,t|  dd¡dgdggƒ}t    |j
dƒt    |dj |fƒq,qdS)Nr4r:r;Ú external_loopr<rAr)r)rBrrCrDrErFrGrrÚndimrKrHrI)rKÚsizer/rLrMrNrOrrrrÚ test_iter_no_inner_full_coalesce¿s.
 
     ÿ rƒc CsVtdƒ ddd¡dd…dd…dd…f}t|dgdggƒ}t|jdƒt|djd    ƒtdƒ ddd¡dd…dd…dd…f}t|dgdggƒ}t|jdƒt|djd
ƒtdƒ ddd¡dd…dd…dd…f}t|dgdggƒ}t|jd ƒt|djd ƒtdƒ d d dd d dd d dd d ¡ }t|dgdggƒ}t|jd ƒt|djd ƒdS)Nér:r7r8r;r€r<rre©rwrA)ro©r„)rrGrrrrKrfrrrÚ!test_iter_no_inner_dim_coalescingÝs ( ( ( " r‡cCsštdƒ ddd¡}t|dgdggƒ}t|jdƒtdƒ ddd¡}t|dgdggƒ}t|jdƒt| d    d¡dgdggƒ}t|jdƒt|jdgdggƒ}t|jdƒt|jd
gdggƒ}t|jdƒt|j d    d¡d
gdggƒ}t|jdƒtdƒ ddd¡}t|d d }t|jdƒt|jd d }t|jdƒt|d d }t|jdƒt|jd d }t|jdƒt|dd }t|jdƒt|jdd }t|jdƒdS)Nr„r:r7r8rr<rqrArr|rQrRrWrY)rrGrrrrIrH)r/rZa3drrrÚtest_iter_dim_coalescingõs6              rˆcCsþttdƒt d¡gdgdggdƒ}t|jdƒt|jdƒttdƒ dd¡t d¡gdgdggdƒ}t|jdƒt|jdƒttdƒ dd¡tdƒgdgdggdƒ}t|jdƒt|jdƒttdƒ dd¡tdƒgdgdggdƒ}t|jdƒt|jdƒttdƒ dd¡tdƒ dd¡gdgdggdƒ}t|jdƒt|jdƒtt d¡td    ƒ d
dd¡gdgdggdƒ}t|jd    ƒt|jd ƒttdƒtd    ƒ d
dd¡gdgdggdƒ}t|jd    ƒt|jd ƒttdƒtd ƒ d
dd¡gdgdggdƒ}t|jd    ƒt|jd ƒttdƒ dd¡td    ƒ d
dd¡gdgdggdƒ}t|jd    ƒt|jd ƒttdƒ dd¡td    ƒ d
dd¡gdgdggdƒ}t|jd    ƒt|jd ƒttdƒ dd¡td ƒ d
dd¡gdgdggdƒ}t|jd    ƒt|jd ƒttdƒ ddd¡tdƒ ddd¡td
ƒ d
dd¡gdgdggdƒ}t|jd    ƒt|jd ƒttdƒ ddd¡td
ƒ d
dd¡gdgdggdƒ}t|jd    ƒt|jd ƒttd    ƒ d
dd¡td ƒ d
dd¡gdgdggdƒ}t|jd    ƒt|jd ƒdS)Nrr:rr<©rr7©r:r7rAr„r8©r8r:r7rwro)rrr)Úint32rÚitersizerKrG©rrrrÚtest_iter_broadcastings¦$  
ÿ  
ÿ  
ÿ   
ÿ  
ÿ  
ÿ  
ÿ  "
ÿ  "
ÿ  "
ÿ  "ÿ
þ  $
ÿ  $
ÿ rc    CsRtjddd dd¡}t|dggdgddggd    d
dgdgd d }t|jd
jd ƒt|jd
jdƒt|jdggdgddggd    d
dgdgd d }t|jd
jdƒt|jd
jdƒt|jdggdgddggdd    d
dgdgd d}t|jd
jdƒt|jd
jdƒt    t
t|dggdgddggd    d
dgdgdd tjt  d¡ddgdd}dS)NrÚi2r&r:r7r<Ú    writeonlyÚallocaterrA)r;r;r8©Úop_axesÚ    itershaper9)r„rwr:)r7r:r8)rwr„r:rW)rSr”r•)r:rro)r;rAr8rd©r•) r)rrGrrÚoperandsrKÚstridesrHr    Ú
ValueErrorÚonesrfrrrÚtest_iter_itershape_s4 þ þ ý  ýr›c
Cs*ttttdƒtdƒggdggdƒttttdƒ dd¡tdƒggdggdƒttttdƒ dd¡tdƒ dd¡ggdggdƒttttdƒ dd¡tdƒ dd¡ggdggdƒttttdƒ ddd¡tdƒ ddd¡ggdggdƒttttd    ƒ ddd
¡tdƒ ddd¡ggdggdƒzRttdƒ d
dd
¡tdƒ d
d¡tdƒ dd¡ggdgdgd d ggƒtd ƒ‚Wn\tk
rÖ}z<t|ƒ}t| d¡dkd|ƒt| d¡dkd|ƒW5d}~XYnXzHttdƒ dd¡tdƒggdgdggdd
gdt    j
ggddtd ƒ‚Wnttk
r”}zTt|ƒ}t| d¡dkd|ƒt| d¡dkd|ƒt| d¡dkd|ƒW5d}~XYnXz2tt      d¡t      d¡ggd d gdggƒtd ƒ‚Wn\tk
r$}z<t|ƒ}t| d¡dkd|ƒt| d¡dkd |ƒW5d}~XYnXdS)!Nr:r7r<rrxr8é$r„rwrAr‘Ú no_broadcastz$Should have raised a broadcast errorz(2,3)rz0Message "%s" doesn't contain operand shape (2,3)z(1,2,3)z4Message "%s" doesn't contain broadcast shape (1,2,3))r8r7r“z (2,3)->(2,3)z7Message "%s" doesn't contain operand shape (2,3)->(2,3)z(2,)->(2,newaxis)zDMessage "%s" doesn't contain remapped operand shape(2,)->(2,newaxis)z(4,3)z6Message "%s" doesn't contain itershape parameter (4,3)©r:rArArdz(2,1,1)z2Message "%s" doesn't contain operand shape (2,1,1)z(2,1,2)z8Message "%s" doesn't contain the broadcast shape (2,1,2)) r    r™rrrGÚAssertionErrorÚstrrÚfindr)ÚnewaxisÚzeros)ÚeÚmsgrrrÚtest_iter_broadcasting_errors~s¢
ÿ
þ
þ
þ"
þ"
þþü ÿÿ
ü ÿÿÿÿ þ ÿÿr¦cCsötdƒ}tttgggƒttt|gdgdggdƒttt|gdgdggƒttt|ggddggƒttt|ggdggddttt|ggdggddttt|gd    gdggd
ƒttt|d d gdggƒttt|d dgdggƒttt|d d gdggƒttt|d d gdggƒttt|gggƒttt|gddggƒttt|gddggƒttt|gddggƒttt|gdddggƒtttdgdggƒtttdgdggƒtttt d¡gdggƒtttt d¡gdggƒd|j_ttt|gdggƒttt|gdggƒd|j_ttdƒgdggƒ}ttdd„|ƒttdd„|ƒdd„}dd„}dd„}dd„}ttdƒd gƒ}tt||ƒtt||ƒtt||ƒtt||ƒttdƒd gƒ}tt||ƒtt||ƒtt||ƒtttt     g¡ƒdS)!Nrédr<zbad flagÚGrRZnoon©r$r7r:rqr|r€rr‘r çø?rAFTcSs|jSr©rrŽrrrÚ<lambda>úóz(test_iter_flags_errors.<locals>.<lambda>cSs|jSr©rrŽrrrr¬ür­cSs
d|_dS)Nrbr«rŽrrrÚassign_multi_indexÿsz2test_iter_flags_errors.<locals>.assign_multi_indexcSs
d|_dS©Nrr®rŽrrrÚ assign_indexsz,test_iter_flags_errors.<locals>.assign_indexcSs
d|_dSr°)rrŽrrrÚassign_iterindexsz0test_iter_flags_errors.<locals>.assign_iterindexcSs
d|_dS)Nri)Ú    iterrangerŽrrrÚassign_iterrangesz0test_iter_flags_errors.<locals>.assign_iterrangeÚbuffered)
rr    r™rÚ    TypeErrorr)rŒr\Ú    writeabler)r/rr¯r±r²r´rrrÚtest_iter_flags_errorsÉsrÿÿÿÿ
ÿ       r¸c    Cs¤t d¡t d¡t d¡}}}t|||ggdgƒ}|`d|dd…<t|dddgƒt|dddgƒt|dddgƒd|d<t|dd…ddgƒW5QRXdS)    Nr7ç@r )r7r7rr:rAro)r)rrr)r/ÚbÚcrrrrÚtest_iter_slices" r¼c    Csâtjddd ddd¡j}tj|gddggd    t d
¡gd }|"d|jd d <d|jd d <W5QRXt|dƒtj|gddggd    t d
¡gd }|.|jd dd…}d|d <d|jd d <W5QRXt|dƒd}d}dS)Nr„Úf8r&r:r7r8r r!Ú    same_kindrr#r.ér;rAi.ûÿÿ)r)rrGrHrr'r—r)r/r1r?rrrÚtest_iter_assign_mapping!s(
ÿ
 
ÿ
rÀc    Csötjddd}| ¡ ¡}t|jj|jjkƒt|gddggdt d¡gd}|Vt|j    dj|jjƒt|j
djj|jjƒt|j
d|ƒd    |j
ddd…<W5QRXt|d    gdƒ~tjddd}| ¡ ¡}t|jj|jjkƒt|gddd
ggdd h}t|j    dj|jjƒt|j
djj|jjƒt|j
d|ƒd |j
ddd…<d    |j
ddd…<W5QRXt|d    gdƒtj d dddd…}d|_tjddd|dd…<t|j j ƒt|gdggƒ}t|j
dj j ƒt|j
d|ƒt|gdddggƒ:}t|j
dj j ƒt|j
d|ƒd|j
ddd…<W5QRXt|dgdƒtdƒ}t|dd…gdggƒ}t|j
dj jƒt|j
d|dd…ƒt|ddd    …ddgddggdd}t|dj jƒt|d|ddd    …ƒdS)Nrrr&r r!Úequivr#rr:Únbor©i90)éÚi1rAr<Úalignedr7rorµr€Zcontigry©Ú
buffersize)r)rÚbyteswapr*rr'Ú    byteorderrrÚdtypesr—r£r\rÅÚ
contiguous)r/ÚaurrrrÚtest_iter_nbo_align_contig4sb 
þ ÿþrÍc    Cs tjddd dd¡}t|gdggt d¡gd}|.t|jd|ƒt|jdjt d¡ƒW5QRXtjdd    d dd¡}t|gdd
ggd t d ¡gd .}t|jd|ƒt|jdjt d ¡ƒW5QRXtjddd ddd¡ dd¡}t|gddggdt d¡gd }t|jd|ƒt|jdjt d¡ƒt|jdjdƒ|ddd…dd…ddd…f}t|gddggdt d¡gd }t|jd|ƒt|jdjt d¡ƒt|jdjdƒtjddd ddd¡j    }t|gdd
ggdt d¡gd ^}t|jd|ƒt|jdjt d¡ƒt|jdjdƒd|jdd<t
|ddkƒW5QRXt|ddƒtjdddddd…}t|gdd
ggdt d¡gd H}t|jdjt d¡ƒt|jdjdƒdddg|jddd…<W5QRXt|dddgƒdS) Nrrr&r:r7r r(rú<f4r!rÁú>f4r#r„r8rAr<r.Úsafer½)é`rwé r;r¾)r8éé0g)ÀržÚi4éþÿÿÿr‘r")r8) r)rrGrr'rr—rIr˜rHrrfrrrÚtest_iter_array_castrsj"
þ" 
þ
þ
ý
ý"r×c
Cs¸ttttdddgdggt d¡gdttttdddgddggdt d¡gd    ttttdddgddggd
t d¡gd    ttttdddgd d ggdt d¡gd    ttttdddgd d ggd
t d¡gd    ttttdd dgddggdt d¡gd    ttttdddgdd ggdt d¡gd    ttttdddgdd ggdt d¡gd    ttttdddgddggdt d¡gd    ttttdddgd d ggdt d¡gd    dS)Nr:rr&r<r½r(r.Únor#rÁr‘r!rÎrÏr rÐr¾rÕ)r    r¶rrr)r'rrrrÚtest_iter_array_cast_errors°sb
ÿ
þ
þ
ý
ý
þ
ý
ý
ý
ýrÙcCs°tt d¡gdggt d¡gd}t|jdt d¡ƒt|jjt d¡ƒt|jdƒtt d¡gddggdt d¡gd    }t|jdt d¡ƒt|jjt d¡ƒt|jdƒtt d¡gddggd
t d¡gd    }t|jdt d¡ƒt|jjt d¡ƒt|jdƒtt d ¡gddggd t d ¡gd    }t|jdt d ¡ƒt|jjt d ¡ƒt|jdƒtdgdggt d¡gd}t|djt d¡ƒt|dd ƒdS)Nç@r<rr(rr.rÐr½r#r¾r¹r"rÕr7)rr)Úfloat32r'rrÊÚvalueÚfloat64rŽrrrÚtest_iter_scalar_castÜsB
ÿ  
ý  
ý  
ý rÞc
Csštttt d¡gdggt d¡gdtttdgdggt d¡gdtttt d¡gdggd    t d¡gd
tttt d¡gdggd t d ¡gd
dS) Nr:r r½r(rÚrgDóÂääécLr<rÐr#r¾rÕ)r    r¶rr)rÛr'rÝrrrrÚtest_iter_scalar_cast_errorss$
ÿ
 
ÿ
ý
ýrßc    Csºdddœ}tjdddgd|dgdd}tr4t |¡}ttt|ƒtrTtt |¡|ƒt|dgd    gƒ}d
d „|Dƒ}ttj|dd|ƒdgd\}}}trªtt |¡|ƒt|     dd¡j
dd gd    gd d}t |j ƒdd „|Dƒ}ttj|dd|     dd¡j ddƒdgd\}}}tr,tt |¡|ƒt|     dd¡j
dd gdgd d}|*|D]}d|d<qVdgd\}}}W5QRXtrœt t |¡|dkƒt|tjdgdddƒdS)Nr7Úd©r/rºrAr:ÚOr&Úrefs_okr<cSsg|] }|d‘qS©rr©r>Zx_rrrr@#sz1test_iter_object_arrays_basic.<locals>.<listcomp>rµrQrRcSsg|] }|d‘qSrärrårrrr@,srWr .r8)r)rr r+r,r    r¶rrrGrHrr-rU)Úobjr/ÚrcrÚvalsr?rrrÚtest_iter_object_arrays_basicsD
 
 ÿ
$ÿ réc    Cstjddd}t|ddgdgddd    }| |D]}|d
d 7<q0W5QRXt|t d¡d ƒtjddd}t|ddgdgddd    }| |D]}|d
d 7<q”W5QRXt|t d¡d ƒtjd d dgd}|d}t d¡|dd…<t|ddgdgddd    }|"|D]}|d
d 7<qW5QRXt|t d¡d ƒtjd d dgd}|d}t d¡d|dd…<t|ddgdgddd    }|>|dd}tr¶t |¡}|D]}|d
d 7<qºW5QRXtrøtt |¡|d kƒt|t d¡dƒdS)Nrrâr&rãrµr r"rÕr#.rAr‰)ÚprÄ©r/râr/)r/rÕiHþÙrriIþÙ)    r)rrrr£r r+r,r)r/rr?ÚobrçrrrÚ#test_iter_object_arrays_conversions<sZÿÿÿÿ 
rícCs†ttdgddtdgddgdgddggd    d
d }t|jdt d¡ƒt|jd t d¡ƒttdgd dtdgddgdgddggd    d
d }t|jdt d¡ƒt|jd t d¡ƒttdgddtdddgdgddggd    dd }t|jdt d¡ƒt|jd t d¡ƒttdgddtdd dgdgddggd    d
d }t|jdt d¡ƒt|jd t d¡ƒttdgddtdd dgdgddggd    d
d }t|jdt d¡ƒt|jd t d¡ƒttdgddtdd dtdgddtdgddgdgddggdd
d }t|jdt d¡ƒt|jd t d¡ƒt|jd    t d¡ƒt|jdt d¡ƒt|jdƒttdgd ddtdgddggddgddgdggd
d }t|jdt d ¡ƒt|jd t d ¡ƒt|jd    t d¡ƒttdgd ddtdgddgdgddgddgdggd
d }t|jdt d¡ƒt|jd t d¡ƒt|jd    t d¡ƒdS)Nr7rr&rr½Z common_dtyper<r.r:rÐr©rArÕr¾Úu4éôÿÿÿÚi8ù@Úc8rxr8Úc16)r7rïrñrxr‘r’)rrrrÊr)r'rÜrŽrrrÚtest_iter_common_dtypeisŠ ý ý ý ý ý ÿ ü  þüþûrôc    
CsúdD]B}tdƒ}t|gdg|ggƒ}|t|jd|kƒW5QRXqtdƒ}|dd…}|dd…}t||gdgdgdggƒ}ttj|jŽ ƒW5QRXtdƒ}|}|}t||gdgdd    gdd    ggƒ}|&t|jd|koð|jd|kƒW5QRXt||gdgdgdggƒ.}t|jd|ko>t |jd|¡ ƒW5QRXtdƒ}|ddd
…}|ddd
…}t||gdgdgd ggƒ}t|jd|ko¨|jd|kƒtd tjd }|dd…}| tj¡dd…}t||gdgdgd ggƒ}ttj|jŽ ƒW5QRXdD]~}t     ddg¡}|}|j
}|}t|||gdgdgdg|ggƒ6}|j\}}}tt ||¡ ƒtt ||¡ ƒW5QRXqt     ddg¡}|}|j
}|}t|||gdgdgdgdggƒ}|j\}}}t||kƒt||kƒt||kƒt     ddg¡}|}t     ddg¡}|j
}t|||gdgdgd gdggƒ}|j\}}}t||kƒt||kƒt||kƒt d¡}|dd…}|dd…}|d d…}t|||gdgdgd gd ggƒ}|j\}}}t||kƒt||kƒt||kƒdS)N)r<r‘r ryZcopy_if_overlaprrAr;r<r Zoverlap_assume_elementwiser:r‘r8r&r7)r‘r rvr) rrrr—r)Z shares_memoryÚint8ÚviewrŒršrH)    Úflagr/rr?rºr»Za2Zb2Úc2rrrÚtest_iter_copy_if_overlap©s–  ÿ*2" ÿ  ÿ    ÿ    
   ÿ   rùc    Csvtdƒ dd¡}t||jggdggdddgddggd}ttdd    „|Dƒƒƒtd
ƒ ddd ¡}t|j|ggdggddddgdgd}ttd d    „|Dƒƒƒtdd ƒ ddd¡}tddƒ}t||ggdggdddddggd}tdd    „|Dƒ|| ddd¡ ¡ƒtdd ƒ}t||ggdggdddddggd}tdd    „|Dƒ|| ddd¡ ¡ƒtddƒ}t||ggdggddtj    tj    dggd}tdd    „|Dƒ|| ddd¡ ¡ƒtd
ƒ ddd ¡}tdƒ ddd ¡}t||gdgdggdddddgddddggd}t|j
dƒtdƒ dd ¡}tdƒ d d¡}t||gdgdggdddgddggd}t|j
dƒdS)Nrr:r7r<rrA©r”cSsg|]\}}||k‘qSrr©r>r?Úyrrrr@    sz%test_iter_op_axes.<locals>.<listcomp>r„r8cSsg|]\}}||k‘qSrrrûrrrr@ sér5r;cSsg|]\}}||‘qSrrrûrrrr@scSsg|]\}}||‘qSrrrûrrrr@scSsg|]\}}||‘qSrrrûrrrr@sé(r)r:r7r5r:roé)r7r5) rrGrrHrrrrUr)r¢rK)r/rrºrrrÚtest_iter_op_axess<*(
&&
&&
ÿ&ÿ ÿrc
CsJtdƒ dd¡}ttt||ggdggddgdgdggdttt||ggdggdddgddggdttt||ggdggdddgddggdttt||ggdggdddgddggdttt||ggdggdddgddggdttt||ggdggdddgdddggdttt||ggdggdddgddggddS)    Nrr:r7r<rrArúr;)rrGr    r™r©r/rrrÚtest_iter_op_axes_errors)s,ÿÿÿÿÿÿÿrc    Csàtdƒ ddd¡}t|ƒ}| ¡}tdd„|Dƒdd„|Dƒƒd|_| ¡}tdd„|Dƒdd„|Dƒƒt|dd    gd
dd }| ¡}td d„|Dƒd d„|Dƒƒd|_| ¡}td d„|Dƒd d„|Dƒƒd|_| ¡}tdd„|Dƒdd„|Dƒƒd|_t|ƒt|ƒ| ¡}tdd„|Dƒdd„|Dƒƒt|dgd
dddd}| ¡}W5QRXtdd„|Dƒ|jd
dƒtddd ddd¡}t|dgd
dddd}| ¡}W5QRXtdd„|Dƒ|jd
dƒdS)Nr„r:r7r8cSsg|] }|d‘qSrärr=rrrr@Jsz"test_iter_copy.<locals>.<listcomp>cSsg|] }|d‘qSrärr=rrrr@NsrµÚrangedrW©rSrÇcSsg|] }|d‘qSrärr=rrrr@SscSsg|] }|d‘qSrärr=rrrr@Ws©r7rxcSsg|] }|d‘qSrärr=rrrr@[s)r:écSsg|] }|d‘qSrärr=rrrr@asr"r½r5)rSr$r%rÇcSsg|] }|d‘qSrärr=rrrr@gsrRz<i4r&z>f8cSsg|] }|d‘qSrärr=rrrr@ms)    rrGrr.rrr³ÚnextrU)r/rÚjrrrÚtest_iter_copyCsH ÿ ÿr    r'ZAllÚ
loop_dtypezignore::numpy.ComplexWarningcCsä| ¡dkr|d}nt |¡jdkr.|d}tjdt |¡ ¡d}z| |¡}Wntk
rjYdSXtj|fddd    g|gd
d }t     t |¡tj
¡r°t |tjd|dƒ|  ¡}t |ƒ}~t |ƒ}~t ||ƒt ||ƒdS) NÚmz[ms]rZ50éèr&rµr€rãr"©r%r$)Úlowerr)r'Úitemsizeršr*ÚastypeÚ    ExceptionrZ
issubdtypeÚnumberrr.r)r'r
ÚarrÚexpectedr1Úit_copyÚresZres_copyrrrÚtest_iter_copy_castsps, 
ÿ
rc    Cs t dt d¡fdt d¡fg¡}t dt d¡fdt d¡fg¡}tjd|d}tj|fd    d
d g|gd d }| ¡}t|ƒ}~t|ƒ}~|d |d¡}t|d|ƒt|d|ƒ|djD]D}|d| |d|j    ¡}t|d||ƒt|d||ƒqÂdS)Nr/zi,rºz>i,<i,>d,S17,>d,(3)f,O,i1râz>i,>i,S17,>d,>U3,(3)d,i1,Or r&rµr€rãr"r )
r)r'ršrr.rrrÚnamesÚbase)    Úin_dtypeZ    out_dtyperr1rZres1Zres2rÚfieldrrrÚtest_iter_copy_casts_structured”s. ÿ ÿÿrcCs`tdƒ}t|dggdgddggdt d¡gd}t|jdj|jƒt|jdjt d¡ƒdS)Nrr<r‘r’rr(rA)rrr)r'rr—rKrfrrrÚ test_iter_allocate_output_simple´s  ÿrc    CsŽtdƒ}t|dgddgdgddggƒ}|Zd|jddd…<| ¡|D] }|dd|d    d7<qJt|jd|dƒW5QRXdS)
NrrµÚdelay_bufallocr<r’r rA.r)rrr—Úresetr©r/rr?rrrÚ,test_iter_allocate_output_buffered_readwrite¾s ÿr!c    Cs†tddd dd¡}t|dggdgddggdt d    ¡gd
}t|jd j|jƒt|jd j|jƒt|jd jt d    ¡ƒtd dd ddd ¡j    }t|dggdgddggdt d    ¡gd
}t|jd j|jƒt|jd j|jƒt|jd jt d    ¡ƒtd dd ddd ¡ 
dd ¡}t|dggdgddggddt d    ¡gd}t|jd j|jƒt|jd jdƒt|jd jt d    ¡ƒdS)NrrÕr&r:r7r<r‘r’rr(rAr„r8rrQ)rSr%)rÒrÓr8) rrGrr)r'rr—rKr˜rHrIrfrrrÚ!test_iter_allocate_output_itorderËs. ÿ ÿ
  ýr"cCsŠtddd ddd¡}td|ggddgd    ggt d
¡dgd dd gdgd }t|jd jdƒt|jd jdƒt|jd jt d
¡ƒdS)Nr„rÕr&r:r7r8r‘r’r<rîrAr©r%r”r‹)r8rÔrÓ)    rrGrr)r'rr—rKr˜rfrrrÚ test_iter_allocate_output_opaxesæs  þr$cCs„ttdgddtdgdddggdggddd    ggƒ}t|jdt d¡ƒttdgd
dtdgdddggdggddd    ggƒ}t|jdt d¡ƒttdgddtddddggdggddd    ggƒ}t|jdt d¡ƒttdgd dtdd
ddggdggddd    ggƒ}t|jdt d ¡ƒttdgd dtd d
ddggdggddd    ggƒ}t|jdt d ¡ƒdS)Nr7rr&rr½r<r:r‘r’rÕrîrïrð)rrrrÊr)r'rŽrrrÚ)test_iter_allocate_output_types_promotionñs( ÿ ÿÿÿÿr%cCsštdgdd ¡}t|dggdgddggƒ}t|jd|jdƒt||dggdgdgddggƒ}t|jd|jd    kƒt|jd d
¡|jd    ƒdS) Nr7rîr&r<r‘r’rrAr:ú=)rr*rrrÊrrfrrrÚ*test_iter_allocate_output_types_byte_orders
 ÿ ÿr'cCsbtdddt d¡t d¡ggddggdggdƒ}t|jd    jt d
¡ƒt|jd    jd    ƒdS) NrAgffffff@ror7r‘r’r<r8rÚ
complex128)rr)rÛr(rr—r'rrŽrrrÚ&test_iter_allocate_output_types_scalars
ÿr)cCsGdd„dtjƒ}t ddgddgg¡ |¡}t d¡ dd¡j}t||dggdgdgdd    ggƒ}tt    |ƒt    |j
dƒƒt t    |ƒt    |j
dƒk    ƒt|j
dj d
ƒt||dggdgdgdd    d ggƒ}tt    |ƒt    |j
dƒƒt t    |ƒt    |j
dƒk    ƒt|j
dj d
ƒdS) Nc@seZdZdZdS)z4test_iter_allocate_output_subtype.<locals>.MyNDArrayéN)Ú__name__Ú
__module__Ú __qualname__Z__array_priority__rrrrÚ    MyNDArraysr.rAr:r7r8r<r‘r’©r:r:Z
no_subtype) r)ZndarrayrrörrGrHrrÚtyper—rrK)r.r/rºrrrrÚ!test_iter_allocate_output_subtypes" ÿ ÿÿr1c Cs¤tdƒ}ttt|dggdgddggƒttt|dggdgddggƒttt|dgdgddgƒtttddggddgddggdt d¡gdtd    d
d  d d d¡}ttt|dggdgddggdt d¡gddtjdggdttt|dggdgddggdt d¡gddd dggdttt|dggdgddggdt d¡gddd ddggdtd    d
d  d d d¡}ttt|dgdgdgddggdt d¡gddtjd ggddS)Nrr‘r’r<rµr rr(r„rÕr&r:r7r8rrAr#Ú    reduce_ok)    rr    r¶rr™r)r'rGr¢rrrrÚ test_iter_allocate_output_errors0sL ÿ ÿÿÿ ý  ý   ý  ý  ýr3cCshtjdgdgd}|jdjdks&t‚|jt d¡fks<t‚tjdgdgdd}|jdjdksdt‚dS)NÚint64r(rrr9)r%r•)r)rr—rKrŸrÊr'rŽrrrÚtest_all_allocated[s
r5cCs²tdƒ ddd¡}t|dgƒ}| d¡tdd„|Dƒ|dd…d    dd…f ¡ƒ|ddd
…dd…dd…f}t|dgƒ}| d    ¡td d„|Dƒ|d    dd…dd…f ¡ƒdS) Nr„r:r7r8rrAcSsg|]}|‘qSrrr=rrrr@isz)test_iter_remove_axis.<locals>.<listcomp>rr;cSsg|]}|‘qSrrr=rrrr@ns)rrGrZ remove_axisrrUrfrrrÚtest_iter_remove_axisds 
* 
r6cCstdƒ ddd¡}t|dgƒ}t|jdƒt|jdƒt|jdjdƒdd    „|Dƒ}| ¡d
d    „|Dƒ}t||ƒt|jd ƒtt    d d „|ƒt|jdjdƒ| 
¡t|j dƒt|djt ƒƒ|  ¡t|j dƒt|djdƒt|jtdƒƒdS)Nr„r:r7r8rr9rcSsg|]}|‘qSrrr=rrrr@{sz;test_iter_remove_multi_index_inner_loop.<locals>.<listcomp>cSsg|]}|‘qSrrr=rrrr@}srAcSs|jSr©rKrŽrrrr¬r­z9test_iter_remove_multi_index_inner_loop.<locals>.<lambda>r†)rrGrrrrKÚitviewsZremove_multi_indexr    r™rrrFZenable_external_looprÜ)r/rZbeforeÚafterrrrÚ'test_iter_remove_multi_index_inner_loopps&   
   r:cCsÔd}tdƒ ddd¡}gdgfD]¬}t|||d}tt|ƒttdƒƒƒd|_tt|ƒttddƒƒƒt||d|d    }tt|ƒttdƒƒƒd|_tt|ƒttddƒƒƒt|ddd
…|d|d    }tt|ƒttdƒƒƒd |_tt|ƒttd dƒƒƒt|ddd
…ddd
…f|d |d    }tt|ƒttdƒƒƒd |_tt|ƒttd dƒƒƒt|ddd…ddd
…f||d}tt|ƒttdƒƒƒd|_tt|ƒttddƒƒƒ| ¡d|_tt|ƒttddƒƒƒq dS)Nr5r„r8r7r:rµrÆrWrr;rxrQé rAé)    rrGrrrÚlistrCrr)rÇr/r\rrrrÚtest_iter_iterindexs4$"r>cCs”d}tddd ddd¡}|jdd    }t|d
gd gd|d }t|jd ƒtdd„|Dƒ|ƒdD]:}||_t|j|ƒtdd„|Dƒ||d|d…ƒq`t|d
dgd gdd|d}t|jd ƒtdd„|Dƒ|ƒdD]:}||_t|j|ƒtdd„|Dƒ||d|d…ƒqÚdd„}t|d
ddgd gdd|d}t|jd ƒt||ƒ|ƒdD]6}||_t|j|ƒt||ƒ||d|d…ƒqXdS)Nr5r„rÕr&r8r7r:rWrRrr<r©rr„cSsg|] }|d‘qSrärr=rrrr@¹sz'test_iter_iterrange.<locals>.<listcomp>)r?rl)r7r„)r5r5)rrÿ)r<r„cSsg|] }|d‘qSrärr=rrrr@½srrArµr½)rSr%rÇcSsg|] }|d‘qSrärr=rrrr@ÂscSsg|] }|d‘qSrärr=rrrr@ÆscSs*tjgdd}|D]}t ||f¡}q|S)Nr½r&)r)rÚ concatenate)rÚvalr?rrrÚ    get_arrayÈsz&test_iter_iterrange.<locals>.get_arrayr€)rrGrUrrr³)rÇr/Za_fortrÚrrBrrrÚtest_iter_iterrange¯sF ÿ  &ÿ  & þ  rDc
Cs(g}| tjddd ddd¡j ¡ ¡¡| tjddd¡tjd    d
dd d…}d |_tjd d d|dd…<| |¡| tjdd d dddd¡j¡|D]€}dD]v}g}t    |ddgdddggdd|d}|j
st |dj |kƒ| |d  ¡¡| ¡qÒtt |¡|jddƒqªq¢dS)Nr„rór&r:r7r8ryr)éArÄrArÕrÓéxr5)rAr:r7r5rwrzrÓérµr€r<rÂrÅrQrÁ)rSr$rÇrrR)rr)rrGrHr*rÈr£r'rrrr‚r.rrr@rU)Úarraysr/rÇrèrrrrÚtest_iter_bufferingØs8
ÿÿ
"
 
ü
rIc    CsŒt d¡ ddd¡j ¡ ¡}t|dgdddggd    d
d d }d }|&|jsf||d <|d7}| ¡qFW5QRXt    |j
d
dt d¡ƒdS)Nr„r:r7r8rµr rÂrÅrÁrQrÓ)r$rSrÇrrArR) r)rrGrHr*rÈrrrrrUr rrrÚtest_iter_write_bufferingõs
ürJc    Cst d¡}tjddd}t||gddddgd    gd
dd }t|jƒttd d „|ƒttdd „|ƒttdd „|ƒdd„}tt||ƒ| ¡t|j ƒt|j    dƒ|Zt|ddƒd|d<t|dd…ddgƒtdd„|Dƒt
t t dƒdgdƒƒƒW5QRXdS)NrrArr&rµrrr2r r"r#cSs|jSrr«rŽrrrr¬r­z3test_iter_buffering_delayed_alloc.<locals>.<lambda>cSs|dSr°rrŽrrrr¬r­cSs |dd…S)Nrr:rrŽrrrr¬r­cSs d|d<dSr°rrŽrrrÚ assign_itersz6test_iter_buffering_delayed_alloc.<locals>.assign_iterrbrr:cSs$g|]}|dd|ddg‘qS)rrrArr=rrrr@ sz5test_iter_buffering_delayed_alloc.<locals>.<listcomp>) r)rrrÚhas_delayed_bufallocr    r™rrrr=ÚziprC)r/rºrrKrrrÚ!test_iter_buffering_delayed_allocs*
ý
   rNc    Cs|tjddd}t|ddgdddggd    t d
¡gd d }| |D]}|d d9<q@W5QRXt|dtjdddƒdS)Nryrr&rµr€r rÂrÅr¾r½r7©r$r%rÇ.r:)r)rrr'r©r/rÚvrrrÚtest_iter_buffered_cast_simple"s
 
 
ürRc
Cs*tjddd ¡ ¡}t|ddgdddggd    t d
¡ ¡gd d }| |D]}|d d9<qLW5QRXt|dtjdddƒtƒ–}| tj    ¡tjdd
d ¡ ¡}t|ddgdddggdt d¡ ¡gd d }| |D]}|d d9<qäW5QRXt|dtjdd
dƒW5QRXdS)Nryrr&rµr€r rÂrÅr¾r½r7rO.r:r"rò)
r)rr*rÈrr'rr ÚfilterZComplexWarning)r/rrQÚsuprrrÚ#test_iter_buffered_cast_byteswapped1s0
 
ü 
 
ürUc    Cs0tjddd ¡ ¡}|d7}t|ddgddd    ggd
t d ¡gd d }| |D]}|dd9<qPW5QRXt|dtjddddƒtjddd}|d7}t|ddgddd    ggd
t d ¡ ¡gd d }| |D]}|dd9<qØW5QRXt|dtjddddƒtjdtjd ¡ ¡}|d7}t|ddgddd    ggd
t d ¡gd d }|"|D]}|dd9<qfW5QRXt|dtjdtjddƒtjdtjd ¡ ¡}t|ddgddd    ggd
t d¡gdd }|"|D]}|dd9<qðW5QRXt|dtjdtjdƒdS)Nryròr&rñrµr€r rÂrÅr¾rór7rO.r:y@rrv)    r)rr*rÈrr'rZ clongdoubleZ
longdoublerPrrrÚ+test_iter_buffered_cast_byteswapped_complexOs^
 
 
ü
 
ü
 
 
ü
 
 
ürVcs˜ddddg}tjdddd‰tˆd    d
gd gd |d }dd„|Dƒ}t|dddƒt|dddƒt|dddgdgdƒt|dddƒt|dddƒt|dddƒt|dddgdgdƒt|dddƒt|djt |¡ƒddddg}tjddd‰dddddgdddggdfˆd<dddddgdddggdfˆd<dddddgdddggdfˆd<trt ˆd¡}tˆd    d
gd gd |d }dd„|Dƒ}t|dddƒt|dddƒt|dddgdgdƒt|dddƒt|dddƒt|dddƒt|dddgdgdƒt|dddƒt|djt |¡ƒdgd\}}}tržtt ˆd¡|ƒdg}tj    ddg|d‰tˆd    d
gd gd dd }tdd„|Dƒd d!gƒdddg}tj    d"d#g|d‰t
t ‡fd$d%„ƒdddg}d&d'd(g}tj    d)d*g|d‰tˆd    d
gd gd |d }t|djt |¡ƒtd+d„|Dƒtj    d)|dtj    d*|dgƒdS),N©r/r©rºrð©r»ròrŠ©ràrâr7rr&çà?rµrãr<r"r#cSsg|]}t |¡‘qSr©r)rr=rrrr@Šsz;test_iter_buffered_cast_structured_type.<locals>.<listcomp>rr/rºr»r:ràrArªrerârÚcSsg|] }| ¡‘qSr)r.r=rrrr@ s)ç@r…rÕcSsg|] }|d‘qSrärrårrrr@´sr5rw)r]rvÚtest)rwryrzcstˆddgdgdddS)Nrµrãr<r"rÕr#)rrrrrr¬¹sþz9test_iter_buffered_cast_structured_type.<locals>.<lambda>)ràÚu2rë)rºr½©rAr:r7©r8r5rcSsg|]}t |¡‘qSrr\rårrrr@Æs) r)rrrr'r£r r+r,rr    r¶)Úsdtrrèrçr?Úsdt1Úsdt2rrrÚ'test_iter_buffered_cast_structured_types~ þ    þþ
 
 
þ  ÿÿrec
Cs|dddg}ddg}tjddg|d}d    D]N}tjd
d gd d}t t¡(t||fd dg||gdd|gdW5QRXq(dS)NrWrXrZ)rºrâ)r/r½r`rar&)r r<r‘rAr:zi,irµrãr"zf,fr#)r)rÚpytestÚraisesr¶r)rcrdr/ZintentZ
simple_arrrrrÚ<test_iter_buffered_cast_structured_type_failure_with_cleanupËs
 ÿrhc
Cs˜t t¡(tjtjdddfdgddgdW5QRXtjtjdddfdgd    gddgd
}t t¡&|t|ƒ}d|d <W5QRXW5QRXdS) Nr/ZS1r&rr"rµ)r%r$r\rAr‘)r%Úop_flagsr$r\.)rfrgr™r)rrr)r1ÚbufrrrÚtest_buffered_cast_error_pathsÞs ÿÿ rkzCannot start subprocesszPyPy seems to not hit this.cCs4t d¡}tjtjd|gtjdd}d|ks0t‚dS)Na:
        import numpy as np
    
        it = np.nditer((np.array(1, dtype="i"),), op_dtypes=["S1"],
                       op_flags=["writeonly"], casting="unsafe", flags=["buffered"])
        buf = next(it)
        buf[...] = "a"
        del buf, it  # Flushing only happens during deallocate right now.
        z-cT)ÚstderrÚtextr™)ÚtextwrapÚdedentÚ
subprocessÚ check_outputr+Ú
executableÚSTDOUTrŸ)ÚcoderrrrÚ)test_buffered_cast_error_paths_unraisableìs 
    ÿruc    Cs¸dg}dg}tjd|d}t d¡|d<t|ddgd    gd
|d }t|d jt |¡ƒt|ttdƒƒƒD]\}}t    t 
|d|k¡ƒqhd g}dg}tjd|d}t d¡|ddd…d d f<t|ddgdgd
|d }|\t|d jt |¡ƒd }|D]6}t    t 
|d|k¡ƒ|dd d7<|d7}qúW5QRXt|dt d¡  ddd¡dƒdg}dg}tjd|d}t d¡|ddd…d d d f<t|ddgdgd
|d }|Rt|d jt |¡ƒd }|D],}t|d|ƒ|dd7<|d7}qÒW5QRXt|dt d¡  dddd¡t  d¡dƒdg}dg}tjd|d}t d¡|ddd…d d d f<t|ddgd    gd
|d }t|d jt |¡ƒd }|D]}t|d|ƒ|d7}q¦dg}dg}tjd|d}t d¡|ddd…d d d f<t|ddgd    gd
|d }t|d jt |¡ƒd }|D]}t|d|ƒ|d7}q2dg}dg}tjd|d}t d¡  dddd¡|d<t|ddgd    gd
|d }t|d jt |¡ƒd }|D]$}t|d||dƒ|d7}qºdg}dg}tjd|d}t d¡  dd¡|d<t|ddgd    gd
|d }t|d jt |¡ƒd }|D],}t|d||ddd…ƒ|d7}qFdg}dg}tjd|d}t d¡  dd¡|d<t|ddgd    gd
|d }t|d jt |¡ƒd }|D]J}t|ddd…||dƒt|ddd…d d d d gƒ|d7}qÚdg}dg}tjd|d}t d¡  dd¡|d<t|ddgd    gd
|d }t|d jt |¡ƒd }|D]B}t|dd ||dƒt|dd||dƒ|d7}qŒdg}d g}tjd|d}t d¡  ddd¡|d<t|ddgd    gd
|d }t|d jt |¡ƒd }|D]ˆ}t|ddd…d f||ddd…d fƒt|ddd…df||ddd…d fƒt|dddd…fd d gƒ|d7}q8d!g}d g}tjd|d}t d¡  ddd¡|d<t|ddgd    gd
|d }t|d jt |¡ƒd }|D]ˆ}t|ddd…d f||ddd…d fƒt|ddd…df||ddd…dfƒt|dddd…fd d gƒ|d7}q*dS)"NrW)r/r½©r7r:r:r‰r&rr/rµrãr<r"r#r)r/rârk)r/rârvr r:rA)r/rârc)rAr7r:r:)r/rrc)r/rrvéHr7)r/r½r‰)r/rrdrœ)r/r½rd)r/rr‰ro)r/rr/)r/r½)r:rA)r/r)r7r:)r/r½rŠ) r)r£rrrr'rMr=rCrrrGrš)rcrdr/rr?ÚcountrrrÚ test_iter_buffered_cast_subarrays2þþ"þ.þ þ þ þ þ þ þ.. þ..rycCst d¡ ddd¡}t d¡ ddd¡}ttt||gddgdgd    ggd
d t||gddgd gd    ggd
d t d¡ ddd¡}t||gddd gdgd    ggd
d t d¡ ddd¡}ttt||gddgdgd    ggd
d t d¡ ddd¡}ttt||gddgdgd    ggd
d dS)Nrr:r7rArorµr€r r‘rQrRr<r2r8)r)rrGr    r™rrárrrÚ test_iter_buffering_badwriteback¨s8 
ý
þ
þ 
ý 
ýrzcCsôtjdddgtjd}t|jt d¡ƒttt|dgdgdd    t|dgdgd
d    }t|d d ƒt|d jt d
¡ƒtjdddgtjd}t|jt d ¡ƒttt|dgdgdd    t|dgdgdd    }t|d dƒt|d jt d¡ƒdS)NÚabcr/Zabcdr&ZS4rµr<ZS2r(ZS6rsabcZU4ZU2ZU6)    r)rÚbytes_rr'r    r¶rZunicode_rfrrrÚtest_iter_buffering_stringÊs ÿÿr}cCs4t d¡}t|dddgdd}t|dj|jƒdS)NérµZ    growinnerr€r5rÆr)r)rrrr‚rfrrrÚtest_iter_buffering_growinnerÜs
 
 ÿrc sbt d¡dd…‰dddddg}d    d
g}d d gd d gg‰tˆjg}‡‡fdd„}|ƒD]\}}}tj| ¡dg||||d}|Jd|jdd<| ¡||_|D]\}}    |    |     tj
¡7}    q¤|jd}
W5QRXt ddƒD]~} tj|dg|||| |d} | Ld| jdd<|  ¡|| _| D]\} }||      tj
¡7}q | jd}W5QRXt ||
ƒqÜqVdS)Niæéóéôrµrrr2rã)r<)r r’)rrAr:)rrAr;)rr;r;c3sntddƒD]^}t|dƒD]N}ˆD]D}|ˆj|ˆjˆjf}tjj ˆd|¡}dD]}|||fVqRq qq
dS)Ni÷ÿÿÿry)r7r7r7ri)rCrr)ÚlibÚ stride_tricksÚ
as_strided)ÚxsZysr”r˜rÚskip©r/Z op_axes_listrrÚ
get_paramsïsz3test_iter_buffered_reduce_reuse.<locals>.get_params)r”r\rir%rr;.é)r”r\rirÇr%) r)rÚfloatr'rr.r—rrrÚint_rCr)r\rir%rˆrr”r†Znditer2Za2_inZb2_inZcomp_resÚbufsizeZnditer1Za1_inZb1_inrrr‡rÚtest_iter_buffered_reduce_reuseåsH
 þ 
þ rc    Cs¦t d¡ ddd¡}t d¡ ddd¡}t d¡ dd¡}t|||ggdd    gdgdggƒttt|||ggdgdd    gdggƒttt|||ggdgdgdd    ggƒdS)
Nr„r:r7r8rrAror<r)r)rrGrr    r™)r/rºr»rrrÚtest_iter_no_broadcast    s ÿÿÿÿrŽc@sLeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dS)ÚTestIterNestedc    stdƒ ddd¡}t |dgddgg¡\}‰‡fdd„|Dƒ}t|dddddd    gd
d d d ddggƒt |ddgdgg¡\}‰‡fdd„|Dƒ}t|ddgddgdd    gd
d gd d gddggƒt |ddgdgg¡\}‰‡fdd„|Dƒ}t|dddgddd    gd
d dgd d dggƒdS)Nror:r7rrAcsg|] }tˆƒ‘qSr©r=©r>Ú_©rrrr@/    sz-TestIterNested.test_basic.<locals>.<listcomp>r8r5rrvrwrxryrzcsg|] }tˆƒ‘qSrrr‘r“rrr@3    scsg|] }tˆƒ‘qSrrr‘r“rrr@7    s©rrGr)Ú nested_itersr©Úselfr/rrèrr“rÚ
test_basic*    s&.zTestIterNested.test_basicc    s&tdƒ ddd¡}t |dgddgg¡\}‰‡fdd„|Dƒ}t|dddddd    gd
d d d ddggƒt |ddgdgg¡\}‰‡fdd„|Dƒ}t|ddgddgdd    gd
d gd d gddggƒt |ddgdgg¡\}‰‡fdd„|Dƒ}t|dddgddd    gd
d dgd d dggƒtj|dgddggdd\}‰‡fdd„|Dƒ}t|dddddd    gd
d dd d dggƒtj|ddgdggdd\}‰‡fdd„|Dƒ}t|ddgd
d gddgd d gdd    gddggƒtj|ddgdggdd\}‰‡fdd„|Dƒ}t|dddgd
d dgddd    gd d dggƒdS)Nror:r7rrAcsg|] }tˆƒ‘qSrrr‘r“rrr@@    sz/TestIterNested.test_reorder.<locals>.<listcomp>r8r5rrvrwrxryrzcsg|] }tˆƒ‘qSrrr‘r“rrr@D    scsg|] }tˆƒ‘qSrrr‘r“rrr@H    srQrRcsg|] }tˆƒ‘qSrrr‘r“rrr@M    scsg|] }tˆƒ‘qSrrr‘r“rrr@Q    scsg|] }tˆƒ‘qSrrr‘r“rrr@U    sr”r–rr“rÚ test_reorder:    s&&.*&.zTestIterNested.test_reorderc    sBtdƒ ddd¡ddd…ddd…ddd…f}t |dgddgg¡\}‰‡fdd„|Dƒ}t|ddddd    d
gd d d dddggƒt |ddgdgg¡\}‰‡fdd„|Dƒ}t|ddgddgd    d
gd d gd dgddggƒt |ddgdgg¡\}‰‡fdd„|Dƒ}t|ddd    gddd
gd d dgd ddggƒtj|dgddggdd\}‰‡fdd„|Dƒ}t|dddd d d gd
d    ddddggƒtj|ddgdggdd\}‰‡fdd„|Dƒ}t|ddgdd gd d gd
d    gddgddggƒtj|ddgdggdd\}‰‡fdd„|Dƒ}t|ddd gdd d gd
ddgd    ddggƒdS)Nror:r7r;rrAcsg|] }tˆƒ‘qSrrr‘r“rrr@^    sz1TestIterNested.test_flip_axes.<locals>.<listcomp>r8r5rrvrwrxryrzcsg|] }tˆƒ‘qSrrr‘r“rrr@b    scsg|] }tˆƒ‘qSrrr‘r“rrr@f    srQrRcsg|] }tˆƒ‘qSrrr‘r“rrr@k    scsg|] }tˆƒ‘qSrrr‘r“rrr@o    scsg|] }tˆƒ‘qSrrr‘r“rrr@s    sr”r–rr“rÚtest_flip_axesX    s&.&.*&.zTestIterNested.test_flip_axescsætdƒ dd¡}tdƒ dd¡}t ||gdgdgg¡\}‰‡fdd„|Dƒ}t|ddgddgddggddgddgddgggƒt ||gdgdgg¡\}‰‡fdd„|Dƒ}t|ddgddggddgddggddgddgggƒdS)Nr:rAr7rcsg|] }tˆƒ‘qSrrr‘r“rrr@|    sz1TestIterNested.test_broadcast.<locals>.<listcomp>csg|] }tˆƒ‘qSrrr‘r“rrr@€    sr”)r—r/rºrrèrr“rÚtest_broadcastv    s2zTestIterNested.test_broadcastc
stddd dd¡}tj|dgdggdd    gd
d \}‰tˆdjt d
¡ƒ‡fd d „|Dƒ}t|dddgdddggƒd}tddd dd¡}tj|dgdggddgdd
d\}‰|jˆZtˆdjt d
¡ƒ|D]}ˆD]}|dd7<qâqÚt|dddgdddggƒW5QRXW5QRXt|dddgdddggƒtddd dd¡}tj|dgdggddgdd
d\}‰tˆdjt d
¡ƒ|D]"}ˆD]}|dd7<qœq”t|dddgdddggƒ| ¡ˆ ¡t|dddgdddggƒdS)NrrÕr&r:r7rrAr<r.r½)rir%csg|] }tˆƒ‘qSrrr‘r“rrr@Œ    sz2TestIterNested.test_dtype_copy.<locals>.<listcomp>r8r5rr r!r¾)rir$r%.)rrGr)r•rr'Úclose)r—r/rrèr?rürr“rÚtest_dtype_copyƒ    sHþ
ý
 .ý
zTestIterNested.test_dtype_copycCs’tddd dd¡}tj|dgdggdgd    gd
d d \}}t|djt d ¡ƒ|D]}|D]}|d d7<q\qTt|dddgdddggƒdS©Nrrr&r:r7rrArµr r¾r½)r\rir$r%.r8r5©rrGr)r•rr'©r—r/rrr?rürrrÚtest_dtype_buffered­    sü
z"TestIterNested.test_dtype_bufferedcsBt d¡ ddd¡}t |gdddgg¡\}‰‡fdd„|Dƒ}t|dddddd    d
d d d ddg gƒt |dddggg¡\}‰‡fdd„|Dƒ}t|dgdgdgdgdgd    gd
gd gd gd gdgdgg ƒt |ddggdgg¡\}‰}g}|D]"}ˆD]}| dd„|Dƒ¡qøqðt|dddgddd    gd
d dgd d dggƒdS)Nror:r7rArcsg|] }tˆƒ‘qSrrr‘r“rrr@¿    sz*TestIterNested.test_0d.<locals>.<listcomp>r8r5rrvrwrxryrzcsg|] }tˆƒ‘qSrrr‘r“rrr@à   scSsg|]}|‘qSrr)r>Úzrrrr@Ê    s)r)rrGr•rr)r—r/rrèÚkr?rürr“rÚtest_0d¼    s$:zTestIterNested.test_0dc
Cs²tddd dd¡}tj|dgdggdgd    gd
d d \}}|P|@t|djt d ¡ƒ|D]}|D]}|d d7<qhq`W5QRXW5QRXt|dddgdddggƒdSržrŸr rrrÚ%test_iter_nested_iters_dtype_bufferedÍ    sü
 (z4TestIterNested.test_iter_nested_iters_dtype_bufferedN) r+r,r-r˜r™ršr›rr¡r¤r¥rrrrr(    s *rc    Cszt d¡}ttt|dggdgddggdgdggdt d¡ dd    ¡}ttt|dgd
gdgddggdd gddggddS) Nrr<r r’rr;rúr:r7r€rA)r)rr    r™rrGrrrrÚtest_iter_reduction_errorÝ    s
 
þ þr¦c
Csœt d¡}t|dgdgdgddggdgdggd}|Zd|jd    d
<|D]\}}|d
|7<qJt|jd    jdƒt|jd    t |¡ƒW5QRXt d¡ d d ¡}t|dgdd gdgddggdd    gddggd}|”d|jd    d
<t|d    jdƒt|d    j    dƒ|D]2\}}t
t |ƒƒD]}||||7<q"qt|jd    jdƒt|jd    t |¡ƒW5QRXt  d¡}t|dgdd gdgddggdddd    ggd}t|dgdd ddgdgddggdddd    ggdd}|²|¢|jd      d¡|jd      d¡| ¡|D]}|d    d
|d7<q|D]}|d    d
|d7<q8t|jd    |jd    ƒt|jd     ¡|jƒW5QRXW5QRXdS)Nrr2r<r r’rr;rúrA.r:r7r€r‰rb)r:r7r5rµrry)r”rÇ)r)rrr—rrÚsumrGrKr˜rCrDršÚfillrr‚)r/rr?rürZit1r2rrrÚtest_iter_reductioné    s`
 
þ   þ  
  þ ÿ  ý r©c
    Cs t d¡}tjddd ¡ ¡}t||gddgdgdd    ggd
gd ggd }|Nt|d jt d¡ƒt|d j|jkƒ|D]\}}|d|7<q~W5QRXt|t     |¡ƒt d¡ 
dd¡}tjd
d
gdd ¡ ¡}t||gdddgdgdd    ggd
d gd
d ggd }|^t|d j dƒt|d j dƒ|D]2\}}t t|ƒƒD]}||||7<qLq8W5QRXt|tj    |d dƒt d¡d }tj|dgddddgdgddggd d
gd d ggdd}|4|jd  d
¡| ¡t|d
d dd dgƒW5QRXt dtj¡dd…d dd…d d…f d dd
¡}t |j¡ 
|j ¡|d<tjdtjd 
dd¡}| ¡}    |ddd…dd…df}t ||gdddgdgdgg¡}| |D]\}}| d¡q¶W5QRXt|d dd…|    d dd…ƒt|ddd…dƒdS)Nrgr½r&r2rµr<r rÂrr;rúrA.r:r7r€rerb)Úaxisrr’r/r“)rvr;rwr8rzr5rÓ)r)rrrÈr*rrr'rr§rGrKr˜rCrDr—r¨rršrõZ    transposer‚r.)
r/rºrr?rürrêr1Zy_baseZ y_base_copyrrrÚtest_iter_buffering_reduction$
sd
 
þ  þ &
 
 ü 0
 
þ r«c    Cs|t d¡}t d¡}tj||gdddgdgdggdd    }|d
d „|Dƒ}W5QRXt|dd dd gƒtt|ƒ|jƒdS) N)r:rv)rArvr2r€rµr<r r5)r\rirÇcSsg|]\}}|jd‘qSrbr7rûrrrr@p
szDtest_iter_buffering_reduction_reuse_reduce_loops.<locals>.<listcomp>r:)r)r£rrr§r‚)r/rºr1ZbufsizesrrrÚ0test_iter_buffering_reduction_reuse_reduce_loopsd
s
 
 
þr¬c    Cst d¡}t d¡}t dddgdddgg¡}t dddg¡}tjdddgdd}tjdddgd    d}tjdddgd
d}ttt||ggd d gd ggƒttt||ggd d gd dggƒttt||ggd gd dd ggƒttt|||ggd d gd dgd dggƒttt||ggd gd dggƒttt|||gdgd gd d gd dggƒt |||gdgd gd d gd dgg¡ttt|||gdgd gd d gd dggƒtj||gdgd d gd dggd
dgddtttj||gdgd d gd dggd
dgddtttj||gdgd d gd dggd
dgdddS)NrŠreTFrrAÚu1r&rÄrr Ú writemaskedr<Ú    arraymaskr2rµr¾r )r)r£rr    r™rr¶)r/rºr Úm2Zm3Zmbad1Zmbad2rrrÚtest_iter_writemasked_badinputt
s€
 
 ÿÿÿþÿ ÿþÿþÿþÿÿüÿüÿür±cCs&z
|jWntk
r YdSXdS)NTF)r8r™)ÚiteratorrrrÚ _is_buffered·
s
 
r³r/rer½r&)é”&r*r:)r8i8é|r7)rxr7)r´r~r5r;c    Cs¦|j}|dd}tj|td}dddg||d<t ||ggddgd    d
gg¡}||D]\}}d |d<qZW5QRXt|t d d d g||¡ƒt ||gd gddgd    d
gg¡}d}|,|D] \}}d |d<t ||¡rÀd}qÀW5QRX|st|t d d d g||¡ƒn$t|t d d d g||¡ƒd |d<tj||gd gddgd    d
ggddgdd}||D]\}}d|d<qhW5QRXt|t ddd g||¡ƒdS)Nr;r7r&TF.r r®r<r¯rArµrÚrðr"r )rKr)ÚemptyÚboolrrZ broadcast_toZmay_share_memory)r/rKZrepsZmskr1r?r Z is_bufferedrrrÚtest_iter_writemasked¾
sN   ÿÿ ÿÿ  ÿü r¸ÚmaskÚ    mask_axes)rAr8r·rAr8rc    Csnt d¡}dg}dddg}ddg}|dkr0d}n |dd    gg}ttƒ tj||f|||g|d
W5QRXdS) Nr6r2r¯r r’r‘r®rrA)r\rir”)r)r£r    r™r)r¹rºrZitflagsZ
mask_flagsZa_flagsr”rrrÚ%test_iter_writemasked_broadcast_error s
 
 
ÿr»cCst d¡ d¡}| ¡}tjjdddd t¡}tj||gddgdd    gd
d ggd d gd}tƒ}t    rnt
  |¡}|D]\}}d|f|d<qr~~~t    r®t
  |¡|t  |¡ks®t ‚t||||ƒ||t d|f|j¡k ¡sæt ‚~t    rþt
  |¡|ksþt ‚dS)Ni'z>i,Orr:)r‚rµrãr r®r<r¯z<i,Oú?r(r7.)r)rrr.ÚrandomÚrandintr·rÚobjectr r+r,Z count_nonzerorŸrrr'r)rÚoriginalr¹r1Z    singletonrxrjZmask_bufrrrÚtest_iter_writemasked_decref s,ÿý
 "rÁc CsJt t d¡¡}dddddddd    d
d d d dg }|D]}ttt||ƒq2dS)Nr:rÜrKr—r8rLr-Zhas_multi_indexZ    has_indexrÊrZnoprr©r)rršr    ÚAttributeErrorÚdelattr©r1ÚattrÚsrrrÚ)test_iter_non_writable_attribute_deletion= s
þrÈcCs8t t d¡¡}ddddg}|D]}ttt||ƒq dS)Nr:rrr³rrÂrÅrrrÚ%test_iter_writable_attribute_deletionG s rÉcCsTt t d¡¡}z|d=|dd…=Wn*tk
r8Yntk
rNt‚YnXdS)Nr7rAr:)r)rršr¶rrŸ©r1rrrÚtest_iter_element_deletionN srËcCsHtjdddgdfddgd}|D] \}}|d|d<|d|d<q t|jdddgddgd    d
ggƒtjdddggdfddgd gdd gd }|D] \}}|d|d<|d|d<qt|jdddgddgd    d
ggƒtjddddgd}|D]:\}}}|||d<|||d<|||d<|||d<qìt|jdddgddggƒdS)NrAr7rÿ)rÕrdr(rr:r8éér2)r;r)r%r\r”)ryr:N)rÕr/rhrirjrkrwror5)r)rrr—)r1r/rºr»rrrÚ test_iter_allocated_array_dtypesX s(  "ÿ  "   rÎc    Csžtddgdgdggdƒ}t|jdƒtt|ƒdƒt|jdƒt|jdƒttt|ƒ| ¡tt|ƒdƒttt|ƒtt     
d¡dgdggdgd    }t|jdƒtt |ƒd
ƒtt     
d¡dgdggdgdd }t|jdƒtt |ƒd
ƒtt ƒ"tt     
d¡dgdggdd W5QRXd dddg}t    j ddd}t|ddgdgd|d}t|ƒ}t|ddƒt|ddƒt|ddgdgdƒt|ddƒdS)Nr:r7rr<rrŠrr5rúrAr“r–rWrXrYrZr[rr&rµrãr"r#r/rºr»rà)rrrrrrr    Ú StopIterationrr)rrDr™r)rrbr/rèrrrÚ test_0d_iters s>      ÿ 
& ÿrÐcsŽttdd„ƒt tjd¡ dd¡ t¡‰ˆ t¡‰dˆdd…df<tt‡‡fdd„ƒGdd„dƒ}tttj    j
tj |ƒ|ƒgdd    ƒdS)
NcSstjddddS)N)ihBr:rr&)r)r£rrrrr¬Ÿ r­z*test_object_iter_cleanup.<locals>.<lambda>ryr;cs0t ˆdd…ddd…fˆdd…ddd…f¡S)Nr;)r)Úaddr©rZoarrrrr¬¥ r­c@seZdZdd„ZdS)z#test_object_iter_cleanup.<locals>.TcSs tdƒ‚dS)NZ    Ambiguous)r¶)r—rrrÚ__bool__ª sz,test_object_iter_cleanup.<locals>.T.__bool__N)r+r,r-rÓrrrrrH© srHrâr&) r    r¶r)rÚBUFSIZErGrr r¿Ú
logical_orÚreducer)rHrrÒrÚtest_object_iter_cleanup™ s
 
ÿr×c    CsPt ddgddgddgddgg¡ddd…}t t¡t |¡W5QRXdS)NrAr;r:)r)rrfrgr¶r§)rrrrÚtest_object_iter_cleanup_reduce¯ s, rØr)é@r8r:rW)r'rScCs<tjdtjd}tj|dt|d}t|tjddtdƒdS)NrÙr&rl)rªr'Úoutr8)r)ršÚintpr§r¿rÚfull)rrÚrrrrÚ%test_object_iter_cleanup_large_reduce· srÝcCsnt tj¡jd}tjj t d¡|fd¡}tt    t
||dd…dffƒtt    t
||dd…dffdgddS)NrGrArbrr[) r)ÚiinforÛÚmaxr‚rƒr„r£r    r™r)r‚rrrrÚtest_iter_too_large sÿràc Csd}d}||t tj¡jkr(|d7}qddg|}g}t|ƒD],}|dd…}d||d<| t |¡¡q@t|ƒ}tdƒD]&}tt    ƒt
  |d|¡W5QRXq~t
  |dd¡t|ƒD]N}tdƒD]@}t
  ||d|¡tt    ƒt
  ||dd|¡W5QRXqÈq¼dS)NrGrAr:rr;rv) r)rÞrÛrßrCrr¶rFr    r™Ú_multiarray_testsZtest_nditer_too_large)Z    base_sizeÚnumZshape_templaterHrrKÚmoderrrÚ#test_iter_too_large_with_multiindexÏ s(
 
 
räc
Csštjddd}| ¡ ¡}t|jj|jjkƒt|gddggdt d¡gd}|d|jd    dd…<W5QRXt    |dƒt|gddggdt d¡gd}z<|.t    |j
j d
ƒd    |jd    dd…<t d ƒ‚W5QRXWn YnXt    |d    ƒt    |j
j d ƒt t t|d ƒt|gddggdt d¡gd}|(|jd    }d|dd…<t|j
jƒW5QRXt    |dƒt|j
j ƒd|dd…<t    |dƒt|gddggdt d¡gd}|*||D]}d|d<qºW5QRXW5QRXt|gddggdt d¡gd}|8||D]}d|d<qW5QRXt t t|d ƒW5QRXt|gddggdt d¡gd}~||D]}d|d<qlW5QRX|j}t t|ƒdS)Nrrr&r r!rÁr#r§rFz!exit context manager on exceptionTr—é{.)r)rrÈr*rr'rÉrr—rr\r·r™r    ÚgetattrZwritebackifcopyÚ    __enter__Ú RuntimeError)r/rÌr1r?ZenterrrrÚtest_writebacksñ s„ 
ÿ
 
ÿ
 
ÿ
 
 
 
þ 
þ
þrécCs`d
dd„}d dd„}|tdƒtdƒƒ}t|tddd    ƒƒ|tdƒtdƒƒ}t|tddd    ƒƒdS) zC using a context amanger and using nditer.close are equivalent
    Nc    Ss\tj}t |||ggdgdgddgg¡}|D]\}}}||||dq,|jd}| ¡|S©Nr<r‘r’)rÚr:)r)rÑrr—rœ)    r?rürÚÚaddopr1r/rºr»rrrrÚ    add_close5 sÿ
z(test_close_equivalent.<locals>.add_closec
Ssltj}t |||ggdgdgddgg¡}|6|D]\}}}||||dq2|jdW5QR£SQRXdSrê)r)rÑrr—)r?rürÚrër1r/rºr»rrrÚ add_context? sÿz*test_close_equivalent.<locals>.add_contextr5rryr:)N)N)rCr)rìrír¢rrrÚtest_close_equivalent2 s 
 
 
rîcCsDt t d¡¡}tt|ƒdƒ| ¡ttt|ƒttt    |dƒdS)Nr7rr—)
r)rrrrrœr    rÏr™rærÊrrrÚtest_close_raisesL s
 rïcCs"t t d¡¡}tt|jdƒdS)Nr7rA)r)rrr    r¶rœrÊrrrÚtest_close_parametersS srðc    Csptjddd}| ¡ ¡}tƒF}| t¡tj|gddggdt d¡gd}~t    |j
ƒdksbt ‚W5QRXdS)    Nrrr&r r!rÁr#rA) r)rrÈr*r ÚrecordÚRuntimeWarningrr'rDÚlogrŸ)r/rÌrTr1rrrÚtest_warn_nocloseW s 
 
ÿrôrÚwin32z!Errors with Python 3.9 on WindowsrÚ    buf_dtype)rrâ)râr)úi,OzO,O)zO,ir÷ÚstepscCs”d}t ttjdƒ|¡ |¡}tj|t |¡gdddgdd}t|ƒD] }t|ƒqH~tj|t |¡gdddgdd}t|ƒD] }|     ¡q€~dS)    a
    Checks for reference counting leaks during cleanup.  Using explicit
    reference counts lead to occasional false positives (at least in parallel
    test setups).  This test now should still test leaks correctly when
    run e.g. with pytest-valgrind or pytest-leaks
    i@rÚrµr€rãr"©r%r\r$N)
r)rÜÚintrÔrrr'rCrr)rrörørÜrr1ÚsteprrrÚtest_partial_iteration_cleanupc s ÿ 
ÿ 
rüc    Csæd}t ttjdƒ|¡ |¡}|dkr<d|ttjdƒ<nd|ttjdƒd<t |¡}tj|t |¡gdddgd    d
}t     
t ¡t |ƒt |ƒW5QRX|  ¡t     
t ¡| ¡| ¡W5QRX|t |¡ksât‚dS) NrårÚrârªZf0rµr€rãr"rù)r)rÜrúrÔrr+r,rr'rfrgr¶rrrrŸ)rrörÜrrxr1rrrÚtest_partial_iteration_error… s$
ÿ  rýcCsÄd ¡ ¡}tjdtjd dd¡dd…ddd…f}t d¡}tj||fdd    gd
d d gd gdggd}| ¡| ¡j    }| ¡ ¡}t
|ƒt
|ƒksšt ‚t ||ƒD]\}}|  | ¡¡s¤t ‚q¤dS)a
    Matches the expected output of a debug print with the actual output.
    Note that the iterator dump should not be considered stable API,
    this test is mainly to ensure the print does not crash.
 
    Currently uses a subprocess to avoid dealing with the C level `printf`s.
    a£
    ------ BEGIN ITERATOR DUMP ------
    | Iterator Address:
    | ItFlags: BUFFER REDUCE REUSE_REDUCE_LOOPS
    | NDim: 2
    | NOp: 2
    | IterSize: 50
    | IterStart: 0
    | IterEnd: 50
    | IterIndex: 0
    | Iterator SizeOf:
    | BufferData SizeOf:
    | AxisData SizeOf:
    |
    | Perm: 0 1
    | DTypes:
    | DTypes: dtype('float64') dtype('int32')
    | InitDataPtrs:
    | BaseOffsets: 0 0
    | Operands:
    | Operand DTypes: dtype('int64') dtype('float64')
    | OpItFlags:
    |   Flags[0]: READ CAST ALIGNED
    |   Flags[1]: READ WRITE CAST ALIGNED REDUCE
    |
    | BufferData:
    |   BufferSize: 50
    |   Size: 5
    |   BufIterEnd: 5
    |   REDUCE Pos: 0
    |   REDUCE OuterSize: 10
    |   REDUCE OuterDim: 1
    |   Strides: 8 4
    |   Ptrs:
    |   REDUCE Outer Strides: 40 0
    |   REDUCE Outer Ptrs:
    |   ReadTransferFn:
    |   ReadTransferData:
    |   WriteTransferFn:
    |   WriteTransferData:
    |   Buffers:
    |
    | AxisData[0]:
    |   Shape: 5
    |   Index: 0
    |   Strides: 16 8
    |   Ptrs:
    | AxisData[1]:
    |   Shape: 10
    |   Index: 0
    |   Strides: 80 0
    |   Ptrs:
    ------- END ITERATOR DUMP -------
    r§r&ryNr:g@ràrÕr"r2rµr<r )r%r$r\ri)ÚstripÚ
splitlinesr)rr4rGrÚ debug_printZ
readouterrrÚrDrŸrMÚ
startswith)ZcapfdrZarr1Zarr2r1rZres_lineZ expected_linerrrÚtest_debug_print¦ s
7*
 
þ
 r)†r+rfrnrpÚnumpyr)Znumpy.core._multiarray_testsÚcorerárrrrZ numpy.testingrrrr    r
r r r rrrÚmarkZskipifr3rPrVrXrZr^rargrnrprsrur{r}r~rrƒr‡rˆrr›r¦r¸r¼rÀrÍr×rÙrÞrßrérírôrùrrr    Z parametrizeZ    typecodesÚfilterwarningsrrrr!r"r$r%r'r)r1r3r5r6r:r>rDrIrJrNrRrUrVrerhrkruryrzr}rZslowr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ôÚ version_infoÚplatformrürýrrrrrÚ<module>s8(
*
 
 , % %$FKM >>,&'-@Z&-
! 
  +     ")2J ("    
36 ;@C , .ùÿ    
< 
÷
 
 
 
&$&*ý
 "A
"ÿ þÿ ÿÿ