o 6a@sddlZddlZddlZddlZddlZddlmmZddlm Z m Z m Z m Z ddl mZmZmZmZmZmZddZddZdd Zejje d d d d ZddZddZddZddZddZejje d d ddZddZ 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*d0d1Z+d2d3Z,d4d5Z-d6d7Z.d8d9Z/d:d;Z0dd?Z2d@dAZ3dBdCZ4dDdEZ5dFdGZ6dHdIZ7dJdKZ8dLdMZ9dNdOZ:dPdQZ;dRdSZdVej?dWej>dXej?dWej@dYdZd[ZAd\d]ZBd^d_ZCd`daZDdbdcZEdddeZFdfdgZGdhdiZHdjdkZIdldmZJdndoZKdpdqZLdrdsZMdtduZNdvdwZOdxdyZPdzd{ZQd|d}ZRd~dZSddZTddZUddZVddZWddZXejje dd ddZYddZZddZ[ddZ\ddZ]ejj^ddZ_ddZ`GdddZaddZbddZcddZdddZeddZfddZgej>dejhdddejhddddddddfejhdddddddddddddfejhddddddejhdddddddddfejhddddddddddddddfgddZiddZjddZkddZlddZmddZnddZodd„ZpddĄZqej>dejrdesddddddddfejrdesddȍdddddddfejrdesddddddddftdǡgddʄZudd̄Zvdd΄ZwddЄZxdd҄ZyddԄZzddքZ{ejje d d dd؄Z|ejje d d ej>ddggdۢej>dgdݢdd߄Z}ejje d d ej>ddgddgddZ~ddZdS)N)arrayarangenditerall)assert_ assert_equalassert_array_equal assert_raises HAS_REFCOUNTsuppress_warningscC(g}|js||j||jr|SN)finishedappend multi_indexiternextiretr>/usr/lib/python3/dist-packages/numpy/core/tests/test_nditer.pyiter_multi_index  rcCr r )rrindexrrrrr iter_indicesrrcCr r )rr iterindexrrrrriter_iterindicesrrzPython lacks refcounts)reasoncCstd}td}t|}t|}t|gddggd|gd }t|j tt||ktt||kWdn1sEwYd}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)adtrc_arc_dtitrc2_arc2_dtit2rrrtest_iter_refcount%sJ         r7cCs dD]}tt|}tdt|D]n}tdgt|}tt|D]}d||@r4tddd||<q$t|}|||}t|gdgg}t dd|D|t|j gdgg}t dd|D|t|dkrt| dd gdgg}t d d|D|qqdS) N))r:r;)r=r:r;r:)r=r:r=r=r:r=readonlycSg|]}|qSrr.0xrrr bz(test_iter_best_order..cSr@rrrArrrrDerErcSr@rrrArrrrDirE) rr)prodrangelenslicetuplereshaperrTswapaxesshaper/dirs dirs_indexbitaviewrrrrtest_iter_best_orderPs(  rUcC dD]}tt|}tdt|D]y}tdgt|}tt|D]}d||@r4tddd||<q$t|}|||}t|dd}t dd|D|j ddt|j dd}t dd|D|j j ddt|dkrt| d d dd}t d d|D| d d j ddqqdS) Nr8r=r>CordercSr@rrrArrrrD|rEz%test_iter_c_order..cSr@rrrArrrrDrErrFcSr@rrrArrrrDrE rr)rGrHrIrJrKrLrrravelrMrNrOrrrtest_iter_c_orderk,   r\cCrV) Nr8r=r>FrXcSr@rrrArrrrDrEz%test_iter_f_order..cSr@rrrArrrrDrErrFcSr@rrrArrrrDrErZrOrrrtest_iter_f_orderr]r_cCrV) Nr8r=r>ArXcSr@rrrArrrrDrEz*test_iter_c_or_f_order..cSr@rrrArrrrDrErrFcSr@rrrArrrrDrErZrOrrrtest_iter_c_or_f_orderr]racCsDtddd}tj|dgd}d|_tdd|Dgd dS) Nrr=r:rflagsrr=cSr@rr)rBrrrrrDrEz/test_nditer_multi_index_set..)r=r:r;r9)r)rrLrrr)r/r3rrrtest_nditer_multi_index_setsrecCsHd}tjtgddgd}t|}|f|_t|}t||dS)Nr)oiMirrb)r)rrr+r,rr)rr start_count end_countrrr$test_nditer_multi_index_set_refcounts   rjcC^td}t|dgdgg}tt|gdt|ddddgdgg}tt|gddS)Nr;rr?)rrFr=r:r>)rornrmrl)rrrrr/rrrr#test_iter_best_order_multi_index_1d rqcCtd}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=r:rr?)rrrrFrdrFrrFrFrFr=r^rX)rtrvrurwrdrxr>)rvrwrxrtrurd)rdrurtrxrwrv)rxrwrvrdrurt)rvrtrwrurxrd)rdrxrurwrtrv)rxrdrwrurvrtrrrLrrr.rprrr#test_iter_best_order_multi_index_2ds*"$,.,& ( rzcCtd}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=r:rr?) rrrrrrFrrFrrrFrFrr=rrr=rFrFrrrFrrFrFrFrrFrFrFrFr=rrFr=rFr^rX) r}rrrrrr~rrrrrr>) rrrrrrr}r~rrrr) rrrrr}r~rrrrrr) r~r}rrrrrrrrrr) rr}rrrrrr~rrrr) rrrrr}rrrrrr~r) r~rrrrrr}rrrrrryrprrr#test_iter_best_order_multi_index_3dsN$&.4  ( . rcCrk)Nr;c_indexr?rrFr=r:r>r:r=rFrrrrrrprrrtest_iter_best_order_c_index_1d%rrrcCrs)Nrr=r:rr?rrFr=r:r;r9r^rX)rr:rFr;r=r9r>)r:r;r9rrFr=)r=rFrr9r;r:r9r;r:r=rFr)r:rr;rFr9r=)r=r9rFr;rr:)r9r=r;rFr:rrrrLrrr.rprrrtest_iter_best_order_c_index_2d02 $,. & ( rcCr{)Nr|r=r:rr? rrFr=r:r;r9r r^rX rrr=rr;rrFrr:rr9rr> rrrrrrrrFr=r:r;r9 r;r9r=r:rrFrrrrrr rFrr:r=r9r;rrrrrr rrrr=rr;rrFrr:rr9 r;rr=rrrr9rr:rrFr rFrr:rr9rrrr=rr;rrrprrrtest_iter_best_order_c_index_3dMR &.4  ( . rcCrk)Nr;f_indexr?rr>rrrprrrtest_iter_best_order_f_index_1drrrrcCrs)Nrr=r:rr?rr=r;rFr:r9r^rXrr>)rFr:r9rr=r;)r;r=rr9r:rF)r9r:rFr;r=r)rFrr:r=r9r;)r;r9r=r:rrFrrrprrrtest_iter_best_order_f_index_2d}rrcCr{)Nr|r=r:rr?rr^rXrr>rrrrrrrrprrrtest_iter_best_order_f_index_3drrcCs2dD]}t|}t|}tdt|D]}tdgt|}tt|D]}d||@r6tddd||<q&t|}|||}t|dgdgg}t |j dt |dj |ft|j dgdgg}t |j dt |dj |ft|dkrt| dddgdgg}t |j dt |dj |fqqdS)Nr8r=r> external_loopr?rFr)r)rGrrHrIrJrKrLrrndimrPrMrN)rPsizer/rQrRrSrTrrrr test_iter_no_inner_full_coalesces4        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=r:r;r>rr?rrorrF)r|r)rrLrrrrPrprrr!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=r:r;rr?rrFrrrWrXr^r`)rrLrrrrNrM)r/ra3drrrtest_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?rr:r=r:rFrr;r;r=r:rr|)rrr)int32ritersizerPrLrrrrtest_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=r:r? writeonlyallocate)rrFN)r>r>r;op_axes itershaperFr<)rrr=)r:r=r;)rrr=r^)rYrr)r=rr|)r>rFr;rnr) r)rrLrroperandsrPstridesrMr ValueErroronesrprrrtest_iter_itershape_s4     rc Cs ttttdtdggdggdttttdddtdggdggdttttdddtdddggdggdttttdddtdddggdggdttttddddtddddggdggdttttd ddd tddddggdggdz'ttdd dd tdd dtdddggdgdgd d ggtd ty}z"t|}t|ddkd|t|ddkd|WYd}~nd}~wwz"ttdddtdggdgdggdd gdt j ggddtd tyG}z.t|}t|ddkd|t|ddkd|t|ddkd|WYd}~nd}~wwztt dt dggd d gdggtd ty}z#t|}t|ddkd|t|ddkd |WYd}~dSd}~ww)!Nr=r:r?rrr;$rrrFr 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))r;r:rz (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=rFrFrnz(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 rrrrLAssertionErrorstrrfindr)newaxiszeros)emsgrrrtest_iter_broadcasting_errors~s    " "     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 flagGrXnoonr$r:r=rrrrrr r?rr ?rFFTcS|jSr rrrrrz(test_iter_flags_errors..cSrr rrrrrrrcS d|_dS)Nrlrrrrrassign_multi_index z2test_iter_flags_errors..assign_multi_indexcSrNrrrrrr assign_indexrz,test_iter_flags_errors..assign_indexcSrr)rrrrrassign_iterindexrz0test_iter_flags_errors..assign_iterindexcSr)Nru) iterrangerrrrassign_iterrangerz0test_iter_flags_errors..assign_iterrangebuffered) rr rr TypeErrorr)rrc writeabler)r/rrrrrrrrtest_iter_flags_errorssh            rcCstdtdtd}}}t|||ggdg}|3d|dd<t|gdt|gdt|gdd |d <t|dddd gWddS1sSwYdS) Nr:@r )r:r:rr=)r:rFr=rrFr=r|rF)r)rrr)r/bcrrrrtest_iter_slices" "rcCs tjddddddj}tj|gddggd td gd }|d|jd d <d|jd d <Wdn1s9wYt|dtj|gddggd td gd }||jd dd}d|d <d|jd d <Wdn1suwYt|dd}d}dS)Nrf8r&r=r:r;r r! same_kindrr#r.r>rFi.)r)rrLrMrr'rr)r/r3rCrrrtest_iter_assign_mapping!s(    rcCs0tjddd}|}t|jj|jjkt|gddggdtdgd}|0t|j dj|jjt|j djj|jjt|j d|d |j ddd<Wdn1s\wYt|d gd~tjddd}|}t|jj|jjkt|ggd gdd 9}t|j dj|jjt|j djj|jjt|j d|d |j ddd<d |j ddd<Wdn1swYt|d gdtj d dddd}d|_tjddd|dd<t|j j t|gdgg}t|j dj j t|j d|t|ggdg"}t|j dj j t|j d|d|j ddd<Wdn 1s>wYt|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)i1rFr?)r r!alignedr:r|rrcontigr buffersize)r)rbyteswapr*rr' byteorderrrdtypesrrrcr contiguous)r/aurrrrtest_iter_nbo_align_contig4sh   rcCs\tjddddd}t|gdggtdgd}|t|jd|t|jdjtdWdn1s:wYtjdd ddd}t|gdd ggd td gd }t|jd|t|jdjtd Wdn1sywYtjdddddddd}t|gddggdtdgd }t|jd|t|jdjtdt|jdjd|ddddddddf}t|gddggdtdgd }t|jd|t|jdjtdt|jdjdtjddddddj }t|gdd ggdtdgd 4}t|jd|t|jdjtdt|jdjdd|jdd<t |ddkWdn 1sLwYt|ddtjdddddd}t|gdd ggdtdgd (}t|jdjtdt|jdjdgd |jddd<Wdn 1swYt|gd dS)!Nrrr&r=r:r r(rf4r#rr;rFr?r.safer)`r r>r)r;0g)ri4rr")r;rFr=r:) r)rrLrr'rrrNrrMrrprrrtest_iter_array_castrsr        rc 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             r cCsttdgdggtdgd}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"rr:)rr)float32r'rrvaluefloat64rrrrtest_iter_scalar_castsB           rc Csttttdgdggtdgdtttdgdggtdgdttttdgdggd tdgd ttttdgdggd td gd dS) Nr=r rr(r rgDcLr?rr#rr)r rrr)r r'rrrrrtest_iter_scalar_cast_errorss     rcCsddd}tjgdd|dgdd}trt|}ttt|tr)tt||t|dgdg}d d |D}ttj|dd|dgd\}}}trTtt||t| d d j dd gdgd d}t |j dd |D}ttj|dd| d d j dddgd\}}}trtt||t| d d j dd gdgd d}||D]}d|d<qdgd\}}}Wdn1swYtrt t||dkt|tjdgddddS)Nr:dr/rrOr&refs_okr?cSg|]}|dqSrrrBx_rrrrD#z1test_iter_object_arrays_basic..r=rrWrXcSrrrrrrrrD,rr^r .rFr;)r)rr r+r,r rrrrLrMrr-r[)objr/rcrvalsrCrrrtest_iter_object_arrays_basicsB    $ rcCs\tjddd}t|ddgdgddd }||D] }|d d 7<qWdn1s-wYt|tdd tjddd}t|ddgdgddd }||D] }|d d 7<qTWdn1siwYt|tdd tjd d dgd}|d}td|dd<t|ddgdgddd }||D] }|d d 7<qWdn1swYt|tdd tjd d dgd}|d}tdd|dd<t|ddgdgddd }|"|dd}trt|}|D] }|d d 7<qWdn 1swYtr"tt||d kt|tdddS)Nrrr&rrr r"rr#.rFr)prr/rr/)r/riHrriI) r)rrrrr r+r,r)r/rrCobrrrr#test_iter_object_arrays_conversions<sb  r!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)Nr:rr&rr common_dtyper?r.r=rrrFrru4i8@c8rr;c16)r:r$r&rrr)rrrrr)r'r rrrrtest_iter_common_dtypeis        r)c CsrdD]+}td}t|gdg|gg}|t|jd|uWdn1s(wYqtd}|dd}|dd}t||gdgdgdgg}ttj|j Wdn1s_wYtd}|}|}t||gdgdd gdd gg}|t|jd|uo|jd|uWdn1swYt||gdgdgdgg}t|jd|uot|jd| Wdn1swYtd}|ddd }|ddd }t||gdgdgd gg}t|jd|uo|jd|utd tjd }|dd}|tjdd}t||gdgdgd gg}ttj|j Wdn 1s5wYdD]J}t ddg}|}|j }|}t|||gdgdgdg|gg }|j\}}}tt|| tt|| Wdn 1swYqr?r overlap_assume_elementwiser=rr;r&r:)rr rr) rrrrr) shares_memoryint8viewrrrM) flagr/rrCrra2b2c2rrrtest_iter_copy_if_overlaps  "(                  r3cCshtddd}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=r:r?rrFrcSg|]\}}||kqSrrrBrCyrrrrD z%test_iter_op_axes..rr;)r=rFrcSr5rrr6rrrrD r8r9rr>r>cSg|]\}}||qSrrr6rrrrDr8)r>rr>cSr;rrr6rrrrDr8cSr;rrr6rrrrDr8(r)rrFr>r>)r>r>rrF)r=r:r9r=r|r>)r:r9) rrLrrMrrrr[r)rrP)r/rrrrrtest_iter_op_axess<*& $& $& & r>c CsHtddd}ttt||ggdggddgdgdggdttt||ggdggdddgddggdttt||ggdggdddgddggdttt||ggdggdddgddggdttt||ggdggdddgddggdttt||ggdggdddggd gdttt||ggdggdddgddggddS) Nrr=r:r?rrFr4r>r)rrLr rrr/rrrtest_iter_op_axes_errors)s, r@cCstdddd}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 }|}Wdn1swYtdd|D|jd dtdddddd}t|dgd dddd }|}Wdn1swYtdd|D|jd ddS)Nrr=r:r;cSrrrrArrrrDJrz"test_iter_copy..cSrrrrArrrrDNrrrangedr^rYrcSrrrrArrrrDSrcSrrrrArrrrDWr)r:rcSrrrrArrrrD[r)r=cSrrrrArrrrDarr"rr9)rYr$r%rcSrrrrArrrrDgrrXzf8cSrrrrArrrrDmr) rrLrr.rrrnextr[)r/rjrrrtest_iter_copyCsH     rFr'All loop_dtypezignore::numpy.ComplexWarningcCs|dkr |d}n t|jdkr|d}tjdt|d}z||}Wn ty4YdSwtj|fgd|gdd }t t|tj rVt |tjd|d| }t |}~t |}~t ||t ||dS) Nmz[ms]r50r&rrrr"r%r$)lowerr)r'itemsizerr*astype Exceptionr issubdtypenumberrr.rD)r'rHarrexpectedr3it_copyresres_copyrrrtest_iter_copy_castsps,    rYc Cs tdtdfdtdfg}tdtdfdtdfg}tjd|d}tj|fgd |gd d }|}t|}~t|}~|d|d}t|d|t|d||djD]"}|d||d|j }t|d||t|d||q`dS) Nr/zi,rz>i,d,S17,>d,(3)f,O,i1rz>i,>i,S17,>d,>U3,(3)d,i1,OrKr&rLr"rM) r)r'rrr.rDrPrnamesbase) in_dtype out_dtyperTr3rVres1res2rUfieldrrrtest_iter_copy_casts_structureds.  racCs`td}t|dggdgddggdtdgd}t|jdj|jt|jdjtddS)Nrr?rrrr(rF)rrr)r'rrrPrprrr test_iter_allocate_output_simples  rbcCstd}t|dgddgdgddgg}|3d|jddd<||D]}|dd|d d7<q%t|jd|dWddS1sKwYdS) Nrrdelay_bufallocr?rr rF.r)rrrresetrr/rrCrrr,test_iter_allocate_output_buffered_readwrites "rfc 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=r:r?rrrr(rFrr;rrW)rYr%)rrr;) rrLrr)r'rrrPrrMrNrprrr!test_iter_allocate_output_itorders.     rgcCstdddddd}td|ggddgd ggtd dggd dgd }t|jd jdt|jd jdt|jd jtd dS)Nrrr&r=r:r;rrr?r#rr%rrr)r;rr) rrLrr)r'rrrPrrprrr test_iter_allocate_output_opaxess  ricCsttdgddtdgdddggdggddd gg}t|jdtdttdgd dtdgdddggdggddd gg}t|jdtdttdgddtddddggdggddd gg}t|jdtdttdgd dtdd ddggdggddd gg}t|jdtd ttdgd dtd d ddggdggddd gg}t|jdtd dS)Nr:rr&rrr?r=rrrr#r$r%)rrrrr)r'rrrr)test_iter_allocate_output_types_promotions(  rjcCstdgdd}t|dggdgddgg}t|jd|jdt||dggdgdgddgg}t|jd|jd kt|jdd |jd dS) Nr:r#r&r?rrrrFr==)rr*rrrrrprrr*test_iter_allocate_output_types_byte_orders    rlcCsbtdddtdtdggddggdggd}t|jd jtd t|jd jd dS) NrFgffffff@r|r:rrr?r;r complex128)rr)r rmrrr'rrrrr&test_iter_allocate_output_types_scalars rncCsGdddtj}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____array_priority__rrrr MyNDArraysrtrFr=r:r;r?rrr=r=)rr no_subtype) r)ndarrayrr.rrLrMrrtyperrrP)rtr/rrrrr!test_iter_allocate_output_subtypes"  ryc Cstd}ttt|dggdgddggttt|dggdgddggttt|dgdgddgtttddggddgddggtdtdgdtd d d d d d}ttt|dggdgddggdtdgddtjdggdttt|dggdgddggdtdgdgdgdttt|dggdgddggdtdgdgdgdtd d d d d d}ttt|dgdgdgddggdtdgddtjd ggddS)Nrrrr?rr rr(rrr&r=r:r;rrFrh)rr:rF)rr=rFr reduce_ok) rr rrrr)r'rLrr?rrr test_iter_allocate_output_errors0sL             r{cCstdddd}t|dg}|dtdd|D|ddd ddf|ddd ddddf}t|dg}|d td d|D|d ddddfdS) Nrr=r:r;rrFcSr@rrrArrrrD_rEz)test_iter_remove_axis..rr>cSr@rrrArrrrDdrE)rrLr remove_axisrr[rprrrtest_iter_remove_axisZs  *  .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=r:r;rr<rcSr@rrrArrrrDqrEz;test_iter_remove_multi_index_inner_loop..cSr@rrrArrrrDsrErFcSrr rPrrrrrwrz9test_iter_remove_multi_index_inner_loop..r)rrLrrrrPitviewsremove_multi_indexr rrdrrKenable_external_loopr )r/rbeforeafterrrr'test_iter_remove_multi_index_inner_loopfs&       rcCsd}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|ttddqdS)Nr9rr;r:r=rrr^rBr>rrW rF) rrLrrrlistrHrrd)rr/rcrrrrtest_iter_iterindexs6$"rcCsd}tdddddd}|jdd }t|d gd gd|d }t|jd tdd|D|dD]}||_t|j|tdd|D||d|dq0t|d dgd gdd|d}t|jd tdd|D|dD]}||_t|j|tdd|D||d|dqmdd}t|gdd gdd|d}t|jd t|||dD]}||_t|j|t||||d|dqdS)Nr9rrr&r;r:r=r^rXrAr?rBrrcSrrrrArrrrDrz'test_iter_iterrange..)rrx)r:r)r9r9)rr=)rrcSrrrrArrrrDrrrFrr)rYr%rcSrrrrArrrrDrcSrrrrArrrrDrcSs*tjgdd}|D] }t||f}q |S)Nrr&)r)r concatenate)rvalrCrrr get_arraysz&test_iter_iterrange..get_array)rArr)rrLr[rrr)rr/a_fortrrrrrrtest_iter_iterrangesB   &  &    rc Cs(g}|tjddddddj|tjdddtjd d dd d}d |_tjd d d|dd<|||tjdd dddddj|D]@}dD];}g}t |ddggdgdd|d}|j st |dj |k||d ||j rktt||jddqUqQdS)Nrr(r&r=r:r;rr)ArrFrrxr9)rFr=r:r9rrrrr)r?rrrWr)rYr$rrrX)rr)rrLrMr*rrr'rrrrr.rrrr[)arraysr/rrrrrrtest_iter_bufferings:  " rcCstddddj}t|dggdgddd d }d }||js4||d <|d 7}||jr%Wdn1s>wYt |j dd tddS)Nrr=r:r;rr rrrrWr)r$rYrrrFrX) r)rrLrMr*rrrrrr[rerrrtest_iter_write_bufferings"rcCs td}tjddd}t||ggddgddd}t|jttd d |ttd d |ttd d |d d}tt|||t|j t|j d|3t|ddd|d<t|ddddgtdd|Dt t t ddgdWddS1swYdS)NrrFrr&)rrcrrzr r"r#cSrr rrrrrrrz3test_iter_buffering_delayed_alloc..cSs|dSrrrrrrrscSs |ddS)Nrr=rrrrrr s cSs d|d<dSrrrrrr assign_iter s z6test_iter_buffering_delayed_alloc..assign_iterrlrr=cSs$g|]}|dd|ddgqS)rrrFrrArrrrDs$z5test_iter_buffering_delayed_alloc..) r)rrrhas_delayed_bufallocr rrdrrrziprH)r/rrrrrr!test_iter_buffering_delayed_allocs,     *"rcCstjddd}t|ddggdgdtdgd d }||D] }|d d 9<qWdn1s4wYt|d tjddddS) Nrrr&rrrrrr:r$r%r.r=)r)rrr'rr/rvrrrtest_iter_buffered_cast_simples  rc Csdtjddd}t|ddggdgdtdgd d }||D] }|d d 9<q%Wdn1s:wYt|d tjdddtZ}|tj tjddd}t|ddggdgd tdgd d }||D] }|d d 9<qzWdn1swYt|d tjdddWddS1swYdS)Nrrr&rrrrrr:r.r=r"r') r)rr*rrr'rr filterComplexWarning)r/rrsuprrr#test_iter_buffered_cast_byteswapped's:   "rcCsxtjddd}|d7}t|ddggdgdtd gd d }||D] }|d d 9<q'Wdn1s.rr/rrr=rrFrror)rrr)rrrr r r r cSsg|]}|qSr)r.rArrrrDrr)@rrcSrrrrrrrrDrr9rrrr)rrtest)rrrcstddgdgdddS)Nrrr?r"rr#)rrr?rrrsz9test_iter_buffered_cast_structured_type..))ru2r)rrrr;r9rcSrrrrrrrrDr) r)rrrr'rr r+r,rr r)sdtrrrrCsdt1sdt2rr?r'test_iter_buffered_cast_structured_typews~  rc Csgd}ddg}tjddg|d}dD]<}tj|j|dd s Jtjd d gd d}ttt||fd dg||gdd|gdWdn1sJwYqdS)Nr)rr)r/rrrr&)r r?rr"rrFr=zi,irrzf,fr#)r)rcan_castr'pytestraisesrr)rrr/intent simple_arrrrrr:c3sptddD]/}t|dD]'}D]"}|j|jjf}tjjd|}dD]}|||fVq*qq qdS)Nir)r:r:r:ru)rHrOr)lib stride_tricks as_strided)xsysrrrTskipr/ op_axes_listrr get_paramssz3test_iter_buffered_reduce_reuse..get_params)rrcrr%rr>.)rrcrrr%) r)rfloatr'rr.rrdrrPint_rHr)rcrr%rrTrrnditer2a2_inb2_incomp_resbufsizenditer1a1_inb1_inrWrrrtest_iter_buffered_reduce_reusesF        rc Cstdddd}tdddd}tddd}t|||ggdd gdgdggttt|||ggdgdd gdggttt|||ggdgdgdd ggdS) Nrr=r:r;rrFr|r?r)r)rrLrr r)r/rrrrrtest_iter_no_broadcast 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)Nr|r=r:rrFcg|]}tqSrrrB_rErrrD$ rz-TestIterNested.test_basic..rrrrrrrcrrrrrrrrD( rr;r9rrrrrrcrrrrrrrrD, rrr=r;rFr:r9rrrrrrrrLr) nested_itersrselfr/rrrrr test_basic 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)Nr|r=r:rrFcrrrrrrrrD5 rz/TestIterNested.test_reorder..rrcrrrrrrrrD9 rr;r9rrrrrrcrrrrrrrrD= rrrrrrWrXcrrrrrrrrDB rr)rrrrrrcrrrrrrrrDF rcrrrrrrrrDJ rrrrrr test_reorder/ 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)$Nr|r=r:r>rrFcrrrrrrrrDS rz1TestIterNested.test_flip_axes..rrcrrrrrrrrDW rr;r9rrrrrrcrrrrrrrrD[ rrrrrrWrXcrrrrrrrrD` r)rrrrrrrcrrrrrrrrDd rcrrrrrrrrDh r)rrr)rrr)r9r:rF)r;r=rrrrrrtest_flip_axesM s&..".&zTestIterNested.test_flip_axescstddd}tddd}t||gdgdgg\}fdd|D}t|ddgddgddggddgddgddgggt||gdgdgg\}fdd|D}t|ddgddggddgddggddgddgggdS)Nr=rFr:rcrrrrrrrrDq rz1TestIterNested.test_broadcast..crrrrrrrrDu rr)rr/rrrrrrtest_broadcastk s28zTestIterNested.test_broadcastc stddddd}tj|dgdggdd gd d \}tdjtd fd d |D}t|gdgdgd}tddddd}tj|dgdggddgdd d\}|B0tdjtd |D]}D] }|dd7<qoqkt|gdgdgWdn1swYWdn1swYt|gdgdgtddddd}tj|dgdggddgdd d\}tdjtd |D]}D] }|dd7<qqt|gdgdg|t|gdgdgdS)Nrrr&r=r:rrFr?r.r)rr%crrrrrrrrD rz2TestIterNested.test_dtype_copy..r)r:r;r9rr r!r)rr$r%.rr)rrLr)rrr'close)rr/rrrCr7rrrtest_dtype_copyx sR   zTestIterNested.test_dtype_copycCstddddd}tj|dgdggdgd gd d d \}}t|djtd |D]}|D] }|d d7<q.q*t|gdgdgdSNrrr&r=r:rrFrr rr)rcrr$r%.rrrrLr)rrr'rr/rrErCr7rrrtest_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|Dqpqlt|gdgdgdgdgdS)Nr|r=r:)rFrr=crrrrrrrrD rz*TestIterNested.test_0d..rcrrrrrrrrD rrrFr;r9rrrrrrcSr@rr)rBzrrrrD rErrrr)r)rrLrrr)rr/rrkrCr7rrrtest_0d s:&zTestIterNested.test_0dc Cstddddd}tj|dgdggdgd gd d d \}}|7|%t|djtd |D]}|D] }|d d7<q4q0Wdn1sJwYWdn1sYwYt|gdgdgdSr rrrrr%test_iter_nested_iters_dtype_buffered s$ z4TestIterNested.test_iter_nested_iters_dtype_bufferedN) rprqrrrrr r r rrrrrrrr s * rc Csztd}ttt|dggdgddggdgdggdtddd }ttt|dgd gdgddggdd gddggddS) Nrr?r rrr>r4r=r:rrF)r)rr rrrLr?rrrtest_iter_reduction_error s     rc Cstd}t|dgdgdgddggdgdggd}|2d|jd d <|D] \}}|d |7<q%t|jd jdt|jd t|Wdn1sPwYtdd d }t|dgdd gdgddggdd gddggd}|Md|jd d <t|d jdt|d j d|D]\}}t t |D] }||||7<qqt|jd jdt|jd t|Wdn1swYt d}t|dgdd gdgddggdgdgd}t|dggddgddggdgdgdd}|r|V|jd  d|jd  d||D]}|d d |d7<q|D]}|d d |d7<q*t|jd |jd t|jd |jWdn1s[wYWddSWddS1stwYdS)Nrrzr?r rrr>r4rF.r=r:rrrl)r=r:r9)rr>rF)rzrrrcr)rr)r)rrrrrsumrLrPrrHrIrfillrdr)r/rrCr7rEit1r6rrrtest_iter_reduction s`              Trc CsPtd}tjddd}t||gddgdgdd ggd gd ggd }|,t|d jtdt|d j|jk|D] \}}|d|7<q?Wdn1sVwYt|t |td dd}tjd d gdd}t||ggddgdd ggd d gd d ggd }|2t|d j dt|d j d|D]\}}t t|D] }||||7<qqWdn1swYt|tj |d dtdd }tj|dggddgddggd d gd d ggdd}||jd d |t|d gdWdn 1swYtdtjddd ddd dfd dd }t|j |j |d<tjdtjd dd}|} |ddddddf}t||ggddgdgg}||D] \}}|dqrWdn 1swYt|d dd| d ddt|dddddS) Nrgrr&rzrr?r rrr>r4rF.r=r:rzrrrorl)axis)rcrzrrrrur)rFr=rFr=)rrrr;rr9rr)r)rrrr*rrr'rrrLrPrrHrIrrrdrr- transposerr.) r/rrrCr7rErr3y_base y_base_copyrrrtest_iter_buffering_reduction st         0   rcCstd}td}tj||ggddgdggdd}|dd |D}Wdn1s/wYt|gd tt||jdS) N)r=r)rFrrr?r r9)rcrrcSsg|] \}}|jdqSrlr~r6rrrrDe szDtest_iter_buffering_reduction_reuse_reduce_loops..)r9r=r9r=)r)rrrrr)r/rr3bufsizesrrr0test_iter_buffering_reduction_reuse_reduce_loopsY s   r!c 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)NrroTTF)FTFru1r&rrr writemaskedr? arraymask)r r%r$rzrrrM)r)rrr rrr)r/rrIm2m3mbad1mbad2rrrtest_iter_writemasked_badinputi s      r*cCs"z|jWdStyYdSw)NTF)rr)iteratorrrr _is_buffered s  r,r/rorr&)&ror=)r;i8|r:)rr:)r-rr9r>cCs|j}|dd}tj|td}gd||d<t||ggddgdd gg}||D]\}}d |d<q,Wdn1s?wYt|tgd ||t||gd gddgdd gg}d }||D]\}}d|d<t||rxd}qhWdn1swY|st|tgd||nt|tgd||d|d<tj||gd gddgdd ggddgdd}||D]\}}d|d<qWdn1swYt|tgd||dS)Nr>r:r&r".r r$r?r%rFrrTr Fr)r r rFr%r"rM)r:r:r )rPr)emptyboolrr broadcast_tomay_share_memory)r/rPrepsmskr3rCrI is_bufferedrrrtest_iter_writemasked s\        r6cCstdd}|}tjjddddt}tj||gddgdd gd d ggd d gd}t}t r7t |}|D] \}}d|f|d<q9~~~t rWt ||t |ksWJt ||||||td|f|jkssJ~t rt ||ksJdSdS)Ni'z>i,Orr=)rrrr r$r?r%zr)r%rcr)rr=N)NN)rrurtrurvrwrr|r=r9)r)rrr)r3r/rrrrr test_iter_allocated_array_dtypes0 s&  "   "    rQcCstddgdgdggd}t|jdtt|dt|jdt|jdttt||tt|dttt|tt ddgdggdgd }t|jdtt |d tt ddgdggdgdd }t|jdtt |d tt tt ddgdggdd Wdn1swYgd }t j ddd}t|ddgdgd|d}t|}t|ddt|ddt|ddgdgdt|dddS)Nr=r:rr?rrrr9r4rFrrrrrr&rrr"r#r/rrr)rrrrDrrr StopIterationrdr)rrIrr)rrr/rrrr test_0d_iterK s<        rScsttddttjdddttddddf<ttfddGddd}tttj j tj ||gdd dS) NcSstjddddS)N)ihBr=rr&)r)rrrrrrw sz*test_object_iter_cleanup..rr>cs0tdddddfdddddfS)Nr>)r)addrrToarrrrr} s0c@seZdZddZdS)z#test_object_iter_cleanup..TcSstd)N Ambiguous)r)rrrr__bool__ sz,test_object_iter_cleanup..T.__bool__N)rprqrrrXrrrrrM s rMrr&) r rr)rBUFSIZErLrPrr: logical_orreducer)rMrrUrtest_object_iter_cleanupq s  r\cCsftddgddgddgddggddd}ttt|WddS1s,wYdS)NrFr>r=)r)rrrrr)rTrrrtest_object_iter_cleanup_reduce s,  "r]rT)@r;r=r^)r'rYcCs<tjdtjd}tj|dt|d}t|tjddtddS)Nr^r&rx)rr'outr;)r)rintprr:rfull)rTr_rWrrr%test_object_iter_cleanup_large_reduce srbcCsnttjjd}tjjtd|fd}tt t ||dddfftt t ||dddffdgddS)NrrFrlrrb) r)iinfor`maxrrrrr rr)rrTrrrtest_iter_too_large s  rec CsLd}d}||ttjjkr|d7}||ttjjksddg|}g}t|D]}|dd}d||d<|t|q*t|}tdD]}tt t |d|Wdn1sawYqIt |ddt|D]1}tdD]*}t ||d|tt t ||dd|Wdn1swYqxqrdS)NrrFr=rr>r) r)rcr`rdrHrr/rKr r_multiarray_teststest_nditer_too_large) base_sizenumshape_templaterrrPmoderrr#test_iter_too_large_with_multiindex s6         rlc Cs0tjddd}|}t|jj|jjkt|gddggdtdgd}|d|jd dd<Wdn1s=wYt |dt|gddggdtdgd}z!|t |j j d d |jd dd<t d 1srwYWnYt |d t |j j d t t t|d t|gddggdtdgd}||jd }d|dd<t|j jWdn1swYt |dt|j j d|dd<t |dt|gddggdtdgd}|$||D]}d|d<qWdn 1swYWdn 1swYt|gddggdtdgd}|,||D]}d|d<q1Wdn 1sDwYt t t|d Wdn 1s[wYt|gddggdtdgd}~||D]}d|d<qvWdn 1swY|j}t t|dS)Nrrr&r r!rr#rrFz!exit context manager on exceptionTr{.)r)rrr*rr'rrrrrcrrr getattrwritebackifcopy __enter__ RuntimeError)r/rr3rCenterrrrtest_writebacks s                 rscCs`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)r_r=)r)rTrrr ) rCr7r_addopr3r/rrrrrr add_close s z(test_close_equivalent..add_closecSsxtj}t|||ggdgdgddgg}||D] \}}}||||dq|jdWdS1s5wYdSrt)r)rTrr)rCr7r_rur3r/rrrrr add_context s$z*test_close_equivalent..add_contextr9rrr=r )rHr)rvrwrrrrtest_close_equivalent s  rxcCsDttd}tt|d|ttt|ttt |ddS)Nr:rr) r)rrrrDr r rRrrnrMrrrtest_close_raises$ s  rycCs"ttd}tt|jddS)Nr:rF)r)rrr rr rMrrrtest_close_parameters+ srzc Cstjddd}|}t)}|ttj|gddggdtdgd}~t |j dks1JWddS1sr@rF parametrize typecodesfilterwarningsrYrarbrfrgrirjrlrnryr{r}rrrrrrrrrrrrrrrrrslowrrrrrrr!r*r,rr6r@rKrLrNrQrSr\r]rr:r.rbrerlrsrxryrzr~rrrrrrrs  *   , % %$FKM >>,&'-@Z&- !    * ")2J (" 36 ;@B , . ;  &$&*  "A