
    eh(                       d dl Zd dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZ  e e                      Zd dddd	d
dd	dddddd	ddd	dg ddddd	ddd	dgZ ej        dddg          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$ G d* d+          Z% G d, d-          Z&ej'        (                    ed./           G d0 d1                      Z) G d2 d3          Z*ej'        +                    d4e          d5             Z,d6 Z-d7 Z.d8 Z/ej'        +                    d9d:d:gg          ej'        +                    d;ddg          d<                         Z0ej'        +                    d=d>d?g          d@             Z1ej'        +                    d=d>d?g          ej'        +                    dAdBdCg          ej'        +                    dDej2        ej        g          dE                                     Z3dF Z4dG Z5ej'        +                    dHdIdJg          dK             Z6dS )L    N)	AxisError)LinAlgError)
assert_assert_raisesassert_equalassert_allcloseassert_warnsassert_no_warningsassert_array_equalassert_array_almost_equalsuppress_warningsIS_WASM)	GeneratorMT19937SeedSequenceRandomState
   @bb1636883c2707b51c5b7fc26c6927af4430f2e0785a8c7bc886337f919f9edf	   )
key_sha256pos@ff682ac12bb140f2d72fba8d3506cf4e46817a0db27aae1683867629031d8d55iV  )seedstepsinitialjumpedi$<i8  @16b791a1e04886ccbbb4d448d6ff791267dc458ae599475d08d5cced29d11614i7  @a0110a2cf23b56be0feaed8f787a7fc84bef0cb5623003d75b26bdfa1c18002ci  )i|2iEm:iS43i5  i  @d306cf01314d51bd37892d874308200951a35265ede54d200f1e065004c3e9eai  @0e00ab449f01a5195a83b4aee0dfbc2ce8d46466a640b92e33977d2e42f777f8i  moduleTF)scopeparamsc                     | j         S N)param)requests    f/var/www/FlaskApp/flask-venv/lib/python3.11/site-packages/numpy/random/tests/test_generator_mt19937.pyendpointr)   )   s
    =    c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestSeedc                    t          t          d                    }t          |                    d          d           t          t          d                    }t          |                    d          d           d S )Nr           D  )r   r   r   integersselfss     r(   test_scalarzTestSeed.test_scalar/   sh    gajj!!QZZ%%s+++gj))**QZZ%%s+++++r*   c                 @   t          t          t          d                              }t          |                    d          d           t          t          t          j        d                              }t          |                    d          d           t          t          dg                    }t          |                    d          d           t          t          dg                    }t          |                    d          d           d S )Nr   r.   i  r   r/   r0   r1   )r   r   ranger   r2   nparanger3   s     r(   
test_arrayzTestSeed.test_array5   s    geBii(())QZZ%%s+++gbimm,,--QZZ%%s+++gqcll##QZZ%%s+++gzl++,,QZZ%%s+++++r*   c                     t          t          d                    }t          |                    d          d           d S )Nr      iz)r   r   r   
random_rawr3   s     r(   test_seedsequencezTestSeed.test_seedsequence?   s5    LOO$$Q\\!__j11111r*   c                 r    t          t          t          d           t          t          t          d           d S )N      r   	TypeErrorr   
ValueErrorr4   s    r(   test_invalid_scalarzTestSeed.test_invalid_scalarC   s,    i$///j'2.....r*   c                     t          t          t          dg           t          t          t          dg           t          t          t          g d           d S )NrA   rB   )r=           rC   rF   s    r(   test_invalid_arrayzTestSeed.test_invalid_arrayH   sI    i4&111j'B4000j'+>+>+>?????r*   c                 F    t          t          t          t                     d S r%   )r   rE   r   r   rF   s    r(   test_noninstantized_bitgenz#TestSeed.test_noninstantized_bitgenN   s    j)W55555r*   N)	__name__
__module____qualname__r6   r;   r?   rG   rK   rM    r*   r(   r,   r,   .   sq        , , ,, , ,2 2 2/ / /
@ @ @6 6 6 6 6r*   r,   c                       e Zd Zd Zd ZdS )TestBinomialc                     t          j        dd          }dD ]W}t          t                              d|          dk               t          t                              ||          |           Xd S )N   intdtype)r         ?r=   r   )r9   zerosr   randombinomialr   )r4   rZ   ps      r(   test_n_zerozTestBinomial.test_n_zeroS   sw     %((( 	A 	AAFOOAq))Q.///vua88%@@@@	A 	Ar*   c                 \    t          t          t          j        dt          j                   d S )Nr=   )r   rE   r[   r\   r9   nanrF   s    r(   test_p_is_nanzTestBinomial.test_p_is_nan\   s     j&/1bf=====r*   N)rN   rO   rP   r^   ra   rQ   r*   r(   rS   rS   R   s5        A A A> > > > >r*   rS   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestMultinomialc                 @    t                               dddg           d S )Nd   皙?皙?r[   multinomialrF   s    r(   
test_basiczTestMultinomial.test_basicb   s"    3c
+++++r*   c                 @    t                               dg d           d S )Nre   )rf   rg           rl   rl   rh   rF   s    r(   test_zero_probabilityz%TestMultinomial.test_zero_probabilitye   s%    3 9 9 9:::::r*   c                 >   t          dt                              dd          cxk    odk     nc            t                              ddd          }t          t          j        d|k                         t          t          j        |dk                          d S )NrB      )r   r[   r2   r9   allr4   xs     r(   test_int_negative_intervalz*TestMultinomial.test_int_negative_intervalh   s    foob"--22222222333OOBA&&rQw   q2vr*   c           	      4   ddg}t          t                              d|t          j        d                    j        d           t          t                              d|t          j        d                    j        d           t          t                              d|t          j        d                    j        d           t          t                              d|ddg          j        d           t          t                              d|d          j        d           t          t                              d|t          j        d                    j        d           t          t          t          j        d|t          d                     d S )NrY   r=   r=   rU   rU   rU   rU   rU   rU   rU   )
r   r[   ri   r9   uint32shapearrayr   rD   floatr4   r]   s     r(   	test_sizezTestMultinomial.test_sizen   sH   #JV''1bill;;A6JJJV''1bill;;A6JJJV''1bill;;A6JJJV''1q!f55;YGGGV''1f55;YGGGV''1bhv.>.>??E	  	  	  	i!3QAhh	  	  	  	  	 r*   c                     t          t          t          j        dddg           t          t          t          j        dddg           d S )Nre   皙?rf   皙?r   rE   r[   ri   rF   s    r(   test_invalid_probz!TestMultinomial.test_invalid_prob|   s>    j&"4cC:FFFj&"4cC:FFFFFr*   c                     t          t          t          j        dddg           t          t          t          j        dgdz  ddg           d S )NrB   rg   rf   r   r   rF   s    r(   test_invalid_nzTestMultinomial.test_invalid_n   sD    j&"4b3*EEEj&"4rdRi#sLLLLLr*   c                    t          j        d          }|t          j        |dd d                   z  }|dd d         }t          t	          d                    }|                    d|          }t          t	          d                    }|                    dt          j        |                    }t          ||           d S )Ng      .@r=      ۠iUre   )pvals)r9   r:   sumr   r   ri   ascontiguousarrayr   )r4   r]   r   r[   
non_contigcontigs         r(   test_p_non_contiguousz%TestMultinomial.test_p_non_contiguous   s    IcNN	RVAaddG__!$Q$7:..//''5'99
7:..//##Cr/CE/J/J#KK:v.....r*   c                 H   t          j        g dt           j                  }||                                z  }t	          t          d                    }d}t          j        t          |          5  |	                    d|           d d d            d S # 1 swxY w Y   d S )N)
Gz?r   &.>r   r   r   r   r   r   r   rW   r   z-[\w\s]*pvals array is cast to 64-bit floatingmatchr=   )
r9   r{   float32r   r   r   pytestraisesrE   ri   )r4   rs   r   r[   r   s        r(   test_multinomial_pvals_float32z.TestMultinomial.test_multinomial_pvals_float32   s    H : : :ACM M MAEEGG7:..//@]:U333 	) 	)q%(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   3BBBN)rN   rO   rP   rj   rm   rt   r~   r   r   r   r   rQ   r*   r(   rc   rc   a   s        , , ,; ; ;          G G GM M M/ / /) ) ) ) )r*   rc   c                   P   e Zd Zd Zd Zej                            dddg          d             Zej                            dg d          ej                            dddg          ej                            d	g d
          d                                     Z	d Z
d Zd ZdS )TestMultivariateHypergeometricc                     d| _         d S )Ni_ r   rF   s    r(   setup_methodz+TestMultivariateHypergeometric.setup_method   s    			r*   c                 ^   t          t          t          j        dd           t          t          t          j        g dd           t          t          t          j        g dd           t          t          t          j        g dd           t          t          t          j        g d           t          t          t          j        dd	gd
dd           t	          j        t          j                  }|j        }||j        j	        z  }t          t          t          j        |dz
  d	gd
dd           d S )Nr      )rU   r   r   rB   )rB   rU   r   rU   r=   iɚ;e   rp   	marginalsre   count)
r   rE   r[   multivariate_hypergeometricr9   iinfoint64maxrX   itemsize)r4   
int64_info	max_int64max_int64_indexs       r(   test_argument_validationz7TestMultivariateHypergeometric.test_argument_validation   s<    	j&"D!	 	 	 	j&"Dii	% 	% 	% 	j&"D jj!	% 	% 	% 	j&"Dii	% 	% 	% 	j&"D!	 	 	 	j&"D #&1k	; 	; 	; Xbh''
N	#z'7'@@j&"D&,c2Aq'	C 	C 	C 	C 	Cr*   methodr   r   c                    t          t          | j                            }|                    g dd|          }t	          |g d           |                    g d|          }t	          |g            |                    g dd|          }t	          |t          j        dt
          j                             |                    g dd|          }t	          |g d           |                    g d	d
|          }t	          |g d           g d}|                    |t          |          |          }t	          ||           |                    g ddd
|          }t	          |g dgd
z             d S )Nr   r   r   r   r   r=   sizer   )r=   r   rW   r=   rU   r   )r   r   r   r   )r   r   r   )r=   r=   r   r=   r=   r   r   rp      )	r   r   r   r   r   r9   emptyr   r   )r4   r   r[   rs   colorss        r(   test_edge_casesz.TestMultivariateHypergeometric.test_edge_cases   s    749--....yyy!F.KK1iii(((..r1V.DD1b!!!..r11V.LL1bhvRX>>>???..yyy!F.KK1iii(((..yyy!F.KK1iii((( ..vs6{{6< / > >1f%%%..yyy"16< / > >1yyyk!m,,,,,r*   nsample)      -   7   r   )rp   rU   r   iI c                    t          t          | j                            }t          j        g d          }|                    ||||          }t          |t                    r|f|j        z   }n
||j        z   }t          |j        |           t          |dk                                               t          ||k                                               t          |                    d          t          j        ||t                               t          |t                    rG|dk    rCt          |                    d          ||z  |                                z  dd	
           d S d S d S )N)r   rp      r   r   r   rB   axis)
fill_valuerX   順 MbP?{Gzt?)rtolatol)r   r   r   r9   r{   r   
isinstancerV   rz   r   r   rq   r   r   fullr   mean)r4   r   r   r   r[   r   sampleexpected_shapes           r(   test_typical_casesz1TestMultivariateHypergeometric.test_typical_cases   s~    749--..///**33FGT;A 4 C CdC   	1"Wv|3NN!FL0NV\>2221!!##$$$6!&&(()))6::2:..74G3GGG	I 	I 	IdC   	3TV^^ FKKQK//#f,vzz||;!%E3 3 3 3 3 3	3 	3^^r*   c                     t          t          | j                            }|                    g dddd          }t	          j        g dg dg dg dg dg          }t          ||           d S )Nr   rp   r   r   )rU   r=   rU   r=   r=   r   rU   r   r   r   r   r   r   r9   r{   r   r4   r[   r   expecteds       r(   test_repeatability1z2TestMultivariateHypergeometric.test_repeatability1   s    749--..33IIIqq;B 4 D D8YYY&YY&YY&YY&YY	( ) )
 	68,,,,,r*   c                     t          t          | j                            }|                    g dddd          }t	          j        g dg dg dg dg d	g          }t          ||           d S )
Nr      2   r   rp   r   r   )r         )      r   )r         )r      r   r   r   s       r(   test_repeatability2z2TestMultivariateHypergeometric.test_repeatability2  s    749--..33LLL"9:;F 4 H H 8\\\)\\)\\)\\)\\	+ , ,
 	68,,,,,r*   c                     t          t          | j                            }|                    g dddd          }t	          j        g dg dg dg dg d	g          }t          ||           d S )
Nr   r   rp   r   r   )rU   r   r   )rp   r   r   )rU   rp   rp   )r=   rp      r   r   s       r(   test_repeatability3z2TestMultivariateHypergeometric.test_repeatability3  s    749--..33LLL"9:;F 4 H H 8YYY&YY&YY&YY&YY	( ) )
 	68,,,,,r*   N)rN   rO   rP   r   r   r   markparametrizer   r   r   r   r   rQ   r*   r(   r   r      s         C C CB [X'=>>- - ?>-D [Y88[X'=>>[V%8%8%8993 3 :9 ?> 983,	- 	- 	-
- 
- 
-
- 
- 
- 
- 
-r*   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestSetStatec                    d| _         t          t          | j                             | _        | j        j        | _        | j        j        | _        | j        d         | j        d         d         | j        d         d         f| _        d S )NIbit_generatorstatekeyr   )r   r   r   rgr   r   legacy_staterF   s    r(   r   zTestSetState.setup_method  st    	GDI..//!W2'-
!Z8!Z07!Z079r*   c                     | j                             d          }| j        | j        _        | j                             d          }t	          t          j        ||k                         d S Nr   r   )r   standard_normalr   r   r   r9   rq   )r4   oldnews      r(   test_gaussian_resetz TestSetState.test_gaussian_reset(  sa    g%%1%--#': g%%1%--scz""#####r*   c                    | j                                          | j        j        }| j                             d          }|| j        _        | j                             d          }t	          t          j        ||k                         d S r   )r   r   r   r   r   r9   rq   )r4   r   r   r   s       r(    test_gaussian_reset_in_media_resz-TestSetState.test_gaussian_reset_in_media_res/  s     	!!!"(g%%1%--#( g%%1%--scz""#####r*   c                 <    | j                             dd           d S NrY   )r   negative_binomialrF   s    r(   test_negative_binomialz#TestSetState.test_negative_binomial:  s"     	!!#s+++++r*   N)rN   rO   rP   r   r   r   r   rQ   r*   r(   r   r     sP        9 9 9$ $ $	$ 	$ 	$, , , , ,r*   r   c                   d   e Zd Zej        Ze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	 Zd
 Zd Zej                            dd ej        g d          fd ej        g d          fd ej        g d          fg          d             Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'ej        j(        ej                            dddej        dfddej	        d fd!d"ej
        d#fd$d%ej        d&fg          d'                         Z)d(S ))TestIntegersc                 L    t          t          | j        d|t                     d S Nr=   r)   rX   )r   rD   rfuncr|   )r4   r)   s     r(   test_unsupported_typez"TestIntegers.test_unsupported_typeG  s#    iQOOOOOOr*   c           	      "   | j         D ]}|t          u rdnt          j        |          j        }|t          u rdnt          j        |          j        dz   }|r|dz
  n|}t          t          | j        |dz
  |||           t          t          | j        ||dz   ||           t          t          | j        ||||           t          t          | j        dd||           t          t          | j        |dz
  g|||           t          t          | j        |g|dz   g||           t          t          | j        |g|g||           t          t          | j        ddg||           t          t          | j        |dz   g|g||           d S Nr   rU   r=   r   	itypeboolr9   r   minr   r   rE   r  r4   r)   dtlbndubnds        r(   test_bounds_checkingz!TestIntegers.test_bounds_checkingJ  s   * 	7 	7Bd

11(8Dd

11(81(<D'14!88TD*dj$(D#+27 7 7 7*dj$q#+27 7 7 7*dj$#+27 7 7 7*dj!Q "$ $ $ $ *dj4!8*d#+27 7 7 7*dj4&4!8*#+27 7 7 7*dj4&4&#+27 7 7 7*dj!aS#+27 7 7 7*dj46(TF#+27 7 7 7 7+	7 	7r*   c           	         | j         D ]}|t          u rdnt          j        |          j        }|t          u rdnt          j        |          j        | z   }t          t          | j        |dz
  gdz  |gdz  ||           t          t          | j        |gdz  |dz   gdz  ||           t          t          | j        ||gdz  ||           t          t          | j        dgdz  d||           d S r  r  r	  s        r(   test_bounds_checking_arrayz'TestIntegers.test_bounds_checking_arrayc  s)   * 	7 	7Bd

11(8Dd

11(8L(ID*dj4!8*q.4&1*#+27 7 7 7*dj4&1*!8*q.82G G G G*dj$
#+27 7 7 7*dj1#'1#+27 7 7 7 7	7 	7r*   c           
         | j         D ]o}|t          u rdnt          j        |          j        }|t          u rdnt          j        |          j        dz   }|r|dz
  n|}| }|dz
  }t          |                     |||z   d||          |           t          |                     |g||z   d||          |           |}t          |                     |||z   d||          |           t          |                     |||z   gd||          |           ||z   dz  }t          |                     |||z   d||          |           t          |                     |g||z   gd||          |           qd S )Nr   rU   r=   r.   r   r)   rX   r  r  r9   r   r  r   r   r  )r4   r)   r
  r  r  is_opentgts          r(   test_rng_zero_and_extremesz'TestIntegers.test_rng_zero_and_extremesq  s   * 	 	Bd

11(8Dd

11(81(<D'14!88TD"lG(CCwT-5R $ A ABEG G GSE3=t-5R $ A ABEG G G CCwT-5R $ A ABEG G GC#-t-5R $ A ABEG G G $;1$CCwT-5R $ A ABEG G GSEC'M?)- $ L L   +	 	r*   c           	      B   d}| j         D ]}|t          u rdnt          j        |          j        }|t          u rdnt          j        |          j        dz   }|r|dz
  n|}|dz
  }t          |                     |g|dz   g||          |           t          |                     |g|z  |dz   g|z  |          |           t          |                     |g|z  |dz   g|z  ||          |           |}t          |                     |g|dz   g||          |           t          |                     |g|z  |dz   g|z  |          |           t          |                     |g|z  |dz   g|z  ||          |           ||z   dz  }t          |                     |g|dz   g||          |           t          |                     |g|z  |dz   g|z  |          |           t          |                     |g|z  |dz   g|z  ||          |           d S )Nr.   r   rU   r=   r   rX   rW   r  )r4   r)   r   r
  r  r  r  s          r(    test_rng_zero_and_extremes_arrayz-TestIntegers.test_rng_zero_and_extremes_array  s   * 	K 	KBd

11(8Dd

11(81(<D'14!88TD(CSEC!G9)-R $ 9 9:=? ? ?sQwi$.b $ : :;>@ @ @sQwi$.T $ E EFIK K K CSEC!G9)-R $ 9 9:=? ? ?sQwi$.b $ : :;>@ @ @sQwi$.T $ E EFIK K K $;1$CSEC!G9)-R $ 9 9:=? ? ?sQwi$.b $ : :;>@ @ @sQwi$.T $ E EFIK K K K5	K 	Kr*   c                 X   | j         D ]}|t          u rdnt          j        |          j        }|t          u rdnt          j        |          j        dz   }|r|dz
  n|}	 |                     ||||           q# t          $ r$}t          dt          |          z            d }~ww xY wd S Nr   rU   r=   r   zMNo error should have been raised, but one was with the following message:

%s
r  r  r9   r   r  r   r  	ExceptionAssertionErrorstrr4   r)   r
  r  r  es         r(   test_full_rangezTestIntegers.test_full_range  s     * 
	@ 
	@Bd

11(8Dd

11(81(<D'14!88TD@

4
CCCC @ @ @$ &68;A&? @ @ @@
	@ 
	@s   A99
B'B""B'c                 b   | j         D ]}|t          u rdnt          j        |          j        }|t          u rdnt          j        |          j        dz   }|r|dz
  n|}	 |                     |gdz  |g||           v# t          $ r$}t          dt          |          z            d }~ww xY wd S r  r  r  s         r(   test_full_range_arrayz"TestIntegers.test_full_range_array  s     * 
	@ 
	@Bd

11(8Dd

11(81(<D'14!88TD@

D6A:v
KKKK @ @ @$ &68;A&? @ @ @@
	@ 
	@s   A>>
B,B''B,c           	         t          t                                }| j        dd          D ]n}dD ]i}|                     d||z
  d||          }t	          |                                |k                t	          |                                dk               jo|                     dd|z
  d|t                    }t	          |                                dk                t	          |                                dk               d S )Nr=   )r   r      rU   i   r  r   )r   r   r  r  r   r   r  r  )r4   r)   r[   r
  r  valss         r(   test_in_bounds_fuzzz TestIntegers.test_in_bounds_fuzz  s   799%%*QRR. 	) 	)B" ) )zz!TH_7+32 " ? ?

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

a((((	) zz!Q\( $  & &

Q

a     r*   c                 b   | j         D ]%}|t          u rdnt          j        |          j        }|t          u rdnt          j        |          j        dz   }|r|dz
  n|}d}t          t          d                    }|                    |||||          }t          t          d                    }|                    |g|g|||          }t          t          d                    }|                    |g|z  |g|z  |||          }	t          ||           t          ||	           'd S )Nr   rU   r=   r.     r  
r  r  r9   r   r  r   r   r   r2   r   )
r4   r)   r
  r  r  r   r[   scalarscalar_arrayr{   s
             r(   test_scalar_array_equivz$TestIntegers.test_scalar_array_equiv  sR   * 	. 	.Bd

11(8Dd

11(81(<D'14!88TDDwt}}--F__T4dX&( % * *F wt}}--F!??D6D6/7r + C CL wt}}--FOOTFTMD6#4$*. $ M MEv|444vu----%	. 	.r*   c           
      L   dddddddddd	}| j         dd          D ]}t          t          d                    }t          j        d	k    r|                    d
d|z
  d||          }n/|                    d
d|z
  d||                                          }t          j        |          	                                }t          |t          j        |          j                 |k               t          t          d                    }|                    d
d|z
  d|t                                        t          j                  }t          j        |          	                                }t          |t          j        t                    j                 |k               d S )N@053594a9b82d656f967c54869bc6970aa0358cf94ad469c81478459c6a90eee3@54de9072b6ee9ff7f20b58329556a46a447a8a29d67db51201bf88baa6e4e5d4@d3a0d5efb04542b25ac712e50d21f39ac30f312a5052e9bbb1ad3baa791ac84b@14e224389ac4580bfbdccb5697d6190b496f91227cf67df60989de3d546389b1@0e203226ff3fbbd1580f15da4621e5f7164d0d8d6b51696dd42d004ece2cbec1)	r  int16int32r   int8uint16ry   uint64uint8r=   r)  littler   r   r.   r  rU   )r  r   r   sys	byteorderr2   byteswaphashlibsha256	hexdigestr   r9   rX   namer  viewr6  )r4   r)   r  r
  r[   valress          r(   test_repeatabilityzTestIntegers.test_repeatability  s    \[[[[[[[[] ] *QRR. 	3 	3Bwt}}--F }((ooaXD8') & + + ooaXD8') & + ++38::  .%%//11CC)*c12222 74==))ooaXD8#  % %%)T"']] 	nS!!++--BHTNN'(C/00000r*   c                    | j         D ];}|t          t          j        fv rdnt          j        |          j        }|t          t          j        fv rdnt          j        |          j        dz   }|r|dz
  n|}t          t          d                    }|                    ||d||          }t          t          d                    }|                    |gdz  |||          }t          ||           t          t          d                    }|                    |gdz  |gdz  ||          }t          ||           =d S )Nr   rU   r=   r)  r.   r  r   r*  )r4   r)   r
  r  r  r[   rC  val_bcs           r(   test_repeatability_broadcastingz,TestIntegers.test_repeatability_broadcasting  sW   * 	, 	,BtRWo--1128B<<3CDtRWo--1128B<<3Ca3GD'14!88TD wt}}--F//$4(#% " ' 'C wt}}--F__dVd]D8&( % * *F sF+++wt}}--F__dVd]TFTM)1 % = =F sF++++)	, 	,r*   zbound, expectedr0   )iui,YQiXgi$#Pl   bA i{El   /Yi rJ   )ui,YQXgi%#Pl   bA i|El   0Yi        )rI  rJ  l   bA l   1Yi i{,miuHl   HM c                     d t          |          fD ]O}t          t          d                    }|                    ||          }t	          |||n|d                    Pd S )Nr)  r   r   )lenr   r   r2   r   )r4   boundr   r   r[   rs   s         r(   !test_repeatability_32bit_boundaryz.TestIntegers.test_repeatability_32bit_boundary'  st     3x==) 	K 	KDwt}}--FD11A(8HHhqkJJJJ	K 	Kr*   c           
      H   t          j        g dg dg dgg dg dg dgg dg dg d	gg d
g dg dgg dg dg dgg          }dD ]X}t          t          d                    }|                    dgdgdggg d|          }t          |||n|d                    Yd S )N)i
`l   Y/ i0b)i)H{TiP-iTq)l   C iZ'l   !g )l   k40 l   n2c l   DBJ )i|(iy+l   _&A )ip@GiG^l   J|xK )l   
f l   Dmv l   E"g )i>{l   wT2L iJQ)iQ//itLol   k )i\siJi)i=l   }D l   E9l )l   
+x i#Jl   b )i0i7Ol   rn )ixiiAi.t)l   q/q i;-/i)N)rp   r   r   i90  rB   r   r=   )r0   rJ   rK  r   )r9   r{   r   r   r2   r   )r4   desiredr   r[   rs   s        r(   .test_repeatability_32bit_boundary_broadcastingz;TestIntegers.test_repeatability_32bit_boundary_broadcasting6  sS   (AAAAAAAAAC BAAAAAAAAC BAAAAAAAAC BAAAAAAAAC BAAAAAAAACD E E & 	O 	ODwu~~..F"sQC 0 = = =%)   + +A qT-=''71:NNNN	O 	Or*   c           
      `   t           j        dddz  fdddft           j        di}|D ]}||         D ]y}|\  }}||z
  }t          j        |gdz  g          }t          j        |gdz            }t	          t
          t          j        ||||	           t	          t
          t          j        ||||	           t	          t
          t          j        ||||	           t	          t
          t          j        ||||	           t          j        |gdz  gt          
          }	t          j        |gdz  t          
          }
t	          t
          t          j        |	|||	           t	          t
          t          j        ||
||	           t	          t
          t          j        |	|
||	           {d S )Nr   rU   A   )rB               r   r   r   r   ))r   l            )l         rU  rV  rW  )        rX  r   r   rW   )	r9   r8  r   r{   r   rE   r[   r2   object)r4   r)   configsrX   configlowhighlow_ahigh_alow_ohigh_os              r(   &test_int64_uint64_broadcast_exceptionsz3TestIntegers.test_int64_uint64_broadcast_exceptionsM  s   91b5z;H8 45  	> 	>E!%. > >"	Th3%(,,4&2+..j&/3'/u> > > >j&/5$'/u> > > >j&/3'/u> > > >j&/5&'/u> > > > 3%(6:::4&2+V<<<j&/5$'/u> > > >j&/3'/u> > > >j&/5&'/u> > > > >)>	> 	>r*   c                    t           j        }t          j        t           j                  j        }t          j        t          j        t           j                  j                  }t          j        t          j        t           j                  j        dz   |z
            }t
                              ||||          }t          ||           d S r   )r9   r   r   r   r8  r[   r2   r   )r4   r)   r
  r  r  r  actuals          r(   test_int64_uint64_corner_casez*TestIntegers.test_int64_uint64_corner_casei  s     Xhrx  $x**.//y"(++/!3h>?? thbIIVS!!!!!r*   c                    | j         D ]}|t          u rdnt          j        |          j        }|t          u rdnt          j        |          j        dz   }|r|dz
  n|}|t          u rt          j        n|}|                     ||||          }t          |j        |           t          t          fD ]}|t          u rdnt          j        |          j        }|t          u rdnt          j        |          j        dz   }|r|dz
  n|}|                     ||||          }t          |d          rJ t          t          |          |           d S )Nr   rU   r=   r   rX   )r  r  r9   r   r  r   r  r   rX   rV   hasattrtyper4   r)   r
  r  r  r   s         r(   test_respect_dtype_singletonz)TestIntegers.test_respect_dtype_singleton  sY   * 	+ 	+Bd

11(8Dd

11(81(<D'14!88TD$JJBBZZdXRZHHFr****+ 	+ 	+Bd

11(8Dd

11(81(<D'14!88TD ZZdXRZHHFvw/////fr****	+ 	+r*   c                    | j         D ]}|t          u rdnt          j        |          j        }|t          u rdnt          j        |          j        dz   }|r|dz
  n|}|t          u rt          j        n|}|                     |g|g||          }t          |j        |           |                     |gdz  |gdz  ||          }t          |j        |           d S r  )	r  r  r9   r   r  r   r  r   rX   ri  s         r(   test_respect_dtype_arrayz%TestIntegers.test_respect_dtype_array  s    * 
	+ 
	+Bd

11(8Dd

11(81(<D'14!88TD$JJBBZZZLLFr***ZZ
TFQJ&(   * *Fr****
	+ 
	+r*   c                    | j         D ]}|                     ddd||          }|j        dk    sJ |j        |k    sJ |                     ddd||          j        dk    sJ t	          t
                              ddd          j        d           t	          t
                              ddd          j        d           t	          t
                              ddd          j        d           d S )Nr   r   r   r   r   r   r   r   )r  r  rz   rX   r   r[   r2   )r4   r)   r
  r   s       r(   test_zero_sizezTestIntegers.test_zero_size  s   * 		F 		FBZZ1i("ZMMF<9,,,,<2%%%%::aa($&  ( ((-6 6 6 6AI>>D"$ $ $Ca88>EEERa88>EEEE		F 		Fr*   c                     t           j        dk    rdnd}t          j        t                    5  t
                              ddd|           d d d            d S # 1 swxY w Y   d S )Nbigz<i4z>i4r      r   r  )r;  r<  r   r   rE   r[   r2   )r4   other_byteord_dts     r(   test_error_byteorderz!TestIntegers.test_error_byteorder  s    $'MU$:$:55]:&& 	E 	EOOAs3CODDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   AA!Azsample_size,high,dtype,chi2maxi@KL rp   g     @_@r   g     b@i i	  g     ȩ@i  g     d@c                     t                               |||          }t          j        |d          \  }}||z  }||z
  dz  |z                                  }	|	|k     sJ d S )Nr  T)return_countsrU   )r[   r2   r9   uniquer   )
r4   sample_sizer]  rX   chi2maxsamplesvaluescountsr   chi2s
             r(   $test_integers_small_dtype_chisquaredz1TestIntegers.test_integers_small_dtype_chisquared  sn     //$[/FF7$???%("Q&16688g~~~~~~r*   N)*rN   rO   rP   r[   r2   r  r  r9   r6  r9  r4  r7  r5  ry   r   r8  r  r  r  r  r  r  r!  r#  r'  r-  rE  rH  r   r   r   r{   rO  rR  rb  re  rj  rl  rq  rv  slowr  rQ   r*   r(   r   r   @  s       OE 27BHbh	Xry"(BI7EP P P7 7 727 7 7  4K K K>@ @ @@ @ @! ! ! . . .*!1 !1 !1F, , ,. [
XRX C C C D D 
E
 ? ? ? @ @ 
A
XRX C C C D D 
E		F K K KO O O.> > >8" " ".+ + +*+ + +F F FE E E [[=
1bgu	%
1bh	&
D"(F	+
D")V	,	
      r*   r   c                      e 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        fej        ej        f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 Z%d Z&d Z'd Z(d  Z)d! Z*d" Z+d# Z,d$ Z-ej                            d%e.e/g          ej                            d&d' ej0        g d(g d)g          fd* ej0        g d+g d,g          fd- ej0        g d.g d/g          fg          d0                         Z1d1 Z2d2 Z3ej                            d3d4d5g          d6             Z4d7 Z5d8 Z6d9 Z7d: Z8d; Z9d< Z:d= Z;d> Z<d? Z=d@ Z>ej        j?        dA             Z@ej                            dBg dCg dDg dEg dFg dGg dHdIgg dJg          dK             ZAdL ZBdM ZCdN ZDdO ZEdP ZFdQ ZGdR ZHdS ZIdT ZJdU ZKdV ZLdW ZMdX ZNdY ZOdZ ZPd[ ZQd\ ZRej                            d] ejS        dId^          d_ejT        d`g          da             ZUdb ZVej        W                    eXdcd          ej                            deg df          dg                         ZYej                            dhd*gdiggfdjgd-ggfg          dk             ZZej                            deg df          dl             Z[dm Z\dn Z]do Z^dp Z_dq Z`dr Zads Zbdt Zcdu Zddv Zedw Zfdx Zgdy Zhdz Zid{ Zjd| Zkd} Zld~ Zmd Znd Zod Zpd Zqd Zrd Zsd Ztd Zud Zvd Zwd Zxd Zyd Zzd Z{d Z|d Z}d Z~d Zd Zej                            dddg          d             Zej                            ddej         dej        dg          ej                            dg d          d                         Zd Zd Zd Zd Zd'S )TestRandomDistc                     d| _         d S )Nr   r   rF   s    r(   r   zTestRandomDist.setup_method  s    			r*   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||           d S )Nc   r   rU   r   )   %   ir   r   r   r2   r9   r{   r   r4   r[   rd  rQ  s       r(   test_integerszTestRandomDist.test_integers  sh    749--..bv66(S#JR3*=>>67+++++r*   c                     t          t          | j                            }|                    dddt          j                  }t	          j        ddgddgd	d
ggt          j                  }t          ||           d S )Nr   r  r  r  r      F   D   r   r  rW   )r   r   r   r2   r9   ry   r{   r   r  s       r(   test_integers_maskedz#TestRandomDist.test_integers_masked  su     749--..BV29EE(QGb"X2w7ryIII67+++++r*   c                     t          t          | j                            }|                    dddd          }t	          j        ddgdd	gd
dgg          }t          ||           d S )Nr  r  r  T)r   r)   r  r  r  &   r  ir  r  s       r(   test_integers_closedz#TestRandomDist.test_integers_closed  sj    749--..bvEE(S#J"b	C:>??67+++++r*   c                     t                               t          j        d          j        t          j        d          j        d          }t          j        d          j        }t          ||           d S )NlTr)   )r[   r2   r9   r   r   r   )r4   rd  rQ  s      r(   test_integers_max_intz$TestRandomDist.test_integers_max_int  sa     #!2BHSMM4E*. ! 0 0 (3--#VW%%%%%r*   c                 j   t          t          | j                            }|                    d          }t	          j        ddgddgddgg          }t          ||d	           t          t          | j                            }|                                }t          ||d
         d	           d S )Nr  gG0Ը?gæ?g2?gu	A?gH
>H?g;dE?r   decimalrW  r   r   r   r[   r9   r{   r   r  s       r(   test_randomzTestRandomDist.test_random  s    749--..v&&(.0AB.0AB.0ABD E E 	"&'2>>>>749--..!&'$-DDDDDDr*   c                     t          t          | j                            }|                    d          }t	          j        ddgddgddgg          }t          ||d	           d S )
Nr  CԸ?gP?gtX?g81
A?grO>H?g88dE?r   r  r  r  s       r(   test_random_floatz TestRandomDist.test_random_float  st    749--..v&&(Y4'4'46 7 7 	"&'1======r*   c                     t          t          | j                            }|                    t          j                  }d}t          ||d           d S )NrW   r  r   r  )r   r   r   r[   r9   r   r   r  s       r(   test_random_float_scalarz'TestRandomDist.test_random_float_scalar  sN    749--..RZ00!&'1======r*   zdtype, uint_view_typec                     t          t          | j                            }|                    d|          }t	          j        |                    |          dz            }d|cxk     rdk     sn J d S )Nr   rW   r=   i$^  i,e  )r   r   r   r[   r9   count_nonzerorB  )r4   rX   uint_view_typer[   r   num_ones_in_lsbs         r(   test_random_distribution_of_lsbz.TestRandomDist.test_random_distribution_of_lsb	  s~     749--..vU33*6;;~+F+F+JKK ............r*   c                 H    t          t          t          j        d           d S )Nr5  rW   )r   rD   r[   rF   s    r(   test_random_unsupported_typez+TestRandomDist.test_random_unsupported_type  s    ig>>>>>>r*   c                     t          t          | j                            }|                    dd          }t	          j        g dt          j                  }t          ||           d S )Nr   )r   r   rU   rU   rW   r   r   r   choicer9   r{   r   r   r  s       r(   test_choice_uniform_replacez*TestRandomDist.test_choice_uniform_replace  s\    749--..q!$$(<<<rx88867+++++r*   c                     t          t          | j                            }|                    ddg d          }t	          j        g dt          j                  }t          ||           d S )Nr   )皙?r  皙?r  r]   )r   r=   r   r=   rW   r  r  s       r(   test_choice_nonuniform_replacez-TestRandomDist.test_choice_nonuniform_replace  sg    749--..q!';';';<<(<<<rx88867+++++r*   c                 n   t          t          | j                            }|                    ddd          }t	          j        g dt          j                  }t          ||           |                    dddd          }t	          j        dt          j                  }t          ||           d S )Nr   r   Freplacer   rW   )r  shuffle)	r   r   r   r  r9   r{   r   r   r:   r  s       r(   test_choice_uniform_noreplacez,TestRandomDist.test_choice_uniform_noreplace$  s    749--..q!U33(999BH55567+++q!UEBB)ARX...67+++++r*   c                     t          t          | j                            }|                    dddg d          }t	          j        g dt          j                  }t          ||           d S )Nr   r   F)r  333333?rY   r  r  r]   )r   rU   r   rW   r  r  s       r(    test_choice_nonuniform_noreplacez/TestRandomDist.test_choice_nonuniform_noreplace-  si    749--..q!U6J6J6JKK(999BH55567+++++r*   c                     t          t          | j                            }|                    g dd          }t	          j        g d          }t          ||           d S )N)abcdr   )r  r  r  r  r   r   r   r  r9   r{   r   r  s       r(   test_choice_nonintegerz%TestRandomDist.test_choice_noninteger3  s_    749--..333Q77(///0067+++++r*   c                     t          t          | j                            }|                    ddgddgddgddggd          }t	          j        ddgddgddgg          }t          ||           d S )	Nr   r=   rU   r   r   rp   r   r   r  r  s       r(   )test_choice_multidimensional_default_axisz8TestRandomDist.test_choice_multidimensional_default_axis9  s}    749--..AAAA?CC(QFQFQF34467+++++r*   c                     t          t          | j                            }|                    ddgddgddgddggdd	          }t	          j        dgdgdgdgg          }t          ||           d S )
Nr   r=   rU   r   r   rp   r   r   r   r  r  s       r(   (test_choice_multidimensional_custom_axisz7TestRandomDist.test_choice_multidimensional_custom_axis?  s    749--..AAAA?KK(QC!qcA3/0067+++++r*   c           	         t           j        }t          t          |dd           t          t          |d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 )NrB   r         @)r=   rU   r   r         ?r  r=   rU   )r  r  rf   r   r   r  r   r   Fr  rI   )rB   )rB   r=   )r=   r   r   r  )r[   r  r   rE   )r4   r   s     r(   test_choice_exceptionsz%TestRandomDist.test_choice_exceptionsE  s   j&"a000j&"a000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                              dd                               t          t          j        t                              dd                               t          t          j        t                              dd|                               t          t          j        t                              dd|                               t          t          j        t                              ddgd                               t          t                              d gd          d u            t          j        ddg          }t          j        dt          	          }||d
<   t          t                              |d          |u            t                      }t          t          j        t                              d|d                                t          t          j        t                              d|d                                t          t          j        t                              d|d|                                t          t          j        t                              d|d|                                t          t          j        t                              ddg|d                                t          t                              d g|d          j	        d
k               t          j        ddg          }t          j        dt          	          }||d
<   t          t                              ||d          
                                |u            d}g d}t          t                              d|d          j        |           t          t                              d|d          j        |           t          t                              d|d|          j        |           t          t                              d|d|          j        |           t          t                              t          j        d          |d          j        |           t          t                              d
d
d          j        d           t          t                              d
dd
          j        d           t          t                              ddd
          j        d           t          t                              d
d
          j        d           t          t                              g d          j        d           t          t                              ddgd          j        d           t          t           t          j        g d           d S )Nr  r   rU   Tr  Fr  r=   rW   r   r   )r  r  r  r  r  rf   r   rn  r   ro  rp  r   r  r  )r   r9   isscalarr[   r  r{   r   rY  tuplendimitemr   rz   r:   r2   r   rE   )r4   r]   r  arrr5   s        r(   test_choice_return_shapez'TestRandomDist.test_choice_return_shapeW  s   #JFMM!TM::;;<<<FMM!UM;;<<===FMM!TQM??@@AAAFMM!UaM@@AABBBFMM1a&$M??@@AAAtfd33t;<<<HaVhq'''Ac400A5666 GGBKaD A ABBBCCCBKaE B BCCCDDDBKaDA F FGGGHHHBKaEQ G GHHHIIIBKq!fa F FGGGHHHtfa66;q@AAAHaVhq'''Ac1d3388::a?@@@ ***V]]1a]66<a@@@V]]1a]77=qAAAV]]1a];;A1EEEV]]1a!]<<BAFFFV]]29Q<<D]AAGKKK 	V__Q	_::@)LLLV__Q!_44:DAAAV__R!_44:DAAAV]]11]--3T:::V]]2D]117>>>V]]C:I]>>D	  	  	 j&-R88888r*   c                 ~    t          j        g d          }g d}t          t          t          j        ||           d S )N)*   r=   rU   )NNNr  )r9   r{   r   rE   r[   r  )r4   r  r]   s      r(   test_choice_nan_probabilitiesz,TestRandomDist.test_choice_nan_probabilities  s?    HZZZ  j&-a888888r*   c           
         t          j        d          dz  }d|dd d<   t          t          | j                            }|                    dd|d d d                   }t          t          | j                            }|                    ddt          j        |d d d                             }t          ||           d S )Nr   rp   r  r=   rU   r   r  )r9   onesr   r   r   r  r   r   )r4   r]   r[   r   r   s        r(   test_choice_p_non_contiguousz+TestRandomDist.test_choice_p_non_contiguous  s    GBKK!O!$Q$749--..]]1a1SSqS6]22
749--..q!r';AcccF'C'CDD:v.....r*   c                    t          j        d          dz  }t                              dd          }|j        t           j        k    sJ t                              ddd          }|j        t           j        k    sJ t                              dd|          }|j        t           j        k    sJ t                              dd|d          }|j        t           j        k    sJ d S )Nr   g      @rU   Fr  r  )r]   r  )r9   r  r[   r  rX   r   )r4   r]   rd  s      r(   test_choice_return_typez&TestRandomDist.test_choice_return_type  s    GAJJOq!$$|rx''''q!U33|rx''''q!q))|rx''''q!q%88|rx''''''r*   c                 p   d}t          t          | j                            }|                    ddd          }t          j        dk    r|                                }t          j        |	                    t          j                                                            }t          ||k               d S )N@4266599d12bfcfb815213303432341c06b4349f5455890446578877bb322e222'  rw  Fr  r:  )r   r   r   r  r;  r<  r=  r>  r?  rB  r9   r6  r@  r   )r4   choice_hashr[   rd  rD  s        r(   test_choice_large_samplez'TestRandomDist.test_choice_large_sample  s    X749--..udE::=H$$__&&FnV[[1122<<>>s"#####r*   c                    t          t          | j                            }t          |                    g dd          t          j        d          d           t          |                    g dgd          g d           t          |                    dggd          dgd           t          |                    dggdd          dgd           d S )Nr   rQ   r   r=   T)strict)r   r   )r   r   r   r   r  r9   r{   r4   r[   s     r(   "test_choice_array_size_empty_tuplez1TestRandomDist.test_choice_array_size_empty_tuple  s    749--..6===<<bhqkk"&	( 	( 	( 	(6==)))2=>>			JJJ6==1#R=881#dKKKK6==1#Ra=@@1#"&	( 	( 	( 	( 	( 	(r*   c                     t          t          | j                            }|                    d          }d}t	          ||           d S )Nr   s
   	8%)r   r   r   bytesr   r  s       r(   
test_byteszTestRandomDist.test_bytes  sE    749--..b!!5VW%%%%%r*   c                     d d d d d d d d d	 d
 d fD ]d}t          t          | j                            } |g d          }|                    |           |} |g d          }t	          ||           ed S )Nc                 *    t          j        g           S r%   )r9   r{   rs   s    r(   <lambda>z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rx|| r*   c                     | S r%   rQ   r  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    q r*   c                 d    t          j        |                               t           j                  S r%   )r9   asarrayastyper6  r  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BG<< r*   c                 d    t          j        |                               t           j                  S r%   )r9   r  r  r   r  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BJ?? r*   c                 d    t          j        |                               t           j                  S r%   )r9   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%   )r9   r  r  rY  r  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33F;; r*   c                     d | D             S )Nc                     g | ]}||fS rQ   rQ   .0is     r(   
<listcomp>zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    2221A222r*   rQ   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 rQ   rQ   r  s     r(   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>      *=*=*=aAq6*=*=*=r*   )r9   r  r  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz*=*=1*=*=*=>> r*   c                 8    t          j        | | g          j        S r%   )r9   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 rQ   rQ   r  s     r(   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    +>+>+>qQF+>+>+>r*   r  r  )r9   r  rV   rB  recarrayr  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sG    
+>+>A+>+>+>-0#Jc
+C!E !E!%bk!2!2 r*   c                 n    t          j        d | D             dt          dfdt           j        dfg          S )Nc                     g | ]}||fS rQ   rQ   r  s     r(   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  r  r*   r  r=   r  )r9   r  rY  r5  r  s    r(   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sA    rz*=*=1*=*=*=,/+>,/4+@+B C  C r*   
r=   rU   r   r   rp   r   r   r   r   r   
r   r=   r   r   r   rp   r   r   rU   r   )r   r   r   r  r   )r4   convr[   alistrd  rQ  s         r(   test_shufflezTestRandomDist.test_shuffle  s     ,+ [<<??AA;;22>>224 4C CD 	0 	0D" wty1122FD77788ENN5!!!Fd999::Gvw////-	0 	0r*   c                    t          t          | j                            }t          j        d                              d          }|                    |d           t          j        g dg dg dg dg          }t          ||           t          t          | j                            }t          j        d                              d          }|                    |d	           t          ||           d S )
Nr%  r   r   r=   r   r   r   r=   rU   r   r   rp   r   r      r   r   r   r   r   r   rB   )	r   r   r   r9   r:   reshaper  r{   r   r  s       r(   test_shuffle_custom_axisz'TestRandomDist.test_shuffle_custom_axis  s    749--..2&&v..vA&&&(,,,,,,,,,,,,. / / 	67+++749--..2&&v..vB'''67+++++r*   c                 <   t          t          | j                            }t          j        g                               d          }dD ]P}t          j        g                               d          }|                    ||           t          ||           Qd S )N)r   r   )r   r=   r   )r   r   r   r9   r{   r  r  r   )r4   r[   rQ  r   rd  s        r(   test_shuffle_custom_axis_emptyz-TestRandomDist.test_shuffle_custom_axis_empty  s    749--..(2,,&&v.. 	0 	0DXb\\))&11FNN6N---vw////	0 	0r*   c                    t          j        d                              dd          }|                                }t	          t          | j                            }|                    |d           t	          t          | j                            }|                    |j                   t          ||           d S )Nr   rU   r   r=   r   )
r9   r:   r  copyr   r   r   r  r  r   )r4   y1y2r[   s       r(   test_shuffle_axis_nonsquarez*TestRandomDist.test_shuffle_axis_nonsquare  s    Yr]]""1b))WWYY749--..r"""749--..rt2r"""""r*   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                              |           t          t          |j        |j                            t          |j        |j                                       t                              |           t          t          |j        |j                            t          |j        |j                                       d S )Nr   )rp   r   r   r=   rB   r   )r9   mamasked_valuesr  r8   r:   r  r[   r  r   sorteddatamask)r4   r  r  a_origb_origr  s         r(   test_shuffle_maskedz"TestRandomDist.test_shuffle_masked  sC   E
599f = = AA ErJJE	" 1A 5r::r 	L 	LANN1qvqvg''V[L0I)J)JL L LNN1qvqvg''V[L0I)J)JL L L L	L 	Lr*   c           
         t          t          | j                            }t          j        d          }t          t          |j        |d           t          j        d                              d          }t          t          |j        |d           t          t          |j        |t          ddd                      g dg dg}t          t          |j        |d           t          j        d          }t          t          |j        |           t          j        d	          }t          t          |j        |d           d S )
Nr   r=   r   r   r   r   rU   r   )r   rp   r   r  )r   r   r   r9   r:   r   r   r  r  rD   sliceNotImplementedErrorr{   r  r4   r[   r  s      r(   test_shuffle_exceptionsz&TestRandomDist.test_shuffle_exceptions  s   749--..immia888ill""6**ia888ieAq$6G6GHHHyy)))$)6>3BBBhqkki555gfooia88888r*   c                    t          t          | j                            }t          j        d          }d|j        _        t          j        t          d          5  |
                    |           d d d            d S # 1 swxY w Y   d S )Nrp   F	read-onlyr   )r   r   r   r9   rZ   flags	writeabler   r   rE   r  )r4   r[   r  s      r(   test_shuffle_not_writeablez)TestRandomDist.test_shuffle_not_writeable  s    749--..HQKK!]:[999 	 	NN1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B  BBc                    t          t          | j                            }g d}|                    |          }g d}t	          ||           t          t          | j                            }t          j        g d          j        }|                    |          }t	          |t          j        |          j                   d}t          t          |j        |           d}t          t          |j        |           t          t          | j                            }d}g d}|                    |          }t	          ||           d S )Nr	  r
  abcdg333333?r   )
r   r   r   r   r   r   rU   rp   r=   r   )
r   r   r   permutationr   r9   
atleast_2dr  r   r   )	r4   r[   r  rd  rQ  arr_2d	bad_x_strbad_x_floatinteger_vals	            r(   test_permutationzTestRandomDist.test_permutation  s6   749--.....##E**00067+++749--..===>>@##F++62=#9#9#;<<<	i!3Y???i!3[AAA749--..000##K0067+++++r*   c                    t          j        d                              d          }t          j        g dg dg dg dg          }t	          t          | j                            }|                    |d          }t          ||           t	          t          | j                            }|                    |d	          }t          ||           d S )
Nr%  r  r  r  r  r  r=   r   rB   )	r9   r:   r  r{   r   r   r   r4  r   )r4   r  rQ  r[   rd  s        r(   test_permutation_custom_axisz+TestRandomDist.test_permutation_custom_axis.  s    IbMM!!&))(,,,,,,,,,,,,. / / 749--..##AA#..67+++749--..##AB#//67+++++r*   c           
         t          t          | j                            }t          j        d          }t          t          |j        |d           t          j        d                              d          }t          t          |j        |d           t          t          |j        |t          ddd                      d S )Nr   r=   r   r(  r   rU   )r   r   r   r9   r:   r   r   r4  r  rD   r)  r+  s      r(   test_permutation_exceptionsz*TestRandomDist.test_permutation_exceptions;  s    749--..immi!3S!<<<ill""6**i!3S!<<<i!3S%1d:K:KLLLLLr*   rX   zaxis, expectedN)r   r   r   r   r   r  )r   r   rU   rp   r=   r   r   )r   r=   rU   r   r   r  )r   r   r   r   r   rp   r=   )rp   r   r   r   rU   r=   )r  r   r   r   r   r   c                 .   t          t          | j                            }t          j        d                              dd                              |          }|                    |||           t          ||           t          t          | j                            }t          j        d                              dd                              |          }|                    ||          }|j	        |k    sJ t          ||           d S )Nr   rU   r   r   outr   )
r   r   r   r9   r:   r  r  permutedr   rX   )r4   rX   r   r   r[   rs   ys          r(   test_permutedzTestRandomDist.test_permutedC  s     749--..IbMM!!!Q''..u55!,,,1h'''749--..IbMM!!!Q''..u55OOADO))w%1h'''''r*   c                    t          t          | j                            }t          j        d                              dd          }|                                }|d d d d df         }|                    |d|          }t          j        g dg dg          }t          ||           ||d d d d df<   t          ||           d S )	N   rU   r  r   r=   r@  )r   r   r   r   )r   r   r  r   )
r   r   r   r9   r:   r  r  rB  r{   r   )r4   r[   x0x1rs   rC  r   s          r(   test_permuted_with_stridesz)TestRandomDist.test_permuted_with_stridesW  s    749--..Yr]]""1b))WWYYqqq##A#vJOOAA1O--8\\\---/ 0 01h'''111ccc6
2r"""""r*   c                 Z    t                               g           }t          |g            d S r%   )r[   rB  r   )r4   rC  s     r(   test_permuted_emptyz"TestRandomDist.test_permuted_emptyd  s)    OOB1b!!!!!r*   outshaper   rp   c                    t          j        g d          }t          j        ||j                  }t	          j        t          d          5  t                              ||           d d d            d S # 1 swxY w Y   d S )Nr   rW   z
same shaper   rA  )	r9   r{   rZ   rX   r   r   rE   r[   rB  )r4   rL  r  rA  s       r(   "test_permuted_out_with_wrong_shapez1TestRandomDist.test_permuted_out_with_wrong_shapeh  s    HYYYhxqw///]:\::: 	( 	(OOA3O'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   A77A;>A;c                    t          j        dt           j                  }t          j        d          }t	          j        t          d          5  t                              |d|           d d d            d S # 1 swxY w Y   d S )N)r   rp   rW   zCannot castr   r=   r@  )	r9   rZ   r5  r  r   r   rD   r[   rB  )r4   rA  rs   s      r(   !test_permuted_out_with_wrong_typez0TestRandomDist.test_permuted_out_with_wrong_typeo  s    hvRX...GFOO]9M::: 	0 	0OOAA3O///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   A;;A?A?c                     t          j        d          }d|j        _        t	          j        t          d          5  t                              |d|           d d d            d S # 1 swxY w Y   d S )N)rU   rp   Fr.  r   r=   r@  )	r9   rZ   r/  r0  r   r   rE   r[   rB  rr   s     r(   test_permuted_not_writeablez*TestRandomDist.test_permuted_not_writeableu  s    HV!]:[999 	. 	.OOAA1O---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.s   A''A+.A+c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r   r  r   gW<$=g^
=g/:Ћ?gG!Gc>g'`2?gU?r   r  )r   r   r   betar9   r{   r   r  s       r(   	test_betazTestRandomDist.test_beta{  s~    749--..R&11(#%:;#%:;#%:;=> > 	"&'2>>>>>>r*   c                 d   t          t          | j                            }|                    ddd          }t	          j        ddgddgdd	gg          }t          ||           t          t          | j                            }|                    dd          }d}t          ||           d S )
NgZd;Y@gv/?r  r   r  r  0   ,   r   )r   r   r   r\   r9   r{   r   r  s       r(   test_binomialzTestRandomDist.test_binomial  s    749--..$V<<(RHHH& ' ' 	67+++749--..$//67+++++r*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r  r   gmE~@@g
1ςC@grӳL@gm%xL@g<kQK@gtK@r   r  )r   r   r   	chisquarer9   r{   r   r  s       r(   test_chisquarezTestRandomDist.test_chisquare  s    749--..!!"6!22(-/?@-/?@-/?@B C C 	"&'2>>>>>>r*   c                 B   t          t          | j                            }t          j        ddg          }|                    |d          }t          j        ddgddggd	d
gddggddgddggg          }t          ||d           t          j        ddg          }t          t          |j        |           t          t          | j                            }t          j        ddg          }|                    |          }t          ||d         d           d S )NI<I@EZC@r  r   g28\h?gɎG/?gAp?g|);?gLX?gfOh?g됷W?g(ސP?gz$Q?gmWt ?g搝K?g4hz?r   r  HzG?缉ؗҜrW  )	r   r   r   r9   r{   	dirichletr   r   rE   )r4   r[   alphard  rQ  	bad_alphas         r(   test_dirichletzTestRandomDist.test_dirichlet  sG   749--...0DEFF!!%f!55(03FG03EGI03FG.3FGI13EG.3FGI	J K K 	"&'2>>>>Hgx011	j&"2I>>>749--...0DEFF!!%((!&'$-DDDDDDr*   c                 J   t          j        ddg          }t          t                              |t          j        d                    j        d           t          t                              |t          j        d                    j        d           t          t                              |t          j        d                    j        d           t          t                              |ddg          j        d           t          t                              |d          j        d           t          t                              |t          j        d                    j        d           t          t          t          j        |t          d                     d S )Nr_  r`  r=   rv   rU   rw   rx   )
r9   r{   r   r[   rc  ry   rz   r   rD   r|   r}   s     r(   test_dirichlet_sizez"TestRandomDist.test_dirichlet_size  s3   H*,@ABBV%%a166<fEEEV%%a166<fEEEV%%a166<fEEEV%%a!Q006	BBBV%%a006	BBBV%%a&)9)9::@)LLLi!11eAhh?????r*   c           	         t          j        ddg          }t          t          t          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 )Nra  rb  rp   r=   )r9   r{   r   rE   r[   rc  )r4   rd  s     r(   test_dirichlet_bad_alphaz'TestRandomDist.test_dirichlet_bad_alpha  s    '8,--j&"2E::: 	j&"2aVH===j&"2aS1#J???j&"2qcA3Z1#s4LMMMj&"2BHq!fq!f=M4N4NOOOOOr*   c                 l   t          j        g d          }|d d d         }t          t          | j                            }|                    |d          }t          t          | j                            }|                    t          j        |          d          }t          ||           d S )N)r_  g      r`  rU   r  r   )r9   r{   r   r   r   rc  r   r   )r4   r  rd  r[   r   r   s         r(   #test_dirichlet_alpha_non_contiguousz2TestRandomDist.test_dirichlet_alpha_non_contiguous  s    HGGGHH##A#749--..%%e&%99
749--..!!""6u"="='- " / /!*f55555r*   c                 "   d}|t          j        ddg          z  }t          t          | j                            }|                    |d          }t          j        ddgddggddgddggddgddggg          }t          ||d           d S )	Nr         ?r   r  r   rl   r   r  )r9   r{   r   r   r   rc  r   )r4   epsrd  r[   rd  r   s         r(   test_dirichlet_small_alphaz)TestRandomDist.test_dirichlet_small_alpha  s    bhF|,,,749--..!!%f!558"X"X"X"X"X"X
   	"&(B??????r*   c                     t          j        ddg          }||                                z  }t          t	          | j                            }|                    |d          }|                    d          }t          ||d           d S )	Ng{Gz?{Gz?i -1r   r   r   r   )r   )	r9   r{   r   r   r   r   rc  r   r   )r4   rd  
exact_meanr[   r   sample_means         r(   %test_dirichlet_moderately_small_alphaz4TestRandomDist.test_dirichlet_moderately_small_alpha  s     $&&UYY[[(
749--..!!%h!77kkqk))Zd;;;;;;r*   rd  )rp   r   r   r   )rY   r   r   r   )r=   rp   r   r         ?r   r   r   )g{Gz?gQ?r   r   )gh㈵>r   r   r   )gMb`?gQ?r   r   rr  r   r   r   rl   r   c                     t          j        |          }t                              |          }t	          ||dk             d           d S )Nr   rl   )r9   r{   r[   rc  r   )r4   rd  rC  s      r(   &test_dirichlet_multiple_zeros_in_alphaz5TestRandomDist.test_dirichlet_multiple_zeros_in_alpha  sB     U##Quz]C(((((r*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Ng8EGr?r  r   gvM?g?g#c?gQ:N?gAP?gE_9@r   r  )r   r   r   exponentialr9   r{   r   r  s       r(   test_exponentialzTestRandomDist.test_exponential  s    749--..##F#88(.0AB.0AB.0@BD E E 	"&'2>>>>>>r*   c                     t          t                              d          d           t          t          t          j        d           d S Nr   scale       )r   r[   rz  r   rE   rF   s    r(   test_exponential_0z!TestRandomDist.test_exponential_0  sA    V''a'00!444j&"4C@@@@@@r*   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr   M   r  r   g}(Ҍ?gi?g=r?g]hDA?gjӨ?g8k*u?r   r  )r   r   r   fr9   r{   r   r  s       r(   test_fzTestRandomDist.test_f  s    749--.."bv..(.0AB.0@B.0ABD E E 	"&'2>>>>>>r*   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nrp   r   r  r   g,שn'@gt@g<e2@g1a3@g3r
y-2@gs1-2@r   r  )r   r   r   gammar9   r{   r   r  s       r(   
test_gammazTestRandomDist.test_gamma  s    749--..a00(.B.0AB.0ABD E E 	"&'2>>>>>>r*   c                     t          t                              dd          d           t          t          t          j        dd           d S )Nr   )rz   r  r  )r   r[   r  r   rE   rF   s    r(   test_gamma_0zTestRandomDist.test_gamma_0  sA    V\\\33Q777j&,cEEEEEEr*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgddgg          }t          ||           d S )N_c97ݚ?r  r   r=   r  r   r   )r   r   r   	geometricr9   r{   r   r  s       r(   test_geometriczTestRandomDist.test_geometric  ss    749--..!!*6!::(QGGH& ' ' 	67+++++r*   c                 "   t          t          t          j        d           t          t          t          j        dgdz             t          t          t          j        d           t          t          t          j        dgdz             t	          j        d          5  t          t          t          j        t          j                   t          t          t          j        t          j        gdz             d d d            d S # 1 swxY w Y   d S )Nr   r   r   ignoreinvalid)r   rE   r[   r  r9   errstater`   rF   s    r(   test_geometric_exceptionsz(TestRandomDist.test_geometric_exceptions!  s!   j&"2C888j&"2SEBJ???j&"2D999j&"2TFRK@@@[*** 	G 	G*f&6???*f&62FFF	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Gs   ADDDc                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr         @r  locr  r   gA7G@g1Fiҿgei@g_Cg0cPg`(_տr   r  )r   r   r   gumbelr9   r{   r   r  s       r(   test_gumbelzTestRandomDist.test_gumbel*  s    749--..:SvFF(/1CD/1CD/1CDF G G 	"&'2>>>>>>r*   c                     t          t                              d          d           t          t          t          j        d           d S r}  )r   r[   r  r   rE   rF   s    r(   test_gumbel_0zTestRandomDist.test_gumbel_02  =    V]]]++Q///j&-s;;;;;;r*   c                    t          t          | j                            }|                    dddd          }t	          j        ddgddgddgg          }t          ||           |                    dd	d
d          }t	          j        g d          }t          ||           |                    dd	dd          }t	          j        g d          }t          ||           |                    d	dd
d          }t	          j        g d          }t          ||           |                    d	ddd          }t	          j        g d          }t          ||           d S )Ng333333$@g      @r   r  r   r   r   rp   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   hypergeometricr9   r{   r   r  s       r(   test_hypergeometricz"TestRandomDist.test_hypergeometric6  sz   749--..&&tS"6&BB(aGGG% & & 	67+++ &&q!QQ&77(<<<((67+++&&r1bq&99(+++,,67+++ &&q!QQ&77(<<<((67+++&&q"bq&99(<<<((67+++++r*   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r  r  g6@	ga@bDA"?g*[r{g>K?g(?g<?r   r  )r   r   r   laplacer9   r{   r   r  s       r(   test_laplacezTestRandomDist.test_laplaceP  s    749--..JcGG(/2CD/2CD/2CDF G G 	"&'2>>>>>>r*   c                     t          t                              d          d           t          t          t          j        d           d S r}  )r   r[   r  r   rE   rF   s    r(   test_laplace_0zTestRandomDist.test_laplace_0X  s=    V^^!^,,a000j&.<<<<<<r*   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r  r  gbZgHʊg$>?g>&gQh@g%?n?gĉ8|?r   r  )r   r   r   logisticr9   r{   r   r  s       r(   test_logisticzTestRandomDist.test_logistic\  s    749--..ZsHH(/2CD.2CD/2CDF G G 	"&'2>>>>>>r*   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r  )r   sigmar   gܒx?gk*+@g<Ҿ?g
@g5a@g%jz(@r   r  )r   r   r   	lognormalr9   r{   r   r  s       r(   test_lognormalzTestRandomDist.test_lognormald  s    749--..!!z6!JJ(o/?@-@-/?@B C C 	"&'2>>>>>>r*   c                     t          t                              d          d           t          t          t          j        d           d S )Nr   )r  r=   r  )r   r[   r  r   rE   rF   s    r(   test_lognormal_0zTestRandomDist.test_lognormal_0l  sA    V%%A%..222j&"2#>>>>>>r*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          ||           d S )
Ngƀ@?r  )r]   r   r   r   r      rp   r=   )r   r   r   	logseriesr9   r{   r   r  s       r(   test_logserieszTestRandomDist.test_logseriesp  ss    749--..!!JV!<<(RHGF$ % % 	67+++++r*   c                 ~    t          t          | j                            }|                    d          dk    sJ d S )Nr   r=   )r   r   r   r  r  s     r(   test_logseries_zeroz"TestRandomDist.test_logseries_zerox  s>    749--..""a''''''r*   valuerB   rn  g      @c                    t          t          | j                            }t          j        d          5  t          j        t                    5  |                    |           d d d            n# 1 swxY w Y   t          j        t                    5  |                    t          j	        |gdz                       d d d            n# 1 swxY w Y   t          j        t                    5  |                    t          j	        |gdz            d d d                    d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nr  r  r   rU   )
r   r   r   r9   r  r   r   rE   r  r{   )r4   r  r[   s      r(   test_logseries_exceptionsz(TestRandomDist.test_logseries_exceptions|  s(   749--..[*** 	> 	>z** ( (  '''( ( ( ( ( ( ( ( ( ( ( ( ( ( (z** 9 9  5'B,!7!78889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 z** > >  5'B,!7!7!!<===> > > > > > > > > > > > > > >	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s}   EA3'E3A7	7E:A7	;E,CEC	EC	E35D4(E4D8	8E;D8	<EEEc                     t          t          | j                            }|                    ddgdz  d          }t	          j        g dg dgg dg d	gg d
g dgg          }t          ||           d S )Nr   UUUUUU?r   r  r   )r=   rp   r=   r   r   r   )r   rU   r   rU   r   rU   )rp   r   rU   r   r   r=   )r   r   r   rU   r   r   )r   r   r=   rp   r   rU   )rp   rp   r   r=   rU   r   )r   r   r   ri   r9   r{   r   r  s       r(   test_multinomialzTestRandomDist.test_multinomial  s    749--..##B16#BB(//////1//////1//////1	2 3 3 	67+++++r*   zfp errors don't work in wasmreasonr   )svdeighcholeskyc                    t          t          | 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          t          |j        ||d           ddgddgg}t          t          |j        ||           t          t          |j        ||d           t          t          |j        ||d           t          |j        ||d           t          t          |j        ||d           t          t          |j        ||dd           ddgddgg}|dv r8|                    ||d|          }t          |d         |d          d!           nt          t          |j        ||d           t	          j        dd"gd"dggt          j        #          }t                      5 }	|                    |||           |	                    t                    }
t!          |
          dk    sJ 	 d d d            n# 1 swxY w Y   t	          j        d          }t	          j        d          }t          t          |j        ||d$           t          t          |j        t	          j        d%          |           t          t          |j        |t	          j        d                     t          t          |j        |t	          j        d&                     d S )'N)r  r   r=   r   r  r   gtg$&@g&بO=g!$@gDo?g\&@g,R{?g
f!@g?ժ?gT^o#@g`R?gP'@r   r  gl?g$("@rU   raise)check_validr  r  r  )r  r   )r  r  r   ).r   ).r=   r   r  rW   other)rU   r=   r=   r   )r   r   r   multivariate_normalr9   r{   r   r   rE   r	   RuntimeWarningr   r
   r   r   recordrM  rZ   eyer   )r4   r   r[   r   covr   rd  rQ  r}  supwmus               r(   test_multivariate_normalz'TestRandomDist.test_multivariate_normal  sW    749--..1v1v++D#tF+KK(03DG13EGI13EG14EGI14EG13EGI	J K K 	"&'2>>>> ++D#f+EE(-/@ABB!&'2>>>> 1v1v1vj&"<dC")	+ 	+ 	+ 	+
 1v1v^V%?sKKK^V%?s"	$ 	$ 	$ 	$k6#=tS'	) 	) 	) 	) 	65tS'/	1 	1 	1 	1 	j&"<dC")	+ 	+ 	+ 	+j&"<dC")&	: 	: 	: 	: 1v1v_$$00s8> 1 @ @G%gfowv./1 1 1 1 1 +v'A4!+- - - - hC3(+2:>>>   	C&&tS&@@@

>**Aq66Q;;;;;	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 Xa[[fQiij&"<dC")	+ 	+ 	+ 	+j&"<hy))3	0 	0 	0j&"<"(6**	, 	, 	,j&"<"&))	% 	% 	% 	% 	%s   7AJJJz	mean, covy      ?      ?y                c                     t          t          | j                            }t          j        t
          d          5  |                    ||           d d d            d S # 1 swxY w Y   d S )Nzmust not be complexr   )r   r   r   r   r   rD   r  )r4   r   r  r[   s       r(   )test_multivariate_normal_disallow_complexz8TestRandomDist.test_multivariate_normal_disallow_complex  s    749--..]9,ABBB 	2 	2&&tS111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s   A!!A%(A%c                    t          t          | j                            }d}t          j        ddg          }t          j        ddgddgg          }|                    |||f|          }||z
  }|j        |z  |dz
  z  }t          j        t          j        |	                    d                    dk               sJ t          j        t          j        ||z
            dk               sJ d S )Nr.   r=   rU   r   rI   r  rf   )
r   r   r   r9   r{   r  r  rq   absr   )	r4   r   r[   n_sr   r  r5   s_centercov_emps	            r(   $test_multivariate_normal_basic_statsz3TestRandomDist.test_multivariate_normal_basic_stats  s    749--..xAhAA'((&&tSvf&MMt8:(S1W5vbfX]]2..//#566666vbfWs]++c12222222r*   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||           d S )Nre   g|Pk?r  )nr]   r   i  i  i  i  iX  i  )r   r   r   r   r9   r{   r   r  s       r(   r   z%TestRandomDist.test_negative_binomial  su    749--..))C6)GG(S#J #J #J( ) ) 	67+++++r*   c                    t          j        d          5  t          t          t          j        dt           j                   t          t          t          j        dt           j        gdz             d d d            d S # 1 swxY w Y   d S )Nr  r  re   r   )r9   r  r   rE   r[   r   r`   rF   s    r(   !test_negative_binomial_exceptionsz0TestRandomDist.test_negative_binomial_exceptions  s    [*** 	) 	)*f&>RVLLL*f&>6(R-) ) )	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   AA>>BBc                     t          t                    5  t                              dd          }d d d            d S # 1 swxY w Y   d S Nr=   r   )r   rE   r[   r   rr   s     r(   #test_negative_binomial_p0_exceptionz2TestRandomDist.test_negative_binomial_p0_exception   s    :&& 	/ 	/((A..A	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   >AAc                     t          j        d          5  t          t          t          j        dd           t          t          t          j        dgdg           d d d            d S # 1 swxY w Y   d S )Nr  r  rU  r  )r9   r  r   rE   r[   r   rF   s    r(   .test_negative_binomial_invalid_p_n_combinationz=TestRandomDist.test_negative_binomial_invalid_p_n_combination  s     [*** 	P 	P*f&>sKKK*f&>#OOO	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	P 	Ps   AA((A,/A,c                 4   t          t          | 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          t          | j                            }|                    ddd          }t	          j        ddgddgddgg          }t          ||d
           d S )Nrp   r  )dfnoncr   gs؀3J?gugو/@gNJm+@gA}-4@gq=&@gjhn@r   r  rY   rf   gZօDN?gE!X&?gt%T?gQ)V?g5Zlf?gΎ{?r   gmK?gZ?g%yKY@g@W@gĈ{>@g&BB=@)r   r   r   noncentral_chisquarer9   r{   r   r  s       r(   test_noncentral_chisquarez(TestRandomDist.test_noncentral_chisquare  se   749--..,,,GG(.0AB.0AB-1ABD E E 	"&'2>>>>,,&,II(13GH13GH13GHJ K K 	"&'2>>>>749--..,,,GG(-/?@-/?@-/?@B C C 	"&'2>>>>>>r*   c                     t          t          | j                            }|                    dddd          }t	          j        ddgdd	gd
dgg          }t          ||d           d S )Nrp   rU   r=   r  )dfnumdfdenr  r   gHP
?gn?g%f?gch?gzƎ?g]?:?r   r  )r   r   r   noncentral_fr9   r{   r   r  s       r(   test_noncentral_fz TestRandomDist.test_noncentral_f!  s    749--..$$1AA*0 % 2 2(^/?@-@-/?@B C C 	"&'2>>>>>>r*   c                     t          t          | j                            }|                    ddt          j                  }t	          j        |          sJ d S )Nrp   rU   )r  r  r  )r   r   r   r  r9   r`   isnanr4   r[   rd  s      r(   test_noncentral_f_nanz$TestRandomDist.test_noncentral_f_nan*  sQ    749--..$$1ABF$CCxr*   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr  r  r  r  g?`xg\P@g/7u g0aj?gi%?gog@r   r  )r   r   r   normalr9   r{   r   r  s       r(   test_normalzTestRandomDist.test_normal/  s    749--..:SvFF(/2CD/2CD/2CDF G G 	"&'2>>>>>>r*   c                     t          t                              d          d           t          t          t          j        d           d S r}  )r   r[   r  r   rE   rF   s    r(   test_normal_0zTestRandomDist.test_normal_07  r  r*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          j                            ||d
           d S )Nr  r  r  r   gá?gƫh@gi`>?g0"&Agc@g=fAr   )nulp)r   r   r   paretor9   r{   testingassert_array_almost_equal_nulpr  s       r(   test_paretozTestRandomDist.test_pareto;  s    749--..&99(35KL35KL35KLN O O 	
11&'1KKKKKr*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgddgg          }t          ||           d S )Nr  r  )lamr   r   )r   r   r   poissonr9   r{   r   r  s       r(   test_poissonzTestRandomDist.test_poissonI  sp    749--..JV<<(QFFF$ % % 	67+++++r*   c                 X   t          j        d          j        }d}t          t          t
          j        |           t          t          t
          j        |gdz             t          t          t
          j        |           t          t          t
          j        |gdz             t          j        d          5  t          t          t
          j        t           j                   t          t          t
          j        t           j        gdz             d d d            d S # 1 swxY w Y   d S )Nr   rB   r   r  r  )	r9   r   r   r   rE   r[   r  r  r`   )r4   lambiglamnegs      r(   test_poisson_exceptionsz&TestRandomDist.test_poisson_exceptionsQ  s2   '""&j&.&999j&.6(R-@@@j&.&999j&.6(R-@@@[*** 	E 	E*fnbf===*fnrvhmDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   9ADD#&D#c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr  r  r  gZ >g?gÄ(=g҇?gŚE?gߢH?r   r  )r   r   r   powerr9   r{   r   r  s       r(   
test_powerzTestRandomDist.test_power\  s    749--..
88(24IJ24IJ24IJL M M 	"&'2>>>>>>r*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r  )r  r   gry@gtQP0@gAI_@g@u81@g	G0@g"wc5@r   r  )r   r   r   rayleighr9   r{   r   r  s       r(   test_rayleighzTestRandomDist.test_rayleighd  s    749--..r77(-/@A-/@A.0ABD E E 	"&'2>>>>>>r*   c                     t          t                              d          d           t          t          t          j        d           d S r}  )r   r[   r  r   rE   rF   s    r(   test_rayleigh_0zTestRandomDist.test_rayleigh_0l  s=    V__1_--q111j&/======r*   c                     t          t          | j                            }|                    d          }t	          j        ddgddgddgg          }t          ||d	
           d S )Nr  r   gH1gW|3
g\?gLeg5P	gFA?r   r  )r   r   r   standard_cauchyr9   r{   r   r  s       r(   test_standard_cauchyz#TestRandomDist.test_standard_cauchyp  s    749--..''V'44(/1CD/1CD/2CDF G G 	"&'2>>>>>>r*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr  invr   ga\5?gr7k?g8PC*?g5$[?gW3T?g*?r   r  )r   r   r   standard_exponentialr9   r{   r   r  s       r(   test_standard_exponentialz(TestRandomDist.test_standard_exponentialx  s    749--..,,&,GG(.0AB.0AB.0ABD E E 	"&'2>>>>>>r*   c                 \    t          t          t          j        t          j                   d S NrW   )r   rD   r[   r  r9   r5  rF   s    r(   #test_standard_expoential_type_errorz2TestRandomDist.test_standard_expoential_type_error  s"    i!<BHMMMMMMr*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r  rz   r   gΈ̏&?gTϿ?g1n21@gDb<z@gBv@gc^@r   r  r   r   r   standard_gammar9   r{   r   r  s       r(   test_standard_gammaz"TestRandomDist.test_standard_gamma  s    749--..&&QV&<<(-/?@+/?@-/?@B C C 	"&'2>>>>>>r*   c                     t          t          | j                            }|                    dt          j                  }d}t          ||d           d S )Nr   rW   g   d@r   r  )r   r   r   r  r9   r   r   r  s       r(   !test_standard_gammma_scalar_floatz0TestRandomDist.test_standard_gammma_scalar_float  sS    749--..&&q
&;;$!&'1======r*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r  r  gf&?gMO?g1@g):@g@g;i@rp   r  r  r  s       r(   test_standard_gamma_floatz(TestRandomDist.test_standard_gamma_float  s{    749--..&&QV&<<(Wf.$f.$g.0 1 1 	"&'1======r*   c                    t          j        dt           j                  }t          t	          | j                            }|                    d|t           j                   t          j        ddgddgd	d
ggt           j                  }t          ||d           t          t	          | j                            }|                    d|dt           j                   t          ||d           d S )Nr  rW         $@rA  rX   gM»L$@ga {@gN]"@gPS")@g_+@gmB@rp   r  rA  r   rX   )	r9   rZ   r   r   r   r   r  r{   r   )r4   rd  r[   rQ  s       r(   test_standard_gammma_float_outz-TestRandomDist.test_standard_gammma_float_out  s    &
333749--..dbjAAA(X0&1&13:<*F F F 	"&'1====749--..dV2:NNN!&'1======r*   c                 J    t          t          t          j        dd           d S )Nrn  r5  rW   )r   rD   r[   r  rF   s    r(    test_standard_gamma_unknown_typez/TestRandomDist.test_standard_gamma_unknown_type  s/    i!6#	% 	% 	% 	% 	% 	%r*   c                     t          j        d          }t          t          t          j        dd|           t          t          t          j        dd|           d S )Nr   r  r   )r   rA  )r   r=   )r9   rZ   r   rE   r[   r  )r4   rA  s     r(   test_out_size_mismatchz%TestRandomDist.test_out_size_mismatch  sc    hrllj&"7B	 	 	 	j&"7G	 	 	 	 	 	r*   c                     t          t                              d          d           t          t          t          j        d           d S )Nr   )rz   r  )r   r[   r  r   rE   rF   s    r(   test_standard_gamma_0z$TestRandomDist.test_standard_gamma_0  sA    V***33Q777j&"7sCCCCCCr*   c                     t          t          | j                            }|                    d          }t	          j        ddgddgddgg          }t          ||d	
           d S )Nr  r   g
bYg? ?gGH{Lgz\?gc`+?gT}?r   r  )r   r   r   r   r9   r{   r   r  s       r(   test_standard_normalz#TestRandomDist.test_standard_normal  s    749--..''V'44(/2BD/2CD/2CDF G G 	"&'2>>>>>>r*   c                 \    t          t          t          j        t          j                   d S r  )r   rD   r[   r   r9   r5  rF   s    r(   %test_standard_normal_unsupported_typez4TestRandomDist.test_standard_normal_unsupported_type  s"    i!7rxHHHHHHr*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r  )r  r   gV1g	|ڙ(?g-?g NhڿgMc?g!uLM r   r  )r   r   r   
standard_tr9   r{   r   r  s       r(   test_standard_tzTestRandomDist.test_standard_t  s    749--..""bv"66(/2BD/1CD/1CDF G G 	"&'2>>>>>>r*   c                     t          t          | j                            }|                    dddd          }t	          j        ddgdd	gd
dgg          }t          ||d           d S )Ng{Gz@g(\u$@gףp=
W4@r  )leftmoderightr   gEpw@g4DC+@gŋ@g/,@gkuR*@gHNPcr+@r   r  )r   r   r   
triangularr9   r{   r   r  s       r(   test_triangularzTestRandomDist.test_triangular  s    749--..""5(. # 0 0(.0@B.0AB.0ABD E E 	"&'2>>>>>>r*   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )NGz?gGz%@r  )r\  r]  r   gm2@gJaD@g: @g
Q @g@T{e@gb@r   r  r   r   r   uniformr9   r{   r   r  s       r(   test_uniformzTestRandomDist.test_uniform  s    749--..Du6BB(-0AB.0AB.0ABD E E 	"&'2>>>>>>r*   c                 (   t          j        d          j        }t          j        d          j        }t          j        }t          t          |t           j         d           t          t          |dt           j                   t          t          |||           t          t          |t           j         gdg           t          t          |dgt           j        g           t                              t          j	        |d          |dz             d S )Nr|   r   r=   g ؅W4vC)r\  r]  )
r9   finfor  r   r[   r6  r   OverflowErrorinf	nextafter)r4   fminfmaxfuncs       r(   test_uniform_range_boundsz(TestRandomDist.test_uniform_range_bounds  s    x  $x  $~mTBF7A666mT1bf555mT4666mTRVG9qc:::mTA3999
 	2<a00td{CCCCCr*   c                 D   t           j        } |dd          }t          |d            |dt          j        gdt          j        g          }t          |dt          j        g            |dgdggddg          }t          |dt          j        d          z              d S )Nrv  rl   g
ףp= @rx   )r[   r6  r   r9   pirZ   )r4   r?  results      r(   test_uniform_zero_rangez&TestRandomDist.test_uniform_zero_range  s    ~c3$$$sBElS"%L11be---y7),w.@AA"(6*:*: :;;;;;r*   c                     t           j        }t          t          |dd           t          t          |ddgddg           t          t          |ddgddggd           d S )NrU   r=   r   r   )r[   r6  r   rE   )r4   r?  s     r(   test_uniform_neg_rangez%TestRandomDist.test_uniform_neg_range  s_    ~j$1---j$!Q!Q888j$1a&!Q!<<<<<r*   c                     G d dt           j                  }t          j        d                              |          }t	          t
          t          j        ||            G d dt           j                  }t          j        d                              |          }t	          t
          t          j        |dd           d S )Nc                       e Zd Zd ZdS )GTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloatc                     t           r%   rD   rF   s    r(   	__float__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__       r*   N)rN   rO   rP   rL  rQ   r*   r(   ThrowingFloatrI    #                 r*   rN  rn  c                       e Zd Zd ZdS )ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                     t           r%   rK  rF   s    r(   __int__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__  rM  r*   N)rN   rO   rP   rS  rQ   r*   r(   ThrowingIntegerrQ    rO  r*   rT  r=   )	r9   ndarrayr{   rB  r   rD   r[   r6  r  )r4   rN  throwing_floatrT  throwing_ints        r(   !test_scalar_exception_propagationz0TestRandomDist.test_scalar_exception_propagation  s    	  	  	  	  	 BJ 	  	  	  #++M::i$	& 	& 	&	  	  	  	  	 bj 	  	  	  x{{''88i!6aKKKKKr*   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr4  p=
ף?r  r  kappar   gLA?gxyw@gzVR?gpE ?g8&Aпgv @r   r  )r   r   r   vonmisesr9   r{   r   r  s       r(   test_vonmiseszTestRandomDist.test_vonmises  s    749--..D6BB(/2CD/2CD/2CDF G G 	"&'2>>>>>>r*   c                     t          t          | j                            }|                    ddd          }t	          t          j        |                                                     d S )Nrl   gg5_PG>i@B r[  )r   r   r   r]  r   r9   isfiniterq   r4   r[   rs      r(   test_vonmises_smallz"TestRandomDist.test_vonmises_small  sX    749--..OOreO<<A""$$%%%%%r*   c                     t          t          | j                            }|                    dt          j                  }t          t	          j        |                     d S )Nrl   )r  r\  )r   r   r   r]  r9   r`   r   r  ra  s      r(   test_vonmises_nanz TestRandomDist.test_vonmises_nan  sL    749--..OOrO00r*   r\  g     @  4&kCc                 d   t          t          | j                            }t          |j                  }|j        j        }|                    d|d          }||j        _        |                    d|d          }|dk     rt          ||           d S t          j	        ||k              sJ d S )Nr   r   r   g    .A)
r   r   r   r   r   r   r]  r   r9   rq   )r4   r\  r[   rsr   random_state_valsgen_valss          r(   test_vonmises_large_kappaz(TestRandomDist.test_vonmises_large_kappa!  s    749--..-..$*KK5rK::%*"??1e"?553;;-x888886+x78888888r*   r  g      gg	@)r   gư>r=   g     @@rf  c                    t          t          | j                            }|                    ||d          }t	          t          j        |t
          j         k              o!t          j        |t
          j        k                         d S )Nr   )r   r   r   r]  r   r9   rq   rB  )r4   r  r\  r[   rb  s        r(   test_vonmises_large_kappa_rangez.TestRandomDist.test_vonmises_large_kappa_range/  sk     749--..OOBr**qBE6z""9rva25j'9'9:::::r*   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr4  rZ  r  )r   r  r   g*س2?gt	@g;S@g\ F@gxF @g6b?r   r  )r   r   r   waldr9   r{   r   r  s       r(   	test_waldzTestRandomDist.test_wald6  s    749--..$d@@(-@-/?@-/?@B C C 	"&'2>>>>>>r*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr4  r  r  gnJZ?g*/F?gs(RY?g]'%?g,qD?g8 ?r   r  )r   r   r   weibullr9   r{   r   r  s       r(   test_weibullzTestRandomDist.test_weibull>  s    749--..$V44(.0AB.0AB.0ABD E E 	"&'2>>>>>>r*   c                     t          t          | j                            }t          |                    dd          t          j        d                     t          t          |j        d           d S )Nr   r   r  r  )r  )	r   r   r   r   rr  r9   rZ   r   rE   r  s     r(   test_weibull_0zTestRandomDist.test_weibull_0F  s^    749--..V^^ab^1128B<<@@@j&.C888888r*   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgddgg          }t          ||           d S )	Nr4  r  r  r=   r   ic  ib  rU   )r   r   r   zipfr9   r{   r   r  s       r(   	test_zipfzTestRandomDist.test_zipfK  sp    749--..t&11(qAJ #J AJ( ) ) 	67+++++r*   )rN   rO   rP   r   r  r  r  r  r  r  r  r   r   r   r9   r   ry   float64r8  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r&  r,  r1  r:  r<  r>  rV   rY  r{   rD  rI  rK  rO  rQ  rS  rV  rZ  r]  rf  rh  rj  rl  rp  r  ru  rx  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r<  r`   r  r  skipifr   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  r7  r@  rD  rF  rX  r^  rc  re  rk  rB  rm  rp  rs  ru  rx  rQ   r*   r(   r  r    s9
         , , ,, , ,, , ,
& 
& 
&
E 
E 
E> > >> > > [4!z295!z29578 8/ /8 8/? ? ?, , ,, , ,, , ,, , ,, , ,, , ,, , ,2 2 2$,9 ,9 ,9\9 9 9
/ / /
( 
( 
($ $ $( ( (& & &0 0 06, , ,0 0 0# # #L L L9 9 9  , , ,2, , ,M M M [WsFm44[-#XRX/C/C/C/C/C/C/E &F &F G ("(,@,@,@,@,@,@,B #C #C D ("(,@,@,@,@,@,@,B #C #C D	EF F
( 
(F F 54
(# # #" " " [Z&!55( ( 65(0 0 0. . .? ? ?, , ,? ? ?E E E&
@ 
@ 
@	P 	P 	P6 6 6@ @ @ [< < < [			#	#	#					,	,	,
		
 
) )
 
)
? ? ?A A A? ? ?? ? ?F F F, , ,G G G? ? ?< < <, , ,4? ? ?= = =? ? ?? ? ?? ? ?, , ,( ( ( [W|r|B';';R&LMM
> 
> NM
>	, 	, 	, [(FGG[X'B'B'BCCG% G% DC HGG%R [[QC4&?bTQC5M*JKK2 2 LK2
 [X'B'B'BCC
3 
3 DC
3, , ,) ) )/ / /
P P P? ? ?*? ? ?     
? ? ?< < <L L L, , ,	E 	E 	E? ? ?? ? ?> > >? ? ?? ? ?N N N? ? ?> > >> > >> > >% % %  D D D? ? ?I I I? ? ?? ? ?? ? ?D D D < < <= = =L L L,? ? ?& & &  
 [WsDk229 9 329 [TC"%ruc#BCC[W&@&@&@AA; ; BA DC;
? ? ?? ? ?9 9 9
, , , , ,r*   r  c            	       p   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd 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!d" e&j'        d"d"g           e&j'        d"ggd"ggg          g          d#             Z(d$ Z)d% Z*d&S )'TestBroadcastc                     d| _         d S )Ni[r   rF   s    r(   r   zTestBroadcast.setup_methodW  s    			r*   c                    t          t          | j                            }dg}dg}|j        }t	          j        g d          }t          t          | j                            }|                    |dz  |          }t          ||d           t          t          | j                            }|                    ||dz            }t          ||d           d S )Nr   r=   )g4
7^?gF]
"?g .?r   r   r  r5  )r4   r[   r\  r]  r6  rQ  rd  s          r(   r7  zTestBroadcast.test_uniformZ  s    749--..cs.(QQQRR749--..a..!&'2>>>>749--..TAX..!&'2>>>>>>r*   c                 "   dg}dg}dg}t          t          | j                            }t          j        g d          }t          t          | j                            }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          | j                            }|j        } |||dz            }t          ||d           t          t          |||dz             d S )Nr   r=   rB   )gw-Dؿgn0_x?gʊ;<.?r   r   r  )	r   r   r   r9   r{   r  r   r   rE   )r4   r  r  	bad_scaler[   rQ  rd  r  s           r(   r  zTestBroadcast.test_normali  s   cD	749--..(SSSTT749--..sQw..!&'2>>>>j&-q)DDD749--..UQY''!&'2>>>>j&#y1}=====r*   c                    dg}dg}dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           t          t          | j                            }|                    ||dz            }t          ||d           d S )	Nr=   rU   rB   rI   )gf8?g%eo?g$q??r   r   r  )	r9   r{   r   r   r   rU  r   r   rE   )	r4   r  r  bad_abad_brQ  r[   rU  rd  s	            r(   rV  zTestBroadcast.test_beta{  s    CC(QQQRR749--..{a!eQ!&'2>>>>j$	1555j$Au555749--..QA&&!&'2>>>>>>r*   c                    dg}dg}t          j        g d          }t          t          | j                            }|                    |dz            }t          ||d           t          t          |j        |dz             d S Nr=   rB   )g`ʄ?gE]?g?r   r   r  )	r9   r{   r   r   r   rz  r   r   rE   r4   r  r  rQ  r[   rd  s         r(   r{  zTestBroadcast.test_exponential  s    D	(PPPQQ749--..##EAI..!&'2>>>>j&"4i!mDDDDDr*   c                     dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz            }t          ||d           t          t          ||dz             d S r  )	r9   r{   r   r   r   r  r   r   rE   )r4   rz   	bad_shaperQ  r[   	std_gammard  s          r(   r  z!TestBroadcast.test_standard_gamma  s    D	(PPPQQ749--..)	519%%!&'2>>>>j)Y];;;;;r*   c                 >   dg}dg}dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           t          t          | j                            }|j        } |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             d S )	Nr=   rU   rB   rI   )g3ʄ?gJE]?g?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   )	r4   rz   r  r  r  rQ  r[   r  rd  s	            r(   r  zTestBroadcast.test_gamma  s*   D	D	(PPPQQ749--..uqy%((!&'2>>>>j%Q>>>j%I>>>749--..ueai((!&'2>>>>j%EAI>>>j%	A>>>>>r*   c                 >   dg}dg}dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           t          t          | j                            }|j        } |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             d S )	Nr=   rU   rB   rI   )gM3B?gybi@g0?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   )	r4   r  r  	bad_dfnum	bad_dfdenrQ  r[   r  rd  s	            r(   r  zTestBroadcast.test_f  s*   D	D	(QQQRR749--..H519e$$!&'2>>>>j!Y]E:::j!UQY	:::749--..H5%!)$$!&'2>>>>j!Y	:::j!UIM:::::r*   c           
      z   dg}dg}dg}dg}dg}dg}t          j        g d          }t          t          | j                            }|j        }	 |	|dz  ||          }
t          |
|d	           t          j        t          j         |	||t           j	        gdz                                sJ t          t          |	|dz  ||           t          t          |	|dz  ||           t          t          |	|dz  ||           t          t          | j                            }|j        }	 |	||dz  |          }
t          |
|d	           t          t          |	||dz  |           t          t          |	||dz  |           t          t          |	||dz  |           t          t          | j                            }|j        }	 |	|||dz            }
t          |
|d	           t          t          |	|||dz             t          t          |	|||dz             t          t          |	|||dz             d S )
NrU   r   r   r   rB   rI   )gŜ,n1 @g!6)@g9?r   r  )r9   r{   r   r   r   r  r   rq   r  r`   r   rE   )r4   r  r  r  r  r  bad_noncrQ  r[   nonc_frd  s              r(   r  zTestBroadcast.test_noncentral_f  sI   sC	D	4(RRRSS749--..$	5$//!&'2>>>>vbhvveURVHqLAABBCCCCCj&)a-EEEj&%!)YEEEj&%!)UHEEE749--..$uqy$//!&'2>>>>j&)UQYEEEj&%QEEEj&%HEEE749--..$udQh//!&'2>>>>j&)UD1HEEEj&%D1HEEEj&%1EEEEEr*   c                     t          t          | j                            }t          j        ddg          }|                    dddd          }t          ||d           d S )NgZ\#?gDqw?r   rU   r   r   r  )r   r   r   r9   r{   r  r   )r4   r[   rQ  rd  s       r(   test_noncentral_f_small_dfz(TestBroadcast.test_noncentral_f_small_df  se    749--..(,o>??$$S#qq$99!&'2>>>>>>r*   c                    dg}dg}t          j        g d          }t          t          | j                            }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nr=   rB   )gC{?g7Q#?g%h1T@r   r   r  )	r9   r{   r   r   r   r\  r   r   rE   r4   r  bad_dfrQ  r[   rd  s         r(   r]  zTestBroadcast.test_chisquare  s    S(PPPQQ749--..!!"q&))!&'2>>>>j&"2FQJ?????r*   c                 >   dg}dg}dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz  |          }t          ||d           t          t          ||dz  |           t          t          ||dz  |           t          t          | j                            }|j        } |||dz            }t          ||d           t          t          |||dz             t          t          |||dz             d S )	Nr=   rU   rB   rI   )g-S?g[@gr3/.?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   )	r4   r  r  r  r  rQ  r[   nonc_chird  s	            r(   r  z'TestBroadcast.test_noncentral_chisquare  s,   Ss4(OOOPP749--..."q&$''!&'2>>>>j(FQJ===j(BFH===749--..."dQh''!&'2>>>>j(FD1H===j(B1=====r*   c                    dg}dg}t          j        g d          }t          t          | j                            }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nr=   rB   )g>Qg{g,e?r   r   r  )	r9   r{   r   r   r   r+  r   r   rE   r  s         r(   r,  zTestBroadcast.test_standard_t  s    S(SSSTT749--..""26**!&'2>>>>j&"3VaZ@@@@@r*   c                    dg}dg}dg}t          j        g d          }t          t          | j                            }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          | j                            }|                    ||dz            }t          ||d           t          t          |j        ||dz             d S )NrU   r=   rB   )gD()@g,)ʸ@gPor   r   r  )	r9   r{   r   r   r   r]  r   r   rE   )r4   r  r\  	bad_kapparQ  r[   rd  s          r(   r^  zTestBroadcast.test_vonmises  s    SD	(RRRSS749--..a//!&'2>>>>j&/269EEE749--..UQY//!&'2>>>>j&/2y1}EEEEEr*   c                    dg}dg}t          j        g d          }t          t          | j                            }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nr=   rB   )g/h?gcE?g/gV?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   r4   r  r  rQ  r[   rd  s         r(   r  zTestBroadcast.test_pareto.  s    C(QQQRR749--..q1u%%!&'2>>>>j&-;;;;;r*   c                    dg}dg}t          j        g d          }t          t          | j                            }|                    |dz            }t          ||d           t          t          |j        |dz             d S r  )	r9   r{   r   r   r   rr  r   r   rE   r  s         r(   rs  zTestBroadcast.test_weibull8  s    C(PPPQQ749--..A&&!&'2>>>>j&.%!)<<<<<r*   c                    dg}dg}t          j        g d          }t          t          | j                            }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nr=   rB   )gT?gʥ?gKܮc?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   r  s         r(   r  zTestBroadcast.test_powerB  s    C(QQQRR749--..a!e$$!&'2>>>>j&,	:::::r*   c                    dg}dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz  |          }t          ||d           t          t          ||dz  |           t          t          | j                            }|j        } |||dz            }t          ||d           t          t          |||dz             d S )Nr   r=   rB   )gh&BgsgR#?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   )r4   r  r  r  rQ  r[   r  rd  s           r(   r  zTestBroadcast.test_laplaceL  s    cD	(SSSTT749--...q%((!&'2>>>>j'37I>>>749--...eai((!&'2>>>>j'3	A>>>>>r*   c                    dg}dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz  |          }t          ||d           t          t          ||dz  |           t          t          | j                            }|j        } |||dz            }t          ||d           t          t          |||dz             d S )Nr   r=   rB   )gs4?g$Cw%T?gտr   r   r  )	r9   r{   r   r   r   r  r   r   rE   )r4   r  r  r  rQ  r[   r  rd  s           r(   r  zTestBroadcast.test_gumbel^  s    cD	(RRRSS749--..a''!&'2>>>>j&#'9===749--..UQY''!&'2>>>>j&#y1}=====r*   c                 8   dg}dg}dg}t          j        g d          }t          t          | j                            }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          | j                            }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          |                    dd	          d           d S )
Nr   r=   rB   )g$DgXPg,?r   r   r  rn  rl   )
r9   r{   r   r   r   r  r   r   rE   r   )r4   r  r  r  rQ  r[   rd  s          r(   r  zTestBroadcast.test_logisticp  s   cD	(QQQRR749--..q%00!&'2>>>>j&/37IFFF749--..eai00!&'2>>>>j&/3	AFFFV__S#..44444r*   c                    dg}dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz  |          }t          ||d           t          t          ||dz  |           t          t          | j                            }|                    ||dz            }t          t          |j        ||dz             d S )Nr   r=   rB   )g c?gu@gVQ?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   )r4   r   r  	bad_sigmarQ  r[   r  rd  s           r(   r  zTestBroadcast.test_lognormal  s    sD	(QQQRR749--..$	4!8U++!&'2>>>>j)TAXyAAA749--..!!$	22j&"2D)a-HHHHHr*   c                    dg}dg}t          j        g d          }t          t          | j                            }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nr=   rB   )gs(?g4mK?gVk+?r   r   r  )	r9   r{   r   r   r   r  r   r   rE   r  s         r(   r  zTestBroadcast.test_rayleigh  s    D	(! ! !
 
 749--..++!&'2>>>>j&/9q=AAAAAr*   c                 r   dg}dg}dg}dg}t          j        g d          }t          t          | j                            }|                    |dz  |          }t          ||d           t          t          |j        |dz  |           t          t          |j        |dz  |           t          t          | j                            }|                    ||dz            }t          ||d           t          t          |j        ||dz             t          t          |j        ||dz             d S )	NrY   r=   r   rI   )gk7Z?g*}z9?gc-	?r   r   r  )	r9   r{   r   r   r   ro  r   r   rE   )r4   r   r  bad_meanr  rQ  r[   rd  s           r(   rp  zTestBroadcast.test_wald  s(   u3D	(OOOPP749--..TAXu--!&'2>>>>j&+x!|UCCCj&+taxCCC749--..T519--!&'2>>>>j&+xCCCj&+tY]CCCCCr*   c                    dg}dg}dg}dg}dg}|dz  \  }}t          j        g d          }t          t          | j                            }	|	j        }
 |
|dz  ||          }t          ||d           t          t          |
|dz  ||           t          t          |
|dz  ||           t          t          |
|dz  ||           t          t          | j                            }	|	j        }
 |
||dz  |          }t          ||d           t          t          |
||dz  |           t          t          |
||dz  |           t          t          |
||dz  |           t          t          | j                            }	|	j        }
 |
|||dz            }t          ||d           t          t          |
|||dz             t          t          |
|||dz             t          t          |
|||dz             t          t          |
dd	d
           t          t          |
ddd
           t          t          |
ddd           d S )Nr=   r   rU   r   )gR8T>?gK?g;>h@r   r  r  rl   g      4@g      9@)	r9   r{   r   r   r   r1  r   r   rE   )r4   r.  r0  r/  bad_left_onebad_mode_onebad_left_twobad_mode_tworQ  r[   r1  rd  s               r(   r2  zTestBroadcast.test_triangular  s{   ssss%*QY"l(QQQRR749--..&
D1HdE22!&'2>>>>j*lQ.>eLLLj*dQheLLLj*lQ.>	 	 	 749--..&
D$(E22!&'2>>>>j*lD1HeLLLj*dL14DeLLLj*lL1<L	 	 	 749--..&
D$	22!&'2>>>>j*lD%!)LLLj*dL%!)LLLj*lLai	! 	! 	! 	j*c2s;;;j*c3<<<j*c3<<<<<r*   c                    dg}dg}dg}dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz  |          }	t          |	|           t          t          ||dz  |           t          t          ||dz  |           t          t          ||dz  |           t          t          | j                            }|                    ||dz            }	t          |	|           t          t          |||dz             t          t          |||dz             t          t          |||dz             d S )Nr=   rY   rB   rv  r   r   r=   r   )	r9   r{   r   r   r   r\   r   r   rE   )
r4   r  r]   bad_n	bad_p_one	bad_p_tworQ  r[   binomrd  s
             r(   rZ  zTestBroadcast.test_binomial  sM   CED	E	(999%%749--..q1ua67+++j%A666j%Q	:::j%Q	:::749--..AE**67+++j%A666j%IM:::j%IM:::::r*   c                    dg}dg}dg}dg}dg}t          j        g dt           j                  }t          t	          | j                            }|j        } ||dz  |          }	t          |	|           t          t          ||dz  |           t          t          ||dz  |           t          t          ||dz  |           t          t	          | j                            }|j        } |||dz            }	t          |	|           t          t          |||dz             t          t          |||dz             t          t          |||dz             d S )Nr=   rY   rB   rv  )r   rU   r=   rW   r   )
r9   r{   r   r   r   r   r   r   r   rE   )
r4   r  r]   r  r  r  rQ  r[   	neg_binomrd  s
             r(   r   z$TestBroadcast.test_negative_binomial  s]   CED	E	(999BH555749--..,	1q5!$$67+++j)UQY:::j)QUI>>>j)QUI>>>749--..,	1a!e$$67+++j)UAE:::j)Q	A>>>j)Q	A>>>>>r*   c                 H   dg}dg}t          j        g d          }t          t          | j                            }|j        }|dz  g}|j        } ||dz            }t          ||           t          t          ||dz             t          t          ||dz             d S )Nr=   rB   )r   r   r   rU   r   )
r9   r{   r   r   r   _poisson_lam_maxr  r   r   rE   )	r4   r  bad_lam_onerQ  r[   max_lambad_lam_twor  rd  s	            r(   r  zTestBroadcast.test_poisson		  s    cd(999%%749--..){m.q!!67+++j';?;;;j';?;;;;;r*   c                    dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz            }t          ||           t          t          ||dz             t          j	        d          5  t          t          |t           j
                   t          t          |ddt           j
        g           d d d            d S # 1 swxY w Y   d S )NrU   r   )r=   r   r=   r   r  r  )r9   r{   r   r   r   rw  r   r   rE   r  r`   )r4   r  r  rQ  r[   rw  rd  s          r(   rx  zTestBroadcast.test_zipf	  s   C(999%%749--..{a!e67+++j$	222[*** 	< 	<*dBF333*dQ26N;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   AC""C&)C&c                 4   dg}dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz            }t          ||           t          t          ||dz             t          t          ||dz             d S )NrY   rB   rv  r   r   )	r9   r{   r   r   r   r  r   r   rE   )r4   r]   r  r  rQ  r[   r  rd  s           r(   r  zTestBroadcast.test_geometric&	  s    ED	E	(999%%749--..$	1q5!!67+++j)Y];;;j)Y];;;;;r*   c                 D   dg}dg}dg}dg}dg}dg}dg}t          j        g d          }t          t          | j                            }	|	                    |dz  ||          }
t          |
|           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          t          |	j        |dz  ||           t          t          | j                            }	|	                    ||dz  |          }
t          |
|           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          t          |	j        ||dz  |           t          t          | j                            }	|	j        } ||||dz            }
t          |
|           t          t          ||||dz             t          t          ||||dz             t          t          ||||dz             t          t          ||||dz             t          t          |ddd	           t          t          |ddd	           t          t          |ddd           t          t          |ddd
           t          t          |ddd	           t          t          |ddd           t          t          |dddgd           d S )Nr=   rU   rB   rI   r   r  r   r   r   r   i   @i  l        r   i    r.   )	r9   r{   r   r   r   r  r   r   rE   )r4   ngoodnbadr   	bad_ngoodbad_nbadbad_nsample_onebad_nsample_tworQ  r[   rd  	hypergeoms               r(   r  z!TestBroadcast.test_hypergeometric3	  s   s#D	4$#(999%%749--..&&uqy$@@67+++j&"7QgVVVj&"7HgVVVj&"7D/ZZZj&"7D/ZZZ749--..&&udQh@@67+++j&"7D1HgVVVj&"71gVVVj&"7q/ZZZj&"7q/ZZZ749--..)	5$!4467+++j)YgkJJJj)UHgkJJJj)UD/A:MNNNj)UD/A:MNNNj)RR888j)RR888j)RR888j)RR888 	j)UB;;;j)S%<<<j)S5%.$GGGGGr*   c                 4   dg}dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz            }t          ||           t          t          ||dz             t          t          ||dz             d S )NrY   rU   rB   )r=   r=   r=   r   )	r9   r{   r   r   r   r  r   r   rE   )r4   r]   r  r  rQ  r[   r  rd  s           r(   r  zTestBroadcast.test_logseries`	  s    EC	D	(999%%749--..$	1q5!!67+++j)Y];;;j)Y];;;;;r*   c                    t          t          | j                            }|                    ddgdgdz  d          }t	          j        g dg dgg d	g d
gg dg dggt          j                  }t          ||           t          t          | j                            }|                    ddgdgdz            }t	          j        g dg dgt          j                  }t          ||           t          t          | j                            }|                    ddgdgdz  gdz            }t	          j        g dg dgt          j                  }t          ||           t          t          | j                            }|                    dgdggdgdz  gdz            }t	          j        g dg dgg dg d
ggt          j                  }t          ||           d S )Nrp   r   r  r   r  r   )r   r   rU   r=   rU   r   )rU   r   r   r   rU   r   )r=   r   r=   r   rU   r=   )r   rU   rU   r=   r   r   )r   rU   r   r=   rU   r   )r   rU   r   r   r   rp   rW   rU   )r   r   rU   r=   r=   r=   )r   rU   r   r   rp   r   )r   r   r   ri   r9   r{   r   r   r  s       r(   r  zTestBroadcast.test_multinomialm	  sb   749--..##QGfX\#GG(//////1//////1//////1	2
 :<C C C 	67+++749--..##QGfX\::(......079xA A A67+++749--..##QGvhl^a-?@@(......079xA A A67+++749--..##aS2$K6(Q,!1CDD(//////1//////12 :<C C C 	67+++++r*   r  r   c                    t          t          | j                            }t          j        dgdz            }|                    ||          }t          |t                    rt                      n|j	        }|dz   }|j	        |k    sJ t          j
        ||g          }|                    ||          }t          j        ||j	        d d                   dz   }|j	        |k    sJ t          j
        |g|gg          }|                    ||          }t          j        ||j	        d d                   }|j	        |dz   k    sJ |                    ||d|z             }|j	        d|z   dz   k    sJ t          j        t                    5  |                    ||d          }d d d            d S # 1 swxY w Y   d S )Nr  r   )r   rB   r  r   )r=   r=   r=   r=   r=   r=   )r   r   r   r9   r{   ri   r   rV   r  rz   r  broadcast_shapesr   r   rE   )r4   r  r[   r   rd  n_shaper   s          r(   test_multinomial_pval_broadcastz-TestBroadcast.test_multinomial_pval_broadcast	  s    749--..%1%%##Au--'3//<%'''QW 4|~----	5%.))##Au--,Wek#2#6FGG$N|~----	E7UG,--##Au--,Wek#2#6FGG|~44444##Au6N3J#KK|v6=====]:&& 	A 	A''5x'@@F	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   F77F;>F;c                     t          t          | j                            }dgdz  dgdz  g}t          t          |j        d|           t          t          |j        dd           d S )Nr  r   r  r=   rY   )r   r   r   r   rE   ri   )r4   r[   r   s      r(   test_invalid_pvals_broadcastz*TestBroadcast.test_invalid_pvals_broadcast	  sc    749--..1ugk*j&"4a???j&"4a=====r*   c                    t          t          | j                            }|                    t	          j        dd          dgdz            }|j        dk    sJ |                    dt	          j        d                    }|j        dk    sJ |                    t	          j        dd          t	          j        d	                    }|j        d	k    sJ d S )
N)r   r   r   i8r  r   )r   r   r   r   r   )r   r   r   )r   r   r   )r   r   r   r   )r   r   r   ri   r9   r   rz   r  s      r(   test_empty_outputsz TestBroadcast.test_empty_outputs	  s    749--..##BHZ$>$>!LL|},,,,##B(=(=>>|{****##BHY$=$=$&H\$:$:< <||++++++r*   N)+rN   rO   rP   r   r7  r  rV  r{  r  r  r  r  r  r]  r  r,  r^  r  rs  r  r  r  r  r  r  rp  r2  rZ  r   r  rx  r  r  r  r  r   r   r   r9   r{   r  r  r  rQ   r*   r(   r|  r|  T  s         ? ? ?> > >$? ? ?$E E E	< 	< 	<? ? ?*; ; ;*!F !F !FF? ? ?@ @ @> > >*A A AF F F < < <= = =; ; ;? ? ?$> > >$5 5 5"I I I B B BD D D&&= &= &=P; ; ;.? ? ?0< < << < << < <+H +H +HZ< < <, , ,> [S2#+28RH#5#5#+28rdVrdV,<#=#=#%  
A A 
A.> > >, , , , ,r*   r|  zcan't start threadr  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )
TestThreadc                 .    t          d          | _        d S )Nr   )r8   seedsrF   s    r(   r   zTestThread.setup_method	  s    1XX


r*   c                 Z   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          t          |                    |           ,t          j	                    j
        j        dk    r"t          j        dk    rt          ||           d S t          ||           d S )Nr   )Threadc           
      h    g | ].\  }} t          t          |                    |f           /S ))targetargs)r   r   )r  r5   or  functions      r(   r  z-TestThread.check_function.<locals>.<listcomp>	  sO     0 0 0A V89WQZZ+@+@!*DEEE 0 0 0r*   c                 6    g | ]}|                                 S rQ   )startr  rs   s     r(   r  z-TestThread.check_function.<locals>.<listcomp>	  s     qr*   c                 6    g | ]}|                                 S rQ   )joinr  s     r(   r  z-TestThread.check_function.<locals>.<listcomp>	  s     ar*   r   win32)	threadingr  r9   r   rM  r  zipr   r   intprX   r   r;  platformr   r   )	r4   r  szout1out2tr5   r  r  s	    `      @r(   check_functionzTestThread.check_function	  sI   $$$$$$xTZ*R/00xTZ*R/000 0 0 0 0TZ..0 0 0A1 
D)) 	/ 	/DAqHYwqzz**A.... 799?#q((S\W-D-D%dD11111tT*****r*   c                 :    d }|                      |d           d S )Nc                 8    |                      d          |d<   d S )Nr  r   .)r  r   rA  s     r(   
gen_randomz*TestThread.test_normal.<locals>.gen_random	  s    |||//CHHHr*   )r  r  r  r4   r  s     r(   r  zTestThread.test_normal	  s2    	0 	0 	0 	J844444r*   c                 :    d }|                      |d           d S )Nc                 \    |                      t          j        d                    |d<   d S )Nre   r.   r~  .)rz  r9   r  r  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	  s5    	E 	E 	E 	J;77777r*   c                 :    d }|                      |d           d S )Nc                 D    |                      ddgdz  d          |d<   d S )Nr   r  r   r  r   .)ri   r  s     r(   r  z/TestThread.test_multinomial.<locals>.gen_random	  s*    ((fX\(FFCHHHr*   )r  r   r  r  r  s     r(   r  zTestThread.test_multinomial	  s5    	G 	G 	G 	J:66666r*   N)rN   rO   rP   r   r  r  r  r  rQ   r*   r(   r  r  	  s_          + + +,5 5 58 8 87 7 7 7 7r*   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestSingleEltArrayInputc                     t          j        dg          | _        t          j        dg          | _        t          j        dg          | _        d| _        d S )NrU   r   r   r  )r9   r{   argOneargTwoargThreetgtShaperF   s    r(   r   z$TestSingleEltArrayInput.setup_method	  s@    hsmmhsmm!r*   c                    t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j	        t           j
        t           j        t           j        f}t           j        t           j        f}|D ]O}||v r |t          j        dg                    }n || j                  }t!          |j        | j                   Pd S r   )r[   rz  r  r\  r+  r  rr  r  r  r  rw  r  r  r9   r{   r  r   rz   r  )r4   funcs	probfuncsr?  rA  s        r(   test_one_arg_funcsz*TestSingleEltArrayInput.test_one_arg_funcs	  s    #V%:!6#4v!6#35 %v'78	 	3 	3Dy  d28SE??++ d4;''DM2222	3 	3r*   c                    t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j	        t           j
        t           j        t           j        t           j        t           j        f}t           j        t           j        f}|D ]}||v rt          j        dg          }n| j        } || j        |          }t'          |j        | j                    || j        d         |          }t'          |j        | j                    || j        |d                   }t'          |j        | j                   d S )NrY   r   )r[   r6  r  rU  r  r  r  r]  r  r  r  r  ro  r\   r   r9   r{   r  r  r   rz   r  )r4   r  r  r?  r  rA  s         r(   test_two_arg_funcsz*TestSingleEltArrayInput.test_two_arg_funcs
  s   fl66&.!6;&":< _f&>?	 	3 	3Dy  3% $t{F++CDM222$t{1~v..CDM222$t{F1I..CDM2222	3 	3r*   c           	      T   t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j        t           j	        g	}t          j        }t          j        dg          }t          j        dg          }|D ]} |||||          }t          |j        | j                    ||d         |||          }t          |j        | j                    |||d         ||          }t          |j        | j                   d S )Nr=   r   r   )r9   r  r6  r9  r4  r7  r5  ry   r   r8  r[   r2   r{   r   rz   r  )r4   r)   r  r?  r]  r\  r
  rA  s           r(   r  z%TestSingleEltArrayInput.test_integers
  s    "'28RXry29bh	;x}}hsmm 	3 	3B$sD82>>>CDM222$s1vthbAAACDM222$sDGhbAAACDM2222	3 	3r*   c                    t           j        t           j        t           j        g}|D ]} || j        | j        | j                  }t          |j        | j	                    || j        d         | j        | j                  }t          |j        | j	                    || j        | j        d         | j                  }t          |j        | j	                   d S )Nr   )
r[   r  r1  r  r  r  r  r   rz   r  )r4   r  r?  rA  s       r(   test_three_arg_funcsz,TestSingleEltArrayInput.test_three_arg_funcs/
  s    $f&7&(  	3 	3D$t{DK??CDM222$t{1~t{DMBBCDM222$t{DKNDMBBCDM2222	3 	3r*   N)rN   rO   rP   r   r  r  r  r  rQ   r*   r(   r  r  	  s_          3 3 3&3 3 363 3 3"3 3 3 3 3r*   r  r[  c                    | d         }| d         }t          |          }|                    |           |j        d         d         }t          j        dk    r|                                }t          j        |          }|j        d         d         | d         d         k    sJ |                                | d         d         k    sJ |	                                }|j        d         d         }t          j        dk    r|                                }t          j        |          }|j        d         d         | d	         d         k    sJ |                                | d	         d         k    sJ d S )
Nr   r   r   r   rs  r   r   r   r   )
r   r>   r   r;  r<  r=  r>  r?  r@  r   )r[  r   r   mt19937r   r?  r   s          r(   test_jumpedr  >
  sZ    &>D7OEdmmGu
-
 
'C
}llnn^C  F=!%(F9,=e,DDDDD	!2<!@@@@@^^F
,w

&C
}llnn^C  F< '6(+;E+BBBBB!1,!???????r*   c                  X	   t          j        d          } t          j        d          }d}t                              | |d          j        dk    sJ t          j        t                    5  t                              | ||           d d d            n# 1 swxY w Y   t          j        t                    5  t                              | |d           d d d            n# 1 swxY w Y   t          j        t                    5  t                              | |d           d d d            n# 1 swxY w Y   t          j        d          }t          j        t                    5  t                              ||           d d d            n# 1 swxY w Y   t          j        t                    5  t                              |d           d d d            n# 1 swxY w Y   t          j        t                    5  t                              |d           d d d            n# 1 swxY w Y   t          j	        |          }t          j        t                    5  t                              ||	           d d d            n# 1 swxY w Y   t          j        t                    5  t          
                    d
ddgd           d d d            n# 1 swxY w Y   t          j        t                    5  t          
                    d
dgdd           d d d            n# 1 swxY w Y   t          j        t                    5  t          
                    d
dgddgd           d d d            n# 1 swxY w Y   t          j        t                    5  t                              ddgddgd           d d d            n# 1 swxY w Y   t                              dd          }t                              dd          }t                              dd          }t                              |||          j        dk    sJ t          j        t          d          5  t                              |||d           d d d            d S # 1 swxY w Y   d S )Nr   )r   r   )r   r   rU   )rp   r   r   r   )r=   r   )r   r=   r=   )r   rN  r=   r  gffffff?)rU   r=   rU   rp   zOutput size \(6, 5, 1, 1\) isr   )r   rp   r=   r=   )r9   r  r[   r  rz   r   r   rE   r  r   r\   ri   r\  r  )r  r  r   rz   rA  r  r  r  s           r(   test_broadcast_size_errorr	  Z
  s   	BGFOOED==U=339YFFFF	z	"	" , ,b%d+++, , , , , , , , , , , , , , ,	z	"	" . .b%f---. . . . . . . . . . . . . . .	z	"	" 1 1b%i0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 GFOOE	z	"	" 0 0e$///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	z	"	" 0 0e$///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	z	"	" - -e!,,,- - - - - - - - - - - - - - - (4..C	z	"	" . .e---. . . . . . . . . . . . . . . 
z	"	" 4 4C:F3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4	z	"	" 2 2A&1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	z	"	" 9 9Ac
8889 9 9 9 9 9 9 9 9 9 9 9 9 9 9	z	"	" : :Aq6B8&999: : : : : : : : : : : : : : : 	##A((A++Aq!Q''-::::	z)I	J	J	J 8 8Aq!,7778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   ,BBB:C$$C(+C(D22D69D6*FFF7G  G$'G$H--H14H1%JJJ2 KK"%K" L..L25L2"N  NN$"OOO3RR#&R#c                  .   t          j        d          } t          j        d          }t                              | |d           t	          j        t                    5  t                              | |d           d d d            d S # 1 swxY w Y   d S )Nr   r   rU   )r9   r  r[   r  r   r   rE   )r  r  s     r(   test_broadcast_size_scalarr  
  s    	BGAJJE
MM"e!M$$$	z	"	" ) )b%a((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   B

BBc                      g g dg} t          t          d                    }t          |j        |            | dg g gk    sJ d S r  )r   r   r
   r  )seqgens     r(   test_ragged_shuffler  
  sO    r1+C
GAJJ

Cs{C(((1b"+r*   r]  rI   r)   c                    t          t          d                    }|rdnd}t          j        t          |          5  |                    | |           d d d            n# 1 swxY w Y   |rdnd}t          j        t          |          5  |                    d| |           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    dg| |           d d d            d S # 1 swxY w Y   d S )	Nr   zhigh < 0z	high <= 0r   r  z
low > highzlow >= highrB   )r   r   r   r   rE   r2   )r]  r)   r  msgs       r(   !test_single_arg_integer_exceptionr  
  s    GAJJ

C 
1**kC	z	-	-	- . .TH---. . . . . . . . . . . . . . ."
5,,C	z	-	-	- 2 2R1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	z	-	-	- 4 4bT4(3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s5   A""A&)A&B33B7:B7D  DDrX   f4f8c                    t          j        dd|           }g d}t          j        t          d          5  t
                              |||            d d d            n# 1 swxY w Y   t          j        t          d          5  t
                              |||j        |            d d d            d S # 1 swxY w Y   d S )	Nr   F)orderrX   r   zSupplied output arrayr   r  r  )r9   r   r   r   rE   r[   r  rz   )rX   rA  rz   s      r(   test_c_contig_req_outr  
  sV    (6E
2
2
2CIIE	z)@	A	A	A ; ;eE:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	z)@	A	A	A K Ke39EJJJK K K K K K K K K K K K K K K K K Ks#   A!!A%(A%$B88B<?B<r  r  Cdistc                     t          j        d||          } | ||          }||u sJ  | |||j                  }||u sJ d S )Nr   )rX   r  r  )rA  rX   r   )r9   r   rz   )r  r  rX   rA  variatess        r(   test_contig_req_outr  
  sd    
 (6e
4
4
4Ct5)))Hs????t5sy999Hs??????r*   c                     t           j                            t           j                            d                    } |                     d           |                                 \  }\  }}|j        j        dk    sJ t          |            |d }t          |           |j	        |j
        _	        |j
        j	        }|j	        |k    sJ d S )Nr   r=   	PCG64DXSM)r  )r9   r[   r   r  r   
__reduce__	__class__rN   printr   r   )r   ctorbit_gen_r  state_bs         r(   $test_generator_ctor_old_style_pickler'  
  s    			RY0033	4	4Bq==??D+7q%4444	$KKKnA	!HHH#MAOo#G=G######r*   c                  H   dd l } t          j                            t          j                            d                    }|j        j        }|                     |                     |                    }|j        j        }t          |j
        |j
                   t          |j        |j                   |j        j                            d           |                     |                     |                    }|j        j        }t          |j
        |j
                   d S )Nr   i4r   )pickler9   r[   r   r  r   seed_seqloadsdumpsr   r   poolspawn)r)  r   ssrg_plkss_plks        r(   #test_pickle_preserves_seed_sequencer2  
  s     MMM			RY00::	;	;B			"B\\&,,r**++F!*F6<(((&+&&&##B'''\\&,,r**++F!*F6<(((((r*   versiony   ~   c                 H   dd l }dd l}t          j                            t          j                            t                              d         }t          j                            |dd|  d          }|                    |          5 }|	                    |          }d d d            n# 1 swxY w Y   |j
        j        d         }t          |t                    sJ t          |j
        t          j        j                  sJ |d         dk    sJ |d         dk    sJ d S )	Nr   r"  generator_pcg64_npz.pkl.gzr   l	   a*MzJR2MP incl	   sN	D%(^6FA )r)  gzipospathsplitabspath__file__r  openloadr   r   r   r   r9   r[   PCG64)r3  r)  r9  	base_pathpkl_filegzr   r   s           r(   test_legacy_picklerE  
  sN    MMMKKKbgooh7788;Iw||6@@@@ H 
8		 [[__              "7+Eb)$$$$$b&	88888>CCCCC<AAAAAAAs   
B,,B03B0)7os.pathr:  r;  r>  r   numpyr9   numpy.exceptionsr   numpy.linalgr   numpy.testingr   r   r   r   r	   r
   r   r   r   r   numpy.randomr   r   r   r   r[   JUMP_TEST_DATAfixturer)   r,   rS   rc   r   r   r   r  r|  r   rz  r  r  r   r  r	  r  r  r  r  r   r  r'  r2  rE  rQ   r*   r(   <module>rN     sp    



       & & & & & & $ $ $ $ $ $; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
 G F F F F F F F F F F F	7799		 "dmnoo!clopp	  "dmpqq!clopp	  766"dmpqq!clopp	 , he}555  65!6 !6 !6 !6 !6 !6 !6 !6H> > > > > > > >4) 4) 4) 4) 4) 4) 4) 4)nC- C- C- C- C- C- C- C-L, , , , , , , ,DE E E E E E E EPI, I, I, I, I, I, I, I,X$b	, b	, b	, b	, b	, b	, b	, b	,J G$899+7 +7 +7 +7 +7 +7 +7 :9+7^R3 R3 R3 R3 R3 R3 R3 R3j >22@ @ 32@6(8 (8 (8V) ) )   "rd,,dE]33
4 
4 43 -,
4 4,//K K 0/K 4,//3*--&"8&-!HII  JI .- 0/$ $ $) ) )$ S#J//B B 0/B B Br*   