U
    ¸mœdï  ã                   @   s8   d dl Zd dlmZmZ d dlmZ dd„ Zdd„ ZdS )é    N)Úassert_array_equalÚassert_array_compare)ÚSeedSequencec            	      C   s|  ddddgddddgd	d
ddgddddgddddgddddgddddgdddd gd!d"d#d$gd%d&d'd(gg
} d)d*d+d,gd-d.d/d0gd1d2d3d4gd5d6d7d8gd9d:d;d<gd=d>d?d@gdAdBdCdDgdEdFdGdHgdIdJdKdLgdMdNdOdPgg
}dQdRgdSdTgdUdVgdWdXgdYdZgd[d\gd]d^gd_d`gdadbgdcddgg
}t | ||ƒD ]Z\}}}tj|tjde�}t|ƒ}| t|ƒ¡}t||ƒ |jt|ƒtjde�}t||ƒ �qdfS )gz„ Check that SeedSequence generates data the same as the C++ reference.

    https://gist.github.com/imneme/540829265469e673d045
    l   ï>[= iþÊ­iÎú­ixV4l   AM5 l   Îl’p i1 cl   ¢^<1 iÈÎ	l   O!·p iFª6ii¢·Mi(¼žl   NwÛU i]e+ivp2piŽv(oi–�fl   ÃFÅN itøæil   ºm l   ƒ-³
 i©Õÿ iÔÑ5i^w¤Cl   Îx{ l    9 l   I6¯; iã|÷Il   -Ker i½|Li¢µrl   gT<> irT�"l   o±j l   ³PÊJ l   Äb¾I l   ÿx¯W l   s-_` idÊf3l   ÿM©R i¹b"l   Å n, l   Ü=Ó	 l   ‚u l   Œ8 iKÚjQl   †b< l   S¨( l   E{| iH5lDl   !bJ< i•Ù¦Sl   Ç  , i§kôLiÏ&Wi�¾@l   ;: i>f!l   ë'4 l   l l   DÁ iç‰2l   óz9e l   Ø4 l   Kpé` l   ˜a$ i^
i¥à)9l   'tüM iÂËnpi‘Rpl   ƒ2DZ iAÇl   ¯DI  i~Gi55ªl   Ó\| ih
È l   ^r l   ÿM©Rç l   Å n,swM' l   ‚u2R,` l   KZÕ"Rˆq	 l   S¨(iìq l   H5Ø…+q l   •YM'€0 l   §kè=¹R l   �|íDè l   >ÌB¬WœP l   l]_ l   çeÌkç l   Ø4.A§ l   ˜a${EðPl   ¥`SrœPó7 l   ÂKÝ`EJ‚+ l   ƒ2DZe8N l   ¯DI x;Bl   55T#LsNp l   h
�x!È ©ZdtypeN)	ÚzipÚnpÚarrayÚuint32r   Úgenerate_stateÚlenr   Zuint64)	ÚinputsÚoutputsZ	outputs64ÚseedÚexpectedZ
expected64ÚssÚstateZstate64© r   ú^/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numpy/random/tests/test_seed_sequence.pyÚtest_reference_data   sP    









ö









öö
r   c                  C   sv   t dƒ} t dƒ}ttj|  d¡| d¡ƒ tjddddgtjd�}tt dƒ d¡|ƒ ttjt dd	d
� d¡|ƒ dS )zD Ensure that the implicit zero-padding does not cause problems.
    é*   l       ¨ é   l   ·
¨ l   m.<> i¶”ûyl   Üsð* r   )r   )Z	spawn_keyN)r   r   r   Ú	not_equalr
   r   r	   r   )Zss0Zss1Z
expected42r   r   r   Útest_zero_padding9   s     ýÿýr   )	Únumpyr   Znumpy.testingr   r   Znumpy.randomr   r   r   r   r   r   r   Ú<module>   s   2