a :jg@sddlZddlZddlZddlZddlZddlmmZ ddl mm Z ddlm Z m Z mZmZddlmZmZmZmZmZmZmZmZddZddZdd Zejje d d d d ZddZddZ ddZ!ddZ"ddZ#ejje d d ddZ$ddZ%ddZ&ddZ'd d!Z(d"d#Z)d$d%Z*d&d'Z+d(d)Z,d*d+Z-d,d-Z.d.d/Z/d0d1Z0d2d3Z1d4d5Z2d6d7Z3d8d9Z4d:d;Z5dd?Z7d@dAZ8dBdCZ9dDdEZ:dFdGZ;dHdIZdNdOZ?dPdQZ@dRdSZAdTdUZBejCdVejDdWejCdXejDdWejEdYdZd[ZFd\d]ZGd^d_ZHd`daZIdbdcZJdddeZKdfdgZLdhdiZMdjdkZNdldmZOdndoZPdpdqZQdrdsZRdtduZSdvdwZTdxdyZUdzd{ZVd|d}ZWd~dZXddZYddZZddZ[ddZ\ddZ]ddZ^ddZ_ejjedd ejje dd ddZ`ddZaddZbddZcddZdejjeddZfddZgGdddZhddZiddZjddZkddZlddZmddZnejCdejodddejoddddddddfejodddddddddddddfejoddddddejodddddddddfejoddddddddddddddfgddZpejCddgdddgfejodddddgfejoddddfejodddddgfejodddddgfejoddddfgdd„ZqddĄZrddƄZsddȄZtddʄZudd̄Zvdd΄ZwddЄZxdd҄ZyejCdejzde{ddddddddfejzde{dd֍dddddddfejzde{ddddddddf|dաgdd؄Z}ddڄZ~dd܄ZddބZddZddZddZejje d d ddZejjejdddkoejdkdd ejCddggdejCdgdddZejje d d ejCddgddgddZddZdS)N)arrayarangenditerall)assert_ assert_equalassert_array_equal assert_raisesIS_WASM HAS_REFCOUNTsuppress_warnings break_cyclescCs$g}|js ||j|q|SN)finishedappend multi_indexiternextiretrG/usr/local/lib/python3.9/site-packages/numpy/_core/tests/test_nditer.pyiter_multi_indexs   rcCs$g}|js ||j|q|Sr)rrindexrrrrr iter_indicess   rcCs$g}|js ||j|q|Sr)rr iterindexrrrrriter_iterindicess   rzPython lacks refcounts)reasoncCstd}td}t|}t|}t|gddggd|gd@}t|j tt||ktt||kWdn1s0Yd}t t||t t||tddd}td}t|}t|}t|gdgg|gd}t|}t|}| }tt||ktt||kd}t t||t t||d}t t||t t||~dS) Nf4 readwrite updateifcopyunsafecasting op_dtypesdtyper%) rnpr' newbyteordersys getrefcountrriterationneedsapircopy)adtZrc_aZrc_dtitZrc2_aZrc2_dtit2rrrtest_iter_refcount&sH   0      r3cCs dD]}tt|}tdt|D]}tdgt|}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.0xrrr cz(test_iter_best_order..cSsg|]}|qSrrr=rrrr@frArcSsg|]}|qSrrr=rrrr@jrA) rr)prodrangelenslicetuplereshaperrTswapaxesshaper/dirs dirs_indexbitaviewrrrrtest_iter_best_orderQs    rQcCs"dD]}tt|}tdt|D]}tdgt|}tt|D] }d||@rJtddd||<qJt|}|||}t|dd}t dd|D|j ddt|j dd}t dd|D|j j ddt|dkr(t| d d dd}t d d|D| d d j ddq(qdS) Nr4r:r;CordercSsg|]}|qSrrr=rrrr@}rAz%test_iter_c_order..cSsg|]}|qSrrr=rrrr@rArrBcSsg|]}|qSrrr=rrrr@rA rr)rCrDrErFrGrHrrravelrIrJrKrrrtest_iter_c_orderls$    rWcCs"dD]}tt|}tdt|D]}tdgt|}tt|D] }d||@rJtddd||<qJt|}|||}t|dd}t dd|D|j ddt|j dd}t dd|D|j j ddt|dkr(t| d d dd}t d d|D| d d j ddq(qdS) Nr4r:r;FrScSsg|]}|qSrrr=rrrr@rAz%test_iter_f_order..cSsg|]}|qSrrr=rrrr@rArrBcSsg|]}|qSrrr=rrrr@rArUrKrrrtest_iter_f_orders$    rYcCs"dD]}tt|}tdt|D]}tdgt|}tt|D] }d||@rJtddd||<qJt|}|||}t|dd}t dd|D|j ddt|j dd}t dd|D|j j ddt|dkr(t| d d dd}t d d|D| d d j ddq(qdS) Nr4r:r;ArScSsg|]}|qSrrr=rrrr@rAz*test_iter_c_or_f_order..cSsg|]}|qSrrr=rrrr@rArrBcSsg|]}|qSrrr=rrrr@rArUrKrrrtest_iter_c_or_f_orders$    r[cCsDtddd}tj|dgd}d|_tdd|Dgd dS) Nrr:r7rflagsrr:cSsg|]}|qSrr)r>rrrrr@rAz/test_nditer_multi_index_set..)r:r7r8r5)r)rrHrrr)r/r1rrrtest_nditer_multi_index_setsr_cCsHd}tjtgddgd}t|}|f|_t|}t||dS)Nr)oiMirr\)r)rrr+r,rr)rrZ start_countZ end_countrrr$test_nditer_multi_index_set_refcounts   rbcCs^td}t|dgdgg}tt|gdt|ddddgdgg}tt|gddS)Nr8rr<)rrBr:r7r;)rfrerdrc)rrrrr/rrrr#test_iter_best_order_multi_index_1ds rhcCstd}t|dddgdgg}tt|gdt|ddjdddgdgg}tt|gd t|ddddd dgdgg}tt|gd t|ddddddd fdgdgg}tt|gd t|ddddd ddd fdgdgg}tt|gd t|ddjddddd dgdgg}tt|gdt|ddjddddddd fdgdgg}tt|gdt|ddjddddd ddd fdgdgg}tt|gddS)Nrr:r7rr<)rrrrBr^rBrrBrBrBr:rXrS)rirkrjrlr^rmr;)rkrlrmrirjr^)r^rjrirmrlrk)rmrlrkr^rjri)rkrirlrjrmr^)r^rmrjrlrirk)rmr^rlrjrkrirrrHrrr.rgrrr#test_iter_best_order_multi_index_2ds*"$,.,& ( rocCstd}t|ddddgdgg}tt|gdt|dddjdddgdgg}tt|gd t|dddddd dgdgg}tt|gd t|dddddddd fdgdgg}tt|gd t|dddddddddd fdgdgg}tt|gd t|dddjddddd dgdgg}tt|gdt|dddjddddddd fdgdgg}tt|gdt|dddjddddddddd fdgdgg}tt|gddS)N r:r7rr<) rrrrrrBrrBrrrBrBrr:rrr:rBrBrrrBrrBrBrBrrBrBrBrBr:rrBr:rBrXrS) rqrwrsryrur{rrrxrtrzrvr|r;) rwrxryrzr{r|rqrrrsrtrurv) rurvrsrtrqrrr{r|ryrzrwrx) rrrqrtrsrvrurxrwrzryr|r{) rwrqryrsr{rurxrrrzrtr|rv) rur{rsryrqrwrvr|rtrzrrrx) rrrxrtrzrvr|rqrwrsryrur{rnrgrrr#test_iter_best_order_multi_index_3dsN$&.4  ( . r}cCs^td}t|dgdgg}tt|gdt|ddddgdgg}tt|gddS)Nr8c_indexr<rrBr:r7r;r7r:rBrrrrrrgrrrtest_iter_best_order_c_index_1d&s rcCstd}t|dddgdgg}tt|gdt|ddjdddgdgg}tt|gd t|ddddd dgdgg}tt|gd t|ddddddd fdgdgg}tt|gd t|ddddd ddd fdgdgg}tt|gd t|ddjddddd dgdgg}tt|gdt|ddjddddddd fdgdgg}tt|gdt|ddjddddd ddd fdgdgg}tt|gddS)Nrr:r7r~r<rrBr:r7r8r5rXrS)rr7rBr8r:r5r;)r7r8r5rrBr:)r:rBrr5r8r7r5r8r7r:rBr)r7rr8rBr5r:)r:r5rBr8rr7)r5r:r8rBr7rrrrHrrr.rgrrrtest_iter_best_order_c_index_2d1s2 $,. & ( rcCstd}t|ddddgdgg}tt|gdt|dddjdddgdgg}tt|gd t|dddddd dgdgg}tt|gd t|dddddddd fdgdgg}tt|gd t|dddddddddd fdgdgg}tt|gd t|dddjddddd dgdgg}tt|gdt|dddjddddddd fdgdgg}tt|gdt|dddjddddddddd fdgdgg}tt|gddS)Nrpr:r7r~r< rrBr:r7r8r5r rXrS rrr:rr8rrBrr7rr5rr; rrrrrrrrBr:r7r8r5 r8r5r:r7rrBrrrrrr rBrr7r:r5r8rrrrrr rrrr:rr8rrBrr7rr5 r8rr:rrrr5rr7rrBr rBrr7rr5rrrr:rr8rrrgrrrtest_iter_best_order_c_index_3dNsR &.4  ( . rcCs^td}t|dgdgg}tt|gdt|ddddgdgg}tt|gddS)Nr8f_indexr<rr;rrrgrrrtest_iter_best_order_f_index_1dss rcCstd}t|dddgdgg}tt|gdt|ddjdddgdgg}tt|gd t|ddddd dgdgg}tt|gd t|ddddddd fdgdgg}tt|gd t|ddddd ddd fdgdgg}tt|gd t|ddjddddd dgdgg}tt|gdt|ddjddddddd fdgdgg}tt|gdt|ddjddddd ddd fdgdgg}tt|gddS)Nrr:r7rr<rr:r8rBr7r5rXrSrr;)rBr7r5rr:r8)r8r:rr5r7rB)r5r7rBr8r:r)rBrr7r:r5r8)r8r5r:r7rrBrrrgrrrtest_iter_best_order_f_index_2d~s2 $,. & ( rcCstd}t|ddddgdgg}tt|gdt|dddjdddgdgg}tt|gd t|dddddd dgdgg}tt|gd t|dddddddd fdgdgg}tt|gd t|dddddddddd fdgdgg}tt|gd t|dddjddddd dgdgg}tt|gdt|dddjddddddd fdgdgg}tt|gdt|dddjddddddddd fdgdgg}tt|gddS)Nrpr:r7rr<rrXrSrr;rrrrrrrrgrrrtest_iter_best_order_f_index_3dsR &.4  ( . rcCs6dD]*}t|}t|}tdt|D]}tdgt|}tt|D] }d||@rPtddd||<qPt|}|||}t|dgdgg}t |j dt |dj |ft|j dgdgg}t |j dt |dj |ft|dkr,t| dddgdgg}t |j dt |dj |fq,qdS)Nr4r:r; external_loopr<rBr)r)rCrrDrErFrGrHrrndimrLrIrJ)rLsizer/rMrNrOrPrrrr test_iter_no_inner_full_coalesces,         rc CsVtddddddddddf}t|dgdgg}t|jdt|djd tddddddddddf}t|dgdgg}t|jdt|djd tddddddddddf}t|dgdgg}t|jd t|djd tdd d dd d dd d dd d }t|dgdgg}t|jd t|djd dS)Nr:r7r8r;rr<rrfrrB)rpr)rrHrrrrLrgrrr!test_iter_no_inner_dim_coalescings ( ( ( " rcCstdddd}t|dgdgg}t|jdtdddd}t|dgdgg}t|jdt|d ddgdgg}t|jdt|jdgdgg}t|jdt|jd gdgg}t|jdt|jd dd gdgg}t|jdtdddd}t|d d }t|jdt|jd d }t|jdt|d d }t|jdt|jd d }t|jdt|dd }t|jdt|jdd }t|jddS)Nrr:r7r8rr<r~rBrrrRrSrXrZ)rrHrrrrJrI)r/rZa3drrrtest_iter_dim_coalescings6              rcCsttdtdgdgdggd}t|jdt|jdttdddtdgdgdggd}t|jdt|jdttdddtdgdgdggd}t|jdt|jdttdddtdgdgdggd}t|jdt|jdttdddtdddgdgdggd}t|jdt|jdttdtd d ddgdgdggd}t|jd t|jd ttdtd d ddgdgdggd}t|jd t|jd ttdtd d ddgdgdggd}t|jd t|jd ttdddtd d ddgdgdggd}t|jd t|jd ttdddtd d ddgdgdggd}t|jd t|jd ttdddtd d ddgdgdggd}t|jd t|jd ttddddtddddtd d ddgdgdggd}t|jd t|jd ttddddtd d ddgdgdggd}t|jd t|jd ttd d ddtd d ddgdgdggd}t|jd t|jd dS)Nrr:rr<rr7r:r7rBrr8r8r:r7rrp)rrr)int32ritersizerLrHrrrrtest_iter_broadcastings$                 "  "  "  "  $  $ rc CsJtjddddd}t|dggdgddgggd dgd d }t|jd jd t|jd jdt|jdggdgddgggd dgd d }t|jd jdt|jd jdt|jdggdgddggdgd dgd d}t|jd jdt|jd jdt t t|dggdgddgggd dgdd tjt dddgdd}dS)Nri2r&r:r7r< writeonlyallocate)rrBN)r;r;r8op_axes itershaperBr9)rrr:)r7r:r8)rrr:rX)rTrr)r:rrp)r;rBr8rer) r)rrHrroperandsrLstridesrIr ValueErroronesrgrrrtest_iter_itershape`s4     rc Cs0ttttdtdggdggdttttdddtdggdggdttttdddtdddggdggdttttdddtdddggdggdttttddddtddddggdggdttttd ddd tddddggdggdzRttdd dd tdd dtdddggdgdgd d ggtd Wn^ty}zDt|}t|ddkd|t|ddkd|WYd}~n d}~00zHttdddtdggdgdggdd gdt j ggddtd Wnvty}z\t|}t|ddkd|t|ddkd|t|ddkd|WYd}~n d}~00z2tt dt dggd d gdggtd Wn^ty*}zDt|}t|ddkd|t|ddkd |WYd}~n d}~00dS)!Nr:r7r<rrr8$rrrBr 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))r8r7rz (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:rBrBrez(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 rrrrHAssertionErrorstrrfindr)newaxiszeros)emsgrrrtest_iter_broadcasting_errorss    " "      rcCstd}tttgggttt|gdgdggdttt|gdgdggttt|ggddggttt|ggdggddttt|ggdggddttt|gd gdggd ttt|d d gdggttt|d dgdggttt|d d gdggttt|d d gdggttt|gggttt|gddggttt|gddggttt|gddggttt|ggdgtttdgdggtttdgdggttttdgdggttttdgdggd|j_ttt|gdggttt|gdggd|j_ttdgdgg}ttdd|ttdd|dd}dd}dd}dd }ttdd g}tt||tt||tt||tt||ttdd!g}tt||tt||tt||tttt gdS)"Nrdr<zbad flagGrSZnoonr$r7r:r~rrrrr r<rr ?rBFTcSs|jSrrrrrrrAz(test_iter_flags_errors..cSs|jSrrrrrrrrAcSs d|_dS)Nrcrrrrrassign_multi_indexsz2test_iter_flags_errors..assign_multi_indexcSs d|_dSNrrrrrr assign_indexsz,test_iter_flags_errors..assign_indexcSs d|_dSr)rrrrrassign_iterindexsz0test_iter_flags_errors..assign_iterindexcSs d|_dS)Nrj) iterrangerrrrassign_iterrange sz0test_iter_flags_errors..assign_iterrangebuffered) rr rr TypeErrorr)rr] writeabler)r/rrrrrrrrtest_iter_flags_errorssh            rcCstdtdtd}}}t|||ggdg}|dd|dd<t|gdt|gdt|gdd |d <t|dddd gWdn1s0YdS) Nr7@r )r7r7rr:)r7rBr:rrBr:rprB)r)rrr)r/bcrrrrtest_iter_slices" rcCs tjddddddj}tj|gddggd td gd }|,d|jd d <d|jd d <Wdn1sr0Yt|dtj|gddggd td gd }|8|jd dd}d|d <d|jd d <Wdn1s0Yt|dd}d}dS)Nrf8r&r:r7r8r r! same_kindrr#r.r;rBi.)r)rrHrIrr'rr)r/r1r?rrrtest_iter_assign_mapping"s$ ,  , rcCsJtjddd}|}||j}t|jj|jjkt|gddggdtdgd}|`t |j dj|jjt |j djj|jjt |j d|d |j ddd<Wdn1s0Yt |d gd~tjddd}|}||j}t|jj|jjkt|ggd gdd r}t |j dj|jjt |j djj|jjt |j d|d |j ddd<d |j ddd<Wdn1s0Yt |d gdtj d dddd}d|_tjddd|dd<t|j j t|gdgg}t|j dj j t |j d|t|ggdgD}t|j dj jt |j d|d|j ddd<Wdn1s0Yt |dgdtd}t|ddgdgg}t|j dj jt |j d|ddt|ddd ddgddggdd}t|dj jt |d|ddd dS)Nrrr&r r!equivr#rr:)r r!nbori90)i1rBr<)r r!alignedr7rprrZcontigr buffersize)r)rbyteswapviewr'r*r byteorderrrdtypesrrr]r contiguous)r/aurrrrtest_iter_nbo_align_contig5sf 022rcCs\tjddddd}t|gdggtdgd}|8t|jd|t|jdjtdWdn1st0Ytjdd ddd}t|gdd ggd td gd 8}t|jd|t|jdjtd Wdn1s0Ytjdddddddd}t|gddggdtdgd }t|jd|t|jdjtdt|jdjd|ddddddddf}t|gddggdtdgd }t|jd|t|jdjtdt|jdjdtjddddddj }t|gdd ggdtdgd h}t|jd|t|jdjtdt|jdjdd|jdd<t |ddkWdn1s0Yt|ddtjdddddd}t|gdd ggdtdgd P}t|jdjtdt|jdjdgd |jddd<Wdn1s@0Yt|gd dS)!Nrrr&r:r7r r(rf4r#rr8rBr<r.safer)`r r;r)r80g)ri4rr")r8rBr:r7) r)rrHrr'rrrJrrIrrgrrrtest_iter_array_castusj6 6    0 6rc Csttttdddgdggtdgdttttdddgddggdtdgd ttttdddgddggd tdgd ttttdddgd d ggdtdgd ttttdddgd d ggd tdgd ttttdd dgddggdtdgd ttttdddgdd ggdtdgd ttttdddgdd ggdtdgd ttttdddgddggdtdgd ttttdddgd d ggdtdgd dS)Nr:rr&r<rr(r.nor#rrr!rrr rrr)r rrrr)r'rrrrtest_iter_array_cast_errorssZ            rcCsttdgdggtdgd}t|jdtdt|jjtdt|jdttdgddggdtdgd }t|jdtdt|jjtdt|jdttdgddggd tdgd }t|jdtdt|jjtdt|jdttd gddggd td gd }t|jdtd t|jjtd t|jdtdgdggtdgd}t|djtdt|dd dS)N@r<rr(rr.rrr#rrr"rr7)rr)float32r'rrvaluefloat64rrrrtest_iter_scalar_castsB           rc Csttttdgdggtdgdtttdgdggtdgdttttdgdggd tdgd ttttdgdggd td gd dS) Nr:r rr(rrgDcLr<rr#rr)r rrr)rr'rrrrrtest_iter_scalar_cast_errorss    rcCsddd}tjgdd|dgdd}tr2t|}ttt|trRtt||t|dgdg}d d |D}ttj|dd|dgd\}}}trtt||t| d d j dd gdgd d}t |j dd |D}ttj|dd| d d j dddgd\}}}tr*tt||t| d d j dd gdgd d}|4|D]}d|d<qTdgd\}}}Wdn1s0Ytrt t||dkt|tjdgddddS)Nr7dr/rrOr&refs_okr<cSsg|] }|dqSrrr>Zx_rrrr@&rAz1test_iter_object_arrays_basic..r:rrRrScSsg|] }|dqSrrrrrrr@/rArXr .rBr8)r)rr r+r,r rrrrHrIrr-rV)objr/rcrvalsr?rrrtest_iter_object_arrays_basics@    $ 0rcCsdtjddd}t|ddgdgddd }|*|D]}|d d 7<q0Wdn1sZ0Yt|tdd tjddd}t|ddgdgddd }|*|D]}|d d 7<qWdn1s0Yt|tdd tjd d dgd}|d}td|dd<t|ddgdgddd }|,|D]}|d d 7<q>Wdn1sl0Yt|tdd tjd d dgd}|d}tdd|dd<t|ddgdgddd }|H|dd}trt|}|D]}|d d 7<qWdn1s&0YtrLtt||d kt|tdddS)Nrrr&rrr r"rr#.rBr)prr/rr/)r/riHrriI) r)rrrrr r+r,r)r/rr?obrrrr#test_iter_object_arrays_conversions?sR004  4r cCsttdgddtdgddgdgddggd d d }t|jdtdt|jd tdttdgd dtdgddgdgddggd d d }t|jdtdt|jd tdttdgddtdddgdgddggd dd }t|jdtdt|jd tdttdgddtdd dgdgddggd d d }t|jdtdt|jd tdttdgddtdd dgdgddggd d d }t|jdtdt|jd tdttdgddtdd dtdgddtdgddgdgddggdd d }t|jdtdt|jd tdt|jd tdt|jdtdt|jdttdgd ddtdgddggddgddgdggd d }t|jdtd t|jd td t|jd tdttdgd ddtdgddgdgddgddgdggd d }t|jdtdt|jd tdt|jd tddS)Nr7rr&rrZ common_dtyper<r.r:rrrBrru4i8@c8rr8c16)r7r rrrr)rrrrr)r'rrrrrtest_iter_common_dtypels        rc Cs|dD]V}td}t|gdg|gg}|"t|jd|uWdq1sP0Yqtd}|dd}|dd}t||gdgdgdgg"}ttj|j Wdn1s0Ytd}|}|}t||gdgdd gdd gg}|2t|jd|uo|jd|uWdn1s40Yt||gdgdgdgg8}t|jd|uo~t|jd| Wdn1s0Ytd}|ddd }|ddd }t||gdgdgd gg}t|jd|uo|jd|utd tjd }|dd}|tjdd}t||gdgdgd gg"}ttj|j Wdn1st0YdD]}t ddg}|}|j }|}t|||gdgdgdg|gg@}|j\}}}tt|| tt|| Wdn1s 0Yqt ddg}|}|j }|}t|||gdgdgdgdgg}|j\}}}t||ut||ut||ut ddg}|}t ddg}|j }t|||gdgdgd gdgg}|j\}}}t||ut||ut||utd}|dd}|dd}|d d}t|||gdgdgd gd gg}|j\}}}t||ut||ut||udS)NrrZcopy_if_overlaprrBr;r<r Zoverlap_assume_elementwiser:rr8r&r7)rr rr) rrrrr)Z shares_memoryint8rrrrI) flagr/rr?rrZa2b2c2rrrtest_iter_copy_if_overlaps2  0BH" 2 6               rcCshtddd}t||jggdggdddgddggd}ttdd |Dtd ddd }t|j|ggdggdgd dgd}ttd d |Dtddddd}tdd}t||ggdggddgdgd}tdd |D||dddtdd }t||ggdggddgdgd}tdd |D||dddtdd}t||ggdggddtj tj dggd}tdd |D||dddtd ddd }tdddd }t||gdgdggdgdgdgd}t|j dtddd }tdd d}t||gdgdggdddgddggd}t|j ddS)Nrr:r7r<rrBrcSsg|]\}}||kqSrrr>r?yrrrr@ rAz%test_iter_op_axes..rr8)r:rBrcSsg|]\}}||kqSrrrrrrr@rAr5rr;r;cSsg|]\}}||qSrrrrrrr@rA)r;rr;cSsg|]\}}||qSrrrrrrr@rAcSsg|]\}}||qSrrrrrrr@rA(r)rrBr;r;)r;r;rrB)r:r7r5r:rpr;)r7r5) rrHrrIrrrrVr)rrL)r/rrrrrtest_iter_op_axess<*& $& $& & rc CsHtddd}ttt||ggdggddgdgdggdttt||ggdggdddgddggdttt||ggdggdddgddggdttt||ggdggdddgddggdttt||ggdggdddgddggdttt||ggdggdddggd gdttt||ggdggdddgddggddS) Nrr:r7r<rrBrr;rs)rrHr rrr/rrrtest_iter_op_axes_errors-s,r cCs tdddd}t|}|}tdd|Ddd|Dd|_|}tdd|Ddd|Dt|dd gd dd }|}td d|Dd d|Dd|_|}td d|Dd d|Dd|_|}tdd|Ddd|Dd|_t|t||}tdd|Ddd|Dt|dgd dddd}|}Wdn1sp0Ytdd|D|jd dtdddddd}t|dgd dddd}|}Wdn1s0Ytdd|D|jd ddS)Nrr:r7r8cSsg|] }|dqSrrr=rrrr@NrAz"test_iter_copy..cSsg|] }|dqSrrr=rrrr@RrArrangedrXrTrcSsg|] }|dqSrrr=rrrr@WrAcSsg|] }|dqSrrr=rrrr@[rAr7rcSsg|] }|dqSrrr=rrrr@_rA)r:cSsg|] }|dqSrrr=rrrr@erAr"rr5)rTr$r%rcSsg|] }|dqSrrr=rrrr@krArSzf8cSsg|] }|dqSrrr=rrrr@qrA) rrHrr.rrrnextrV)r/rjrrrtest_iter_copyGsD ( (r'r'ZAll loop_dtypez'ignore::numpy.exceptions.ComplexWarningcCs|dkr|d}nt|jdkr.|d}tjdt|d}z||}WntyhYdS0tj|fgd|gdd }t t|tj rt |tjd|d| }t |}~t |}~t ||t ||dS) Nmz[ms]rZ50r&rrrr"r%r$)lowerr)r'itemsizerr*astype ExceptionrZ issubdtypenumberrr.r%)r'r(arrexpectedr1it_copyresZres_copyrrrtest_iter_copy_caststs*    r6c Cs tdtdfdtdfg}tdtdfdtdfg}tjd|d}tj|fgd |gd d }|}t|}~t|}~|d|d}t|d|t|d||djD]D}|d||d|j }t|d||t|d||qdS) Nr/zi,rz>i,d,S17,>d,3f,O,i1rz>i,>i,S17,>d,>U3,3d,i1,Or*r&r+r"r,) r)r'rrr.r%r/rnamesbase) in_dtype out_dtyper2r1r4res1res2r3fieldrrrtest_iter_copy_casts_structureds,  r>cCstdtdfdtdfg}tdtdfdtdfg}tjd|d}tj|fgd |gd d }|}t|}~t|}~||fD]0}t|dd tksJ|dd d ksJq||fD]}t|ddd tjdt dt|ddtjddd|ddj dks"Jt|ddd tjdt dt|ddd tjdt dt|ddd tjdddqdS)Nr/O,Orz5O,3O,(1,)O,(1,)i,(1,)Orz O,3i,4O,4O,4irBr&r+r"r,rrlf0r5f1)rBr7rf2rBr8r8Zf3) r)r'rrr.r%typerGrobjectrL)r9r:r2r1r4r;r<r5rrr test_iter_copy_casts_structured2s2       rFcCs`td}t|dggdgddggdtdgd}t|jdj|jt|jdjtddS)Nrr<rrrr(rB)rrr)r'rrrLrgrrr test_iter_allocate_output_simples  rGcCstd}t|dgddgdgddgg}|dd|jddd<||D] }|dd|d d7<qJt|jd|dWdn1s0YdS) Nrrdelay_bufallocr<rr rB.r)rrrresetrr/rr?rrr,test_iter_allocate_output_buffered_readwrites rKc Cstddddd}t|dggdgddggdtd gd }t|jd j|jt|jd j|jt|jd jtd td ddddd j }t|dggdgddggdtd gd }t|jd j|jt|jd j|jt|jd jtd td ddddd  dd }t|dggdgddggddtd gd}t|jd j|jt|jd jdt|jd jtd dS)Nrrr&r:r7r<rrrr(rBrr8rrR)rTr%)rrr8) rrHrr)r'rrrLrrIrJrgrrr!test_iter_allocate_output_itorders.     rLcCstdddddd}td|ggddgd ggtd dggd dgd }t|jd jdt|jd jdt|jd jtd dS)Nrrr&r:r7r8rrr<r r{r%rrr)r8rr) rrHrr)r'rrrLrrgrrr test_iter_allocate_output_opaxes s  rNcCsttdgddtdgdddggdggddd gg}t|jdtdttdgd dtdgdddggdggddd gg}t|jdtdttdgddtddddggdggddd gg}t|jdtdttdgd dtdd ddggdggddd gg}t|jdtd ttdgd dtd d ddggdggddd gg}t|jdtd dS)Nr7rr&rrr<r:rrrr r r )rrrrr)r'rrrr)test_iter_allocate_output_types_promotions(  rOcCstdgdd}||j}t|dggdgddgg}t|jd|jdt||dggdgdgddgg}t|jd|jd kt|jdd |jd dS) Nr7r r&r<rrrrBr:=)rrr'r*rrrrrgrrr*test_iter_allocate_output_types_byte_order)s   rQcCsbtdddtdtdggddggdggd}t|jd jtd t|jd jd dS) NrBgffffff@rpr7rrr<r8r complex128)rr)rrRrrr'rrrrr&test_iter_allocate_output_types_scalar8s rScCsGdddtj}tddgddgg|}tdddj}t||dggdgdgdd gg}tt |t |j dt t |t |j dut|j dj d t||dggdgdggd g}tt |t |j dt t |t |j dut|j dj d dS) Nc@seZdZdZdS)z4test_iter_allocate_output_subtype..MyNDArrayN)__name__ __module__ __qualname__Z__array_priority__rrrr MyNDArrayBsrXrBr:r7r8r<rrr:r:)rrZ no_subtype) r)ZndarrayrrrrHrIrrrDrrrL)rXr/rrrrr!test_iter_allocate_output_subtype@s"  rZc Cstd}ttt|dggdgddggttt|dggdgddggttt|dgdgddgtttddggddgddggdtdgdtd d d d d d}ttt|dggdgddggdtdgddtjdggdttt|dggdgddggdtdgdgdgdttt|dggdgddggdtdgdgdgdtd d d d d d}ttt|dgdgdgddggdtdgddtjd ggddS)Nrrrr<rr rr(rrr&r:r7r8rrBrM)rr7rB)rr:rBr reduce_ok) rr rrrr)r'rHrrrrr test_iter_allocate_output_errorsVsL             r\cCshtjdgdgd}|jdjdks&J|jtdfks.rr;cSsg|]}|qSrrr=rrrr@rA)rrHrZ remove_axisrrVrgrrrtest_iter_remove_axiss  *  r_cCstdddd}t|dg}t|jdt|jdt|jdjddd |D}|d d |D}t||t|jd tt d d |t|jdjd| t|j dt|djt | t|j dt|djdt|jtddS)Nrr:r7r8rr9rcSsg|]}|qSrrr=rrrr@rAz;test_iter_remove_multi_index_inner_loop..cSsg|]}|qSrrr=rrrr@rArBcSs|jSrrLrrrrrrAz9test_iter_remove_multi_index_inner_loop..r)rrHrrrrLitviewsZremove_multi_indexr rrIrrGZenable_external_loopr)r/rbeforeafterrrr'test_iter_remove_multi_index_inner_loops&       rdcCsd}tdddd}gdgfD]}t|||d}tt|ttdd|_tt|ttddt||d|d }tt|ttdd|_tt|ttddt|ddd |d|d }tt|ttdd |_tt|ttd dt|ddd ddd f|d |d }tt|ttdd |_tt|ttd dt|dddddd f||d}tt|ttdd|_tt|ttdd|d|_tt|ttddq dS)Nr5rr8r7r:rrrXr"r;rrR rB) rrHrrrlistrDrrI)rr/r]rrrrtest_iter_iterindexs4$"rhcCsd}tdddddd}|jdd }t|d gd gd|d }t|jd tdd|D|dD]:}||_t|j|tdd|D||d|dq`t|d dgd gdd|d}t|jd tdd|D|dD]:}||_t|j|tdd|D||d|dqdd}t|gdd gdd|d}t|jd t|||dD]6}||_t|j|t||||d|dqVdS)Nr5rrr&r8r7r:rXrSr!r<r"rrcSsg|] }|dqSrrr=rrrr@rAz'test_iter_iterrange..)rirm)r7r)r5r5)rr)rfrcSsg|] }|dqSrrr=rrrr@rArrBrr)rTr%rcSsg|] }|dqSrrr=rrrr@rAcSsg|] }|dqSrrr=rrrr@rAcSs*tjgdd}|D]}t||f}q|S)Nrr&)r)r concatenate)rvalr?rrr get_arraysz&test_iter_iterrange..get_array)r!rr)rrHrVrrr)rr/Za_fortrrrlrrrtest_iter_iterranges@   &  &   rnc Cs6g}tjddddddj}||j}|||tjdddtj d d dd d}d |_tjd d d|dd<|||tjdd dddddj|D]~}dD]t}g}t |ddggdgdd|d}|j st |dj |k||d|qtt||jddqqdS)Nrrr&r:r7r8rr)ArrBrrxr5)rBr:r7r5rrrrr)r<rrrRr)rTr$rrrS)r)rrHrIrr'r*rrrrrrrr.rrrjrV)arraysZ_tmpr/rrrrrrtest_iter_bufferings0  "  rscCstddddj}||j}t|dggdgddd d }d }|0|j sp||d <|d 7}| qPWdn1s0Yt |j dd tddS)Nrr:r7r8rr rrrrRr)r$rTrrrBrS) r)rrHrIrr'r*rrrrrrVrJrrrtest_iter_write_bufferings(rucCs td}tjddd}t||ggddgddd}t|jttd d |ttd d |ttd d |d d}tt|||t|j t|j d|dt|ddd|d<t|ddddgtdd|Dt t t ddgdWdn1s0YdS)NrrBrr&)rrHrr[r r"r#cSs|jSrrrrrrr9rAz3test_iter_buffering_delayed_alloc..cSs|dSrrrrrrr:rAcSs |ddS)Nrr:rrrrrr;rAcSs d|d<dSrrrrrr assign_iter=sz6test_iter_buffering_delayed_alloc..assign_iterrcrr:cSs$g|]}|dd|ddgqS)rrrBrr=rrrr@HrAz5test_iter_buffering_delayed_alloc..) r)rrrhas_delayed_bufallocr rrIrrrgziprD)r/rrrvrrr!test_iter_buffering_delayed_alloc/s*     rycCstjddd}t|ddggdgdtdgd d }|*|D]}|d d 9<q>Wdn1sh0Yt|d tjddddS) Nrrr&rrrtrrr7r$r%r.r:)r)rrr'rr/rvrrrtest_iter_buffered_cast_simpleJs  0r}c Cstjddd}||j}t|ddggdgdtdgd d }|*|D]}|d d 9<qVWdn1s0Yt|d tjdddt}| tj j tjddd}||j}t|ddggdgd tdgd d }|,|D]}|d d 9<qWdn1s<0Yt|d tjdddWdn1st0YdS)Nrrr&rrrtrrr7rz.r:r"r) r)rrr'r*rrrr filter exceptionsZComplexWarning)r/rr|suprrr#test_iter_buffered_cast_byteswappedYs4 0 4rcCstjddd}||j}|d7}t|ddggdgdtd gd d }|*|D]}|d d 9<qZWdn1s0Yt|d tjddddtjddd}|d7}t|ddggdgdtd gd d }|*|D]}|d d 9<qWdn1s 0Yt|d tjddddtjdtjd}||j}|d7}t|ddggdgdtd gd d }|,|D]}|d d 9<qWdn1s0Yt|d tjdtjddtjdtj d}||j}t|ddggdgdtdgdd }|,|D]}|d d 9<qLWdn1sz0Yt|d tjdtj ddS)Nrrr&rrrrtrrr7rz.r:y@rr) r)rrr'r*rrrZ clongdoubleZ longdoubler{rrr+test_iter_buffered_cast_byteswapped_complexysd  0 2  4  4rcs~gd}tjddddtddgdgd |d }d d |D}t|d ddt|d dd t|d ddgdgdt|d ddt|dddt|dddt|dddgdgdt|dddt|d jt|gd}tjdddddgdgdgdfd <ddgdgdgdfd<ddgdgdgdfd<tr|td }tddgdgd |d }dd |D}t|d ddt|d dd t|d ddgdgdt|d ddt|dddt|dddt|dddgdgdt|dddt|d jt|dgd\}}}trttd |dg}tj ddg|dtddgdgd dd }td d |Dd!d"ggd#}tj d$d%g|dt t fd&d'gd#}gd(}tj d)d*g|dtddgdgd |d }t|d jt|td+d |Dtj d)|dtj d*|dgdS),Nr/rrr )rrrrrr7rr&?rrr<r"r#cSsg|]}t|qSrr)rr=rrrr@rAz;test_iter_buffered_cast_structured_type..rr/rrr:rrBrrfr)rrr)rrrrrrrcSsg|] }|qSr)r.r=rrrr@rAr)@rrcSsg|] }|dqSrrrrrrr@rAr5rrrr)rrtest)rrrcstddgdgdddS)Nrrr<r"rr#)rrrrrrsz9test_iter_buffered_cast_structured_type..))ru2r)rrrr8r5rcSsg|]}t|qSrrrrrrr@rA) r)rrrr'rr r+r,rr r)sdtrrrr?sdt1sdt2rrr'test_iter_buffered_cast_structured_types~  rc Csgd}ddg}tjddg|d}dD]b}tjdd gd d}tt2t||fd d g||gd d|gdWdq&1s~0Yq&dS)Nr)rr)r/rrrr&)r r<rrBr:zi,irrr"zf,fr#)r)rpytestraisesrr)rrr/ZintentZ simple_arrrrr.get_params)rr]rr%rr;.)rr]rrr%) r)rfloatr'rr.rrIrr/int_rDr)r]rr%rr2rrZnditer2Za2_inZb2_inZcomp_resbufsizeZnditer1Za1_inZb1_inr5rrrtest_iter_buffered_reduce_reuse s>   (  *rc Cstdddd}tdddd}tddd}t|||ggdd gdgdggttt|||ggdgdd gdggttt|||ggdgdgdd ggdS) Nrr:r7r8rrBrpr<r)r)rrHrr r)r/rrrrrtest_iter_no_broadcastF s rc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)TestIterNestedc stdddd}t|dgddgg\}fdd|D}t|gdgd gt|ddgdgg\}fd d|D}t|ddgddgd d gd dgddgddggt|ddgdgg\}fdd|D}t|gdgdgdgdgdS)Nrpr:r7rrBcsg|] }tqSrrgr>_r&rrr@\ rAz-TestIterNested.test_basic..rrrrrrrcsg|] }tqSrrrrrrr@` rAr8r5rrrrrrcsg|] }tqSrrrrrrr@d rArr:r8rBr7r5rrrrrrrrHr) nested_itersrselfr/rrrrr test_basicW s.zTestIterNested.test_basicc stdddd}t|dgddgg\}fdd|D}t|gdgd gt|ddgdgg\}fd d|D}t|ddgddgd d gd dgddgddggt|ddgdgg\}fdd|D}t|gdgdgdgdgtj|dgddggdd\}fdd|D}t|gdgdgtj|ddgdggdd\}fdd|D}t|ddgd dgddgddgd d gddggtj|ddgdggdd\}fdd|D}t|gdgdgdgdgdS)Nrpr:r7rrBcsg|] }tqSrrrrrrr@m rAz/TestIterNested.test_reorder..rrcsg|] }tqSrrrrrrr@q rAr8r5rrrrrrcsg|] }tqSrrrrrrr@u rArrrrrRrScsg|] }tqSrrrrrrr@z rAr)rrrrrrcsg|] }tqSrrrrrrr@~ rAcsg|] }tqSrrrrrrr@ rArrrrr test_reorderg s&.".zTestIterNested.test_reorderc stdddddddddddddf}t|dgddgg\}fdd|D}t|gd gd gt|ddgdgg\}fd d|D}t|ddgddgd d gddgddgddggt|ddgdgg\}fdd|D}t|gdgdgdgdgtj|dgddggdd\}fdd|D}t|gdgdgtj|ddgdggdd\}fdd|D}t|ddgddgddgd d gddgddggtj|ddgdggdd\}fdd|D}t|gd gd!gd"gd#gdS)$Nrpr:r7r;rrBcsg|] }tqSrrrrrrr@ rAz1TestIterNested.test_flip_axes..rrcsg|] }tqSrrrrrrr@ rAr8r5rrrrrrcsg|] }tqSrrrrrrr@ rArrrrrRrScsg|] }tqSrrrrrrr@ rA)rrrrrrrcsg|] }tqSrrrrrrr@ rAcsg|] }tqSrrrrrrr@ rA)rrr)rrr)r5r7rB)r8r:rrrrrrtest_flip_axes s&..".zTestIterNested.test_flip_axescstddd}tddd}t||gdgdgg\}fdd|D}t|ddgddgddggddgddgddgggt||gdgdgg\}fdd|D}t|ddgddggddgddggddgddgggdS)Nr:rBr7rcsg|] }tqSrrrrrrr@ rAz1TestIterNested.test_broadcast..csg|] }tqSrrrrrrr@ rAr)rr/rrrrrrtest_broadcast s2zTestIterNested.test_broadcastc stddddd}tj|dgdggdd gd d \}tdjtd fd d |D}t|gdgdgd}tddddd}tj|dgdggddgdd d\}|`tdjtd |D]}D]}|dd7<qqt|gdgdgWdn1s"0YWdn1sB0Yt|gdgdgtddddd}tj|dgdggddgdd d\}tdjtd |D]"}D]}|dd7<qqt|gdgdg|t|gdgdgdS)Nrrr&r:r7rrBr<r.r)rr%csg|] }tqSrrrrrrr@ rAz2TestIterNested.test_dtype_copy..r)r7r8r5rr r!r)rr$r%.rr)rrHr)rrr'close)rr/rrr?rrrrtest_dtype_copy sH   V zTestIterNested.test_dtype_copycCstddddd}tj|dgdggdgd gd d d \}}t|djtd |D]}|D]}|d d7<q\qTt|gdgdgdSNrrr&r:r7rrBrr rr)r]rr$r%.rrrrHr)rrr'rr/rr&r?rrrrtest_dtype_buffered s z"TestIterNested.test_dtype_bufferedcs"tdddd}t|ggdg\}fdd|D}t|gdgt|gdgg\}fdd|D}t|d gd gdgdgd gd gd gdgdgdgdgdgg t|dd ggd gg\}}g}|D]"}D]}|dd|Dqqt|gdgdgdgdgdS)Nrpr:r7)rBrr:csg|] }tqSrrrrrrr@ rAz*TestIterNested.test_0d..rcsg|] }tqSrrrrrrr@ rArrBr8r5rrrrrrcSsg|]}|qSrr)r>zrrrr@ rArrrr)r)rrHrrr)rr/rrkr?rrrrtest_0d s:zTestIterNested.test_0dc Cstddddd}tj|dgdggdgd gd d d \}}|n|Jt|djtd |D]}|D]}|d d7<qhq`Wdn1s0YWdn1s0Yt|gdgdgdSrrrrrr%test_iter_nested_iters_dtype_buffered s  Pz4TestIterNested.test_iter_nested_iters_dtype_bufferedN) rUrVrWrrrrrrrrrrrrrU s *rc Csztd}ttt|dggdgddggdgdggdtddd }ttt|dgd gdgddggdd gddggddS) Nrr<r rrr;rr:r7rrB)r)rr rrrHrrrrtest_iter_reduction_error s    rc Cstd}t|dgdgdgddggdgdggd}|dd|jd d <|D]\}}|d |7<qJt|jd jdt|jd t|Wdn1s0Ytdd d }t|dgdd gdgddggdd gddggd}|d|jd d <t|d jdt|d j d|D]2\}}t t |D]}||||7<q6q"t|jd jdt|jd t|Wdn1s0Yt d}t|dgdd gdgddggdgdgd}t|dggddgddggdgdgdd}|||jd  d|jd  d||D]}|d d |d7<q6|D]}|d d |d7<qZt|jd |jd t|jd |jWdn1s0YWdn1s0YdS)Nrr[r<r rrr;rrB.r:r7rrrc)r:r7r5)rr;rB)r[rrrHr)rr)r)rrrrrsumrHrLrrDrErfillrIr)r/rr?rr&Zit1r2rrrtest_iter_reduction sX     4  6      rc Csntd}tjddd}||j}t||gddgdgdd ggd gd ggd }|Xt|d jtdt |d j|jk|D]\}}|d|7<qWdn1s0Yt|t |td dd}tjd d gdd}||j}t||ggddgdd ggd d gd d ggd }|ht|d j dt|d j d|D]2\}}tt|D]}||||7<qvqbWdn1s0Yt|tj |d dtdd }tj|dggddgddggd d gd d ggdd}|:|jd d |t|d gdWdn1sP0Ytdtjddd ddd dfd dd }t|j |j |d<tjdtjd dd}|} |ddddddf}t||ggddgdgg}|*|D]\}}|dqWdn1s.0Yt|d dd| d ddt|dddddS) Nrgrr&r[rr<r rrr;rrB.r:r7r[rrrfrc)axis)rHr[rrrrYr)rBr:rBr:)rrerr8rr5rr)r)rrrrr'r*rrrrrHrLrrDrErrrIrrZ transposerr.) r/rrr?rr&rr1Zy_baseZ y_base_copyrrrtest_iter_buffering_reductionQ sh    0  <  20   .rcCstd}td}tj||ggddgdggdd}|dd |D}Wdn1s^0Yt|gd tt||jdS) N)r:r)rBrrr<r r5)r]rrcSsg|]\}}|jdqSrcr`rrrrr@ rAzDtest_iter_buffering_reduction_reuse_reduce_loops..)r5r:r5r:)r)rrrrr)r/rr1Zbufsizesrrr0test_iter_buffering_reduction_reuse_reduce_loops s   ,rc Cstd}td}tgdgdg}tgd}tjgddd}tjgddd}tjgdd d}ttt||ggd d gd ggttt||ggd d gd d ggttt||ggd ggdgttt|||ggd d gd d gd d ggttt||ggd gd d ggttt|||gdgd gd d gd d ggt|||gdgd gd d gd d ggttt|||gdgd gd d gd d ggtj||gdgd d gd d ggd dgddtttj||gdgd d gd d ggd dgddtttj||gdgd d gd d ggd dgdddS)NrrfTTF)FTFrtu1r&rrr writemaskedr< arraymask)r rrr[rrr,)r)rrr rrr)r/rr)m2Zm3Zmbad1Zmbad2rrrtest_iter_writemasked_badinput s     rcCs$z |jWntyYdS0dS)NTF)rar)iteratorrrr _is_buffered s   rr/rfrr&)&rTr:)r8i8|r7)rr7)rrr5r;cCs|j}|dd}tj|td}gd||d<t||ggddgdd gg}|&|D]\}}d |d<qXWdn1s~0Yt|tgd ||t||gd gddgdd gg}d }|6|D] \}}d|d<t||rd}qWdn1s0Y|s4t|tgd||n"t|tgd||d|d<tj||gd gddgdd ggddgdd}|(|D]\}}d|d<qWdn1s0Yt|tgd||dS)Nr;r7r&r.r rr<rrBrzrTrFr)rrrBr r"r,)r7r7r)rLr)emptyboolrrZ broadcast_toZmay_share_memory)r/rLZrepsZmskr1r?r)Z is_bufferedrrrtest_iter_writemasked sN    (  & ,rmask mask_axesrCrrBr8rcCstd}dg}gd}ddg}|dur.d}n |ddgg}tt*tj||f|||g|dWdn1sr0YdS) Nr6r[)rr rrrrrB)r]rr)r)rr rr)rrr2ZitflagsZ mask_flagsZa_flagsrrrr%test_iter_writemasked_broadcast_error2 s   rcCstdd}|}tjjddddt}tj||gddgdd gd d ggd d gd}t}t rnt |}|D]\}}d|f|d<qr~~~t rt ||t |ksJt ||||||td|f|jksJ~t rt ||ksJdS)Ni'z>i,Orr:)rrrr rr<rz.rr;cs0tdddddfdddddfS)Nr;)r)addrr2Zoarrrrr rAc@seZdZddZdS)z#test_object_iter_cleanup..TcSs tddS)NZ Ambiguous)r)rrrr__bool__ sz,test_object_iter_cleanup..T.__bool__N)rUrVrWrrrrrrI srIrr&) r rr)rncuBUFSIZErHr/rrE logical_orreducer)rIrrrtest_object_iter_cleanup s  r cCsdtddgddgddgddggddd}ttt|Wdn1sV0YdS)NrBr;r:)r)rrrrr)r2rrrtest_object_iter_cleanup_reduce s, r r2)@r8r:rX)r'rTcCs<tjdtjd}tj|dt|d}t|tjddtddS)Nrr&rm)rr'outr8)r)rintprrErfull)r2rr5rrr%test_object_iter_cleanup_large_reduce srcCsnttjjd}tjjtd|fd}tt t ||dddfftt t ||dddffdgddS)NrqrBrcrr\) r)iinformaxrrrrr rr)rr2rrrtest_iter_too_large s rc Cs:d}d}||ttjjkr(|d7}qddg|}g}t|D],}|dd}d||d<|t|q@t|}tdD]:}tt t |d|Wdq~1s0Yq~t |ddt|D]d}tdD]V}t ||d|tt &t ||dd|Wdq1s(0YqqdS)NrqrBr:rr;r) r)rrrrDrrrGr r_multiarray_testsZtest_nditer_too_large)Z base_sizenumZshape_templaterrrrLmoderrr#test_iter_too_large_with_multiindex s(       .   rc CsRtjddd}|}||j}t|jj|jjkt|gddggdtdgd}|"d|j d dd<Wdn1s0Yt |dt|gddggdtdgd}zP|8t |j j d d |j d dd<t d Wdn1s0YWn Yn0t |d t |j j d tt t|d t|gddggdtdgd}|2|j d }d|dd<t|j jWdn1s0Yt |dt|j j d|dd<t |dt|gddggdtdgd}|J|$|D]}d|d<qWdn1s*0YWdn1sJ0Yt|gddggdtdgd}|X|$|D]}d|d<qWdn1s0Ytt t|d Wdn1s0Yt|gddggdtdgd}~|$|D]}d|d<qWdn1s40Y|j}tt|dS)Nrrr&r r!rr#rrFz!exit context manager on exceptionTr{.)r)rrrr'r*rrrrrr]rrr getattrZwritebackifcopy __enter__ RuntimeError)r/rr1r?Zenterrrrtest_writebacks sz 0  *    ,    L ,. ,rcCs`d dd}d dd}|tdtd}t|tddd |tdtd}t|tddd dS) zC using a context amanger and using nditer.close are equivalent Nc Ss\tj}t|||ggdgdgddgg}|D]\}}}||||dq,|jd}||SNr<rr)rr:)r)rrrr) r?rraddopr1r/rrrrrr add_closee s z(test_close_equivalent..add_closecSsxtj}t|||ggdgdgddgg}|8|D]\}}}||||dq2|jdWdS1sj0YdSr)r)rrr)r?rrr r1r/rrrrr add_contexto sz*test_close_equivalent..add_contextr5rrr:)N)N)rDr)r!r"rrrrtest_close_equivalentb s  r#cCsDttd}tt|d|ttt|ttt |ddS)Nr7rr) r)rrrr%rr rrrrrrrtest_close_raises| s  r$cCs"ttd}tt|jddS)Nr7rB)r)rrr rrrrrrtest_close_parameters sr%c Cstjddd}|}||j}tP}|ttj |gddggdtdgd}~t |j dksnJWdn1s0YdS) Nrrr&r r!rr#rB) r)rrrr'r*r recordRuntimeWarningrrElog)r/rrr1rrrtest_warn_noclose s  r)r#win32z!Errors with Python 3.9 on Windowsr9 buf_dtype))rrrr)i,Or?zO,ir-stepsrcCsd}tttjd||}tj|t|ggddd}t|D] }t |qF~tj|t|ggddd}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@rr+r"r%r]r$N) r)rintrr r/rr'rDr%r)r9r+r/rr2r1steprrrtest_partial_iteration_cleanup s    r3r,r.cCsd}tttjd||}|dkrrFrGrKrLrNrOrQrSrZr\r^r_rdrhrnrsruryr}rrrrrrrrrrZslowrrrrrrrrrrrrrrrrrrr r rrEr.rrrrr#r$r%r) version_infoplatformr3r4r9rrrrs6( *   , % %$FKM @>,&'-AZ&- !     +  ") 5J ("  36 ;BC , . <     &$&*  "B "