+
    eiM  c                   sf   ^ RI t ^ RIt^ RIHt ^ RIt^ RIt^ RIHtH	t	H
t
HtHtHtHtHtHt ^ RIHt ^ RIHtHtHtHt  ^ RItRt ^ RItRt]P:                  P<                  ^8  d   Rt] P>                  PA                  ] P>                  PC                  ]"4      4      t#R t$R	 t%R
 t&R t'R t(R t)R t*R t+R t,R t-R t.R t/R t0R t1 ! R R4      t2 ! R R]24      t3 ! R R]24      t4 ! R R]24      t5 ! R R]24      t6 ! R  R!]24      t7 ! R" R#4      t8R#   ] d    Rt Li ; i  ] d    Rt Li ; i)$    N)join)	MT19937PCG64	PCG64DXSMSFC64	GeneratorPhiloxRandomStateSeedSequencedefault_rng)	interface)assert_allcloseassert_array_equalassert_equalassert_raisesFTc                 s.   V  F  p\        W,          \        4      '       d   \        W,          W,          4       K9  \        W,          \        P                  4      '       d   \        W,          W,          4       Ky  W,          W,          8X  d   K  Q h	  R # N)
isinstanceZdictassert_state_equalnpZndarrayr   )actualZtargetkeys   && E/usr/lib64/python3.14/site-packages/numpy/random/tests/test_direct.pyr   r   2   s\    fk4((v{FK8RZZ00v{FK8;&+---     c                 s    V \         P                  ! ^4      ,	          R,          P                  \         P                  4      # )   g      p>)r   uint32Zastypefloat32)Zu   &r   uint32_to_float32r   <   s)    "))A,;/77

CCr   c                 s   \         P                  ! V 4      p \         P                  ! V \         P                  ! ^ 4      ,	          \         P                  R7      p\         P                  ! R4      p\         P                  ! W,          \         P                  R7      p\         P                  ! W!.4      P                  4       p\        V4      # )    dtype    )r   uint64arrayr   Zcolumn_stackZravelr   )xupperZlowerZjoined   &   r   uniform32_from_uint64r&   @   sx    
		!AHHQ"))B-'ryy9EIIj!EHHQYbii0E__e^,224FV$$r   c                 s    \         P                  ! V 4      \         P                  ! ^4      ,	          p \         P                  ! V \         P                  ! R4      ,          4      p \        V 4      # )   r    )r   r!   r   r   r#   r   r   uniform32_from_uint53r)   I   sC    
		!		"%A
		!bii
++,AQr   c                 s    \        V 4      # r   )r   r(   r   r   uniform32_from_uint32r*   O   s    Qr   c                 sz    V^@8X  d   \        V 4      # V^58X  d   \        V 4      # V^ 8X  d   \        V 4      # \        h)@   )r&   r)   r*   NotImplementedErrorr#   bits   &&r   uniform32_from_uintr0   S   s>    rz$Q''	$Q''	$Q''!!r   c                 sN    VR9   d   \        V 4      # V^ 8X  d   \        V 4      # R# )r+   N)r+   ?   i5   )uniform_from_uint64uniform_from_uint32r-   r/   r   uniform_from_uintr4   ^   s,    |"1%%	"1%% 
r   c                 sJ    V \         P                  ! ^4      ,	          R,          # )i   g      <)r   r!   r(   r   r   r2   r2   e   s    2#;<<r   c                 s   \         P                  ! \        V 4      ^,          4      p\        ^ \        V 4      ^4       FH  pW,          ^,	          pW^,           ,          ^,	          pVR,          V,           R,          W^,          &   KJ  	  V# )   g      Ag      @C)r   Zemptylenrange)r#   ZoutiZaZb   &    r   r3   r3   i   sj    
((3q6Q;
C1c!fa DAI!eHM:~)-??F ! Jr   c                 sN    V P                  \        P                  4      R ,
          # )      ?)Zviewr   doubler(   r   r   uniform_from_dsfmtr<   r   s    66"))s""r   c                 s2   VR9   d   \        V 4      pMV^ 8X  d   \        V 4      pM\        V 4      p. p^ pR;rg\        V4      V8  d   ^pVR8  g   VR8X  dT   RW5,          ,          R,
          pRW5^,           ,          ,          R,
          pWf,          Ww,          ,           pV^,          pKa  \        P
                  ! R\        P                  ! V4      ,          V,          4      p	VP                  W,          4       VP                  W,          4       K  VRV # )r+           r:   g       @N)r+   r1   g       )r2   r3   r<   r6   r   ZsqrtZlogappend)
r#   nr.   ZdoublesgaussZlocZx1Zx2Zr2Zfs
   &&&       r   gauss_from_uintrA   v   s    x%a(	%a($Q'E
CMB
e*q.Ci29w|#c)BwQw''#-B27"B1HCGGD266":%*+QVQV!9r   c                  s   ^ RI Hp HpHp \	        \        ^
4      R^R7      pVP                  ^
4       \	        R/ VP                  B p\        VP                  VP                  4       \        VP                  VP                  4       \        \        V 4       \        \        V4       V! 4       p\        \        VP                  ^
4       \        VP                  ^
4      4      ^
8X  g   Q hR# )r    )ISeedSequenceISpawnableSeedSequenceSeedlessSeedSequence)	spawn_keyZ	pool_sizeN)   r5    )numpy.random.bit_generatorrB   rC   rD   r	   r7   spawnstater   n_children_spawnedr   	TypeErrorr,   generate_stater6   )rB   rC   rD   Zs1Zs2Zdummys         r   test_seedsequencerN      s      
eBi6Q	?BHHRL		!	!B288$&&(=(=> )]+)34 "E%u';';R@u{{22%%%r   c                 s   \         P                  P                  4       p V P                  P                  pVP                  ^4      p\        ^4       Uu. uF  q1P                  V3,           NK  	  ppV Uu. uF  qUP                  NK  	  upV8X  g   Q hV P                  P                  ^4      p\        ^^
4       Uu. uF  q1P                  V3,           NK  	  ppV Uu. uF  qwP                  P                  NK  	  upV8X  g   Q hV P                  ^4      p\        ^
^4       Uu. uF  q1P                  V3,           NK  	  ppV U u. uF"  q P                  P                  P                  NK$  	  p	p W8X  g   Q hV^ ,          P                  4       V^,          P                  4       8w  g   Q hR# u upi u upi u upi u upi u upi u up i )z>Test spawning new generators and bit_generators directly.
    N)	r   randomr
   bit_generatorseed_seqrI   r7   rE   Zuniform)
rngZseqZnew_ssr8   Zexpected_keysZcZnew_bgsbgZnew_rngsZ
found_keyss
             r   test_generator_spawningrT      s    ))


!C



$
$CYYq\F388<8a]]aT))8M<!'(AKK(M999%%a(G38B<@<a]]aT))<M@,34GbKK!!G4EEEyy|H38R=A=a]]aT))=MABJK(3##,,66(JK&&& A; HQK$7$7$9999 =( A4 BKs$   F.5F3<F8F=%G(Gc                  s   ^ RI Hp   ! R R4      pV P                  V4       \        P                  P                  V! 4       4      p\        P                  ! \        RR7      ;_uu_ 4        VP                  ^4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        VP                  P                  ^4       RRR4       R#   + '       g   i     LZ; i  + '       g   i     R# ; i)r    )rB   c                   s@   a  ] tR t^t o ]P
                  3R ltRtV tR# ),test_non_spawnable.<locals>.FakeSeedSequencec                s0    \         P                  ! WR 7      # )r   )r   Zzeros)selfZn_wordsr   s   &&&r   rM   Z;test_non_spawnable.<locals>.FakeSeedSequence.generate_state   s    88G11r   rG   N)	__name__
__module____qualname____firstlineno__r   r   rM   __static_attributes____classdictcell__Z__classdict__   @r   FakeSeedSequencerU      s     02		 	2 	2r   r_   zThe underlying SeedSequence)ZmatchN)rH   rB   Zregisterr   rO   r
   pytestraisesrL   rI   rP   )rB   r_   rR   s      r   test_non_spawnablerb      s    82 2 +,
))

 0 2
3C	y(E	F	F		! 
G 
y(E	F	F" 
G	F 
G	F 
G	F	Fs   *C(C!C	!C2	c                   sF  a  ] tR t^t o ]P
                  t/ ;tt]	R 4       t
]	R 4       tR tR tR tR tR tR tR	 tR
 tR tR tR tR tR tR t]P6                  P9                  ]RR7      R 4       t]P6                  P9                  ]RR7      R 4       t R t!Rt"V t#R# )Basec                s    \         V n        ^@V n        \        P                  V n        \        V n        . V n        . V n	        R# )r+   N)
r   rP   r.   r   r!   r   rL   seed_error_typeinvalid_init_typesinvalid_init_valuesclsr   r   setup_classZBase.setup_class   s4    !II	'!#"$r   c           
     s   \        V4      ;_uu_ 4       pVP                  4       pVP                  R 4      pVR,           Uu. uF  p\        VP	                  4       ^ 4      NK  	  pp. pV FB  pVP                  \        VP                  R 4      R,          P	                  4       ^ 4      4       KD  	  RVR\        P                  ! WPP                  R7      /uuRRR4       # u upi   + '       g   i     R# ; i)Z,:rF   NNseeddatar   N)	openZreadlinesplitZintZstripr>   r   r"   r   )rh   ZfilenameZcsvrj   Zsrk   Zlines   &&     r   	_read_csvZBase._read_csv   s    (^^s<<>D::c?D/3Bx8x!C	1%xD8DC

3 3 9 9 ;Q?@ D&"((4yy*IJ ^ 9 ^^s   -C$#C$A0C$C$$C5	c                s   V P                   ! V P                  R ,          !  pVP                  R4      p\        W P                  R,          4       V P                   ! V P                  R ,          !  pVP                  4       p\        W P                  R,          ^ ,          4       V P                   ! V P                  R ,          !  pVP                  R4      p\        W P                  R,          4       R# )rj     rk   N)rP   data1
random_rawr   data2rV   rP   Zuints   &  r   test_rawZBase.test_raw   s    **DJJv,>?((.UJJv./**DJJv,>?((*UJJv.q12**DJJv,>?((.UJJv./r   c                s    V P                   ! V P                  R ,          !  pVP                  RR7      pVe   Q hVP                  RRR7      pVe   Q hR# )rj   F)ZoutputNrp   )rP   rq   rr   rt   ru   r   test_random_rawZBase.test_random_raw   sW    **DJJv,>?(((6}}((e(<}}r   c                s   ^p\        V P                  ! V P                  R,          !  4      pVP                  V4      p\	        V\        V P                  R,          WP                  4      4       \        V P                  ! V P                  R,          !  4      pVP                  ^4      p\	        V\        V P                  R,          WP                  4      4       R# )i   rj   rk   N)r   rP   rq   standard_normalr   rA   r.   rs   )rV   r?   rsr@   r%   r   test_gauss_invZBase.test_gauss_inv   s    ++TZZ-?@A""1%'

6(:AyyI	K ++TZZ-?@A""2&'

6(:AyyI	Kr   c                sn   \        V P                  ! V P                  R ,          !  4      p\        V P                  R,          V P                  4      pVP                  \        V4      4      p\        W24       \        VP                  \        P                  4       \        V P                  ! V P                  R ,          !  4      p\        V P                  R,          V P                  4      pVP                  \        V4      4      p\        W24       \        VP                  \        P                  4       R# )rj   rk   N)r   rP   rq   r4   r.   rO   r6   r   r   r   r   Zfloat64rs   rV   ry   ZvalsZuniformsr%   r   test_uniform_doubleZBase.test_uniform_double  s    t))4::f+=>? F!3TYY?99SY''X^^RZZ0t))4::f+=>? F!3TYY?99SY''X^^RZZ0r   c                s   \        V P                  ! V P                  R ,          !  4      p\        V P                  R,          V P                  4      pVP                  \        V4      \        P                  R7      p\        W24       \        VP                  \        P                  4       \        V P                  ! V P                  R ,          !  4      p\        V P                  R,          V P                  4      pVP                  \        V4      \        P                  R7      p\        W24       \        VP                  \        P                  4       R# )rj   rk   r   N)r   rP   rq   r0   r.   rO   r6   r   r   r   r   r   rs   r{   r%   r   test_uniform_floatZBase.test_uniform_float  s    t))4::f+=>?"4::f#5tyyA99SYbjj99'X^^RZZ0t))4::f+=>?"4::f#5tyyA99SYbjj99'X^^RZZ0r   c                s    \        V P                  ! V P                  R ,          !  4      pR\        V4      9   g   Q h\	        V4      R P                  4       P                  RR4      \        V4      9   g   Q hR# rj   r   z#xZXr#   N)r   rP   rq   Zrepridr$   replacerV   ry      & r   	test_reprZBase.test_repr  sb    t))4::f+=>?d2h&&&R&##%--c3748CCCr   c                sR   \        V P                  ! V P                  R ,          !  4      pR\        V4      9   g   Q h\        V P                  P                  4      \        V4      9   g   Q h\        V4      R P                  4       P                  RR4      \        V4      9  g   Q hR# r~   )r   rP   rq   ZstrrW   r   r$   r   r   r   r   test_strZBase.test_str#  s    t))4::f+=>?c"g%%%4%%../3r7:::R&##%--c37s2wFFFr   c                s   ^ RI pV P                  ! V P                  R,          !  pVP                  pVP	                  V4      pVP                  V4      pVP                  p\        \        V4      P                  R4      \        V4      P                  R4      4       W%Jg   Q h\        Wc4       \        ^d4      pVP                  VP	                  V4      4      p\        VP                  VP                  4       R# )r    Nrj   rp   )picklerP   rq   rJ   dumpsloadsr   r   rx   r   r	   r   )	rV   r   rP   rJ   Z
bitgen_pklZreloadedZreloaded_statessZaas	   &        r   test_pickleZBase.test_pickle)  s    **DJJv,>?##\\-0
<<
+!9]3CCDI$X.>>tD	F,,,>1#\\&,,r*+RXXrxx(r   c                sN   ^ RI pV P                  ! V P                  R,          !  pVP                  pVP	                  VP                  V4      4      pVP                  p\        VP                  VP                  4       \        VP                  VP                  4       VP                  P                  ^
4       VP	                  VP                  V4      4      pVP                  p\        VP                  VP                  4       \        VP                  VP                  4       R# )r    Nrj   )r   rP   rq   rQ   r   r   r   rJ   ZpoolrI   rK   )rV   r   rP   r   Zbg_plkZss_plk   &     r   #test_pickle_preserves_seed_sequenceZ(Base.test_pickle_preserves_seed_sequence:  s     	**DJJv,>?##fll=9:RXXv||,RWWfkk*$$R(fll=9:RXXv||,R**F,E,EFr   c                s    V P                   ! V P                  R ,          !  p\        P                  ! \        4      ;_uu_ 4        R0Vn        RRR4       R#   + '       g   i     R# ; i)rj   Z1N)rP   rq   r`   ra   rL   rJ   rV   rP   r   r   test_invalid_state_typeZBase.test_invalid_state_typeL  sC    **DJJv,>?]]9%%#&%M &%%%s   	AA(	c                s    V P                   ! V P                  R ,          !  pVP                  pRVR&   \        P                  ! \
        4      ;_uu_ 4        W!n        RRR4       R#   + '       g   i     R# ; i)rj   ZotherBitGeneratorrP   N)rP   rq   rJ   r`   ra   
ValueError)rV   rP   rJ   ru   r   test_invalid_state_valueZBase.test_invalid_state_valueQ  sT    **DJJv,>?##!4o]]:&&"' '&&&s   A&&A7	c                s    V P                   pV P                   F4  p\        P                  ! \        4      ;_uu_ 4        V! V!   R R R 4       K6  	  R #   + '       g   i     KK  ; ir   )rP   re   r`   ra   rL   rV   rP   Zstru   r   test_invalid_init_typeZBase.test_invalid_init_typeX  sF    **))By))r" *) *)))s   AA$c                s    V P                   pV P                   F:  p\        P                  ! \        \
        34      ;_uu_ 4        V! V!   R R R 4       K<  	  R #   + '       g   i     KQ  ; ir   )rP   rf   r`   ra   r   ZOverflowErrorr   ru   r   test_invalid_init_valuesZBase.test_invalid_init_values^  sK    ****B
M:;;r" <; +;;;s   AA*c                s0   V P                   ! V P                  R ,          !  pVP                  ^4       VP                  ^R4       \        P                  ! \
        4      ;_uu_ 4        VP                  ^R4       RRR4       R#   + '       g   i     R# ; i)rj   r;   Zint32N)rP   rq   Z
_benchmarkr`   ra   r   r   r   r   test_benchmarkZBase.test_benchmarkd  sg    **DJJv,>?  #  H-]]:&&$$Q0 '&&&s   'BB	zcffi not available)Zreasonc                    V P                   ! V P                  R ,          !  pVP                  p\        V\        4      '       g   Q hVP                  pW2J g   Q hR# rj   N)rP   rq   cffir   r   )rV   rP   Zcffi_interfaceZother_cffi_interfacer%   r   	test_cffiZBase.test_cffik  sQ    **DJJv,>?&++.)4444,11#555r   zctypes not availablec                r   r   )rP   rq   ctypesr   r   )rV   rP   Zctypes_interfaceZother_ctypes_interfacer%   r   test_ctypesZBase.test_ctypess  sS    **DJJv,>?(//*I6666!.!5!5%999r   c                s   V P                   ! V P                  R ,          !  pVP                  pVP                  4       p\	        V\
        4      '       g   Q h\        W#^ ,          4       \	        V^,          \        4      '       g   Q hR# r   )rP   rq   rJ   Z__getstate__r   Ztupler   r	   )rV   rP   rJ   Z	alt_stater%   r   test_getstateZBase.test_getstate{  sj    **DJJv,>?##!..0	)U++++5A,/)A,5555r   rG   N)$rW   rX   rY   rZ   r   r!   r   rs   rq   classmethodri   ro   rv   rw   rz   r|   r}   r   r   r   r   r   r   r   r   r   r`   ZmarkZskipifMISSING_CFFIr   MISSING_CTYPESr   r   r[   r\   r]   r^   r   rc   rc      s     IIEEE% % K K0
K11D
G)"G$(
(##1 [[-AB6 C6 [[/EF: G:6 6r   rc   c                   6   a  ] tR tRt o ]R 4       tR tRtV tR# )
TestPhiloxi  c                s>   \         V n        ^@V n        \        P                  V n        V P                  \        \        R4      4      V n	        V P                  \        \        R4      4      V n
        \        V n        . V n        RRRR^R,          ^,           3.V n        R# )r+   z./data/philox-testset-1.csvz./data/philox-testset-2.csvNi  )rF   NrF   rl   )r   rP   r.   r   r!   r   ro   r   pwdrq   rs   rL   rd   re   rf   rg   r   r   ri   ZTestPhilox.setup_class  s    "II	MM346	MM346	'!##/tQ#XPQ\8R"Sr   c                s    V P                   ! V P                  R ,          !  pVP                  pV P                  VR,          R,          VR,          R,          R7      p\        VP                  VP                  4       R# )rj   rJ   counterr   )r   r   N)rP   rq   rJ   r   )rV   rP   rJ   Zkeyedr%   r   test_set_keyZTestPhilox.test_set_key  sf    **DJJv,>?##""5>)+D',W~e'< # >=..<r   rG   N)	rW   rX   rY   rZ   r   ri   r   r[   r\   r]   r^   r   r   r     s#     
T 
T= =r   r   c                   <   a  ] tR tRt o ]R 4       tR tR tRtV t	R# )	TestPCG64i  c                .   \         V n        ^@V n        \        P                  V n        V P                  \        \        R4      4      V n	        V P                  \        \        R4      4      V n
        \        \        3V n        RR.3R.V n        R.V n        R# )r+   z./data/pcg64-testset-1.csvz./data/pcg64-testset-2.csvNg	@rF   Nr   )r   rP   r.   r   r!   r   ro   r   r   rq   rs   r   rL   rd   re   rf   rg   r   r   ri   ZTestPCG64.setup_class  sv    !II	MM$s,H"IJ	MM$s,H"IJ	)95"(D6)Y!?#('r   c                8   \        V P                  ! V P                  R ,          !  4      pVP                  P                  pRpVP                  P	                  V4       VP                  ^
4      pW!P                  n        VP                  P	                  ^^,          V,           4       VP                  ^
4      pW!P                  n        VP                  P	                  ^
^^,          ,          V,           4       VP                  ^
4      pWE8X  g   Q hWe8X  g   Q hR# rj   Nl        PAOi_n r   rP   rq   rJ   advanceintegersrV   ry   rJ   ZstepZval_negZval_posZval_big   &      r   test_advance_symmetryZTestPCG64.test_advance_symmetry      t))4::f+=>?  &&2
  &++b/!&
  C$/++b/!&
  aft!34++b/!!!!!!r   c                s(   \        V P                  R 4      4      pVP                  pVP                  R,          pRpVR,          V8X  g   Q hVP                  \	        R R 4       4      4       VP                  R,          pRpVR,          V8X  g   Q hR# )   %@
 rJ   	   r%4=Kvu1/ c              3   4   "   T F  p^V,          x  K  	  R# 5ir5   NrG   Z.0r8   r   r   	<genexpr>Z/TestPCG64.test_advange_large.<locals>.<genexpr>       C&B1&B   l	   @H}.|zKLfbe Ni`   r+   r   r'   r   i   r5   rF   r   rP   rJ   r   ZsumrV   ry   ZpcgrJ   Zinitial_stateZadvanced_stater   r   test_advange_largeZTestPCG64.test_advange_large  s    t)).9:		'"?W~...CC&BCCD		'"@W~///r   rG   N
rW   rX   rY   rZ   r   ri   r   r   r[   r\   r]   r^   r   r   r     &     * *"	0 	0r   r   c                   r   )TestPCG64DXSMi  c                r   )r+   z./data/pcg64dxsm-testset-1.csvz./data/pcg64dxsm-testset-2.csvNr   r   r   )r   rP   r.   r   r!   r   ro   r   r   rq   rs   r   rL   rd   re   rf   rg   r   r   ri   ZTestPCG64DXSM.setup_class  sv    %II	MM$s,L"MN	MM$s,L"MN	)95"(D6)Y!?#('r   c                r   r   r   r   r   r   r   Z#TestPCG64DXSM.test_advance_symmetry  r   r   c                s(   \        V P                  R 4      4      pVP                  pVP                  pRpVR,          R,          V8X  g   Q hVP                  \	        R R 4       4      4       VP                  R,          pRpVR,          V8X  g   Q hR# )r   r   rJ   c              3   r   r   rG   r   r   r   r   Z3TestPCG64DXSM.test_advange_large.<locals>.<genexpr>  r   r   l	   oF	[UmO1X9} Nr   r   r   r   r   r   Z TestPCG64DXSM.test_advange_large  s    t)).9:		?W~g&-777CC&BCCD		'"@W~///r   rG   Nr   r]   r^   r   r   r     r   r   r   c                   r   )TestMT19937i  c                s   \         V n        ^ V n        \        P                  V n        V P                  \        \        R4      4      V n	        V P                  \        \        R4      4      V n
        \        V n        . V n        R.V n        R# )r   z./data/mt19937-testset-1.csvz./data/mt19937-testset-2.csvNr   )r   rP   r.   r   r   r   ro   r   r   rq   rs   r   rd   re   rf   rg   r   r   ri   ZTestMT19937.setup_class  sf    #II	MM$s,J"KL	MM$s,J"KL	(!##('r   c                s   \        \        V P                  \        P                  ! \        P
                  .4      4       \        \        V P                  \        P                  ! \        P
                  ) .4      4       \        \        V P                  \        P                  ! \        P
                  \        P
                  ) .4      4       \        \        V P                  \        P                  ! ^ \        P
                  .4      4       \        \        V P                  \        P
                  .4       \        \        V P                  ^ \        P
                  .4       R# )r    N)r   rL   rP   r   r"   Zpi)rV   r   r   test_seed_float_arrayZ!TestMT19937.test_seed_float_array  s    i!3!3RXXruug5FGi!3!3RXXvh5GHi!3!3RXXruuruufo5NOi!3!3RXXq"%%j5IJi!3!3beeW=i!3!3aZ@r   c                s   \        V P                  ! V P                  R ,          !  4      pVP                  pVP                  pVP	                  R4      pVR,          VR,          R,          VR,          R,          3pWRn        VP	                  R4      p\        Wd4       VR,           pWRn        VP	                  R4      p\        Wd4       R# )rj   rP   rJ   r   ZposNi   )r    r=   )r   rP   rq   rJ   r   r   )rV   ry   rP   rJ   ZdesiredZtupr   r   r   test_state_tupleZTestMT19937.test_state_tuple  s    t))4::f+=>?((##++g&_%uW~e'<W~e$&!W%V%Hn!W%V%r   rG   N)
rW   rX   rY   rZ   r   ri   r   r   r[   r\   r]   r^   r   r   r     s'     * *A& &r   r   c                   r   )	TestSFC64i  c                r   )r+   z./data/sfc64-testset-1.csvz./data/sfc64-testset-2.csvNr   r   r   )r   rP   r.   r   r!   r   ro   r   r   rq   rs   r   rL   rd   re   rf   rg   r   r   ri   ZTestSFC64.setup_class  s|    !II	MM235	MM235	)95"(D6)Y!?#('r   c                s:   ^ RI p^ RIp\        P                  ! . RO\        P                  R7      p\
        P                  P                  \
        P                  P                  \        4      4      ^ ,          p\
        P                  P                  VRR4      pVP                  V4      ;_uu_ 4       pVP                  V4      pRRR4       \        X\        4      '       g   Q h\        VP                   R,          R,          V4       R#   + '       g   i     LN; i)r    Nr   rk   zsfc64_np126.pkl.gzrJ   )l   VoTMQ l   *,!;l   aE]yg i   )gzipr   r   r"   r!   ospathrn   abspath__file__r   rm   Zloadr   r   r   rJ   )rV   r   r   Zexpected_stateZ	base_pathZpkl_fileZgzZsfcs   &       r   test_legacy_pickleZTestSFC64.test_legacy_pickle  s     ))
 GGMM"''//(";<Q?	77<<	63GHYYx  B++b/C ! #u%%%%SYYw'0.A	 ! s   2D

D	rG   N)	rW   rX   rY   rZ   r   ri   r   r[   r\   r]   r^   r   r   r     s#     
* 
*B Br   r   c                   s2   a  ] tR tRt o R tR tR tRtV tR# )TestDefaultRNGi1  c                s|    RRRRR.33 F.  p\        V!  p\        VP                  \        4      '       d   K.  Q h	  R # )N  i.  rG   r   )r   )r
   r   rP   r   )rV   Zargsrgru   r   	test_seedZTestDefaultRNG.test_seed2  s>    'T4L?;Dd#Bb..6666 <r   c                s    \        4       p\        V4      pVP                  VJ g   Q h\        V4      pW2J g   Q hVP                  VJ g   Q hR # r   )r   r
   rP   )rV   rS   r   Zrg2r%   r   test_passthroughZTestDefaultRNG.test_passthrough7  sM    X_2%%%"oyy  B&&&r   c                s   \        R 4      p\        V4      p\        VP                  \        4      '       g   Q hVP                  VP
                  J g   Q h\        P                  P                  4       p\        R4      p\        P                  P                  V4       \        P                  P                  P                  p\        V4      pVP                  VJ g   Q h\        P                  P                  V4       R# )r   iT N)r   r
   r   rP   r   Z_bit_generatorr   rO   Zget_bit_generatorr   Zset_bit_generatorZmtrandZ_rand)rV   ry   r   Z	_originalrS   r9   r   #test_coercion_RandomState_GeneratorZ2TestDefaultRNG.test_coercion_RandomState_Generator?  s    _"**G44442#4#4444 II//1	8_
		##B'YY##_2%%% 			##I.r   rG   N)	rW   rX   rY   rZ   r   r   r   r[   r\   r]   r^   r   r   r   1  s     7
'/ /r   r   )9r   ZsysZos.pathr   r`   Znumpyr   Znumpy.randomr   r   r   r   r   r   r   r	   r
   Znumpy.random._commonr   Znumpy.testingr   r   r   r   r   r   ZImportErrorr   r   ZflagsZoptimizer   Zdirnamer   r   r   r   r   r&   r)   r*   r0   r4   r2   r3   r<   rA   rN   rT   rb   rc   r   r   r   r   r   r   rG   r   r   <module>r      sT   	 
   
 
 
 + LN 99 L 	ggoobggooh/0.D%  "&=#2&*:,#$u6 u6n= =,$0 $0N$0D $0N!&$ !&H#B #BL/ /e  L  Ns$    D D$ 	D! D!$	D0/D0