
    8`in                       d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZmZm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)random)IS_WASMassert_assert_array_almost_equalassert_array_equalassert_equalassert_no_warningsassert_raisesc                   ,    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     Z/root/collector_daemon/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_shape1   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+   r6    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   r@   ps      r   test_n_zerozTestBinomial.test_n_zero;   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   rA   r   nanr$   s    r   test_p_is_nanzTestBinomial.test_p_is_nanD   s     j&/1bf=====r   N)r7   r8   r9   rC   rF   r:   r   r   r<   r<   :   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_basicJ   s    3c
+++++r   c                 4    t          j        dg d           d S )NrJ   )rK   rL           rQ   rQ   rM   r$   s    r   test_zero_probabilityz%TestMultinomial.test_zero_probabilityM   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    r2   )r   r   r   r   all)r   xs     r   test_int_negative_intervalz*TestMultinomial.test_int_negative_intervalP   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 )Nr?   r(   r(   r)   r)   r)   r)   r)   r)   r)   )
r   r   r   rN   uint32shaper4   r
   r"   floatr   rB   s     r   	test_sizezTestMultinomial.test_sizeV   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   rN   r4   r$   s    r   test_multidimensional_pvalsz+TestMultinomial.test_multidimensional_pvalsd   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)r7   r8   r9   rO   rR   rW   r`   rb   r:   r   r   rH   rH   I   sd        , , ,; ; ;          Y Y Y Y Yr   rH   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        |          }|                                }||fS )NI)r   r   	get_state)r   seedprngstates       r   _create_rngzTestSetState._create_rngl   s0    !$''  U{r   c                     |                                  \  }}|                    d          }|                    |           |                    d          }t          t	          j        ||k                         d S )N   )rk   tomaxint	set_stater   r   rU   r   ri   rj   oldnews        r   rO   zTestSetState.test_basicr   sm    &&((emmBummBscz""#####r   c                     |                                  \  }}|                    d          }|                    |           |                    d          }t          t	          j        ||k                         d S Nr0   sizerk   standard_normalro   r   r   rU   rp   s        r   test_gaussian_resetz TestSetState.test_gaussian_resety   sw    &&((e"""**u"""**scz""#####r   c                 P   |                                  \  }}|                                 |                                }|                    d          }|                    |           |                    d          }t	          t          j        ||k                         d S rt   )rk   rx   rg   ro   r   r   rU   rp   s        r    test_gaussian_reset_in_media_resz-TestSetState.test_gaussian_reset_in_media_res   s     &&((e  """**u"""**scz""#####r   c                    |                                  \  }}|d d         }|                    d          }|                    |           |                    d          }|                    |           |                    d          }t          t	          j        ||k                         t          t	          j        ||k                         d S )Nr*   rm   ru   rw   )r   ri   rj   	old_statex1x2x3s          r   test_backwards_compatibilityz)TestSetState.test_backwards_compatibility   s     &&((e#2#J	!!r!**y!!!!!r!**u!!r!**rRx  !!!rRx  !!!!!r   c                 `    |                                  \  }}|                    dd           d S Nr?   )rk   negative_binomialr   ri   _s      r   test_negative_binomialz#TestSetState.test_negative_binomial   s5     ""$$asC(((((r   c                     |                                  \  }}t          j        t                    5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr:   )rk   pytestraises
IndexErrorro   r   s      r   test_set_invalid_statez#TestSetState.test_set_invalid_state   s    ""$$a]:&& 	 	NN2	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAN)
r7   r8   r9   rk   rO   ry   r{   r   r   r   r:   r   r   rd   rd   k   s}          $ $ $$ $ $	$ 	$ 	$" " ") ) )    r   rd   c            	           e Zd Zej        ej        ej        ej        ej        ej	        ej
        ej        ej        g	Zd Zd Zd Zd Zd Zd Zd Zd Zd	S )
TestRandintc                 p    t          j                    }t          t          |j        dt
                     d S Nr(   r-   )r   r   r
   r"   r   r^   )r   rngs     r   test_unsupported_typez!TestRandint.test_unsupported_type   s/     ""iau======r   c                    t          j                    }| j        D ]}|t          j        u rdnt          j        |          j        }|t          j        u rdnt          j        |          j        dz   }t          t          |j
        |dz
  ||           t          t          |j
        ||dz   |           t          t          |j
        |||           t          t          |j
        dd|           d S )Nr   r)   r(   r-   )r   r   ityper   booliinfominmaxr
   r#   r   )r   r   dtlbndubnds        r   test_bounds_checkingz TestRandint.test_bounds_checking   s     ""* 	C 	CBbg1128B<<+;Dbg1128B<<+;a+?D*ck4!8TLLLL*ck4LLLL*ck4RHHHH*ck1arBBBBB	C 	Cr   c           	         t          j                    }| j        D ]}|t          j        u rdnt          j        |          j        }|t          j        u rdnt          j        |          j        dz   }|dz
  }t          |	                    ||dz   d|          |           |}t          |	                    ||dz   d|          |           ||z   dz  }t          |	                    ||dz   d|          |           d S )Nr   r)   r(   r   rv   r.   )
r   r   r   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    ""* 	N 	NBbg1128B<<+;Dbg1128B<<+;a+?D(CS#'BGGMMMCS#'BGGMMM$;1$CS#'BGGMMMM	N 	Nr   c                 ~   t          j                    }| j        D ]}|t          j        u rdnt          j        |          j        }|t          j        u rdnt          j        |          j        dz   }	 |                    |||           q# t          $ r$}t          dt          |          z            d }~ww xY wd S )Nr   r)   r(   r-   zMNo error should have been raised, but one was with the following message:

%s)r   r   r   r   r   r   r   r   r   	ExceptionAssertionErrorstr)r   r   r   r   r   es         r   test_full_rangezTestRandint.test_full_range   s     ""* 		@ 		@Bbg1128B<<+;Dbg1128B<<+;a+?D@D$b1111 @ @ @$ &68;A&? @ @ @@		@ 		@s   3B
B:B55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(   )r1      rm   r)   i   r   r   )	r   r   r   r   r   r   r   r   r   )r   r   r   r   valss        r   test_in_bounds_fuzzzTestRandint.test_in_bounds_fuzz   s     ""*QRR. 	) 	)B" ) ){{1db{AA

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

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

Q

a     r   c           
      Z   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int32r5   int8uint16r\   uint64uint8r(   i  littler3   r   r   r)   )hashlibr   r   r   sys	byteorderr   byteswapsha256viewr   r   	hexdigestr   r.   namer   )r   r   r   r   r   valress          r   test_repeatabilityzTestRandint.test_repeatability   s    \[[[[[[[[] ] *QRR. 
	3 
	3B$T**C }((kk!QTk<<kk!QTk<<EEGG.."'!2!233==??CC)*c12222  &&kk!QTk66;;BGDD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   r5   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                    t          j                    }| j        D ]}|t          j        u rdnt          j        |          j        }|t          j        u rdnt          j        |          j        dz   }|                    |||          }t          |j
        t          j
        |                     t          t          fD ]}|t          u rdn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-   longr.   )r   r   r   r   r   r   r   r   r   r   r.   r>   r   hasattrtype)r   r   r   r   r   samples         r   test_respect_dtype_singletonz(TestRandint.test_respect_dtype_singleton  sA    ""* 	5 	5Bbg1128B<<+;Dbg1128B<<+;a+?D[[t2[66Frx||4444+ 	+ 	+Bd

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

11(8(8(<q(@D [[t2[66F000111fr****	+ 	+r   N)r7   r8   r9   r   r   r   r   r   r   r   r\   r5   r   r   r   r   r   r   r   r   r   r   r:   r   r   r   r      s         Wbgrx29Xry"(BI7E> > >C C CN N N@ @ @! ! !1 1 1B" " ".+ + + + +r   r   c                   d   e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 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TestRandomDistrf   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgddgg          }t          ||d	
           d S )Nr0   r)   _\*?琛?<p?,o?H?Z?   decimal)r   r   rh   randr   r4   r   r   r   r   desireds       r   	test_randzTestRandomDist.test_rand9  sv     ++!Q(02EF02EF/1CDF G G 	"&'2>>>>>>r   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgddgg          }t          ||d	
           d S )Nr0   r)   !<Oq?4u,?3?LI/DͿ@? @HS\@r   r   )r   r   rh   randnr   r4   r   r   s       r   
test_randnzTestRandomDist.test_randnA  sv     ++1a(02EF-/BC-/BCE F F 	"&'2>>>>>>r   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||           d S Nic   r0   r)   ru      r0   i)   ii)r   r   rh   r   r   r4   r   r   s       r   test_randintzTestRandomDist.test_randintI  sm     ++S"622(RG "I #J( ) ) 	67+++++r   c                 $   t          j        | j                  }t          j        t
                    5  |                    ddd          }d d d            n# 1 swxY w Y   t          j        ddgddgd	d
gg          }t          ||           d S r   )
r   r   rh   r   warnsDeprecationWarningrandom_integersr   r4   r   r   s       r   test_random_integersz#TestRandomDist.test_random_integersQ  s     ++\,-- 	? 	?((bv(>>F	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?(RG "I #J( ) ) 	67+++++s   AAAc                 V   t          j        t                    5  t          j                            t          j        d          j        t          j        d          j                  }d d d            n# 1 swxY w Y   t          j        d          j        }t          ||           d S )Nl)	r   r   r   r   r   r   r   r   r   )r   r   r   s      r   test_random_integers_max_intz+TestRandomDist.test_random_integers_max_intZ  s     \,-- 	B 	BY..rx}}/@/1x}}/@B BF	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B (3--#VW%%%%%s   AA55A9<A9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_deprecatedg  s   $&& 	@ 	@!'+=>>> ,)3(3--+- - -
 ,)3(3--+RXc]]->@ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   B+CCCc                     t          j        | 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   rh   r   r4   r   r   s       r   test_randomzTestRandomDist.test_randomu  sv     ++F##(02EF02EF/1CDF G G 	"&'2>>>>>>r   c                     t          j        | j                  }|                    dd          }t	          j        g d          }t          ||           d S )Nr1   )r)   r0   r)   r0   r   r   rh   choicer   r4   r   r   s       r   test_choice_uniform_replacez*TestRandomDist.test_choice_uniform_replace}  sP     ++Aq!!(<<<((67+++++r   c                     t          j        | j                  }|                    ddg d          }t	          j        g d          }t          ||           d S )Nr1   )皙?r  皙?r  rB   )r(   r(   r)   r)   r   r   s       r   test_choice_nonuniform_replacez-TestRandomDist.test_choice_nonuniform_replace  s[     ++Aq$8$8$899(<<<((67+++++r   c                     t          j        | j                  }|                    ddd          }t	          j        g d          }t          ||           d S )Nr1   r0   Freplace)r   r(   r0   r   r   s       r   test_choice_uniform_noreplacez,TestRandomDist.test_choice_uniform_noreplace  sT     ++Aq%00(999%%67+++++r   c                     t          j        | j                  }|                    dddg d          }t	          j        g d          }t          ||           d S )Nr1   r0   F)r  g333333?r?   r  r  rB   )r)   r0   r(   r   r   s       r    test_choice_nonuniform_noreplacez/TestRandomDist.test_choice_nonuniform_noreplace  sd     ++Aq%$8$8$8  : :(999%%67+++++r   c                     t          j        | j                  }|                    g dd          }t	          j        g d          }t          ||           d S )N)abcdr1   )r  r  r  r  r   r   s       r   test_choice_nonintegerz%TestRandomDist.test_choice_noninteger  sZ     ++000!44(///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    r0   g      @r(   r)   r1   )r(   r)   r0   r1   g      ?r  )r  r  rK   g?gr  r/   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            d}t          t          j        t          j                            d|d                                t          t          j        t          j                            d|d                                t          t          j        t          j                            d|d|                                t          t          j        t          j                            d|d|                                t          t          j        t          j                            ddg|d                                t          t          j                            d g|d          j        d
k               t          j        ddg          }t          j        dt          	          }||d
<   t          t          j                            ||d          	                                |u            d}g d}t          t          j                            d|d          j        |           t          t          j                            d|d          j        |           t          t          j                            d|d|          j        |           t          t          j                            d|d|          j        |           t          t          j                            t          j        d          |d          j        |           t          t          j                            d
d
d          j        d           t          t          j                            d
dd
          j        d           t          t          j                            ddd
          j        d           t          t          j                            d
d
          j        d           t          t          j                            g d          j        d           t          t          j                            ddgd          j        d           t          t          t          j        j        g d           d S )Nr  ?r)   Tr  Fr
  r(   r-   r   r:   )r)   r0   )r  r  r  r  r  rK   r3   )r0   r   r1   ru   i)r   r   r  r  )r   r   isscalarr   r   r4   emptyobjectndimitemr   r]   r   r   r
   r#   )r   rB   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 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   r4   r
   r#   r   r   )r   r  rB   s      r   test_choice_nan_probabilitiesz,TestRandomDist.test_choice_nan_probabilities  sB    HZZZ  j")"2A;;;;;;r   c                     t          j        | j                  }|                    d          }d}t	          ||           d S )Nr   s
   Ui+Wf)r   r   rh   bytesr   r   s       r   
test_byteszTestRandomDist.test_bytes  s>     ++2.VW%%%%%r   c                     d d d d d d d d d	 d
 d fD ]\}t          j        | j                  } |g d          }|                    |           |} |g d          }t	          ||           ]d S )Nc                 *    t          j        g           S Nr   r4   rV   s    r   <lambda>z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rx|| r   c                     | S r%  r:   r'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    q r   c                 d    t          j        |                               t           j                  S r%  )r   asarrayastyper   r'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BG<< r   c                 d    t          j        |                               t           j                  S r%  )r   r+  r,  float32r'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BJ?? r   c                 d    t          j        |                               t           j                  S r%  )r   r+  r,  	complex64r'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BLAA r   c                 Z    t          j        |                               t                    S r%  )r   r+  r,  r  r'  s    r   r(  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   r(  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:   r4  s     r   r7  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>      *=*=*=aAq6*=*=*=r   )r   r+  r'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz*=*=1*=*=*=>> r   c                 8    t          j        | | g          j        S r%  )r   vstackTr'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    ry!Q002 r   c                     t          j        d | D             dt          fdt          fg                              t           j                  S )Nc                     g | ]}||fS r:   r:   r4  s     r   r7  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    +>+>+>qQF+>+>+>r   r  r  )r   r+  r>   r   recarrayr'  s    r   r(  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:   r4  s     r   r7  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  r:  r   r  r  )r   r+  r  r   r'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s7    rz*=*=1*=*=*=,/=3/*J L  L r   )
r(   r)   r0   r1   r2   r3      r   	   r   )
r   r(   rD  r3   r)   r1   r2   r   rC  r0   )r   r   rh   shuffler   )r   convr   alistr   r   s         r   test_shufflezTestRandomDist.test_shuffle  s     ,+ [<<??AA;;22>>224 4L LM 	0 	0D  $TY//CD77788EKK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   )r2   r1   r0   r(   r    2   )r   mamasked_valuesreshaper   r   copyr   rE  r   sorteddatamask)r   r  r  a_origb_origr6  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)   r0   r1   r2   r3   )r   r(   r)   r0   r1   r2   r3   z!you are shuffling a 'dict' objectmatchr   )r   r   UserWarningrE  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)r7   r8   r9   r:   r   r   MyArrra    s        Dr   rb  r0   r   rC  r-   c                 ,    h | ]}t          |          S r:   idr4  s     r   	<setcomp>zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<setcomp>%  s    )))aBqEE)))r   c              3   :   K   | ]}t          |          v V  d S r%  rd  r5  r6  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.*rW  c              3   :   K   | ]}t          |          v V  d S r%  rd  rh  s     r   rj  zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<genexpr>3  s.      66Qr!uu(666666r   )r   ndarrayr4   float64r  r   rU   
isinstancer   	Generatorr   r   rY  rE  )r   r   r^  rb  itemsr  ri  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                 :   t          j        | j                  }t          j        d          j        }|                    |           t          t          j        |          g d           t          j        | j                  }|                    |           t          t          j        |          g d           t          j         	                    | j                  }|                    |           t          t          j        |          g d           d S )Nr2   )r   r(   r1   r0   r)   )r   r(   r)   r0   r1   )r1   r(   r   r0   r)   )
r   r   rh   r   r   rQ  rE  r   r+  default_rng)r   r   r  s      r   test_shuffle_memoryviewz&TestRandomDist.test_shuffle_memoryview5  s      ++IaLLARZ]]OOO444 ++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 )Nr0   Fz	read-onlyrW  )	r   r@   flags	writeabler   r   r#   r   rE  )r   r  s     r   test_shuffle_not_writeablez)TestRandomDist.test_shuffle_not_writeableD  s    HQKK!]:[999 	! 	!Ia   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s    A))A-0A-c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r   ru   gAKč?ghA?g ҇o>gάXf+q?gS1$?g'8zX ?r   r   )r   r   rh   betar   r4   r   r   s       r   	test_betazTestRandomDist.test_betaJ  s|     ++"bv..()+BC)+BC)+BCEF F 	"&'2>>>>>>r   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||           d S )NrJ   gv/?r   ru   %   +   r  0   .   -   )r   r   rh   rA   r   r4   r   r   s       r   test_binomialzTestRandomDist.test_binomialS  sm     ++c4f55(RHHH& ' ' 	67+++++r   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )NrK  r   ru   g+Q]uO@g+Q@gY7`ZqP@ge(fG@gvtR@gEIȋR@   r   )r   r   rh   	chisquarer   r4   r   r   s       r   test_chisquarezTestRandomDist.test_chisquare[  sz     ++r//(13GH13GH02FGI J J 	"&'2>>>>>>r   c                    t          j        | j                  }t          j        ddg          }|                    |d          }t          j        ddgddggd	d
gddggddgddggg          }t          ||d           d S )NI<I@EZC@r   ru   gi{s?gn,	A?g]^?gpDB?gȧ#y?gr?g1U?gѨUC?g^,%?gB?gډOoX;?gM`!O?r   r   )r   r   rh   r   r4   	dirichletr   )r   r   alphar   r   s        r   test_dirichletzTestRandomDist.test_dirichletc  s     ++.0DEFFu622(13FG13FGI13FG13FGI13FG13FGI	J K K 	"&'2>>>>>>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(   rY   r)   rZ   r[   )
r   r4   r   r   r  r\   r]   r
   r"   r^   r_   s     r   test_dirichlet_sizez"TestRandomDist.test_dirichlet_sizeo  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ؗҜr2   r(   )r   r4   r
   r#   r   mtrandr  )r   r  s     r   test_dirichlet_bad_alphaz'TestRandomDist.test_dirichlet_bad_alpha{  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                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Ng8EGr?r   ru   gNU?gbI0?gVU\@g:3@gU?g"qo?r   r   )r   r   rh   exponentialr   r4   r   r   s       r   test_exponentialzTestRandomDist.test_exponential  sz     ++f55(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                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )N   M   r   ru   g7?g`j?g6"+?gܳ2>?gc>+Y?g_}S?r   r   )r   r   rh   fr   r4   r   r   s       r   test_fzTestRandomDist.test_f  s|     ++r2F++(02EF02EF02EFH I I 	"&'2>>>>>>r   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr2   r0   r   ru   gԏGM8@gȌ<@g	":@gv#)@gZQ?@gr[@@   r   )r   r   rh   gammar   r4   r   r   s       r   
test_gammazTestRandomDist.test_gamma  s|     ++1af--(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                  }|                    dd          }t	          j        ddgddgddgg          }t          ||           d S )	N_c97ݚ?r   ru   r   rC     r2   r  )r   r   rh   	geometricr   r4   r   r   s       r   test_geometriczTestRandomDist.test_geometric  sk     ++z77(QFHG% & & 	67+++++r   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr         @r   locr  rv   gؕ?gs0 ?g#0g(xg-KD?gůp`@r   r   )r   r   rh   gumbelr   r4   r   r   s       r   test_gumbelzTestRandomDist.test_gumbel  s|     ++
#FCC(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                    t          j        | j                  }|                    dddd          }t	          j        ddgddgddgg          }t          ||           |                    dddd	          }t	          j        g d
          }t          ||           |                    dddd	          }t	          j        g d          }t          ||           |                    dddd	          }t	          j        g d          }t          ||           |                    dddd	          }t	          j        g d          }t          ||           d S )Nr   r2   r  r   ru   rD  r   r0   r1   )r0   r0   r0   r0   r   r  )r  r  r  r  )r   r   r   r   )r   r   rh   hypergeometricr   r4   r   r   s       r   test_hypergeometricz"TestRandomDist.test_hypergeometric  su    ++##B2F#;;(RHHF$ % % 	67+++ ##Aq!!#44(<<<((67+++##B2A#66(+++,,67+++ ##Aq!!#44(<<<((67+++##Ar2A#66(<<<((67+++++r   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r   r  g bO?g¸?gpJm	@g{K*t	@g:^w-gY~o?r   r   )r   r   rh   laplacer   r4   r   r   s       r   test_laplacezTestRandomDist.test_laplace  s|     ++3VDD(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                  }|                    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   rh   logisticr   r4   r   r   s       r   test_logisticzTestRandomDist.test_logistic  s|     ++*CfEE(02DE02EF13FGI J J 	"&'2>>>>>>r   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r   )meansigmarv   gɁ0@go,+4FB@g)ʭ6@g5?gnxNnP@g)U@r  r   )r   r   rh   	lognormalr   r4   r   r   s       r   test_lognormalzTestRandomDist.test_lognormal  s|     ++JcGG(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                  }|                    dd          }t	          j        ddgddgddgg          }t          ||           d S )Ngƀ@?r   )rB   rv   r)   r3   r  r0   )r   r   rh   	logseriesr   r4   r   r   s       r   test_logserieszTestRandomDist.test_logseries  sk     ++&99(QFGF$ % % 	67+++++r   c                     t          j        | j                  }|                    ddgdz  d          }t	          j        g dg dgg dg d	gg d
g dgg          }t          ||           d S )NrJ  UUUUUU?r3   r   ru   )r1   r0   r2   r1   r)   r)   )r2   r)   r   r)   r)   r(   )r0   r1   r0   r3   r   r1   )r)   r(   r1   r0   r3   r1   )r1   r1   r)   r2   r)   r0   )r1   r0   r1   r)   r0   r1   )r   r   rh   rN   r   r4   r   r   s       r   test_multinomialzTestRandomDist.test_multinomial  s     ++fX\??(//////1//////1//////1	2 3 3 	67+++++r   c                 .   t          j        | j                  }d}ddgddgg}d}|                    |||          }t	          j        ddgddggd	d
gddggddgddggg          }t          ||d           |                    ||          }t	          j        ddg          }t          ||d           ddg}ddgddgg}t          j        t          |j        ||           t          |j        ||d           t          t          |j        ||d           t	          j        ddgddggt          j                  }t          j                    5  t          j        d           |                    ||           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   r   rh   multivariate_normalr   r4   r   r   r   RuntimeWarningr	   r
   r#   r.  r   r   r   )r   r   r  covrv   r   r   s          r   test_multivariate_normalz'TestRandomDist.test_multivariate_normal  sB    ++1v1v((sD99(/1BC/1BCE/1CD/1BCE/1BC02CDF	G H H 	"&'2>>>> ((s33(-/?@AA!&'2>>>> 1v1v1v^S%<dCHHH 	32D#'/	1 	1 	1 	1 	j#"94")	+ 	+ 	+ 	+ hC3(+2:>>>$&& 	/ 	/!'***##D#...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   +F

FFc                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||           d S )NrJ   g|Pk?r   )nrB   rv   iP  iI  i|  ic  i  i  )r   r   rh   r   r   r4   r   r   s       r   r   z%TestRandomDist.test_negative_binomial.  sp     ++&&V&DD(S#J #J #J( ) ) 	67+++++r   c                    t          j        | j                  }|                    ddd          }t	          j        ddgddgdd	gg          }t          ||d
           |                    ddd          }t	          j        ddgddgddgg          }t          ||d
           t          j        | j                  }|                    ddd          }t	          j        ddgddgddgg          }t          ||d
           d S )Nr2   r   )dfnoncrv   gG7@g! ܴ*@g1}z9?@g+驸0@g26E_r#@gI!1@r  r   r?   rK   g?gTD?g?T?g+qnl?g~|D?g밬?r   g{01#@gprs'@g~;$@g"dI@g*@g}',@)r   r   rh   noncentral_chisquarer   r4   r   r   s       r   test_noncentral_chisquarez(TestRandomDist.test_noncentral_chisquare6  s[    ++))QQV)DD(13GH13GH02FGI J J 	"&'2>>>>))Rbv)FF(03FG03FG.1DEG H H 	"&'2>>>> ++))QQV)DD(.0BC/1BC/1CDF G G 	"&'2>>>>>>r   c                     t          j        | j                  }|                    dddd          }t	          j        ddgdd	gd
dgg          }t          ||d           d S )Nr2   r)   r(   r   )dfnumdfdenr  rv   g^~?g/+c?g".@g@g7?gE?r  r   )r   r   rh   noncentral_fr   r4   r   r   s       r   test_noncentral_fz TestRandomDist.test_noncentral_fK  s     ++!!-3 " 5 5(02EF02EF02DEG H H 	"&'2>>>>>>r   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r   r  g&&n@gOG_@g~w@gtw]տgm&5@g$>@r   r   )r   r   rh   normalr   r4   r   r   s       r   test_normalzTestRandomDist.test_normalT  s|     ++
#FCC(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_0\  r  r   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          j                            ||d
           d S )Nr  r   r  rv   gWI@gԨy@gy]0Ag1~\Aga@gY
7A   )nulp)r   r   rh   paretor   r4   testingassert_array_almost_equal_nulpr   s       r   test_paretozTestRandomDist.test_pareto`  s     ++jv66()+BC)+BC)+BCEF F 	
11&'1KKKKKr   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgddgg          }t          ||           d S )Nr  r   )lamrv   r   r(   )r   r   rh   poissonr   r4   r   r   s       r   test_poissonzTestRandomDist.test_poissono  sk     ++&99(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_exceptionsw  s    #"j")"3V<<<j")"3fX]CCCj")"3V<<<j")"3fX]CCCCCr   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr  r   r  g;'?gܴw*?g5?gFG?g D]?g$`?r   r   )r   r   rh   powerr   r4   r   r   s       r   
test_powerzTestRandomDist.test_power  sz     ++Zf55(02EF02EF02EFH I I 	"&'2>>>>>>r   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r   )r  rv   g"u+@gN$MB*@g7v8B4@g55@ge&@g~ӣZ1@r  r   )r   r   rh   rayleighr   r4   r   r   s       r   test_rayleighzTestRandomDist.test_rayleigh  sz     ++BV44(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                  }|                    d          }t	          j        ddgddgddgg          }t          ||d	
           d S )Nr   ru   gMoDL?g6([9grF=?gM'	- gVgVA:Qy?r   r   )r   r   rh   standard_cauchyr   r4   r   r   s       r   test_standard_cauchyz#TestRandomDist.test_standard_cauchy  s{     ++$$&$11(02FG02FG13FGI J J 	"&'2>>>>>>r   c                     t          j        | j                  }|                    d          }t	          j        ddgddgddgg          }t          ||d	
           d S )Nr   ru   g܁?gc!z?g&N"@gNI@gF>?g~ME?r   r   )r   r   rh   standard_exponentialr   r4   r   r   s       r   test_standard_exponentialz(TestRandomDist.test_standard_exponential  s{     ++))v)66(02EF/1DE/1DEG H H 	"&'2>>>>>>r   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr0   r   )r]   rv   g)@gľ@gd],q@gPk{@g9B#1@gv @r  r   )r   r   rh   standard_gammar   r4   r   r   s       r   test_standard_gammaz"TestRandomDist.test_standard_gamma  s}     ++##!&#99(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                  }|                    d          }t	          j        ddgddgddgg          }t          ||d	
           d S )Nr   ru   r   r   r   r   r   r   r   r   )r   r   rh   rx   r   r4   r   r   s       r   test_standard_normalz#TestRandomDist.test_standard_normal  s{     ++$$&$11(02EF.0CD.0CDF G G 	"&'2>>>>>>r   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r   )r  rv   g\VH?ghU%gH$M?gLgVqdzǿg㖀?r   r   )r   r   rh   
standard_tr   r4   r   r   s       r   test_standard_tzTestRandomDist.test_standard_t  sz     ++2F33(02FG02FG13FGI J J 	"&'2>>>>>>r   c                     t          j        | j                  }|                    dddd          }t	          j        ddgdd	gd
dgg          }t          ||d           d S )Ng{Gz@g(\u$@gףp=
W4@r   )leftmoderightrv   g:}\)@ghرTj(@gǨL30@g6ڜA0@g6sh&@g<,@r  r   )r   r   rh   
triangularr   r4   r   r   s       r   test_triangularzTestRandomDist.test_triangular  s     ++TU+1   3 3(13FG13GH13FGI J J 	"&'2>>>>>>r   c                     t          j        | j                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )NGz?gGz%@r   )lowhighrv   g>#H@gu@g#@g}d]#@gN@gw)* @r   r   )r   r   rh   uniformr   r4   r   r   s       r   test_uniformzTestRandomDist.test_uniform  s|     ++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)r7   r8   r9   r'  r:   r   r   ThrowingFloatr$    s#                 r   r)  g      ?c                       e Zd Zd ZeZdS )ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                     t           r%  r&  r$   s    r   __int__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__  r(  r   N)r7   r8   r9   r-  	__index__r:   r   r   ThrowingIntegerr+    s$               IIIr   r/  r(   )	r   rl  r4   r   r
   r"   r   r  r  )r   r)  throwing_floatr/  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                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  p=
ף?r   mukapparv   gLZI@g'N"@gkr?gk=m@gډ?g^=\?r   r   )r   r   rh   vonmisesr   r4   r   r   s       r   test_vonmiseszTestRandomDist.test_vonmises  s|     ++T??(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 )NrQ   gg5_PG>i@B r5  )r   r   rh   r8  r  r   isfiniterU   )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                  }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r4  r   )r  r  rv   gZ@g-g@g8
m?gVP"?g`V?gx^&3?r  r   )r   r   rh   waldr   r4   r   r   s       r   	test_waldzTestRandomDist.test_wald  s|     ++t4f==(02EF02EF02EFH I I 	"&'2>>>>>>r   c                     t          j        | j                  }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr  r   r  g@6?g]A?g(1ڥR?gU?g2_u?g^}-Q?r   r   )r   r   rh   weibullr   r4   r   r   s       r   test_weibullzTestRandomDist.test_weibull  sz     ++t&11(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   rh   r   rB  r@   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                  }|                    dd          }t	          j        ddgddgddgg          }t          ||           d S )	Nr  r   r  B      r(   r0   r  )r   r   rh   zipfr   r4   r   r   s       r   	test_zipfzTestRandomDist.test_zipf  sk     ++Dv..(RHFG% & & 	67+++++r   N)Sr7   r8   r9   rh   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r"  rH  rU  r   markparametrizer   r   r   rs  r]  rq  rt  rx  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!  r2  r9  r=  r@  rC  rE  rJ  r:   r   r   r   r   4  s?        D? ? ?? ? ?, , ,, , ,& & &@ @ @? ? ?, , ,, , ,, , ,, , ,, , ,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, , ,	, 	, 	,%/ %/ %/N, , ,? ? ?*? ? ?? ? ?? ? ?L L L, , ,D D D? ? ?? ? ?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 S )!TestBroadcasti[c                 N   dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          j        | j                  }|                    ||dz            }t          ||d           d S )Nr   r(   gl?g_x?g=*BN?r0   r  r   )r   r4   r   r   rh   r  r   )r   r  r  r   r   r   s         r   r  zTestBroadcast.test_uniform,  s    cs( 1 1 1 2 2  ++S1Wd++!&'2>>>> ++S$(++!&'2>>>>>>r   c                    dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             d S )Nr   r(   r    )g-r@gYl@g-`w?r0   r  r   )	r   r4   r   r   rh   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  ++C!GU++!&'2>>>>j#*cAgyAAA ++C++!&'2>>>>j#*c9q=AAAAAr   c                 R   dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          t          |j        ||dz             d S )	Nr(   r)   r    r*   )gnQVf?gVKB?gv`k?r0   r  r   )	r   r4   r   r   rh   rz  r   r
   r#   )r   r  r  bad_abad_br   r   r   s           r   r{  zTestBroadcast.test_betaM  s*   CC( 1 1 1 2 2  ++!a%##!&'2>>>>j#(EAIq999j#(AE5999 ++!QU##!&'2>>>>j#(E1q5999j#(Auqy99999r   c                     dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             d S Nr(   r    )g.UgZ?gi Prq?gEK?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   r   r  rS  r   r   r   s         r   r  zTestBroadcast.test_exponentialb  s    D	( 1 1 1 2 2  ++++!&'2>>>>j#/9q=AAAAAr   c                     dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             d S rX  )	r   r4   r   r   rh   r  r   r
   r#   )r   r]   	bad_shaper   r   r   s         r   r  z!TestBroadcast.test_standard_gamman  s    D	( 1 1 1 2 2  ++##EAI..!&'2>>>>j#"4i!mDDDDDr   c                 R   dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          t          |j        ||dz             d S )	Nr(   r)   r    r*   )g.UgZ?gi Prq?gEK?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   )r   r]   r  r[  rS  r   r   r   s           r   r  zTestBroadcast.test_gammaz  s*   D	D	( 0 0 0 1 1  ++519e,,!&'2>>>>j#)Y]EBBBj#)UQY	BBB ++5%!),,!&'2>>>>j#)Y	BBBj#)UIMBBBBBr   c                 R   dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          t          |j        ||dz             d S )	Nr(   r)   r    r*   )gbyʜ?go?gT7@r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   )r   r  r  	bad_dfnum	bad_dfdenr   r   r   s           r   r  zTestBroadcast.test_f  s*   D	D	( 0 0 0 1 1  ++uqy%((!&'2>>>>j#%Q>>>j#%I>>> ++ueai((!&'2>>>>j#%EAI>>>j#%	A>>>>>r   c                 4   dg}dg}dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  ||          }	t          |	|d	           t          t          |j        |dz  ||           t          t          |j        |dz  ||           t          t          |j        |dz  ||           t          j        | j                  }|                    ||dz  |          }	t          |	|d	           t          t          |j        ||dz  |           t          t          |j        ||dz  |           t          t          |j        ||dz  |           t          j        | j                  }|                    |||dz            }	t          |	|d	           t          t          |j        |||dz             t          t          |j        |||dz             t          t          |j        |||dz             d S )
Nr)   r0   r1   r   r    r*   )gr^G"@g/*@gц!@r  r   )	r   r4   r   r   rh   r  r   r
   r#   )
r   r  r  r  r^  r_  bad_noncr   r   r   s
             r   r  zTestBroadcast.test_noncentral_f  s   sC	D	4( 0 0 0 1 1  ++!!%!)UD99!&'2>>>>j#"2IM5$OOOj#"2EAIy$OOOj#"2EAIuhOOO ++!!%D99!&'2>>>>j#"2Iuqy$OOOj#"2E9q=$OOOj#"2E519hOOO ++!!%q99!&'2>>>>j#"2IudQhOOOj#"2E9dQhOOOj#"2E5(Q,OOOOOr   c                     t          j        | j                  }t          j        ddg          }|                    dddd          }t          ||d           d S )Ngaz@gn4M;%?r  r)   ru   r  r   )r   r   rh   r   r4   r  r   )r   r   r   r   s       r   test_noncentral_f_small_dfz(TestBroadcast.test_noncentral_f_small_df  sa     ++(-/@ABB!!#sAA!66!&'2>>>>>>r   c                     dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nr(   r    )g~}N??g$F?g'rS?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   r   r  bad_dfr   r   r   s         r   r  zTestBroadcast.test_chisquare  s    S( 0 0 0 1 1  ++rAv&&!&'2>>>>j#-!<<<<<r   c                 R   dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          t          |j        ||dz             d S )	Nr(   r)   r    r*   )g w "@g2WR@gRY@r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   )r   r  r  rf  ra  r   r   r   s           r   r  z'TestBroadcast.test_noncentral_chisquare  s2   Ss4( 0 0 0 1 1  ++))"q&$77!&'2>>>>j#":FQJMMMj#":BFHMMM ++))"dQh77!&'2>>>>j#":FD1HMMMj#":B1MMMMMr   c                     dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nr(   r    )gT@g~Fl@gƚtp?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   re  s         r   r  zTestBroadcast.test_standard_t  s    S( 0 0 0 1 1  ++Q''!&'2>>>>j#.&1*=====r   c                    dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             d S )Nr)   r(   r    )gW!@gOBg}?r0   r  r   )	r   r4   r   r   rh   r8  r   r
   r#   )r   r6  r7  	bad_kappar   r   r   s          r   r9  zTestBroadcast.test_vonmises  s    SD	( 1 1 1 2 2  ++b1fe,,!&'2>>>>j#,Q	BBB ++b%!),,!&'2>>>>j#,IMBBBBBr   c                     dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nr(   r    )g&8??geFX?gՋː?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   r   r  rU  r   r   r   s         r   r  zTestBroadcast.test_pareto	  s    C( 0 0 0 1 1  ++AE""!&'2>>>>j#*eai88888r   c                     dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             d S rX  )	r   r4   r   r   rh   rB  r   r
   r#   rl  s         r   rC  zTestBroadcast.test_weibull  s    C( 1 1 1 2 2  ++QU##!&'2>>>>j#+uqy99999r   c                     dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nr(   r    rP  r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   rl  s         r   r  zTestBroadcast.test_power!  s    C( 1 1 1 2 2  ++1q5!!!&'2>>>>j#)UQY77777r   c                    dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             d S )Nr   r(   r    )g:BKc?g3k?g~q?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   rR  s          r   r  zTestBroadcast.test_laplace-  s    cD	( 2 2 2 3 3  ++S1We,,!&'2>>>>j#+sQw	BBB ++S%!),,!&'2>>>>j#+sIMBBBBBr   c                    dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             d S )Nr   r(   r    )g'Zy?gdSO=?g3L1?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   rR  s          r   r  zTestBroadcast.test_gumbel?  s    cD	( 1 1 1 2 2  ++C!GU++!&'2>>>>j#*cAgyAAA ++C++!&'2>>>>j#*c9q=AAAAAr   c                    dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             d S )Nr   r(   r    )gy?gJR?g
~&?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   rR  s          r   r  zTestBroadcast.test_logisticQ  s    cD	( 2 2 2 3 3  ++cAgu--!&'2>>>>j#,aCCC ++c519--!&'2>>>>j#,Y]CCCCCr   c                    dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             d S )Nr   r(   r    )gH"@gܮ @gvv	:@r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   )r   r  r  	bad_sigmar   r   r   s          r   r  zTestBroadcast.test_lognormalc  s    sD	( 0 0 0 1 1  ++tax//!&'2>>>>j#-9EEE ++tUQY//!&'2>>>>j#-y1}EEEEEr   c                     dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nr(   r    )gݱlo?g/ӂ?gz~R?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   rY  s         r   r  zTestBroadcast.test_rayleighu  s    D	( 0 0 0 1 1  ++eai((!&'2>>>>j#,	A>>>>>r   c                    dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          t          |j        ||dz             t          t          |j        d	d           t          t          |j        dd	           d S )
Nr?   r(   r   r*   )g@m e?g`I߿?g|2?r0   r  r   rQ   )	r   r4   r   r   rh   r?  r   r
   r#   )r   r  r  bad_meanrS  r   r   r   s           r   r@  zTestBroadcast.test_wald  sV   u3D	( 0 0 0 1 1  ++$(E**!&'2>>>>j#(HqL%@@@j#(D1Hi@@@ ++$	**!&'2>>>>j#(Heai@@@j#(D)a-@@@j#(C333j#(C55555r   c                 >   dg}dg}dg}dg}dg}|dz  \  }}t          j        g d          }t          j        | j                  }	|	                    |dz  ||          }
t          |
|d           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          j        | j                  }	|	                    ||dz  |          }
t          |
|d           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          j        | j                  }	|	                    |||dz            }
t          |
|d           t          t          |	j        |||dz             t          t          |	j        |||dz             t          t          |	j        |||dz             d S )Nr(   r0   r)   r1   )g,P;bD @g%G @g,~S @r  r   )	r   r4   r   r   rh   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  s8   ssss%*QY"l( 0 0 0 1 1  ++q$66!&'2>>>>j#.,2BD%PPPj#.$(L%PPPj#.,2BL	 	 	  ++dQh66!&'2>>>>j#.,q%PPPj#.$q8H%PPPj#.,q@P	 	 	  ++dEAI66!&'2>>>>j#.,eaiPPPj#.$eaiPPPj#.,ai	! 	! 	! 	! 	!r   c                    dg}dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||           t          t          |j        |dz  |           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||           t          t          |j        ||dz             t          t          |j        ||dz             t          t          |j        ||dz             d S )Nr(   r?   r          ?r(   r(   r(   r0   )	r   r4   r   r   rh   rA   r   r
   r#   	r   r  rB   bad_n	bad_p_one	bad_p_twor   r   r   s	            r   r  zTestBroadcast.test_binomial  sL   CED	E	(999%% ++a!eQ''67+++j#,	1===j#,AyAAAj#,AyAAA ++aQ''67+++j#,q1u===j#,9q=AAAj#,9q=AAAAAr   c                    dg}dg}dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz  |          }t          ||           t          t          |j        |dz  |           t          t          |j        |dz  |           t          t          |j        |dz  |           t          j        | j                  }|                    ||dz            }t          ||           t          t          |j        ||dz             t          t          |j        ||dz             t          t          |j        ||dz             d S )Nr(   r?   r    r}  )r(   r   r(   r0   )	r   r4   r   r   rh   r   r   r
   r#   r  s	            r   r   z$TestBroadcast.test_negative_binomial  sV   CED	E	(999%% ++&&q1ua0067+++j#"7AFFFj#"7Q	JJJj#"7Q	JJJ ++&&q!a%0067+++j#"7AFFFj#"7IMJJJj#"7IMJJJJJr   c                    t           j                                        j        }dg}dg}|dz  g}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||           t          t          |j        |dz             t          t          |j        |dz             d S )Nr(   r    r)   )r(   r(   r   r0   )
r   r   r   _poisson_lam_maxr4   rh   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%% ++S1W%%67+++j#+{Q???j#+{Q?????r   c                    dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||           t          t          |j        |dz             t          j	        d          5  t          t          |j        t           j
                   t          t          |j        ddt           j
        g           d d d            d S # 1 swxY w Y   d S )Nr)   r   )r)   r)   r(   r0   r  )invalid)r   r4   r   r   rh   rI  r   r
   r#   errstaterE   rl  s         r   rJ  zTestBroadcast.test_zipf  s-   C(999%% ++!a%67+++j#(EAI666[*** 	@ 	@*ch777*chArv???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   AC,,C03C0c                 >   dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||           t          t          |j        |dz             t          t          |j        |dz             d S )Nr?   r    r}  rZ   r0   )	r   r4   r   r   rh   r  r   r
   r#   r   rB   r  r  r   r   r   s          r   r  zTestBroadcast.test_geometric  s    ED	E	(999%% ++q1u%%67+++j#-Q???j#-Q?????r   c                    dg}dg}dg}dg}dg}dg}dg}t          j        g d          }t          j        | j                  }	|	                    |dz  ||          }
t          |
|           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          j        | j                  }	|	                    ||dz  |          }
t          |
|           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          j        | j                  }	|	                    |||dz            }
t          |
|           t          t          |	j        |||dz             t          t          |	j        |||dz             t          t          |	j        |||dz             t          t          |	j        |||dz             d S )	Nr(   r)   r    r*   r   r1   r~  r0   )	r   r4   r   r   rh   r  r   r
   r#   )r   ngoodnbadnsample	bad_ngoodbad_nbadbad_nsample_onebad_nsample_twor   r   r   s              r   r  z!TestBroadcast.test_hypergeometric  se   s#D	4##(999%% ++##EAItW==67+++j#"4i!mT7SSSj#"4eai7SSSj#"4eaiWWWj#"4eaiWWW ++##E4!8W==67+++j#"4i7SSSj#"4eX\7SSSj#"4eTAXWWWj#"4eTAXWWW ++##E41==67+++j#"4iwQR{SSSj#"4eXwQR{SSSj#"4eT?UVCVWWWj#"4eT?UVCVWWWWWr   c                 >   dg}dg}dg}t          j        g d          }t          j        | j                  }|                    |dz            }t          ||           t          t          |j        |dz             t          t          |j        |dz             d S )Nr?   r)   r    r~  r0   )	r   r4   r   r   rh   r  r   r
   r#   r  s          r   r  zTestBroadcast.test_logseries0  s    EC	D	(999%% ++q1u%%67+++j#-Q???j#-Q?????r   N)"r7   r8   r9   rh   r  r  r{  r  r  r  r  r  rc  r  r  r  r9  r  rC  r  r  r  r  r  r  r@  r  r  r   r  rJ  r  r  r  r:   r   r   rN  rN  $  s        D
? ? ?B B B$: : :*
B 
B 
B
E 
E 
EC C C*? ? ?*P P P@? ? ?
= 
= 
=N N N*
> 
> 
>C C C$
9 
9 
9
: 
: 
:
8 
8 
8C C C$B B B$D D D$F F F$
? 
? 
?6 6 6.!! !! !!FB B B,K K K,@ @ @@ @ @
@ 
@ 
@ X  X  XD
@ 
@ 
@ 
@ 
@r   rN  zcan't start thread)reasonc                   <    e Zd Z ed          Zd Zd Zd Zd ZdS )
TestThreadr1   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   )r5  r   or  functions      r   r7  z-TestThread.check_function.<locals>.<listcomp>I  sQ     0 0 0A V829+@+@+C+CQ*GHHH 0 0 0r   c                 6    g | ]}|                                 S r:   )startr5  rV   s     r   r7  z-TestThread.check_function.<locals>.<listcomp>K  s     qr   c                 6    g | ]}|                                 S r:   )joinr  s     r   r7  z-TestThread.check_function.<locals>.<listcomp>L  s     ar   r1   win32)	threadingr  r   r  lenseedszipr   r   intpr.   itemsizer   platformr   r   )	r   r  szout1out2tr   r  r  s	    `      @r   check_functionzTestThread.check_functionB  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'  ru   .)r  rj   outs     r   
gen_randomz*TestThread.test_normal.<locals>.gen_randomY  s    |||//CHHHr   )r  r  r  r   r  s     r   r  zTestThread.test_normalX  s0    	0 	0 	0J844444r   c                 :    d }|                      |d           d S )Nc                 \    |                      t          j        d                    |d<   d S )NrJ   r   r  .)r  r   onesr  s     r   r  z'TestThread.test_exp.<locals>.gen_random^  s*    ((rw{/C/C(DDCHHHr   r  r  r  r  s     r   test_expzTestThread.test_exp]  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  r3   r  ru   .)rN   r  s     r   r  z/TestThread.test_multinomial.<locals>.gen_randomc  s*    ((fX\(FFCHHHr   )r  r3   r  r  r  s     r   r  zTestThread.test_multinomialb  s3    	G 	G 	GJ:66666r   N)	r7   r8   r9   r   r  r  r  r  r  r:   r   r   r  r  =  s_         E!HHE+ + +,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fS )Nr)   r0   r1   )r(   r&  r$   s    r   _create_arraysz&TestSingleEltArrayInput._create_arraysj  s/    x}}bhsmmRXqc]]D@@r   c                    |                                  \  }}}}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 ]E}||v r |t          j        dg                    }n ||          }t!          |j        |           Fd S r   )r  r   r   r  r  r  r  r  rB  r  r  r  rI  r  r  r4   r   r]   )r   argOner   tgtShapefuncs	probfuncsr   r  s           r   test_one_arg_funcsz*TestSingleEltArrayInput.test_one_arg_funcsm  s    !%!4!4!6!61h&	(@$bi&:!29#4")"4"BIN$bi&9; Y(")*=>	 	. 	.Dy  d28SE??++ d6llH----	. 	.r   c                 `   |                                  \  }}}}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|} |||          }t%          |j        |            ||d         |          }t%          |j        |            |||d                   }t%          |j        |           d S )Nr?   r   )r  r   r   r  r  rz  r  r  r  r8  r  r  r  r  r?  rA   r   r4   r   r]   )	r   r  argTwor   r  r  r  r   r  s	            r   test_two_arg_funcsz*TestSingleEltArrayInput.test_two_arg_funcs  sO   &*&9&9&;&;#8"BI$4bi<#RY%6!29#5$bin#RY%@B Y')DE	 	. 	.Dy  3%  $vv&&CH---$vay&))CH---$vvay))CH----	. 	.r   c           	      b   |                                  \  }}}}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 ]w} ||||          }t          |j        |            ||d         ||          }t          |j        |            |||d         |          }t          |j        |           xd S )Nr(   r   r-   )r  r   r   r   r   r   r   r   r\   r5   r   r   r   r4   r   r]   )	r   r   r  r   r   r  r  r   r  s	            r   r   z$TestSingleEltArrayInput.test_randint  s    //111arw"(BI29bh	;y x}}hsmm 	. 	.B$sD+++CH---$s1vt2...CH---$sDG2...CH----	. 	.r   c                    |                                  \  }}}}t          j        j        t          j        j        t          j        j        g}|D ]t} ||||          }t          |j        |            ||d         ||          }t          |j        |            |||d         |          }t          |j        |           ud S )Nr   )r  r   r   r  r  r  r   r]   )r   r  r  argThreer  r  r   r  s           r   test_three_arg_funcsz,TestSingleEltArrayInput.test_three_arg_funcs  s    -1-@-@-B-B*(')=)+  	. 	.D$vvx00CH---$vay&(33CH---$vvay(33CH----	. 	.r   N)r7   r8   r9   r  r  r  r   r  r:   r   r   r  r  i  sb        A A A. . .(. . .8. . .$. . . . .r   r  )r   r   r   numpyr   r   numpy.testingr   r   r   r   r   r	   r
   r   r<   rH   rd   r   r   rN  rK  skipifr  r  r:   r   r   <module>r     sn   



                             $F $F $F $F $F $F $F $FN> > > > > > > >Y Y Y Y Y Y Y YD8 8 8 8 8 8 8 8vK+ K+ K+ K+ K+ K+ K+ K+\m, m, m, m, m, m, m, m,`V@ V@ V@ V@ V@ V@ V@ V@r G$899'7 '7 '7 '7 '7 '7 '7 :9'7VS. S. S. S. S. S. S. S. S. S.r   