§
    €Ûg-@  ã                   óf  — d dl Z d dlmZ d dlZd dlZd dlmZmZm	Z	m
Z
 d dlZd dlmZmZmZmZmZmZmZmZmZ d dlmZ 	 d dlZdZn# e$ r dZY nw xY w	 d dlZdZn# e$ r dZY nw xY wej        j        dk    rdZe j                              e j         !                    e"¦  «        ¦  «        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/ G d„ d¦  «        Z0 G d„ de0¦  «        Z1 G d„ de0¦  «        Z2 G d„ de0¦  «        Z3 G d„ de0¦  «        Z4 G d„ d e0¦  «        Z5 G d!„ d"¦  «        Z6dS )#é    N)Újoin)Úassert_equalÚassert_allcloseÚassert_array_equalÚassert_raises)	Ú	GeneratorÚMT19937ÚPCG64Ú	PCG64DXSMÚPhiloxÚRandomStateÚSeedSequenceÚSFC64Údefault_rng)Ú	interfaceFTé   c                 ó"  — | D ]‹}t          | |         t          ¦  «        rt          | |         ||         ¦  «         Œ:t          | |         t          j        ¦  «        rt          | |         ||         ¦  «         Œw| |         ||         k    sJ ‚ŒŒd S ©N)Ú
isinstanceÚdictÚassert_state_equalÚnpÚndarrayr   )ÚactualÚtargetÚkeys      úT/granary/edev/quantum/lib/python3.11/site-packages/numpy/random/tests/test_direct.pyr   r   '   s›   € Øð .ð .ˆÝ�f˜S”k¥4Ñ(Ô(ð 	.Ý˜v cœ{¨F°3¬KÑ8Ô8Ð8Ð8Ý˜˜sœ¥R¤ZÑ0Ô0ð 	.Ý˜v cœ{¨F°3¬KÑ8Ô8Ð8Ð8à˜#”; &¨¤+Ò-Ð-Ð-Ð-Ð-ð.ð .ó    c                 óp   — | t          j        d¦  «        z	  dz                       t           j        ¦  «        S )Né   g      p>)r   Úuint32ÚastypeÚfloat32)Úus    r   Úuint32_to_float32r%   1   s*   € Ø•"”)˜A‘,”,Ñ ;Ñ/×7Ò7½¼
ÑCÔCÐCr   c                 óp  — t          j        | ¦  «        } t          j        | t          j        d¦  «        z	  t           j        ¬¦  «        }t          j        d¦  «        }t          j        | |z  t           j        ¬¦  «        }t          j        ||g¦  «                             ¦   «         }t          |¦  «        S )Né    ©Údtypeì   ÿÿ )r   Úuint64Úarrayr!   Úcolumn_stackÚravelr%   )ÚxÚupperÚlowerÚjoineds       r   Úuniform32_from_uint64r3   5   sˆ   € Ý
Œ	�!‰Œ€AÝŒH�Q�"œ) B™-œ-Ñ'­r¬yÐ9Ñ9Ô9€EÝŒI�jÑ!Ô!€EÝŒH�Q˜‘Y¥b¤iÐ0Ñ0Ô0€EÝŒ_˜e U˜^Ñ,Ô,×2Ò2Ñ4Ô4€FÝ˜VÑ$Ô$Ð$r   c                 óÄ   — t          j        | ¦  «        t          j        d¦  «        z	  } t          j        | t          j        d¦  «        z  ¦  «        } t          | ¦  «        S )Né   r*   )r   r+   r!   r%   ©r/   s    r   Úuniform32_from_uint53r7   >   sH   € Ý
Œ	�!‰Œ�œ	 "™œÑ%€AÝ
Œ	�!•b”i 
Ñ+Ô+Ñ+Ñ,Ô,€AÝ˜QÑÔÐr   c                 ó    — t          | ¦  «        S r   )r%   r6   s    r   Úuniform32_from_uint32r9   D   s   € Ý˜QÑÔÐr   c                 óŽ   — |dk    rt          | ¦  «        S |dk    rt          | ¦  «        S |dk    rt          | ¦  «        S t          ‚)Né@   é5   r'   )r3   r7   r9   ÚNotImplementedError©r/   Úbitss     r   Úuniform32_from_uintr@   H   sM   € Øˆr‚z€zÝ$ QÑ'Ô'Ð'Ø	�ŠˆÝ$ QÑ'Ô'Ð'Ø	�ŠˆÝ$ QÑ'Ô'Ð'å!Ð!r   c                 óV   — |dv rt          | ¦  «        S |dk    rt          | ¦  «        S d S )N)r;   é?   r<   r'   )Úuniform_from_uint64Úuniform_from_uint32r>   s     r   Úuniform_from_uintrE   S   s9   € Øˆ|ÐÐÝ" 1Ñ%Ô%Ð%Ø	�ŠˆÝ" 1Ñ%Ô%Ð%ð 
ˆr   c                 ó6   — | t          j        d¦  «        z	  dz  S )Né   g       <)r   r+   r6   s    r   rC   rC   Z   s   € Ø•”˜2‘”ÑÐ#;Ñ<Ð<r   c                 óä   — t          j        t          | ¦  «        dz  ¦  «        }t          dt          | ¦  «        d¦  «        D ],}| |         dz	  }| |dz            dz	  }|dz  |z   dz  ||dz  <   Œ-|S )Né   r   é   r   é   g      �Ag      @C)r   ÚemptyÚlenÚrange)r/   ÚoutÚiÚaÚbs        r   rD   rD   ^   s   € Ý
Œ(•3�q‘6”6˜Q‘;Ñ
Ô
€CÝ�1•c˜!‘f”f˜aÑ Ô ð @ð @ˆØˆaŒD�A‰IˆØˆa�!‰eŒH˜‰MˆØ˜:‘~¨Ñ)Ð-?Ñ?ˆˆA�‰F‰ˆØ€Jr   c                 óF   — |                       t          j        ¦  «        dz
  S )Nç      ð?)Úviewr   Údoubler6   s    r   Úuniform_from_dsfmtrW   g   s   € Ø�6Š6•"”)ÑÔ˜sÑ"Ð"r   c                 ó.  — |dv rt          | ¦  «        }n%|dk    rt          | ¦  «        }nt          | ¦  «        }g }d}dx}}t          |¦  «        |k     r¸d}|dk    s|dk    r;d||         z  dz
  }d||dz            z  dz
  }||z  ||z  z   }|dz  }|dk    °5|dk    °;t	          j        d	t	          j        |¦  «        z  |z  ¦  «        }	|                     |	|z  ¦  «         |                     |	|z  ¦  «         t          |¦  «        |k     °¸|d |…         S )
N)r;   rB   r'   r   ç        rI   rT   g       @r   g       À)rC   rD   rW   rM   r   ÚsqrtÚlogÚappend)
r/   Únr?   ÚdoublesÚgaussÚlocÚx1Úx2Úr2Úfs
             r   Úgauss_from_uintre   k   sB  € ØˆxÐÐÝ% aÑ(Ô(ˆˆØ	�ŠˆÝ% aÑ(Ô(ˆˆå$ QÑ'Ô'ˆØ€EØ
€CØ€M€BˆÝ
ˆe‰*Œ*�qŠ.ˆ.ØˆØ�CŠiˆi˜2 š9˜9Ø�w˜s”|Ñ# cÑ)ˆBØ�w˜s Q™wÔ'Ñ'¨#Ñ-ˆBØ�b‘˜2 ™7Ñ"ˆBØ�1‰HˆCð	 �CŠiˆi˜2 š9˜9õ ŒG�D�2œ6 "™:œ:Ñ%¨Ñ*Ñ+Ô+ˆØ�Š�Q˜‘VÑÔÐØ�Š�Q˜‘VÑÔÐõ ˆe‰*Œ*�qŠ.ˆ.ð ��!�Œ9Ðr   c                  óú  — ddl m} m}m} t	          t          d¦  «        dd¬¦  «        }|                     d¦  «         t	          di |j        ¤Ž}t          |j        |j        ¦  «         t          |j	        |j	        ¦  «         t          t          | ¦  «         t          t          |¦  «          |¦   «         }t          t          |j        d¦  «         t          |                     d¦  «        ¦  «        dk    sJ ‚d S )Nr   )ÚISeedSequenceÚISpawnableSeedSequenceÚSeedlessSeedSequenceé
   )r   rI   rK   )Ú	spawn_keyÚ	pool_size© )Únumpy.random.bit_generatorrg   rh   ri   r   rN   ÚspawnÚstater   Ún_children_spawnedr   Ú	TypeErrorr=   Úgenerate_staterM   )rg   rh   ri   Ús1Ús2Údummys         r   Útest_seedsequencerw   „   s  € ðBð Bð Bð Bð Bð Bð Bð Bð Bð Bõ 
•e˜B‘i”i¨6¸QÐ	?Ñ	?Ô	?€BØ‡H‚HˆR�L„L€LÝ	Ð	!Ð	!˜œÐ	!Ð	!€BÝ�”˜2œ8Ñ$Ô$Ð$Ý�Ô&¨Ô(=Ñ>Ô>Ð>õ •)˜]Ñ+Ô+Ð+Ý•)Ð3Ñ4Ô4Ð4Ø Ð Ñ"Ô"€EÝÕ% uÔ';¸RÑ@Ô@Ð@Ýˆu�{Š{˜2‰ŒÑÔ 2Ò%Ð%Ð%Ð%Ð%Ð%r   c                   ó8  — e Zd Zej        Zi xZZed„ ¦   «         Z	e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ej                             ed¬¦  «        d„ ¦   «         Zej                             ed¬¦  «        d„ ¦   «         Zd„ ZdS )ÚBasec                 ó‚   — t           | _        d| _        t          j        | _        t          | _        g | _        g | _	        d S )Nr;   )
r
   Úbit_generatorr?   r   r+   r)   rr   Úseed_error_typeÚinvalid_init_typesÚinvalid_init_values©Úclss    r   Úsetup_classzBase.setup_class›   s8   € å!ˆÔØˆŒÝ”IˆŒ	Ý'ˆÔØ!#ˆÔØ"$ˆÔÐÐr   c           	      ó´  — t          |¦  «        5 }|                     ¦   «         }|                     d¦  «        }d„ |dd …         D ¦   «         }g }|D ]P}|                     t	          |                     d¦  «        d                              ¦   «         d¦  «        ¦  «         ŒQ|t          j        || j        ¬¦  «        dœcd d d ¦  «         S # 1 swxY w Y   d S )Nú,c                 óR   — g | ]$}t          |                     ¦   «         d ¦  «        ‘Œ%S )r   )ÚintÚstrip)Ú.0Úss     r   ú
<listcomp>z"Base._read_csv.<locals>.<listcomp>©   s*   € Ð8Ð8Ð8¨!•C˜Ÿš™	œ	 1Ñ%Ô%Ð8Ð8Ð8r   r   éÿÿÿÿr   r(   )ÚseedÚdata)	ÚopenÚreadlineÚsplitr\   r…   r†   r   r,   r)   )r€   ÚfilenameÚcsvr‹   rŒ   Úlines         r   Ú	_read_csvzBase._read_csv¤   s%  € å�(‰^Œ^ð 	K˜sØ—<’<‘>”>ˆDØ—:’:˜c‘?”?ˆDØ8Ð8¨t°A°B°B¬xÐ8Ñ8Ô8ˆDØˆDØð Að A�Ø—’�C §
¢
¨3¡¤°Ô 3× 9Ò 9Ñ ;Ô ;¸QÑ?Ô?Ñ@Ô@Ð@Ð@Ø ­"¬(°4¸s¼yÐ*IÑ*IÔ*IÐJÐJð	Kð 	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kð 	Kð 	Ks   �B0CÃCÃCc                 ó®  —  | j         | j        d         Ž }|                     d¦  «        }t          || j        d         ¦  «          | j         | j        d         Ž }|                     ¦   «         }t          || j        d         d         ¦  «          | j         | j        d         Ž }|                     d¦  «        }t          || j        d         ¦  «         d S )Nr‹   éè  rŒ   r   )r{   Údata1Ú
random_rawr   Údata2©Úselfr{   Úuintss      r   Útest_rawzBase.test_raw¯   sË   € Ø*˜Ô*¨D¬J°vÔ,>Ð?ˆØ×(Ò(¨Ñ.Ô.ˆÝ�U˜DœJ vÔ.Ñ/Ô/Ð/à*˜Ô*¨D¬J°vÔ,>Ð?ˆØ×(Ò(Ñ*Ô*ˆÝ�U˜DœJ vÔ.¨qÔ1Ñ2Ô2Ð2à*˜Ô*¨D¬J°vÔ,>Ð?ˆØ×(Ò(¨Ñ.Ô.ˆÝ�U˜DœJ vÔ.Ñ/Ô/Ð/Ð/Ð/r   c                 óš   —  | j         | j        d         Ž }|                     d¬¦  «        }|�J ‚|                     dd¬¦  «        }|�J ‚d S )Nr‹   F)Úoutputr•   )r{   r–   r—   r™   s      r   Útest_random_rawzBase.test_random_raw¼   s\   € Ø*˜Ô*¨D¬J°vÔ,>Ð?ˆØ×(Ò(°Ð(Ñ6Ô6ˆØˆ}ˆ}ˆ}Ø×(Ò(¨°eÐ(Ñ<Ô<ˆØˆ}ˆ}ˆ}ˆ}ˆ}r   c                 ó¢  — d}t           | j        | j        d         Ž ¦  «        }|                     |¦  «        }t	          |t          | j        d         || j        ¦  «        ¦  «         t           | j        | j        d         Ž ¦  «        }|                     d¦  «        }t	          |t          | j        d         || j        ¦  «        ¦  «         d S )Né   r‹   rŒ   )r   r{   r–   Ústandard_normalr   re   r?   r˜   )rš   r]   Úrsr_   s       r   Útest_gauss_invzBase.test_gauss_invÃ   s×   € ØˆÝÐ+˜Ô+¨T¬Z¸Ô-?Ð@ÑAÔAˆØ×"Ò" 1Ñ%Ô%ˆÝ˜Ý'¨¬
°6Ô(:¸A¸t¼yÑIÔIñ	Kô 	Kð 	Kõ Ð+˜Ô+¨T¬Z¸Ô-?Ð@ÑAÔAˆØ×"Ò" 2Ñ&Ô&ˆÝ˜Ý'¨¬
°6Ô(:¸A¸t¼yÑIÔIñ	Kô 	Kð 	Kð 	Kð 	Kr   c                 óR  — t           | j        | j        d         Ž ¦  «        }t          | j        d         | j        ¦  «        }|                     t          |¦  «        ¦  «        }t          ||¦  «         t          |j	        t          j        ¦  «         t           | j        | j        d         Ž ¦  «        }t          | j        d         | j        ¦  «        }|                     t          |¦  «        ¦  «        }t          ||¦  «         t          |j	        t          j        ¦  «         d S )Nr‹   rŒ   )r   r{   r–   rE   r?   ÚrandomrM   r   r   r)   r   Úfloat64r˜   ©rš   r£   ÚvalsÚuniformss       r   Útest_uniform_doublezBase.test_uniform_doubleÏ   sì   € ÝÐ)�tÔ)¨4¬:°fÔ+=Ð>Ñ?Ô?ˆÝ  ¤¨FÔ!3°T´YÑ?Ô?ˆØ—9’9�S ™YœYÑ'Ô'ˆÝ˜ $Ñ'Ô'Ð'Ý�X”^¥R¤ZÑ0Ô0Ð0åÐ)�tÔ)¨4¬:°fÔ+=Ð>Ñ?Ô?ˆÝ  ¤¨FÔ!3°T´YÑ?Ô?ˆØ—9’9�S ™YœYÑ'Ô'ˆÝ˜ $Ñ'Ô'Ð'Ý�X”^¥R¤ZÑ0Ô0Ð0Ð0Ð0r   c                 ó‚  — t           | j        | j        d         Ž ¦  «        }t          | j        d         | j        ¦  «        }|                     t          |¦  «        t          j        ¬¦  «        }t          ||¦  «         t          |j        t          j        ¦  «         t           | j        | j        d         Ž ¦  «        }t          | j        d         | j        ¦  «        }|                     t          |¦  «        t          j        ¬¦  «        }t          ||¦  «         t          |j        t          j        ¦  «         d S )Nr‹   rŒ   r(   )r   r{   r–   r@   r?   r¦   rM   r   r#   r   r   r)   r˜   r¨   s       r   Útest_uniform_floatzBase.test_uniform_floatÜ   sø   € ÝÐ)�tÔ)¨4¬:°fÔ+=Ð>Ñ?Ô?ˆÝ" 4¤:¨fÔ#5°t´yÑAÔAˆØ—9’9�S ™YœY­b¬j�9Ñ9Ô9ˆÝ˜ $Ñ'Ô'Ð'Ý�X”^¥R¤ZÑ0Ô0Ð0åÐ)�tÔ)¨4¬:°fÔ+=Ð>Ñ?Ô?ˆÝ" 4¤:¨fÔ#5°t´yÑAÔAˆØ—9’9�S ™YœY­b¬j�9Ñ9Ô9ˆÝ˜ $Ñ'Ô'Ð'Ý�X”^¥R¤ZÑ0Ô0Ð0Ð0Ð0r   c                 ó   — t           | j        | j        d         Ž ¦  «        }dt          |¦  «        v sJ ‚t	          |¦  «        d›                     ¦   «                              dd¦  «        t          |¦  «        v sJ ‚d S ©Nr‹   r   z#xÚXr/   )r   r{   r–   ÚreprÚidr0   Úreplace©rš   r£   s     r   Ú	test_reprzBase.test_repré   s{   € ÝÐ)�tÔ)¨4¬:°fÔ+=Ð>Ñ?Ô?ˆØ�d 2™hœhÐ&Ð&Ð&Ð&Ý�R‘&”&ˆ~ˆ~×#Ò#Ñ%Ô%×-Ò-¨c°3Ñ7Ô7½4À¹8¼8ÐCÐCÐCÐCÐCÐCr   c                 óT  — t           | j        | j        d         Ž ¦  «        }dt          |¦  «        v sJ ‚t          | j        j        ¦  «        t          |¦  «        v sJ ‚t          |¦  «        d›                     ¦   «                              dd¦  «        t          |¦  «        vsJ ‚d S r¯   )r   r{   r–   ÚstrÚ__name__r²   r0   r³   r´   s     r   Útest_strzBase.test_strî   s    € ÝÐ)�tÔ)¨4¬:°fÔ+=Ð>Ñ?Ô?ˆØ�c "™gœgÐ%Ð%Ð%Ð%Ý�4Ô%Ô.Ñ/Ô/µ3°r±7´7Ð:Ð:Ð:Ð:Ý�R‘&”&ˆ~ˆ~×#Ò#Ñ%Ô%×-Ò-¨c°3Ñ7Ô7½sÀ2¹w¼wÐFÐFÐFÐFÐFÐFr   c                 ó  — dd l } | j        | j        d         Ž }|j        }|                     |¦  «        }|                     |¦  «        }|j        }t          t          |¦  «                             d¦  «        t          |¦  «                             d¦  «        ¦  «         ||usJ ‚t          ||¦  «         t          d¦  «        }|                     |                     |¦  «        ¦  «        }t          |j        |j        ¦  «         d S )Nr   r‹   r•   éd   )Úpickler{   r–   rp   ÚdumpsÚloadsr   r   r¢   r   r   r   )	rš   r¼   r{   rp   Ú
bitgen_pklÚreloadedÚreloaded_stateÚssÚaas	            r   Útest_picklezBase.test_pickleô   sý   € Øˆˆˆà*˜Ô*¨D¬J°vÔ,>Ð?ˆØÔ#ˆØ—\’\ -Ñ0Ô0ˆ
Ø—<’< 
Ñ+Ô+ˆØ!œˆÝ�9 ]Ñ3Ô3×CÒCÀDÑIÔIÝ$ XÑ.Ô.×>Ò>¸tÑDÔDñ	Fô 	Fð 	Fà HÐ,Ð,Ð,Ð,Ý˜>¨5Ñ1Ô1Ð1å˜#ÑÔˆØ�\Š\˜&Ÿ,š, rÑ*Ô*Ñ+Ô+ˆÝ�R”X˜rœxÑ(Ô(Ð(Ð(Ð(r   c                 ó¤   —  | j         | j        d         Ž }t          j        t          ¦  «        5  dh|_        d d d ¦  «         d S # 1 swxY w Y   d S )Nr‹   Ú1)r{   r–   ÚpytestÚraisesrr   rp   ©rš   r{   s     r   Útest_invalid_state_typezBase.test_invalid_state_type  s–   € Ø*˜Ô*¨D¬J°vÔ,>Ð?ˆÝŒ]�9Ñ%Ô%ð 	(ð 	(Ø#& %ˆMÔð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   ¯	AÁA	ÁA	c                 óº   —  | j         | j        d         Ž }|j        }d|d<   t          j        t
          ¦  «        5  ||_        d d d ¦  «         d S # 1 swxY w Y   d S )Nr‹   ÚotherBitGeneratorr{   )r{   r–   rp   rÇ   rÈ   Ú
ValueError)rš   r{   rp   s      r   Útest_invalid_state_valuezBase.test_invalid_state_value
  s¦   € Ø*˜Ô*¨D¬J°vÔ,>Ð?ˆØÔ#ˆØ!4ˆˆoÑÝŒ]�:Ñ&Ô&ð 	(ð 	(Ø"'ˆMÔð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(ð 	(s   »AÁAÁAc                 ó”   — | j         }| j        D ]8}t          j        t          ¦  «        5   ||Ž  d d d ¦  «         n# 1 swxY w Y   Œ9d S r   )r{   r}   rÇ   rÈ   rr   ©rš   r{   Ústs      r   Útest_invalid_init_typezBase.test_invalid_init_type  s™   € ØÔ*ˆØÔ)ð 	#ð 	#ˆBÝ”�yÑ)Ô)ð #ð #Ø�˜rÐ"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #øð	#ð 	#s   ª<¼A 	ÁA 	c                 ó¢   — | j         }| j        D ]?}t          j        t          t
          f¦  «        5   ||Ž  d d d ¦  «         n# 1 swxY w Y   Œ@d S r   )r{   r~   rÇ   rÈ   rÍ   ÚOverflowErrorrÐ   s      r   Útest_invalid_init_valueszBase.test_invalid_init_values  sž   € ØÔ*ˆØÔ*ð 	#ð 	#ˆBÝ”¥
­MÐ:Ñ;Ô;ð #ð #Ø�˜rÐ"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #øð	#ð 	#s   ±AÁA	Á
A	c                 ó  —  | j         | j        d         Ž }|                     d¦  «         |                     dd¦  «         t          j        t
          ¦  «        5  |                     dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr‹   r   rV   Úint32)r{   r–   Ú
_benchmarkrÇ   rÈ   rÍ   rÉ   s     r   Útest_benchmarkzBase.test_benchmark  sÌ   € Ø*˜Ô*¨D¬J°vÔ,>Ð?ˆØ× Ò  Ñ#Ô#Ð#Ø× Ò   HÑ-Ô-Ð-ÝŒ]�:Ñ&Ô&ð 	1ð 	1Ø×$Ò$ Q¨Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s   ÁA>Á>BÂBzcffi not available)Úreasonc                 ó†   —  | j         | j        d         Ž }|j        }t          |t          ¦  «        sJ ‚|j        }||u sJ ‚d S ©Nr‹   )r{   r–   Úcffir   r   )rš   r{   Úcffi_interfaceÚother_cffi_interfaces       r   Ú	test_cffizBase.test_cffi$  sV   € à*˜Ô*¨D¬J°vÔ,>Ð?ˆØ&Ô+ˆÝ˜.­)Ñ4Ô4Ð4Ð4Ð4Ø,Ô1ÐØ# ~Ð5Ð5Ð5Ð5Ð5Ð5r   zctypes not availablec                 ó†   —  | j         | j        d         Ž }|j        }t          |t          ¦  «        sJ ‚|j        }||u sJ ‚d S rÜ   )r{   r–   Úctypesr   r   )rš   r{   Úctypes_interfaceÚother_ctypes_interfaces       r   Útest_ctypeszBase.test_ctypes,  sY   € à*˜Ô*¨D¬J°vÔ,>Ð?ˆØ(Ô/ÐÝÐ*­IÑ6Ô6Ð6Ð6Ð6Ø!.Ô!5ÐØ%Ð)9Ð9Ð9Ð9Ð9Ð9Ð9r   c                 ó†   —  | j         | j        d         Ž }|j        }|                     ¦   «         }t	          ||¦  «         d S rÜ   )r{   r–   rp   Ú__getstate__r   )rš   r{   rp   Ú	alt_states       r   Útest_getstatezBase.test_getstate4  sG   € Ø*˜Ô*¨D¬J°vÔ,>Ð?ˆØÔ#ˆØ!×.Ò.Ñ0Ô0ˆ	Ý˜5 )Ñ,Ô,Ð,Ð,Ð,r   N) r¸   Ú
__module__Ú__qualname__r   r+   r)   r˜   r–   Úclassmethodr�   r“   rœ   rŸ   r¤   r«   r­   rµ   r¹   rÄ   rÊ   rÎ   rÒ   rÕ   rÙ   rÇ   ÚmarkÚskipifÚMISSING_CFFIrà   ÚMISSING_CTYPESrå   ré   rm   r   r   ry   ry   —   s�  € € € € € ØŒI€EØÐ€EˆEàð%ð %ñ „[ð%ð ðKð Kñ „[ðKð0ð 0ð 0ðð ð ð
Kð 
Kð 
Kð1ð 1ð 1ð1ð 1ð 1ðDð Dð Dð
Gð Gð Gð)ð )ð )ð"(ð (ð (ð
(ð (ð (ð#ð #ð #ð#ð #ð #ð1ð 1ð 1ð „[×Ò˜Ð-AÐÑBÔBð6ð 6ñ CÔBð6ð „[×Ò˜Ð/EÐÑFÔFð:ð :ñ GÔFð:ð-ð -ð -ð -ð -r   ry   c                   ó*   — e Zd Zed„ ¦   «         Zd„ ZdS )Ú
TestPhiloxc                 óN  — t           | _        d| _        t          j        | _        |                      t          t          d¦  «        ¦  «        | _	        |                      t          t          d¦  «        ¦  «        | _
        t          | _        g | _        ddd d ddz  dz   fg| _        d S )	Nr;   z./data/philox-testset-1.csvz./data/philox-testset-2.csv)r   Nr   ©rŠ   rI   i  r   )r   r{   r?   r   r+   r)   r“   r   Úpwdr–   r˜   rr   r|   r}   r~   r   s    r   r�   zTestPhilox.setup_class<  s•   € å"ˆÔØˆŒÝ”IˆŒ	Ø—M’MÝ•Ð3Ñ4Ô4ñ6ô 6ˆŒ	à—M’MÝ•Ð3Ñ4Ô4ñ6ô 6ˆŒ	å'ˆÔØ!#ˆÔØ#/°¸¸tÀQÈ#ÁXÐPQÁ\Ð8RÐ"SˆÔÐÐr   c                 óÐ   —  | j         | j        d         Ž }|j        }|                       |d         d         |d         d         ¬¦  «        }t          |j        |j        ¦  «         d S )Nr‹   rp   Úcounterr   )r÷   r   )r{   r–   rp   r   )rš   r{   rp   Úkeyeds       r   Útest_set_keyzTestPhilox.test_set_keyI  sl   € Ø*˜Ô*¨D¬J°vÔ,>Ð?ˆØÔ#ˆØ×"Ò"¨5°¬>¸)Ô+DØ',¨W¤~°eÔ'<ð #ñ >ô >ˆå˜=Ô.°´Ñ<Ô<Ð<Ð<Ð<r   N)r¸   rê   rë   rì   r�   rù   rm   r   r   rò   rò   ;  s?   € € € € € Øð
Tð 
Tñ „[ð
Tð=ð =ð =ð =ð =r   rò   c                   ó0   — e Zd Zed„ ¦   «         Zd„ Zd„ ZdS )Ú	TestPCG64c                 óP  — t           | _        d| _        t          j        | _        |                      t          t          d¦  «        ¦  «        | _	        |                      t          t          d¦  «        ¦  «        | _
        t          t          f| _        dd gfdg| _        dg| _        d S )Nr;   z./data/pcg64-testset-1.csvz./data/pcg64-testset-2.csv©gš™™™™™	@©r   Nrô   )r
   r{   r?   r   r+   r)   r“   r   rõ   r–   r˜   rÍ   rr   r|   r}   r~   r   s    r   r�   zTestPCG64.setup_classR  s†   € å!ˆÔØˆŒÝ”IˆŒ	Ø—M’M¥$¥sÐ,HÑ"IÔ"IÑJÔJˆŒ	Ø—M’M¥$¥sÐ,HÑ"IÔ"IÑJÔJˆŒ	Ý)­9Ð5ˆÔØ"(¨D¨6¨)°YÐ!?ˆÔØ#( 'ˆÔÐÐr   c                 óî  — t           | j        | j        d         Ž ¦  «        }|j        j        }d}|j                             |¦  «         |                     d¦  «        }||j        _        |j                             ddz  |z   ¦  «         |                     d¦  «        }||j        _        |j                             dddz  z  |z   ¦  «         |                     d¦  «        }||k    sJ ‚||k    sJ ‚d S ©Nr‹   l÷ÿÿÿ        PAOi_n¼ž rj   rI   é€   ©r   r{   r–   rp   ÚadvanceÚintegers©rš   r£   rp   ÚstepÚval_negÚval_posÚval_bigs          r   Útest_advance_symmetryzTestPCG64.test_advance_symmetry]  óö   € ÝÐ)�tÔ)¨4¬:°fÔ+=Ð>Ñ?Ô?ˆØÔ Ô&ˆØ2ˆØ
Ô× Ò  Ñ&Ô&Ð&Ø—+’+˜b‘/”/ˆØ!&ˆÔÔØ
Ô× Ò   C¡¨$¡Ñ/Ô/Ð/Ø—+’+˜b‘/”/ˆØ!&ˆÔÔØ
Ô× Ò   a¨¡f¡¨tÑ!3Ñ4Ô4Ð4Ø—+’+˜b‘/”/ˆØ˜'Ò!Ð!Ð!Ð!Ø˜'Ò!Ð!Ð!Ð!Ð!Ð!r   c                 ó$  — t          |                      d¦  «        ¦  «        }|j        }|j        d         }d}|d         |k    sJ ‚|                     t	          d„ dD ¦   «         ¦  «        ¦  «         |j        d         }d}|d         |k    sJ ‚d S )Nì   ï%”@
 rp   ì	   Ír%4=KÆv±uÅ1¹/Ø c              3   ó    K  — | ]	}d |z  V — Œ
dS ©rI   Nrm   ©r‡   rP   s     r   ú	<genexpr>z/TestPCG64.test_advange_large.<locals>.<genexpr>r  ó&   è è € ÐCÐC ˜˜1™ÐCÐCÐCÐCÐCÐCr   ©é`   r;   r'   r5   r    é   rI   r   l	   ÿ@H}.|z³KLf�be ©r   r{   rp   r  Úsum©rš   r£   Úpcgrp   Úinitial_stateÚadvanced_states         r   Útest_advange_largezTestPCG64.test_advange_largel  s¡   € Ý�t×)Ò)¨.Ñ9Ô9Ñ:Ô:ˆØÔˆØ”	˜'Ô"ˆØ?ˆØ�WŒ~ Ò.Ð.Ð.Ð.Ø�Š•CÐCÐCÐ&BÐCÑCÔCÑCÔCÑDÔDÐDØ”	˜'Ô"ˆØ@ˆØ�WŒ~ Ò/Ð/Ð/Ð/Ð/Ð/r   N©r¸   rê   rë   rì   r�   r
  r  rm   r   r   rû   rû   Q  óK   € € € € € Øð*ð *ñ „[ð*ð"ð "ð "ð	0ð 	0ð 	0ð 	0ð 	0r   rû   c                   ó0   — e Zd Zed„ ¦   «         Zd„ Zd„ ZdS )ÚTestPCG64DXSMc                 óP  — t           | _        d| _        t          j        | _        |                      t          t          d¦  «        ¦  «        | _	        |                      t          t          d¦  «        ¦  «        | _
        t          t          f| _        dd gfdg| _        dg| _        d S )Nr;   z./data/pcg64dxsm-testset-1.csvz./data/pcg64dxsm-testset-2.csvrý   rþ   rô   )r   r{   r?   r   r+   r)   r“   r   rõ   r–   r˜   rÍ   rr   r|   r}   r~   r   s    r   r�   zTestPCG64DXSM.setup_classy  s†   € å%ˆÔØˆŒÝ”IˆŒ	Ø—M’M¥$¥sÐ,LÑ"MÔ"MÑNÔNˆŒ	Ø—M’M¥$¥sÐ,LÑ"MÔ"MÑNÔNˆŒ	Ý)­9Ð5ˆÔØ"(¨D¨6¨)°YÐ!?ˆÔØ#( 'ˆÔÐÐr   c                 óî  — t           | j        | j        d         Ž ¦  «        }|j        j        }d}|j                             |¦  «         |                     d¦  «        }||j        _        |j                             ddz  |z   ¦  «         |                     d¦  «        }||j        _        |j                             dddz  z  |z   ¦  «         |                     d¦  «        }||k    sJ ‚||k    sJ ‚d S r   r  r  s          r   r
  z#TestPCG64DXSM.test_advance_symmetry„  r  r   c                 ó$  — t          |                      d¦  «        ¦  «        }|j        }|j        }d}|d         d         |k    sJ ‚|                     t	          d„ dD ¦   «         ¦  «        ¦  «         |j        d         }d}|d         |k    sJ ‚d S )Nr  r  rp   c              3   ó    K  — | ]	}d |z  V — Œ
dS r  rm   r  s     r   r  z3TestPCG64DXSM.test_advange_large.<locals>.<genexpr>™  r  r   r  l	   oF‚	œ[UmO1X·9}Ð r  r  s         r   r  z TestPCG64DXSM.test_advange_large“  s¡   € Ý�t×)Ò)¨.Ñ9Ô9Ñ:Ô:ˆØÔˆØ”	ˆØ?ˆØ�WŒ~˜gÔ&¨-Ò7Ð7Ð7Ð7Ø�Š•CÐCÐCÐ&BÐCÑCÔCÑCÔCÑDÔDÐDØ”	˜'Ô"ˆØ@ˆØ�WŒ~ Ò/Ð/Ð/Ð/Ð/Ð/r   Nr  rm   r   r   r!  r!  x  r  r   r!  c                   ó0   — e Zd Zed„ ¦   «         Zd„ Zd„ ZdS )ÚTestMT19937c                 ó8  — t           | _        d| _        t          j        | _        |                      t          t          d¦  «        ¦  «        | _	        |                      t          t          d¦  «        ¦  «        | _
        t          | _        g | _        dg| _        d S )Nr'   z./data/mt19937-testset-1.csvz./data/mt19937-testset-2.csvrô   )r	   r{   r?   r   r!   r)   r“   r   rõ   r–   r˜   rÍ   r|   r}   r~   r   s    r   r�   zTestMT19937.setup_class   sv   € å#ˆÔØˆŒÝ”IˆŒ	Ø—M’M¥$¥sÐ,JÑ"KÔ"KÑLÔLˆŒ	Ø—M’M¥$¥sÐ,JÑ"KÔ"KÑLÔLˆŒ	Ý(ˆÔØ!#ˆÔØ#( 'ˆÔÐÐr   c                 ó|  — t          t          | j        t          j        t          j        g¦  «        ¦  «         t          t          | j        t          j        t          j         g¦  «        ¦  «         t          t          | j        t          j        t          j        t          j         g¦  «        ¦  «         t          t          | j        t          j        dt          j        g¦  «        ¦  «         t          t          | j        t          j        g¦  «         t          t          | j        dt          j        g¦  «         d S )Nr   )r   rr   r{   r   r,   Úpi)rš   s    r   Útest_seed_float_arrayz!TestMT19937.test_seed_float_array«  sÒ   € Ý•i Ô!3µR´X½r¼u¸gÑ5FÔ5FÑGÔGÐGÝ•i Ô!3µR´XÅÄ¸v¸hÑ5GÔ5GÑHÔHÐHÝ•i Ô!3µR´X½r¼uÅrÄuÀf¸oÑ5NÔ5NÑOÔOÐOÝ•i Ô!3µR´X¸qÅ"Ä%¸jÑ5IÔ5IÑJÔJÐJÝ•i Ô!3µb´e°WÑ=Ô=Ð=Ý•i Ô!3°a½¼°ZÑ@Ô@Ð@Ð@Ð@r   c                 ó�  — t           | j        | j        d         Ž ¦  «        }|j        }|j        }|                     d¦  «        }|d         |d         d         |d         d         f}||_        |                     d¦  «        }t          ||¦  «         |dz   }||_        |                     d¦  «        }t          ||¦  «         d S )Nr‹   i   r{   rp   r   Úpos)r   rY   )r   r{   r–   rp   r  r   )rš   r£   r{   rp   ÚdesiredÚtupr   s          r   Útest_state_tuplezTestMT19937.test_state_tuple³  sÉ   € ÝÐ)�tÔ)¨4¬:°fÔ+=Ð>Ñ?Ô?ˆØÔ(ˆØÔ#ˆØ—+’+˜gÑ&Ô&ˆØ�_Ô% u¨W¤~°eÔ'<Ø�WŒ~˜eÔ$ð&ˆà!ˆÔØ—’˜WÑ%Ô%ˆÝ�V˜WÑ%Ô%Ð%Ø�H‰nˆØ!ˆÔØ—’˜WÑ%Ô%ˆÝ�V˜WÑ%Ô%Ð%Ð%Ð%r   N)r¸   rê   rë   rì   r�   r+  r0  rm   r   r   r'  r'  Ÿ  sN   € € € € € Øð*ð *ñ „[ð*ðAð Að Að&ð &ð &ð &ð &r   r'  c                   ó$   — e Zd Zed„ ¦   «         ZdS )Ú	TestSFC64c                 óP  — t           | _        d| _        t          j        | _        |                      t          t          d¦  «        ¦  «        | _	        |                      t          t          d¦  «        ¦  «        | _
        t          t          f| _        dd gfdg| _        dg| _        d S )Nr;   z./data/sfc64-testset-1.csvz./data/sfc64-testset-2.csvrý   rþ   rô   )r   r{   r?   r   r+   r)   r“   r   rõ   r–   r˜   rÍ   rr   r|   r}   r~   r   s    r   r�   zTestSFC64.setup_classÄ  s�   € å!ˆÔØˆŒÝ”IˆŒ	Ø—M’MÝ•Ð2Ñ3Ô3ñ5ô 5ˆŒ	à—M’MÝ•Ð2Ñ3Ô3ñ5ô 5ˆŒ	å)­9Ð5ˆÔØ"(¨D¨6¨)°YÐ!?ˆÔØ#( 'ˆÔÐÐr   N)r¸   rê   rë   rì   r�   rm   r   r   r2  r2  Ã  s-   € € € € € Øð
*ð 
*ñ „[ð
*ð 
*ð 
*r   r2  c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestDefaultRNGc                 óh   — dddddgffD ]'}t          |Ž }t          |j        t          ¦  «        sJ ‚Œ(d S )Nrm   r   )éÒ  r7  i.  )r   r   r{   r
   )rš   ÚargsÚrgs      r   Ú	test_seedzTestDefaultRNG.test_seedÓ  sP   € Ø˜ '¨T°4¨L¨?Ð;ð 	7ð 	7ˆDÝ˜dÐ#ˆBÝ˜bÔ.µÑ6Ô6Ð6Ð6Ð6Ð6ð	7ð 	7r   c                 ó–   — t          ¦   «         }t          |¦  «        }|j        |u sJ ‚t          |¦  «        }||u sJ ‚|j        |u sJ ‚d S r   )r   r   r{   )rš   Úbgr9  Úrg2s       r   Útest_passthroughzTestDefaultRNG.test_passthroughØ  s\   € Ý‰XŒXˆÝ˜‰_Œ_ˆØÔ 2Ð%Ð%Ð%Ð%Ý˜"‰oŒoˆØ�bˆyˆyˆyˆyØÔ  BÐ&Ð&Ð&Ð&Ð&Ð&r   N)r¸   rê   rë   r:  r>  rm   r   r   r5  r5  Ò  s2   € € € € € ð7ð 7ð 7ð
'ð 'ð 'ð 'ð 'r   r5  )7ÚosÚos.pathr   ÚsysÚnumpyr   Únumpy.testingr   r   r   r   rÇ   Únumpy.randomr   r	   r
   r   r   r   r   r   r   Únumpy.random._commonr   rÝ   rï   ÚImportErrorrâ   rð   ÚflagsÚoptimizeÚpathÚdirnameÚabspathÚ__file__rõ   r   r%   r3   r7   r9   r@   rE   rC   rD   rW   re   rw   ry   rò   rû   r!  r'  r2  r5  rm   r   r   ú<module>rM     s™  ðØ 	€	€	€	Ø Ð Ð Ð Ð Ð Ø 
€
€
€
à Ð Ð Ð ð*ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *ð *à €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *ðØ€K€K€Kà€L€LøØð ð ð Ø€L€L€LðøøøðØ€M€M€Mà€N€NøØð ð ð Ø€N€N€Nðøøøð „9Ô˜ÒÐð €Lð 	„g‡o‚o�b”g—o’o hÑ/Ô/Ñ0Ô0€ð.ð .ð .ðDð Dð Dð%ð %ð %ð ð  ð  ð ð  ð  ð"ð "ð "ð&ð &ð &ð=ð =ð =ðð ð ð#ð #ð #ðð ð ð2&ð &ð &ð&a-ð a-ð a-ð a-ð a-ñ a-ô a-ð a-ðH=ð =ð =ð =ð =�ñ =ô =ð =ð,$0ð $0ð $0ð $0ð $0�ñ $0ô $0ð $0ðN$0ð $0ð $0ð $0ð $0�Dñ $0ô $0ð $0ðN!&ð !&ð !&ð !&ð !&�$ñ !&ô !&ð !&ðH*ð *ð *ð *ð *�ñ *ô *ð *ð'ð 'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 's$   Á A ÁAÁAÁA ÁA&Á%A&