
    G/Ph3K                     r   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/d Z0d Z1 G d d          Z2 G d de2          Z3 G d de2          Z4 G d de2          Z5 G d d e2          Z6 G d! d"e2          Z7 G d# d$          Z8d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      ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/random/tests/test_direct.pyr   r   '   s     . .fSk4(( 	.vc{F3K8888sRZ00 	.vc{F3K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HQ")B--'ry999EIj!!EHQYbi000E_eU^,,2244F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
	!bi
+++,,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    rzz$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    
(3q66Q;

C1c!ffa   @ @aDAIa!eHM:~)-??AFJr   c                 F    |                      t          j                  dz
  S )N      ?)viewr   doubler6   s    r   uniform_from_dsfmtrW   g   s    66")s""r   c                 .   |dv rt          |           }n%|dk    rt          |           }nt          |           }g }d}dx}}t          |          |k     rd}|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MB
e**q..Cii299ws|#c)BwsQw''#-Bb27"B1HC	 Cii299 GD26"::%*++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 
eBii6Q	?	?	?BHHRLLL		!	!	!	!B28$$$&(=>>> )]+++)3444  ""E%u';R@@@u{{22%%%%%%r   c                  j   t           j                                        } | j        j                            d          }fdt          d          D             }d |D             |k    sJ | j                            d          }fdt          dd          D             }d |D             |k    sJ |                     d          }fdt          dd          D             }d	 |D             }||k    sJ |d
                                         |d                                         k    sJ dS )z? Test spawning new generators and bit_generators directly.
    rJ   c                 &    g | ]}j         |fz   S rm   rk   .0rP   seqs     r   
<listcomp>z+test_generator_spawning.<locals>.<listcomp>   s"    <<<aS]aT)<<<r   c                     g | ]	}|j         
S rm   rz   )r|   cs     r   r~   z+test_generator_spawning.<locals>.<listcomp>   s    (((AAK(((r   c                 &    g | ]}j         |fz   S rm   rz   r{   s     r   r~   z+test_generator_spawning.<locals>.<listcomp>   s"    @@@aS]aT)@@@r   rj   c                 &    g | ]}|j         j        S rm   )seed_seqrk   )r|   bgs     r   r~   z+test_generator_spawning.<locals>.<listcomp>   s    444bBK!444r   c                 &    g | ]}j         |fz   S rm   rz   r{   s     r   r~   z+test_generator_spawning.<locals>.<listcomp>   s"    AAAaS]aT)AAAr      c                 0    g | ]}|j         j        j        S rm   )bit_generatorr   rk   )r|   rngs     r   r~   z+test_generator_spawning.<locals>.<listcomp>   s!    KKK3##,6KKKr   r   r   N)r   randomr   r   r   ro   rN   uniform)r   new_ssexpected_keysnew_bgsnew_rngs
found_keysr}   s         @r   test_generator_spawningr      sS    )


!
!C


$CYYq\\F<<<<588<<<M(((((M9999%%a((G@@@@5B<<@@@M44G444EEEEyy||HAAAA5R==AAAMKK(KKKJ&&&& A;  HQK$7$7$9$9999999r   c                     ddl m}   G d d          }|                     |           t          j                             |                      }t          j        t          d          5  |	                    d           d d d            n# 1 swxY w Y   t          j        t          d          5  |j
        	                    d           d d d            d S # 1 swxY w Y   d S )Nr   )rg   c                   "    e Zd Zej        fdZdS ),test_non_spawnable.<locals>.FakeSeedSequencec                 .    t          j        ||          S )Nr(   )r   zeros)selfn_wordsr)   s      r   rs   z;test_non_spawnable.<locals>.FakeSeedSequence.generate_state   s    8G51111r   N)__name__
__module____qualname__r   r!   rs   rm   r   r   FakeSeedSequencer      s-        02	 	2 	2 	2 	2 	2 	2r   r   zThe underlying SeedSequence)matchrJ   )rn   rg   registerr   r   r   pytestraisesrr   ro   r   )rg   r   r   s      r   test_non_spawnabler      s   8888882 2 2 2 2 2 2 2 +,,,
)

 0 0 2 2
3
3C	y(E	F	F	F  		!               
y(E	F	F	F # #"""# # # # # # # # # # # # # # # # # #s$   +BBB3CC"Cc                   >   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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
   r   r?   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)r|   ss     r   r~   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8tABBx888DD A AC

3 3 9 9 ; ;Q??@@@@ "(4sy*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r   r   uintss      r   test_rawzBase.test_raw   s    **DJv,>?((..UDJv.///**DJv,>?((**UDJv.q1222**DJv,>?((..UDJv./////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\    **DJv,>?(((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    ++TZ-?@AA""1%%'
6(:AtyII	K 	K 	K ++TZ-?@AA""2&&'
6(:Aty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?   r   rM   r   r   r)   r   float64r   r   r   valsuniformss       r   test_uniform_doublezBase.test_uniform_double   s    )t)4:f+=>?? F!3TY??99SYY''$'''X^RZ000)t)4:f+=>?? F!3TY??99SYY''$'''X^RZ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#5tyAA99SYYbj999$'''X^RZ000)t)4:f+=>??"4:f#5tyAA99SYYbj999$'''X^RZ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+=>??d2hh&&&&R&&~~##%%--c377488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   strr   r   r0   r   r   s     r   test_strzBase.test_str  s    )t)4:f+=>??c"gg%%%%4%.//3r77::::R&&~~##%%--c377s2ww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    **DJv,>?#\\-00
<<
++!9]33CCDII$X..>>tDD	F 	F 	FH,,,,>5111#\\&,,r**++RXrx(((((r   c                    dd l } | j        | j        d          }|j        }|                    |                    |                    }|j        }t          |j        |j                   t          |j        |j                   |j        	                    d           |                    |                    |                    }|j        }t          |j        |j                   t          |j
        |j
                   d S )Nr   r   rj   )r   r   r   r   r   r   r   rp   poolro   rq   )r   r   r   r   bg_plkss_plks         r   #test_pickle_preserves_seed_sequencez(Base.test_pickle_preserves_seed_sequence-  s     	**DJv,>?#fll=99::RXv|,,,RWfk***$$R(((fll=99::RXv|,,,R*F,EFFFFFr   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   r   r   rr   rp   r   r   s     r   test_invalid_state_typezBase.test_invalid_state_type?  s    **DJv,>?]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_valueD  s    **DJv,>?#!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_typeK  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_valuesQ  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_benchmarkW  s    **DJv,>?  ###  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    **DJv,>?&+.)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_ctypesf  sY    **DJv,>?(/*I66666!.!5%)9999999r   c                      | j         | j        d          }|j        }|                                }t	          |t
                    sJ t          ||d                    t	          |d         t                    sJ d S )Nr   r   r   )r   r   rp   __getstate__r   tupler   r   )r   r   rp   	alt_states       r   test_getstatezBase.test_getstaten  s{    **DJv,>?#!..00	)U+++++5)A,///)A,5555555r   N)!r   r   r   r   r+   r)   r   r   classmethodr   r   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   r   r      s       IEEE% % [% K K [K0 0 0  
K 
K 
K1 1 11 1 1D D D
G G G) ) )"G G G$( ( (
( ( (# # ## # #1 1 1 [-ABB6 6 CB6 [/EFF: : GF:6 6 6 6 6r   r   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_classw  s    "I	MM3446 6	MM3446 6	'!##/tQ#XPQ\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_key  sl    **DJv,>?#""5>)+D',W~e'< # > >=.<<<<<r   N)r   r   r   r  r   r  rm   r   r   r  r  v  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_class  s    !I	MM$s,H"I"IJJ	MM$s,H"I"IJJ	)95"(D6)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=Kvu1/ c              3       K   | ]	}d |z  V  
dS rI   Nrm   r|   rP   s     r   	<genexpr>z/TestPCG64.test_advange_large.<locals>.<genexpr>  &      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_large  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   r0  rC  rm   r   r   r!  r!    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_class  s    %I	MM$s,L"M"MNN	MM$s,L"M"MNN	)95"(D6)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   r0  z#TestPCG64DXSM.test_advance_symmetry  r1  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 )Nr3  r4  rp   c              3       K   | ]	}d |z  V  
dS r6  rm   r7  s     r   r8  z3TestPCG64DXSM.test_advange_large.<locals>.<genexpr>  r9  r   r:  l	   oF	[UmO1X9} r=  r?  s         r   rC  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   NrD  rm   r   r   rG  rG    rE  r   rG  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	MM$s,J"K"KLL	MM$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!3RXrug5F5FGGGi!3RXvh5G5GHHHi!3RXrurufo5N5NOOOi!3RXq"%j5I5IJJJi!3beW===i!3a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&&_%uW~e'<W~e$&!W%%VW%%%Hn!W%%VW%%%%%r   N)r   r   r   r  r   rQ  rV  rm   r   r   rM  rM    sN        * * [*A A A& & & & &r   rM  c                   *    e Zd Zed             Z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	MM2335 5	MM2335 5	)95"(D6)Y!?#('r   c                    dd l }dd l}t          j        g dt          j                  }t
          j                            t
          j                            t                              d         }t
          j        
                    |dd          }|                    |          5 }|                    |          }d d d            n# 1 swxY w Y   t          |t                    sJ t          |j        d         d         |           d S )Nr   )l   VoTMQ l   *,!;l   aE]yg    r(   r   zsfc64_np126.pkl.gzrp   )gzipr   r   r,   r+   ospathr   abspath__file__r   r   loadr   r   r   rp   )r   r\  r   expected_state	base_pathpkl_filegzsfcs           r   test_legacy_picklezTestSFC64.test_legacy_pickle  s-      )
 
 
 GMM"'//(";";<<Q?	7<<	63HIIYYx   	"B++b//C	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" #u%%%%%SYw'0.AAAAAs   (C

CCN)r   r   r   r  r   rg  rm   r   r   rX  rX    sA        
* 
* [
*B B B B Br   rX  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   )  rk  i.  )r   r   r   r
   )r   argsrgs      r   	test_seedzTestDefaultRNG.test_seed&  sP    'T4L?; 	7 	7D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   r   rm  rg2s       r   test_passthroughzTestDefaultRNG.test_passthrough+  s\    XX__2%%%%"oobyyyy B&&&&&&r   N)r   r   r   rn  rq  rm   r   r   ri  ri  %  s2        7 7 7
' ' ' ' 'r   ri  )9r]  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optimizer^  dirnamer_  r`  r  r   r%   r3   r7   r9   r@   rE   rC   rD   rW   re   rw   r   r   r   r  r!  rG  rM  rX  ri  rm   r   r   <module>r|     s   				       



    * * * * * * * * * * * *                       + * * * * *KKKLL   LLLMMMNN   NNN 9 L 	goobgooh//00. . .D D D% % %          " " "& & &= = =  # # #  2& & &&: : :,# # #$u6 u6 u6 u6 u6 u6 u6 u6n= = = = = = = =,$0 $0 $0 $0 $0 $0 $0 $0P$0 $0 $0 $0 $0D $0 $0 $0N!& !& !& !& !&$ !& !& !&H#B #B #B #B #B #B #B #BL' ' ' ' ' ' ' ' ' 's$    A AAA A&%A&