
    Ph                    
   d dl Z d dlZd dlZd dlZd dlZd dlmc mZ d dlm	Z	m
Z
mZmZ d dlmZmZmZmZmZmZmZmZ d Zd Zd Zej2                  j5                  e d      d	        Zd
 Zd Zd Zd Zd Z ej2                  j5                  e d      d        Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d  Z2d! Z3d" Z4d# Z5d$ Z6d% Z7d& Z8d' Z9d( Z:d) Z;d* Z<d+ Z=d, Z>d- Z?ej2                  j                  d.ej                  d/         ej2                  j                  d0ej                  d/         ej2                  j                  d1      d2                      ZCd3 ZDd4 ZEd5 ZFd6 ZGd7 ZHd8 ZId9 ZJd: ZKd; ZLd< ZMd= ZNd> ZOd? ZPd@ ZQdA ZRdB ZSdC ZTdD ZUdE ZVdF ZWdG ZXdH ZYdI ZZdJ Z[dK Z\ej2                  j5                  edL      ej2                  j5                  e dM      dN               Z]dO Z^dP Z_dQ Z`dR Zaej2                  j                  dS        ZcdT Zd G dU dV      ZedW ZfdX ZgdY ZhdZ Zid[ Zjd\ Zkej2                  j                  d] ej                  d^d_`       ej                  dad_`      dddbddf    ej                  dcd_`      dddbdddddbddf    ej                  ddd_`      ddde    ej                  dfd_`      dddbdddgf    ej                  dcd_`      dddbdddddbdddhf   g      di        Zmej2                  j                  djdkgddhd gf ej                  dldm`      d dngf ej                  dldm`      df ej                  dodm`      dhd gf ej                  dpdm`      dhdhgf ej                  dpdm`      dfg      dq        Zndr Zods Zpdt Zqdu Zrdv Zsdw Ztdx Zudy Zvej2                  j                  dz ej                  d{ex`      dddddbddf    ej                  d{exd|}      dddddbddf    ej                  d{ex`      dddddbddf   j                  d|      g      d~        Zzd Z{d Z|d Z}d Z~d Zd Zej2                  j5                  e d      d        Zej2                  j5                  e j                  ddb dk(  xr e j                  dk(  d      ej2                  j                  ddgg d      ej2                  j                  dg d      d                      Zej2                  j5                  e d      ej2                  j                  ddgddg      d               Zd Zy)    N)arrayarangenditerall)assert_assert_equalassert_array_equalassert_raisesIS_WASMHAS_REFCOUNTsuppress_warningsbreak_cyclesc                     g }| j                   s8|j                  | j                         | j                          | j                   s8|S N)finishedappendmulti_indexiternextirets     gC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\numpy/core/tests/test_nditer.pyiter_multi_indexr      s7    
Cjj

1==!	

 jj J    c                     g }| j                   s8|j                  | j                         | j                          | j                   s8|S r   )r   r   indexr   r   s     r   iter_indicesr      s7    
Cjj

177	

 jj Jr   c                     g }| j                   s8|j                  | j                         | j                          | j                   s8|S r   )r   r   	iterindexr   r   s     r   iter_iterindicesr       s7    
Cjj

1;;	

 jj Jr   zPython lacks refcounts)reasonc                     t        d      } t        j                  d      j                         }t	        j
                  |       }t	        j
                  |      }t        | g ddggd|g      5 }t        |j                          t        t	        j
                  |       |kD         t        t	        j
                  |      |kD         d d d        d }t        t	        j
                  |       |       t        t	        j
                  |      |       t        dd      } t        j                  d      }t	        j
                  |       }t	        j
                  |      }t        | g dgg|g      }t	        j
                  |       }t	        j
                  |      }|j                         }t        t	        j
                  |       |kD         t        t	        j
                  |      |kD         d }t        t	        j
                  |       |       t        t	        j
                  |      |       d }t        t	        j
                  |       |       t        t	        j
                  |      |       ~y # 1 sw Y   xY w)	N   f4	readwriteupdateifcopyunsafecasting	op_dtypesdtyper*   )r   npr,   newbyteordersysgetrefcountr   r   iterationneedsapir   copy)adtrc_arc_dtitrc2_arc2_dtit2s           r   test_iter_refcountr<   %   s   
 	q	A	$	$	$	&B??1DOOBE	2~./ $
  $&B((()"T)*#e+,
  
B#T*$e, 	qA	$B??1DOOBE	2$
 B OOAE__R F
'')CCOOA&'COOB&()	B#U+$f-
C#T*$e,A
  
 s   -AI**I4c                     dD ]L  } t        t        j                  |             }t        dt	        |       z        D ]  }t        d       gt	        |       z  }t        t	        |             D ]  }d|z  |z  st        d d d      ||<    t        |      }|j                  |       |   }t        |g dgg      }t        |D cg c]  }| c}|       t        |j                  g dgg      }t        |D cg c]  }| c}|       t	        |       dkD  st        |j                  dd      g dgg      }t        |D cg c]  }| c}|        O y c c}w c c}w c c}w )N)            rA   rB   )rD   rA   rB   rA   )rD   rA   rD   rD   rA   rD   readonlyr      )r   r.   prodrangelenslicetuplereshaper   r   Tswapaxesshaper4   dirs
dirs_indexbitaviewr   xs           r   test_iter_best_orderrW   P   s@   
 J2775>"!SZ-(D+s5z1JSZ(VtO&+D$&;JsO ) z*JIIe$Z0EubJ<.1AQQ!Q+uwwj\N3AQQ!Q+5zA~5>>!Q/zl^D^Aa^Q/# ) J ( ( ,s   	E4	E<	Ec            	      N   dD ]  } t        t        j                  |             }t        dt	        |       z        D ]T  }t        d       gt	        |       z  }t        t	        |             D ]  }d|z  |z  st        d d d      ||<    t        |      }|j                  |       |   }t        |d      }t        |D cg c]  }| c}|j                  d             t        |j                  d      }t        |D cg c]  }| c}|j                  j                  d             t	        |       dkD  st        |j                  dd      d      }t        |D cg c]  }| c}|j                  dd      j                  d             W  y c c}w c c}w c c}w )Nr>   rD   rE   Corderr   rG   r   r.   rH   rI   rJ   rK   rL   rM   r   r   ravelrN   rO   rP   s           r   test_iter_c_orderr^   k   e    J2775>"!SZ-(D+s5z1JSZ(VtO&+D$&;JsO ) z*JIIe$Z0EuC(AQQ!Q3)?@uwwc*AQQ!QS)AB5zA~5>>!Q/s;^Aa^$)NN1a$8$>$>S$>$IK# ) J ( ( ,   ?	F 	F 	F"c            	      N   dD ]  } t        t        j                  |             }t        dt	        |       z        D ]T  }t        d       gt	        |       z  }t        t	        |             D ]  }d|z  |z  st        d d d      ||<    t        |      }|j                  |       |   }t        |d      }t        |D cg c]  }| c}|j                  d             t        |j                  d      }t        |D cg c]  }| c}|j                  j                  d             t	        |       dkD  st        |j                  dd      d      }t        |D cg c]  }| c}|j                  dd      j                  d             W  y c c}w c c}w c c}w )Nr>   rD   rE   FrZ   r   rG   r\   rP   s           r   test_iter_f_orderrc      r_   r`   c            	      N   dD ]  } t        t        j                  |             }t        dt	        |       z        D ]T  }t        d       gt	        |       z  }t        t	        |             D ]  }d|z  |z  st        d d d      ||<    t        |      }|j                  |       |   }t        |d      }t        |D cg c]  }| c}|j                  d             t        |j                  d      }t        |D cg c]  }| c}|j                  j                  d             t	        |       dkD  st        |j                  dd      d      }t        |D cg c]  }| c}|j                  dd      j                  d             W  y c c}w c c}w c c}w )Nr>   rD   rE   ArZ   r   rG   r\   rP   s           r   test_iter_c_or_f_orderrf      r_   r`   c                      t        j                  d      j                  dd      } t        j                  | dg      }d|_        t        |D cg c]  }| c}g d       y c c}w )Nr#   rD   rA   r   flagsr   rD   )rD   rA   rB   r?   )r.   r   rM   r   r   r   )r4   r8   r   s      r   test_nditer_multi_index_setrk      sP    
		!Q"A	1]O	,B BNRR!R,/s   	A"c                      d} t        j                  t        j                  g d      dg      }t        j                  |       }| f|_        t        j                  |       }t        ||       y )Nr   )o      iM  i  r   rh   )r.   r   r   r0   r1   r   r   )r   r   start_count	end_counts       r   $test_nditer_multi_index_set_refcountrq      sT     E
		"((/0HA//%(KHAM&Ii(r   c                      t        d      } t        | dgdgg      }t        t        |      g d       t        | d d d   dgdgg      }t        t        |      g d       y )NrB   r   rF   )r   rG   rD   rA   rE   )rv   ru   rt   rs   )r   r   r   r   r4   r   s     r   #test_iter_best_order_multi_index_1drx      s_     	q	Aq=/ZL>2A!!$&>?q2w:,8A!!$&>?r   c                  v   t        d      } t        | j                  dd      dgdgg      }t        t	        |      g d       t        | j                  dd      j                  d      dgdgg      }t        t	        |      g d	       t        | j                  dd      d d d
   dgdgg      }t        t	        |      g d       t        | j                  dd      d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  dd      d d d
d d d
f   dgdgg      }t        t	        |      g d       t        | j                  dd      j                  d      d d d
   dgdgg      }t        t	        |      g d       t        | j                  dd      j                  d      d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  dd      j                  d      d d d
d d d
f   dgdgg      }t        t	        |      g d       y )Nr#   rD   rA   r   rF   )r   r   r   rG   rj   rG   r   rG   rG   rG   rD   rb   rZ   )rz   r|   r{   r}   rj   r~   rE   )r|   r}   r~   rz   r{   rj   )rj   r{   rz   r~   r}   r|   )r~   r}   r|   rj   r{   rz   )r|   rz   r}   r{   r~   rj   )rj   r~   r{   r}   rz   r|   )r~   rj   r}   r{   r|   rz   r   r   rM   r   r   r3   rw   s     r   #test_iter_best_order_multi_index_2dr      s    	q	AqyyA:,@A!!$&VWqyyA####.:,PA!!$&VWqyyAtt$}o~FA!!$&VWqyyAq$B$w'-J<.IA!!$&VWqyyAttTrTz*]Ozl^LA!!$&VWqyyA####.tt4}o~VA!!$&VWqyyA####.q$B$w74A?j\N	TA!!$&VWqyyA####.ttTrTz:4A?j\N	TA!!$&VWr   c                     t        d      } t        | j                  ddd      dgdgg      }t        t	        |      g d       t        | j                  ddd      j                  d      dgdgg      }t        t	        |      g d	       t        | j                  ddd      d d d
   dgdgg      }t        t	        |      g d       t        | j                  ddd      d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  ddd      d d d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  ddd      j                  d      d d d
   dgdgg      }t        t	        |      g d       t        | j                  ddd      j                  d      d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  ddd      j                  d      d d d d d d d
f   dgdgg      }t        t	        |      g d       y )N   rD   rA   r   rF   )r   r   r   r   r   rG   r   rG   r   r   rG   rG   r   rD   r   r   rD   rG   rG   r   r   rG   r   rG   rG   rG   r   rG   rG   rG   rG   rD   r   rG   rD   rG   rb   rZ   )r   r   r   r   r   r   r   r   r   r   r   r   rE   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   rw   s     r   #test_iter_best_order_multi_index_3dr      si    	r
AqyyAq!M?j\NCA!!$_` 	qyyAq!&&S&1M?j\NSA!!$_` 	qyyAq!$B$'-J<.IA!!$_` 	qyyAq!!TrT'*]Ozl^LA!!$_` 	qyyAq!!Att),}o~NA!!$_` 	qyyAq!&&S&1$B$75BOzl^	UA!!$_` 	qyyAq!&&S&1!TrT':5BOzl^	UA!!$_` 	qyyAq!&&S&1!Att)<5BOzl^	UA!!$_`r   c                      t        d      } t        | dgdgg      }t        t        |      g d       t        | d d d   dgdgg      }t        t        |      g d       y )NrB   c_indexrF   r   rG   rD   rA   rE   rA   rD   rG   r   r   r   r   r   rw   s     r   test_iter_best_order_c_index_1dr   %  Y     	q	Aq9+~.Aa,/q2wzl^4Aa,/r   c                  v   t        d      } t        | j                  dd      dgdgg      }t        t	        |      g d       t        | j                  dd      j                  d      dgdgg      }t        t	        |      g d	       t        | j                  dd      d d d
   dgdgg      }t        t	        |      g d       t        | j                  dd      d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  dd      d d d
d d d
f   dgdgg      }t        t	        |      g d       t        | j                  dd      j                  d      d d d
   dgdgg      }t        t	        |      g d       t        | j                  dd      j                  d      d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  dd      j                  d      d d d
d d d
f   dgdgg      }t        t	        |      g d       y )Nr#   rD   rA   r   rF   r   rG   rD   rA   rB   r?   rb   rZ   )r   rA   rG   rB   rD   r?   rE   )rA   rB   r?   r   rG   rD   )rD   rG   r   r?   rB   rA   r?   rB   rA   rD   rG   r   )rA   r   rB   rG   r?   rD   )rD   r?   rG   rB   r   rA   )r?   rD   rB   rG   rA   r   r   r   rM   r   r   r3   rw   s     r   test_iter_best_order_c_index_2dr   0      	q	AqyyAzl^<Aa"45qyyA####.%.K:,	AAa"45qyyAtt$ykZL>BAa"45qyyAq$B$w')
|nEAa"45qyyAttTrTz*YK:,HAa"45qyyA####.tt4%.K:,	AAa"45qyyA####.q$B$w7%.K:,	AAa"45qyyA####.ttTrTz:%.K:,	AAa"45r   c                     t        d      } t        | j                  ddd      dgdgg      }t        t	        |      g d       t        | j                  ddd      j                  d      dgdgg      }t        t	        |      g d	       t        | j                  ddd      d d d
   dgdgg      }t        t	        |      g d       t        | j                  ddd      d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  ddd      d d d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  ddd      j                  d      d d d
   dgdgg      }t        t	        |      g d       t        | j                  ddd      j                  d      d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  ddd      j                  d      d d d d d d d
f   dgdgg      }t        t	        |      g d       y )Nr   rD   rA   r   rF   r   rG   rD   rA   rB   r?   r#         	   
      rb   rZ   r   r#   rD   r   rB   r   rG   r   rA   r   r?   r   rE   r#   r   r   r   r   r   r   rG   rD   rA   rB   r?   rB   r?   rD   rA   r   rG   r   r   r   r   r#   r   rG   r   rA   rD   r?   rB   r   r#   r   r   r   r   r#   r   r   rD   r   rB   r   rG   r   rA   r   r?   rB   r   rD   r   r   r#   r?   r   rA   r   rG   r   rG   r   rA   r   r?   r   r   r#   rD   r   rB   r   r   rw   s     r   test_iter_best_order_c_index_3dr   M  =    	r
AqyyAq!I;*?AaBD 	qyyAq!&&S&1%.K:,	AAaBD 	qyyAq!$B$')
|nEAaBDqyyAq!!TrT'*YK:,HAaBDqyyAq!!Att),ykZL>JAaBD 	qyyAq!&&S&1$B$7%.K:,	AAaBDqyyAq!&&S&1!TrT':%.K:,	AAaBDqyyAq!&&S&1!Att)<%.K:,	AAaBDr   c                      t        d      } t        | dgdgg      }t        t        |      g d       t        | d d d   dgdgg      }t        t        |      g d       y )NrB   f_indexrF   r   rE   r   r   rw   s     r   test_iter_best_order_f_index_1dr   r  r   r   c                  v   t        d      } t        | j                  dd      dgdgg      }t        t	        |      g d       t        | j                  dd      j                  d      dgdgg      }t        t	        |      g d	       t        | j                  dd      d d d
   dgdgg      }t        t	        |      g d       t        | j                  dd      d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  dd      d d d
d d d
f   dgdgg      }t        t	        |      g d       t        | j                  dd      j                  d      d d d
   dgdgg      }t        t	        |      g d       t        | j                  dd      j                  d      d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  dd      j                  d      d d d
d d d
f   dgdgg      }t        t	        |      g d       y )Nr#   rD   rA   r   rF   r   rD   rB   rG   rA   r?   rb   rZ   r   rE   )rG   rA   r?   r   rD   rB   )rB   rD   r   r?   rA   rG   )r?   rA   rG   rB   rD   r   )rG   r   rA   rD   r?   rB   )rB   r?   rD   rA   r   rG   r   r   rw   s     r   test_iter_best_order_f_index_2dr   }  r   r   c                     t        d      } t        | j                  ddd      dgdgg      }t        t	        |      g d       t        | j                  ddd      j                  d      dgdgg      }t        t	        |      g d	       t        | j                  ddd      d d d
   dgdgg      }t        t	        |      g d       t        | j                  ddd      d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  ddd      d d d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  ddd      j                  d      d d d
   dgdgg      }t        t	        |      g d       t        | j                  ddd      j                  d      d d d d d
f   dgdgg      }t        t	        |      g d       t        | j                  ddd      j                  d      d d d d d d d
f   dgdgg      }t        t	        |      g d       y )Nr   rD   rA   r   rF   r   rb   rZ   r   rE   r   r   r   r   r   r   r   rw   s     r   test_iter_best_order_f_index_3dr     r   r   c                  8   dD ]  } t        j                  |       }t        |      }t        dt	        |       z        D ]V  }t        d       gt	        |       z  }t        t	        |             D ]  }d|z  |z  st        d d d      ||<    t        |      }|j                  |       |   }t        |dgdgg      }t        |j                  d       t        |d   j                  |f       t        |j                  dgdgg      }t        |j                  d       t        |d   j                  |f       t	        |       dkD  st        |j                  dd      dgdgg      }t        |j                  d       t        |d   j                  |f       Y  y )Nr>   rD   rE   external_looprF   rG   r   )r.   rH   r   rI   rJ   rK   rL   rM   r   r   ndimrQ   rN   rO   )rQ   sizer4   rR   rS   rT   rU   r   s           r    test_iter_no_inner_full_coalescer     sc    Jwwu~4L!SZ-(D+s5z1JSZ(VtO&+D$&;JsO ) z*JIIe$Z0Eu/:,@A#1dW-uww 1ZL>BA#1dW-5zA~5>>!Q/%4$5~GQVVQ'QqTZZ$1+ )	 Jr   c                  4   t        d      j                  ddd      d d d d d df   } t        | dgdgg      }t        |j                  d       t        |d   j
                  d	       t        d      j                  ddd      d d d dd d f   } t        | dgdgg      }t        |j                  d       t        |d   j
                  d
       t        d      j                  ddd      d dd d d d f   } t        | dgdgg      }t        |j                  d       t        |d   j
                  d       t        d      j                  ddddddddddd      } t        | dgdgg      }t        |j                  d       t        |d   j
                  d       y )N   rD   rA   rB   rE   r   rF   r   rv   r   rG   )r   r   )r   rM   r   r   r   rQ   rw   s     r   !test_iter_no_inner_dim_coalescingr     sw   
 	r
1a#Aa"H-Aq?#zl^4A1T"r
1a#Ass1H-Aq?#zl^4A1T"r
1a#CRC!G,Aq?#zl^4A1U# 	r
1aAq!Q1a;Aq?#zl^4A1U#r   c                     t        d      j                  ddd      } t        | dgdgg      }t        |j                  d       t        d      j                  ddd      }t        |dgdgg      }t        |j                  d       t        |j                  d	d      dgdgg      }t        |j                  d       t        |j                  dgdgg      }t        |j                  d       t        |j                  d
gdgg      }t        |j                  d       t        |j                  j                  d	d      d
gdgg      }t        |j                  d       t        d      j                  ddd      }t        |d      }t        |j                  d       t        |j                  d      }t        |j                  d       t        |d      }t        |j                  d       t        |j                  d      }t        |j                  d       t        |d      }t        |j                  d       t        |j                  d      }t        |j                  d       y )Nr   rD   rA   rB   r   rF   r   rG   r   r   rY   rZ   rb   re   )r   rM   r   r   r   rO   rN   )r4   r   a3ds      r   test_iter_dim_coalescingr     s    	r
1a#Aq=/ZL>2A *

Q1
%CsYK:,0As||Aq!I;*?AsuuykZL>2AsuuykZL>2Asuu~~a#i[J<.AA *

Q1
%Cs#AsuuC As#AsuuC As#AsuuC Ar   c            	      "   t        t        d      t        j                  d      gdgdggdz        } t	        | j
                  d       t	        | j                  d       t        t        d      j                  dd      t        j                  d      gdgdggdz        } t	        | j
                  d       t	        | j                  d       t        t        d      j                  dd      t        d      gdgdggdz        } t	        | j
                  d       t	        | j                  d       t        t        d      j                  dd      t        d      gdgdggdz        } t	        | j
                  d       t	        | j                  d       t        t        d      j                  dd      t        d      j                  dd      gdgdggdz        } t	        | j
                  d       t	        | j                  d       t        t        j                  d      t        d	      j                  d
dd      gdgdggdz        } t	        | j
                  d	       t	        | j                  d       t        t        d      t        d	      j                  d
dd      gdgdggdz        } t	        | j
                  d	       t	        | j                  d       t        t        d      t        d      j                  d
dd      gdgdggdz        } t	        | j
                  d	       t	        | j                  d       t        t        d      j                  dd      t        d	      j                  d
dd      gdgdggdz        } t	        | j
                  d	       t	        | j                  d       t        t        d      j                  dd      t        d	      j                  d
dd      gdgdggdz        } t	        | j
                  d	       t	        | j                  d       t        t        d      j                  dd      t        d      j                  d
dd      gdgdggdz        } t	        | j
                  d	       t	        | j                  d       t        t        d      j                  ddd      t        d      j                  ddd      t        d
      j                  d
dd      gdgdggdz        } t	        | j
                  d	       t	        | j                  d       t        t        d      j                  ddd      t        d
      j                  d
dd      gdgdggdz        } t	        | j
                  d	       t	        | j                  d       t        t        d	      j                  d
dd      t        d      j                  d
dd      gdgdggdz        } t	        | j
                  d	       t	        | j                  d       y )Nr#   rD   r   rF   r#   rA   rD   rA   rG   r   rB   rB   rD   rA   r   r   )r   r   r.   int32r   itersizerQ   rM   r   s    r   test_iter_broadcastingr     s    	q	288A;'-J<.:JKAQ$ 	q	!!!Q'!5&:,)9	;AQ&!q	!!!Q'3&:,)9	;AQ&!q	!!!Q'3&:,)9	;AQ&!q	!!!Q'):):1a)@A&:,)9	;AQ&! 	VBZ//1a89&:,)9	;AR )$q	6":--aA67&:,)9	;AR )$q	6!9,,Q156&:,)9	;AR )$q	!!!Q'););Aq!)DE&:,)9	;AR )$q	!!!Q'););Aq!)DE&:,)9	;AR )$q	!!!Q'):):1a)CD&:,)9	;AR )$q	!!!Q*F1I,=,=aA,Fq	))!Q24&:,)9	;A R )$q	!!!Q*F1I,=,=aA,FG&:,)9	;AR )$r
""1a+VBZ-?-?1a-HI&:,)9	;AR )$r   c            	      f   t        j                  dd      j                  dd      } t        | d gg dgddggg d	d gd
      }t	        |j
                  d   j                  d       t	        |j
                  d   j                  d       t        | j                  d gg dgddggg d	d gd
      }t	        |j
                  d   j                  d       t	        |j
                  d   j                  d       t        | j                  d gg dgddggdg d	d gd
      }t	        |j
                  d   j                  d       t	        |j
                  d   j                  d       t        t        t        | d gg dgddggg d	d gd       t        j                  t        j                  d      d d gd      }y )Nr#   i2r+   rD   rA   rF   	writeonlyallocate)r   rG   N)rE   rE   rB   op_axes	itershaperG   rC   )r   r   rD   )rA   rD   rB   )r   r   rD   rb   )r[   r   r   )rD   r#   r   )rE   rG   rB   ru   r   )r.   r   rM   r   r   operandsrQ   stridesrN   r
   
ValueErroronesrw   s     r   test_iter_itershaper   _  s   
		!4 ((A.A4y"
|k:-FG%14$8&1	3A A$$i0A&&
3T{B*Z/H I%14$8&1	3A A$$i0A&&
3T{B*Z/H I"%%14$8&1	3A A$$i0A&&
3 *fq$i(\K+DE%14$8&02
 			2771:tT*d;Ar   c            
         t        t        t        t        d      t        d      gg dggdz         t        t        t        t        d      j	                  dd      t        d      gg dggdz         t        t        t        t        d      j	                  dd      t        d      j	                  dd      gg dggdz         t        t        t        t        d      j	                  dd      t        d      j	                  dd      gg dggdz         t        t        t        t        d      j	                  ddd      t        d      j	                  ddd      gg dggdz         t        t        t        t        d	      j	                  ddd
      t        d      j	                  ddd      gg dggdz         	 t        t        d      j	                  d
dd
      t        d      j	                  d
d      t        d      j	                  dd      gg dgdgddgg       t        d      # t        $ rW} t        |       }t        |j                  d      dk\  d|z         t        |j                  d      dk\  d|z         Y d } ~ nd } ~ ww xY w	 t        t        d      j	                  dd      t        d      gg dgdggdd
gdt        j                  ggd       t        d      # t        $ rx} t        |       }t        |j                  d      dk\  d|z         t        |j                  d      dk\  d|z         t        |j                  d      dk\  d|z         Y d } ~ nd } ~ ww xY w	 t        t        j                  d      t        j                  d      gg ddgdgg       t        d      # t        $ rW} t        |       }t        |j                  d      dk\  d|z         t        |j                  d      dk\  d |z         Y d } ~ y d } ~ ww xY w)!NrD   rA   rF   r#   r   rB   $   r   r   rG   r   no_broadcastz$Should have raised a broadcast errorz(2,3)r   z0Message "%s" doesn't contain operand shape (2,3)z(1,2,3)z4Message "%s" doesn't contain broadcast shape (1,2,3))rB   rA   r   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)rD   rG   rG   ru   z(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   r   r   rM   AssertionErrorstrr   findr.   newaxiszeros)emsgs     r   test_iter_broadcasting_errorsr   ~  s    *fvay&)&<*q(* *fAY&&q!,fQi8*q(* *fAY&&q!,fQi.?.?1.EF*q(* *fAY&&q!,fQi.?.?1.EF*q(* *fBZ''1a0&*2D2DQ12MN*q(* *fAY&&q!Q/1C1CAq!1LM*q(*
Oq	!!!Q*q	!!!Q'q	!!!Q') zl[.,IJ		L
 CDD O!f!Q&CcI	K 	#q(G#M	O 	OOQq	!!!Q'3zl+ABJJ0		!
 CDD 
Q!f(A-FL	N,-2$'*+	, 	!Q&ICO	Q 	Q
QS#RXXd^4n-
|<	> CDD S!f#q(ACG	I 	#q(KcQ	S 	SSsN   6A.H$ $	J-AI??JAK 	M (A.MM $AN) )	P	2APP	c                  ^   t        d      } t        t        t        g g g        t        t        t        | gdz  g dggdz         t        t        t        | gdgdgg       t        t        t        | gg ddgg       t        t        t        | gg dggd       t        t        t        | gg dggd       t        t        t        | gd	z  g dggd
z         t        t        t        | ddgdgg       t        t        t        | ddgdgg       t        t        t        | ddgdgg       t        t        t        | ddgdgg       t        t        t        | g g g       t        t        t        | g ddgg       t        t        t        | g ddgg       t        t        t        | g ddgg       t        t        t        | g g dg       t        t        t        dg dgg       t        t        t        dg dgg       t        t        t        t        j                  d      g dgg       t        t        t        t        j                  d      g dgg       d| j                  _        t        t        t        | g dgg       t        t        t        | g dgg       d| j                  _        t        t        d      g dgg      }t        t        d |       t        t        d |       d }d }d }d }t        t        d      dg      }t        t        ||       t        t        ||       t        t        ||       t        t        ||       t        t        d      dg      }t        t        ||       t        t        ||       t        t        ||       t        t        t        t        j                  g              y )Nr#   d   rF   zbad flagGrZ   noonr)   rA   rD   r   r   r   r   r   r%   rF   r   r%         ?rG   FTc                     | j                   S r   r   r   s    r   <lambda>z(test_iter_flags_errors.<locals>.<lambda>      q}}r   c                     | j                   S r   r   r   s    r   r   z(test_iter_flags_errors.<locals>.<lambda>      qwwr   c                     d| _         y )Nrs   r   r   s    r   assign_multi_indexz2test_iter_flags_errors.<locals>.assign_multi_index  s	    r   c                     d| _         y Nr   r   r   s    r   assign_indexz,test_iter_flags_errors.<locals>.assign_index  s	    r   c                     d| _         y r   )r   r   s    r   assign_iterindexz0test_iter_flags_errors.<locals>.assign_iterindex  s	    r   c                     d| _         y )Nr{   )	iterranger   s    r   assign_iterrangez0test_iter_flags_errors.<locals>.assign_iterrange  s	    r   buffered)
r   r
   r   r   	TypeErrorr.   r   ri   	writeabler   )r4   r   r   r   r   r   s         r   test_iter_flags_errorsr     s    	q	A *fb"b1*fqc#grZL>#3EF*fqcJ<:,H*fqc2Z0H/IJ*fqc2~SI*fqc2~vN*fqc!eR:,1AB*faI&*8 *fa -0J<.B*fa ),
|n>*fa ),
|n> *fabT2*faz;.G-HI*faz;.G-HI*fa{K.H-IJ*fa;<> )VS"}o>)VS"}o>)VRXXa["}oF)VRXXa["}oFAGG*fa{m_=*fa{m_=AGGvay"
|n-A*4a8*.2vay?+,A*0!4*lA.*.2*.2vay:,'A*0!4*lA.*.2*fbhhrl3r   c                  \   t        j                  d      t        j                  d      t        j                  d      }}} t        | ||gg dg      }|5  d|dd t        | g d       t        |g d       t        |g d       d	|d
<   t        |dd dd	g       d d d        y # 1 sw Y   y xY w)NrA         @r%   )rA   rA   r   rD   )rA   rG   rD   r   rG   rD   r   rG   )r.   r   r   r   )r4   bcr   s       r   test_iter_slicer    s    iilBIIaL"))B-!qA1ay"{m,A	
!AQ	"Q	"Q	"!QqVaW% 
s   AB""B+c            	      Z   t        j                  dd      j                  ddd      j                  } t        j                  | g ddggd	t        j
                  d
      g      }|5  d|j                  d   d<   d|j                  d   d<   d d d        t        | d       t        j                  | g ddggd	t        j
                  d
      g      }|5  |j                  d   dd }d|d<   d|j                  d   d<   d d d        t        | d       d }d }y # 1 sw Y   xY w# 1 sw Y   &xY w)Nr   f8r+   rD   rA   rB   r%   r&   	same_kindr$   r(   r   .   rE   rG   i.)r.   r   rM   rN   r   r,   r   r   )r4   r8   rV   s      r   test_iter_assign_mappingr	  !  s   
		"D!))!Q244A	1bK89*rxx~6F
HB	As As 
 B	1bK89*rxx~6F
HB	KKN2a ##As 
 EA	B 
 
s   &%D*D!D!D*c            	      T	   t        j                  dd      } | j                         j                         }t	        | j
                  j                  |j
                  j                  k7         t        |g ddggdt        j
                  d      g      }|5  t        |j                  d   j                  | j
                  j                         t        |j                  d   j
                  j                  | j
                  j                         t        |j                  d   |        d	|j                  d   d d  d d d        t        |d	gdz         ~t        j                  dd      } | j                         j                         }t	        | j
                  j                  |j
                  j                  k7         t        |g g d
gd      5 }t        |j                  d   j                  | j
                  j                         t        |j                  d   j
                  j                  | j
                  j                         t        |j                  d   |        d|j                  d   d d  d	|j                  d   d d  d d d        t        |d	gdz         t        j                  dd      dd  } d| _        t        j                  dd      | d d  t	        | j                  j                          t        | g dgg      }t	        |j                  d   j                  j                          t        |j                  d   |        t        | g g dg      5 }t	        |j                  d   j                  j                         t        |j                  d   |        d|j                  d   d d  d d d        t        | dgdz         t        d      } t        | d d g dgg      }t	        |j                  d   j                  j                         t        |j                  d   | d d        t        | d d d	   ddgddggd      }t	        |d   j                  j                         t        |d   | d d d	          y # 1 sw Y   MxY w# 1 sw Y   xY w# 1 sw Y   xY w)Nr#   r$   r+   r%   r&   equivr(   r   rD   )r%   r&   nbor   i90  )   i1rG   rF   )r%   r&   alignedrA   r   r   r   contigr   
buffersize)r.   r   byteswapr/   r   r,   	byteorderr   r   dtypesr   r   ri   r  
contiguous)r4   aur   s      r   test_iter_nbo_align_contigr  4  s    			!4 A	
	"	"	$BAGG!3!334r2n56 '#%88D>"2	4A 
QXXa[**AGG,=,=>QZZ]((22AGG4E4EFQZZ]A&

1a 
 aSU	
		!4 A	
	"	"	$BAGG!3!334	B=> '
),-QXXa[**AGG,=,=>QZZ]((22AGG4E4EFQZZ]A& 

1a

1a
) aSU 	&qr*AAG99Qd#AaD q"
|n%A

1##+++,A"	2@A	Ba

1##++,QZZ]A&

1a	 
C
 QCE 	r
Aq!ubJ<.)AAJJqM**+A"1&q1v
O4$h/0#%	'A AaDJJ!!"1q1ve 

) 
)( 
C	Bs'   B$RB6RARRRR'c            	      	   t        j                  dd      j                  dd      } t        | g dggt        j                  d      g      }|5  t        |j                  d   |        t        |j                  d   j                  t        j                  d             d d d        t        j                  dd	      j                  dd      } t        | g dd
ggdt        j                  d      g      5 }t        |j                  d   |        t        |j                  d   j                  t        j                  d             d d d        t        j                  dd      j                  ddd      j                  dd      } t        | g ddggdt        j                  d      g      }t        |j                  d   |        t        |j                  d   j                  t        j                  d             t        |j                  d   j                  d       | d d dd d d d df   } t        | g ddggdt        j                  d      g      }t        |j                  d   |        t        |j                  d   j                  t        j                  d             t        |j                  d   j                  d       t        j                  dd      j                  ddd      j                  } t        | g dd
ggdt        j                  d      g      5 }t        |j                  d   |        t        |j                  d   j                  t        j                  d             t        |j                  d   j                  d       d|j                  d   d<   t        | d   dk7         d d d        t        | d   d       t        j                  dd      d d d   } t        | g dd
ggdt        j                  d      g      5 }t        |j                  d   j                  t        j                  d             t        |j                  d   j                  d       g d |j                  d   d d  d d d        t        | g d        y # 1 sw Y   xY w# 1 sw Y   `xY w# 1 sw Y   xY w# 1 sw Y   >xY w)!Nr#   r$   r+   rD   rA   r%   r-   r   <f4r&   r  >f4r(   r   rB   rG   rF   r3   safer  )`   r       rE   r  )rB      0   g      )r   i4r   r'   )rB   rG   rD   rA   )r.   r   rM   r   r,   r   r   rO   r   rN   r   rw   s     r   test_iter_array_castr$  r  s    			!4 ((A.Aq"}o"((4.1ABA	
QZZ]A&QZZ](("((4.9 

 			!5!))!Q/A	2n56xx'
),-QZZ]A&QZZ](("((5/:	
) 			"D!))!Q2;;AqAAq"
F+,xx~&	(A A"A$$bhhtn5 A&&4	$B$q$B$,Aq"
F+,xx~&	(A A"A$$bhhtn5A&&4 			"D!))!Q244A	2>*+xx~&
( ,-QZZ]A&QZZ](("((4.9QZZ]**K8!&

1g'
e#$
( 7U#
		!4 2&A	2>*+xx~&
( ,-QZZ](("((4.9 	QZZ]**D1$

1a
( Im 

) 
)4
( 
(
( 
(s4   AR5AR# BR0A.R<R #R-0R9<Sc                     t        t        t        t        dd      g dggt	        j
                  d      g       t        t        t        t        dd      g ddggdt	        j
                  d      g	       t        t        t        t        dd      g ddggd
t	        j
                  d      g	       t        t        t        t        dd      g ddggdt	        j
                  d      g	       t        t        t        t        dd      g ddggd
t	        j
                  d      g	       t        t        t        t        dd      g ddggdt	        j
                  d      g	       t        t        t        t        dd      g ddggdt	        j
                  d      g	       t        t        t        t        dd      g ddggdt	        j
                  d      g	       t        t        t        t        dd      g ddggdt	        j
                  d      g	       t        t        t        t        dd      g ddggdt	        j
                  d      g	       y )NrD   r$   r+   rF   r  r-   r3   nor(   r  r   r&   r  r  r%   r  r  r!  )r
   r   r   r   r.   r,    r   r   test_iter_array_cast_errorsr(    s	    )VVAT%:B288D>*:< )VVAT%:Bf%&88D>*, )VVAT%:Bf%&88D>*, )VVAT%:B~./88D>*, )VVAT%:B~./88D>*,
 )VVAU%;Rf%&88E?+- )VVAT%:B~./88D>*, )VVAT%:B~./88D>*,
 )VVAT%:Bf%&#88D>*, )VVAT%:B~./#88D>*,r   c            	      8   t        t        j                  d      g dggt        j                  d      g      } t	        | j
                  d   t        j                  d             t	        | j                  j                  t        j                  d             t	        | j                  d       t        t        j                  d      g ddggdt        j                  d      g	      } t	        | j
                  d   t        j                  d             t	        | j                  j                  t        j                  d             t	        | j                  d       t        t        j                  d      g ddggd
t        j                  d      g	      } t	        | j
                  d   t        j                  d             t	        | j                  j                  t        j                  d             t	        | j                  d       t        t        j                  d      g ddggdt        j                  d      g	      } t	        | j
                  d   t        j                  d             t	        | j                  j                  t        j                  d             t	        | j                  d       t        dg dggt        j                  d      g      } t	        | d   j                  t        j                  d             t	        | d   d       y )N      @rF   r$   r-   r   r3   r  r  r(   r  r   r'   r!  rA   )r   r.   float32r,   r   r  valuefloat64r   s    r   test_iter_scalar_castr.    s    	rzz#j\N!xx~.	0A!bhhtn-/#rzz# &)*"!xx~.	0A !bhhtn-/#rzz# &)*'!xx~.	0A !bhhtn-/#rzz# &)*$!xx~.	0A !bhhtn-/!q"
|n$0@AA1RXXd^,1rr   c                     t        t        t        t        j                  d      g dggt        j
                  d      g       t        t        t        dg dggt        j
                  d      g       t        t        t        t        j                  d      g dggd	t        j
                  d      g
       t        t        t        t        j                  d      g dggdt        j
                  d      g
       y )NrD   r%   r  r-   r*  r$   gDcLrF   r  r(   r  r!  )r
   r   r   r.   r+  r,   r-  r'  r   r   test_iter_scalar_cast_errorsr0    s     )VRZZ]BBHHTN+;=)VS"BHHTN+;= )VRZZ%5r88D>*,
 )VRZZ]B#88D>*,r   c                     ddd} t        j                  g dd | d gd      }t        rt        j                  |       }t        t        t        |       t        rt        t        j                  |              t        |dgdg      }|D cg c]  }|d	   	 }}t        t        j                  |d      |       d gdz  \  }}}t        rt        t        j                  |              t        |j                  d
d
      j                  ddgdgd      }t        |j                         |D cg c]  }|d	   	 }}t        t        j                  |d      |j                  d
d
      j                  d             d gdz  \  }}}t        rt        t        j                  |              t        |j                  d
d
      j                  ddgdgd      }|5  |D ]  }d |d<   	 d gdz  \  }}}d d d        t        r$t        t        j                  |       dz
  k(         t        |t        j                  d gdz  d             y c c}w c c}w # 1 sw Y   cxY w)NrA   dr4   r  r#  Or+   refs_okrF   r'  rD   r   rY   rZ   rb   r%   .rG   rB   )r.   r   r   r0   r1   r
   r   r   r   rM   rN   r   r2   r]   )objr4   rcr   x_valsrV   s          r   test_iter_object_arrays_basicr:    s    S/C
)T3-S9A__S! )VQ'S__S)2.q9+
|,AQrBrFQD$c*A.JD!QS__S)2.qyyA  9j"9#C	1AA QrBrFQD$c*AIIaO,A,A,A,LMJD!QS__S)2.qyyA  9j"9$S	2A	
AAcF VAX
a 
 $1,-BHHdVAXS12/     
s   I	.IIIc                     t        j                  dd      } t        | ddgdgdd	      }|5  |D ]  }|d
xx   dz  cc<    	 d d d        t        | t        j                  d      dz          t        j                  dd      } t        | ddgdgdd	      }|5  |D ]  }|d
xx   dz  cc<    	 d d d        t        | t        j                  d      dz          t        j                  dddg      } | d   } t        j                  d      | d d  t        | ddgdgdd	      }|5  |D ]  }|d
xx   dz  cc<    	 d d d        t        | t        j                  d      dz          t        j                  dddg      } | d   } t        j                  d      dz   | d d  t        | ddgdgdd	      }|5  |d   d   }t
        rt        j                  |      }|D ]  }|d
xx   dz  cc<    	 d d d        t
        r$t        t        j                        dz
  k(         t        | t        j                  d      dz          y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   "xY w# 1 sw Y   }xY w)Nr#   r4  r+   r5  r   r%   r'   r!  r(   .rG   r   )pr  r4   r4  r4   )r4   r!  iHr   r'  iI)	r.   r   r   r   r   r   r0   r1   r   )r4   r   rV   obr7  s        r   #test_iter_object_arrays_conversionsr?  <  s2   
		!3Aq9j)K=$	6A	
AcFaKF  
 BIIaLN#
		!4 Aq9j)K=$	5A	
AcFaKF  
 BIIaLN# 	k:67A	#A99Q<AaDq9j)K=$	6A	
AcFaKF  
 BIIaLN# 	k;78A	#A99Q<("AaDq9j)K=$	5A	
qT"X$BAcFaKF 	 
 #r!t+,BIIaL)*M 
 
 
 
s/   I I$I28I' I
II$'I0c            	      F
   t        t        dgd      t        dgd      gdgddggd	z  d
      } t        | j                  d   t	        j
                  d             t        | j                  d   t	        j
                  d             t        t        dgd      t        dgd      gdgddggd	z  d
      } t        | j                  d   t	        j
                  d             t        | j                  d   t	        j
                  d             t        t        dgd      t        dd      gdgddggd	z  d      } t        | j                  d   t	        j
                  d             t        | j                  d   t	        j
                  d             t        t        dgd      t        dd      gdgddggd	z  d
      } t        | j                  d   t	        j
                  d             t        | j                  d   t	        j
                  d             t        t        dgd      t        dd      gdgddggd	z  d
      } t        | j                  d   t	        j
                  d             t        | j                  d   t	        j
                  d             t        t        dgd      t        dd      t        dgd      t        dgd      gdgddggdz  d
      } t        | j                  d   t	        j
                  d             t        | j                  d   t	        j
                  d             t        | j                  d	   t	        j
                  d             t        | j                  d   t	        j
                  d             t        | j                  d       t        t        dgd      d t        dgd      gg ddgddgdggd
      } t        | j                  d   t	        j
                  d             t        | j                  d   t	        j
                  d             t        | j                  d	   t	        j
                  d             t        t        dgd      d t        dgd      gdgddgddgdggd
      } t        | j                  d   t	        j
                  d             t        | j                  d   t	        j
                  d             t        | j                  d	   t	        j
                  d             y )NrA   r$   r+   r   r  common_dtyperF   r3   rD   r  r   rG   r!  r  u4i8               @c8r   rB   c16)rA   rC  rE  r   r   r   )r   r   r   r  r.   r,   r,  r   s    r   test_iter_common_dtyperH  i  s6    	qc&qc(>?#$ &)*1,"	$A !bhhtn-!bhhtn-qc&qc(>?#$ &)*1,"	$A !bhhtn-!bhhtn-qc&at(<=#$ &)*1,'	)A !bhhtn-!bhhtn-qc&at(<=#$ &)*1,"	$A !bhhtn-!bhhtn-qc&c(>?#$ &)*1,"	$A !bhhtn-!bhhtn-qc&c(>t4(%4*@B#$ &)*1,"		$A
 !bhhuo.!bhhuo.!bhhuo.!bhhuo./* 	qc&eRD.FG &)!:.!]$ #		$A
 !bhhtn-!bhhtn-!bhhuo.qc&eRD.FG#$ &)!:.!]$ #	$A !bhhuo.!bhhuo.!bhhuo.r   c                  4	   dD ]C  } t        d      }t        |gdg| gg      }|5  t        |j                  d   |u        d d d        E t        d      }|dd  }|d d }t        ||gdgdgdgg      5 }t        t	        j
                  |j                           d d d        t        d      }|}|}t        ||gdgdd	gdd	gg      }|5  t        |j                  d   |u xr |j                  d   |u        d d d        t        ||gdgdgdgg      5 }t        |j                  d   |u xr$ t	        j
                  |j                  d   |              d d d        t        d      }|d d d
   }|dd d
   }t        ||gdgdgdgg      }t        |j                  d   |u xr |j                  d   |u        t        dt        j                        }|dd  }|j                  t        j                        d d }t        ||gdgdgdgg      5 }t        t	        j
                  |j                           d d d        dD ]  } t	        j                  ddg      }|}|j                  }|}t        |||gdgdgdg| gg      5 }|j                  \  }}}t        t	        j
                  ||              t        t	        j
                  ||              d d d         t	        j                  ddg      }|}|j                  }|}t        |||gdgdgdgdgg      }|j                  \  }}}t        ||u        t        ||u        t        ||u        t	        j                  ddg      }|}t	        j                  ddg      }|j                  }t        |||gdgdgdgdgg      }|j                  \  }}}t        ||u        t        ||u        t        ||u        t	        j                   d      }|d d }|dd }|dd }t        |||gdgdgdgdgg      }|j                  \  }}}t        ||u        t        ||u        t        ||u        y # 1 sw Y   SxY w# 1 sw Y   xY w# 1 sw Y   rxY w# 1 sw Y   "xY w# 1 sw Y   NxY w# 1 sw Y   YxY w)Nr   r   copy_if_overlapr   rG   rE   rF   r%   overlap_assume_elementwiserD   r   rB   r+   rA   )r   r%   r   r#   )r   r   r   r   r.   shares_memoryint8viewr   r   rN   )	flagr4   r   rV   r  r  a2b2c2s	            r   test_iter_copy_if_overlaprS    s    72JA3*+tfX6AJJqMQ&' Q 7 	r
A	!"A	#2A	A*+zl[M-J	KqB$$ajj112 
L 	r
A	A	A1v)*j:V-W.9;W-X-Z 	[A	


1"9qzz!}'9: 
	A*+zl[M-J	Kq

1"M2+;+;AJJqM1+M'MN 
L 	r
A	#A#A	!$Q$A1v)*j\K=,IJAAJJqMQ51::a=A#56 	q A	!"A	rxx!A	A*+zl[M-J	KqB$$ajj112 
L +GGRHCCQ1I 12L:,79<=JBB((R001((R001	9 9 + 	RA	A	A	A1ay,-zlZL9	;AJBBAGAGAG 	RA	A
RA	A1ay,-{mj\:	<AJBBAGAGAG 			!A	"1A	!AA	!AA1ay,-{mk];	=AJBBAGAGAGc Q 
L	K 
	K	K 
L	K9 9sI   Q2'Q.Q&AQ3'R ?ARQ	Q#&Q03Q= R
R	c            
         t        d      j                  dd      } t        | | j                  gg dggdz  ddgddgg      }t	        t        |D cg c]
  \  }}||k(   c}}             t        d      j                  ddd	      } t        | j                  | gg dggdz  g d
d g      }t	        t        |D cg c]
  \  }}||k(   c}}             t        dd      j                  ddd      } t        dd      }t        | |gg dggdz  d g dg      }t        |D cg c]
  \  }}||z   c}}| |j                  ddd      z  j                                t        dd	      }t        | |gg dggdz  d g dg      }t        |D cg c]
  \  }}||z   c}}| |j                  ddd      z  j                                t        dd      }t        | |gg dggdz  d t        j                  t        j                  dgg      }t        |D cg c]
  \  }}||z   c}}| |j                  ddd      z  j                                t        d      j                  ddd	      } t        d      j                  ddd	      }t        | |gdgdggdz  g dg dg      }t        |j                  d       t        d      j                  dd	      } t        d      j                  d	d      }t        | |gdgdggdz  ddgddgg      }t        |j                  d       y c c}}w c c}}w c c}}w c c}}w c c}}w )Nr#   rD   rA   rF   r   rG   r   r   rB   )rD   rG   r      r?   r   rE   rE   )rE   r   rE   (   r   )r   rG   rE   rE   )rE   rE   r   rG   )rD   rA   r?   rD   r      rE   )rA   r?   )r   rM   r   rN   r   r   r   r]   r.   r   rQ   )r4   r   rV   yr  s        r   test_iter_op_axesr[    s$    	q	!QA133xzl^A-AA7GHACa(aFQaa()*r
1a#AQxzl^A-	47HIACa(aFQaa()* 	q"aA&Aq!A1vrZL>!+dK5HIAA&A&1a!A#A&199Q1+=)=(D(D(FGq!A1vrZL>!+dK5HIAA&A&1a!A#A&199Q1+=)=(D(D(FGq!A1vrZL>!+%)BJJ

A+F$G	IAA&A&1a!A#A&199Q1+=)=(D(D(FG 	r
1a#Ar
1a#A1v*q(8%3^$D	FA,' 	r
1a Ar
1a A1v*q(8&'Wr1g$6	8A&!= ) ) ' ' 's   L#;L)#L/
L5
L;
c            
      N   t        d      j                  dd      } t        t        t        | | gg dggdz  dgdgdgg       t        t        t        | | gg dggdz  ddgddgg       t        t        t        | | gg dggdz  ddgddgg       t        t        t        | | gg dggdz  ddgddgg       t        t        t        | | gg dggdz  ddgddgg       t        t        t        | | gg dggdz  ddgg d	g       t        t        t        | | gg dggdz  ddgddgg       y )
Nr#   rD   rA   rF   r   rG   rU  rE   r   )r   rM   r
   r   r   r4   s    r   test_iter_op_axes_errorsr^  )  sg    	q	!QA*fq!fbJ<.2B./S1#sO= *fq!fbJ<.2B./VaV,<>*fq!fbJ<.2B./VaW,=? *fq!fbJ<.2B./VaV,<>*fq!fbJ<.2B./VaV,<> *fq!fbJ<.2B./VY,?A *fq!fbJ<.2B./VaV,<>r   c                     t        d      j                  ddd      } t        |       }|j                         }t	        |D cg c]  }|d   	 c}|D cg c]  }|d   	 c}       d|_        |j                         }t	        |D cg c]  }|d   	 c}|D cg c]  }|d   	 c}       t        | ddgdd	      }|j                         }t	        |D cg c]  }|d   	 c}|D cg c]  }|d   	 c}       d|_        |j                         }t	        |D cg c]  }|d   	 c}|D cg c]  }|d   	 c}       d
|_        |j                         }t	        |D cg c]  }|d   	 c}|D cg c]  }|d   	 c}       d|_        t        |       t        |       |j                         }t	        |D cg c]  }|d   	 c}|D cg c]  }|d   	 c}       t        | dgdddd      5 }|j                         }d d d        t	        |D cg c]  }|d   	 c}| j                  d             t        dd      j                  ddd      } t        | dgdddd      5 }|j                         }d d d        t	        |D cg c]  }|d   	 c}| j                  d             y c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w # 1 sw Y   xY wc c}w # 1 sw Y   xY wc c}w )Nr   rD   rA   rB   r'  r   rangedrb   r[   r  rA   r   )rD      r'   r  r?   )r[   r)   r*   r  rZ   z<i4r+   z>f8)	r   rM   r   r3   r   r   r   nextr]   )r4   r   jrV   s       r   test_iter_copyrf  C  s   r
1a#A 	q	A	A#A!B%#Q%7QaeQ%78AK	A#A!B%#Q%7QaeQ%78 	q:x(BA	A#A!B%#Q%7QaeQ%78AK	A#A!B%#Q%7QaeQ%78AK	A#A!B%#Q%7QaeQ%78AKGG	A#A!B%#Q%7QaeQ%78 
J<sH1
.12FFH
. #A!B%#QWW3W%78r''1a0A	J<sHA
/23FFH
/ #A!B%#QWW3W%78G $%7 $%7
 $%7 $%7 $%7 $%7
. 
. $
/ 
/ $sl   J.J3
J8J=
K'K
K,K
K1K
:K K%
1K*K6'K;	L*K3;Lr,   All
loop_dtypezignore::numpy.ComplexWarningc                    |j                         dk(  r|dz   }n't        j                  |      j                  dk(  r|dz   }t        j                  dt        j                  |       j                               }	 |j                  |      }t        j                  |fg d|gd	      }t        j                  t        j                  |      t        j                        r!t        |t        j                  d|             |j                         }t        |      }~t        |      }~t        ||       t        ||       y # t        $ r Y y w xY w)
Nmz[ms]r   50  r+   r   r   r5  r'   r*   r)   )lowerr.   r,   itemsizer   r/   astype	Exceptionr   
issubdtypenumberr	   r3   rd  )r,   rh  arrexpectedr8   it_copyresres_copys           r   test_iter_copy_castsrz  p  s   
 S &(
	*		&	&!	+$&
 ''$bhhuo::<
=C::j)
 
C6C(\8
=B 
}}RXXj)2995 	8RWWT%DEggiG
r(C
G}HsH%x*'  s   :E 	EEc                     t        j                  dt        j                  d      fdt        j                  d      fg      } t        j                  dt        j                  d      fdt        j                  d      fg      }t        j                  d|       }t        j                  |fg d	|gd
      }|j	                         }t        |      }~t        |      }~|d   j                  |d         }t        |d   |       t        |d   |       | d   j                  D ]M  }|d   |   j                  |d   |   j                        }t        |d   |   |       t        |d   |   |       O y )Nr4   zi,r  z>i,<i,>d,S17,>d,(3)f,O,i1r4  z>i,>i,S17,>d,>U3,(3)d,i1,Orl  r+   rm  r'   rn  )
r.   r,   r   r   r3   rd  rq  r	   namesbase)	in_dtype	out_dtyperu  r8   rw  res1res2rv  fields	            r   test_iter_copy_casts_structuredr    sR    xx#rxx~.rxx(CDEG HH3.)E FGI JI
''$h
'C	C6C'[(
<BggiG8D
=D3xy~.HtCy(+tCy(+#$$s8E?)))C.*?*D*DE49U+X649U+X6	 %r   c                     t        j                  dt        j                  d      fdt        j                  d      fg      } t        j                  dt        j                  d      fdt        j                  d      fg      }t        j                  d|       }t        j                  |fg d	|gd
      }|j	                         }t        |      }~t        |      }~||fD ])  }t        |d   d         t        k(  sJ |d   d   dk(  r)J  ||fD ]  }t        |d   d   d   t        j                  dt                     t        |d   d   t        j                  dd             |d   d   j                  dk(  sJ t        |d   d   d   t        j                  dt                     t        |d   d   d   t        j                  dt                     t        |d   d   d   t        j                  dd              y )Nr4   O,Or  z(5)O,(3)O,(1,)O,(1,)i,(1,)Or4  zO,(3)i,(4)O,(4)O,(4)irG   r+   rm  r'   rn  r   r}   f0r?   f1)rG   rA   r   f2rG   rB   rB   f3)r.   r,   r   r   r3   rd  typerL   r	   objectrQ   )r~  r  ru  r8   rw  r  r  rx  s           r    test_iter_copy_casts_structured2r    s   xx#rxx/rxx(EFGI JH3.)@ ABD EI ''!8
$C	C6C'[(
<BggiG8D
=D TzCHQK E)))3x{f$$$ 
 Tz3s8D>!,bggav.FG3s8D>2776+EF3x~##v---3s8D>!,bggav.FG3s8D>!,bggav.FG3s8D>!,bggas.CD r   c            	      6   t        d      } t        | d gg dgddggd t        j                  d      g      }t	        |j
                  d   j                  | j                         t	        |j
                  d   j                  t        j                  d             y )Nr#   rF   r   r   r$   r-   rG   )r   r   r.   r,   r   r   rQ   rw   s     r    test_iter_allocate_output_simpler    sy     	q	A4y"
|k:-FG#'$"8	:AA$$agg.A$$bhhtn5r   c                  *   t        d      } t        | d gddgdgddgg      }|5  d|j                  d   d d  |j                          |D ]  }|d   dxx   |d	   d   z  cc<    t	        |j                  d   | dz          d d d        y # 1 sw Y   y xY w)
Nr#   r   delay_bufallocrF   r   r%   rG   .r   )r   r   r   resetr   r4   r   rV   s      r   ,test_iter_allocate_output_buffered_readwriter    s     	q	A4y:'78$
K'@A	CA	


1a		AaDI1c"I QZZ]AaC( 
s   AB		Bc            
      :   t        dd      j                  dd      } t        | d gg dgddggd t        j                  d	      g
      }t        |j                  d   j                  | j                         t        |j                  d   j                  | j                         t        |j                  d   j                  t        j                  d	             t        dd      j                  ddd      j                  } t        | d gg dgddggd t        j                  d	      g
      }t        |j                  d   j                  | j                         t        |j                  d   j                  | j                         t        |j                  d   j                  t        j                  d	             t        dd      j                  ddd      j                  dd      } t        | d gg dgddggdd t        j                  d	      g      }t        |j                  d   j                  | j                         t        |j                  d   j                  d       t        |j                  d   j                  t        j                  d	             y )Nr#   r!  r+   rD   rA   rF   r   r   r$   r-   rG   r   rB   r   rY   )r[   r*   )r  r  rB   )r   rM   r   r.   r,   r   r   rQ   r   rN   rO   rw   s     r   !test_iter_allocate_output_itorderr    s     	q%%a+A4y"
|k:-FG#'$"8	:AA$$agg.A&&		2A$$bhhtn5r&&q!Q/11A4y"
|k:-FG#'$"8	:AA$$agg.A&&		2A$$bhhtn5r&&q!Q/88A>A4y"$Z'@A!#'$"8	:A A$$agg.A&&4A$$bhhtn5r   c                     t        dd      j                  ddd      } t        d | gg ddgd	ggt        j                  d
      d gg dd g      }t        |j                  d   j                  d       t        |j                  d   j                  d       t        |j                  d   j                  t        j                  d
             y )Nr   r!  r+   rD   rA   rB   r   r   rF   rB  r   r*   r   r   r   )rB   r   r  )	r   rM   r   r.   r,   r   r   rQ   r   rw   s     r    test_iter_allocate_output_opaxesr    s     	r&&q!Q/Aay"Z8:,G#%88D>4"8!*D 1	3A A$$i0A&&4A$$bhhtn5r   c                     t        t        dgd      t        dgd      d gg dggdz  dd	ggz         } t        | j                  d   t	        j
                  d             t        t        dgd
      t        dgd      d gg dggdz  dd	ggz         } t        | j                  d   t	        j
                  d             t        t        dgd      t        dd      d gg dggdz  dd	ggz         } t        | j                  d   t	        j
                  d             t        t        dgd      t        dd
      d gg dggdz  dd	ggz         } t        | j                  d   t	        j
                  d             t        t        dgd      t        dd
      d gg dggdz  dd	ggz         } t        | j                  d   t	        j
                  d             y )NrA   r$   r+   r   r  rF   rD   r   r   r!  rB  rC  rD  )r   r   r   r  r.   r,   r   s    r   )test_iter_allocate_output_types_promotionr    s    	qc&qc(>Er \N1${J&?%@@	BA!bhhtn-qc&qc(>Er \N1${J&?%@@	BA!bhhtn-qc&at(<dCR \N1${J&?%@@	BA!bhhtn-qc&at(<dCR \N1${J&?%@@	BA!bhhtn-qc&c(>Er \N1${J&?%@@	BA!bhhtn-r   c                     t        dgd      j                         } t        | d gg dgddgg      }t        |j                  d   |j                  d          t        | | d gg dgdgddgg      }t        |j                  d   |j                  d	   k7         t        |j                  d   j                  d
      |j                  d	          y )NrA   rB  r+   rF   r   r   r   rG   rD   =)r   r/   r   r   r  r   rw   s     r   *test_iter_allocate_output_types_byte_orderr  $  s     	qc++-A4y" \K#<=	?A!ahhqk*1d|R \J<+z1JK	MAAHHQK188A;&'!))#.<r   c            	      <   t        d ddt        j                  d      t        j                  d      gg ddggdggdz  z         } t	        | j
                  d	   j                  t        j                  d
             t	        | j
                  d	   j                  d	       y )NrG   gffffff@r   rA   r   r   rF   rB   r   
complex128)r   r.   r+  r  r   r   r,   r   r   s    r   &test_iter_allocate_output_types_scalarr  2  s     	abjjnbmmA.>?z*+
|nQ.>>	@AA$$bhh|&<=A##Q'r   c                  ,    G d dt         j                        } t        j                  ddgddgg      j                  |       }t        j                  d      j                  dd      j                  }t        ||d gg dgdgdd	gg      }t        t        |      t        |j                  d                t        t        |      t        |j                  d         u       t        |j                  d   j                  d
       t        ||d gg dgdgg dg      }t        t        |      t        |j                  d                t        t        |      t        |j                  d         u       t        |j                  d   j                  d
       y )Nc                       e Zd ZdZy)4test_iter_allocate_output_subtype.<locals>.MyNDArray   N)__name__
__module____qualname____array_priority__r'  r   r   	MyNDArrayr  <  s    r   r  rG   rD   rA   rB   rF   r   r   rD   rD   )r   r   
no_subtype)r.   ndarrayr   rN  r   rM   rN   r   r   r  r   r   rQ   )r  r4   r  r   s       r   !test_iter_allocate_output_subtyper  :  sM    BJJ   	1a&1a&!"''	2A
		!Q"$$A1d|Rzl[*,EF	HAa$qzz!}-.DG4

1../A$$f- 	1d|Rzl79	:A a$qzz!}-.DG4

1../A$$f-r   c                     t        d      } t        t        t        | d gg dgddgg       t        t        t        | d gg dgddgg       t        t        t        | d gdgddg       t        t        t        d d gg ddgddggd t        j                  d      g       t        d	d
      j                  ddd      } t        t        t        | d gg dgddggd t        j                  d      gd dt
        j                  dgg       t        t        t        | d gg dgddggd t        j                  d      gd g dg       t        t        t        | d gg dgddggd t        j                  d      gd g dg       t        d	d
      j                  ddd      } t        t        t        | d gdgdgddggd t        j                  d      gd dt
        j                  dgg       y )Nr#   r   r   rF   r   r%   r$   r-   r   r!  r+   rD   rA   rB   r   rG   r  )r   rA   rG   )r   rD   rG   r   	reduce_ok)	r   r
   r   r   r   r.   r,   rM   r   r]  s    r    test_iter_allocate_output_errorsr  P  s    	q	A)VaY%j(ABD *fq$i$
J'?@B *fq$i*-7,EG )VdD\2%z2%z24#'$"8:
 	r&&q!Q/A*fq$i$Z'@A#'$"8!%2::q'9 :<
 *fq$i$Z'@A#'$"8!%y 13
 *fq$i$Z'@A#'$"8!%| 46 	r&&q!Q/A*fq$i+$Z'@A#'$"8!%2::q'9 :<r   c                  ,   t        j                  d gdg      } | j                  d   j                  dk(  sJ | j                  t        j
                  d      fk(  sJ t        j                  d gdgd      } | j                  d   j                  dk(  sJ y )Nint64r-   r   r'  rC   )r*   r   )r.   r   r   rQ   r  r,   r   s    r   test_all_allocatedr  {  s    
		4&WI.A::a="$$$88)++++
		4&WICA::a=)+++r   c                     t        d      j                  ddd      } t        | dg      }|j                  d       t	        |D cg c]  }| c}| d d dd d f   j                                | d d dd d d d f   } t        | dg      }|j                  d       t	        |D cg c]  }| c}| dd d d d f   j                                y c c}w c c}w )	Nr   rD   rA   rB   r   rG   r   rE   )r   rM   r   remove_axisr   r]   r  s      r   test_iter_remove_axisr    s    r
1a#Aq=/"AMM!QQ!Q1a6!23	$B$q(Aq=/"AMM!QQ!Q1Qq5!12  
  s   	C#	Cc                  \   t        d      j                  ddd      } t        | dg      }t        |j                  d       t        |j
                  d       t        |j                  d   j
                  d       |D cg c]  }| }}|j                          |D cg c]  }| }}t        ||       t        |j                  d       t        t        d	 |       t        |j                  d   j
                  d
       |j                          t        |j                  d       t        |d   j
                  t                      |j                          t        |j                  d       t        |d   j
                  d
       t        |j                  t        d             y c c}w c c}w )Nr   rD   rA   rB   r   rC   r   rG   c                     | j                   S r   )rQ   r   s    r   r   z9test_iter_remove_multi_index_inner_loop.<locals>.<lambda>  r   r   r   )r   rM   r   r   r   rQ   itviewsremove_multi_indexr
   r   r  r   rL   enable_external_loopr,  )r4   r   rV   beforeafters        r   'test_iter_remove_multi_index_inner_loopr    s@    	r
1a#Aq=/"A)$1##Y/ ^AaF^N1QEN*.21##U+ GGIR 1UW%R 1U#&*%! s   =	F$	F)c            
         d} t        d      j                  ddd      }g dgfD ]U  }t        |||       }t        t	        |      t        t        d                   d|_        t        t	        |      t        t        dd                   t        ||d| 	      }t        t	        |      t        t        d                   d|_        t        t	        |      t        t        dd                   t        |d d d
   |d| 	      }t        t	        |      t        t        d                   d|_        t        t	        |      t        t        dd                   t        |d d d
d d d
f   |d| 	      }t        t	        |      t        t        d                   d|_        t        t	        |      t        t        dd                   t        |d d dd d d
f   ||       }t        t	        |      t        t        d                   d|_        t        t	        |      t        t        dd                   |j                          d|_        t        t	        |      t        t        dd                   X y )Nr?   r   rB   rA   rD   r   r  rb   ra  rE   r   rY      rG      )	r   rM   r   r   r    listrI   r   r  )r  r4   ri   r   s       r   test_iter_iterindexr    s    Jr
1a#Azl#1e
3%a($uRy/:%a($uQ|*<=1e3:>%a($uRy/:%a($uQ|*<=1TrT7ED%a($uRy/:%a($uQ|*<=1TrT4R4Z=%szJ%a($uRy/:%a($uR}*=>1SqS$B$Y<:>%a($uRy/:%a($uR}*=>		%a($uQ|*<=7 $r   c                     d} t        dd      j                  ddd      }|j                  d	      }t        |d
gdgd|       }t	        |j
                  d       t	        |D cg c]  }|d   	 c}|       dD ]E  }||_        t	        |j
                  |       t	        |D cg c]  }|d   	 c}||d   |d           G t        |d
dgdgdd|       }t	        |j
                  d       t	        |D cg c]  }|d   	 c}|       dD ]E  }||_        t	        |j
                  |       t	        |D cg c]  }|d   	 c}||d   |d           G d }t        |g ddgdd|       }t	        |j
                  d       t	         ||      |       dD ]:  }||_        t	        |j
                  |       t	         ||      ||d   |d           < y c c}w c c}w c c}w c c}w )Nr?   r   r!  r+   rB   rA   rD   rb   rZ   r`  rF   ra  r   r   r'  )r  r~   )rA   r   )r?   r?   )r   rY  )r  r   r   rG   r   r  )r[   r*   r  c                 p    t        j                  g d      }| D ]  }t        j                  ||f      } |S )Nr  r+   )r.   r   concatenate)r   valrV   s      r   	get_arrayz&test_iter_iterrange.<locals>.get_array  s3    hhr&A..#q*C 
r   )r`  r   r   )r   rM   r]   r   r   r   )r  r4   a_fortr   rV   rr  s          r   test_iter_iterranger    s    Jr&&q!Q/AWW3WFq8*zl#%	'Ag&#A!B%#V,BQ[[!$Q'QaeQ'!QqT):; C
 	q8Z(:,c:	7Ag&#A!B%#V,BQ[[!$Q'QaeQ'!QqT):; C
 	q9C:	7A g&1v&BQ[[!$Yq\6!A$qt#45 C5 $ (
 $ (s   $G#G
5G4G!
c            
         g } | j                  t        j                  dd      j                  ddd      j                  j                         j                                | j                  t        j                  dd             t        j                  d	d
      dd  }d|_        t        j                  dd      |d d  | j                  |       | j                  t        j                  dd      j                  dddd      j                         | D ]  }dD ]  }g }t        |ddgg dgdd|      }|j                  sZt        |d   j                  |k         |j                  |d   j                                |j                          |j                  sZt        t        j                   |      |j#                  d               y )Nr   rG  r+   rD   rA   rB   r   r$   )A   r  rG   r!  r  x   r?   )rG   rD   rA   r?   r   r   r     r   r   )rF   r  r  rY   r  )r[   r)   r  r   rZ   )r   r.   r   rM   rN   r/   r  r   r,   r   r   r   r   r3   r   r   r  r]   )arraysr4   r  r9  r   s        r   test_iter_bufferingr    sh   F
MM"))B!!(Aq!1!!LLN88:O MM"))Bd+,
$'+AAG99Rt$AaD
MM!
MM"))Ct,44Q1a@BBC7JDq:7:;!$#*&0	2A
 jj!		Z/0AaDIIK(

 jj -qwwSw/AB 8 r   c                     t        j                  d      j                  ddd      j                  j	                         j                         } t        | dgg dgddd	
      }d}|5  |j                  s'||d<   |dz  }|j                          |j                  s'd d d        t        | j                  d      t        j                  d             y # 1 sw Y   9xY w)Nr   rD   rA   rB   r   r%   r  r  r  rY   r  )r)   r[   r  r   rG   rZ   )r.   r   rM   rN   r/   r  r   r   r   r   r]   r  s      r   test_iter_write_bufferingr    s     			"aA&((557@@BAq:,34" 		"A
 	
A	
**AaDFAJJL ** 

 s#RYYr]3 
s   &3CCc                     t        j                  d      } t        j                  dd      }t        | |gg ddgdd      }t        |j                         t        t        d	 |       t        t        d
 |       t        t        d |       d }t        t        ||       |j                          t        |j                          t        |j                  d       |5  t        |d   d       d|d<   t        |dd ddg       t        |D cg c]  }|d   d   |d   d   g c}t        t        t        d      dgdz                     d d d        y c c}w # 1 sw Y   y xY w)Nr#   rG   r$   r+   )r   r  r   r  r%   r'   r(   c                     | j                   S r   r   r   s    r   r   z3test_iter_buffering_delayed_alloc.<locals>.<lambda>1  r   r   c                     | d   S r   r'  r   s    r   r   z3test_iter_buffering_delayed_alloc.<locals>.<lambda>2  s    qtr   c                     | dd S )Nr   rD   r'  r   s    r   r   z3test_iter_buffering_delayed_alloc.<locals>.<lambda>3  s
    q1vr   c                     d| d<   y r   r'  r   s    r   assign_iterz6test_iter_buffering_delayed_alloc.<locals>.assign_iter5  s    !r   rs   r   rD   r'  )r.   r   r   r   has_delayed_bufallocr
   r   r  r   r   r  ziprI   )r4   r  r   r  rV   s        r   !test_iter_buffering_delayed_allocr  '  s3    			!A
		!4 A1vQ M$"	$A A""#*4a8*mQ/*oq1*k1-GGI&&&'%	
QqT1!QqVaV$A6AqqtBx1b*A6SqA3q5=Q8RS	 
 7	 
s   /EE
%(EEE$c            	      &   t        j                  dd      } t        | ddgg dgdt        j                  d      gd	
      }|5  |D ]  }|dxx   dz  cc<    	 d d d        t	        | dt        j                  dd      z         y # 1 sw Y   .xY w)Nr   r$   r+   r   r   r  r  r  rA   r)   r*   r  .rD   )r.   r   r   r,   r   r4   r   vs      r   test_iter_buffered_cast_simpler  B  s     			"D!Aq:/34& hhtn-		!A
 
AcFaKF  
 Abii$//0	 
s   BBc            
      n   t        j                  dd      j                         j                         } t	        | ddgg dgdt        j
                  d      j                         gd	
      }|5  |D ]  }|dxx   dz  cc<    	 d d d        t        | dt        j                  dd      z         t               5 }|j                  t         j                         t        j                  dd      j                         j                         } t	        | ddgg dgdt        j
                  d      j                         gd	
      }|5  |D ]  }|dxx   dz  cc<    	 d d d        t        | dt        j                  dd      z         d d d        y # 1 sw Y   xY w# 1 sw Y   CxY w# 1 sw Y   y xY w)Nr   r$   r+   r   r   r  r  r  rA   r  .rD   r'   rF  )
r.   r   r/   r  r   r,   r   r   filterComplexWarning)r4   r   r  sups       r   #test_iter_buffered_cast_byteswappedr  Q  si    			"D!..099;Aq:/34& hhtn99;<		!A
 
AcFaKF  
 Abii$//0		

2$$%IIb%224==?1z?378'"$((4."="="?!@"#	%
 #!   	Q"))Bd334 
	 
 Q 
	s1   .F:BF+F,F+FF(	$F++F4c            	         t        j                  dd      j                         j                         } | dz  } t	        | ddgg dgdt        j
                  d	      gd
      }|5  |D ]  }|dxx   dz  cc<    	 d d d        t        | dt        j                  dd      z  dz          t        j                  dd      } | dz  } t	        | ddgg dgdt        j
                  d	      j                         gd
      }|5  |D ]  }|dxx   dz  cc<    	 d d d        t        | dt        j                  dd      z  dz          t        j                  dt         j                        j                         j                         } | dz  } t	        | ddgg dgdt        j
                  d	      gd
      }|5  |D ]  }|dxx   dz  cc<    	 d d d        t        | dt        j                  dt         j                        z  dz          t        j                  dt         j                        j                         j                         } t	        | ddgg dgdt        j
                  d      gd      }|5  |D ]  }|dxx   dz  cc<    	 d d d        t        | dt        j                  dt         j                        z         y # 1 sw Y   OxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cxY w)Nr   rF  r+   rE  r   r   r  r  rG  rA   r  .rD   y              @r$   r   )	r.   r   r/   r  r   r,   r   clongdouble
longdoubler  s      r   +test_iter_buffered_cast_byteswapped_complexr  o  s    			"D!..099;AGAq:/34& hhuo.		!A
 
AcFaKF  
 Abii$//"45
		"D!AGAq:/34& hhuo::<=		!A
 
AcFaKF  
 Abii$//"45
		"BNN+88:CCEAGAq:/34& hhuo.		!A
 
AcFaKF  
 Abii"..99B>?
		"BMM*779BBDAq:/34& hhtn-		!A
 
AcFaKF  
 Abii"--889M 
 
 
 
s0   %K K7K"7K/KK"K,/K8c                     g d} t        j                  dd      dz   t        ddgdgd	| 
      }|D cg c]  }t        j                  |       }}t	        |d   d   d       t	        |d   d   d       t	        |d   d   dgdz  gdz         t	        |d   d   d       t	        |d   d   d       t	        |d   d   d       t	        |d   d   dgdz  gdz         t	        |d   d   d       t	        |d   j
                  t        j
                  |              g d} t        j                  dd      ddg dg dgdfd<   ddg dg dgdfd<   ddg dg dgdfd<   t        rt        j                  d         }t        ddgdgd	| 
      }|D cg c]  }|j                          }}t	        |d   d   d       t	        |d   d   d       t	        |d   d   dgdz  gdz         t	        |d   d   d       t	        |d   d   d       t	        |d   d   d       t	        |d   d   dgdz  gdz         t	        |d   d   d       t	        |d   j
                  t        j
                  |              d gdz  \  }}}t        r"t	        t        j                  d                dg} t        j                  ddg|       t        ddgdgd	d
      }t	        |D cg c]  }|d   	 c}ddg       g d } t        j                  d!d"g|       t        t        fd#       g d }g d$}t        j                  d%d&g|      t        ddgdgd	|
      }t	        |d   j
                  t        j
                  |             t	        |D cg c]  }t        j                  |       c}t        j                  d%|      t        j                  d&|      g       y c c}w c c}w c c}w c c}w )'Nr4   r$   r  rD  )r  rF  r   r2  r4  rA   r$   r+         ?r   r5  rF   r'   r(   r   r4   r  r  rD   r2  rG   r   rv   r4  )r  r  r  )r   r   r   r*  r*  r*  r*  r  )      @r   r!  r'  r?   r   r  r  r  )r  r   test)r   r   r   c                  *    t         ddgdgdd      S )Nr   r5  rF   r'   r!  r(   )r   r]  s   r   r   z9test_iter_buffered_cast_structured_type.<locals>.<lambda>  s    q:y)J<	r   ))r2  u2r=  )r  r  r#  rB   r?   r#   )r.   r   r   r   r   r,   r   r   r0   r1   r3   r
   r   )	sdtr   rV   r9  r7  r8  sdt1sdt2r4   s	           @r   'test_iter_buffered_cast_structured_typer    s    FC
		!4 3&Aq:y)J<$!	#A "##ABHHQKD#as#aq!a#	{1}-as#as#aq!a#	{1}-as#a. FC
S!A8#>AaD8#>AaD8#>AaD__QqT"q:y)J<$!	#A   aAFFHaD as#aq!a#	{1}-as#as#aq!a#	{1}-as#a.JD!QS__QqT*B/ -C
&$s+Aq:y)J<$"	$A 1%1R"R&1%1v. 1C
"K0<A)   ! 2D1D
)Y't4Aq:y)J<$"	$A 1RXXd^,+2"((2,+((9D1((9D134y $, !( &$ ,s   O-O2-O7O<c            
         g d} ddg}t        j                  ddg|       }dD ]U  }t        j                  dd	gd
      }t        j                  t              5  t        ||fddg||gdd|g       d d d        W y # 1 sw Y   bxY w)Nr  )r  r4  )r4   r  r#  r  r+   )r%   rF   r   rG   rD   zi,ir   r5  r'   zf,fr(   )r.   r   pytestraisesr   r   )r  r  r4   intent
simple_arrs        r   <test_iter_buffered_cast_structured_type_failure_with_cleanupr    s     2D$D
)Y't4A8 XXq!fE2
]]9%J?Z$;ff=M#t}> &% 9 &%s   A==B	c                     t        j                  t              5  t        j                  t        j
                  dd      fdgddg       d d d        t        j                  t        j
                  dd      fdgd	gddg
      } t        j                  t              5  | 5  t        |       }d|d<   d d d        d d d        y # 1 sw Y   zxY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr4   S1r+   r   r'   r   )r*   r)   ri   rG   r   )r*   op_flagsr)   ri   .)r   r  r   r.   r   r   rd  )r8   bufs     r   test_buffered_cast_error_pathsr	    s    	z	"
		288Ct,.3%":,	8 
# 
BHHQc*,(M8J<
QB	z	"r(CCH  
#	" 
#	" R 
#	"s/   2C C#C4CCC	CC&zCannot start subprocesszPyPy seems to not hit this.c                      t        j                  d      } t        j                  t        j
                  d| gt        j                  d      }d|v sJ y )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_outputr0   
executableSTDOUT)coderx  s     r   )test_buffered_cast_error_paths_unraisabler    sP     ??  D 
!
!3>>4">)3):):GC3r   c            	         dg} dg}t        j                  d|       }t        j                  d      |d<   t        |ddgd	gd
|      }t	        |d   j
                  t        j
                  |             t        |t        t        d                  D ])  \  }}t        t        j                  |d   |k(               + dg} dg}t        j                  d|       }t        j                  d      |d   d d ddf<   t        |ddgdgd
|      }|5  t	        |d   j
                  t        j
                  |             d}|D ];  }t        t        j                  |d   |k(               |d   dxx   dz  cc<   |dz  }= 	 d d d        t	        |d   t        j                  d      j                  ddd      dz          dg} dg}t        j                  d|       }t        j                  d      |d   d d dddf<   t        |ddgdgd
|      }|5  t	        |d   j
                  t        j
                  |             d}|D ]#  }t	        |d   |       |dxx   dz  cc<   |dz  }% 	 d d d        t	        |d   t        j                  d      j                  dddd      t        j                  d      z  dz          dg} dg}t        j                  d|       }t        j                  d      |d   d d dddf<   t        |ddgd	gd
|      }t	        |d   j
                  t        j
                  |             d}|D ]  }t	        |d   |       |dz  } dg} dg}t        j                  d|       }t        j                  d      |d   d d dddf<   t        |ddgd	gd
|      }t	        |d   j
                  t        j
                  |             d}|D ]  }t	        |d   |       |dz  } dg} dg}t        j                  d|       }t        j                  d      j                  dddd      |d<   t        |ddgd	gd
|      }t	        |d   j
                  t        j
                  |             d}|D ]  }t	        |d   ||   d          |dz  } dg} dg}t        j                  d|       }t        j                  d      j                  dd      |d<   t        |ddgd	gd
|      }t	        |d   j
                  t        j
                  |             d}|D ]  }t	        |d   ||   d   d d        |dz  }! dg} dg}t        j                  d|       }t        j                  d      j                  dd      |d<   t        |ddgd	gd
|      }t	        |d   j
                  t        j
                  |             d}|D ]3  }t	        |d   d d ||   d          t	        |d   dd  g d       |dz  }5 dg} dg}t        j                  d|       }t        j                  d      j                  dd      |d<   t        |ddgd	gd
|      }t	        |d   j
                  t        j
                  |             d}|D ]7  }t	        |d   d   ||   d          t	        |d   d   ||   d          |dz  }9 d g} d!g}t        j                  d|       }t        j                  d      j                  ddd      |d<   t        |ddgd	gd
|      }t	        |d   j
                  t        j
                  |             d}|D ]e  }t	        |d   d ddf   ||   d   d d df          t	        |d   d ddf   ||   d   d d df          t	        |d   dd d f   ddg       |dz  }g d"g} d!g}t        j                  d|       }t        j                  d      j                  ddd      |d<   t        |ddgd	gd
|      }t	        |d   j
                  t        j
                  |             d}|D ]e  }t	        |d   d ddf   ||   d   d d df          t	        |d   d ddf   ||   d   d d df          t	        |d   dd d f   ddg       |dz  }g y # 1 sw Y   *xY w# 1 sw Y   NxY w)#Nr  )r4   r  rA   rD   rD   r   r+   r#   r4   r   r5  rF   r'   r(   r   )r4   r4  r}   )r4   r4  r  r%   rD   rG   )r4   r4  rt   )rG   rA   rD   rD   )r4   r$   rt   )r4   r$   r  H   rA   )r4   r  r   )r4   r$   ru   r   )r4   r  ru   )r4   r$   r   r   )r   r   r   r   )r4   r$   r  )r4   r  )rD   rG   )r4   r$   )rA   rD   )r4   r  r   )r.   r   r   r   r   r,   r  r  rI   r   r   rM   r   )r  r  r4   r   rV   counts         r    test_iter_buffered_cast_subarrayr  !  s    =D"#D
T"AYYq\AcFq:y)J<$"	$A 1RXXd^,4a>*5qv'( + D!"D
T"AiilAcF1a7Oq:y)K=$"	$A 
QqTZZ$0ABFF1S6U?+,cF1INIQJE  
 31--aA6q89 ""DD
T"A1AcF1aA:q:y)K=$"	$A 
QqTZZ$0A3'cFaKFQJE  
 31--aAq9"'',:OOPQQR ##DD
T"A1AcF1aA:q:y)J<$"	$A 1RXXd^,EQsVU#
 
 ""DD
T"A1AcF1aA:q:y)J<$"	$A 1RXXd^,EQsVU#
 
 ""D"#D
T"AYYw''1a3AcFq:y)J<$"	$A 1RXXd^,EQsVQuXc]+
 
 DD
T"AYYs^##Aq)AcFq:y)J<$"	$A 1RXXd^,EQsVQuXc]2A./
 
 DD
T"AYYs^##Aq)AcFq:y)J<$"	$A 1RXXd^,EQsVBQZ5#/QsVABZ.
  D D
T"AYYs^##Aq)AcFq:y)J<$"	$A 1RXXd^,EQsVAY%.QsVAY%.
    D D
T"AYYs^##Aq!,AcFq:y)J<$"	$A 1RXXd^,EQsVBQBE]AeHSM!Q$$78QsVBQBE]AeHSM!Q$$78QsVAaC[1a&)
	    D D
T"AYYu%%aA.AcFq:y)J<$"	$A 1RXXd^,EQsVBQBE]AeHSM!Q$$78QsVBQBE]AeHSM!Q$$78QsVAaC[1a&)
	 U 
" 
s   A/b)Ab6)b36c c                     t        j                  d      j                  ddd      } t        j                  d      j                  ddd      }t        t        t
        | |gddgdgd	ggd
       t        | |gddgdgd	ggd
       t        j                  d      j                  ddd      } t        | |gg ddgd	ggd
       t        j                  d      j                  ddd      } t        t        t
        | |gddgdgd	ggd
       t        j                  d      j                  ddd      } t        t        t
        | |gddgdgd	ggd
       y )Nr#   rD   rA   rG   r   r   r   r%   r   rY   rZ   rF   r   r   r  rB   )r.   r   rM   r
   r   r   r3  s     r    test_iter_buffering_badwritebackr    sW    			!Q1%A
		"aA&A*fq!f/=;-0 Aq6J0L;-(
 			!Q1%A
Aq6=MK=)
 			!Q1%A*fq!f/=;-0 			!Q1%A*fq!f/=;-0r   c                     t        j                  g dt         j                        } t        | j                  t        j                  d             t        t        t        | dgdgd       t        | dgdgd      }t        |d	   d
       t        |d	   j                  t        j                  d             t        j                  g dt         j                        } t        | j                  t        j                  d             t        t        t        | dgdgd       t        | dgdgd      }t        |d	   d       t        |d	   j                  t        j                  d             y )N)abcr4   abcdr+   S4r   rF   S2r-   S6r   s   abcU4U2U6r  )	r.   r   bytes_r   r,   r
   r   r   str_rw   s     r   test_iter_buffering_stringr(    s   
%RYY7A"((4.))VQzl "q:,=A1v1RXXd^,
%RWW5A"((4.))VQzl"$q:,=A1u1RXXd^,r   c                      t        j                  d      } t        | g dd      }t        |d   j                  | j                         y )N   )r   	growinnerr   r?   r  r   )r.   r   r   r   r   rw   s     r   test_iter_buffering_growinnerr,    s9    
		"Aq<&'	)A 1AFF#r   c            
      `   t        j                  d      dd g d} ddg}ddgdd	ggt        j                  g}fd
} |       D ]I  \  }}}t        j                  |j                         d g|| ||      }|5  d|j                  d   d<   |j                          ||_        |D ]'  \  }}	|	|j                  t         j                        z  }	) |j                  d   }
d d d        t        dd      D ]  }t        j                  |d g|| |||      }|5  d|j                  d   d<   |j                          ||_        |D ]'  \  }}||j                  t         j                        z  }) |j                  d   }d d d        t        
        L y # 1 sw Y   xY w# 1 sw Y   'xY w)Ni        )r   r  r   r  r5  )rF   )r%   r   r  )r   rG   rE   rW  c               3   $  K   t        dd      D ]|  } t        | d      D ]k  }D ]d  }| j                  z  |j                  z  j                  f}t        j                  j                  j                  d|      }dD ]	  }|||f  f m ~ y w)Nir   )rA   rA   rA   r{   )rI   rp  r.   libstride_tricks
as_strided)xsysr   r   ru  skipr4   op_axes_lists         r   
get_paramsz3test_iter_buffered_reduce_reuse.<locals>.get_params	  s     x(BB)+G  "AJJQZZLG&&..99!YPC &!7D00 !'  , * )s   BB)r   ri   r  r*   r   rE   .   )r   ri   r  r  r*   )r.   r   floatr,   r   r3   r   r  r   rq  int_rI   r	   )ri   r  r*   r8  ru  r   r6  nditer2a2_inb2_incomp_resbufsizenditer1a1_inb1_inrx  r4   r7  s                   @@r   test_iter_buffered_reduce_reuserD  	  s    			&$v&AQE89H
+i-EFL I
1 )lWd))SXXZ.$+58&/1 ()GR %MMO $G")bgg.. #* ''+H  Q~Giid(/ux+2iIG ,-  $S)$(!&-NUEU\\"''22E '. &&r*  sH- & + W s   >A%FA%F$F!	$F-c            
         t        j                  d      j                  ddd      } t        j                  d      j                  ddd      }t        j                  d      j                  dd      }t        | ||gg dd	gdgdgg       t	        t
        t        | ||gg dgdd	gdgg       t	        t
        t        | ||gg dgdgdd	gg       y )
Nr   rD   rA   rB   r#   rG   r   rF   r   )r.   r   rM   r   r
   r   )r4   r  r  s      r   test_iter_no_broadcastrF  9	  s    
		"aA&A
		!Q1%A
		"a#A
Aq!9b(L:,() *fq!Qi<*n!=
|LN*fq!Qi<*
N/KLNr   c                   <    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
y	)
TestIterNestedc           
      .   t        d      j                  ddd      }t        j                  |dgddgg      \  }}|D cg c]  }t	        |       }}t        |g dg dg       t        j                  |ddgdgg      \  }}|D cg c]  }t	        |       }}t        |ddgddgdd	gd
dgddgddgg       t        j                  |ddgdgg      \  }}|D cg c]  }t	        |       }}t        |g dg dg dg dg       y c c}w c c}w c c}w )Nr   rD   rA   r   rG   r   r#   r   r   r   r   r   rB   r?   r#   r   r   r   r   r   r   rD   rB   rG   rA   r?   r#   r   r   r   r   r   r   rM   r.   nested_itersr  r   selfr4   r   re  _r9  s         r   
test_basiczTestIterNested.test_basicJ	  s   2Jq!Q'qA3A-01!"#AQ#T.0DEFqAq6A3-01!"#AQ#TQFQFQFQFQFRHMNqAq6A3-01!"#AQ#TIy*jIJ $ $ $s   DDDc           
      ,   t        d      j                  ddd      }t        j                  |dgddgg      \  }}|D cg c]  }t	        |       }}t        |g dg dg       t        j                  |ddgdgg      \  }}|D cg c]  }t	        |       }}t        |ddgddgdd	gd
dgddgddgg       t        j                  |ddgdgg      \  }}|D cg c]  }t	        |       }}t        |g dg dg dg dg       t        j                  |dgddggd      \  }}|D cg c]  }t	        |       }}t        |g dg dg       t        j                  |ddgdggd      \  }}|D cg c]  }t	        |       }}t        |ddgd
dgddgddgdd	gddgg       t        j                  |ddgdggd      \  }}|D cg c]  }t	        |       }}t        |g dg dg dg dg       y c c}w c c}w c c}w c c}w c c}w c c}w )Nr   rD   rA   r   rG   r   rJ  rB   r?   r#   r   r   r   r   r   rK  rL  rM  rN  rY   rZ   r   )r#   r   r   r   r   r   rO  rQ  s         r   test_reorderzTestIterNested.test_reorderZ	  s,   2Jq!Q' qA3A-01!"#AQ#T.0DEFqAq6A3-01!"#AQ#TQFQFQFQFQFRHMNqAq6A3-01!"#AQ#TIy*jIJ qA3A-s;1!"#AQ#T.0DEFqAq6A3-s;1!"#AQ#TQFQFQFQFQFRHMNqAq6A3-s;1!"#AQ#TIz9jIJ- $ $ $
 $ $ $s#   G8G=H+H5HHc           
      J   t        d      j                  ddd      d d dd d dd d df   }t        j                  |dgddgg      \  }}|D cg c]  }t	        |       }}t        |g dg dg       t        j                  |ddgdgg      \  }}|D cg c]  }t	        |       }}t        |ddgddgd	d
gddgddgddgg       t        j                  |ddgdgg      \  }}|D cg c]  }t	        |       }}t        |g dg dg dg dg       t        j                  |dgddggd      \  }}|D cg c]  }t	        |       }}t        |g dg dg       t        j                  |ddgdggd      \  }}|D cg c]  }t	        |       }}t        |ddgddgddgd
d	gddgddgg       t        j                  |ddgdggd      \  }}|D cg c]  }t	        |       }}t        |g dg dg dg dg       y c c}w c c}w c c}w c c}w c c}w c c}w )Nr   rD   rA   rE   r   rG   r   rJ  rB   r?   r#   r   r   r   r   r   rK  rL  rM  rN  rY   rZ   )r   r   r   r   r   r#   r   )r   r   r   )r   r   r#   )r?   rA   rG   )rB   rD   r   rO  rQ  s         r   test_flip_axeszTestIterNested.test_flip_axesx	  sD   2Jq!Q'"ddDbD(89 qA3A-01!"#AQ#T.0DEFqAq6A3-01!"#AQ#TQFQFQFQFQFRHMNqAq6A3-01!"#AQ#TIy*jIJ qA3A-s;1!"#AQ#T02DEFqAq6A3-s;1!"#AQ#TRHq!fq!fq!fq!fq!fMNqAq6A3-s;1!"#AQ#TJ
IyIJ- $ $ $
 $ $ $s$   HH*H:HHH c                    t        d      j                  dd      }t        d      j                  dd      }t        j                  ||gdgdgg      \  }}|D cg c]  }t	        |       }}t        |ddgddgddggddgddgddggg       t        j                  ||gdgdgg      \  }}|D cg c]  }t	        |       }}t        |ddgddggddgddggddgddggg       y c c}w c c}w )NrD   rG   rA   r   rO  )rR  r4   r  r   re  rS  r9  s          r   test_broadcastzTestIterNested.test_broadcast	  s   1Ia#1Ia#1vaSz21!"#AQ#TaVaVaV41v1v1v6NOP1vaSz21!"#AQ#TaVaV,1v1v.>!Q!Q@PQR $ $s   C'1C,c                    t        dd      j                  dd      }t        j                  |dgdggdd	gd
      \  }}t	        |d   j
                  t        j
                  d
             |D cg c]  }t        |       }}t	        |g dg dg       d }t        dd      j                  dd      }t        j                  |dgdggddgdd
      \  }}|5  |5  t	        |d   j
                  t        j
                  d
             |D ]  }|D ]  }|dxx   dz  cc<     t	        |g dg dg       d d d        d d d        t	        |g dg dg       t        dd      j                  dd      }t        j                  |dgdggddgdd
      \  }}t	        |d   j
                  t        j
                  d
             |D ]  }|D ]  }|dxx   dz  cc<     t	        |g dg dg       |j                          |j                          t	        |g dg dg       y c c}w # 1 sw Y   xY w# 1 sw Y   xY w)Nr#   r!  r+   rD   rA   r   rG   rF   r3   r  )r  r*   r  )rA   rB   r?   r$   r%   r&   r  )r  r)   r*   .r#  r  )r   rM   r.   rP  r   r,   r  close)rR  r4   r   re  rS  r9  rV   rZ  s           r   test_dtype_copyzTestIterNested.test_dtype_copy	  s    1D!))!Q/qA3*&0&%9&*,1 	QqTZZ$0!"#AQ#TIy12 1D!))!Q/qA3*&1>%B$/&*,1 1RXXd^4AcFaKF   Y	23 Q 	QI./ 1D!))!Q/qA3*&1>%B$/&*,1 	QqTZZ$0A#!   	QI./				QI./? $ QQs+   0H%H6AH*7H6*H3	/H66H?c                 8   t        dd      j                  dd      }t        j                  |dgdggdgd	gd
d      \  }}t	        |d   j
                  t        j
                  d             |D ]  }|D ]  }|dxx   dz  cc<     t	        |g dg dg       y Nr#   r$   r+   rD   rA   r   rG   r   r%   r  r  )ri   r  r)   r*   .r#  r  r   rM   r.   rP  r   r,   rR  r4   r   re  rV   rZ  s         r   test_dtype_bufferedz"TestIterNested.test_dtype_buffered	  s     1D!))!Q/qA3*#-,&1]$/&*	,1
 	QqTZZ$0A#!   	QI./r   c                 v   t        j                  d      j                  ddd      }t        j                  |g g dg      \  }}|D cg c]  }t	        |       }}t        |g dg       t        j                  |g dg g      \  }}|D cg c]  }t	        |       }}t        |dgdgdgdgdgd	gd
gdgdgdgdgdgg       t        j                  |ddgg dgg      \  }}}g }|D ](  }|D ]!  }|j                  |D 	cg c]  }	|	 c}	       # * t        |g dg dg dg dg       y c c}w c c}w c c}	w )Nr   rD   rA   )rG   r   rD   r   r   rG   rB   r?   r#   r   r   r   r   r   rK  rL  rM  rN  )r.   r   rM   rP  r  r   r   )
rR  r4   r   re  rS  r9  krV   rZ  zs
             r   test_0dzTestIterNested.test_0d	  sB   IIbM!!!Q*q2y/21!"#AQ#TBCDq9b/21!"#AQ#TQC!qcA3aS1#sQC!rdUWTXYZ//!q!fb1#%671aAN1QN+   	TIy*jIJ $ $ +s   D,D1?	D6c                    t        dd      j                  dd      }t        j                  |dgdggdgd	gd
d      \  }}|5  |5  t	        |d   j
                  t        j
                  d             |D ]  }|D ]  }|dxx   dz  cc<     	 d d d        d d d        t	        |g dg dg       y # 1 sw Y   $xY w# 1 sw Y   (xY wr_  r`  ra  s         r   %test_iter_nested_iters_dtype_bufferedz4TestIterNested.test_iter_nested_iters_dtype_buffered	  s     1D!))!Q/qA3*#-,&1]$/&*	,1
 1RXXd^4AcFaKF   Q
 	QI./ QQs%   B?AB3B?3B<	8B??CN)r  r  r  rT  rV  rX  rZ  r]  rb  rf  rh  r'  r   r   rH  rH  H	  s0    K K<K<S(0T0K"0r   rH  c            
         t        j                  d      } t        t        t        | d gg dgddggdgdgg       t        j                  d      j                  dd	      } t        t        t        | d gd
gdgddggddgddgg       y )Nr#   rF   r%   r   r   rE   rU  rD   rA   r   rG   )r.   r   r
   r   r   rM   r]  s    r   test_iter_reduction_errorrj  	  s    
		!A*fq$i \K#<=S2$K) 			!Q"A*fq$i/1B \K#<=Vb"X.0r   c                  l   t        j                  d      } t        | d gdgdgddggdgdgg      }|5  d|j                  d	   d
<   |D ]  \  }}|d
xx   |z  cc<    t	        |j                  d	   j
                  d       t	        |j                  d	   t        j                  |              d d d        t        j                  d      j                  dd      } t        | d gddgdgddggdd	gddgg      }|5  d|j                  d	   d
<   t	        |d	   j                  d       t	        |d	   j                  d       |D ].  \  }}t        t        |            D ]  }||xx   ||   z  cc<    0 t	        |j                  d	   j
                  d       t	        |j                  d	   t        j                  |              d d d        t        j                  d      } t        | d gddgdgddggd g dg      }t        | d gg ddgddggd g dgd      }|5  |5  |j                  d	   j                  d       |j                  d	   j                  d       |j                          |D ]  }|d	   d
xx   |d   z  cc<    |D ]  }|d	   d
xx   |d   z  cc<    t	        |j                  d	   |j                  d	          t	        |j                  d	   j                         | j                         d d d        d d d        y # 1 sw Y   ZxY w# 1 sw Y   SxY w# 1 sw Y   ,xY w# 1 sw Y   y xY w)Nr#   r  rF   r%   r   r   rE   rU  rG   .rD   rA   r   r   rs   )rD   rA   r?   )r   rE   rG   )r  r   r   r  r   )r   r  )r.   r   r   r   r   r   sumrM   rQ   r   rI   rJ   r   fillr  r   )r4   r   rV   rZ  re  it1r;   s          r   test_iter_reductionro  	
  s    			!A4y;- \K#<=S2$K	)A 


1cDAqcFaKF  	QZZ]''+QZZ]BFF1I. 
 			!Q"A4y;8 \K#<=Vb"X.	0A 


1cQqTZZ&QqT\\4(DAq 3q6]!! #	  	QZZ]''+QZZ]BFF1I. 
$ 		A
!T[/: \K#<=!:.0C !T : \K#<=!:.2?C 
cQQQQ		AaDI1I AaDI1I S\\!_cll1o6S\\!_((*AFF3 Q 
 
4 cs>   A9L9CLL*CL3L*LLL'	#L**L3c                      t        j                  d      } t        j                  dd      j                         j	                         }t        | |gddgdgdd	ggd
gdgg      }|5  t        |d   j                  t        j                  d             t        |d   j                  |j                  k7         |D ]  \  }}|dxx   |z  cc<    	 d d d        t        |t        j                  |              t        j                  d      j                  dd      } t        j                  d
d
gd      j                         j	                         }t        | |gg ddgdd	ggd
dgd
dgg      }|5  t        |d   j                  d       t        |d   j                  d       |D ].  \  }}t        t        |            D ]  }||xx   ||   z  cc<    0 	 d d d        t        |t        j                  | d             t        j                  d      dz   }t        j
                  |d gg ddgddggdd
gddggd      }|5  |j                  d   j!                  d
       |j#                          t        |d
   g d       d d d        t        j$                  dt         j&                        dddddddf   j)                  ddd
      }t        j                  |j*                        j                  |j                        |d<   t        j                  dt         j&                        j                  dd      }|j-                         }	|d d dd d d f   }t        j
                  ||gg ddgdgg      }|5  |D ]  \  } }| j!                  d        	 d d d        t        |dd d   |	dd d          t        |d d d   d       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   dxY w# 1 sw Y   [xY w) Nr#   g        r  r+   r  r   rF   r%   r  r   rE   rU  rG   .rD   rA   r  r   r   rv   rs   )axis)r  r  r   r   r   r  r   )rG   rD   rG   rD   )r   r  r   rB   r   r?   r  r  )r.   r   r   r  r/   r   r   r,   r   rl  rM   rQ   r   rI   rJ   r   rm  r  r   rM  	transposer   r3   )
r4   r  r   rV   rZ  re  r<  r8   y_basey_base_copys
             r   test_iter_buffering_reductionrv  D
  s{    			!A
4 ))+88:A1vZ0 \K#78S2$K	)A 
QqTZZ$0!

agg%&DAqcFaKF 	 
 BFF1I
		!Q"A
!Qt$--/<<>A1vA \K#78VaW-	/A 
QqTZZ&QqT\\4(DAq 3q6]!! #	 	 
 BFF11%& 			!qA	At9H\K45!Wr2h'	
B
 

AA

RUL) 
 	
BGG$QqS2a!^4>>q!QGAYYqvv&&qww/AcFYYs"''*221a8F++-Kss1TzA	Aq6= MJ<0
2B 
DAqFF1I  
 1{14a401!a m 
 
& 
 
s3   'A)O2A&OA O'=O4OO$'O14O=c                  p   t        j                  d      } t        j                  d      }t        j                  | |gg ddgdggd      }|5  |D cg c]  \  }}|j                  d    }}}d d d        t	        g d	       t	        t        |      | j                         y c c}}w # 1 sw Y   =xY w)
N)rD   r   )rG   r   rq  rF   r%   r?   )ri   r  r  r   )r?   rD   r?   rD   )r.   r   r   rQ   r   rl  r   )r4   r  r8   rV   rZ  bufsizess         r   0test_iter_buffering_reduction_reuse_reduce_loopsry  
  s    
 	A
A	Aq6!K)l[M: 
"B 
+-.241aAGGAJ2. 
<(X' / 
s   B,B&-B,&B,,B5c            
      b   t        j                  d      } t        j                  d      }t        j                  g dg dg      }t        j                  g d      }t        j                  g dd      }t        j                  g dd      }t        j                  g dd	      }t        t        t
        | |gg d
dgdgg       t        t        t
        | |gg ddgddgg       t        t        t
        | |gg dgg dg       t        t        t
        | ||gg d
dgddgddgg       t        t        t
        | |gg d
gddgg       t        t        t
        | ||gdgdgd
dgddgg       t        j
                  | ||gdgdgd
dgddgg       t        t        t
        | ||gdgdgd
dgd
dgg       t        j
                  | |gdgd
dgddggd	d gd       t        t        t         j
                  | |gdgd
dgddggd	d gd       t        t        t         j
                  | |gdgd
dgddggd	d gd       y )Nr   rv   TTF)FTFr   u1r+   r  r$   r%   writemaskedrF   	arraymask)r%   r~  r}  r  r   r  rn  )r.   r   r   r
   r   r   r   )r4   r  rj  m2m3mbad1mbad2s          r   test_iter_writemasked_badinputr  
  s   
A
A
%';<=A	%	&B	)4	(BHHYd+EHHYd+E *fq!fb!=1J<@B *fq!fb -0:{2KLN *fq!fb \#LMO *fq!Rj"!=1 +. +.01 *fq!fb!]Z$=>@ *fq!Qi+ \!=1 +.01
 IIq!Rj;- \!=1 +.01
 *fq!Rj;- \!=1!;/12 IIq"g
|!=1 +.0#Tl'	) )RYYE
ZL!=1 +.0#Tl'	) )RYYE
ZL!=1 +.0#Tl'	)r   c                 <    	 | j                    y# t        $ r Y yw xY w)NTF)r  r   )iterators    r   _is_bufferedr  
  s)       s    	r4   rv   r  r+   )&  r  rD   )rB   i8  |   rA   )r   rA   )r  r*  r?   rE   c                    | j                   }|d   dz  }t        j                  |t              }g d|z  |d<   t        j                  | |gg ddgdd	gg      }|5  |D ]
  \  }}d
|d<    	 d d d        t        | t        j                  g d|z  |             t        j                  | |gdgddgdd	gg      }d}|5  |D ]#  \  }}d|d<   t        j                  ||       s"d}% 	 d d d        |s&t        | t        j                  g d|z  |             n*t        | t        j                  g d|z  |             d| d<   t        j                  | |gdgddgdd	ggdd gd      }|5  |D ]
  \  }}d|d<    	 d d d        t        | t        j                  g d|z  |             y # 1 sw Y   =xY w# 1 sw Y   xY w# 1 sw Y   HxY w)NrE   rA   r+   r{  .r%   r}  rF   r~  rG   r   r   Tr*  Fr  )r*  r*  rG   rD  r'   rn  )rA   rA   r*  )rQ   r.   emptyboolr   r   broadcast_tomay_share_memory)r4   rQ   repsmskr8   rV   rj  is_buffereds           r   test_iter_writemaskedr  
  s    GGE9>D
((5
%C"T)CH 
As8R}-k*,
-B 
DAqAcF  
 BOOI$4e<= 
As8j\}-k*,
-B K	DAqAcF""1a(#  
 Q$(>FG 	Q(<eDE#
 
As8j\}-k*,, 	
"B
 
DAqAcF  

 BOOK$$6>?W 
  
, 
s*   F'=$F4"F4(G 'F14F= G	mask	mask_axesr  r  rG   rB   r'  c                     t        j                  d      }dg}g d}ddg}|d }n|ddgg}t        t              5  t        j                  | |f|||g|       d d d        y # 1 sw Y   y xY w)	Nr@   r  )r~  r%   r   r   r}  r   rG   )ri   r  r   )r.   r   r
   r   r   )r  r  ru  itflags
mask_flagsa_flagsr   s          r   %test_iter_writemasked_broadcast_errorr  #  ss     ((6
CmG7JM*Gq!f%	z	"
		4+W
G7L!	# 
#	"	"s   A""A+c                     t        j                  d      j                  d      } | j                         }t         j                  j                  ddd      j                  t              }t        j                  | |gddgdd	gd
dggddg      }t               }t        rt        j                  |      }|D ]  \  }}d|f|d<    ~~~t        r0t        j                  |      z
  t        j                  |      k(  sJ t        | |    ||           | |   t        j                  d|f| j                        k(  j!                         sJ ~ t        rt        j                  |      k(  sJ y y )Ni'  z>i,Or   rD   )r   r   r5  r%   r}  rF   r~  z<i,O?r-   rA   .)r.   r   rq  r3   randomrandintr  r   r  r   r0   r1   count_nonzeror	   r   r,   r   )ru  originalr  r8   	singletonr  r  mask_bufs           r   test_iter_writemasked_decrefr  >  sS   
))E

!
!&
)CxxzH99Q.55d;D	C;Y 7 -0-/$c]
,B I	*Xy>C  	Xr y)E1R5E5Ed5KKKKsD5z8TE?3I1i.#))<<AACCCy)U222 r   c                      t        j                  t        j                  d            } g d}|D ]  }t        t        t
        | |        y )NrD   )r,  rQ   r   r  r  r2   has_multi_index	has_indexr  r   nopr   r   r.   r   r   r
   AttributeErrordelattrr8   attrss      r   )test_iter_non_writable_attribute_deletionr  ]  s9    	2771:	B3D ngr15 r   c                      t        j                  t        j                  d            } g d}|D ]  }t        t        t
        | |        y )NrD   )r   r   r   r   r  r  s      r   %test_iter_writable_attribute_deletionr  g  s5    	2771:	B>Dngr15 r   c                      t        j                  t        j                  d            } 	 | d= | dd= y # t        $ r Y y t        $ r t
        w xY w)NrA   rG   rD   )r.   r   r   r   rr  r   r8   s    r   test_iter_element_deletionr  n  sO    	2771:	BqEqsG  s   3 	AAc                  :   t        j                  g dd fd dg      } | D ]  \  }}|dz
  |d<   |dz   |d<    t        | j                  d   ddgddgdd	gg       t        j                  g dgd fd dgd
gd dg      } | D ]  \  }}|dz
  |d<   |dz   |d<    t        | j                  d   ddgddgdd	gg       t        j                  dg d      } | D ]&  \  }}}||z
  |d<   ||z   |d<   ||z  |d<   ||z  |d<   ( t        | j                  d   ddgddgg       y )N)rG   rA   rY  )r!  ru   r-   rG   r   rD   rB         r  )rE   r   )r*   ri   r   )r   rD   N)NN)r!  r  rz   r{   r|   r}   r   r   rY  r?   )r.   r   r   r   )r8   r4   r  r  s       r    test_iter_allocated_array_dtypesr  x  s`    
J%$1E	FB11u!1u!  Q1a&1a&2r(!;< 
ZL$'D,3G%w
AB11u!1u!  Q1a&1a&2r(!;< 
=,H	IB1aa%$a%$a%$a%$	 
 Q1b'B7!34r   c                  L   t        ddgdgdggdz        } t        | j                  d       t        t        |       d       t        | j                  d       t        | j
                  d       t        t        t        |        | j                          t        t        |       d       t        t        t        |        t        t        j                  d      dgdggdg	      } t        | j                  d       t        t        |       d
       t        t        j                  d      dgdggdgd      } t        | j                  d       t        t        |       d
       t        t              5  t        t        j                  d      dgdggd       d d d        g d}t        j                  dd      }t        |ddgdgd|      } t        |       }t        |d   d       t        |d   d       t        |d   dgdz  gdz         t        |d   d       y # 1 sw Y   xY w)NrD   rA   r   rF   r   r   r'  r?   rU  rG   r   r   r  r  r$   r+   r   r5  r'   r(   r4   r  r  r2  )r   r   r   rd  r   r   r
   StopIterationr  r.   r   rJ   r   r   )r   r  r4   r9  s       r   test_0d_iterr    s   1v*q(89Aa&!#a -q)GGIa&!-q) 	ryy|m_
|nrdKAQryy|m_
|ntr	+AQ 
z	"ryy|m_
|nK 
# FC
D!Aq:y)J<$	5A7DcC cAcsWQYKM*cC  
#	"s   .&HH#c            	         t        t        d        t        j                  t        j                  dz        j                  dd      j                  t              j                  t              d d d df<   t        t        fd        G d d      } t        t        t        j                  j                  t        j                   |         |        gd             y )	Nc                  6    t        j                  dd      d z  S )N)ihB  rD   r$   r+   )r.   r   r'  r   r   r   z*test_object_iter_cleanup.<locals>.<lambda>  s    RXXj%E%Lr   r   rE   c                  X    t        j                  d d d d df    d d d d df         S )NrE   )r.   add)ru  oarrs   r   r   z*test_object_iter_cleanup.<locals>.<lambda>  s(    RVVDDbDM3q$B$w<%Hr   c                       e Zd Zd Zy)#test_object_iter_cleanup.<locals>.Tc                     t        d      )N	Ambiguous)r   )rR  s    r   __bool__z,test_object_iter_cleanup.<locals>.T.__bool__  s    K((r   N)r  r  r  r  r'  r   r   rN   r    s    	)r   rN   r4  r+   )r
   r   r.   r   BUFSIZErM   rq  r   r  
logical_orreducer   )rN   ru  r  s    @@r   test_object_iter_cleanupr    s     )LM ))BJJO
$
,
,R
4
;
;C
@C::fDDBK)HI) ) )R]]11XXqsACj<>r   c                      t        j                  d dgddgd dgddgg      d d d   } t        j                  t              5  t        j
                  |        d d d        y # 1 sw Y   y xY w)NrG   rE   rD   )r.   r   r   r  r   rl  )ru  s    r   test_object_iter_cleanup_reducer    sW     ((T1IBx$RH=
>ss
CC	y	!
s 
"	!	!s   A  A)ru  )@  rB   rD   rb   )r,   r[   c                     t        j                  dt         j                        }t        j                  | dt        |      }t        |t        j                  ddt                     y )Nr  r+   r~   )rr  r,   outrB   )r.   r   intprl  r  r	   full)ru  r  rx  s      r   %test_object_iter_cleanup_large_reducer    sC     ''$bgg
&C
&&6S
9CsBGGD!6:;r   c                  `   t        j                  t         j                        j                  dz  } t         j                  j
                  j                  t        j                  d      | fd      }t        t        t        ||d d d f   f       t        t        t        ||d d d f   fdg       y )Nr  rG   rs   r   rh   )r.   iinfor  maxr1  r2  r3  r   r
   r   r   )r   ru  s     r   test_iter_too_larger    s     88BGG  D(D
&&


)
)"((1+w
EC*fsC4L&9: *fAtG%m_>r   c                  H   d} d}| |z  t        j                  t         j                        j                  k  r9|dz  }| |z  t        j                  t         j                        j                  k  r9ddg|z  }g }t	        |      D ]3  }|d d  }d||dz  <   |j                  t        j                  |             5 t        |      }t	        d      D ]1  }t        t              5  t        j                  |d|       d d d        3 t        j                  |dd       t	        |      D ]a  }t	        d      D ]Q  }t        j                  ||dz  |       t        t              5  t        j                  ||dz  dz   |       d d d        S c y # 1 sw Y   xY w# 1 sw Y   lxY w)Nr  rG   rD   r#   rE   r   )r.   r  r  r  rI   r   r  rL   r
   r   _multiarray_teststest_nditer_too_large)	base_sizenumshape_templater  r   rQ   modes          r   #test_iter_too_large_with_multiindexr    se    I
C
S.288BGG,00
0q S.288BGG,00
0 Vc\NF3Zq!a!ebhhuo&  6]F a:&33FBE '&  ++FB: 3Z!HD33FAaCFz*!77!aN +*	   '& +*s   #F!FF	F!c            	         t        j                  dd      } | j                         j                         }t	        | j
                  j                  |j
                  j                  k7         t        |g ddggdt        j
                  d      g      }|5  d|j                  d	   d d  d d d        t        |d       t        |g ddggdt        j
                  d      g      }	 |5  t        |j                  j                  d
       d	|j                  d	   d d  t        d      # 1 sw Y   }xY w# 1 sw Y   nxY wn#  Y nxY wt        |d	       t        |j                  j                  d       t        t        t        |d       t        |g ddggdt        j
                  d      g      }|5  |j                  d	   }d|d d  t	        |j                  j                         d d d        n# 1 sw Y   nxY wt        |d       t	        j                  j                          d|d d  t        |d       t        |g ddggdt        j
                  d      g      }|5  |5  |D ]  }d|d<   	 	 d d d        n# 1 sw Y   nxY wd d d        n# 1 sw Y   nxY wt        |g ddggdt        j
                  d      g      }|5  |5  |D ]  }d|d<   	 	 d d d        n# 1 sw Y   nxY wt        t        t        |d       d d d        n# 1 sw Y   nxY wt        |g ddggdt        j
                  d      g      }~|5  |D ]  }d|d<   	 	 d d d        n# 1 sw Y   nxY w|j                   }t        t"        |       y )Nr#   r$   r+   r%   r&   r  r(   r   r   Fz!exit context manager on exceptionTr   {   .)r.   r   r  r/   r   r,   r  r   r   r   ri   r   r   r
   getattrwritebackifcopy	__enter__RuntimeError)r4   r  r8   rV   enters        r   test_writebacksr    s   
		!4 A	
	"	"	$BAGG!3!334	B+~67 'BHHTN3C
EB	Aq 
S	B+~67 'BHHTN3C
EB++U3 !BKKN1@AA 
 RRQ##T**gr:6	B+~67 'BHHTN3C
EB	KKN!''( 
 Q'''(AaDQ	B/0 RXXd^,<
>B 
#  RR 

 
B/0 RXXd^,<
>B 
#  RR 	j'2z:	 
 
B/0 RXXd^,<
>B 		AAcF  
 LLE,&s   D$$D= &>D0$D-0D95D= =E/4G,,G5J!I8/	J8J	=JJLK	LK%	!LL=MMc                      dd} dd} | t        d      t        d            }t        |t        ddd              |t        d      t        d            }t        |t        ddd             y)	zC using a context amanger and using nditer.close are equivalent
    Nc                     t         j                  }t        j                  | ||gg dgdgddgg      }|D ]  \  }}} ||||        |j                  d   }|j	                          |S NrF   r   r   )r  rD   )r.   r  r   r   r\  )	rV   rZ  r  addopr8   r4   r  r  r   s	            r   	add_closez(test_close_equivalent.<locals>.add_closeU  sn    YY1c{B \J<+j1IJLIQ1!QA kk!n


r   c                     t         j                  }t        j                  | ||gg dgdgddgg      }|5  |D ]  \  }}} ||||        |j                  d   cd d d        S # 1 sw Y   y xY wr  )r.   r  r   r   )rV   rZ  r  r  r8   r4   r  r  s           r   add_contextz*test_close_equivalent.<locals>.add_context_  sk    YY1c{B \J<+j1IJL	Aqa"  ;;q> RRs   %A##A,r?   r   r   rD   r   )rI   r   )r  r  re  s      r   test_close_equivalentr  R  sZ    " 	%(E!H%AE!RO$E!HeAh'AE!RO$r   c                      t        j                  t        j                  d            } t        t	        |       d       | j                          t        t        t        |        t        t        t        | d       y )NrA   r   r   )
r.   r   r   r   rd  r\  r
   r  r   r  r  s    r   test_close_raisesr  l  sI    	299Q<	 B$r(AHHJ-r**gr:6r   c                      t        j                  t        j                  d            } t        t        | j
                  d       y )NrA   rG   )r.   r   r   r
   r   r\  r  s    r   test_close_parametersr  s  s(    	299Q<	 B)RXXq)r   c            
      p   t        j                  dd      } | j                         j                         }t	               5 }|j                  t               t        j                  |g ddggdt        j                  d      g      }~t        |j                        dk(  sJ 	 d d d        y # 1 sw Y   y xY w)	Nr#   r$   r+   r%   r&   r  r(   rG   )r.   r   r  r/   r   recordRuntimeWarningr   r,   rJ   log)r4   r  r  r8   s       r   test_warn_nocloser  w  s    
		!4 A	
	"	"	$B		

>"YYr2n => 'BHHTN3CE377|q    
		s    A"B,,B5rb  win32z!Errors with Python 3.9 on Windowsr~  	buf_dtype))r   r4  r4  r   )i,Or  zO,ir  stepsr#  c                    d}t        j                  t        t         j                  dz        |      j	                  |       }t        j
                  |t        j                  |      gg dd      }t        |      D ]  }t        |        ~t        j
                  |t        j                  |      gg dd      }t        |      D ]  }|j                           ~y)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*  rm  r'   r*   ri   r)   N)
r.   r  intr  rq  r   r,   rI   rd  r   )r~  r  r  r,  ru  r8   steps          r   test_partial_iteration_cleanupr    s     E
''#bjj3&'
/
6
6x
@C	3288I#6"7:H
NBeR  	 
3288I#6"7A8
UBe
  	r   r  r  c                    d}t        j                  t        t         j                  dz        |      j	                  |       }| dk(  r d |t        t         j                  dz        <   n"d |t        t         j                  dz           d<   t        j                  |      }t        j                  |t        j                  |      gg dd      }t        j                  t              5  t        |       t        |       d d d        |j                          t        j                  t              5  |j                          |j                          d d d        |t        j                  |      k(  sJ y # 1 sw Y   vxY w# 1 sw Y   0xY w)	Nr  r*  r4  r   r  rm  r'   r  )r.   r  r  r  rq  r0   r1   r   r,   r   r  r   rd  r  r   )r~  r  r,  ru  r  r8   s         r   test_partial_iteration_errorr     s    E
''#bjj3&'
/
6
6x
@C3%)C

S !"+/C

S !"4(OOE"E	3288I#6"7:H
NB	y	! 	RR	 
" HHJ	y	!

 
" COOE**** 
"	! 
"	!s   &E2.!E>2E;>Fc                 \   dj                         j                         }t        j                  dt        j                        j                  dd      dddddf   }t        j                  d      }t        j                  ||fdd	gd
ddgdgdgg      }|j                          | j                         j                  }|j                         j                         }t        |      t        |      k(  sJ t        ||      D ]&  \  }}|j                  |j                               r&J  y)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+   r   NrD   g      @r2  r!  r'   r  r   rF   r%   )r*   r)   ri   r  )strip
splitlinesr.   r   r  rM   r   debug_print
readouterrr  rJ   r  
startswith)capfdrv  arr1arr2r8   rx  res_lineexpected_lines           r   test_debug_printr    s
   5j 	

k n 99S)11"b9!SqS&AD99R=D	D$<C;%z2(\K=9
;B NN




 
 C
))+
 
 
"Cs8s8}$$$#&sH#5- ""=#6#6#8999 $6r   )r0   r   r  r  numpyr.   numpy.core._multiarray_testscorer  r   r   r   r   numpy.testingr   r   r	   r
   r   r   r   r   r   r   r    markskipifr<   rW   r^   rc   rf   rk   rq   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r$  r(  r.  r0  r:  r?  rH  rS  r[  r^  rf  parametrize	typecodesfilterwarningsrz  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,  slowrD  rF  rH  rj  ro  rv  ry  r  r  r   r  r  r  r  r  r  r  r  r  r  r   r  r3   r  r  r  r  r  r  r  r  version_infoplatformr  r   r  r'  r   r   <module>r     s   
     8 8 , ,   $-EF( G(T06K6K6K60 $-EF
) G
)	@X6*`X	06:#DJ	06:#DJ2<$0"HD%L<>ISVK4Z	&&<|<|*,X$L,&%3N++Z>/@Xt$"L>4*9Z ",,u"56r||E':;:;+ < < 7+B7@E@6)66	6.&=(.,)<V,
3&: >D'6RC:4$T615<0:dG4T>& G$=>$-JK L ?&eN D-$$ 0. 0.fNs0 s0j
094v>!@( @)F 	$d	#	+T	*3Q36	2	"$	/!Q!Q	? 
$d	#CaC	(	,d	+CaC1H	5	"$	/!Q!TrT0A	B	DE9@E9@x &+.	Aw	&	'!Q0	&	'.	!6	"RG,	"F	#b"X.	"F	#T*	1, 	-#	-#"3>6656$!L>, F+AssAI6F#6q#A#qyAF+AssAI6;;C@!B C<	C<
> OD?'B%47* $-EF! G! C$$Ra(F2Ns||w7N>  @*k2	
 ), -@4 $-EF*k2


+	 G
+8N:r   