U
    ¸mœd  ã                   @   sP   d dl mZ d dlmZ d dlZd dlmZ d dlm	Z	 d dl
mZ dd„ ZdS )	é    )Úmul)ÚreduceN©Úrandint)ÚArrayterator)Úassert_c                  C   sD  t j t  d¡¡ tdƒd } tdd„ t| ƒD ƒƒ}tt|ƒ}t  |¡}||_	td| ƒ}t
||ƒ}|D ]}tt|jƒ|p||kƒ qhtt|jƒt|jƒkƒ dd„ |D ƒ}d	d„ |D ƒ}d
d„ |D ƒ}	tdd„ t|||	ƒD ƒƒ}
||
 }||
 }|D ]}tt|jƒ|�p
|kƒ qôtt  | ¡ |k¡ƒ tt|jƒt|jƒkƒ d S )Né
   é   é   c                 s   s   | ]}t d ƒd V  qdS )r   r
   Nr   ©Ú.0Údim© r   úZ/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numpy/lib/tests/test_arrayterator.pyÚ	<genexpr>   s     ztest.<locals>.<genexpr>é   c                 S   s   g | ]}t |ƒ‘qS r   r   r   r   r   r   Ú
<listcomp>   s     ztest.<locals>.<listcomp>c                 S   s   g | ]}t |ƒd  ‘qS ©r
   r   r   r   r   r   r       s     c                 S   s   g | ]}t |ƒd  ‘qS r   r   r   r   r   r   r   !   s     c                 s   s   | ]}t |Ž V  qd S )N)Úslice)r   Útr   r   r   r   "   s     )ÚnpÚrandomÚseedZaranger   ÚtupleÚranger   r   Úshaper   r   ÚlenZflatÚlistÚzipÚallZ	__array__)Zndimsr   ZelsÚaZbuf_sizeÚbÚblockÚstartÚstopÚstepZslice_ÚcÚdr   r   r   Útest
   s*    


r(   )Úoperatorr   Ú	functoolsr   Únumpyr   Znumpy.randomr   Z	numpy.libr   Znumpy.testingr   r(   r   r   r   r   Ú<module>   s   