
    G/Ph                       d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZ d dlZ G d d          Z G d d          Z G d d	          Z G d
 d          Z G d d          Z G d d          Z G d d          Zej                            ed           G d d                      Z G d d          ZdS )    N)	assert_assert_raisesassert_equalassert_warnsassert_no_warningsassert_array_equalassert_array_almost_equalsuppress_warningsIS_WASM)randomc                   ,    e 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  )npr   RandomStater   randintselfss     ^/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/random/tests/test_random.pytest_scalarzTestSeed.test_scalar   sf    I!!!$$QYYt__c***I!!*--QYYt__c*****    c                 X   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 )N
   r   i  r   i  r   i	  )r   r   r   ranger   r   aranger   s     r   
test_arrayzTestSeed.test_array   s    I!!%)),,QYYt__c***I!!")B--00QYYt__c***I!!1#&&QYYt__c***I!!:,//QYYt__c*****r   c                     t          t          t          j        j        d           t          t
          t          j        j        d           d S )N      r   	TypeErrorr   r   r   
ValueErrorr   s    r   test_invalid_scalarzTestSeed.test_invalid_scalar    s6    i!6===j")"7<<<<<r   c                    t          t          t          j        j        dg           t          t
          t          j        j        dg           t          t
          t          j        j        dg           t          t
          t          j        j        g d           t          t
          t          j        j        g d           d S )Nr!   r"           )      r)   )r*   r)   r#   r&   s    r   test_invalid_arrayzTestSeed.test_invalid_array%   s    i!6???j")"7">>>j")"7*FFFj")"79K9K9KLLLj")"79L9L9LMMMMMr   c                 2   t          t          t          j        j        t          j        g t          j                             t          t          t          j        j        g dg           t          t          t          j        j        g dg dg           d S )Ndtyper*   r+      )         )r   r%   r   r   r   arrayint64r&   s    r   test_invalid_array_shapez!TestSeed.test_invalid_array_shape-   s    j")"7hr222	4 	4 	4j")"7)))EEEj")"7))):C)):E 	F 	F 	F 	F 	Fr   N)__name__
__module____qualname__r   r   r'   r-   r8    r   r   r   r      sg        + + ++ + += = =
N N NF F F F Fr   r   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+   intr/   )r         ?r*   r   )r   zerosr   r   binomialr   )r   rB   ps      r   test_n_zerozTestBinomial.test_n_zero7   ss     %((( 	A 	AAFOAq))Q.///vua88%@@@@	A 	Ar   c                 \    t          t          t          j        dt          j                   d S )Nr*   )r   r%   r   rC   r   nanr&   s    r   test_p_is_nanzTestBinomial.test_p_is_nan@   s     j&/1bf=====r   N)r9   r:   r;   rE   rH   r<   r   r   r>   r>   6   s5        A A A> > > > >r   r>   c                   ,    e 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 )Nd   皙?皙?r   multinomialr&   s    r   
test_basiczTestMultinomial.test_basicF   s    3c
+++++r   c                 4    t          j        dg d           d S )NrL   )rM   rN           rS   rS   rO   r&   s    r   test_zero_probabilityz%TestMultinomial.test_zero_probabilityI   s"    3 9 9 9:::::r   c                 &   t          dt          j        dd          cxk    odk     nc            t          j        ddd          }t          t          j        d|k                         t          t          j        |dk                          d S )Nr"   r4   )r   r   r   r   all)r   xs     r   test_int_negative_intervalz*TestMultinomial.test_int_negative_intervalL   s    fnR,,1111r1111222N2r1%%rQw   q2vr   c           	      z   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        j        d|t          d                     d S )NrA   r*   r*   r+   r+   r+   r+   r+   r+   r+   )
r   r   r   rP   uint32shaper6   r   r$   floatr   rD   s     r   	test_sizezTestMultinomial.test_sizeR   sV   #JRY**1a1>>DfMMMRY**1a1>>DfMMMRY**1a1>>DfMMMRY**1a!Q88>	JJJRY**1a88>	JJJRY**1a&1A1ABBH	  	  	  	i!61Ahh	  	  	  	  	 r   c           
         t          t          t          j        j        dddgg           t          t          t          j        j        ddgdgg           t          t          t          j        j        ddgdggdgdggg           t          t          t          j        j        dt          j        ddgddgg                     d S )Nr   r   r*   )r   r%   r   r   rP   r6   r&   s    r   test_multidimensional_pvalsz+TestMultinomial.test_multidimensional_pvals`   s    j")"7q!fXFFFj")"7qcA3ZHHHj")"7sQCjA3QRPS*=UVVVj")"7RX1vPQSTvFV=W=WXXXXXr   N)r9   r:   r;   rQ   rT   rY   rb   rd   r<   r   r   rJ   rJ   E   sd        , , ,; ; ;          Y Y Y Y Yr   rJ   c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestSetStatec                     d| _         t          j        | j                   | _        | j                                        | _        d S NiI)seedr   r   prng	get_statestater&   s    r   setup_methodzTestSetState.setup_methodh   s6    	&ty11	Y((**


r   c                     | j                             d          }| j                             | j                   | j                             d          }t	          t          j        ||k                         d S )N   )rj   tomaxint	set_staterl   r   r   rW   r   oldnews      r   rQ   zTestSetState.test_basicm   sf    i  $$	DJ'''i  $$scz""#####r   c                     | j                             d          }| j                             | j                   | j                             d          }t	          t          j        ||k                         d S Nr2   size)rj   standard_normalrq   rl   r   r   rW   rr   s      r   test_gaussian_resetz TestSetState.test_gaussian_resets   sl    i''Q'//	DJ'''i''Q'//scz""#####r   c                 T   | j                                          | j                                         }| j                             d          }| j                             |           | j                             d          }t	          t          j        ||k                         d S rv   )rj   ry   rk   rq   r   r   rW   )r   rl   rs   rt   s       r    test_gaussian_reset_in_media_resz-TestSetState.test_gaussian_reset_in_media_resz   s     		!!###	##%%i''Q'//	E"""i''Q'//scz""#####r   c                    | j         d d         }| j                            d          }| j                            |           | j                            d          }| j                            | j                    | j                            d          }t	          t          j        ||k                         t	          t          j        ||k                         d S )Nr,   ro   rw   )rl   rj   ry   rq   r   r   rW   )r   	old_statex1x2x3s        r   test_backwards_compatibilityz)TestSetState.test_backwards_compatibility   s     JssO	Y&&B&//	I&&&Y&&B&//	DJ'''Y&&B&//rRx  !!!rRx  !!!!!r   c                 <    | j                             dd           d S NrA   )rj   negative_binomialr&   s    r   test_negative_binomialz#TestSetState.test_negative_binomial   s"     		##C-----r   c                     t          j        t                    5  | j                            d           d d d            d S # 1 swxY w Y   d S )Nr<   )pytestraises
IndexErrorrj   rq   r&   s    r   test_set_invalid_statez#TestSetState.test_set_invalid_state   s    ]:&& 	$ 	$I###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   AA	AN)
r9   r:   r;   rm   rQ   rz   r|   r   r   r   r<   r   r   rf   rf   g   s}        + + +
$ $ $$ $ $	$ 	$ 	$
" 
" 
". . .
$ $ $ $ $r   rf   c            	           e Zd Zej        j        Zej        ej        ej	        ej
        ej        ej        ej        ej        ej        g	Zd Zd Zd Zd Zd Zd Zd Zd Zd	S )
TestRandintc                 J    t          t          | j        dt                     d S Nr*   r/   )r   r$   rfuncr`   r&   s    r   test_unsupported_typez!TestRandint.test_unsupported_type   s!    iQe<<<<<<r   c                    | j         D ]}|t          j        u rdnt          j        |          j        }|t          j        u rdnt          j        |          j        dz   }t          t          | j        |dz
  ||           t          t          | j        ||dz   |           t          t          | j        |||           t          t          | j        dd|           d S )Nr   r+   r*   r/   )	ityper   booliinfominmaxr   r%   r   )r   dtlbndubnds       r   test_bounds_checkingz TestRandint.test_bounds_checking   s    * 	B 	BBbg1128B<<+;Dbg1128B<<+;a+?D*dj$(DKKKK*dj$qKKKK*dj$BGGGG*dj!QbAAAAA	B 	Br   c           	         | j         D ]}|t          j        u rdnt          j        |          j        }|t          j        u rdnt          j        |          j        dz   }|dz
  }t          |                     ||dz   d|          |           |}t          |                     ||dz   d|          |           ||z   dz  }t          |                     ||dz   d|          |           d S )Nr   r+   r*   r   rx   r0   )r   r   r   r   r   r   r   r   )r   r   r   r   tgts        r   test_rng_zero_and_extremesz&TestRandint.test_rng_zero_and_extremes   s    * 	M 	MBbg1128B<<+;Dbg1128B<<+;a+?D(CCqt2FFLLLCCqt2FFLLL$;"CCqt2FFLLLL	M 	Mr   c                 X   | j         D ]}|t          j        u rdnt          j        |          j        }|t          j        u rdnt          j        |          j        dz   }	 |                     |||           q# t          $ r$}t          dt          |          z            d }~ww xY wd S )Nr   r+   r*   r/   zMNo error should have been raised, but one was with the following message:

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

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

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

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

Q

a     r   c           
         dd l }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          |t          j        |          j                 |k               t          j                            d	           |                     dddt                     
                    t          j                  }|	                    |                                          }t          |t          j        t                     j                 |k               d S )Nr   @509aea74d792fb931784c4b0135392c65aec64beee12b0cc167548a2c3d31e71@7b07f1a920e46f6d0fe02314155a2330bcfd7635e708da50e536c5ebb631a7d4@e577bfed6c935de944424667e3da285012e741892dcb7051a8f1ce68ab05c92f@0fbead0b06759df2cfb55e43148822d4a1ff953c7eb19a5b08445a63bb64fa9e@001aac3a5acb935a9b186cbe14a1ca064b8bb2dd0b045d48abeacf74d0203404)	r   int16int32r7   int8uint16r^   uint64uint8r*   i  littler5   r   r   r+   )hashlibr   r   r   ri   sys	byteorderr   byteswapsha256viewr   	hexdigestr   r0   namer   )r   r   r   r   valress         r   test_repeatabilityzTestRandint.test_repeatability   s    ZZZZY[[[Z\ \ *QRR. 
	3 
	3BINN4    }((jjADj;;jjADj;;DDFF.."'!2!233==??CC)*c12222 		tjjADj55::27CCnnS!!++--BHTNN'(C/00000r   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   r7   r   r   r   r   r   r   )r   r   r   r   r   actuals         r   test_int64_uint64_corner_casez)TestRandint.test_int64_uint64_corner_case   s     Xhrx  $x**.//y"(++/!344 ""4R"88VS!!!!!r   c                    | j         D ]}|t          j        u rdnt          j        |          j        }|t          j        u rdnt          j        |          j        dz   }|                     |||          }t          |j        t          j        |                     t          t          fD ]}|t          u rdnt          j        d          j        }|t          u rdnt          j        d          j        dz   }|                     |||          }t          t          |d                      t          t          |          |           d S )Nr   r+   r*   r/   longr0   )r   r   r   r   r   r   r   r   r0   r@   r   hasattrtype)r   r   r   r   samples        r   test_respect_dtype_singletonz(TestRandint.test_respect_dtype_singleton  s3   * 	5 	5Bbg1128B<<+;Dbg1128B<<+;a+?DZZd"Z55Frx||4444+ 	+ 	+Bd

11(8(8(<Dd

11(8(8(<q(@D ZZd"Z55F000111fr****	+ 	+r   N)r9   r:   r;   r   r   r   r   r   r   r   r   r   r   r^   r7   r   r   r   r   r   r   r   r   r   r   r<   r   r   r   r      s        IE Wbgrx29Xry"(BI7E= = =B B BM M M@ @ @! ! !1 1 1B" " ".+ + + + +r   r   c                   f   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ej                            dej        ej                                        ej                                        g          d             Zej                            dej        ej                                        ej                                        g          ej                            dddg          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, Z1d- Z2d. Z3d/ Z4d0 Z5d1 Z6d2 Z7d3 Z8d4 Z9d5 Z:d6 Z;d7 Z<d8 Z=d9 Z>d: Z?d; Z@d< ZAd= ZBd> ZCd? ZDd@ ZEdA ZFdB ZGdC ZHdD ZIdE ZJdF ZKdG ZLdH ZMdI ZNdJ ZOdK ZPdL ZQdM ZRdNS )OTestRandomDistc                     d| _         d S rh   ri   r&   s    r   rm   zTestRandomDist.setup_method+  s    			r   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgddgg          }t          ||d	
           d S )Nr2   r+   _\*?琛?<p?,o?H?Z?   decimal)r   r   ri   randr6   r	   r   r   desireds      r   	test_randzTestRandomDist.test_rand.  s~    
	ty!!!1%%(02EF02EF/1CDF G G 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgddgg          }t          ||d	
           d S )Nr2   r+   !<Oq?4u,?3?LI/DͿ@? @HS\@r   r   )r   r   ri   randnr6   r	   r   s      r   
test_randnzTestRandomDist.test_randn6  s~    
	ty!!!A&&(02EF-/BC-/BCE F F 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||           d S )Nc   r2   r+   rw      r2   )   )r   r   ri   r   r6   r   r   s      r   test_randintzTestRandomDist.test_randint>  sv    
	ty!!!""3"88(RG "I #J( ) ) 	67+++++r   c                    t           j                            | j                   t                      5 }|                    t
                    }t           j                            ddd          }t          t          |          dk               d d d            n# 1 swxY w Y   t          j	        ddgdd	gd
dgg          }t          ||           d S )Nr   r   r   rw   r*   r   r2   r   r   r   r   )r   r   ri   r
   recordDeprecationWarningrandom_integersr   lenr6   r   r   supwr   r   s        r   test_random_integersz#TestRandomDist.test_random_integersF  s    
	ty!!!   	!C

-..AY..sBV.DDFCFFaK   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! (RG "I #J( ) ) 	67+++++s   ABB #B c                    t                      5 }|                    t                    }t          j                            t          j        d          j        t          j        d          j                  }t          t          |          dk               d d d            n# 1 swxY w Y   t          j        d          j        }t          ||           d S )Nlr*   )r
   r   r   r   r   r   r   r   r   r   r   r   s        r   test_random_integers_max_intz+TestRandomDist.test_random_integers_max_intQ  s        	!C

-..AY..rx}}/@/1x}}/@B BFCFFaK   		! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! (3--#VW%%%%%s   B	B$$B(+B(c           	         t          j                    5  t          j        dt                     t	          t          t
          j        j        t          j        d          j	                   t	          t          t
          j        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simplefilterr   r   r   r   r   r   r   r&   s    r   test_random_integers_deprecatedz.TestRandomDist.test_random_integers_deprecated`  s   $&& 	@ 	@!'+=>>> ,)3(3--+- - -
 ,)3(3--+RXc]]->@ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   B+CCCc                     t           j                            | j                   t           j                            d          }t          j        ddgddgddgg          }t	          ||d	           d S )
Nr   r   r   r   r   r   r   r   r   )r   r   ri   r6   r	   r   s      r   test_randomzTestRandomDist.test_randomn  s~    
	ty!!!!!&))(02EF02EF/1CDF G G 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            dd          }t          j        g d          }t          ||           d S )Nr3   )r+   r2   r+   r2   r   r   ri   choicer6   r   r   s      r   test_choice_uniform_replacez*TestRandomDist.test_choice_uniform_replacev  sX    
	ty!!!!!!Q''(<<<((67+++++r   c                     t           j                            | j                   t           j                            ddg d          }t          j        g d          }t          ||           d S )Nr3   )皙?r	  皙?r
  rD   )r*   r*   r+   r+   r  r   s      r   test_choice_nonuniform_replacez-TestRandomDist.test_choice_nonuniform_replace|  sd    
	ty!!!!!!Q*>*>*>!??(<<<((67+++++r   c                     t           j                            | j                   t           j                            ddd          }t          j        g d          }t          ||           d S )Nr3   r2   Freplace)r   r*   r2   r  r   s      r   test_choice_uniform_noreplacez,TestRandomDist.test_choice_uniform_noreplace  s]    
	ty!!!!!!Q!66(999%%67+++++r   c                     t           j                            | j                   t           j                            dddg d          }t          j        g d          }t          ||           d S )Nr3   r2   F)r
  g333333?rA   r
  r  rD   )r+   r2   r*   r  r   s      r    test_choice_nonuniform_noreplacez/TestRandomDist.test_choice_nonuniform_noreplace  sl    
	ty!!!!!!Q$8$8$8 " : :(999%%67+++++r   c                     t           j                            | j                   t           j                            g dd          }t          j        g d          }t          ||           d S )N)abcdr3   )r  r  r  r  r  r   s      r   test_choice_nonintegerz%TestRandomDist.test_choice_noninteger  sb    
	ty!!!!!"6"6"6::(///0067+++++r   c           	         t           j        j        }t          t          |dd           t          t          |dd           t          t          |ddgddggd           t          t          |g d           t          t          |g ddddgddgg	           t          t          |ddgdg d
	           t          t          |ddgdddg	           t          t          |ddgdddg	           t          t          |g ddd           t          t          |g ddd           t          t          |g ddd           t          t          |g ddd           t          t          |g dddg d           d S )Nr"   r2   g      @r*   r+   r3   )r*   r+   r2   r3   g      ?r  )r	  r	  rM   g?gr	  r1   Fr  r,   )r"   )r"   r*   )r*   r   r   r  )r   r   r  r   r%   )r   r   s     r   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 	2r   c           
         ddg}t          t          j        t          j                            dd                               t          t          j        t          j                            dd                               t          t          j        t          j                            dd|                               t          t          j        t          j                            dd|                               t          t          j        t          j                            ddgd                               t          t          j                            d gd          d u            t          j        ddg          }t          j        dt          	          }||d
<   t          t          j                            |d          |u            t                      }t          t          j        t          j                            d|d                                t          t          j        t          j                            d|d                                t          t          j        t          j                            d|d|                                t          t          j        t          j                            d|d|                                t          t          j        t          j                            ddg|d                                t          t          j                            d g|d          j	        d
k               t          j        ddg          }t          j        dt          	          }||d
<   t          t          j                            ||d          
                                |u            d}g d}t          t          j                            d|d          j        |           t          t          j                            d|d          j        |           t          t          j                            d|d|          j        |           t          t          j                            d|d|          j        |           t          t          j                            t          j        d          |d          j        |           t          t          j                            d
d
d          j        d           t          t          j                            d
dd
          j        d           t          t          j                            ddd
          j        d           t          t          j                            d
d
          j        d           t          t          j                            g d          j        d           t          t          j                            ddgd          j        d           t          t           t          j        j        g d           d S )Nr
  ?r+   Tr  Fr  r*   r/   r   )r+   r2   )r
  r
  r
  r
  r	  rM   r5   )r2   r   r3   rw   i)r   r   r  r  )r   r   isscalarr   r  r6   emptyobjecttuplendimitemr   r_   r   r   r   r%   )r   rD   r  arrr   s        r   test_choice_return_shapez'TestRandomDist.test_choice_return_shape  s*   #JBI,,Q,==>>???BI,,Q,>>??@@@BI,,Q,BBCCDDDBI,,Q,CCDDEEEBI,,aVT,BBCCDDD	  $ 66$>???HaVhq'''A	  d 33q8999 GGBK	 0 0At 0 D DEEEFFFBK	 0 0Au 0 E EFFFGGGBK	 0 0Atq 0 I IJJJKKKBK	 0 0Au 0 J JKKKLLLBK	 0 0!QD 0 I IJJJKKK	  $D 99>!CDDDHaVhq'''A	  a 66;;==BCCC ***RY%%aD%99?CCCRY%%aE%::@!DDDRY%%aDA%>>DaHHHRY%%aEQ%??EqIIIRY%%billAt%DDJANNN 	RY&&q!)&<<BINNNRY&&q#A&66<dCCCRY&&r2A&66<dCCCRY%%aa%006===RY%%bt%44:DAAARY%%sCjy%AAG	  	  	 j")"2B;;;;;r   c                     t          j        g d          }g d}t          t          t           j        j        ||           d S )N)*   r*   r+   )NNNr  )r   r6   r   r%   r   r  )r   r  rD   s      r   test_choice_nan_probabilitiesz,TestRandomDist.test_choice_nan_probabilities  sB    HZZZ  j")"2A;;;;;;r   c                     t           j                            | j                   t           j                            d          }d}t	          ||           d S )Nr   s
   Ui+Wf)r   r   ri   bytesr   r   s      r   
test_byteszTestRandomDist.test_bytes  sF    
	ty!!!$$.VW%%%%%r   c                    d d d d d d d d d	 d
 d fD ]q}t           j                            | j                    |g d          }t           j                            |           |} |g d          }t	          ||           rd S )Nc                 *    t          j        g           S N)r   r6   rX   s    r   <lambda>z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rx|| r   c                     | S r.  r<   r/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    q r   c                 d    t          j        |                               t           j                  S r.  )r   asarrayastyper   r/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BG<< r   c                 d    t          j        |                               t           j                  S r.  )r   r3  r4  float32r/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BJ?? r   c                 d    t          j        |                               t           j                  S r.  )r   r3  r4  	complex64r/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BLAA r   c                 Z    t          j        |                               t                    S r.  )r   r3  r4  r   r/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33F;; r   c                     d | D             S )Nc                     g | ]}||fS r<   r<   .0is     r   
<listcomp>zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    2221A222r   r<   r/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    22222 r   c                 >    t          j        d | D                       S )Nc                     g | ]}||gS r<   r<   r<  s     r   r?  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>      *=*=*=aAq6*=*=*=r   )r   r3  r/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz*=*=1*=*=*=>> r   c                 8    t          j        | | g          j        S r.  )r   vstackTr/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    ry!Q002 r   c                     t          j        d | D             dt          fdt          fg                              t           j                  S )Nc                     g | ]}||fS r<   r<   r<  s     r   r?  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    +>+>+>qQF+>+>+>r   r  r  )r   r3  r@   r   recarrayr/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sG    
+>+>A+>+>+>-0#Jc
+C!E !E!%bk!2!2 r   c                 j    t          j        d | D             dt          fdt           j        fg          S )Nc                     g | ]}||fS r<   r<   r<  s     r   r?  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  rB  r   r  r  )r   r3  r   r   r/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s7    rz*=*=1*=*=*=,/=3/*J L  L r   )
r*   r+   r2   r3   r4   r5      r   	   r   )
r   r*   rL  r5   r+   r3   r4   r   rK  r2   )r   r   ri   shuffler   )r   convalistr   r   s        r   test_shufflezTestRandomDist.test_shuffle  s     ,+ [<<??AA;;22>>224 4L LM 	0 	0D  INN49%%%D77788EIe$$$Fd999::Gvw////+	0 	0r   c                 "   t           j                            t          j        t	          d          d          dz  dz
  d          }t           j                            t          j        d          dz  dz
  d          }|                                }|                                }t	          d          D ]}t           j                            |           t          t          |j        |j                            t          |j        |j                                       t           j                            |           t          t          |j        |j                            t          |j        |j                                       d S )N   )r4   r3   r2   r*   r"   2   )r   mamasked_valuesreshaper   r   copyr   rM  r   sorteddatamask)r   r  r  a_origb_origr>  s         r   test_shuffle_maskedz"TestRandomDist.test_shuffle_masked  sK   E
599f = = AA ErJJE	" 1A 5r::r 	L 	LAIa   qvqvg''V[L0I)J)JL L LIa   qvqvg''V[L0I)J)JL L L L	L 	Lr   r   c                     dddddddd}t          j        t          d	
          5 } |j        |           d d d            n# 1 swxY w Y   d|d         j        v sJ d S )Nr   r*   r+   r2   r3   r4   r5   )r   r*   r+   r2   r3   r4   r5   z!you are shuffling a 'dict' objectmatchr  )r   warnsUserWarningrM  filename)r   r   valuesrecs       r   test_shuffle_untyped_warningz+TestRandomDist.test_shuffle_untyped_warning	  s     1qQ1;;\+9; ; ; 	#>AFN6"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# A//////s   AA
Ause_array_likeTFc                     G d dt           j                  }d t          j        dg          t          j        d          t          j        d          t          j        d          g}t          j        |t                    }d |D             |r|                    |          }t          fd|D                       sJ |ret          |t           j        j	                  sFt          j        t          d	
          5   |j        |           d d d            d S # 1 swxY w Y   d S  |j        |           t          fd|D                       sJ d S )Nc                       e Zd ZdS )>TestRandomDist.test_shuffle_no_object_unpacking.<locals>.MyArrN)r9   r:   r;   r<   r   r   MyArrrj    s        Dr   rk  r2   r   rK  r/   c                 ,    h | ]}t          |          S r<   idr<  s     r   	<setcomp>zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<setcomp>  s    )))aBqEE)))r   c              3   :   K   | ]}t          |          v V  d S r.  rm  r=  r>  item_idss     r   	<genexpr>zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<genexpr>#  s.      222a55H$222222r   z#Shuffling a one dimensional array.*r_  c              3   :   K   | ]}t          |          v V  d S r.  rm  rq  s     r   rs  zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<genexpr>,  s.      66Qr!uu(666666r   )r   ndarrayr6   float64r   r   rW   
isinstancer   	Generatorr   ra  rb  rM  )r   r   rg  rk  itemsr$  rr  s         @r    test_shuffle_no_object_unpackingz/TestRandomDist.test_shuffle_no_object_unpacking  s   	 	 	 	 	BJ 	 	 	 "(A3--Abjmm
 huF+++))5))) 	"((5//C 2222c22222222 	7*VRY5H"I"I 	7k?A A A $ $s###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ FN36666#6666666666s   DD#&D#c                 z   t           j                            | j                   t          j        d          j        }t           j                            |           t          t          j        |          g d           t           j                            | j                  }|                    |           t          t          j        |          g d           t           j        	                    | j                  }|                    |           t          t          j        |          g d           d S )Nr4   )r   r*   r3   r2   r+   )r   r*   r+   r2   r3   )r3   r*   r   r2   r+   )
r   r   ri   r   rY  rM  r   r3  r   default_rng)r   r  rngs      r   test_shuffle_memoryviewz&TestRandomDist.test_shuffle_memoryview.  s     		ty!!!IaLL
	!RZ]]OOO444i##DI..ARZ]]OOO444i##DI..ARZ]]OOO44444r   c                     t          j        d          }d|j        _        t	          j        t          d          5  t           j                            |           d d d            d S # 1 swxY w Y   d S )Nr2   Fz	read-onlyr_  )	r   rB   flags	writeabler   r   r%   r   rM  )r   r  s     r   test_shuffle_not_writeablez)TestRandomDist.test_shuffle_not_writeable=  s    HQKK!]:[999 	! 	!Ia   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s    A))A-0A-c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr
  r  r   rw   gAKč?ghA?g ҇o>gάXf+q?gS1$?g'8zX ?r   r   )r   r   ri   betar6   r	   r   s      r   	test_betazTestRandomDist.test_betaC  s    
	ty!!!BV44()+BC)+BC)+BCEF F 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||           d S )NrL   gv/?r   rw   %   +   r'  0   .   -   )r   r   ri   rC   r6   r   r   s      r   test_binomialzTestRandomDist.test_binomialL  sv    
	ty!!!##CF#;;(RHHH& ' ' 	67+++++r   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )NrS  r   rw   g+Q]uO@g+Q@gY7`ZqP@ge(fG@gvtR@gEIȋR@   r   )r   r   ri   	chisquarer6   r	   r   s      r   test_chisquarezTestRandomDist.test_chisquareT  s    
	ty!!!$$Rf$55(13GH13GH02FGI J J 	"&'2>>>>>>r   c                 <   t           j                            | j                   t          j        ddg          }t           j        j                            |d          }t          j        ddgddggd	d
gddggddgddggg          }t          ||d           d S )NI<I@EZC@r   rw   gi{s?gn,	A?g]^?gpDB?gȧ#y?gr?g1U?gѨUC?g^,%?gB?gډOoX;?gM`!O?r   r   )r   r   ri   r6   mtrand	dirichletr	   )r   alphar   r   s       r   test_dirichletzTestRandomDist.test_dirichlet\  s    
	ty!!!.0DEFF!++E+??(13FG13FGI13FG13FGI13FG13FGI	J K K 	"&'2>>>>>>r   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        j        |t          d                     d S )Nr  r  r*   r[   r+   r\   r]   )
r   r6   r   r   r  r^   r_   r   r$   r`   ra   s     r   test_dirichlet_sizez"TestRandomDist.test_dirichlet_sizeh  sA   H*,@ABBRY((BIaLL99?HHHRY((BIaLL99?HHHRY((BIaLL99?HHHRY((QF3399EEERY((F3399EEERY((BHV,<,<==CYOOOi!4aqBBBBBr   c           	         t          j        ddg          }t          t          t           j        j        j        |           t          t          t          j        ddgg           t          t          t          j        dgdgg           t          t          t          j        dgdggdgdggg           t          t          t          j        t          j        ddgddgg                     d S )NgHzG?gؗҜr4   r*   )r   r6   r   r%   r   r  r  )r   r  s     r   test_dirichlet_bad_alphaz'TestRandomDist.test_dirichlet_bad_alphat  s    '8,--j")"2"<eDDD 	j&"2aVH===j&"2aS1#J???j&"2qcA3Z1#s4LMMMj&"2BHq!fq!f=M4N4NOOOOOr   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Ng8EGr?r   rw   gNU?gbI0?gVU\@g:3@gU?g"qo?r   r   )r   r   ri   exponentialr6   r	   r   s      r   test_exponentialzTestRandomDist.test_exponential  s    
	ty!!!&&vF&;;(02EF02EF02EFH I I 	"&'2>>>>>>r   c                     t          t          j                            d          d           t	          t
          t          j        j        d           d S Nr   scale       )r   r   r   r  r   r%   r&   s    r   test_exponential_0z!TestRandomDist.test_exponential_0  sE    RY***33Q777j")"7sCCCCCCr   c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )N   M   r   rw   g7?g`j?g6"+?gܳ2>?gc>+Y?g_}S?r   r   )r   r   ri   fr6   r	   r   s      r   test_fzTestRandomDist.test_f  s    
	ty!!!R&11(02EF02EF02EFH I I 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr4   r2   r   rw   gԏGM8@gȌ<@g	":@gv#)@gZQ?@gr[@@   r   )r   r   ri   gammar6   r	   r   s      r   
test_gammazTestRandomDist.test_gamma  s    
	ty!!!AF33(13GH13GH13GHJ K K 	"&'2>>>>>>r   c                     t          t          j                            dd          d           t	          t
          t          j        j        dd           d S )Nr   )r_   r  r  )r   r   r   r  r   r%   r&   s    r   test_gamma_0zTestRandomDist.test_gamma_0  sE    RY__1A_66:::j")/CHHHHHHr   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgddgg          }t          ||           d S )	N_c97ݚ?r   rw   r   rK     r4   r  )r   r   ri   	geometricr6   r   r   s      r   test_geometriczTestRandomDist.test_geometric  st    
	ty!!!$$Zf$==(QFHG% & & 	67+++++r   c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr         @r   locr  rx   gؕ?gs0 ?g#0g(xg-KD?gůp`@r   r   )r   r   ri   gumbelr6   r	   r   s      r   test_gumbelzTestRandomDist.test_gumbel  s    
	ty!!!!!j&!II(02EF02FG02FGI J J 	"&'2>>>>>>r   c                     t          t          j                            d          d           t	          t
          t          j        j        d           d S r  )r   r   r   r  r   r%   r&   s    r   test_gumbel_0zTestRandomDist.test_gumbel_0  E    RY%%A%..222j")"2#>>>>>>r   c                 6   t           j                            | j                   t           j                            dddd          }t          j        ddgddgddgg          }t          ||           t           j                            dddd	          }t          j        g d
          }t          ||           t           j                            dddd	          }t          j        g d          }t          ||           t           j                            dddd	          }t          j        g d          }t          ||           t           j                            dddd	          }t          j        g d          }t          ||           d S )Nr   r4   r  r   rw   rL  r   r2   r3   )r2   r2   r2   r2   r   r  )r  r  r  r  )r   r   r   r   )r   r   ri   hypergeometricr6   r   r   s      r   test_hypergeometricz"TestRandomDist.test_hypergeometric  s   
	ty!!!))"a&)AA(RHHF$ % % 	67+++ ))!Q)::(<<<((67+++))"a!)<<(+++,,67+++ ))!Q)::(<<<((67+++))!R!)<<(<<<((67+++++r   c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r   r  g bO?g¸?gpJm	@g{K*t	@g:^w-gY~o?r   r   )r   r   ri   laplacer6   r	   r   s      r   test_laplacezTestRandomDist.test_laplace  s    
	ty!!!""z6"JJ(02EF02EF13FGI J J 	"&'2>>>>>>r   c                     t          t          j                            d          d           t	          t
          t          j        j        d           d S r  )r   r   r   r  r   r%   r&   s    r   test_laplace_0zTestRandomDist.test_laplace_0  sE    RY&&Q&//333j")"33??????r   c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r   r  g#K-z?gJ?g92@gر[@g#+^˿g-@r   r   )r   r   ri   logisticr6   r	   r   s      r   test_logisticzTestRandomDist.test_logistic  s    
	ty!!!##
#F#KK(02DE02EF13FGI J J 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r   )meansigmarx   gɁ0@go,+4FB@g)ʭ6@g5?gnxNnP@g)U@r  r   )r   r   ri   	lognormalr6   r	   r   s      r   test_lognormalzTestRandomDist.test_lognormal  s    
	ty!!!$$*Cf$MM(13GH13FG13GHJ K K 	"&'2>>>>>>r   c                     t          t          j                            d          d           t	          t
          t          j        j        d           d S )Nr   )r  r*   r  )r   r   r   r  r   r%   r&   s    r   test_lognormal_0zTestRandomDist.test_lognormal_0  sE    RY((q(111555j")"5SAAAAAAr   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgddgg          }t          ||           d S )Ngƀ@?r   )rD   rx   r+   r5   r  r2   )r   r   ri   	logseriesr6   r   r   s      r   test_logserieszTestRandomDist.test_logseries  st    
	ty!!!$$z$??(QFGF$ % % 	67+++++r   c                    t           j                            | j                   t           j                            ddgdz  d          }t          j        g dg dgg dg d	gg d
g dgg          }t          ||           d S )NrR  UUUUUU?r5   r   rw   )r3   r2   r4   r3   r+   r+   )r4   r+   r   r+   r+   r*   )r2   r3   r2   r5   r   r3   )r+   r*   r3   r2   r5   r3   )r3   r3   r+   r4   r+   r2   )r3   r2   r3   r+   r2   r3   )r   r   ri   rP   r6   r   r   s      r   test_multinomialzTestRandomDist.test_multinomial  s    
	ty!!!&&rD6!8&&AA(//////1//////1//////1	2 3 3 	67+++++r   c                    t           j                            | j                   d}ddgddgg}d}t           j                            |||          }t          j        ddgddggd	d
gddggddgddggg          }t          ||d           t           j                            ||          }t          j        ddg          }t          ||d           ddg}ddgddgg}t          t          t           j        j        ||           t          t           j        j        ||d           t          t          t           j        j        ||d           t          j        ddgddggt           j                  }t                      5 }t           j                            ||           |                    t                    }t          |          dk    sJ 	 d d d            d S # 1 swxY w Y   d S )N)r  r   r*   r   r   g4Vj?gy'@gI1?gSB#@ge<@g 4W(@g6R¿?g9r
v"@gс?g{#@g4xg"f"@r   r   gN}O6?gYMW"@r+   ignore)check_validraiser
  r/   )r   r   ri   multivariate_normalr6   r	   r   RuntimeWarningr   r   r%   r6  r
   r   r   )r   r  covrx   r   r   r   r   s           r   test_multivariate_normalz'TestRandomDist.test_multivariate_normal   s_   
	ty!!!1v1v..tS$??(/1BC/1BCE/1CD/1BCE/1BC02CDF	G H H 	"&'2>>>> ..tS99(-/?@AA!&'2>>>> 1v1v1v^RY%BD#NNN 	298$'/	1 	1 	1 	1 	j")"?s")	+ 	+ 	+ 	+ hC3(+2:>>>   	CI))$444

>**Aq66Q;;;;;	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AG##G'*G'c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||           d S )NrL   g|Pk?r   )nrD   rx   iP  iI  i|  ic  i  i  )r   r   ri   r   r6   r   r   s      r   r   z%TestRandomDist.test_negative_binomial(  sv    
	ty!!!,,sf6,JJ(S#J #J #J( ) ) 	67+++++r   c                 |   t           j                            | j                   t           j                            ddd          }t          j        ddgddgdd	gg          }t          ||d
           t           j                            ddd          }t          j        ddgddgddgg          }t          ||d
           t           j                            | j                   t           j                            ddd          }t          j        ddgddgddgg          }t          ||d
           d S )Nr4   r   )dfnoncrx   gG7@g! ܴ*@g1}z9?@g+驸0@g26E_r#@gI!1@r  r   rA   rM   g?gTD?g?T?g+qnl?g~|D?g밬?r   g{01#@gprs'@g~;$@g"dI@g*@g}',@)r   r   ri   noncentral_chisquarer6   r	   r   s      r   test_noncentral_chisquarez(TestRandomDist.test_noncentral_chisquare0  si   
	ty!!!//116/JJ(13GH13GH02FGI J J 	"&'2>>>>//2BV/LL(03FG03FG.1DEG H H 	"&'2>>>>
	ty!!!//116/JJ(.0BC/1BC/1CDF G G 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            dddd          }t          j        ddgdd	gd
dgg          }t          ||d           d S )Nr4   r+   r*   r   )dfnumdfdenr  rx   g^~?g/+c?g".@g@g7?gE?r  r   )r   r   ri   noncentral_fr6   r	   r   s      r   test_noncentral_fz TestRandomDist.test_noncentral_fE  s    
	ty!!!''aqq-3 ( 5 5(02EF02EF02DEG H H 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r   r  g&&n@gOG_@g~w@gtw]տgm&5@g$>@r   r   )r   r   ri   normalr6   r	   r   s      r   test_normalzTestRandomDist.test_normalN  s    
	ty!!!!!j&!II(02EF.0DE02EFH I I 	"&'2>>>>>>r   c                     t          t          j                            d          d           t	          t
          t          j        j        d           d S r  )r   r   r   r  r   r%   r&   s    r   test_normal_0zTestRandomDist.test_normal_0V  r  r   c                    t           j                            | j                   t           j                            dd          }t          j        ddgddgdd	gg          }t           j                            ||d
           d S )Nr  r   r  rx   gWI@gԨy@gy]0Ag1~\Aga@gY
7A   )nulp)r   r   ri   paretor6   testingassert_array_almost_equal_nulpr   s      r   test_paretozTestRandomDist.test_paretoZ  s    
	ty!!!!!JV!<<()+BC)+BC)+BCEF F 	
11&'1KKKKKr   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgddgg          }t          ||           d S )Nr  r   )lamrx   r   r*   )r   r   ri   poissonr6   r   r   s      r   test_poissonzTestRandomDist.test_poissoni  st    
	ty!!!""z"??(QFFF$ % % 	67+++++r   c                 t   t          j        d          j        }d}t          t          t           j        j        |           t          t          t           j        j        |gdz             t          t          t           j        j        |           t          t          t           j        j        |gdz             d S )Nr   r"   r   )r   r   r   r   r%   r   r  )r   lambiglamnegs      r   test_poisson_exceptionsz&TestRandomDist.test_poisson_exceptionsq  s    #"j")"3V<<<j")"3fXb[AAAj")"3V<<<j")"3fXb[AAAAAr   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Nr  r   r  g;'?gܴw*?g5?gFG?g D]?g$`?r   r   )r   r   ri   powerr6   r	   r   s      r   
test_powerzTestRandomDist.test_powery  s    
	ty!!!:F;;(02EF02EF02EFH I I 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r   )r  rx   g"u+@gN$MB*@g7v8B4@g55@ge&@g~ӣZ1@r  r   )r   r   ri   rayleighr6   r	   r   s      r   test_rayleighzTestRandomDist.test_rayleigh  s    
	ty!!!##"6#::(02DE13GH13GHJ K K 	"&'2>>>>>>r   c                     t          t          j                            d          d           t	          t
          t          j        j        d           d S r  )r   r   r   r  r   r%   r&   s    r   test_rayleigh_0zTestRandomDist.test_rayleigh_0  sE    RY''a'00!444j")"4C@@@@@@r   c                     t           j                            | j                   t           j                            d          }t          j        ddgddgddgg          }t          ||d	
           d S )Nr   rw   gMoDL?g6([9grF=?gM'	- gVgVA:Qy?r   r   )r   r   ri   standard_cauchyr6   r	   r   s      r   test_standard_cauchyz#TestRandomDist.test_standard_cauchy  s    
	ty!!!***77(02FG02FG13FGI J J 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            d          }t          j        ddgddgddgg          }t          ||d	
           d S )Nr   rw   g܁?gc!z?g&N"@gNI@gF>?g~ME?r   r   )r   r   ri   standard_exponentialr6   r	   r   s      r   test_standard_exponentialz(TestRandomDist.test_standard_exponential  s    
	ty!!!//V/<<(02EF/1DE/1DEG H H 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Nr2   r   )r_   rx   g)@gľ@gd],q@gPk{@g9B#1@gv @r  r   )r   r   ri   standard_gammar6   r	   r   s      r   test_standard_gammaz"TestRandomDist.test_standard_gamma  s    
	ty!!!)))??(02EF02EF02CDF G G 	"&'2>>>>>>r   c                     t          t          j                            d          d           t	          t
          t          j        j        d           d S )Nr   )r_   r  )r   r   r   r  r   r%   r&   s    r   test_standard_gamma_0z$TestRandomDist.test_standard_gamma_0  sE    RY--A-66:::j")":#FFFFFFr   c                     t           j                            | j                   t           j                            d          }t          j        ddgddgddgg          }t          ||d	
           d S )Nr   rw   r   r   r   r   r   r   r   r   )r   r   ri   ry   r6   r	   r   s      r   test_standard_normalz#TestRandomDist.test_standard_normal  s    
	ty!!!***77(02EF.0CD.0CDF G G 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r   )r  rx   g\VH?ghU%gH$M?gLgVqdzǿg㖀?r   r   )r   r   ri   
standard_tr6   r	   r   s      r   test_standard_tzTestRandomDist.test_standard_t  s    
	ty!!!%%&%99(02FG02FG13FGI J J 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            dddd          }t          j        ddgdd	gd
dgg          }t          ||d           d S )Ng{Gz@g(\u$@gףp=
W4@r   )leftmoderightrx   g:}\)@ghرTj(@gǨL30@g6ڜA0@g6sh&@g<,@r  r   )r   r   ri   
triangularr6   r	   r   s      r   test_triangularzTestRandomDist.test_triangular  s    
	ty!!!%%4e5+1 & 3 3(13FG13GH13FGI J J 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )NGz?gGz%@r   )lowhighrx   g>#H@gu@g#@g}d]#@gN@gw)* @r   r   )r   r   ri   uniformr6   r	   r   s      r   test_uniformzTestRandomDist.test_uniform  s    
	ty!!!""t%f"EE(02EF02EF02EFH I I 	"&'2>>>>>>r   c                 <   t          j        d          j        }t          j        d          j        }t           j        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   r*   g ؅W4vC)r  r   )
r   finfor   r   r   r!  r   OverflowErrorinf	nextafter)r   fminfmaxfuncs       r   test_uniform_range_boundsz(TestRandomDist.test_uniform_range_bounds  s    x  $x  $y mTBF7A666mTABF;;;mTDD999mTRVG9qc:::mTA3999
 		bl433$+FFFFFr   c                     G d dt           j                  }t          j        d                              |          }t	          t
          t           j        j        ||            G d dt           j                  }t          j        d                              |          }t	          t
          t           j        j        |dd           d S )Nc                       e Zd Zd ZdS )GTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloatc                     t           r.  r$   r&   s    r   	__float__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__      r   N)r9   r:   r;   r1  r<   r   r   ThrowingFloatr.    s#                 r   r3  g      ?c                       e Zd Zd ZeZdS )ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                     t           r.  r0  r&   s    r   __int__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__  r2  r   N)r9   r:   r;   r7  	__index__r<   r   r   ThrowingIntegerr5    s$               IIIr   r9  r*   )	r   ru  r6   r   r   r$   r   r!  r  )r   r3  throwing_floatr9  throwing_ints        r   !test_scalar_exception_propagationz0TestRandomDist.test_scalar_exception_propagation  s    	  	  	  	  	 BJ 	  	  	  #++M::i!2N$	& 	& 	&	  	  	  	  	 bj 	  	  	  x{{''88i!9<ANNNNNr   c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  p=
ף?r   mukapparx   gLZI@g'N"@gkr?gk=m@gډ?g^=\?r   r   )r   r   ri   vonmisesr6   r	   r   s      r   test_vonmiseszTestRandomDist.test_vonmises  s    
	ty!!!##t4f#EE(02EF02EF02EFH I I 	"&'2>>>>>>r   c                    t           j                            | j                   t           j                            ddd          }t           j                            t          j        |                                                     d S )NrS   gg5_PG>i@B r?  )r   r   ri   rB  r  r   isfiniterW   )r   rs     r   test_vonmises_smallz"TestRandomDist.test_vonmises_small  sd    
	ty!!!I"F??

2;q>>--//00000r   c                     t           j                            | j                   t           j                            ddd          }t          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r>  r   )r  r  rx   gZ@g-g@g8
m?gVP"?g`V?gx^&3?r  r   )r   r   ri   waldr6   r	   r   s      r   	test_waldzTestRandomDist.test_wald   s    
	ty!!!TFCC(02EF02EF02EFH I I 	"&'2>>>>>>r   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgdd	gg          }t          ||d
           d S )Nr  r   r  g@6?g]A?g(1ڥR?gU?g2_u?g^}-Q?r   r   )r   r   ri   weibullr6   r	   r   s      r   test_weibullzTestRandomDist.test_weibull  s    
	ty!!!""T"77(02EF02EF02EFH I I 	"&'2>>>>>>r   c                    t           j                            | j                   t          t           j                            dd          t          j        d                     t          t          t           j        j        d           d S )Nr   r  r  r  )r  )r   r   ri   r   rL  rB   r   r%   r&   s    r   test_weibull_0zTestRandomDist.test_weibull_0  se    
	ty!!!RY&&&44bhrllCCCj")"3s;;;;;;r   c                     t           j                            | j                   t           j                            dd          }t          j        ddgddgddgg          }t          ||           d S )	Nr  r   r  B      r*   r2   r  )r   r   ri   zipfr6   r   r   s      r   	test_zipfzTestRandomDist.test_zipf  sq    
	ty!!!$V44(RHFG% & & 	67+++++r   N)Sr9   r:   r;   rm   r   r   r   r   r   r  r  r  r  r  r  r  r  r%  r(  r+  rP  r]  r   markparametrizer   r   r   r|  rf  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  r  r  r	  r  r  r  r  r  r  r"  r+  r<  rC  rG  rJ  rM  rO  rT  r<   r   r   r   r   '  sG         ? ? ?? ? ?, , ,	, 	, 	,& & &@ @ @? ? ?, , ,, , ,, , ,, , ,, , ,2 2 2&,< ,< ,<\< < <
& & &0 0 04L L L [XY	--//1F1F1H1HIK K0 0K K0 [X	BI))++RY-B-B-D-DEG G[-e}==7 7 >=G G705 5 5! ! !? ? ?, , ,? ? ?
? 
? 
?
C 
C 
C	P 	P 	P? ? ?D D D? ? ?? ? ?I I I, , ,? ? ?? ? ?, , ,4? ? ?@ @ @? ? ?? ? ?B B B, , ,	, 	, 	,& & &P, , ,? ? ?*? ? ?? ? ?? ? ?L L L, , ,B B B? ? ?? ? ?A A A? ? ?? ? ?? ? ?G G G? ? ?? ? ?? ? ?? ? ?G G G O O O0? ? ?1 1 1? ? ?? ? ?< < <
, , , , ,r   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  Z"d!S )"TestBroadcastc                     d| _         d S )Ni[r   r&   s    r   rm   zTestBroadcast.setup_method!  s    			r   c                 N    t           j                            | j                   d S r.  )r   r   ri   r&   s    r   setSeedzTestBroadcast.setSeed$  s    
	ty!!!!!r   c                 4   dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||d           |                                   |||dz            }t          ||d           d S )Nr   r*   gl?g_x?g=*BN?r2   r  r   )r   r   r!  r6   r[  r	   )r   r  r   r!  r   r   s         r   r"  zTestBroadcast.test_uniform*  s    cs)#( 1 1 1 2 2 	q$''!&'2>>>>dQh''!&'2>>>>>>r   c                    dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             d S )Nr   r*   r"   )g-r@gYl@g-`w?r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  r  	bad_scaler  r   r   s          r   r  zTestBroadcast.test_normal:  s    cD	!( 0 0 0 1 1 	a''!&'2>>>>j&#'9===UQY''!&'2>>>>j&#y1}=====r   c                    dg}dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             d S )	Nr*   r+   r"   r,   )gnQVf?gVKB?gv`k?r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  r  bad_abad_br  r   r   s           r   r  zTestBroadcast.test_betaM  s   CCy~( 1 1 1 2 2 	a!eQ!&'2>>>>j$	1555j$Au555aQ!&'2>>>>j$q1u555j$51955555r   c                     dg}dg}t           j        j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             d S Nr*   r"   )g.UgZ?gi Prq?gEK?r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  r_  r  r   r   s         r   r  zTestBroadcast.test_exponentialc  s    D	i+( 1 1 1 2 2 	UQY''!&'2>>>>j+y1}=====r   c                     dg}dg}t           j        j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             d S rd  )r   r   r  r6   r[  r	   r   r%   )r   r_   	bad_shape	std_gammar   r   s         r   r  z!TestBroadcast.test_standard_gammap  s    D	I,	( 1 1 1 2 2 	519%%!&'2>>>>j)Y];;;;;r   c                    dg}dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             d S )	Nr*   r+   r"   r,   )g.UgZ?gi Prq?gEK?r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r_   r  rf  r_  r  r   r   s           r   r  zTestBroadcast.test_gamma}  s   D	D		( 0 0 0 1 1 	uqy%((!&'2>>>>j%Q>>>j%I>>>ueai((!&'2>>>>j%EAI>>>j%	A>>>>>r   c                    dg}dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             d S )	Nr*   r+   r"   r,   )gbyʜ?go?gT7@r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  r  	bad_dfnum	bad_dfdenr  r   r   s           r   r  zTestBroadcast.test_f  s   D	D	IK( 0 0 0 1 1 	519e$$!&'2>>>>j!Y]E:::j!UQY	:::5%!)$$!&'2>>>>j!Y	:::j!UIM:::::r   c                    dg}dg}dg}dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  ||          }	t          |	|d	           t          t          ||dz  ||           t          t          ||dz  ||           t          t          ||dz  ||           |                                   |||dz  |          }	t          |	|d	           t          t          |||dz  |           t          t          |||dz  |           t          t          |||dz  |           |                                   ||||dz            }	t          |	|d	           t          t          ||||dz             t          t          ||||dz             t          t          ||||dz             d S )
Nr+   r2   r3   r   r"   r,   )gr^G"@g/*@gц!@r  r   )r   r   r  r6   r[  r	   r   r%   )
r   r  r  r  rj  rk  bad_noncnonc_fr   r   s
             r   r  zTestBroadcast.test_noncentral_f  s   sC	D	4'( 0 0 0 1 1 		5$//!&'2>>>>j&)a-EEEj&%!)YEEEj&%!)UHEEEuqy$//!&'2>>>>j&)UQYEEEj&%QEEEj&%HEEEudQh//!&'2>>>>j&)UD1HEEEj&%D1HEEEj&%1EEEEEr   c                     |                                   t          j        ddg          }t          j                            dddd          }t          ||d           d S )Ngaz@gn4M;%?r  r+   rw   r  r   )r[  r   r6   r   r  r	   )r   r   r   s      r   test_noncentral_f_small_dfz(TestBroadcast.test_noncentral_f_small_df  s^    (-/@ABB''S!!'<<!&'2>>>>>>r   c                     dg}dg}t           j        j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             d S )Nr*   r"   )g~}N??g$F?g'rS?r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  bad_dfr  r   r   s         r   r  zTestBroadcast.test_chisquare  s    SI'	( 0 0 0 1 1 	26""!&'2>>>>j)VaZ88888r   c                    dg}dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             d S )	Nr*   r+   r"   r,   )g w "@g2WR@gRY@r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  r  rr  rm  nonc_chir   r   s           r   r  z'TestBroadcast.test_noncentral_chisquare  s   Ss491( 0 0 0 1 1 	"q&$''!&'2>>>>j(FQJ===j(BFH==="dQh''!&'2>>>>j(FD1H===j(B1=====r   c                     dg}dg}t           j        j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             d S )Nr*   r"   )gT@g~Fl@gƚtp?r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  rr  tr   r   s         r   r  zTestBroadcast.test_standard_t  s    SI ( 0 0 0 1 1 	26!&'2>>>>j!VaZ00000r   c                    dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             d S )Nr+   r*   r"   )gW!@gOBg}?r2   r  r   )r   r   rB  r6   r[  r	   r   r%   )r   r@  rA  	bad_kapparB  r   r   s          r   rC  zTestBroadcast.test_vonmises   s    SD	9%( 1 1 1 2 2 	"q&%((!&'2>>>>j(BFI>>>"eai((!&'2>>>>j(B	A>>>>>r   c                     dg}dg}t           j        j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             d S )Nr*   r"   )g&8??geFX?gՋː?r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  ra  r  r   r   s         r   r  zTestBroadcast.test_pareto  s    C!( 0 0 0 1 1 	A!&'2>>>>j&%!)44444r   c                     dg}dg}t           j        j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             d S rd  )r   r   rL  r6   r[  r	   r   r%   )r   r  ra  rL  r   r   s         r   rM  zTestBroadcast.test_weibull   s    C)#( 1 1 1 2 2 	Q!&'2>>>>j'51955555r   c                     dg}dg}t           j        j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             d S )Nr*   r"   r]  r2   r  r   )r   r   r   r6   r[  r	   r   r%   )r   r  ra  r   r   r   s         r   r  zTestBroadcast.test_power-  s    C	( 1 1 1 2 2 	q1u!&'2>>>>j%33333r   c                    dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             d S )Nr   r*   r"   )g:BKc?g3k?g~q?r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  r  r_  r  r   r   s          r   r  zTestBroadcast.test_laplace:  s    cD	)#( 2 2 2 3 3 	q%((!&'2>>>>j'37I>>>eai((!&'2>>>>j'3	A>>>>>r   c                    dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             d S )Nr   r*   r"   )g'Zy?gdSO=?g3L1?r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  r  r_  r  r   r   s          r   r  zTestBroadcast.test_gumbelM  s    cD	!( 1 1 1 2 2 	a''!&'2>>>>j&#'9===UQY''!&'2>>>>j&#y1}=====r   c                    dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             d S )Nr   r*   r"   )gy?gJR?g
~&?r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  r  r_  r  r   r   s          r   r  zTestBroadcast.test_logistic`  s    cD	9%( 2 2 2 3 3 	#'5))!&'2>>>>j(C!GY???#uqy))!&'2>>>>j(CQ?????r   c                    dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             d S )Nr   r*   r"   )gH"@gܮ @gvv	:@r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  r  	bad_sigmar  r   r   s          r   r  zTestBroadcast.test_lognormals  s    sD	I'	( 0 0 0 1 1 	4!8U++!&'2>>>>j)TAXyAAA4++!&'2>>>>j)T9q=AAAAAr   c                     dg}dg}t           j        j        }t          j        g d          }|                                   ||dz            }t          ||d           t          t          ||dz             d S )Nr*   r"   )gݱlo?g/ӂ?gz~R?r2   r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  r_  r  r   r   s         r   r  zTestBroadcast.test_rayleigh  s    D	9%( 0 0 0 1 1 	%!)$$!&'2>>>>j(IM:::::r   c                 l   dg}dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             t          t          |d	d           t          t          |dd	           d S )
NrA   r*   r   r,   )g@m e?g`I߿?g|2?r2   r  r   rS   )r   r   rI  r6   r[  r	   r   r%   )r   r  r  bad_meanr_  rI  r   r   s           r   rJ  zTestBroadcast.test_wald  sE   u3D	y~( 0 0 0 1 1 	dQh&&!&'2>>>>j$1e<<<j$q)<<<dEAI&&!&'2>>>>j$%!)<<<j$i!m<<<j$Q///j$S11111r   c                    dg}dg}dg}dg}dg}|dz  \  }}t           j        j        }t          j        g d          }	|                                   ||dz  ||          }
t          |
|	d           t          t          ||dz  ||           t          t          ||dz  ||           t          t          ||dz  ||           |                                   |||dz  |          }
t          |
|	d           t          t          |||dz  |           t          t          |||dz  |           t          t          |||dz  |           |                                   ||||dz            }
t          |
|	d           t          t          ||||dz             t          t          ||||dz             t          t          ||||dz             d S )Nr*   r2   r+   r3   )g,P;bD @g%G @g,~S @r  r   )r   r   r  r6   r[  r	   r   r%   )r   r  r  r  bad_left_onebad_mode_onebad_left_twobad_mode_twor  r   r   s              r   r  zTestBroadcast.test_triangular  s   ssss%*QY"lY)
( 0 0 0 1 1 	D1HdE22!&'2>>>>j*lQ.>eLLLj*dQheLLLj*lQ.>	 	 	 	D$(E22!&'2>>>>j*lD1HeLLLj*dL14DeLLLj*lL1<L	 	 	 	D$	22!&'2>>>>j*lD%!)LLLj*dL%!)LLLj*lLai	! 	! 	! 	! 	!r   c                 v   dg}dg}dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||           t          t          ||dz  |           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||           t          t          |||dz             t          t          |||dz             t          t          |||dz             d S )Nr*   rA   r"         ?r*   r*   r*   r2   )r   r   rC   r6   r[  r   r   r%   )	r   r  rD   bad_n	bad_p_one	bad_p_twobinomr   r   s	            r   r  zTestBroadcast.test_binomial  s8   CED	E		"(999%%q1ua67+++j%A666j%Q	:::j%Q	:::q!a%67+++j%A666j%IM:::j%IM:::::r   c                 v   dg}dg}dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz  |          }t          ||           t          t          ||dz  |           t          t          ||dz  |           t          t          ||dz  |           |                                   |||dz            }t          ||           t          t          |||dz             t          t          |||dz             t          t          |||dz             d S )Nr*   rA   r"   r  )r*   r   r*   r2   )r   r   r   r6   r[  r   r   r%   )	r   r  rD   r  r  r  	neg_binomr   r   s	            r   r   z$TestBroadcast.test_negative_binomial  s<   CED	E	I/	(999%%1q5!$$67+++j)UQY:::j)QUI>>>j)QUI>>>1a!e$$67+++j)UAE:::j)Q	A>>>j)Q	A>>>>>r   c                 z   t           j                                        j        }dg}dg}|dz  g}t           j        j        }t          j        g d          }|                                   ||dz            }t          ||           t          t          ||dz             t          t          ||dz             d S )Nr*   r"   r+   )r*   r*   r   r2   )
r   r   r   _poisson_lam_maxr  r6   r[  r   r   r%   )r   max_lamr  bad_lam_onebad_lam_twor  r   r   s           r   r  zTestBroadcast.test_poisson  s    )'')):cd{m)#(999%%q!!67+++j';?;;;j';?;;;;;r   c                    dg}dg}t           j        j        }t          j        g d          }|                                   ||dz            }t          ||           t          t          ||dz             t          j        d          5  t          t          |t           j	                   t          t          |ddt           j	        g           d d d            d S # 1 swxY w Y   d S )Nr+   r   )r+   r+   r*   r2   r  )invalid)
r   r   rS  r6   r[  r   r   r%   errstaterG   )r   r  ra  rS  r   r   s         r   rT  zTestBroadcast.test_zipf  s   Cy~(999%%a!e67+++j$	222[*** 	< 	<*dBF333*dQ26N;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   ACC#&C#c                 .   dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz            }t          ||           t          t          ||dz             t          t          ||dz             d S )NrA   r"   r  r\   r2   )r   r   r  r6   r[  r   r   r%   )r   rD   r  r  geomr   r   s          r   r  zTestBroadcast.test_geometric  s    ED	E	y"(999%%a!e67+++j$	A666j$	A66666r   c                 >   dg}dg}dg}dg}dg}dg}dg}t           j        j        }t          j        g d          }	|                                   ||dz  ||          }
t          |
|	           t          t          ||dz  ||           t          t          ||dz  ||           t          t          ||dz  ||           t          t          ||dz  ||           |                                   |||dz  |          }
t          |
|	           t          t          |||dz  |           t          t          |||dz  |           t          t          |||dz  |           t          t          |||dz  |           |                                   ||||dz            }
t          |
|	           t          t          ||||dz             t          t          ||||dz             t          t          ||||dz             t          t          ||||dz             d S )	Nr*   r+   r"   r,   r   r3   r  r2   )r   r   r  r6   r[  r   r   r%   )r   ngoodnbadnsample	bad_ngoodbad_nbadbad_nsample_onebad_nsample_two	hypergeomr   r   s              r   r  z!TestBroadcast.test_hypergeometric'  s,   s#D	4##I,	(999%%519dG4467+++j)Y]D'JJJj)UQY'JJJj)UQYoNNNj)UQYoNNN5$(G4467+++j)Yq'JJJj)UHqL'JJJj)UD1HoNNNj)UD1HoNNN5$!4467+++j)YgkJJJj)UHgkJJJj)UD/A:MNNNj)UD/A:MNNNNNr   c                 .   dg}dg}dg}t           j        j        }t          j        g d          }|                                   ||dz            }t          ||           t          t          ||dz             t          t          ||dz             d S )NrA   r+   r"   r  r2   )r   r   r  r6   r[  r   r   r%   )r   rD   r  r  r  r   r   s          r   r  zTestBroadcast.test_logseriesJ  s    EC	D	I'	(999%%1q5!!67+++j)Y];;;j)Y];;;;;r   N)#r9   r:   r;   rm   r[  r"  r  r  r  r  r  r  r  rp  r  r  r  rC  r  rM  r  r  r  r  r  r  rJ  r  r  r   r  rT  r  r  r  r<   r   r   rX  rX    s         " " "? ? ? > > >&6 6 6,> > >< < <? ? ?,; ; ;,F F FB? ? ?9 9 9> > >,1 1 1? ? ?&5 5 56 6 64 4 4? ? ?&> > >&@ @ @&B B B&; ; ;2 2 20"! "! "!H; ; ;.? ? ?.< < << < <7 7 7!O !O !OF< < < < <r   rX  zcan't start thread)reasonc                   ,    e Zd Zd Zd Zd Zd Zd ZdS )
TestThreadc                 .    t          d          | _        d S )Nr3   )r   seedsr&   s    r   rm   zTestThread.setup_method[  s    1XX


r   c                 `   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                 n    g | ]1\  }} t           j                            |          |f           2S ))targetargs)r   r   r   )r=  r   or  functions      r   r?  z-TestThread.check_function.<locals>.<listcomp>e  sQ     0 0 0A V829+@+@+C+CQ*GHHH 0 0 0r   c                 6    g | ]}|                                 S r<   )startr=  rX   s     r   r?  z-TestThread.check_function.<locals>.<listcomp>g  s     qr   c                 6    g | ]}|                                 S r<   )joinr  s     r   r?  z-TestThread.check_function.<locals>.<listcomp>h  s     ar   r3   win32)	threadingr  r   r  r   r  zipr   r   intpr0   itemsizer   platformr	   r   )	r   r  szout1out2rv  r   r  r  s	    `      @r   check_functionzTestThread.check_function^  sK   $$$$$$xTZ*R/00xTZ*R/000 0 0 0 0TZ..0 0 0A1 
D)) 	2 	2DAqHRY**1--q1111 799?#q((S\W-D-D%dD11111tT*****r   c                 :    d }|                      |d           d S )Nc                 8    |                      d          |d<   d S )N'  rw   .)r  rl   outs     r   
gen_randomz*TestThread.test_normal.<locals>.gen_randomu  s    |||//CHHHr   )r  r  r  r   r  s     r   r  zTestThread.test_normalt  s0    	0 	0 	0J844444r   c                 :    d }|                      |d           d S )Nc                 \    |                      t          j        d                    |d<   d S )NrL   r   r  .)r  r   onesr  s     r   r  z'TestThread.test_exp.<locals>.gen_randomz  s*    ((rw{/C/C(DDCHHHr   r  r  r  r  s     r   test_expzTestThread.test_expy  s3    	E 	E 	EJ;77777r   c                 :    d }|                      |d           d S )Nc                 D    |                      ddgdz  d          |d<   d S )Nr   r  r5   r  rw   .)rP   r  s     r   r  z/TestThread.test_multinomial.<locals>.gen_random  s*    ((dVAXE(BBCHHHr   )r  r5   r  r  r  s     r   r  zTestThread.test_multinomial~  s3    	C 	C 	CJ:66666r   N)r9   r:   r;   rm   r  r  r  r  r<   r   r   r  r  X  s_          + + +,5 5 5
8 8 8
7 7 7 7 7r   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestSingleEltArrayInputc                     t          j        dg          | _        t          j        dg          | _        t          j        dg          | _        d| _        d S )Nr+   r2   r3   )r*   )r   r6   argOneargTwoargThreetgtShaper&   s    r   rm   z$TestSingleEltArrayInput.setup_method  s@    hsmmhsmm!r   c                 r   t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j	        t           j        j
        t           j        j        t           j        j        t           j        j        f}t           j        j        t           j        j        f}|D ]O}||v r |t          j        dg                    }n || j                  }t!          |j        | j                   Pd S r   )r   r   r  r  r  r  r  rL  r   r  r  rS  r  r  r6   r  r   r_   r  )r   funcs	probfuncsr*  r  s        r   test_one_arg_funcsz*TestSingleEltArrayInput.test_one_arg_funcs  s    &	(@$bi&:!29#4")"4"BIN$bi&9; Y(")*=>	 	3 	3Dy  d28SE??++ d4;''DM2222	3 	3r   c                 t   t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j	        t           j        j
        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        f}t           j        j        t           j        j        f}|D ]}||v rt          j        dg          }n| j        } || j        |          }t'          |j        | j                    || j        d         |          }t'          |j        | j                    || j        |d                   }t'          |j        | j                   d S )NrA   r   )r   r   r!  r  r  r  r  r  rB  r  r  r  r  rI  rC   r   r6   r  r  r   r_   r  )r   r  r  r*  r  r  s         r   test_two_arg_funcsz*TestSingleEltArrayInput.test_two_arg_funcs  sC   "BI$4bi<#RY%6!29#5$bin#RY%@B Y')DE	 	3 	3Dy  3% $t{F++CDM222$t{1~v..CDM222$t{F1I..CDM2222	3 	3r   c           	      N   t           t          j        t          j        t          j        t          j        t          j        t          j        t          j        t          j	        g	}t          j
        j        }t          j        dg          }t          j        dg          }|D ]} ||||          }t          |j        | j                    ||d         ||          }t          |j        | j                    |||d         |          }t          |j        | j                   d S )Nr*   r   r/   )r   r   r   r   r   r   r   r^   r7   r   r   r   r6   r   r_   r  )r   r   r*  r   r  r   r  s          r   r   z$TestSingleEltArrayInput.test_randint  s    rw"(BI29bh	;y x}}hsmm 	3 	3B$sD+++CDM222$s1vt2...CDM222$sDG2...CDM2222	3 	3r   c                    t           j        j        t           j        j        t           j        j        g}|D ]} || j        | j        | j                  }t          |j	        | j
                    || j        d         | j        | j                  }t          |j	        | j
                    || j        | j        d         | j                  }t          |j	        | j
                   d S )Nr   )r   r   r  r  r  r  r  r  r   r_   r  )r   r  r*  r  s       r   test_three_arg_funcsz,TestSingleEltArrayInput.test_three_arg_funcs  s    ')=)+  	3 	3D$t{DK??CDM222$t{1~t{DMBBCDM222$t{DKNDMBBCDM2222	3 	3r   N)r9   r:   r;   rm   r  r  r   r  r<   r   r   r  r    s_          3 3 3&3 3 363 3 3"3 3 3 3 3r   r  )r   r   numpyr   numpy.testingr   r   r   r   r   r   r	   r
   r   r   r   r   r>   rJ   rf   r   r   rX  rU  skipifr  r  r<   r   r   <module>r     s|        
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

       



$F $F $F $F $F $F $F $FN> > > > > > > >Y Y Y Y Y Y Y YD2$ 2$ 2$ 2$ 2$ 2$ 2$ 2$jH+ H+ H+ H+ H+ H+ H+ H+Vt, t, t, t, t, t, t, t,nw< w< w< w< w< w< w< w<t G$899(7 (7 (7 (7 (7 (7 (7 :9(7XR3 R3 R3 R3 R3 R3 R3 R3 R3 R3r   