
    G/PhM             	          d dl Z d dlZd dlZd dlZd dl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mZ d dlmZ ddddd ej        d	          d
z  fddddZ ej        ej                  j        dk     rdddddddddZndddddddd dZ ej        d!e"          d#             Zej        d$             Zd% Z G d& d'          Z G d( d)          Z  G d* d+          Z! G d, d-          Z" G d. d/          Z# G d0 d1          Z$ G d2 d3          Z%ej&        '                    ed45           G d6 d7                      Z( G d8 d9          Z)d: Z*d; Z+d< Z,d= Z-d> Z.d? Z/d@ Z0dA Z1dB Z2dS )C    N)	assert_assert_raisesassert_equalassert_warnsassert_no_warningsassert_array_equalassert_array_almost_equalsuppress_warningsIS_WASM)MT19937PCG64)random)g      Y@g333333?)      ?)   r   
   r      g      @)d   r   )      $@)   )binomial	geometrichypergeometric	logseriesmultinomialnegative_binomialpoissonzipf        @2fbead005fc63942decb5326d36a1f32fe2c9d32c904ee61e46866b88447c263@23ead5dcde35d4cfd4ef2c105e4c3d43304b45dc1b1444b7823b9ee4fa144ebb@0d764db64f5c3bad48c8c33551c13b4d07a1e7b470f77629bef6c985cac76fcf@7b59bf2f1691626c5815cdcd9a49e1dd68697251d4521575219e4d2a1b8b2c67@d754fa5b92943a38ec07630de92362dd2e02c43577fc147417dc5b9db94ccdd3@8eb216f7cb2a63cf55605422845caaff002fddc64a7dc8b2d45acd477a49e824@70c891d76104013ebd6f6bcf30d403a9074b886ff62e4e6b8eb605bf1a4673b7@01f074f97517cd5d21747148ac6ca4074dde7fcb7acbaec0a936606fecacd93f)r   r   r   r   r   r   r   r   @8626dd9d052cb608e93d8868de0a7b347258b199493871a1dc56e2a26cacb112@8edd53d272e49c4fc8fbbe6c7d08d563d62e482921f3131d0a0e068af30f0db9@83496cc4281c77b786c9b7ad88b74d42e01603a55c60577ebab81c3ba8d45657@65878a38747c176bc00e930ebafebb69d4e1e16cd3a704e264ea8f5e24f548db@7a984ae6dca26fd25374479e118b22f55db0aedccd5a0f2584ceada33db98605@d636d968e6a24ae92ab52fe11c46ac45b0897e98714426764e820a7d77602a61@956552176f77e7c9cb20d0118fc9cf690be488d790ed4b4c4747b965e61b0bb4@f84ba7feffda41e606e20b28dfc0f1ea9964a74574513d4a4cbc98433a8bfa45module)scopeparamsc                 V    | j         t          | j                  t          | j                  fS N)param	INT_FUNCSINT_FUNC_HASHES)requests    c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/random/tests/test_randomstate.pyint_funcr9   2   s$    M9W]3GM*, ,    c               #      K   t           j                                        } dV  t           j                            |            dS )z:Ensures that the singleton bitgen is restored after a testN)npr   get_bit_generatorset_bit_generator)orig_bitgens    r8   restore_singleton_bitgenr@   8   s@       )--//K	EEEI,,,,,r:   c                 N   t          | d         |d                    t          | d         d         |d         d                    t          | d         d         |d         d                    t          | d         |d                    t          | d         |d                    d S )Nbit_generatorstatekeypos	has_gaussgauss)r   r   )abs     r8   assert_mt19937_state_equalrJ   @   s    ?#Q%7888qz%(!G*U*;<<<qz%(!G*U*;<<<;;0007QwZ(((((r:   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestSeedc                     t          j        d          }t          |                    d          d           t          j        d          }t          |                    d          d           d S )Nr     i      i  )r   RandomStater   randintselfss     r8   test_scalarzTestSeed.test_scalarI   s\    q!!QYYt__c***z**QYYt__c*****r:   c                     t          j        t          d                    }t          |                    d          d           t          j        t          j        d                    }t          |                    d          d           t          j        dg          }t          |                    d          d           t          j        dg          }t          |                    d          d           d S )Nr   rN   i  r   i  rO   i	  )r   rP   ranger   rQ   r<   arangerR   s     r8   
test_arrayzTestSeed.test_arrayO   s    uRyy))QYYt__c***ry}}--QYYt__c***s##QYYt__c***
|,,QYYt__c*****r:   c                     t          t          t          j        d           t          t          t          j        d           d S )N      r   	TypeErrorr   rP   
ValueErrorrS   s    r8   test_invalid_scalarzTestSeed.test_invalid_scalarY   s2    i!3T:::j&"4b99999r:   c                 T   t          t          t          j        dg           t          t          t          j        dg           t          t          t          j        dg           t          t          t          j        g d           t          t          t          j        g d           d S )Nr[   r\   r   )   r   r   )rc   r   r]   r`   s    r8   test_invalid_arrayzTestSeed.test_invalid_array^   s    i!3dV<<<j&"4rd;;;j&"4zlCCCj&"46H6H6HIIIj&"46I6I6IJJJJJr:   c                    t          t          t          j        t	          j        g t          j                             t          t          t          j        g dg           t          t          t          j        g dg dg           d S )Ndtyperc   r      )      r   )r   r_   r   rP   r<   arrayint64r`   s    r8   test_invalid_array_shapez!TestSeed.test_invalid_array_shapef   s    j&"4bhrEGX7O 7O 7O 	P 	P 	Pj&"4yyykBBBj&"4yyy7@yy7B 	C 	C 	C 	C 	Cr:   c                     t          j        t          d                    }t          t                    5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr     )r   rP   r   r   r^   seed)rS   rss     r8   test_cannot_seedzTestSeed.test_cannot_seedn   s    a))9%% 	 	GGDMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA Ac                 P    t          t          t          j        t                     d S r3   )r   r_   r   rP   r   r`   s    r8   test_invalid_initializationz$TestSeed.test_invalid_initializations   s    j&"4g>>>>>r:   N)
__name__
__module____qualname__rU   rY   ra   re   ro   rt   rv    r:   r8   rL   rL   H   s        + + ++ + +: : :
K K KC C C  
? ? ? ? ?r:   rL   c                       e Zd Zd Zd ZdS )TestBinomialc                     t          j        dd          }dD ]K}t          t          j        d|          dk               t          t          j        ||          |           Ld S )Nr   intrg   )r   r   rc   r   )r<   zerosr   r   r   r   )rS   r   ps      r8   test_n_zerozTestBinomial.test_n_zerox   ss     %((( 	A 	AAFOAq))Q.///vua88%@@@@	A 	Ar:   c                 \    t          t          t          j        dt          j                   d S )Nrc   )r   r_   r   r   r<   nanr`   s    r8   test_p_is_nanzTestBinomial.test_p_is_nan   s     j&/1bf=====r:   N)rw   rx   ry   r   r   rz   r:   r8   r|   r|   w   s5        A A A> > > > >r:   r|   c                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )TestMultinomialc                 4    t          j        dddg           d S )Nr   皙?皙?r   r   r`   s    r8   
test_basiczTestMultinomial.test_basic   s    3c
+++++r:   c                 4    t          j        dg d           d S )Nr   )r   r           r   r   r   r`   s    r8   test_zero_probabilityz%TestMultinomial.test_zero_probability   s"    3 9 9 9:::::r:   c                 &   t          dt          j        dd          cxk    odk     nc            t          j        ddd          }t          t          j        d|k                         t          t          j        |dk                          d S )Nr\   rl   )r   r   rQ   r<   allrS   xs     r8   test_int_negative_intervalz*TestMultinomial.test_int_negative_interval   s    fnR,,1111r1111222N2r1%%rQw   q2vr:   c           	         ddg}t          t          j        d|t          j        d                    j        d           t          t          j        d|t          j        d                    j        d           t          t          j        d|t          j        d                    j        d           t          t          j        d|ddg          j        d           t          t          j        d|d          j        d           t          t          j        d|t          j        d                    j        d           t          t          t          j        d|t          d                     d S )Nr   rc   rc   r   r   r   r   r   r   r   )
r   r   r   r<   uint32shaperm   r   r^   floatrS   r   s     r8   	test_sizezTestMultinomial.test_size   s6   #JV'1bill;;A6JJJV'1bill;;A6JJJV'1bill;;A6JJJV'1q!f55;YGGGV'1f55;YGGGV'1bhv.>.>??E	  	  	  	i!3QAhh	  	  	  	  	 r:   c                     t          t          t          j        dddg           t          t          t          j        dddg           d S )Nr   皙?r   皙?r   r_   r   r   r`   s    r8   test_invalid_probz!TestMultinomial.test_invalid_prob   s>    j&"4cC:FFFj&"4cC:FFFFFr:   c                 L    t          t          t          j        dddg           d S )Nr\   r   r   r   r`   s    r8   test_invalid_nzTestMultinomial.test_invalid_n   s#    j&"4b3*EEEEEr:   c                 p   t          j        d          }|t          j        |dd d                   z  }|dd d         }t          j        d           t          j        d|          }t          j        d           t          j        dt          j        |                    }t          ||           d S )Ng      .@rc   rj   i۠iUr   )pvals)r<   rX   sumr   rr   r   ascontiguousarrayr   )rS   r   r   
non_contigcontigs        r8   test_p_non_contiguousz%TestMultinomial.test_p_non_contiguous   s    IcNN	RVAaddG__!$Q$J'5999
J#Cr/CE/J/JKKK:v.....r:   c                    t          j        g dt           j                  }||                                z  }d}t	          j        t          |          5  t          j        d|           d d d            d S # 1 swxY w Y   d S )N)
Gz?r   &.>r   r   r   r   r   r   r   rg   z-[\w\s]*pvals array is cast to 64-bit floatingmatchrc   )	r<   rm   float32r   pytestraisesr_   r   r   )rS   r   r   r   s       r8   test_multinomial_pvals_float32z.TestMultinomial.test_multinomial_pvals_float32   s    H : : :ACM M MAEEGG@]:U333 	) 	)q%(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   A::A>A>c                 4    t          j        dddg           d S )Ng      Y@r   r   r   r`   s    r8   test_multinomial_n_floatz(TestMultinomial.test_multinomial_n_float   s    53*-----r:   N)rw   rx   ry   r   r   r   r   r   r   r   r   r   rz   r:   r8   r   r      s        , , ,; ; ;          G G GF F F/ / /) ) ). . . . .r:   r   c                   P    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S )TestSetStatec                     d| _         t          j        | j                   | _        | j                                        | _        d S NiI)rr   r   rP   random_state	get_staterC   r`   s    r8   setup_methodzTestSetState.setup_method   s8    	".ty99&0022


r:   c                     | j                             d          }| j                             | j                   | j                             d          }t	          t          j        ||k                         d S )N   )r   tomaxint	set_staterC   r   r<   r   rS   oldnews      r8   r   zTestSetState.test_basic   si    ((,,##DJ///((,,scz""#####r:   c                     | j                             d          }| j                             | j                   | j                             d          }t	          t          j        ||k                         d S Nrj   size)r   standard_normalr   rC   r   r<   r   r   s      r8   test_gaussian_resetz TestSetState.test_gaussian_reset   so    //Q/77##DJ/////Q/77scz""#####r:   c                 T   | j                                          | j                                         }| j                             d          }| j                             |           | j                             d          }t	          t          j        ||k                         d S r   )r   r   r   r   r   r<   r   )rS   rC   r   r   s       r8    test_gaussian_reset_in_media_resz-TestSetState.test_gaussian_reset_in_media_res   s     	))+++!++--//Q/77##E***//Q/77scz""#####r:   c                    | j         d d         }| j                            d          }| j                            |           | j                            d          }| j                            | j                    | j                            d          }t	          t          j        ||k                         t	          t          j        ||k                         d S )Nrd   r   r   )rC   r   r   r   r   r<   r   )rS   	old_statex1x2x3s        r8   test_backwards_compatibilityz)TestSetState.test_backwards_compatibility   s     JssO	..B.77##I.....B.77##DJ///..B.77rRx  !!!rRx  !!!!!r:   c                 <    | j                             dd           d S Nr   )r   r   r`   s    r8   test_negative_binomialz#TestSetState.test_negative_binomial   s#     	++C55555r:   c                 |   t          j        t                                }t                      5 }|                    t
                    }|                                }t          t          |          dk               t          |t                    sJ |d         dk    sJ 	 d d d            d S # 1 swxY w Y   d S )Nrc   rB   r   )r   rP   r   r
   recordRuntimeWarningr   r   len
isinstancedict)rS   rs   supwrC   s        r8   test_get_state_warningz#TestSetState.test_get_state_warning   s    ((   	5C

>**ALLNNECFFaK   eT*****)W44444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s   A4B11B58B5c                    | j                                         }d|dd          z   }t          t          | j         j        |           t          t
          | j         j        t          j        |t                               | j                             d          }|d= t          t          | j         j        |           d S )N)Unknownrc   rg   FlegacyrB   )	r   r   r   r_   r   r^   r<   rm   object)rS   rC   	new_states      r8   !test_invalid_legacy_state_settingz.TestSetState.test_invalid_legacy_state_setting   s    !++--!E!""I-	j$"3"=yIIIi!2!<hy777	9 	9 	9!++5+99/"j$"3"=uEEEEEr:   c                    | j                             d           | j                             d           | j                                          | j                             d          }t          |d         d           t          j        t          j        | j                             }|                    d          }t          ||           d S )Nr   r   Fr   rF   rc   )
r   rr   random_sampler   r   r   pickleloadsdumpsrJ   )rS   pickled	rs_unpick	unpickleds       r8   test_picklezTestSetState.test_pickle   s    q!!!'',,,))+++#--U-;;W[)1---Ld.?!@!@AA	''u'55	"7I66666r:   c                     | j                                         }| j                                          | j                             |           | j                             d          }t          ||           d S )NFr   )r   __getstate__r   __setstate__r   rJ   )rS   
attr_staterC   s      r8   test_state_settingzTestSetState.test_state_setting
  sq    &3355
))+++&&z222!++5+99":u55555r:   c                 X    t          | j                                      d          sJ d S )NzRandomState(MT19937))reprr   
startswithr`   s    r8   	test_reprzTestSetState.test_repr  s.    D%&&112HIIIIIIIr:   N)rw   rx   ry   r   r   r   r   r   r   r   r   r   r   r   rz   r:   r8   r   r      s        3 3 3
$ $ $$ $ $	$ 	$ 	$
" 
" 
"6 6 6
5 5 5F F F7 7 76 6 6J J J J Jr:   r   c            	       4   e Zd Zej        Zej        ej        ej	        ej
        ej        ej        ej        ej        ej        g	Zd Zd Zd Zd Zd Zd Zej                             ej        d          j        dk     d	
          d             Zd Zd ZdS )TestRandintc                 J    t          t          | j        dt                     d S Nrc   rg   )r   r^   rfuncr   r`   s    r8   test_unsupported_typez!TestRandint.test_unsupported_type  s!    iQe<<<<<<r:   c                    | j         D ]}|t          j        u rdnt          j        |          j        }|t          j        u rdnt          j        |          j        dz   }t          t          | j        |dz
  ||           t          t          | j        ||dz   |           t          t          | j        |||           t          t          | j        dd|           d S )Nr   r   rc   rg   )	ityper<   booliinfominmaxr   r_   r   )rS   dtlbndubnds       r8   test_bounds_checkingz TestRandint.test_bounds_checking   s    * 	B 	BBbg1128B<<+;Dbg1128B<<+;a+?D*dj$(DKKKK*dj$qKKKK*dj$BGGGG*dj!QbAAAAA	B 	Br:   c           	         | j         D ]}|t          j        u rdnt          j        |          j        }|t          j        u rdnt          j        |          j        dz   }|dz
  }t          |                     ||dz   d|          |           |}t          |                     ||dz   d|          |           ||z   dz  }t          |                     ||dz   d|          |           d S )Nr   r   rc   rN   r   rh   )r   r<   r  r  r  r  r   r   )rS   r  r  r  tgts        r8   test_rng_zero_and_extremesz&TestRandint.test_rng_zero_and_extremes)  s    * 	M 	MBbg1128B<<+;Dbg1128B<<+;a+?D(CCqt2FFLLLCCqt2FFLLL$;"CCqt2FFLLLL	M 	Mr:   c                 X   | j         D ]}|t          j        u rdnt          j        |          j        }|t          j        u rdnt          j        |          j        dz   }	 |                     |||           q# t          $ r$}t          dt          |          z            d }~ww xY wd S )Nr   r   rc   rg   zMNo error should have been raised, but one was with the following message:

%s)
r   r<   r  r  r  r  r   	ExceptionAssertionErrorstr)rS   r  r  r  es        r8   test_full_rangezTestRandint.test_full_range7  s     * 		@ 		@Bbg1128B<<+;Dbg1128B<<+;a+?D@

4R
0000 @ @ @$ &68;A&? @ @ @@		@ 		@s    A99
B'B""B'c                    t          j                     | j        dd          D ]j}dD ]e}|                     d|d|          }t	          |                                |k                t	          |                                dk               fk|                     dddt          j                  }t	          |                                dk                t	          |                                dk               d S )Nrc   )rk      r   r   i   r
  r   )	r   rr   r   r   r   r  r  r<   r  )rS   r  r  valss       r8   test_in_bounds_fuzzzTestRandint.test_in_bounds_fuzzE  s    *QRR. 	) 	)B" ) )zz!TRz@@

T)***

a(((()
 zz!QU"'z::

Q

a     r:   c           
      N   dddddddddd	}| j         dd          D ]}t          j        d           t          j        d	k    r|                     d
dd|          }n+|                     d
dd|                                          }t          j        |	                    t          j                                                            }t          |t          j        |          j                 |k               t          j        d           |                     d
ddt                     	                    t          j                  }t          j        |                                          }t          |t          j        t                     j                 |k               d S )N@509aea74d792fb931784c4b0135392c65aec64beee12b0cc167548a2c3d31e71@7b07f1a920e46f6d0fe02314155a2330bcfd7635e708da50e536c5ebb631a7d4@e577bfed6c935de944424667e3da285012e741892dcb7051a8f1ce68ab05c92f@0fbead0b06759df2cfb55e43148822d4a1ff953c7eb19a5b08445a63bb64fa9e@001aac3a5acb935a9b186cbe14a1ca064b8bb2dd0b045d48abeacf74d0203404)	r  int16int32rn   int8uint16r   uint64uint8rc   rq   littler   r   rN   r
  r   )r   r   rr   sys	byteorderr   byteswaphashlibsha256viewr<   r  	hexdigestr   rh   namer  )rS   r  r  valress        r8   test_repeatabilityzTestRandint.test_repeatabilityT  sv    ZZZZY[[[Z\ \ *QRR. 
	3 
	3BK }((jjADj;;jjADj;;DDFF."'!2!233==??CC)*c12222 	DjjADj55::27CCnS!!++--BHTNN'(C/00000r:   lr   zCannot test with 32-bit C longreasonc           
      8   t          j        g dg dg dgg dg dg dgg dg dg d	gg d
g dg dgg dg dg dgg          }dD ]P}t          j        d           |                     dgdgdggg d|          }t          |||n|d                    Qd S )N)l   Q[ l   dm" l   0 )l   ;i l   vlm l   iXp )i\L_l   ZN iwU')l   <~ l   20l iP?)ifiwLl   @
Vo )l   o\ iwi
1])i{YSl   r=| i)l   0 l   l i&})l   QZ) l   (q l   '}Q )l   WqV1 iMl   't )inMl   b" l   )  )ial    l   S"f )idi98l   nDk )l   Jc i-l    )iMi'*l   l, )N)rl   rj   rj   i90  r\   r   rc   )rO   r   l       r   )r<   rm   r   rr   r   r   )rS   desiredr   r   s       r8   .test_repeatability_32bit_boundary_broadcastingz:TestRandint.test_repeatability_32bit_boundary_broadcastingt  sP    (AAAAAAAAAC BAAAAAAAAC BAAAAAAAAC BAAAAAAAAC BAAAAAAAACD E E & 	O 	ODK

RD1#s+-J-J-J $  & &AqT-=''71:NNNN		O 	Or:   c                    t           j        }t          j        t           j                  j        }t          j        t          j        t           j                  j                  }t          j        t          j        t           j                  j        dz             }t          j        |||          }t          ||           d S r   )r<   rn   r  r  r!  r   rQ   r   )rS   r  r  r  r  actuals         r8   test_int64_uint64_corner_casez)TestRandint.test_int64_uint64_corner_case  s     Xhrx  $x**.//y"(++/!344 d"555VS!!!!!r:   c                    | j         D ]}|t          j        u rdnt          j        |          j        }|t          j        u rdnt          j        |          j        dz   }|                     |||          }t          |j        t          j        |                     t          t          fD ]}|t          u rdnd}|t          u rdnt          j        |          j        }|t          u rdnt          j        |          j        dz   }|                     |||          }t          t          |d                      t          t          |          |           d S )Nr   r   rc   rg   longr  rh   )r   r<   r  r  r  r  r   r   rh   r~   r   hasattrtype)rS   r  r  r  sampleop_dtypes         r8   test_respect_dtype_singletonz(TestRandint.test_respect_dtype_singleton  sD   * 	5 	5Bbg1128B<<+;Dbg1128B<<+;a+?DZZd"Z55Frx||4444+ 
	+ 
	+B "$svvHd

11(:(:(>Dd

11(:(:(>(BDZZd"Z55F000111fr****
	+ 
	+r:   N)rw   rx   ry   r   rQ   r   r<   r  r  r"  r  r   r  r   rn   r!  r   r   r  r  r  r  r.  r   markskipifr  r  r4  r7  r>  rz   r:   r8   r   r     s       NE Wbgrx29Xry"(BI7E= = =B B BM M M@ @ @! ! !1 1 1@ [)E1?  A AO OA AO," " ".+ + + + +r:   r   c                   l   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 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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+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1e2j3        4                    d0 e5j6        d1d2          d3e5j7        d4g          d5             Z8d6 Z9d7 Z:d8 Z;d9 Z<d: Z=d; Z>d< Z?d= Z@d> ZAd? ZBd@ ZCdA ZDdB ZEdC ZFdD ZGdE ZHdF ZIdG ZJdH ZKdI ZLdJ ZMdK ZNdL ZOdM ZPdN ZQdO ZRdP ZSdQ ZTdR ZUdS ZVdT ZWdU ZXdV ZYdW ZZdXS )YTestRandomDistc                     d| _         d S r   rr   r`   s    r8   r   zTestRandomDist.setup_method  s    			r:   c                     t          j        | j                   t          j        dd          }t          j        ddgddgddgg          }t          ||d	
           d S )Nrj   r   _\*?琛?<p?,o?H?Z?   decimal)r   rr   randr<   rm   r	   rS   r6  r3  s      r8   	test_randzTestRandomDist.test_rand  sv    DIQ""(02EF02EF/1CDF G G 	"&'2>>>>>>r:   c                     t          j        | j                   t          j                    }d}t          ||d           d S )NrF  rL  rM  )r   rr   rO  r	   rP  s      r8   test_rand_singletonz"TestRandomDist.test_rand_singleton  s?    DI%!&'2>>>>>>r:   c                 H   t          j        | j                   t          j        dd          }t          j        ddgddgddgg          }t          ||d	
           t          j        | j                   t          j                    }t          ||d         d	
           d S )Nrj   r   !<Oq?4u,?3?LI/DͿ@? @HS\@rL  rM  r   r   r   rr   randnr<   rm   r	   rP  s      r8   
test_randnzTestRandomDist.test_randn  s    DIa##(02EF-/BC-/BCE F F 	"&'2>>>>DI!&'$-DDDDDDr:   c                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||           d S )Nc   rj   r   r      rj   )   )r   rr   rQ   r<   rm   r   rP  s      r8   test_randintzTestRandomDist.test_randint  sl    DIRf555(RG "I #J( ) ) 	67+++++r:   c                    t          j        | j                   t                      5 }|                    t                    }t          j        ddd          }t          t          |          dk               d d d            n# 1 swxY w Y   t          j	        ddgdd	gd
dgg          }t          ||           t          j        | j                   t                      5 }|                    t                    }t          j        dd          }t          t          |          dk               d d d            n# 1 swxY w Y   t          ||dz              d S )Nr`  ra  rb  r   rc   rc  rj   rd  re  rf  rg     r   )r   rr   r
   r   DeprecationWarningrandom_integersr   r   r<   rm   r   )rS   r   r   r6  r3  s        r8   test_random_integersz#TestRandomDist.test_random_integers  s   DI   	!C

-..A+C&AAAFCFFaK   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! (RG "I #J( ) ) 	67+++DI   	!C

-..A+Cf===FCFFaK   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	67S=11111s%   ABB
B
%AEE	Ec                 2   t          j        | j                   t          j        | j                  }|                    d          }t	          j        t          j                  j        dk    r*t	          j        ddgddgdd	ggt          j	        
          }n)t	          j        ddgddgddggt          j	        
          }t          ||           |                    | j                   |                                }t          ||d                    d S )Nrb  r   ii4Oi˕+iRKiriFbqirg   l   K+W+y l   r&&J] l   ;	 l   nBz l   @XHT l   D+l++ r[  )r   rr   rP   r   r<   r  r9  r  rm   rn   r   )rS   rs   r6  r3  s       r8   test_tomaxintzTestRandomDist.test_tomaxint  s   DI	**&))8BG J..hi 8!+i 8!+i 8 :ACK K KGG h!46I J!46I J!46I J L &(X/ / /G
 	VW%%%
	VWT]+++++r:   c           	      Z   t                      5 }|                    t                    }t          j        t          j        d          j        t          j        d          j                  }t          t          |          dk               d d d            n# 1 swxY w Y   t          j        d          j        }t          ||           t                      5 }|                    t                    }t          j        d          j        }t          j         |t          j        d          j                   |t          j        d          j                            }t          t          |          dk               d d d            n# 1 swxY w Y   t          ||           d S )Nr/  rc   )r
   r   rk  r   rl  r<   r  r  r   r   r   rh   r;  )rS   r   r   r6  r3  typers         r8   test_random_integers_max_intz+TestRandomDist.test_random_integers_max_int  s       	!C

-..A+BHSMM,=,.HSMM,=? ?FCFFaK   		! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! (3--#VW%%%   	!C

-..AHSMM&E+EE"(3--2C,D,D,1E"(3--2C,D,DF FFCFFaK   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	VW%%%%%s%   A>BB BB)FFFc           	         t          j                    5  t          j        dt                     t	          t          t
          j        t          j        d          j	                   t	          t          t
          j        t          j        d          j	        t          j        d          j	                   d d d            d S # 1 swxY w Y   d S )Nerrorr/  )
warningscatch_warningssimplefilterrk  r   r   rl  r<   r  r  r`   s    r8   test_random_integers_deprecatedz.TestRandomDist.test_random_integers_deprecated  s   $&& 	@ 	@!'+=>>> , 0(3--+- - -
 , 0(3--+RXc]]->@ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   B!CC	Cc                 F   t          j        | j                   t          j        d          }t          j        ddgddgddgg          }t          ||d	           t          j        | j                   t          j                    }t          ||d
         d	           d S )Nrb  rF  rG  rH  rI  rJ  rK  rL  rM  r[  )r   rr   r   r<   rm   r	   rP  s      r8   test_random_samplez!TestRandomDist.test_random_sample,  s    DI%f--(02EF02EF/1CDF G G 	"&'2>>>>DI%''!&'$-DDDDDDr:   c                     t          j        | j                   t          j        dd          }t          j        g d          }t          ||           d S )Nrk   )r   rj   r   rj   r   rr   choicer<   rm   r   rP  s      r8   test_choice_uniform_replacez*TestRandomDist.test_choice_uniform_replace8  sN    DIq!$$(<<<((67+++++r:   c                     t          j        | j                   t          j        ddg d          }t          j        g d          }t          ||           d S )Nrk   )皙?r  皙?r  r   )rc   rc   r   r   r|  rP  s      r8   test_choice_nonuniform_replacez-TestRandomDist.test_choice_nonuniform_replace>  sZ    DIq!';';';<<<(<<<((67+++++r:   c                     t          j        | j                   t          j        ddd          }t          j        g d          }t          ||           d S )Nrk   rj   Freplace)r   rc   rj   r|  rP  s      r8   test_choice_uniform_noreplacez,TestRandomDist.test_choice_uniform_noreplaceD  sS    DIq!U333(999%%67+++++r:   c                     t          j        | j                   t          j        dddg d          }t          j        g d          }t          ||           d S )Nrk   rj   F)r  333333?r   r  r  r   )r   rj   rc   r|  rP  s      r8    test_choice_nonuniform_noreplacez/TestRandomDist.test_choice_nonuniform_noreplaceJ  s\    DIq!U6J6J6JKKK(999%%67+++++r:   c                     t          j        | j                   t          j        g dd          }t          j        g d          }t          ||           d S )N)rH   rI   cdrk   )r  r  r  r  r|  rP  s      r8   test_choice_nonintegerz%TestRandomDist.test_choice_nonintegerP  sX    DI333Q77(///0067+++++r:   c           	         t           j        }t          t          |dd           t          t          |dd           t          t          |ddgddggd           t          t          |g d           t          t          |g ddddgddgg	           t          t          |ddgdg d
	           t          t          |ddgdddg	           t          t          |ddgdddg	           t          t          |g ddd           t          t          |g ddd           t          t          |g ddd           t          t          |g ddd           t          t          |g dddg d           d S )Nr\   rj         @rc   r   rk   )rc   r   rj   rk   g      ?r  )r  r  r   r   r   r  ri   Fr  rd   )r\   )r\   rc   )rc   r   r   r  )r   r}  r   r_   )rS   r<  s     r8   test_choice_exceptionsz%TestRandomDist.test_choice_exceptionsV  s   j&"a000j&"a000j&Aq6Aq6*:A>>>j&"a000j&,,,d|4	6 	6 	6 	6j&1a&!GGGGj&1a&!T{CCCCj&1a&!SzBBBBj&)))QFFFFj&)))RGGGGj&)))UEJJJJj&)))WeLLLLj&)))Q#yyy	2 	2 	2 	2 	2 	2r:   c           
      
   ddg}t          t          j        t          j        dd                               t          t          j        t          j        dd                               t          t          j        t          j        dd|                               t          t          j        t          j        dd|                               t          t          j        t          j        ddgd                               t          t          j        d gd          d u            t          j        ddg          }t          j        dt          	          }||d
<   t          t          j        |d          |u            t                      }t          t          j        t          j        d|d                                t          t          j        t          j        d|d                                t          t          j        t          j        d|d|                                t          t          j        t          j        d|d|                                t          t          j        t          j        ddg|d                                t          t          j        d g|d          j	        d
k               t          j        ddg          }t          j        dt          	          }||d
<   t          t          j        ||d          
                                |u            d}g d}t          t          j        d|d          j        |           t          t          j        d|d          j        |           t          t          j        d|d|          j        |           t          t          j        d|d|          j        |           t          t          j        t          j        d          |d          j        |           t          t          j        d
d
d          j        d           t          t          j        d
dd
          j        d           t          t          j        ddd
          j        d           t          t          j        d
d
          j        d           t          t          j        g d          j        d           t          t          j        ddgd          j        d           t          t           t          j        g d           d S )Nr  r   r   Tr  Fr  rc   rg   r   )r   rj   )r  r  r  r  r  r   r   )rj   r   rk   r   i)r   r   rH   rI   )r   r<   isscalarr   r}  rm   emptyr   tuplendimitemr   r   rX   rQ   r   r_   )rS   r   rH   arrrT   s        r8   test_choice_return_shapez'TestRandomDist.test_choice_return_shapei  s   #JFM!T:::;;<<<FM!U;;;<<===FM!TQ???@@AAAFM!Ua@@@AABBBFM1a&$???@@AAAtfd333t;<<<HaVhq'''Ac4000A5666 GGBKaD A A ABBBCCCBKaE B B BCCCDDDBKaDA F F FGGGHHHBKaEQ G G GHHHIIIBKq!fa F F FGGGHHHtfa666;q@AAAHaVhq'''Ac1d33388::a?@@@ ***V]1a666<a@@@V]1a777=qAAAV]1a;;;A1EEEV]1a!<<<BAFFFV]29Q<<DAAAGKKK 	V^Aqy999?KKKV^As33394@@@V^B33394@@@V]11---3T:::V]2D1117>>>V]C:I>>>D	  	  	 j&-R88888r:   c                 ~    t          j        g d          }g d}t          t          t          j        ||           d S )N)*   rc   r   )NNNr  )r<   rm   r   r_   r   r}  )rS   rH   r   s      r8   test_choice_nan_probabilitiesz,TestRandomDist.test_choice_nan_probabilities  s?    HZZZ  j&-a888888r:   c           
      l   t          j        d          dz  }d|dd d<   t          j        | j                   t          j        dd|d d d                   }t          j        | j                   t          j        ddt          j        |d d d                             }t          ||           d S )Nr   rl   r  rc   r   rj   r  )r<   onesr   rr   r}  r   r   )rS   r   r   r   s       r8   test_choice_p_non_contiguousz+TestRandomDist.test_choice_p_non_contiguous  s    GBKK!O!$Q$DI]1a1SSqS6222
DIq!r';AcccF'C'CDDD:v.....r:   c                     t          j        | j                   t          j        d          }d}t          ||           d S )Nr   s
   Ui+Wf)r   rr   bytesr   rP  s      r8   
test_byteszTestRandomDist.test_bytes  s>    DIb!!.VW%%%%%r:   c                     d d d d d d d d d	 d
 d fD ][}t          j        | j                    |g d          }t          j        |           |} |g d          }t          ||           \d S )Nc                 *    t          j        g           S r3   )r<   rm   r   s    r8   <lambda>z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rx|| r:   c                     | S r3   rz   r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    q r:   c                 d    t          j        |                               t           j                  S r3   )r<   asarrayastyper  r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BG<< r:   c                 d    t          j        |                               t           j                  S r3   )r<   r  r  r   r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BJ?? r:   c                 d    t          j        |                               t           j                  S r3   )r<   r  r  	complex64r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BLAA r:   c                 Z    t          j        |                               t                    S r3   )r<   r  r  r   r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33F;; r:   c                     d | D             S )Nc                     g | ]}||fS rz   rz   .0is     r8   
<listcomp>zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    2221A222r:   rz   r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    22222 r:   c                 >    t          j        d | D                       S )Nc                     g | ]}||gS rz   rz   r  s     r8   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>      *=*=*=aAq6*=*=*=r:   )r<   r  r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz*=*=1*=*=*=>> r:   c                 8    t          j        | | g          j        S r3   )r<   vstackTr  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    ry!Q002 r:   c                     t          j        d | D             dt          fdt          fg                              t           j                  S )Nc                     g | ]}||fS rz   rz   r  s     r8   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    +>+>+>qQF+>+>+>r:   rH   rI   )r<   r  r~   r)  recarrayr  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sG    
+>+>A+>+>+>-0#Jc
+C!E !E!%bk!2!2 r:   c                 n    t          j        d | D             dt          dfdt           j        dfg          S )Nc                     g | ]}||fS rz   rz   r  s     r8   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  r  r:   rH   rc   rI   )r<   r  r   r  r  s    r8   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sA    rz*=*=1*=*=*=,/+>,/4+@+B C  C r:   
rc   r   rj   rk   rl   r      r  	   r   
r   rc   r  r   r   rk   rl   r  r  rj   )r   rr   shuffler   )rS   convalistr6  r3  s        r8   test_shufflezTestRandomDist.test_shuffle  s     ,+ [<<??AA;;22>>224 4C CD 	0 	0D" K	"""D77788EN5!!!Fd999::Gvw////-	0 	0r:   c                    t           j                            t          j        t	          d          d          dz  dz
  d          }t           j                            t          j        d          dz  dz
  d          }|                                }|                                }t	          d          D ]}t          j        |           t          t          |j        |j                            t          |j        |j                                       t          j        |           t          t          |j        |j                            t          |j        |j                                       d }d S )Nr   )rl   rk   rj   rc   r\   2   c                 n    t          j        d          }t          t          t          j        |           d S )Nrj   )r<   rm   r   r^   r   r  r   s     r8   test_shuffle_invalid_objectszHTestRandomDist.test_shuffle_masked.<locals>.test_shuffle_invalid_objects  s)    A)V^Q77777r:   )r<   mamasked_valuesreshaperW   rX   copyr   r  r   sorteddatamask)rS   rH   rI   a_origb_origr  r  s          r8   test_shuffle_maskedz"TestRandomDist.test_shuffle_masked  sL   E
599f = = AA ErJJE	" 1A 5r::r 	L 	LAN1qvqvg''V[L0I)J)JL L LN1qvqvg''V[L0I)J)JL L L L	8 	8 	8 	8 	8r:   c                    t          j        | j                   g d}t          j        |          }g d}t          ||           t          j        | j                   t	          j        g d          j        }t          j        |          }t          |t	          j        |          j                   t          j        | j                   d}t          t          t           j        |           t          j        | j                   d}t          t          t           j        |           d}g d}t          j        | j                   t          j        |          }t          ||           d S )Nr  r  abcdg333333?r   )
r  r   r  rl   rc   rj   rk   r  r   r   )	r   rr   permutationr   r<   
atleast_2dr  r   
IndexError)rS   r  r6  r3  arr_2d	bad_x_strbad_x_floatinteger_vals           r8   test_permutationzTestRandomDist.test_permutation  sB   DI...#E**00067+++DI===>>@#F++62=#9#9#;<<<DI	j&"4i@@@DIj&"4kBBB000DI#K0067+++++r:   c                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r   rb  r   gAKč?ghA?g ҇o>gάXf+q?gS1$?g'8zX ?rL  rM  )r   rr   betar<   rm   r	   rP  s      r8   	test_betazTestRandomDist.test_beta  s{    DIR&111()+BC)+BC)+BCEF F 	"&'2>>>>>>r:   c                 @   t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||           t          j        | j                   t          j        dd          }d}t          ||           d S )NgZd;Y@gv/?rb  r   %   +   r  0   .   -   )r   rr   r   r<   rm   r   rP  s      r8   test_binomialzTestRandomDist.test_binomial  s    DI$V<<<(RHHH& ' ' 	67+++DI$//67+++++r:   c                     t          j        | j                   t          j        dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Nr  rb  r   g+Q]uO@g+Q@gY7`ZqP@ge(fG@gvtR@gEIȋR@   rM  )r   rr   	chisquarer<   rm   r	   rP  s      r8   test_chisquarezTestRandomDist.test_chisquare	  sz    DI!"6222(13GH13GH02FGI J J 	"&'2>>>>>>r:   c                 (   t          j        | j                   t          j        ddg          }t          j        |d          }t          j        ddgddggd	d
gddggddgddggg          }t          ||d           t          j        ddg          }t          t          t           j        |           t          j        | j                   t          j        ddg          }t          j        |          }t          ||d         d           d S )NI<I@EZC@rb  r   gi{s?gn,	A?g]^?gpDB?gȧ#y?gr?g1U?gѨUC?g^,%?gB?gډOoX;?gM`!O?rL  rM  HzG?缉ؗҜr[  )r   rr   r<   rm   	dirichletr	   r   r_   )rS   alphar6  r3  	bad_alphas        r8   test_dirichletzTestRandomDist.test_dirichlet  s7   DI.0DEFF!%f555(13FG13FGI13FG13FGI13FG13FGI	J K K 	"&'2>>>>Hgx011	j&"2I>>>DI.0DEFF!%((!&'$-DDDDDDr:   c                    t          j        ddg          }t          t          j        |t          j        d                    j        d           t          t          j        |t          j        d                    j        d           t          t          j        |t          j        d                    j        d           t          t          j        |ddg          j        d           t          t          j        |d          j        d           t          t          j        |t          j        d                    j        d           t          t          t          j        |t          d                     d S )Nr  r  rc   r   r   r   r   )
r<   rm   r   r   r  r   r   r   r^   r   r   s     r8   test_dirichlet_sizez"TestRandomDist.test_dirichlet_size$  s!   H*,@ABBV%a166<fEEEV%a166<fEEEV%a166<fEEEV%a!Q006	BBBV%a006	BBBV%a&)9)9::@)LLLi!11eAhh?????r:   c                 r    t          j        ddg          }t          t          t          j        |           d S )Nr  r  )r<   rm   r   r_   r   r  )rS   r  s     r8   test_dirichlet_bad_alphaz'TestRandomDist.test_dirichlet_bad_alpha0  s1    '8,--j&"2E:::::r:   c                 H   t          j        g d          }|d d d         }t          j        | j                   t          j        |d          }t          j        | j                   t          j        t          j        |          d          }t          ||           d S )N)r  g      r  r   rb  r   )r<   rm   r   rr   r  r   r	   )rS   rH   r  r   r   s        r8   #test_dirichlet_alpha_non_contiguousz2TestRandomDist.test_dirichlet_alpha_non_contiguous5  s    HGGGHH##A#DI%e&999
DI!""6u"="='-/ / /!*f55555r:   c                     t          j        | j                   t          j        dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Ng8EGr?rb  r   gNU?gbI0?gVU\@g:3@gU?g"qo?rL  rM  )r   rr   exponentialr<   rm   r	   rP  s      r8   test_exponentialzTestRandomDist.test_exponential?  sz    DI#F888(02EF02EF02EFH I I 	"&'2>>>>>>r:   c                     t          t          j        d          d           t          t          t          j        d           d S Nr   scale       )r   r   r   r   r_   r`   s    r8   test_exponential_0z!TestRandomDist.test_exponential_0G  s>    V'a000!444j&"4C@@@@@@r:   c                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )N   M   rb  r   g7?g`j?g6"+?gܳ2>?gc>+Y?g_}S?rL  rM  )r   rr   fr<   rm   r	   rP  s      r8   test_fzTestRandomDist.test_fK  s{    DI"bv...(02EF02EF02EFH I I 	"&'2>>>>>>r:   c                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nrl   rj   rb  r   gԏGM8@gȌ<@g	":@gv#)@gZQ?@gr[@@   rM  )r   rr   gammar<   rm   r	   rP  s      r8   
test_gammazTestRandomDist.test_gammaS  s{    DIa000(13GH13GH13GHJ K K 	"&'2>>>>>>r:   c                     t          t          j        dd          d           t          t          t          j        dd           d S )Nr   )r   r  r  )r   r   r  r   r_   r`   s    r8   test_gamma_0zTestRandomDist.test_gamma_0[  s@    V\333Q777j&,cEEEEEEr:   c                     t          j        | j                   t          j        dd          }t          j        ddgddgddgg          }t          ||           d S )	N_c97ݚ?rb  r   r  r     rl   r	  )r   rr   r   r<   rm   r   rP  s      r8   test_geometriczTestRandomDist.test_geometric_  sk    DI!*6:::(QFHG% & & 	67+++++r:   c                 H   t          t          t          j        d           t          t          t          j        dgdz             t          t          t          j        d           t          t          t          j        dgdz             t	                      5 }|                    t                     t          t          t          j        t          j                   t          t          t          j        t          j        gdz             d d d            d S # 1 swxY w Y   d S )Nr   r   r   )	r   r_   r   r   r
   r   r   r<   r   rS   r   s     r8   test_geometric_exceptionsz(TestRandomDist.test_geometric_exceptionsg  s(   j&"2C888j&"2SEBJ???j&"2D999j&"2TFRK@@@   	GCJJ~&&&*f&6???*f&62FFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Gs   A3DDDc                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr         @rb  locr  r   gؕ?gs0 ?g#0g(xg-KD?gůp`@rL  rM  )r   rr   gumbelr<   rm   r	   rP  s      r8   test_gumbelzTestRandomDist.test_gumbelq  s{    DI:SvFFF(02EF02FG02FGI J J 	"&'2>>>>>>r:   c                     t          t          j        d          d           t          t          t          j        d           d S r  )r   r   r  r   r_   r`   s    r8   test_gumbel_0zTestRandomDist.test_gumbel_0y  <    V]+++Q///j&-s;;;;;;r:   c                    t          j        | j                   t          j        dddd          }t          j        ddgddgddgg          }t          ||           t          j        dd	d
d          }t          j        g d          }t          ||           t          j        dd	dd          }t          j        g d          }t          ||           t          j        d	dd
d          }t          j        g d          }t          ||           t          j        d	ddd          }t          j        g d          }t          ||           d S )Ng333333$@g      @r  rb  r   r   r  rl   r   rj   rk   )rj   rj   rj   rj   rL  r	  )r	  r	  r	  r	  )r   r   r   r   )r   rr   r   r<   rm   r   rP  s      r8   test_hypergeometricz"TestRandomDist.test_hypergeometric}  sf   DI&tS"6BBB(RHHF$ % % 	67+++ &q!QQ777(<<<((67+++&r1bq999(+++,,67+++ &q!QQ777(<<<((67+++&q"bq999(<<<((67+++++r:   c                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  rb  r  g bO?g¸?gpJm	@g{K*t	@g:^w-gY~o?rL  rM  )r   rr   laplacer<   rm   r	   rP  s      r8   test_laplacezTestRandomDist.test_laplace  s{    DIJcGGG(02EF02EF13FGI J J 	"&'2>>>>>>r:   c                     t          t          j        d          d           t          t          t          j        d           d S r  )r   r   r&  r   r_   r`   s    r8   test_laplace_0zTestRandomDist.test_laplace_0  s<    V^!,,,a000j&.<<<<<<r:   c                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  rb  r  g#K-z?gJ?g92@gر[@g#+^˿g-@rL  rM  )r   rr   logisticr<   rm   r	   rP  s      r8   test_logisticzTestRandomDist.test_logistic  s{    DIZsHHH(02DE02EF13FGI J J 	"&'2>>>>>>r:   c                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  rb  )meansigmar   gɁ0@go,+4FB@g)ʭ6@g5?gnxNnP@g)U@r  rM  )r   rr   	lognormalr<   rm   r	   rP  s      r8   test_lognormalzTestRandomDist.test_lognormal  s|    DI!z6JJJ(13GH13FG13GHJ K K 	"&'2>>>>>>r:   c                     t          t          j        d          d           t          t          t          j        d           d S )Nr   )r/  rc   r  )r   r   r0  r   r_   r`   s    r8   test_lognormal_0zTestRandomDist.test_lognormal_0  s>    V%A...222j&"2#>>>>>>r:   c                     t          j        | j                   t          j        dd          }t          j        ddgddgddgg          }t          ||           d S )Ngƀ@?rb  )r   r   r   r   r  rj   )r   rr   r   r<   rm   r   rP  s      r8   test_logserieszTestRandomDist.test_logseries  sk    DI!JV<<<(QFGF$ % % 	67+++++r:   c                 :    t          j        d          dk    sJ d S )Nr   rc   )r   r   r`   s    r8   test_logseries_zeroz"TestRandomDist.test_logseries_zero  s$    ""a''''''r:   valuer   r\         ?g      @c                 j   t          j        d          5  t          j        t                    5  t          j        |           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        t          j        |gdz                       d d d            n# 1 swxY w Y   t          j        t                    5  t          j        t          j        |gdz            d d d                    d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nignoreinvalidr   r   )r<   errstater   r   r_   r   r   rm   )rS   r8  s     r8   test_logseries_exceptionsz(TestRandomDist.test_logseries_exceptions  s   [*** 	> 	>z** ( ( '''( ( ( ( ( ( ( ( ( ( ( ( ( ( (z** 9 9 5'B,!7!78889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 z** > > 5'B,!7!7!!<===> > > > > > > > > > > > > > >	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s|   D(AD(A	D(A	D(5+B, D(,B0	0D(3B0	4D(4DD(D	D(D	D((D,/D,c                     t          j        | j                   t          j        ddgdz  d          }t          j        g dg dgg dg d	gg d
g dgg          }t          ||           d S )Nr   UUUUUU?r   rb  r   )rk   rj   rl   rk   r   r   )rl   r   r  r   r   rc   )rj   rk   rj   r   r   rk   )r   rc   rk   rj   r   rk   )rk   rk   r   rl   r   rj   )rk   rj   rk   r   rj   rk   )r   rr   r   r<   rm   r   rP  s      r8   test_multinomialzTestRandomDist.test_multinomial  s    DI#B16BBB(//////1//////1//////1	2 3 3 	67+++++r:   c                 0   t          j        | j                   d}ddgddgg}d}t          j        |||          }t          j        ddgddggd	d
gddggddgddggg          }t          ||d           t          j        ||          }t          j        ddg          }t          ||d           ddg}ddgddgg}t          t          t           j        ||           t          t           j        ||d           t          t          t           j        ||d           t          j        ddgddggt          j                  }t                      5 }t          j        ||           |                    t                    }t          |          dk    sJ 	 d d d            n# 1 swxY w Y   t          j        d          }t          j        d          }t          t          t           j        ||d           t          t          t           j        t          j        d          |           t          t          t           j        |t          j        d                     t          t          t           j        |t          j        d                     d S )N)r  r   rc   r   rb  g4Vj?gy'@gI1?gSB#@ge<@g 4W(@g6R¿?g9r
v"@gс?g{#@g4xg"f"@rL  rM  gN}O6?gYMW"@r   r;  )check_validraiser  rg   other)r   rc   rc   rj   )r   rr   multivariate_normalr<   rm   r	   r   r   r   r   r_   r   r
   r   r   r   eyer  )	rS   r.  covr   r6  r3  r   r   mus	            r8   test_multivariate_normalz'TestRandomDist.test_multivariate_normal  s   DI1v1v+D#t<<(/1BC/1BCE/1CD/1BCE/1BC02CDF	G H H 	"&'2>>>> +D#66(-/?@AA!&'2>>>> 1v1v1v^V%?sKKK 	65tS'/	1 	1 	1 	1 	j&"<dC")	+ 	+ 	+ 	+ hC3(+2:>>>   	C&tS111

>**Aq66Q;;;;;	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 Xa[[fQiij&"<dC")	+ 	+ 	+ 	+j&"<hy))3	0 	0 	0j&"<"(6**	, 	, 	,j&"<"&))	% 	% 	% 	% 	%s   AF''F+.F+c                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||           d S )Nr   g|Pk?rb  )nr   r   iP  iI  i|  ic  i  i  )r   rr   r   r<   rm   r   rP  s      r8   r   z%TestRandomDist.test_negative_binomial  sm    DI)C6GGG(S#J #J #J( ) ) 	67+++++r:   c                 <   t                      5 }|                    t                     t          t          t
          j        dt          j                   t          t          t
          j        dt          j        gdz             d d d            d S # 1 swxY w Y   d S )Nr   r   )	r
   r   r   r   r_   r   r   r<   r   r  s     r8   !test_negative_binomial_exceptionsz0TestRandomDist.test_negative_binomial_exceptions  s       	)CJJ~&&&*f&>RVLLL*f&>6(R-) ) )	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   A5BBBc                    t          j        | j                   t          j        ddd          }t          j        ddgddgdd	gg          }t          ||d
           t          j        ddd          }t          j        ddgddgddgg          }t          ||d
           t          j        | j                   t          j        ddd          }t          j        ddgddgddgg          }t          ||d
           d S )Nrl   rb  )dfnoncr   gG7@g! ܴ*@g1}z9?@g+驸0@g26E_r#@gI!1@r  rM  r   r   g?gTD?g?T?g+qnl?g~|D?g밬?r   g{01#@gprs'@g~;$@g"dI@g*@g}',@)r   rr   noncentral_chisquarer<   rm   r	   rP  s      r8   test_noncentral_chisquarez(TestRandomDist.test_noncentral_chisquare  sR   DI,GGG(13GH13GH02FGI J J 	"&'2>>>>,&III(03FG03FG.1DEG H H 	"&'2>>>>DI,GGG(.0BC/1BC/1CDF G G 	"&'2>>>>>>r:   c                     t          j        | j                   t          j        dddd          }t          j        ddgdd	gd
dgg          }t          ||d           d S )Nrl   r   rc   rb  )dfnumdfdenrR  r   g^~?g/+c?g".@g@g7?gE?r  rM  )r   rr   noncentral_fr<   rm   r	   rP  s      r8   test_noncentral_fz TestRandomDist.test_noncentral_f0  s    DI$1AA*02 2 2(02EF02EF02DEG H H 	"&'2>>>>>>r:   c                     t          j        | j                   t          j        ddt          j                  }t          j        |          sJ d S )Nrl   r   )rV  rW  rR  )r   rr   rX  r<   r   isnan)rS   r6  s     r8   test_noncentral_f_nanz$TestRandomDist.test_noncentral_f_nan9  sI    DI$1ABFCCCxr:   c                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  rb  r  g&&n@gOG_@g~w@gtw]տgm&5@g$>@rL  rM  )r   rr   normalr<   rm   r	   rP  s      r8   test_normalzTestRandomDist.test_normal>  s{    DI:SvFFF(02EF.0DE02EFH I I 	"&'2>>>>>>r:   c                     t          t          j        d          d           t          t          t          j        d           d S r  )r   r   r^  r   r_   r`   s    r8   test_normal_0zTestRandomDist.test_normal_0F  r"  r:   c                     t          j        | j                   t          j        dd          }t          j        ddgddgdd	gg          }t          j                            ||d
           d S )Nr  rb  rH   r   gWI@gԨy@gy]0Ag1~\Aga@gY
7A   )nulp)r   rr   paretor<   rm   testingassert_array_almost_equal_nulprP  s      r8   test_paretozTestRandomDist.test_paretoJ  s    DI&999()+BC)+BC)+BCEF F 	
11&'1KKKKKr:   c                     t          j        | j                   t          j        dd          }t          j        ddgddgddgg          }t          ||           d S )Nr  rb  )lamr   r   rc   )r   rr   r   r<   rm   r   rP  s      r8   test_poissonzTestRandomDist.test_poissonY  sj    DIJV<<<(QFFF$ % % 	67+++++r:   c                 ~   t          j        d          j        }d}t          t          t
          j        |           t          t          t
          j        |gdz             t          t          t
          j        |           t          t          t
          j        |gdz             t                      5 }|                    t                     t          t          t
          j        t           j
                   t          t          t
          j        t           j
        gdz             d d d            d S # 1 swxY w Y   d S )Nr/  r\   r   )r<   r  r  r   r_   r   r   r
   r   r   r   )rS   lambiglamnegr   s       r8   test_poisson_exceptionsz&TestRandomDist.test_poisson_exceptionsa  s7   #"j&.&999j&.6(R-@@@j&.&999j&.6(R-@@@   	ECJJ~&&&*fnbf===*fnrvhmDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   2A3D22D69D6c                     t          j        | j                   t          j        dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Nr  rb  rc  g;'?gܴw*?g5?gFG?g D]?g$`?rL  rM  )r   rr   powerr<   rm   r	   rP  s      r8   
test_powerzTestRandomDist.test_powerm  sy    DI
888(02EF02EF02EFH I I 	"&'2>>>>>>r:   c                     t          j        | j                   t          j        dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Nr   rb  )r  r   g"u+@gN$MB*@g7v8B4@g55@ge&@g~ӣZ1@r  rM  )r   rr   rayleighr<   rm   r	   rP  s      r8   test_rayleighzTestRandomDist.test_rayleighu  sy    DIr777(02DE13GH13GHJ K K 	"&'2>>>>>>r:   c                     t          t          j        d          d           t          t          t          j        d           d S r  )r   r   ru  r   r_   r`   s    r8   test_rayleigh_0zTestRandomDist.test_rayleigh_0}  s<    V_1---q111j&/======r:   c                     t          j        | j                   t          j        d          }t          j        ddgddgddgg          }t          ||d	
           d S )Nrb  r   gMoDL?g6([9grF=?gM'	- gVgVA:Qy?rL  rM  )r   rr   standard_cauchyr<   rm   r	   rP  s      r8   test_standard_cauchyz#TestRandomDist.test_standard_cauchy  sx    DI'V444(02FG02FG13FGI J J 	"&'2>>>>>>r:   c                     t          j        | j                   t          j        d          }t          j        ddgddgddgg          }t          ||d	
           d S )Nrb  r   g܁?gc!z?g&N"@gNI@gF>?g~ME?rL  rM  )r   rr   standard_exponentialr<   rm   r	   rP  s      r8   test_standard_exponentialz(TestRandomDist.test_standard_exponential  sx    DI,&999(02EF/1DE/1DEG H H 	"&'2>>>>>>r:   c                     t          j        | j                   t          j        dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Nrj   rb  )r   r   g)@gľ@gd],q@gPk{@g9B#1@gv @r  rM  )r   rr   standard_gammar<   rm   r	   rP  s      r8   test_standard_gammaz"TestRandomDist.test_standard_gamma  sz    DI&QV<<<(02EF02EF02CDF G G 	"&'2>>>>>>r:   c                     t          t          j        d          d           t          t          t          j        d           d S )Nr   )r   r  )r   r   r  r   r_   r`   s    r8   test_standard_gamma_0z$TestRandomDist.test_standard_gamma_0  s>    V*333Q777j&"7sCCCCCCr:   c                     t          j        | j                   t          j        d          }t          j        ddgddgddgg          }t          ||d	
           d S )Nrb  r   rU  rV  rW  rX  rY  rZ  rL  rM  )r   rr   r   r<   rm   r	   rP  s      r8   test_standard_normalz#TestRandomDist.test_standard_normal  sx    DI'V444(02EF.0CD.0CDF G G 	"&'2>>>>>>r:   c                     t          j        | j                   t          j                    }t          j        d          }t          ||d           d S )NrU  rL  rM  r\  rP  s      r8   test_randn_singletonz#TestRandomDist.test_randn_singleton  sJ    DI(.//!&'2>>>>>>r:   c                     t          j        | j                   t          j        dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Nr   rb  )rQ  r   g\VH?ghU%gH$M?gLgVqdzǿg㖀?rL  rM  )r   rr   
standard_tr<   rm   r	   rP  s      r8   test_standard_tzTestRandomDist.test_standard_t  sz    DI"bv666(02FG02FG13FGI J J 	"&'2>>>>>>r:   c                     t          j        | j                   t          j        dddd          }t          j        ddgdd	gd
dgg          }t          ||d           d S )Ng{Gz@g(\u$@gףp=
W4@rb  )leftmoderightr   g:}\)@ghرTj(@gǨL30@g6ڜA0@g6sh&@g<,@r  rM  )r   rr   
triangularr<   rm   r	   rP  s      r8   test_triangularzTestRandomDist.test_triangular  s    DI"5(.0 0 0(13FG13GH13FGI J J 	"&'2>>>>>>r:   c                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )NGz?gGz%@rb  )lowhighr   g>#H@gu@g#@g}d]#@gN@gw)* @rL  rM  )r   rr   uniformr<   rm   r	   rP  s      r8   test_uniformzTestRandomDist.test_uniform  s{    DIDu6BBB(02EF02EF02EFH I I 	"&'2>>>>>>r:   c                    t          j        d          j        }t          j        d          j        }t          j        }t          t          |t           j         d           t          t          |dt           j                   t          t          |||           t          t          |t           j         gdg           t          t          |dgt           j        g           t	          j        t          j	        |d          |dz             d S )Nr   r   rc   g ؅W4vC)r  r  )
r<   finfor  r  r   r  r   OverflowErrorinf	nextafter)rS   fminfmaxfuncs       r8   test_uniform_range_boundsz(TestRandomDist.test_uniform_range_bounds  s    x  $x  $~mTBF7A666mT1bf555mT4666mTRVG9qc:::mTA3999
 	2<a00td{CCCCCCr:   c                     G d dt           j                  }t          j        d                              |          }t	          t
          t          j        ||            G d dt           j                  }t          j        d                              |          }t	          t
          t          j        |dd           d S )Nc                       e Zd Zd ZdS )GTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloatc                     t           r3   r^   r`   s    r8   	__float__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__      r:   N)rw   rx   ry   r  rz   r:   r8   ThrowingFloatr    #                 r:   r  r9  c                       e Zd Zd ZdS )ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                     t           r3   r  r`   s    r8   __int__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__  r  r:   N)rw   rx   ry   r  rz   r:   r8   ThrowingIntegerr    r  r:   r  rc   )	r<   ndarrayrm   r)  r   r^   r   r  r   )rS   r  throwing_floatr  throwing_ints        r8   !test_scalar_exception_propagationz0TestRandomDist.test_scalar_exception_propagation  s    	  	  	  	  	 BJ 	  	  	  #++M::i$	& 	& 	&	  	  	  	  	 bj 	  	  	  x{{''88i!6aKKKKKr:   c                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  p=
ף?rb  rJ  kappar   gLZI@g'N"@gkr?gk=m@gډ?g^=\?rL  rM  r   rr   vonmisesr<   rm   r	   rP  s      r8   test_vonmiseszTestRandomDist.test_vonmises  s{    DID6BBB(02EF02EF02EFH I I 	"&'2>>>>>>r:   c                     t          j        | j                   t          j        ddd          }t          t	          j        |                                                     d S )Nr   gg5_PG>@B r  )r   rr   r  r   r<   isfiniter   rS   rs     r8   test_vonmises_smallz"TestRandomDist.test_vonmises_small  sR    DIOre<<<A""$$%%%%%r:   c                     t          j        | j                   t          j        ddd          }t          j        g d          }t          ||d           d S )Nr   g    cArj   r  )g A^>?g @R7?g x.r  rM  r  rP  s      r8   test_vonmises_largez"TestRandomDist.test_vonmises_large  sg    DIBc:::( 4 4 4 5 5 	"&'1======r:   c                     t          j        | j                   t          j        dt          j                  }t          t          j        |                     d S )Nr   )rJ  r  )r   rr   r  r<   r   r   r[  r  s     r8   test_vonmises_nanz TestRandomDist.test_vonmises_nan  sF    DIOr000r:   c                     t          j        | j                   t          j        ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  rb  )r.  r  r   gZ@g-g@g8
m?gVP"?g`V?gx^&3?r  rM  )r   rr   waldr<   rm   r	   rP  s      r8   	test_waldzTestRandomDist.test_wald  s{    DI$d@@@(02EF02EF02EFH I I 	"&'2>>>>>>r:   c                     t          j        | j                   t          j        dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Nr  rb  rc  g@6?g]A?g(1ڥR?gU?g2_u?g^}-Q?rL  rM  )r   rr   weibullr<   rm   r	   rP  s      r8   test_weibullzTestRandomDist.test_weibull  sy    DI$V444(02EF02EF02EFH I I 	"&'2>>>>>>r:   c                     t          j        | j                   t          t          j        dd          t	          j        d                     t          t          t           j        d           d S )Nr   r	  rc  r  )rH   )r   rr   r   r  r<   r   r   r_   r`   s    r8   test_weibull_0zTestRandomDist.test_weibull_0  sX    DIV^ab11128B<<@@@j&.C888888r:   c                     t          j        | j                   t          j        dd          }t          j        ddgddgddgg          }t          ||           d S )	Nr  rb  rc  B      rc   rj   r  )r   rr   r   r<   rm   r   rP  s      r8   	test_zipfzTestRandomDist.test_zipf  sj    DIt&111(RHFG% & & 	67+++++r:   N)[rw   rx   ry   r   rQ  rS  r^  rh  rm  ro  rr  rx  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r$  r'  r)  r,  r1  r3  r5  r7  r   r?  parametrizer<   r  r   r?  rB  rK  r   rO  rT  rY  r\  r_  ra  ri  rl  rp  rs  rv  rx  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rz   r:   r8   rB  rB    sD         ? ? ?? ? ?
E 
E 
E, , ,2 2 2$, , ,(& & &,@ @ @
E 
E 
E, , ,, , ,, , ,, , ,, , ,2 2 2&,9 ,9 ,9\9 9 9
/ / /& & &0 0 068 8 8$, , ,6? ? ?, , ,? ? ?E E E&
@ 
@ 
@; ; ;
6 6 6? ? ?A A A? ? ?? ? ?F F F, , ,G G G? ? ?< < <, , ,4? ? ?= = =? ? ?? ? ?? ? ?, , ,( ( ( [W|r|B';';R&LMM	> 	> NM	>	, 	, 	,1% 1% 1%f, , ,) ) )? ? ?*? ? ?     
? ? ?< < <L L L, , ,
E 
E 
E? ? ?? ? ?> > >? ? ?? ? ?? ? ?D D D? ? ?? ? ?? ? ?? ? ?? ? ?D D D L L L,? ? ?& & &> > >  
? ? ?? ? ?9 9 9
, , , , ,r:   rB  c                       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 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d Zd Zd Zd Z d Z!d  Z"d!S )"TestBroadcastc                     d| _         d S )N[rD  r`   s    r8   r   zTestBroadcast.setup_method'  s    			r:   c                 8    t          j        | j                   d S r3   )r   rr   r`   s    r8   set_seedzTestBroadcast.set_seed*  s    DIr:   c                 *   dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||d           |                                   |||dz            }t          ||d           d S )Nr   rc   gl?g_x?g=*BN?rj   r  rM  )r   r  r<   rm   r  r	   )rS   r  r  r  r3  r6  s         r8   r  zTestBroadcast.test_uniform-  s    cs.( 1 1 1 2 2 	q$''!&'2>>>>dQh''!&'2>>>>>>r:   c                    dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             d S )Nr   rc   r\   )g-r@gYl@g-`w?rj   r  rM  )r   r^  r<   rm   r  r	   r   r_   )rS   r  r  	bad_scaler^  r3  r6  s          r8   r_  zTestBroadcast.test_normal=  s    cD	( 0 0 0 1 1 	a''!&'2>>>>j&#'9===UQY''!&'2>>>>j&#y1}=====r:   c                    dg}dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             d S )	Nrc   r   r\   rd   )gnQVf?gVKB?gv`k?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   rH   rI   bad_abad_br  r3  r6  s           r8   r  zTestBroadcast.test_betaP  s   CC{( 1 1 1 2 2 	a!eQ!&'2>>>>j$	1555j$Au555aQ!&'2>>>>j$q1u555j$51955555r:   c                     dg}dg}t           j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             d S Nrc   r\   )g.UgZ?gi Prq?gEK?rj   r  rM  )r   r   r<   rm   r  r	   r   r_   )rS   r  r  r   r3  r6  s         r8   r  zTestBroadcast.test_exponentialf  s    D	(( 1 1 1 2 2 	UQY''!&'2>>>>j+y1}=====r:   c                     dg}dg}t           j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             d S r  )r   r  r<   rm   r  r	   r   r_   )rS   r   	bad_shape	std_gammar3  r6  s         r8   r  z!TestBroadcast.test_standard_gammas  s    D	)	( 1 1 1 2 2 	519%%!&'2>>>>j)Y];;;;;r:   c                    dg}dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             d S )	Nrc   r   r\   rd   )g.UgZ?gi Prq?gEK?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   r   r  r  r  r  r3  r6  s           r8   r  zTestBroadcast.test_gamma  s   D	D	( 0 0 0 1 1 	uqy%((!&'2>>>>j%Q>>>j%I>>>ueai((!&'2>>>>j%EAI>>>j%	A>>>>>r:   c                    dg}dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             d S )	Nrc   r   r\   rd   )gbyʜ?go?gT7@rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   rV  rW  	bad_dfnum	bad_dfdenr  r3  r6  s           r8   r  zTestBroadcast.test_f  s   D	D	H( 0 0 0 1 1 	519e$$!&'2>>>>j!Y]E:::j!UQY	:::5%!)$$!&'2>>>>j!Y	:::j!UIM:::::r:   c           
         dg}dg}dg}dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  ||          }	t          |	|d	           t          j        t          j         |||t          j        gdz                                sJ t          t          ||dz  ||           t          t          ||dz  ||           t          t          ||dz  ||           |                                   |||dz  |          }	t          |	|d	           t          t          |||dz  |           t          t          |||dz  |           t          t          |||dz  |           |                                   ||||dz            }	t          |	|d	           t          t          ||||dz             t          t          ||||dz             t          t          ||||dz             d S )
Nr   rj   rk   r   r\   rd   )gr^G"@g/*@gц!@r  rM  )r   rX  r<   rm   r  r	   r   r[  r   r   r_   )
rS   rV  rW  rR  r  r  bad_noncnonc_fr3  r6  s
             r8   rY  zTestBroadcast.test_noncentral_f  s'   sC	D	4$( 0 0 0 1 1 		5$//!&'2>>>>vbhvveURVHqLAABBCCCCCj&)a-EEEj&%!)YEEEj&%!)UHEEEuqy$//!&'2>>>>j&)UQYEEEj&%QEEEj&%HEEEudQh//!&'2>>>>j&)UD1HEEEj&%D1HEEEj&%1EEEEEr:   c                     |                                   t          j        ddg          }t          j        dddd          }t          ||d           d S )Ngaz@gn4M;%?r   r   r   r  rM  )r  r<   rm   r   rX  r	   )rS   r3  r6  s      r8   test_noncentral_f_small_dfz(TestBroadcast.test_noncentral_f_small_df  sY    (-/@ABB$S#qq999!&'2>>>>>>r:   c                     dg}dg}t           j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             d S )Nrc   r\   )g~}N??g$F?g'rS?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   rQ  bad_dfr  r3  r6  s         r8   r  zTestBroadcast.test_chisquare  s    S$	( 0 0 0 1 1 	26""!&'2>>>>j)VaZ88888r:   c                    dg}dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             d S )	Nrc   r   r\   rd   )g w "@g2WR@gRY@rj   r  rM  )r   rS  r<   rm   r  r	   r   r_   )rS   rQ  rR  r  r  nonc_chir3  r6  s           r8   rT  z'TestBroadcast.test_noncentral_chisquare  s   Ss4.( 0 0 0 1 1 	"q&$''!&'2>>>>j(FQJ===j(BFH==="dQh''!&'2>>>>j(FD1H===j(B1=====r:   c                 6   dg}dg}t           j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             t          t          t           j        |dz             d S )Nrc   r\   )gT@g~Fl@gƚtp?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   rQ  r  tr3  r6  s         r8   r  zTestBroadcast.test_standard_t  s    S( 0 0 0 1 1 	26!&'2>>>>j!VaZ000j&"3VaZ@@@@@r:   c                    dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             d S )Nr   rc   r\   )gW!@gOBg}?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   rJ  r  	bad_kappar  r3  r6  s          r8   r  zTestBroadcast.test_vonmises  s    SD	?( 1 1 1 2 2 	"q&%((!&'2>>>>j(BFI>>>"eai((!&'2>>>>j(B	A>>>>>r:   c                 6   dg}dg}t           j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             t          t          t           j        |dz             d S )Nrc   r\   )g&8??geFX?gՋː?rj   r  rM  )r   rf  r<   rm   r  r	   r   r_   )rS   rH   r  rf  r3  r6  s         r8   ri  zTestBroadcast.test_pareto  s    C( 0 0 0 1 1 	A!&'2>>>>j&%!)444j&-;;;;;r:   c                 6   dg}dg}t           j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             t          t          t           j        |dz             d S r  )r   r  r<   rm   r  r	   r   r_   )rS   rH   r  r  r3  r6  s         r8   r  zTestBroadcast.test_weibull'  s    C.( 1 1 1 2 2 	Q!&'2>>>>j'519555j&.%!)<<<<<r:   c                 6   dg}dg}t           j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             t          t          t           j        |dz             d S )Nrc   r\   r  rj   r  rM  )r   rr  r<   rm   r  r	   r   r_   )rS   rH   r  rr  r3  r6  s         r8   rs  zTestBroadcast.test_power5  s    C( 1 1 1 2 2 	q1u!&'2>>>>j%333j&,	:::::r:   c                    dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             d S )Nr   rc   r\   )g:BKc?g3k?g~q?rj   r  rM  )r   r&  r<   rm   r  r	   r   r_   )rS   r  r  r  r&  r3  r6  s          r8   r'  zTestBroadcast.test_laplaceC  s    cD	.( 2 2 2 3 3 	q%((!&'2>>>>j'37I>>>eai((!&'2>>>>j'3	A>>>>>r:   c                    dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             d S )Nr   rc   r\   )g'Zy?gdSO=?g3L1?rj   r  rM  )r   r  r<   rm   r  r	   r   r_   )rS   r  r  r  r  r3  r6  s          r8   r  zTestBroadcast.test_gumbelV  s    cD	( 1 1 1 2 2 	a''!&'2>>>>j&#'9===UQY''!&'2>>>>j&#y1}=====r:   c                    dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             t          t          j        dd	          d           d S )
Nr   rc   r\   )gy?gJR?g
~&?rj   r  rM  r9  r   )	r   r+  r<   rm   r  r	   r   r_   r   )rS   r  r  r  r+  r3  r6  s          r8   r,  zTestBroadcast.test_logistici  s    cD	?( 2 2 2 3 3 	#'5))!&'2>>>>j(C!GY???#uqy))!&'2>>>>j(CQ???V_S#..44444r:   c                 (   dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           t          t          t           j        |dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             t          t          t           j        ||dz             d S )Nr   rc   r\   )gH"@gܮ @gvv	:@rj   r  rM  )r   r0  r<   rm   r  r	   r   r_   )rS   r.  r/  	bad_sigmar0  r3  r6  s          r8   r1  zTestBroadcast.test_lognormal}  s   sD	$	( 0 0 0 1 1 	4!8U++!&'2>>>>j)TAXyAAAj&"2D1HiHHH4++!&'2>>>>j)T9q=AAAj&"2D)a-HHHHHr:   c                     dg}dg}t           j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             d S )Nrc   r\   )gݱlo?g/ӂ?gz~R?rj   r  rM  )r   ru  r<   rm   r  r	   r   r_   )rS   r  r  ru  r3  r6  s         r8   rv  zTestBroadcast.test_rayleigh  s    D	?( 0 0 0 1 1 	%!)$$!&'2>>>>j(IM:::::r:   c                    dg}dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           t          t          t           j        |dz  |           t          t          t           j        |dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             t          t          |d	d           t          t          |dd	           d S )
Nr   rc   r   rd   )g@m e?g`I߿?g|2?rj   r  rM  r   )r   r  r<   rm   r  r	   r   r_   )rS   r.  r  bad_meanr  r  r3  r6  s           r8   r  zTestBroadcast.test_wald  sw   u3D	{( 0 0 0 1 1 	dQh&&!&'2>>>>j$1e<<<j$q)<<<j&+x!|UCCCj&+taxCCCdEAI&&!&'2>>>>j$%!)<<<j$i!m<<<j$Q///j$S11111r:   c                 2   dg}dg}dg}dg}dg}|dz  \  }}t           j        }t          j        g d          }	|                                   ||dz  ||          }
t          |
|	d           t          t          ||dz  ||           t          t          ||dz  ||           t          t          ||dz  ||           |                                   |||dz  |          }
t          |
|	d           t          t          |||dz  |           t          t          |||dz  |           t          t          |||dz  |           |                                   ||||dz            }
t          |
|	d           t          t          ||||dz             t          t          ||||dz             t          t          ||||dz             t          t          |dd	d
           t          t          |ddd
           t          t          |ddd           d S )Nrc   rj   r   rk   )g,P;bD @g%G @g,~S @r  rM  r   r   g      4@g      9@)r   r  r<   rm   r  r	   r   r_   )rS   r  r  r  bad_left_onebad_mode_onebad_left_twobad_mode_twor  r3  r6  s              r8   r  zTestBroadcast.test_triangular  sY   ssss%*QY"l&
( 0 0 0 1 1 	D1HdE22!&'2>>>>j*lQ.>eLLLj*dQheLLLj*lQ.>	 	 	 	D$(E22!&'2>>>>j*lD1HeLLLj*dL14DeLLLj*lL1<L	 	 	 	D$	22!&'2>>>>j*lD%!)LLLj*dL%!)LLLj*lLai	! 	! 	! 	j*c2s;;;j*c3<<<j*c3<<<<<r:   c                 l   dg}dg}dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||           t          t          ||dz  |           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||           t          t          |||dz             t          t          |||dz             t          t          |||dz             d S )Nrc   r   r\         ?rc   rc   rc   rj   )r   r   r<   rm   r  r   r   r_   )	rS   rM  r   bad_n	bad_p_one	bad_p_twobinomr3  r6  s	            r8   r  zTestBroadcast.test_binomial  s5   CED	E	(999%%q1ua67+++j%A666j%Q	:::j%Q	:::q!a%67+++j%A666j%IM:::j%IM:::::r:   c                 l   dg}dg}dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz  |          }t          ||           t          t          ||dz  |           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||           t          t          |||dz             t          t          |||dz             t          t          |||dz             d S )Nrc   r   r\   r  )rc   r   rc   rj   )r   r   r<   rm   r  r   r   r_   )	rS   rM  r   r  r  r  	neg_binomr3  r6  s	            r8   r   z$TestBroadcast.test_negative_binomial  s:   CED	E	,	(999%%1q5!$$67+++j)UQY:::j)QUI>>>j)QUI>>>1a!e$$67+++j)UAE:::j)Q	A>>>j)Q	A>>>>>r:   c                 Z   t          j                    j        }dg}dg}|dz  g}t           j        }t	          j        g d          }|                                   ||dz            }t          ||           t          t          ||dz             t          t          ||dz             d S )Nrc   r\   r   )rc   rc   r   rj   )
r   rP   _poisson_lam_maxr   r<   rm   r  r   r   r_   )rS   max_lamrk  bad_lam_onebad_lam_twor   r3  r6  s           r8   rl  zTestBroadcast.test_poisson  s    $&&7cd{m.(999%%q!!67+++j';?;;;j';?;;;;;r:   c                    dg}dg}t           j        }t          j        g d          }|                                   ||dz            }t          ||           t          t          ||dz             t          j        d          5  t          t          |t          j	                   t          t          |ddt          j	        g           d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   rc   rj   r;  r<  )
r   r   r<   rm   r  r   r   r_   r>  r   )rS   rH   r  r   r3  r6  s         r8   r  zTestBroadcast.test_zipf  s   C{(999%%a!e67+++j$	222[*** 	< 	<*dBF333*dQ26N;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   	ACC!Cc                 $   dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz            }t          ||           t          t          ||dz             t          t          ||dz             d S )Nr   r\   r  r   rj   )r   r   r<   rm   r  r   r   r_   )rS   r   r  r  geomr3  r6  s          r8   r  zTestBroadcast.test_geometric,  s    ED	E	(999%%a!e67+++j$	A666j$	A66666r:   c                    dg}dg}dg}dg}dg}dg}dg}t           j        }t          j        g d          }	|                                   ||dz  ||          }
t          |
|	           t          t          ||dz  ||           t          t          ||dz  ||           t          t          ||dz  ||           t          t          ||dz  ||           |                                   |||dz  |          }
t          |
|	           t          t          |||dz  |           t          t          |||dz  |           t          t          |||dz  |           t          t          |||dz  |           |                                   ||||dz            }
t          |
|	           t          t          ||||dz             t          t          ||||dz             t          t          ||||dz             t          t          ||||dz             t          t          |dd	d
           t          t          |d	dd
           t          t          |d	d	d           t          t          |d	d	d           d S )Nrc   r   r\   rd   r   rk   r  rj   r   r      )r   r   r<   rm   r  r   r   r_   )rS   ngoodnbadnsample	bad_ngoodbad_nbadbad_nsample_onebad_nsample_two	hypergeomr3  r6  s              r8   r$  z!TestBroadcast.test_hypergeometric9  s   s#D	4##)	(999%%519dG4467+++j)Y]D'JJJj)UQY'JJJj)UQYoNNNj)UQYoNNN5$(G4467+++j)Yq'JJJj)UHqL'JJJj)UD1HoNNNj)UD1HoNNN5$!4467+++j)YgkJJJj)UHgkJJJj)UD/A:MNNNj)UD/A:MNNNj)RR888j)RR888j)RQ777j)RR88888r:   c                 $   dg}dg}dg}t           j        }t          j        g d          }|                                   ||dz            }t          ||           t          t          ||dz             t          t          ||dz             d S )Nr   r   r\   r  rj   )r   r   r<   rm   r  r   r   r_   )rS   r   r  r  r   r3  r6  s          r8   r5  zTestBroadcast.test_logseriesa  s    EC	D	$	(999%%1q5!!67+++j)Y];;;j)Y];;;;;r:   N)#rw   rx   ry   r   r  r  r_  r  r  r  r  r  rY  r  r  rT  r  r  ri  r  rs  r'  r  r,  r1  rv  r  r  r  r   rl  r  r  r$  r5  rz   r:   r8   r  r  $  s            ? ? ? > > >&6 6 6,> > >< < <? ? ?,; ; ;,!F !F !FF? ? ?9 9 9> > >,A A A? ? ?&< < <= = =; ; ;? ? ?&> > >&5 5 5(I I I*; ; ;2 2 24&= &= &=P; ; ;.? ? ?.< < << < <7 7 7&9 &9 &9P< < < < <r:   r  zcan't start threadr0  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )
TestThreadc                 .    t          d          | _        d S )Nrk   )rW   seedsr`   s    r8   r   zTestThread.setup_methodr  s    1XX


r:   c                 J   ddl m t          j        t	          | j                  f|z             }t          j        t	          | j                  f|z             }fdt          | j        |          D             }d |D              d |D              t          | j        |          D ]#\  }} t          j        |          |           $t          j	                    j
        j        dk    r"t          j        dk    rt          ||           d S t          ||           d S )Nr   )Threadc                 X    g | ]&\  }} t          j        |          |f           'S ))targetargs)r   rP   )r  rT   or$  functions      r8   r  z-TestThread.check_function.<locals>.<listcomp>|  sL     0 0 0A V86+=a+@+@!*DEEE 0 0 0r:   c                 6    g | ]}|                                 S rz   )startr  r   s     r8   r  z-TestThread.check_function.<locals>.<listcomp>~  s     qr:   c                 6    g | ]}|                                 S rz   )joinr,  s     r8   r  z-TestThread.check_function.<locals>.<listcomp>  s     ar:   rk   win32)	threadingr$  r<   r  r   r"  zipr   rP   intprh   itemsizer$  platformr	   r   )	rS   r)  szout1out2r  rT   r(  r$  s	    `      @r8   check_functionzTestThread.check_functionu  sF   $$$$$$xTZ*R/00xTZ*R/000 0 0 0 0TZ..0 0 0A1 
D)) 	/ 	/DAqHV'**A.... 799?#q((S\W-D-D%dD11111tT*****r:   c                 :    d }|                      |d           d S )Nc                 8    |                      d          |d<   d S )N'  r   .)r^  rC   outs     r8   
gen_randomz*TestThread.test_normal.<locals>.gen_random  s    |||//CHHHr:   )r;  r5  r8  rS   r>  s     r8   r_  zTestThread.test_normal  s2    	0 	0 	0 	J844444r:   c                 :    d }|                      |d           d S )Nc                 \    |                      t          j        d                    |d<   d S )Nr   rN   r  .)r   r<   r  r<  s     r8   r>  z'TestThread.test_exp.<locals>.gen_random  s*    ((rw{/C/C(DDCHHHr:   rD  r?  r@  rA  s     r8   test_expzTestThread.test_exp  s5    	E 	E 	E 	J;77777r:   c                 :    d }|                      |d           d S )Nc                 D    |                      ddgdz  d          |d<   d S )Nr   rA  r   r;  r   .)r   r<  s     r8   r>  z/TestThread.test_multinomial.<locals>.gen_random  s*    ((fX\(FFCHHHr:   )r;  r   r?  r@  rA  s     r8   rB  zTestThread.test_multinomial  s5    	G 	G 	G 	J:66666r:   N)rw   rx   ry   r   r8  r_  rE  rB  rz   r:   r8   r   r   o  s_          + + +,5 5 58 8 87 7 7 7 7r:   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestSingleEltArrayInputc                     t          j        dg          | _        t          j        dg          | _        t          j        dg          | _        d| _        d S )Nr   rj   rk   r  )r<   rm   argOneargTwoargThreetgtShaper`   s    r8   r   z$TestSingleEltArrayInput.setup_method  s@    hsmmhsmm!r:   c                    t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j	        t           j
        t           j        t           j        f}t           j        t           j        f}|D ]O}||v r |t          j        dg                    }n || j                  }t!          |j        | j                   Pd S r   )r   r   r  r  r  rf  r  rr  ru  r   r   r   r   r<   rm   rK  r   r   rN  )rS   funcs	probfuncsr  r=  s        r8   test_one_arg_funcsz*TestSingleEltArrayInput.test_one_arg_funcs  s    #V%:!6#4v!6#35 %v'78	 	3 	3Dy  d28SE??++ d4;''DM2222	3 	3r:   c                    t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j	        t           j
        t           j        t           j        t           j        t           j        f}t           j        t           j        f}|D ]}||v rt          j        dg          }n| j        } || j        |          }t'          |j        | j                    || j        d         |          }t'          |j        | j                    || j        |d                   }t'          |j        | j                   d S )Nr   r   )r   r  r^  r  r  r  rS  r  r&  r  r+  r0  r  r   r   r<   rm   rL  rK  r   r   rN  )rS   rP  rQ  r  rL  r=  s         r8   test_two_arg_funcsz*TestSingleEltArrayInput.test_two_arg_funcs  s   fl66&.!6;&":< _f&>?	 	3 	3Dy  3% $t{F++CDM222$t{1~v..CDM222$t{F1I..CDM2222	3 	3r:   c                    t           j        t           j        t           j        g}|D ]} || j        | j        | j                  }t          |j        | j	                    || j        d         | j        | j                  }t          |j        | j	                    || j        | j        d         | j                  }t          |j        | j	                   d S Nr   )
r   rX  r  r   rK  rL  rM  r   r   rN  )rS   rP  r  r=  s       r8   test_three_arg_funcsz,TestSingleEltArrayInput.test_three_arg_funcs  s    $f&7&(  	3 	3D$t{DK??CDM222$t{1~t{DMBBCDM222$t{DKNDMBBCDM2222	3 	3r:   N)rw   rx   ry   r   rR  rT  rW  rz   r:   r8   rI  rI    sP          3 3 3&3 3 363 3 3 3 3r:   rI  c                     t          j        d           | \  }}}t          t           |          } ||ddi}t          |j        t          j        d          k               d S )Nr  r   r   r/  )r   rr   getattrr   rh   r<   )r9   fnamer'  r(  r  r6  s         r8   test_integer_dtyper[    sd    
K	"E4AQ1FFLBHSMM)*****r:   c                 h   t          j        d           | \  }}}t          t           |          } ||ddi}t          j        dk    r|                                }t          j        |                    t          j
                                                            }t          ||k               d S )Nr  r   r  r#  )r   rr   rY  r$  r%  r&  r'  r(  r)  r<   r  r*  r   )r9   rZ  r'  r(  r  r,  r-  s          r8   test_integer_repeatr]    s    
K	"E4A
!T
 
 
 C
}  llnn
."'**
+
+
5
5
7
7CC6Mr:   c                     t          j        t                    5  t          j        dddgd           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        ddgdd           d d d            n# 1 swxY w Y   t          j        t                    5  t          j        ddgddgd           d d d            d S # 1 swxY w Y   d S )Nrc   r  gffffff?)r   rc   r   r   )r   r   r_   r   r   rz   r:   r8   test_broadcast_size_errorr_    s   	z	"	" 4 4C:F33334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	z	"	" 2 2A&11112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	z	"	" 9 9Ac
88889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s5   A  AA$B

BB.CCCc                     t           j                            t          d                    } |                     d           |                                 \  }}}|d         j        j        dk    sJ  |d }|                    |           |	                    d          }t          |d         |d                    t          |d         d	         |d         d	                    t          |d         d
         |d         d
                    t          |d         |d                    t          |d         |d                    d S )Nr   rc   r   )r   Fr   rB   rC   rD   rE   rF   rG   )r<   r   rP   r   r   
__reduce__	__class__rw   r   r   r   r   )rs   ctorr'  state_arI   state_bs         r8   &test_randomstate_ctor_old_style_picklerf    s-   			wqzz	*	*Bq--//D$7%2222lAKKkkk''G)7?+CDDDww'.0@0GHHHww'.0@0GHHH%w{';<<<!77#344444r:   c                 H   t           j                            d          }|j        }t           j                            |           t          t           j        j        j        j        t          |                    sJ t           j        
                                }||u sJ d S rV  )r<   r   default_rngrB   r>   r   mtrand_rand_bit_generatorr;  r=   )r@   def_bgbg	second_bgs       r8   test_hot_swapro    s    Y""1%%F		BI###bi&,;T"XXFFFFF	++--I??????r:   c                    t          d          }t          j                            |           t          j                            d          }t          j                            d           t          j                            d          }t          |           t          |           |d         dk    sJ |d         d         |d         d         k    sJ |d         d         |d         d         k    sJ d S )	Nr   Fr   rc   rB   r   rC   inc)r   r<   r   r>   r   rr   print)r@   rm  rC   r   s       r8   test_seed_alt_bit_genrs    s    	qBI###Iu--EINN1	##5#11I	%LLL	)!W,,,,>'"i&8&AAAAA>% Ig$6u$=======r:   c                 D   t           j                                        }t          d          }t           j                            |           t          j        t          d          5  t           j                            |           d d d            d S # 1 swxY w Y   d S )Nr   zstate must be for a PCG64r   )	r<   r   r   r   r>   r   r   r_   r   )r@   rC   rm  s      r8   test_state_error_alt_bit_genru  ,  s    I!!E	qBI###	z)D	E	E	E # #
	E"""# # # # # # # # # # # # # # # # # #s   ( BBBc                    t           j                            d           t           j                            ddd          }t	          d          }|j        }t           j                            |           t           j                            d          }|D ]}||         ||         k    sJ t           j                            d           t           j                            ddd          }t          j        ||k              rJ |j        }|d         d         |d         d         k    sJ |d         d         |d         d         k    sJ d S )	Ń r      @r   Fr   rC   rq  )	r<   r   rr   rQ   r   rC   r>   r   r   )r@   r  rm  rC   state_directfieldpcg_valsr   s           r8   test_swap_workedr|  5  s9   INN59Q,,D	qBHEI###9&&e&44L 3 3U||E222222INN5y  GR00Hvdh&'''''IWg&%.*AAAAAWe$	'(:5(AAAAAAAr:   c                 F   t           j                            t          d                     t           j                            ddd          }t           j                            t          d                    }|                    ddd          }t          ||           d S )Nrw  r   rx  r   )r<   r   r>   r   rQ   rP   r   )r@   singleton_valsrgnon_singleton_valss       r8   %test_swapped_singleton_against_directr  G  s    Ie---Y&&q'266N			uU||	,	,BAw33#^44444r:   )3r'  r   r$  ru  numpyr<   r   numpy.testingr   r   r   r   r   r   r	   r
   r   numpy.randomr   r   r   r  r5   r  r9  r  r6   fixturer9   r@   rJ   rL   r|   r   r   r   rB  r  r?  r@  r   rI  r[  r]  r_  rf  ro  rs  ru  r|  r  rz   r:   r8   <module>r     s+     



      
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ( ' ' ' ' ' ' '      %+c!12"+ 	 28BG5  #e$f$f)k&h,n"da OO $f$f)k$f&h,n"da O hy111, , 21,
 - - -) ) ),? ,? ,? ,? ,? ,? ,? ,?^> > > > > > > >6. 6. 6. 6. 6. 6. 6. 6.pTJ TJ TJ TJ TJ TJ TJ TJna+ a+ a+ a+ a+ a+ a+ a+Hh, h, h, h, h, h, h, h,VH	< H	< H	< H	< H	< H	< H	< H	<V G$899+7 +7 +7 +7 +7 +7 +7 :9+7^A3 A3 A3 A3 A3 A3 A3 A3J+ + +  9 9 95 5 5$  > > ># # #B B B$5 5 5 5 5r:   