
    8`iV             	       &   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 d dlm	Z	m
Z
 d dlmZmZmZmZmZmZ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+ej$        ,                    d>5          d?             Z-ej$        ,                    d>5          d@             Z.ej$        ,                    d>5          dA             Z/ej$        ,                    d>5          dB             Z0ej$        ,                    d>5          dC             Z1dS )D    N)random)MT19937PCG64)IS_WASMassert_assert_array_almost_equalassert_array_equalassert_equalassert_no_warningsassert_raises)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    _/root/collector_daemon/venv/lib/python3.11/site-packages/numpy/random/tests/test_randomstate.pyint_funcr7   6   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    r6   restore_singleton_bitgenr>   <   s@       )--//K	EEEI,,,,,r8   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     r6   assert_mt19937_state_equalrH   D   s    ?#Q%7888qz%(!G*U*;<<<qz%(!G*U*;<<<;;0007QwZ(((((r8   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     r6   test_scalarzTestSeed.test_scalarM   s\    q!!QYYt__c***z**QYYt__c*****r8   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   rL   i  r   i  rM   i	  )r   rN   ranger
   rO   r:   arangerP   s     r6   
test_arrayzTestSeed.test_arrayS   s    uRyy))QYYt__c***ry}}--QYYt__c***s##QYYt__c***
|,,QYYt__c*****r8   c                     t          t          t          j        d           t          t          t          j        d           d S )N      r   	TypeErrorr   rN   
ValueErrorrQ   s    r6   test_invalid_scalarzTestSeed.test_invalid_scalar]   s2    i!3T:::j&"4b99999r8   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 )NrY   rZ   r   )   r   r   )ra   r   r[   r^   s    r6   test_invalid_arrayzTestSeed.test_invalid_arrayb   s    i!3dV<<<j&"4rd;;;j&"4zlCCCj&"46H6H6HIIIj&"46I6I6IJJJJJr8   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ra   r      )      r   )r   r]   r   rN   r:   arrayint64r^   s    r6   test_invalid_array_shapez!TestSeed.test_invalid_array_shapej   s    j&"4bhrEGX7O 7O 7O 	P 	P 	Pj&"4yyykBBBj&"4yyy7@yy7B 	C 	C 	C 	C 	Cr8   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   rN   r   r   r\   seed)rQ   rss     r6   test_cannot_seedzTestSeed.test_cannot_seedr   s    a))9%% 	 	GGDMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA Ac                 P    t          t          t          j        t                     d S r1   )r   r]   r   rN   r   r^   s    r6   test_invalid_initializationz$TestSeed.test_invalid_initializationw   s    j&"4g>>>>>r8   N)
__name__
__module____qualname__rS   rW   r_   rc   rm   rr   rt    r8   r6   rJ   rJ   L   s        + + ++ + +: : :
K K KC C C  
? ? ? ? ?r8   rJ   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   intre   )r   r   ra   r   )r:   zerosr   r   r   r	   )rQ   r}   ps      r6   test_n_zerozTestBinomial.test_n_zero|   ss     %((( 	A 	AAFOAq))Q.///vua88%@@@@	A 	Ar8   c                 \    t          t          t          j        dt          j                   d S )Nra   )r   r]   r   r   r:   nanr^   s    r6   test_p_is_nanzTestBinomial.test_p_is_nan   s     j&/1bf=====r8   N)ru   rv   rw   r   r   rx   r8   r6   rz   rz   {   s5        A A A> > > > >r8   rz   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    r6   
test_basiczTestMultinomial.test_basic   s    3c
+++++r8   c                 4    t          j        dg d           d S )Nr   )r   r           r   r   r   r^   s    r6   test_zero_probabilityz%TestMultinomial.test_zero_probability   s"    3 9 9 9:::::r8   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 )NrZ   rj   )r   r   rO   r:   allrQ   xs     r6   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r8   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   ra   ra   r   r   r   r   r   r   r   )
r
   r   r   r:   uint32shaperk   r   r\   floatrQ   r~   s     r6   	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	  	  	  	  	 r8   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    r6   test_invalid_probz!TestMultinomial.test_invalid_prob   s>    j&"4cC:FFFj&"4cC:FFFFFr8   c                 L    t          t          t          j        dddg           d S )NrZ   r   r   r   r^   s    r6   test_invalid_nzTestMultinomial.test_invalid_n   s#    j&"4b3*EEEEEr8   c                 t   t          j        d          }|t          j        |dd d                   z  }|dd d         }t          j        d          }|                    d|          }t          j        d          }|                    dt          j        |                    }t          ||           d S )Ng      .@ra   rh   i۠iUr   )pvals)r:   rV   sumr   rN   r   ascontiguousarrayr	   )rQ   r~   r   rng
non_contigcontigs         r6   test_p_non_contiguousz%TestMultinomial.test_p_non_contiguous   s    IcNN	RVAaddG__!$Q$ ,,__S_66
 ,,B,@,G,GHH:v.....r8   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   re   z-[\w\s]*pvals array is cast to 64-bit floatingmatchra   )	r:   rk   float32r   pytestraisesr]   r   r   )rQ   r   r   r   s       r6   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    r6   test_multinomial_n_floatz(TestMultinomial.test_multinomial_n_float   s    53*-----r8   N)ru   rv   rw   r   r   r   r   r   r   r   r   r   rx   r8   r6   r   r      s        , , ,; ; ;          G G GF F F/ / /) ) ). . . . .r8   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        |          }|                                }||fS )NI)r   rN   	get_state)rQ   rp   random_staterA   s       r6   _create_statezTestSetState._create_state   s3    )$//&&((U""r8   c                     |                                  \  }}|                    d          }|                    |           |                    d          }t          t	          j        ||k                         d S )N   )r   tomaxint	set_stater   r:   r   rQ   r   rA   oldnews        r6   r   zTestSetState.test_basic   st    "0022e##B''u%%%##B''scz""#####r8   c                     |                                  \  }}|                    d          }|                    |           |                    d          }t          t	          j        ||k                         d S Nrh   sizer   standard_normalr   r   r:   r   r   s        r6   test_gaussian_resetz TestSetState.test_gaussian_reset   sz    "0022e***22u%%%***22scz""#####r8   c                 P   |                                  \  }}|                                 |                                }|                    d          }|                    |           |                    d          }t	          t          j        ||k                         d S r   )r   r   r   r   r   r:   r   r   s        r6    test_gaussian_reset_in_media_resz-TestSetState.test_gaussian_reset_in_media_res   s     #0022e$$&&&&&((***22u%%%***22scz""#####r8   c                    |                                  \  }}|d d         }|                    d          }|                    |           |                    d          }|                    |           |                    d          }t          t	          j        ||k                         t          t	          j        ||k                         d S )Nrb   r   r   r   )rQ   r   rA   	old_statex1x2x3s          r6   test_backwards_compatibilityz)TestSetState.test_backwards_compatibility   s     #0022e#2#J	))r)22y)))))r)22u%%%))r)22rRx  !!!rRx  !!!!!r8   c                 `    |                                  \  }}|                    dd           d S Nr   )r   r   rQ   r   _s      r6   test_negative_binomialz#TestSetState.test_negative_binomial   s5     ,,..a&&sC00000r8   c                    t          j        t                                }t          j        t
                    5  |                                }d d d            n# 1 swxY w Y   t          |t                    sJ |d         dk    sJ d S )Nr@   r   )	r   rN   r   r   warnsRuntimeWarningr   
isinstancedict)rQ   rq   rA   s      r6   test_get_state_warningz#TestSetState.test_get_state_warning   s    ((\.)) 	# 	#LLNNE	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#%&&&&&_%000000s   AA"Ac                 |   |                                  \  }}|                                }d|dd          z   }t          t          |j        |           t          t
          |j        t          j        |t                               |                    d          }|d= t          t          |j        |           d S )N)Unknownra   re   Flegacyr@   )	r   r   r   r]   r   r\   r:   rk   object)rQ   r   rA   	new_states       r6   !test_invalid_legacy_state_settingz.TestSetState.test_invalid_legacy_state_setting   s    "0022e&&((!E!""I-	j,"8)DDDi!7hy777	9 	9 	9&&e&44/"j,"8%@@@@@r8   c                    |                                  \  }}|                    d           |                    d           |                                 |                    d          }t          |d         d           t          j        t          j        |                    }|                    d          }t          ||           d S )Nr   r   Fr   rD   ra   )
r   rp   random_sampler   r   r
   pickleloadsdumpsrH   )rQ   r   r   pickled	rs_unpick	unpickleds         r6   test_picklezTestSetState.test_pickle	  s    ,,..a!""3'''$$&&&(((66W[)1---Ll!;!;<<	''u'55	"7I66666r8   c                     |                                  \  }}|                                }|                                 |                    |           |                    d          }t          ||           d S )NFr   )r   __getstate__r   __setstate__r   rH   )rQ   r   rA   
attr_states       r6   test_state_settingzTestSetState.test_state_setting  s{    "0022e!..00
$$&&&!!*---&&e&44":u55555r8   c                 |    |                                  \  }}t          |                              d          sJ d S )NzRandomState(MT19937))r   repr
startswithr   s      r6   	test_reprzTestSetState.test_repr  s@    ,,..aL!!,,-CDDDDDDDr8   N)ru   rv   rw   r   r   r   r   r   r   r   r   r   r   r   rx   r8   r6   r   r      s        # # #$ $ $$ $ $	$ 	$ 	$" " "1 1 11 1 1	A 	A 	A	7 	7 	76 6 6E E E E Er8   r   c            	       &   e Zd 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                     t           j                                        }t          t          |j        dt                     d S Nra   re   )r:   r   rN   r   r\   rO   r   )rQ   r   s     r6   test_unsupported_typez!TestRandint.test_unsupported_type'  s4    i##%%iau======r8   c                    t           j                                        }| 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   ra   re   )r:   r   rN   itypebooliinfominmaxr   r]   rO   )rQ   r   dtlbndubnds        r6   test_bounds_checkingz TestRandint.test_bounds_checking+  s    i##%%* 	C 	CBbg1128B<<+;Dbg1128B<<+;a+?D*ck4!8TLLLL*ck4LLLL*ck4RHHHH*ck1arBBBBB	C 	Cr8   c           	         t           j                                        }| 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   ra   rL   r   rf   )
r:   r   rN   r   r   r   r  r  r
   rO   )rQ   r   r  r  r  tgts         r6   test_rng_zero_and_extremesz&TestRandint.test_rng_zero_and_extremes5  s   i##%%* 	N 	NBbg1128B<<+;Dbg1128B<<+;a+?D(CS#'BGGMMMCS#'BGGMMM$;1$CS#'BGGMMMM	N 	Nr8   c                    t           j                                        }| 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   ra   re   zMNo error should have been raised, but one was with the following message:

%s)r:   r   rN   r   r   r   r  r  rO   	ExceptionAssertionErrorstr)rQ   r   r  r  r  es         r6   test_full_rangezTestRandint.test_full_rangeD  s    i##%%* 		@ 		@Bbg1128B<<+;Dbg1128B<<+;a+?D@D$b1111 @ @ @$ &68;A&? @ @ @@		@ 		@s   >B
C!C  C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 )Nra   )ri      r   r   i   r  r   )	r:   r   rN   r   rO   r   r  r  r   )rQ   r   r  r  valss        r6   test_in_bounds_fuzzzTestRandint.test_in_bounds_fuzzS  s    i##%%*QRR. 	) 	)B" ) ){{1db{AA

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

a(((()
 {{1ae27{;;

Q

a     r8   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int32rl   int8uint16r   uint64uint8ra   ro   littler   r   rL   r  r   )r   r   rN   sys	byteorderrO   byteswaphashlibsha256viewr:   r  	hexdigestr   rf   namer   )rQ   r	  r  r   valress         r6   test_repeatabilityzTestRandint.test_repeatabilityb  sv    \[[[[[[[[] ] *QRR. 
	3 
	3B$T**C }((kk!QTk<<kk!QTk<<EEGG."'!2!233==??CC)*c12222  &&kk!QTk66;;BGDDnS!!++--BHTNN'(C/00000r8   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)rj   rh   rh   i90  rZ   r   ra   )rM   r   l       r   )r:   rk   r   rN   rO   r	   )rQ   desiredr   r   r   s        r6   .test_repeatability_32bit_boundary_broadcastingz:TestRandint.test_repeatability_32bit_boundary_broadcasting  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$U++CbTA3,.K.K.K $  & &AqT-=''71:NNNN		O 	Or8   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:   rl   r   r  r  r   rO   r
   )rQ   r  r	  r  r  actuals         r6   test_int64_uint64_corner_casez)TestRandint.test_int64_uint64_corner_case  s     Xhrx  $x**.//y"(++/!344 d"555VS!!!!!r8   c                    t           j                                        }| 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   ra   re   longr   rf   )r:   r   rN   r   r   r   r  r  rO   r
   rf   r|   r   hasattrtype)rQ   r   r  r  r  sampleop_dtypes          r6   test_respect_dtype_singletonz(TestRandint.test_respect_dtype_singleton  sW   i##%%* 	5 	5Bbg1128B<<+;Dbg1128B<<+;a+?D[[t2[66Frx||4444+ 
	+ 
	+B "$svvHd

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

11(:(:(>(BD[[t2[66F000111fr****
	+ 
	+r8   N)ru   rv   rw   r:   r   r  r   r  r  r  r   rl   r  r   r   r  r
  r  r  r,  r   markskipifr   r  r2  r5  r<  rx   r8   r6   r   r   !  s        Wbgrx29Xry"(BI7E> > >C C CN N N@ @ @! ! !1 1 1@ [)E1?  A AO OA AO," " ".+ + + + +r8   r   c                   j   e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd 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TestRandomDistr   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgddgg          }t          ||d	
           d S )Nrh   r   _\*?琛?<p?,o?H?Z?   decimal)r   rN   rp   randr:   rk   r   rQ   r   r4  r1  s       r6   	test_randzTestRandomDist.test_rand  sv     ++!Q(02EF02EF/1CDF G G 	"&'2>>>>>>r8   c                     t          j        | j                  }|                                }d}t	          ||d           d S )NrB  rH  rI  )r   rN   rp   rK  r   rL  s       r6   test_rand_singletonz"TestRandomDist.test_rand_singleton  sA     ++%!&'2>>>>>>r8   c                 L   t          j        | j                  }|                    dd          }t	          j        ddgddgddgg          }t          ||d	
           t          j        | j                  }|                                }t          ||d         d	
           d S )Nrh   r   !<Oq?4u,?3?LI/DͿ@? @HS\@rH  rI  r   r   r   rN   rp   randnr:   rk   r   rL  s       r6   
test_randnzTestRandomDist.test_randn  s     ++1a(02EF-/BC-/BCE F F 	"&'2>>>> ++!&'$-DDDDDDr8   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||           d S )Nc   rh   r   r      rh   )   )r   rN   rp   rO   r:   rk   r	   rL  s       r6   test_randintzTestRandomDist.test_randint  sm     ++S"622(RG "I #J( ) ) 	67+++++r8   c                    t          j        | j                  }t          j        t
                    5  |                    ddd          }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          j        t
                    5  |                    dd          }d d d            n# 1 swxY w Y   t          ||dz              d S )Nr\  r]  r^  r   r_  rh   r`  ra  rb  rc     r   )
r   rN   rp   r   r   DeprecationWarningrandom_integersr:   rk   r	   rL  s       r6   test_random_integersz#TestRandomDist.test_random_integers  sz    ++\,-- 	? 	?((bv(>>F	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?(RG "I #J( ) ) 	67+++ ++\,-- 	; 	;((6(::F	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;67S=11111s#   AAAC&&C*-C*c                     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 )Nr^  r   ii4Oi˕+iRKiriFbqire   l   K+W+y l   r&&J] l   ;	 l   nBz l   @XHT l   D+l++ rW  )r   rN   rp   r   r:   r   r7  r  rk   rl   r
   )rQ   rq   r4  r1  s       r6   test_tomaxintzTestRandomDist.test_tomaxint  s
   	**&))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]+++++r8   c           	         t          j        t                    5  t          j        t          j        d          j        t          j        d          j                  }d d d            n# 1 swxY w Y   t          j        d          j        }t          ||           t          j        t                    5  t          j	        d          j
        }t          j         |t          j        d          j                   |t          j        d          j                            }d d d            n# 1 swxY w Y   t          ||           d S )Nr-  )r   r   rg  r   rh  r:   r   r  r
   rf   r9  )rQ   r4  r1  typers       r6   test_random_integers_max_intz+TestRandomDist.test_random_integers_max_int  s    \,-- 	? 	?+BHSMM,=,.HSMM,=? ?F	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? (3--#VW%%%\,-- 	F 	FHSMM&E+EE"(3--2C,D,D,1E"(3--2C,D,DF FF	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	VW%%%%%s%   AA**A.1A.7A/D22D69D6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simplefilterrg  r   r   rh  r:   r   r  r^   s    r6   test_random_integers_deprecatedz.TestRandomDist.test_random_integers_deprecated#  s   $&& 	@ 	@!'+=>>> , 0(3--+- - -
 , 0(3--+RXc]]->@ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   B!CC	Cc                 J   t          j        | j                  }|                    d          }t	          j        ddgddgddgg          }t          ||d	           t          j        | j                  }|                                }t          ||d
         d	           d S )Nr^  rB  rC  rD  rE  rF  rG  rH  rI  rW  )r   rN   rp   r   r:   rk   r   rL  s       r6   test_random_samplez!TestRandomDist.test_random_sample1  s     ++""6**(02EF02EF/1CDF G G 	"&'2>>>> ++""$$!&'$-DDDDDDr8   c                     t          j        | j                  }|                    dd          }t	          j        g d          }t          ||           d S )Nri   )r   rh   r   rh   r   rN   rp   choicer:   rk   r	   rL  s       r6   test_choice_uniform_replacez*TestRandomDist.test_choice_uniform_replace=  sP     ++Aq!!(<<<((67+++++r8   c                     t          j        | j                  }|                    ddg d          }t	          j        g d          }t          ||           d S )Nri   )皙?r|  皙?r}  r~   )ra   ra   r   r   rx  rL  s       r6   test_choice_nonuniform_replacez-TestRandomDist.test_choice_nonuniform_replaceC  s[     ++Aq$8$8$899(<<<((67+++++r8   c                     t          j        | j                  }|                    ddd          }t	          j        g d          }t          ||           d S )Nri   rh   Freplace)r   ra   rh   rx  rL  s       r6   test_choice_uniform_noreplacez,TestRandomDist.test_choice_uniform_noreplaceI  sT     ++Aq%00(999%%67+++++r8   c                     t          j        | j                  }|                    dddg d          }t	          j        g d          }t          ||           d S )Nri   rh   F)r}  333333?r   r}  r  r~   )r   rh   ra   rx  rL  s       r6    test_choice_nonuniform_noreplacez/TestRandomDist.test_choice_nonuniform_noreplaceO  s]     ++Aq%3G3G3GHH(999%%67+++++r8   c                     t          j        | j                  }|                    g dd          }t	          j        g d          }t          ||           d S )N)rF   rG   cdri   )r  r  r  r  rx  rL  s       r6   test_choice_nonintegerz%TestRandomDist.test_choice_nonintegerU  sZ     ++000!44(///0067+++++r8   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 )NrZ   rh         @ra   r   ri   )ra   r   rh   ri   g      ?r~  )r|  r|  r   r   r   r|  rg   Fr  rb   )rZ   )rZ   ra   )ra   r   r   r  )r   ry  r   r]   )rQ   r:  s     r6   test_choice_exceptionsz%TestRandomDist.test_choice_exceptions[  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 	2r8   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            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|                                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  ra   re   r   rx   )r   rh   )r}  r}  r}  r}  r|  r   r   )rh   r   ri   r   i)r   r   rF   rG   )r   r:   isscalarr   ry  rk   emptyr   ndimitemr
   r   rV   rO   r   r]   )rQ   r~   rF   arrrR   s        r6   test_choice_return_shapez'TestRandomDist.test_choice_return_shapen  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 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8r8   c                 ~    t          j        g d          }g d}t          t          t          j        ||           d S )N)*   ra   r   )NNNr~  )r:   rk   r   r]   r   ry  )rQ   rF   r~   s      r6   test_choice_nan_probabilitiesz,TestRandomDist.test_choice_nan_probabilities  s?    HZZZ  j&-a888888r8   c           
      p   t          j        d          dz  }d|dd d<   t          j        | j                  }|                    dd|d d d                   }t          j        | j                  }|                    ddt          j        |d d d                             }t          ||           d S )Nr   rj   r  ra   r   rh   r~  )r:   onesr   rN   rp   ry  r   r	   )rQ   r~   r   r   r   s        r6   test_choice_p_non_contiguousz+TestRandomDist.test_choice_p_non_contiguous  s    GBKK!O!$Q$ ++ZZ1##A#Z//
 ++AqB$833Q3$@$@AA:v.....r8   c                     t          j        | j                  }|                    d          }d}t	          ||           d S )Nr   s
   Ui+Wf)r   rN   rp   bytesr
   rL  s       r6   
test_byteszTestRandomDist.test_bytes  s>     ++2.VW%%%%%r8   c                     d d d d d d d d d	 d
 d fD ]\}t          j        | j                  } |g d          }|                    |           |} |g d          }t	          ||           ]d S )Nc                 *    t          j        g           S r1   r:   rk   r   s    r6   <lambda>z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rx|| r8   c                     | S r1   rx   r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    q r8   c                 d    t          j        |                               t           j                  S r1   )r:   asarrayastyper  r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BG<< r8   c                 d    t          j        |                               t           j                  S r1   )r:   r  r  r   r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BJ?? r8   c                 d    t          j        |                               t           j                  S r1   )r:   r  r  	complex64r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BLAA r8   c                 Z    t          j        |                               t                    S r1   )r:   r  r  r   r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33F;; r8   c                     d | D             S )Nc                     g | ]}||fS rx   rx   .0is     r6   
<listcomp>zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    2221A222r8   rx   r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    22222 r8   c                 >    t          j        d | D                       S )Nc                     g | ]}||gS rx   rx   r  s     r6   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>      *=*=*=aAq6*=*=*=r8   )r:   r  r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz*=*=1*=*=*=>> r8   c                 8    t          j        | | g          j        S r1   )r:   vstackTr  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    ry!Q002 r8   c                     t          j        d | D             dt          fdt          fg                              t           j                  S )Nc                     g | ]}||fS rx   rx   r  s     r6   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    +>+>+>qQF+>+>+>r8   rF   rG   )r:   r  r|   r'  recarrayr  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sG    
+>+>A+>+>+>-0#Jc
+C!E !E!%bk!2!2 r8   c                 n    t          j        d | D             dt          dfdt           j        dfg          S )Nc                     g | ]}||fS rx   rx   r  s     r6   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  r  r8   rF   ra   rG   )r:   r  r   r  r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sA    rz*=*=1*=*=*=,/+>,/4+@+B C  C r8   
ra   r   rh   ri   rj   r      r  	   r   
r   ra   r  r   r   ri   rj   r  r  rh   )r   rN   rp   shuffler	   )rQ   convr   alistr4  r1  s         r6   test_shufflezTestRandomDist.test_shuffle  s     ,+ [<<??AA;;22>>224 4C CD 	0 	0D" $TY//CD77788EKKFd999::Gvw////-	0 	0r8   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   )rj   ri   rh   ra   rZ   2   c                 n    t          j        d          }t          t          t          j        |           d S )Nrh   )r:   rk   r   r\   r   r  r   s     r6   test_shuffle_invalid_objectszHTestRandomDist.test_shuffle_masked.<locals>.test_shuffle_invalid_objects  s)    A)V^Q77777r8   )r:   mamasked_valuesreshaperU   rV   copyr   r  r
   sorteddatamask)rQ   rF   rG   a_origb_origr  r  s          r6   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 	8r8   c                    t          j        | j                  }g d}|                    |          }g d}t	          ||           t          j        | j                  }t          j        g d          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	          ||           d S )Nr  r  abcdg333333?r   )
r  r   r  rj   ra   rh   ri   r  r   r   )
r   rN   rp   permutationr	   r:   
atleast_2dr  r   
IndexError)	rQ   r   r  r4  r1  arr_2d	bad_x_strbad_x_floatinteger_vals	            r6   test_permutationzTestRandomDist.test_permutation  sE    ++...''00067+++ ++===>>@((62=#9#9#;<<< ++	j&"4i@@@ ++j&"4kBBB000 ++--67+++++r8   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr}  r   r^  r   gAKč?ghA?g ҇o>gάXf+q?gS1$?g'8zX ?rH  rI  )r   rN   rp   betar:   rk   r   rL  s       r6   	test_betazTestRandomDist.test_beta  s|     ++"bv..()+BC)+BC)+BCEF F 	"&'2>>>>>>r8   c                 D   t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||           t          j        | j                  }|                    dd          }d}t          ||           d S )NgZd;Y@gv/?r^  r   %   +   r  0   .   -   )r   rN   rp   r   r:   rk   r	   rL  s       r6   test_binomialzTestRandomDist.test_binomial  s     ++gt&99(RHHH& ' ' 	67+++ ++gt,,67+++++r8   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr  r^  r   g+Q]uO@g+Q@gY7`ZqP@ge(fG@gvtR@gEIȋR@   rI  )r   rN   rp   	chisquarer:   rk   r   rL  s       r6   test_chisquarezTestRandomDist.test_chisquare  sz     ++r//(13GH13GH02FGI J J 	"&'2>>>>>>r8   c                 ,   t          j        | j                  }t          j        ddg          }|                    |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          ||d         d           d S )NI<I@EZC@r^  r   gi{s?gn,	A?g]^?gpDB?gȧ#y?gr?g1U?gѨUC?g^,%?gB?gډOoX;?gM`!O?rH  rI  HzG?缉ؗҜrW  )	r   rN   rp   r:   rk   	dirichletr   r   r]   )rQ   r   alphar4  r1  	bad_alphas         r6   test_dirichletzTestRandomDist.test_dirichlet  s8    ++.0DEFFu622(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>>> ++.0DEFFu%%!&'$-DDDDDDr8   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  ra   r   r   r   r   )
r:   rk   r
   r   r  r   r   r   r\   r   r   s     r6   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?????r8   c                 r    t          j        ddg          }t          t          t          j        |           d S )Nr  r  )r:   rk   r   r]   r   r  )rQ   r  s     r6   test_dirichlet_bad_alphaz'TestRandomDist.test_dirichlet_bad_alpha5  s1    '8,--j&"2E:::::r8   c                 L   t          j        g d          }|d d d         }t          j        | j                  }|                    |d          }t          j        | j                  }|                    t          j        |          d          }t          ||           d S )N)r  g      r  r   r^  r   )r:   rk   r   rN   rp   r  r   r   )rQ   rF   r  r   r   r   s         r6   #test_dirichlet_alpha_non_contiguousz2TestRandomDist.test_dirichlet_alpha_non_contiguous:  s    HGGGHH##A# ++]]5v]66
 ++r3E::'-  / /!*f55555r8   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Ng8EGr?r^  r   gNU?gbI0?gVU\@g:3@gU?g"qo?rH  rI  )r   rN   rp   exponentialr:   rk   r   rL  s       r6   test_exponentialzTestRandomDist.test_exponentialD  sz     ++f55(02EF02EF02EFH I I 	"&'2>>>>>>r8   c                     t          t          j        d          d           t          t          t          j        d           d S Nr   scale       )r
   r   r  r   r]   r^   s    r6   test_exponential_0z!TestRandomDist.test_exponential_0L  s>    V'a000!444j&"4C@@@@@@r8   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )N   M   r^  r   g7?g`j?g6"+?gܳ2>?gc>+Y?g_}S?rH  rI  )r   rN   rp   fr:   rk   r   rL  s       r6   test_fzTestRandomDist.test_fP  s|     ++r2F++(02EF02EF02EFH I I 	"&'2>>>>>>r8   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nrj   rh   r^  r   gԏGM8@gȌ<@g	":@gv#)@gZQ?@gr[@@   rI  )r   rN   rp   gammar:   rk   r   rL  s       r6   
test_gammazTestRandomDist.test_gammaX  s|     ++1af--(13GH13GH13GHJ K K 	"&'2>>>>>>r8   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    r6   test_gamma_0zTestRandomDist.test_gamma_0`  s@    V\333Q777j&,cEEEEEEr8   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgddgg          }t          ||           d S )	N_c97ݚ?r^  r   r  r     rj   r  )r   rN   rp   r   r:   rk   r	   rL  s       r6   test_geometriczTestRandomDist.test_geometricd  sk     ++z77(QFHG% & & 	67+++++r8   c                 R   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	          j                    5  t	          j        d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   ignore)
r   r]   r   r   rq  rr  rs  r   r:   r   r^   s    r6   test_geometric_exceptionsz(TestRandomDist.test_geometric_exceptionsl  s0   j&"2C888j&"2SEBJ???j&"2D999j&"2TFRK@@@$&& 	G 	G!(N;;;*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                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr         @r^  locr  r   gؕ?gs0 ?g#0g(xg-KD?gůp`@rH  rI  )r   rN   rp   gumbelr:   rk   r   rL  s       r6   test_gumbelzTestRandomDist.test_gumbelv  s|     ++
#FCC(02EF02FG02FGI J J 	"&'2>>>>>>r8   c                     t          t          j        d          d           t          t          t          j        d           d S r  )r
   r   r  r   r]   r^   s    r6   test_gumbel_0zTestRandomDist.test_gumbel_0~  <    V]+++Q///j&-s;;;;;;r8   c                    t          j        | j                  }|                    dddd          }t	          j        ddgddgddgg          }t          ||           |                    dd	d
d          }t	          j        g d          }t          ||           |                    dd	dd          }t	          j        g d          }t          ||           |                    d	dd
d          }t	          j        g d          }t          ||           |                    d	ddd          }t	          j        g d          }t          ||           d S )Ng333333$@g      @r
  r^  r   r   r  rj   r   rh   ri   )rh   rh   rh   rh   rH  r  )r  r  r  r  )r   r   r   r   )r   rN   rp   r   r:   rk   r	   rL  s       r6   test_hypergeometricz"TestRandomDist.test_hypergeometric  su    ++##D#r#??(RHHF$ % % 	67+++ ##Aq!!#44(<<<((67+++##B2A#66(+++,,67+++ ##Aq!!#44(<<<((67+++##Ar2A#66(<<<((67+++++r8   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r^  r  g bO?g¸?gpJm	@g{K*t	@g:^w-gY~o?rH  rI  )r   rN   rp   laplacer:   rk   r   rL  s       r6   test_laplacezTestRandomDist.test_laplace  s|     ++3VDD(02EF02EF13FGI J J 	"&'2>>>>>>r8   c                     t          t          j        d          d           t          t          t          j        d           d S r  )r
   r   r"  r   r]   r^   s    r6   test_laplace_0zTestRandomDist.test_laplace_0  s<    V^!,,,a000j&.<<<<<<r8   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r^  r  g#K-z?gJ?g92@gر[@g#+^˿g-@rH  rI  )r   rN   rp   logisticr:   rk   r   rL  s       r6   test_logisticzTestRandomDist.test_logistic  s|     ++*CfEE(02DE02EF13FGI J J 	"&'2>>>>>>r8   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r^  )meansigmar   gɁ0@go,+4FB@g)ʭ6@g5?gnxNnP@g)U@r  rI  )r   rN   rp   	lognormalr:   rk   r   rL  s       r6   test_lognormalzTestRandomDist.test_lognormal  s|     ++JcGG(13GH13FG13GHJ K K 	"&'2>>>>>>r8   c                     t          t          j        d          d           t          t          t          j        d           d S )Nr   )r+  ra   r  )r
   r   r,  r   r]   r^   s    r6   test_lognormal_0zTestRandomDist.test_lognormal_0  s>    V%A...222j&"2#>>>>>>r8   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgddgg          }t          ||           d S )Ngƀ@?r^  )r~   r   r   r   r  rh   )r   rN   rp   r   r:   rk   r	   rL  s       r6   test_logserieszTestRandomDist.test_logseries  sk     ++&99(QFGF$ % % 	67+++++r8   c                 :    t          j        d          dk    sJ d S )Nr   ra   )r   r   r^   s    r6   test_logseries_zeroz"TestRandomDist.test_logseries_zero  s$    ""a''''''r8   valuer   rZ         ?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 )Nr  invalidr   r   )r:   errstater   r   r]   r   r   rk   )rQ   r4  s     r6   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                  }|                    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   r^  r   )ri   rh   rj   ri   r   r   )rj   r   r  r   r   ra   )rh   ri   rh   r   r   ri   )r   ra   ri   rh   r   ri   )ri   ri   r   rj   r   rh   )ri   rh   ri   r   rh   ri   )r   rN   rp   r   r:   rk   r	   rL  s       r6   test_multinomialzTestRandomDist.test_multinomial  s     ++fX\??(//////1//////1//////1	2 3 3 	67+++++r8   c                    t          j        | j                  }d}ddgddgg}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          ||d           ddg}ddgddgg}t          j        t          |j        ||           t          |j        ||d           t          t          |j        ||d           t	          j        ddgddggt          j                  }t          j                    5  t          j        dt                     |                    ||           d d d            n# 1 swxY w Y   t	          j        d          }t	          j        d          }t          t          |j        ||d           t          t          |j        t	          j        d          |           t          t          |j        |t	          j        d                     t          t          |j        |t	          j        d                     d S )N)r  r   ra   r   r^  g4Vj?gy'@gI1?gSB#@ge<@g 4W(@g6R¿?g9r
v"@gс?g{#@g4xg"f"@rH  rI  gN}O6?gYMW"@r   r  )check_validraiser}  re   rp  other)r   ra   ra   rh   )r   rN   rp   multivariate_normalr:   rk   r   r   r   r   r   r   r]   r   rq  rr  rs  r}   eyer  )rQ   r   r*  covr   r4  r1  mus           r6   test_multivariate_normalz'TestRandomDist.test_multivariate_normal  s    ++1v1v((sD99(/1BC/1BCE/1CD/1BCE/1BC02CDF	G H H 	"&'2>>>> ((s33(-/?@AA!&'2>>>> 1v1v1v^S%<dCHHH 	32D#'/	1 	1 	1 	1 	j#"94")	+ 	+ 	+ 	+ hC3(+2:>>>$&& 	/ 	/!'>:::##D#...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ Xa[[fQiij#"94")	+ 	+ 	+ 	+j#"9hy))3	0 	0 	0j#"9"(6**	, 	, 	,j#"9"&))	% 	% 	% 	% 	%s   1FFFc                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||           d S )Nr   g|Pk?r^  )nr~   r   iP  iI  i|  ic  i  i  )r   rN   rp   r   r:   rk   r	   rL  s       r6   r   z%TestRandomDist.test_negative_binomial  sp     ++&&V&DD(S#J #J #J( ) ) 	67+++++r8   c                 F   t          j                    5  t          j        d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   )
rq  rr  rs  r   r   r]   r   r   r:   r   r^   s    r6   !test_negative_binomial_exceptionsz0TestRandomDist.test_negative_binomial_exceptions  s    $&& 	) 	)!(N;;;*f&>RVLLL*f&>6(R-) ) )	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   A5BBBc                    t          j        | j                  }|                    ddd          }t	          j        ddgddgdd	gg          }t          ||d
           |                    ddd          }t	          j        ddgddgddgg          }t          ||d
           t          j        | j                  }|                    ddd          }t	          j        ddgddgddgg          }t          ||d
           d S )Nrj   r^  )dfnoncr   gG7@g! ܴ*@g1}z9?@g+驸0@g26E_r#@gI!1@r
  rI  r   r   g?gTD?g?T?g+qnl?g~|D?g밬?r   g{01#@gprs'@g~;$@g"dI@g*@g}',@)r   rN   rp   noncentral_chisquarer:   rk   r   rL  s       r6   test_noncentral_chisquarez(TestRandomDist.test_noncentral_chisquare  s[    ++))QQV)DD(13GH13GH02FGI J J 	"&'2>>>>))Rbv)FF(03FG03FG.1DEG H H 	"&'2>>>> ++))QQV)DD(.0BC/1BC/1CDF G G 	"&'2>>>>>>r8   c                     t          j        | j                  }|                    dddd          }t	          j        ddgdd	gd
dgg          }t          ||d           d S )Nrj   r   ra   r^  )dfnumdfdenrM  r   g^~?g/+c?g".@g@g7?gE?r
  rI  )r   rN   rp   noncentral_fr:   rk   r   rL  s       r6   test_noncentral_fz TestRandomDist.test_noncentral_f4  s     ++!!*0 " 2 2(02EF02EF02DEG H H 	"&'2>>>>>>r8   c                     t          j        | j                   t          j        ddt          j                  }t          j        |          sJ d S )Nrj   r   )rQ  rR  rM  )r   rp   rS  r:   r   isnan)rQ   r4  s     r6   test_noncentral_f_nanz$TestRandomDist.test_noncentral_f_nan=  sI    DI$1ABFCCCxr8   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r^  r  g&&n@gOG_@g~w@gtw]տgm&5@g$>@rH  rI  )r   rN   rp   normalr:   rk   r   rL  s       r6   test_normalzTestRandomDist.test_normalB  s|     ++
#FCC(02EF.0DE02EFH I I 	"&'2>>>>>>r8   c                     t          t          j        d          d           t          t          t          j        d           d S r  )r
   r   rY  r   r]   r^   s    r6   test_normal_0zTestRandomDist.test_normal_0J  r  r8   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          j                            ||d
           d S )Nr  r^  rF   r   gWI@gԨy@gy]0Ag1~\Aga@gY
7A   )nulp)r   rN   rp   paretor:   rk   testingassert_array_almost_equal_nulprL  s       r6   test_paretozTestRandomDist.test_paretoN  s     ++jv66()+BC)+BC)+BCEF F 	
11&'1KKKKKr8   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgddgg          }t          ||           d S )Nr  r^  )lamr   r   ra   )r   rN   rp   r   r:   rk   r	   rL  s       r6   test_poissonzTestRandomDist.test_poisson]  sk     ++&99(QFFF$ % % 	67+++++r8   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          j                    5  t          j	        d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-  rZ   r   r  )r:   r   r  r   r]   r   r   rq  rr  rs  r   r   )rQ   lambiglamnegs      r6   test_poisson_exceptionsz&TestRandomDist.test_poisson_exceptionse  s?   #"j&.&999j&.6(R-@@@j&.&999j&.6(R-@@@$&& 	E 	E!(N;;;*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   7A3D77D;>D;c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr  r^  r^  g;'?gܴw*?g5?gFG?g D]?g$`?rH  rI  )r   rN   rp   powerr:   rk   r   rL  s       r6   
test_powerzTestRandomDist.test_powerq  sz     ++Zf55(02EF02EF02EFH I I 	"&'2>>>>>>r8   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r^  )r  r   g"u+@gN$MB*@g7v8B4@g55@ge&@g~ӣZ1@r
  rI  )r   rN   rp   rayleighr:   rk   r   rL  s       r6   test_rayleighzTestRandomDist.test_rayleighy  sz     ++BV44(02DE13GH13GHJ K K 	"&'2>>>>>>r8   c                     t          t          j        d          d           t          t          t          j        d           d S r  )r
   r   rp  r   r]   r^   s    r6   test_rayleigh_0zTestRandomDist.test_rayleigh_0  s<    V_1---q111j&/======r8   c                     t          j        | j                  }|                    d          }t	          j        ddgddgddgg          }t          ||d	
           d S )Nr^  r   gMoDL?g6([9grF=?gM'	- gVgVA:Qy?rH  rI  )r   rN   rp   standard_cauchyr:   rk   r   rL  s       r6   test_standard_cauchyz#TestRandomDist.test_standard_cauchy  s{     ++$$&$11(02FG02FG13FGI J J 	"&'2>>>>>>r8   c                     t          j        | j                  }|                    d          }t	          j        ddgddgddgg          }t          ||d	
           d S )Nr^  r   g܁?gc!z?g&N"@gNI@gF>?g~ME?rH  rI  )r   rN   rp   standard_exponentialr:   rk   r   rL  s       r6   test_standard_exponentialz(TestRandomDist.test_standard_exponential  s{     ++))v)66(02EF/1DE/1DEG H H 	"&'2>>>>>>r8   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nrh   r^  )r   r   g)@gľ@gd],q@gPk{@g9B#1@gv @r
  rI  )r   rN   rp   standard_gammar:   rk   r   rL  s       r6   test_standard_gammaz"TestRandomDist.test_standard_gamma  s}     ++##!&#99(02EF02EF02CDF G G 	"&'2>>>>>>r8   c                     t          t          j        d          d           t          t          t          j        d           d S )Nr   )r   r  )r
   r   r{  r   r]   r^   s    r6   test_standard_gamma_0z$TestRandomDist.test_standard_gamma_0  s>    V*333Q777j&"7sCCCCCCr8   c                     t          j        | j                  }|                    d          }t	          j        ddgddgddgg          }t          ||d	
           d S )Nr^  r   rQ  rR  rS  rT  rU  rV  rH  rI  )r   rN   rp   r   r:   rk   r   rL  s       r6   test_standard_normalz#TestRandomDist.test_standard_normal  s{     ++$$&$11(02EF.0CD.0CDF G G 	"&'2>>>>>>r8   c                     t          j        | j                  }|                                }t	          j        d          }t          ||d           d S )NrQ  rH  rI  rX  rL  s       r6   test_randn_singletonz#TestRandomDist.test_randn_singleton  sL     ++(.//!&'2>>>>>>r8   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r^  )rL  r   g\VH?ghU%gH$M?gLgVqdzǿg㖀?rH  rI  )r   rN   rp   
standard_tr:   rk   r   rL  s       r6   test_standard_tzTestRandomDist.test_standard_t  sz     ++2F33(02FG02FG13FGI J J 	"&'2>>>>>>r8   c                     t          j        | 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@r^  )leftmoderightr   g:}\)@ghرTj(@gǨL30@g6ڜA0@g6sh&@g<,@r
  rI  )r   rN   rp   
triangularr:   rk   r   rL  s       r6   test_triangularzTestRandomDist.test_triangular  s     ++TU(.   0 0(13FG13GH13FGI J J 	"&'2>>>>>>r8   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )NGz?gGz%@r^  )lowhighr   g>#H@gu@g#@g}d]#@gN@gw)* @rH  rI  )r   rN   rp   uniformr:   rk   r   rL  s       r6   test_uniformzTestRandomDist.test_uniform  s|     ++E??(02EF02EF02EFH I I 	"&'2>>>>>>r8   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   ra   g ؅W4vC)r  r  )
r:   finfor  r  r   r  r   OverflowErrorinf	nextafter)rQ   fminfmaxfuncs       r6   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Cr8   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           r1   r\   r^   s    r6   	__float__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__      r8   N)ru   rv   rw   r  rx   r8   r6   ThrowingFloatr    #                 r8   r  r5  c                       e Zd Zd ZdS )ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                     t           r1   r  r^   s    r6   __int__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__  r  r8   N)ru   rv   rw   r  rx   r8   r6   ThrowingIntegerr    r  r8   r  ra   )	r:   ndarrayrk   r'  r   r\   r   r  r   )rQ   r  throwing_floatr  throwing_ints        r6   !test_scalar_exception_propagationz0TestRandomDist.test_scalar_exception_propagation  s    	  	  	  	  	 BJ 	  	  	  #++M::i$	& 	& 	&	  	  	  	  	 bj 	  	  	  x{{''88i!6aKKKKKr8   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  p=
ף?r^  rE  kappar   gLZI@g'N"@gkr?gk=m@gډ?g^=\?rH  rI  r   rN   rp   vonmisesr:   rk   r   rL  s       r6   test_vonmiseszTestRandomDist.test_vonmises  s|     ++T??(02EF02EF02EFH I I 	"&'2>>>>>>r8   c                     t          j        | j                   t          j        ddd          }t          t	          j        |                                                     d S )Nr   gg5_PG>@B r  )r   rp   r  r   r:   isfiniter   rQ   rs     r6   test_vonmises_smallz"TestRandomDist.test_vonmises_small  sR    DIOre<<<A""$$%%%%%r8   c                     t          j        | j                  }|                    ddd          }t	          j        g d          }t          ||d           d S )Nr   g    cArh   r  )g A^>?g @R7?g x.r  rI  r  rL  s       r6   test_vonmises_largez"TestRandomDist.test_vonmises_large  sh     ++3Q77( 4 4 4 5 5 	"&'1======r8   c                     t          j        | j                   t          j        dt          j                  }t          t          j        |                     d S )Nr   )rE  r  )r   rp   r  r:   r   r   rV  r  s     r6   test_vonmises_nanz TestRandomDist.test_vonmises_nan  sF    DIOr000r8   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r^  )r*  r  r   gZ@g-g@g8
m?gVP"?g`V?gx^&3?r
  rI  )r   rN   rp   waldr:   rk   r   rL  s       r6   	test_waldzTestRandomDist.test_wald
  s|     ++t4f==(02EF02EF02EFH I I 	"&'2>>>>>>r8   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr  r^  r^  g@6?g]A?g(1ڥR?gU?g2_u?g^}-Q?rH  rI  )r   rN   rp   weibullr:   rk   r   rL  s       r6   test_weibullzTestRandomDist.test_weibull  sz     ++t&11(02EF02EF02EFH I I 	"&'2>>>>>>r8   c                     t          j        | j                   t          t          j        dd          t	          j        d                     t          t          t           j        d           d S )Nr   r  r^  r  )rF   )r   rp   r
   r  r:   r}   r   r]   r^   s    r6   test_weibull_0zTestRandomDist.test_weibull_0  sX    DIV^ab11128B<<@@@j&.C888888r8   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgddgg          }t          ||           d S )	Nr  r^  r^  B      ra   rh   r  )r   rN   rp   r   r:   rk   r	   rL  s       r6   	test_zipfzTestRandomDist.test_zipf  sk     ++Dv..(RHFG% & & 	67+++++r8   N)[ru   rv   rw   rp   rM  rO  rZ  rd  ri  rk  rn  rt  rv  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-  r/  r1  r3  r   r=  parametrizer:   r  r   r:  r=  rF  r   rJ  rO  rT  rW  rZ  r\  rd  rg  rk  rn  rq  rs  rv  ry  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rx   r8   r6   r@  r@    s<        D? ? ?? ? ?
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	>	, 	, 	,0% 0% 0%d, , ,) ) )? ? ?*? ? ?     
? ? ?< < <L L L, , ,
E 
E 
E? ? ?? ? ?> > >? ? ?? ? ?? ? ?D D D? ? ?? ? ?? ? ?? ? ?? ? ?D D D L L L,? ? ?& & &> > >  
? ? ?? ? ?9 9 9
, , , , ,r8   r@  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 S )!TestBroadcast[c                 N   dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          j        | j                  }|                    ||dz            }t          ||d           d S )Nr   ra   gl?g_x?g=*BN?rh   r
  rI  )r:   rk   r   rN   rp   r  r   )rQ   r  r  r1  r   r4  s         r6   r  zTestBroadcast.test_uniform-  s    cs( 1 1 1 2 2  ++S1Wd++!&'2>>>> ++S$(++!&'2>>>>>>r8   c                    dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             d S )Nr   ra   rZ   )g-r@gYl@g-`w?rh   r
  rI  )	r:   rk   r   rN   rp   rY  r   r   r]   rQ   r  r  	bad_scaler1  r   r4  s          r6   rZ  zTestBroadcast.test_normal<  s    cD	( 0 0 0 1 1  ++C!GU++!&'2>>>>j#*cAgyAAA ++C++!&'2>>>>j#*c9q=AAAAAr8   c                 R   dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          t          |j        ||dz             d S )	Nra   r   rZ   rb   )gnQVf?gVKB?gv`k?rh   r
  rI  )	r:   rk   r   rN   rp   r  r   r   r]   )rQ   rF   rG   bad_abad_br1  r   r4  s           r6   r  zTestBroadcast.test_betaN  s*   CC( 1 1 1 2 2  ++!a%##!&'2>>>>j#(EAIq999j#(AE5999 ++!QU##!&'2>>>>j#(E1q5999j#(Auqy99999r8   c                     dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             d S Nra   rZ   )g.UgZ?gi Prq?gEK?rh   r
  rI  )	r:   rk   r   rN   rp   r  r   r   r]   rQ   r  r  r1  r   r4  s         r6   r  zTestBroadcast.test_exponentialc  s    D	( 1 1 1 2 2  ++++!&'2>>>>j#/9q=AAAAAr8   c                     dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             d S r  )	r:   rk   r   rN   rp   r{  r   r   r]   )rQ   r   	bad_shaper1  r   r4  s         r6   r|  z!TestBroadcast.test_standard_gammao  s    D	( 1 1 1 2 2  ++##EAI..!&'2>>>>j#"4i!mDDDDDr8   c                 R   dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          t          |j        ||dz             d S )	Nra   r   rZ   rb   )g.UgZ?gi Prq?gEK?rh   r
  rI  )	r:   rk   r   rN   rp   r  r   r   r]   )rQ   r   r  r  r  r1  r   r4  s           r6   r  zTestBroadcast.test_gamma{  s*   D	D	( 0 0 0 1 1  ++519e,,!&'2>>>>j#)Y]EBBBj#)UQY	BBB ++5%!),,!&'2>>>>j#)Y	BBBj#)UIMBBBBBr8   c                 R   dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          t          |j        ||dz             d S )	Nra   r   rZ   rb   )gbyʜ?go?gT7@rh   r
  rI  )	r:   rk   r   rN   rp   r  r   r   r]   )rQ   rQ  rR  	bad_dfnum	bad_dfdenr1  r   r4  s           r6   r  zTestBroadcast.test_f  s*   D	D	( 0 0 0 1 1  ++uqy%((!&'2>>>>j#%Q>>>j#%I>>> ++ueai((!&'2>>>>j#%EAI>>>j#%	A>>>>>r8   c           
         dg}dg}dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  ||          }	t          |	|d	           t          j        t          j        |                    ||t           j	        gdz                                sJ t          t          |j        |dz  ||           t          t          |j        |dz  ||           t          t          |j        |dz  ||           t          j        | j                  }|                    ||dz  |          }	t          |	|d	           t          t          |j        ||dz  |           t          t          |j        ||dz  |           t          t          |j        ||dz  |           t          j        | j                  }|                    |||dz            }	t          |	|d	           t          t          |j        |||dz             t          t          |j        |||dz             t          t          |j        |||dz             d S )
Nr   rh   ri   r   rZ   rb   )gr^G"@g/*@gц!@r
  rI  )r:   rk   r   rN   rp   rS  r   r   rV  r   r   r]   )
rQ   rQ  rR  rM  r  r  bad_noncr1  r   r4  s
             r6   rT  zTestBroadcast.test_noncentral_f  sY   sC	D	4( 0 0 0 1 1  ++!!%!)UD99!&'2>>>>vbhs//urvhlKKLLMMMMMj#"2IM5$OOOj#"2EAIy$OOOj#"2EAIuhOOO ++!!%D99!&'2>>>>j#"2Iuqy$OOOj#"2E9q=$OOOj#"2E519hOOO ++!!%q99!&'2>>>>j#"2IudQhOOOj#"2E9dQhOOOj#"2E5(Q,OOOOOr8   c                     t          j        | j                  }t          j        ddg          }|                    dddd          }t          ||d           d S )Ngaz@gn4M;%?r   r   r   r
  rI  )r   rN   rp   r:   rk   rS  r   )rQ   r   r1  r4  s       r6   test_noncentral_f_small_dfz(TestBroadcast.test_noncentral_f_small_df  sa     ++(-/@ABB!!#sAA!66!&'2>>>>>>r8   c                     dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nra   rZ   )g~}N??g$F?g'rS?rh   r
  rI  )	r:   rk   r   rN   rp   r  r   r   r]   rQ   rL  bad_dfr1  r   r4  s         r6   r  zTestBroadcast.test_chisquare  s    S( 0 0 0 1 1  ++rAv&&!&'2>>>>j#-!<<<<<r8   c                 R   dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          t          |j        ||dz             d S )	Nra   r   rZ   rb   )g w "@g2WR@gRY@rh   r
  rI  )	r:   rk   r   rN   rp   rN  r   r   r]   )rQ   rL  rM  r  r  r1  r   r4  s           r6   rO  z'TestBroadcast.test_noncentral_chisquare  s2   Ss4( 0 0 0 1 1  ++))"q&$77!&'2>>>>j#":FQJMMMj#":BFHMMM ++))"dQh77!&'2>>>>j#":FD1HMMMj#":B1MMMMMr8   c                 F   dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             t          t          t          j        |dz             d S )Nra   rZ   )gT@g~Fl@gƚtp?rh   r
  rI  )	r:   rk   r   rN   rp   r  r   r   r]   r  s         r6   r  zTestBroadcast.test_standard_t  s    S( 0 0 0 1 1  ++Q''!&'2>>>>j#.&1*===j&"3VaZ@@@@@r8   c                    dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             d S )Nr   ra   rZ   )gW!@gOBg}?rh   r
  rI  )	r:   rk   r   rN   rp   r  r   r   r]   )rQ   rE  r  	bad_kappar1  r   r4  s          r6   r  zTestBroadcast.test_vonmises  s    SD	( 1 1 1 2 2  ++b1fe,,!&'2>>>>j#,Q	BBB ++b%!),,!&'2>>>>j#,IMBBBBBr8   c                 F   dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             t          t          t          j        |dz             d S )Nra   rZ   )g&8??geFX?gՋː?rh   r
  rI  )	r:   rk   r   rN   rp   ra  r   r   r]   rQ   rF   r  r1  r   r4  s         r6   rd  zTestBroadcast.test_pareto  s    C( 0 0 0 1 1  ++AE""!&'2>>>>j#*eai888j&-;;;;;r8   c                 F   dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             t          t          t          j        |dz             d S r  )	r:   rk   r   rN   rp   r  r   r   r]   r  s         r6   r  zTestBroadcast.test_weibull  s    C( 1 1 1 2 2  ++QU##!&'2>>>>j#+uqy999j&.%!)<<<<<r8   c                 F   dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             t          t          t          j        |dz             d S )Nra   rZ   r  rh   r
  rI  )	r:   rk   r   rN   rp   rm  r   r   r]   r  s         r6   rn  zTestBroadcast.test_power'  s    C( 1 1 1 2 2  ++1q5!!!&'2>>>>j#)UQY777j&,	:::::r8   c                    dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             d S )Nr   ra   rZ   )g:BKc?g3k?g~q?rh   r
  rI  )	r:   rk   r   rN   rp   r"  r   r   r]   r  s          r6   r#  zTestBroadcast.test_laplace4  s    cD	( 2 2 2 3 3  ++S1We,,!&'2>>>>j#+sQw	BBB ++S%!),,!&'2>>>>j#+sIMBBBBBr8   c                    dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             d S )Nr   ra   rZ   )g'Zy?gdSO=?g3L1?rh   r
  rI  )	r:   rk   r   rN   rp   r  r   r   r]   r  s          r6   r  zTestBroadcast.test_gumbelF  s    cD	( 1 1 1 2 2  ++C!GU++!&'2>>>>j#*cAgyAAA ++C++!&'2>>>>j#*c9q=AAAAAr8   c                    dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          |                    dd	          d           d S )
Nr   ra   rZ   )gy?gJR?g
~&?rh   r
  rI  r5  r   )
r:   rk   r   rN   rp   r'  r   r   r]   r
   r  s          r6   r(  zTestBroadcast.test_logisticX  s   cD	( 2 2 2 3 3  ++cAgu--!&'2>>>>j#,aCCC ++c519--!&'2>>>>j#,Y]CCCS\\#s++S11111r8   c                 `   dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          t          j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          t          t          j        ||dz             d S )Nr   ra   rZ   )gH"@gܮ @gvv	:@rh   r
  rI  )	r:   rk   r   rN   rp   r,  r   r   r]   )rQ   r*  r+  	bad_sigmar1  r   r4  s          r6   r-  zTestBroadcast.test_lognormalk  s%   sD	( 0 0 0 1 1  ++tax//!&'2>>>>j#-9EEEj&"2D1HiHHH ++tUQY//!&'2>>>>j#-y1}EEEj&"2D)a-HHHHHr8   c                     dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nra   rZ   )gݱlo?g/ӂ?gz~R?rh   r
  rI  )	r:   rk   r   rN   rp   rp  r   r   r]   r  s         r6   rq  zTestBroadcast.test_rayleigh  s    D	( 0 0 0 1 1  ++eai((!&'2>>>>j#,	A>>>>>r8   c                 R   dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          |j        |dz  |           t          t          t          j        |dz  |           t          t          t          j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          t          |j        ||dz             t          t          |j        d	d           t          t          |j        dd	           d S )
Nr   ra   r   rb   )g@m e?g`I߿?g|2?rh   r
  rI  r   )	r:   rk   r   rN   rp   r  r   r   r]   )rQ   r*  r  bad_meanr  r1  r   r4  s           r6   r  zTestBroadcast.test_wald  s   u3D	( 0 0 0 1 1  ++$(E**!&'2>>>>j#(HqL%@@@j#(D1Hi@@@j&+x!|UCCCj&+taxCCC ++$	**!&'2>>>>j#(Heai@@@j#(D)a-@@@j#(C333j#(C55555r8   c                    dg}dg}dg}dg}dg}|dz  \  }}t          j        g d          }t          j        | j                  }	|	                    |dz  ||          }
t          |
|d           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          j        | j                  }	|	                    ||dz  |          }
t          |
|d           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          j        | j                  }	|	                    |||dz            }
t          |
|d           t          t          |	j        |||dz             t          t          |	j        |||dz             t          t          |	j        |||dz             t          t          |	j        dd	d
           t          t          |	j        ddd
           t          t          |	j        ddd           d S )Nra   rh   r   ri   )g,P;bD @g%G @g,~S @r
  rI  r   r   g      4@g      9@)	r:   rk   r   rN   rp   r  r   r   r]   )rQ   r  r  r  bad_left_onebad_mode_onebad_left_twobad_mode_twor1  r   r4  s              r6   r  zTestBroadcast.test_triangular  s~   ssss%*QY"l( 0 0 0 1 1  ++q$66!&'2>>>>j#.,2BD%PPPj#.$(L%PPPj#.,2BL	 	 	  ++dQh66!&'2>>>>j#.,q%PPPj#.$q8H%PPPj#.,q@P	 	 	  ++dEAI66!&'2>>>>j#.,eaiPPPj#.$eaiPPPj#.,ai	! 	! 	! 	j#.#r3???j#.#sC@@@j#.#sC@@@@@r8   c                    dg}dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||           t          t          |j        |dz  |           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||           t          t          |j        ||dz             t          t          |j        ||dz             t          t          |j        ||dz             d S )Nra   r   rZ         ?ra   ra   ra   rh   )	r:   rk   r   rN   rp   r   r	   r   r]   	rQ   rH  r~   bad_n	bad_p_one	bad_p_twor1  r   r4  s	            r6   r  zTestBroadcast.test_binomial  sL   CED	E	(999%% ++a!eQ''67+++j#,	1===j#,AyAAAj#,AyAAA ++aQ''67+++j#,q1u===j#,9q=AAAj#,9q=AAAAAr8   c                    dg}dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||           t          t          |j        |dz  |           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||           t          t          |j        ||dz             t          t          |j        ||dz             t          t          |j        ||dz             d S )Nra   r   rZ   r  )ra   r   ra   rh   )	r:   rk   r   rN   rp   r   r	   r   r]   r  s	            r6   r   z$TestBroadcast.test_negative_binomial  sV   CED	E	(999%% ++&&q1ua0067+++j#"7AFFFj#"7Q	JJJj#"7Q	JJJ ++&&q!a%0067+++j#"7AFFFj#"7IMJJJj#"7IMJJJJJr8   c                 t   t          j                    j        }dg}dg}|dz  g}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||           t          t          |j        |dz             t          t          |j        |dz             d S )Nra   rZ   r   )ra   ra   r   rh   )
r   rN   _poisson_lam_maxr:   rk   rp   r   r	   r   r]   )rQ   max_lamrf  bad_lam_onebad_lam_twor1  r   r4  s           r6   rg  zTestBroadcast.test_poisson  s    $&&7cd{m(999%% ++S1W%%67+++j#+{Q???j#+{Q?????r8   c                    dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||           t          t          |j        |dz             t          j	        d          5  t          t          |j        t           j
                   t          t          |j        ddt           j
        g           d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   ra   rh   r  r7  )r:   rk   r   rN   rp   r   r	   r   r]   r9  r   r  s         r6   r  zTestBroadcast.test_zipf  s-   C(999%% ++!a%67+++j#(EAI666[*** 	@ 	@*ch777*chArv???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   AC,,C03C0c                 >   dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||           t          t          |j        |dz             t          t          |j        |dz             d S )Nr   rZ   r  r   rh   )	r:   rk   r   rN   rp   r   r	   r   r]   rQ   r~   r   r  r1  r   r4  s          r6   r  zTestBroadcast.test_geometric  s    ED	E	(999%% ++q1u%%67+++j#-Q???j#-Q?????r8   c                    dg}dg}dg}dg}dg}dg}dg}t          j        g d          }t          j        | j                  }	|	                    |dz  ||          }
t          |
|           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          j        | j                  }	|	                    ||dz  |          }
t          |
|           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          j        | j                  }	|	                    |||dz            }
t          |
|           t          t          |	j        |||dz             t          t          |	j        |||dz             t          t          |	j        |||dz             t          t          |	j        |||dz             t          t          |	j        dd	d
           t          t          |	j        d	dd
           t          t          |	j        d	d	d           t          t          |	j        d	d	d           d S )Nra   r   rZ   rb   r   ri   r  rh   r   r      )	r:   rk   r   rN   rp   r   r	   r   r]   )rQ   ngoodnbadnsample	bad_ngoodbad_nbadbad_nsample_onebad_nsample_twor1  r   r4  s              r6   r   z!TestBroadcast.test_hypergeometric  s   s#D	4##(999%% ++##EAItW==67+++j#"4i!mT7SSSj#"4eai7SSSj#"4eaiWWWj#"4eaiWWW ++##E4!8W==67+++j#"4i7SSSj#"4eX\7SSSj#"4eTAXWWWj#"4eTAXWWW ++##E41==67+++j#"4iwQR{SSSj#"4eXwQR{SSSj#"4eT?UVCVWWWj#"4eT?UVCVWWWj#"4b"bAAAj#"4b"bAAAj#"4b"a@@@j#"4b"bAAAAAr8   c                 >   dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||           t          t          |j        |dz             t          t          |j        |dz             d S )Nr   r   rZ   r  rh   )	r:   rk   r   rN   rp   r   r	   r   r]   r
  s          r6   r1  zTestBroadcast.test_logseriesE  s    EC	D	(999%% ++q1u%%67+++j#-Q???j#-Q?????r8   N)"ru   rv   rw   rp   r  rZ  r  r  r|  r  r  rT  r  r  rO  r  r  rd  r  rn  r#  r  r(  r-  rq  r  r  r  r   rg  r  r  r   r1  rx   r8   r6   r  r  (  s        D? ? ?B B B$: : :*
B 
B 
B
E 
E 
EC C C*? ? ?* P  P  PD? ? ?
= 
= 
=N N N*A A AC C C$< < <= = =; ; ;C C C$B B B$2 2 2&I I I(
? 
? 
?6 6 62%A %A %ANB B B,K K K,@ @ @@ @ @
@ 
@ 
@%B %B %BN
@ 
@ 
@ 
@ 
@r8   r  zcan't start threadr.  c                   <    e Zd Z ed          Zd Zd Zd Zd ZdS )
TestThreadri   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   rN   )r  rR   or  functions      r6   r  z-TestThread.check_function.<locals>.<listcomp>^  sL     0 0 0A V86+=a+@+@!*DEEE 0 0 0r8   c                 6    g | ]}|                                 S rx   )startr  r   s     r6   r  z-TestThread.check_function.<locals>.<listcomp>`  s     qr8   c                 6    g | ]}|                                 S rx   )joinr   s     r6   r  z-TestThread.check_function.<locals>.<listcomp>a  s     ar8   ri   win32)	threadingr  r:   r  lenseedszipr   rN   intprf   itemsizer"  platformr   r	   )	rQ   r  szout1out2trR   r  r  s	    `      @r6   check_functionzTestThread.check_functionW  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*****r8   c                 :    d }|                      |d           d S )Nc                 8    |                      d          |d<   d S )N'  r   .)rY  rA   outs     r6   
gen_randomz*TestThread.test_normal.<locals>.gen_randomn  s    |||//CHHHr8   )r2  r+  r/  rQ   r5  s     r6   rZ  zTestThread.test_normalm  s2    	0 	0 	0 	J844444r8   c                 :    d }|                      |d           d S )Nc                 \    |                      t          j        d                    |d<   d S )Nr   rL   r   .)r  r:   r  r3  s     r6   r5  z'TestThread.test_exp.<locals>.gen_randomt  s*    ((rw{/C/C(DDCHHHr8   r;  r6  r7  r8  s     r6   test_expzTestThread.test_exps  s5    	E 	E 	E 	J;77777r8   c                 :    d }|                      |d           d S )Nc                 D    |                      ddgdz  d          |d<   d S )Nr   r<  r   r2  r   .)r   r3  s     r6   r5  z/TestThread.test_multinomial.<locals>.gen_randomz  s*    ((fX\(FFCHHHr8   )r2  r   r6  r7  r8  s     r6   r=  zTestThread.test_multinomialy  s5    	G 	G 	G 	J:66666r8   N)	ru   rv   rw   rU   r&  r/  rZ  r<  r=  rx   r8   r6   r  r  R  s_         E!HHE+ + +,5 5 58 8 87 7 7 7 7r8   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fS )Nr   rh   ri   r  r  r^   s    r6   _create_arraysz&TestSingleEltArrayInput._create_arrays  s/    x}}bhsmmRXqc]]D@@r8   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 ]E}||v r |t          j        dg                    }n ||          }t!          |j        |           Fd S r   )rB  r   r  r{  r  r  ra  r  rm  rp  r   r   r   r   r:   rk   r
   r   )rQ   argOner   tgtShapefuncs	probfuncsr  r4  s           r6   test_one_arg_funcsz*TestSingleEltArrayInput.test_one_arg_funcs  s    !%!4!4!6!61h#V%:!6#4v!6#35 %v'78	 	. 	.Dy  d28SE??++ d6llH----	. 	.r8   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|} |||          }t%          |j        |            ||d         |          }t%          |j        |            |||d                   }t%          |j        |           d S )Nr   r   )rB  r   r  rY  r  r  r  rN  r  r"  r  r'  r,  r  r   r   r:   rk   r
   r   )	rQ   rD  argTwor   rE  rF  rG  r  r4  s	            r6   test_two_arg_funcsz*TestSingleEltArrayInput.test_two_arg_funcs  s&   &*&9&9&;&;#8fl66&.!6;&":< _f&>?	 	. 	.Dy  3%  $vv&&CH---$vay&))CH---$vvay))CH----	. 	.r8   c                 l   |                                  \  }}}}t          j        t          j        t          j        g}|D ]t} ||||          }t          |j        |            ||d         ||          }t          |j        |            |||d         |          }t          |j        |           ud S Nr   )rB  r   rS  r  r   r
   r   )rQ   rD  rJ  argThreerE  rF  r  r4  s           r6   test_three_arg_funcsz,TestSingleEltArrayInput.test_three_arg_funcs  s    -1-@-@-B-B*($f&7&(  	. 	.D$vvx00CH---$vay&(33CH---$vvay(33CH----	. 	.r8   N)ru   rv   rw   rB  rH  rK  rO  rx   r8   r6   r@  r@    sS        A A A. . .(. . .8. . . . .r8   r@  c                     t          j        d           | \  }}}t          t           |          } ||ddi}t          |j        t          j        d          k               d S )Nr  r   r   r-  )r   rp   getattrr   rf   r:   )r7   fnamer  r&  r  r4  s         r6   test_integer_dtyperS    sd    
K	"E4AQ1FFLBHSMM)*****r8   c                 ^   t          j        d          }| \  }}}t          ||          } ||ddi}t          j        dk    r|                                }t          j        |                    t          j
                                                            }t          ||k               d S )Nr  r   r  r!  )r   rN   rQ  r"  r#  r$  r%  r&  r'  r:   r  r(  r   )r7   r   rR  r  r&  r  r*  r+  s           r6   test_integer_repeatrU    s    

Y
'
'C"E4UA
!T
 
 
 C
}  llnn
."'**
+
+
5
5
7
7CC6Mr8   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 )Nra   r  gffffff?)r   ra   r   r   )r   r   r]   r   r   rx   r8   r6   test_broadcast_size_errorrW    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   ra   r   )r   Fr   r@   rA   rB   rC   rD   rE   )r:   r   rN   r   r   
__reduce__	__class__ru   r   r   r
   r	   )rq   ctorr  state_arG   state_bs         r6   &test_randomstate_ctor_old_style_pickler^    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4r8   z0np.random.set_bit_generator affects global statec                 H   t           j                            d          }|j        }t           j                            |           t          t           j        j        j        j        t          |                    sJ t           j        
                                }||u sJ d S rM  )r:   r   default_rngr@   r<   r   mtrand_rand_bit_generatorr9  r;   )r>   def_bgbg	second_bgs       r6   test_hot_swaprg    s     Y""1%%F		BI###bi&,;T"XXFFFFF	++--I??????r8   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   ra   r@   r   rA   inc)r   r:   r   r<   r   rp   print)r>   re  rA   r   s       r6   test_seed_alt_bit_genrk    s     
qBI###Iu--EINN1	##5#11I	%LLL	)!W,,,,>'"i&8&AAAAA>% Ig$6u$=======r8   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>   rA   re  s      r6   test_state_error_alt_bit_genrm    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   rA   ri  )	r:   r   rp   rO   r   rA   r<   r   r   )r>   r  re  rA   state_directfieldpcg_valsr   s           r6   test_swap_workedrt    s;    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Ar8   c                 F   t           j                            t          d                     t           j                            ddd          }t           j                            t          d                    }|                    ddd          }t          ||           d S )Nro  r   rp  r   )r:   r   r<   r   rO   rN   r
   )r>   singleton_valsrgnon_singleton_valss       r6   %test_swapped_singleton_against_directry  -  s    Ie---Y&&q'266N			uU||	,	,BAw33#^44444r8   )2r%  r   r"  rq  r   numpyr:   r   numpy.randomr   r   numpy.testingr   r   r   r	   r
   r   r   r  r3   r   r7  r  r4   fixturer7   r>   rH   rJ   rz   r   r   r   r@  r  r=  r>  r  r@  rS  rU  rW  r^  thread_unsaferg  rk  rm  rt  ry  rx   r8   r6   <module>r     s     



             ' ' ' ' ' ' ' '                  &+c!12"+ 	 28BG5  ,n,n,n,n,n,n,n,n OO -o,n,n,n,n,n,n,n O hy111, , 21,
 - - -) ) ),? ,? ,? ,? ,? ,? ,? ,?^> > > > > > > >6. 6. 6. 6. 6. 6. 6. 6.r[E [E [E [E [E [E [E [E|e+ e+ e+ e+ e+ e+ e+ e+P\, \, \, \, \, \, \, \,~g@ g@ g@ g@ g@ g@ g@ g@T G$899*7 *7 *7 *7 *7 *7 *7 :9*7\A. A. A. A. A. A. A. A.J+ + +  9 9 95 5 5$ "TUU  VU "TUU> > VU> "TUU# # VU# "TUUB B VUB$ "TUU5 5 VU5 5 5r8   