
    Dg                       d dl Z d dlZd dlZd dlZd dlmZ d dlmZm	Z	m
Z
mZmZmZmZ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 d/ d0                      Z% G d1 d2          Z&ej#        '                    d3e          d4             Z(d5 Z)d6 Z*d7 Z+ej#        '                    d8d9d9gg          ej#        '                    d:ddg          d;                         Z,ej#        '                    d<d=d>g          d?             Z-ej#        '                    d<d=d>g          ej#        '                    d@dAdBg          ej#        '                    dCej.        ej        g          dD                                     Z/dE Z0dS )F    N)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    ^/var/www/sysmax/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.   r/   r0   )r   r   ranger   r1   nparanger2   s     r'   
test_arrayzTestSeed.test_array3   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_rawr2   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r3   s    r'   test_invalid_scalarzTestSeed.test_invalid_scalarA   s,    i$///j'2.....r)   c                     t          t          t          dg           t          t          t          dg           t          t          t          g d           d S )Nr@   rA   )r<           rB   rE   s    r'   test_invalid_arrayzTestSeed.test_invalid_arrayF   sI    i4&111j'B4000j'+>+>+>?????r)   c                 F    t          t          t          t                     d S r$   )r   rD   r   r   rE   s    r'   test_noninstantized_bitgenz#TestSeed.test_noninstantized_bitgenL   s    j)W55555r)   N)	__name__
__module____qualname__r5   r:   r>   rF   rJ   rL    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   )r8   zerosr   randombinomialr
   )r3   rY   ps      r'   test_n_zerozTestBinomial.test_n_zeroQ   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   rD   rZ   r[   r8   nanrE   s    r'   test_p_is_nanzTestBinomial.test_p_is_nanZ   s     j&/1bf=====r)   N)rM   rN   rO   r]   r`   rP   r)   r'   rR   rR   P   s5        A A A> > > > >r)   rR   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   皙?皙?rZ   multinomialrE   s    r'   
test_basiczTestMultinomial.test_basic`   s"    3c
+++++r)   c                 @    t                               dg d           d S )Nrd   )re   rf           rk   rk   rg   rE   s    r'   test_zero_probabilityz%TestMultinomial.test_zero_probabilityc   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 )NrA      )r   rZ   r1   r8   allr3   xs     r'   test_int_negative_intervalz*TestMultinomial.test_int_negative_intervalf   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 )NrX   r<   r<   rT   rT   rT   rT   rT   rT   rT   )
r   rZ   rh   r8   uint32shapearrayr   rC   floatr3   r\   s     r'   	test_sizezTestMultinomial.test_sizel   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 )Nrd   皙?re   皙?r   rD   rZ   rh   rE   s    r'   test_invalid_probz!TestMultinomial.test_invalid_probz   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 )NrA   rf   re   r   r   rE   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<      ۠iUrd   )pvals)r8   r9   sumr   r   rh   ascontiguousarrayr
   )r3   r\   r   rZ   
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   rV   r   z-[\w\s]*pvals array is cast to 64-bit floatingmatchr<   )
r8   rz   float32r   r   r   pytestraisesrD   rh   )r3   rr   r   rZ   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)rM   rN   rO   ri   rl   rs   r}   r   r   r   r   rP   r)   r'   rb   rb   _   s        , , ,; ; ;          G G GM M M/ / /) ) ) ) )r)   rb   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   rE   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      )rT   r   r   rA   )rA   rT   r   rT   r<   iɚ;e   ro   	marginalsrd   count)
r   rD   rZ   multivariate_hypergeometricr8   iinfoint64maxrW   itemsize)r3   
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   rV   r<   rT   r   )r   r   r   r   )r   r   r   )r<   r<   r   r<   r<   r   r   ro      )	r   r   r   r   r
   r8   emptyr   r   )r3   r   rZ   rr   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   )ro   rT   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   ro      r   r   r   rA   axis)
fill_valuerW   順 MbP?{Gzt?)rtolatol)r   r   r   r8   rz   r   
isinstancerU   ry   r   r   rp   r
   r   fullr   mean)r3   r   r   r   rZ   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   ro   r   r   )rT   r<   rT   r<   r<   r   rT   r   r   r   r   r   r   r8   rz   r
   r3   rZ   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   ro   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   ro   r   r   )rT   r   r   )ro   r   r   )rT   ro   ro   )r<   ro      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)rM   rN   rO   r   r   r   markparametrizer   r   r   r   r   rP   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_staterE   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   r8   rp   )r3   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   r8   rp   )r3   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 NrX   )r   negative_binomialrE   s    r'   test_negative_binomialz#TestSetState.test_negative_binomial8  s"     	!!#s+++++r)   N)rM   rN   rO   r   r   r   r   rP   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(   rW   )r   rC   rfuncr{   )r3   r(   s     r'   test_unsupported_typez"TestIntegers.test_unsupported_typeE  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   rT   r<   r   	itypeboolr8   r   minr   r   rD   r   r3   r(   dtlbndubnds        r'   test_bounds_checkingz!TestIntegers.test_bounds_checkingH  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_arraya  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   rT   r<   r-   r   r(   rW   r  r  r8   r   r  r   r   r   )r3   r(   r	  r
  r  is_opentgts          r'   test_rng_zero_and_extremesz'TestIntegers.test_rng_zero_and_extremeso  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   rT   r<   r   rW   rV   r  )r3   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   rT   r<   r   zMNo error should have been raised, but one was with the following message:

%s
r  r  r8   r   r  r   r   	ExceptionAssertionErrorstrr3   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      rT   i   r  r   )r   r   r  r   r   r   r  r  )r3   r(   rZ   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   rT   r<   r-     r  )
r  r  r8   r   r  r   r   r   r1   r
   )
r3   r(   r	  r
  r  r   rZ   scalarscalar_arrayrz   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uint16rx   uint64uint8r<   r(  littler   r   r-   r  rT   )r  r   r   sys	byteorderr1   byteswaphashlibsha256	hexdigestr   r8   rW   namer  viewr4  )r3   r(   r  r	  rZ   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   rT   r<   r(  r-   r  r   )r  r  r8   bool_r   r  r   r   r   r1   r
   )r3   r(   r	  r
  r  rZ   rA  val_bcs           r'   test_repeatability_broadcastingz,TestIntegers.test_repeatability_broadcasting  sY   * 	, 	,BtRX...11BHRLL4DDtRX...11BHRLL4Dq4HD'14!88TD wt}}--F//$4(#% " ' 'C wt}}--F__dVd]D8&( % * *F sF+++wt}}--F__dVd]TFTM)1 % = =F sF++++)	, 	,r)   zbound, expectedr/   )iui,YQiXgi$#Pl   bA i{El   /Yi rI   )ui,YQXgi%#Pl   bA i|El   0Yi        )rH  rI  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   r1   r   )r3   boundr   r   rZ   rr   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)ro   r   r   i90  rA   r   r<   )r/   rI   rJ  r   )r8   rz   r   r   r1   r
   )r3   desiredr   rZ   rr   s        r'   .test_repeatability_32bit_boundary_broadcastingz;TestIntegers.test_repeatability_32bit_boundary_broadcasting4  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   rT   A   )rA               r   r   r   r   ))r   l            )l         rT  rU  rV  )        rW  r   r   rV   )	r8   r6  r   rz   r   rD   rZ   r1   object)r3   r(   configsrW   configlowhighlow_ahigh_alow_ohigh_os              r'   &test_int64_uint64_broadcast_exceptionsz3TestIntegers.test_int64_uint64_broadcast_exceptionsK  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   )r8   r   r   r   r6  rZ   r1   r   )r3   r(   r	  r  r
  r  actuals          r'   test_int64_uint64_corner_casez*TestIntegers.test_int64_uint64_corner_caseg  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   rT   r<   r   rW   )r  r  r8   r   r  r   rE  r   r   rW   rU   hasattrtyper3   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4ZZRB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  r8   r   r  r   rE  r   r   rW   rh  s         r'   test_respect_dtype_arrayz%TestIntegers.test_respect_dtype_array  s    * 
	+ 
	+Bd

11(8Dd

11(81(<D'14!88TD4ZZRB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   ry   rW   r   rZ   r1   )r3   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  )r9  r:  r   r   rD   rZ   r1   )r3   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 ro   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_countsrT   )rZ   r1   r8   uniquer   )
r3   sample_sizer\  rW   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)*rM   rN   rO   rZ   r1   r   r  r8   r4  r7  r2  r5  r3  rx   r   r6  r  r  r  r  r  r  r   r"  r&  r+  rC  rG  r   r   r   rz   rN  rQ  ra  rd  ri  rk  rp  ru  slowr  rP   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,ej                            d$e-e.g          ej                            d%d& ej/        g d'g d(g          fd) ej/        g d*g d+g          fd, ej/        g d-g d.g          fg          d/                         Z0d0 Z1d1 Z2ej                            d2d3d4g          d5             Z3d6 Z4d7 Z5d8 Z6d9 Z7d: Z8d; Z9d< Z:d= Z;d> Z<d? Z=ej        j>        d@             Z?ej                            dAg dBg dCg dDg dEg dFg dGdHgg dIg          dJ             Z@dK ZAdL ZBdM ZCdN ZDdO ZEdP ZFdQ ZGdR ZHdS ZIdT ZJdU ZKdV ZLdW ZMdX ZNdY ZOdZ ZPd[ ZQej                            d\ ejR        dHd]          d^ejS        d_g          d`             ZTda ZUej        V                    eWdbc          ej                            ddg de          df                         ZXej                            dgd)gdhggfdigd,ggfg          dj             ZYej                            ddg de          dk             ZZdl 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e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   rE   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   rT   r   )   %   ir   r   r   r1   r8   rz   r
   r3   rZ   rc  rP  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  rV   )r   r   r   r1   r8   rx   rz   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(   )rZ   r1   r8   r   r   r   )r3   rc  rP  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   decimalrV  r   r   r   rZ   r8   rz   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 )NrV   r  r   r  )r   r   r   rZ   r8   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   rV   r<   i$^  i,e  )r   r   r   rZ   r8   count_nonzeror@  )r3   rW   uint_view_typerZ   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 )Nr3  rV   )r   rC   rZ   rE   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   rT   rT   rV   r   r   r   choicer8   rz   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<   rV   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   rV   )r  shuffle)	r   r   r   r  r8   rz   r   r
   r9   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?rX   r  r  r\   )r   rT   r   rV   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  r8   rz   r
   r  s       r'   test_choice_nonintegerz%TestRandomDist.test_choice_noninteger1  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<   rT   r   r   ro   r   r   r  r  s       r'   )test_choice_multidimensional_default_axisz8TestRandomDist.test_choice_multidimensional_default_axis7  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<   rT   r   r   ro   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 )NrA   r         @)r<   rT   r   r         ?r  r<   rT   )r  r  re   r   r   r  r   r   Fr  rH   )rA   )rA   r<   )r<   r   r   r  )rZ   r  r   rD   )r3   r   s     r'   test_choice_exceptionsz%TestRandomDist.test_choice_exceptionsC  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   rT   Tr  Fr  r<   rV   r   r   )r  r  r  r  r  re   r   rm  r   rn  ro  r   r  r  )r   r8   isscalarrZ   r  rz   r   rX  tuplendimitemr   ry   r9   r1   r   rD   )r3   r\   r  arrr4   s        r'   test_choice_return_shapez'TestRandomDist.test_choice_return_shapeU  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<   rT   )NNNr  )r8   rz   r   rD   rZ   r  )r3   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   ro   r  r<   rT   r   r  )r8   onesr   r   r   r  r   r
   )r3   r\   rZ   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      @rT   Fr  r  )r\   r  )r8   r  rZ   r  rW   r   )r3   r\   rc  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'  rv  Fr  r8  )r   r   r   r  r9  r:  r;  r<  r=  r@  r8   r4  r>  r   )r3   choice_hashrZ   rc  rB  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                            }|                    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$   )r8   rz   rr   s    r'   <lambda>z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rx|| r)   c                     | S r$   rP   r  s    r'   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    q r)   c                 d    t          j        |                               t           j                  S r$   )r8   asarrayastyper4  r  s    r'   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BG<< r)   c                 d    t          j        |                               t           j                  S r$   )r8   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$   )r8   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$   )r8   r  r  rX  r  s    r'   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33F;; r)   c                     d | D             S )Nc                     g | ]}||fS rP   rP   .0is     r'   
<listcomp>zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    2221A222r)   rP   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 rP   rP   r  s     r'   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>      *=*=*=aAq6*=*=*=r)   )r8   r  r  s    r'   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz*=*=1*=*=*=>> r)   c                 8    t          j        | | g          j        S r$   )r8   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 rP   rP   r  s     r'   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    +>+>+>qQF+>+>+>r)   r  r  )r8   r  rU   r@  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 rP   rP   r  s     r'   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  r  r)   r  r<   r  )r8   r  rX  r3  r  s    r'   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sA    rz*=*=1*=*=*=,/+>,/4+@+B C  C r)   
r<   rT   r   r   ro   r   r   r   r   r   
r   r<   r   r   r   ro   r   r   rT   r   )r   r   r   r  r
   )r3   convrZ   alistrc  rP  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<   rT   r   r   ro   r   r      r   r   r   r   r   r   rA   )	r   r   r   r8   r9   reshaper  rz   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   r8   rz   r  r  r
   )r3   rZ   rP  r   rc  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   rT   r   r<   r   )
r8   r9   r  copyr   r   r   r  r  r
   )r3   y1y2rZ   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   )ro   r   r   r<   rA   r   )r8   mamasked_valuesr  r7   r9   r  rZ   r  r   sorteddatamask)r3   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        |j        |d           t          j        d                              d          }t          t          j        |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        |j        |d           d S )
Nr   r<   r   r   r   r   rT   r   )r   ro   r   r  )r   r   r   r8   r9   r   	AxisErrorr  r  rC   sliceNotImplementedErrorrz   r  r3   rZ   r  s      r'   test_shuffle_exceptionsz&TestRandomDist.test_shuffle_exceptions  s   749--..immblFNC;;;ill""6**blFNC;;;ieAq$6G6GHHHyy)))$)6>3BBBhqkki555gfooblFNC;;;;;r)   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 )Nro   F	read-onlyr   )r   r   r   r8   rY   flags	writeabler   r   rD   r  )r3   rZ   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	        |j        |           d}t          t
          j	        |j        |           t          t          | j                            }d}g d}|                    |          }t	          ||           d S )Nr  r  abcdg333333?r   )
r   r   r   r   r   r   rT   ro   r<   r   )
r   r   r   permutationr
   r8   
atleast_2dr  r   r$  )	r3   rZ   r  rc  rP  arr_2d	bad_x_strbad_x_floatinteger_vals	            r'   test_permutationzTestRandomDist.test_permutation
  s:   749--.....##E**00067+++749--..===>>@##F++62=#9#9#;<<<	blF$6	BBBblF$6DDD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   rA   )	r8   r9   r  rz   r   r   r   r0  r
   )r3   r  rP  rZ   rc  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        |j        |d           t          j        d                              d          }t          t          j        |j        |d           t          t          |j        |t          ddd                      d S )Nr   r<   r   r#  r   rT   )r   r   r   r8   r9   r   r$  r0  r  rC   r%  r'  s      r'   test_permutation_exceptionsz*TestRandomDist.test_permutation_exceptions0  s    749--..immblF$6Q???ill""6**blF$6Q???i!3S%1d:K:KLLLLLr)   rW   zaxis, expectedN)r   r   r   r   r   r  )r   r   rT   ro   r<   r   r   )r   r<   rT   r   r   r  )r   r   r   r   r   ro   r<   )ro   r   r   r   rT   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   rT   r   r   outr   )
r   r   r   r8   r9   r  r  permutedr
   rW   )r3   rW   r   r   rZ   rr   ys          r'   test_permutedzTestRandomDist.test_permuted8  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   rT   r  r   r<   r<  )r   r   r   r   )r   r   r  r   )
r   r   r   r8   r9   r  r  r>  rz   r
   )r3   rZ   x0x1rr   r?  r   s          r'   test_permuted_with_stridesz)TestRandomDist.test_permuted_with_stridesL  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$   )rZ   r>  r
   )r3   r?  s     r'   test_permuted_emptyz"TestRandomDist.test_permuted_emptyY  s)    OOB1b!!!!!r)   outshaper   ro   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   rV   z
same shaper   r=  )	r8   rz   rY   rW   r   r   rD   rZ   r>  )r3   rH  r  r=  s       r'   "test_permuted_out_with_wrong_shapez1TestRandomDist.test_permuted_out_with_wrong_shape]  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   ro   rV   zCannot castr   r<   r<  )	r8   rY   r3  r  r   r   rC   rZ   r>  )r3   r=  rr   s      r'   !test_permuted_out_with_wrong_typez0TestRandomDist.test_permuted_out_with_wrong_typed  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)rT   ro   Fr*  r   r<   r<  )	r8   rY   r+  r,  r   r   rD   rZ   r>  rq   s     r'   test_permuted_not_writeablez*TestRandomDist.test_permuted_not_writeablej  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   betar8   rz   r   r  s       r'   	test_betazTestRandomDist.test_betap  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[   r8   rz   r
   r  s       r'   test_binomialzTestRandomDist.test_binomialy  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   	chisquarer8   rz   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?缉ؗҜrV  )	r   r   r   r8   rz   	dirichletr   r   rD   )r3   rZ   alpharc  rP  	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<   ru   rT   rv   rw   )
r8   rz   r   rZ   r_  rx   ry   r   rC   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 )Nr]  r^  ro   r<   )r8   rz   r   rD   rZ   r_  )r3   r`  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\  rT   r  r   )r8   rz   r   r   r   r_  r   r   )r3   r  r`  rZ   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   rk   r   r  )r8   rz   r   r   r   r_  r   )r3   epsr`  rZ   rc  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        g d          }||                                z  }t          t	          | j                            }|                    |d          }|                    d          }t          ||d           d S )N)g{Gz?{Gz?Q?i -1r   r   r   r   )r   )	r8   rz   r   r   r   r   r_  r   r   )r3   r`  
exact_meanrZ   r   sample_means         r'   %test_dirichlet_moderately_small_alphaz4TestRandomDist.test_dirichlet_moderately_small_alpha  s     +++,,UYY[[(
749--..!!%h!77kkqk))Zd;;;;;;r)   r`  )ro   r   r   r   )rX   r   r   r   )r<   ro   r   r         ?r   r   r   )g{Gz?ro  r   r   )gh㈵>r   r   r   )gMb`?gQ?r   r   rn  r   r   r   rk   r   c                     t          j        |          }t                              |          }t	          ||dk             d           d S )Nr   rk   )r8   rz   rZ   r_  r   )r3   r`  r?  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   exponentialr8   rz   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   rZ   rw  r   rD   rE   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   fr8   rz   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 )Nro   r   r  r   g,שn'@gt@g<e2@g1a3@g3r
y-2@gs1-2@r   r  )r   r   r   gammar8   rz   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   )ry   r|  r}  )r   rZ   r  r   rD   rE   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   	geometricr8   rz   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   rD   rZ   r  r8   errstater_   rE   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   gumbelr8   rz   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 rz  )r   rZ   r  r   rD   rE   s    r'   test_gumbel_0zTestRandomDist.test_gumbel_0'  =    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   ro   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   hypergeometricr8   rz   r
   r  s       r'   test_hypergeometricz"TestRandomDist.test_hypergeometric+  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   laplacer8   rz   r   r  s       r'   test_laplacezTestRandomDist.test_laplaceE  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 rz  )r   rZ   r  r   rD   rE   s    r'   test_laplace_0zTestRandomDist.test_laplace_0M  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   logisticr8   rz   r   r  s       r'   test_logisticzTestRandomDist.test_logisticQ  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   	lognormalr8   rz   r   r  s       r'   test_lognormalzTestRandomDist.test_lognormalY  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   rZ   r  r   rD   rE   s    r'   test_lognormal_0zTestRandomDist.test_lognormal_0a  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      ro   r<   )r   r   r   	logseriesr8   rz   r
   r  s       r'   test_logserieszTestRandomDist.test_logseriese  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  r3   rZ   s     r'   test_logseries_zeroz"TestRandomDist.test_logseries_zerom  s>    749--..""a''''''r)   valuerA   rj  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   rT   )
r   r   r   r8   r  r   r   rD   r  rz   )r3   r  rZ   s      r'   test_logseries_exceptionsz(TestRandomDist.test_logseries_exceptionsq  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<   ro   r<   r   r   r   )r   rT   r   rT   r   rT   )ro   r   rT   r   r   r<   )r   r   r   rT   r   r   )r   r   r<   ro   r   rT   )ro   ro   r   r<   rT   r   )r   r   r   rh   r8   rz   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$("@rT   raise)check_validr  r  r  )r  r   )r  r  r   ).r   ).r<   r   r  rV   other)rT   r<   r<   r   )r   r   r   multivariate_normalr8   rz   r   r   rD   r   RuntimeWarningr   r	   r   r   recordrL  rY   eyer   )r3   r   rZ   r   covr   rc  rP  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   rC   r  )r3   r   r  rZ   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<   rT   r   rH   r  re   )
r   r   r   r8   rz   r  r  rp   absr   )	r3   r   rZ   n_sr   r  r4   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 )Nrd   g|Pk?r  )nr\   r   i  i  i  i  iX  i  )r   r   r   r   r8   rz   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  rd   r   )r8   r  r   rD   rZ   r   r_   rE   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   rD   rZ   r   rq   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  rT  r  )r8   r  r   rD   rZ   r   rE   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 )Nro   r  )dfnoncr   gs؀3J?gugو/@gNJm+@gA}-4@gq=&@gjhn@r   r  rX   re   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_chisquarer8   rz   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 )Nro   rT   r<   r  )dfnumdfdenr  r   gHP
?gn?g%f?gch?gzƎ?g]?:?r   r  )r   r   r   noncentral_fr8   rz   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 )Nro   rT   )r  r  r  )r   r   r   r  r8   r_   isnanr3   rZ   rc  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   normalr8   rz   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 rz  )r   rZ   r  r   rD   rE   s    r'   test_normal_0zTestRandomDist.test_normal_0,  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   paretor8   rz   testingassert_array_almost_equal_nulpr  s       r'   test_paretozTestRandomDist.test_pareto0  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   poissonr8   rz   r
   r  s       r'   test_poissonzTestRandomDist.test_poisson>  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   rA   r   r  r  )	r8   r   r   r   rD   rZ   r  r  r_   )r3   lambiglamnegs      r'   test_poisson_exceptionsz&TestRandomDist.test_poisson_exceptionsF  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   powerr8   rz   r   r  s       r'   
test_powerzTestRandomDist.test_powerQ  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   rayleighr8   rz   r   r  s       r'   test_rayleighzTestRandomDist.test_rayleighY  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 rz  )r   rZ   r  r   rD   rE   s    r'   test_rayleigh_0zTestRandomDist.test_rayleigh_0a  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_cauchyr8   rz   r   r  s       r'   test_standard_cauchyz#TestRandomDist.test_standard_cauchye  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_exponentialr8   rz   r   r  s       r'   test_standard_exponentialz(TestRandomDist.test_standard_exponentialm  s    749--..,,&,GG(.0AB.0AB.0ABD E E 	"&'2>>>>>>r)   c                 \    t          t          t          j        t          j                   d S NrV   )r   rC   rZ   r  r8   r3  rE   s    r'   #test_standard_expoential_type_errorz2TestRandomDist.test_standard_expoential_type_erroru  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  ry   r   gΈ̏&?gTϿ?g1n21@gDb<z@gBv@gc^@r   r  r   r   r   standard_gammar8   rz   r   r  s       r'   test_standard_gammaz"TestRandomDist.test_standard_gammax  s    749--..&&QV&<<(-/?@+/?@-/?@B C C 	"&'2>>>>>>r)   c                     t          t          | j                            }|                    dt          j                  }d}t          ||d           d S )Nr   rV   g   d@r   r  )r   r   r   r  r8   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@ro   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  rV         $@r=  rW   gM»L$@ga {@gN]"@gPS")@g_+@gmB@ro   r  r=  r   rW   )	r8   rY   r   r   r   r   r  rz   r   )r3   rc  rZ   rP  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 )Nrj  r3  rV   )r   rC   rZ   r  rE   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   r=  )r   r<   )r8   rY   r   rD   rZ   r  )r3   r=  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   )ry   r}  )r   rZ   r  r   rD   rE   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   r8   rz   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   rC   rZ   r   r8   r3  rE   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_tr8   rz   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   
triangularr8   rz   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   uniformr8   rz   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\  )
r8   finfor  r   rZ   r4  r   OverflowErrorinf	nextafter)r3   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 )Nrs  rk   g
ףp= @rw   )rZ   r4  r   r8   pirY   )r3   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 )NrT   r<   r   r   )rZ   r4  r   rD   )r3   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$   rC   rE   s    r'   	__float__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__      r)   N)rM   rN   rO   rJ  rP   r)   r'   ThrowingFloatrG    #                 r)   rL  rj  c                       e Zd Zd ZdS )ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                     t           r$   rI  rE   s    r'   __int__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__  rK  r)   N)rM   rN   rO   rQ  rP   r)   r'   ThrowingIntegerrO    rM  r)   rR  r<   )	r8   ndarrayrz   r@  r   rC   rZ   r4  r  )r3   rL  throwing_floatrR  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 )Nr2  p=
ף?r  r  kappar   gLA?gxyw@gzVR?gpE ?g8&Aпgv @r   r  )r   r   r   vonmisesr8   rz   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 )Nrk   gg5_PG>i@B rY  )r   r   r   r[  r   r8   isfiniterp   r3   rZ   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 )Nrk   )r  rZ  )r   r   r   r[  r8   r_   r   r  r_  s      r'   test_vonmises_nanz TestRandomDist.test_vonmises_nan  sL    749--..OOrO00r)   rZ  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   r8   rp   )r3   rZ  rZ   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     @@rd  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   r8   rp   r@  )r3   r  rZ  rZ   r`  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 )Nr2  rX  r  )r   r|  r   g*س2?gt	@g;S@g\ F@gxF @g6b?r   r  )r   r   r   waldr8   rz   r   r  s       r'   	test_waldzTestRandomDist.test_wald+  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 )Nr2  r  r  gnJZ?g*/F?gs(RY?g]'%?g,qD?g8 ?r   r  )r   r   r   weibullr8   rz   r   r  s       r'   test_weibullzTestRandomDist.test_weibull3  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   rp  r8   rY   r   rD   r  s     r'   test_weibull_0zTestRandomDist.test_weibull_0;  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 )	Nr2  r  r  r<   r   ic  ib  rT   )r   r   r   zipfr8   rz   r
   r  s       r'   	test_zipfzTestRandomDist.test_zipf@  sp    749--..t&11(qAJ #J AJ( ) ) 	67+++++r)   )rM   rN   rO   r   r  r  r  r  r  r  r  r   r   r   r8   r   rx   float64r6  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r(  r-  r6  r8  r:  rU   rX  rz   r@  rE  rG  rK  rM  rO  rR  rV  rY  rb  rd  rf  rh  rl  r  rr  ru  rx  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*  r0  r5  r>  rB  rD  rV  r\  ra  rc  ri  r@  rk  rn  rq  rs  rv  rP   r)   r'   r  r    s*
         , , ,, , ,, , ,
& 
& 
&
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< < <  , , ,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   rE   s    r'   r   zTestBroadcast.setup_methodL  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  r3  )r3   rZ   r[  r\  r4  rP  rc  s          r'   r5  zTestBroadcast.test_uniformO  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<   rA   )gw-Dؿgn0_x?gʊ;<.?r   r   r  )	r   r   r   r8   rz   r  r   r   rD   )r3   r  r|  	bad_scalerZ   rP  rc  r  s           r'   r  zTestBroadcast.test_normal^  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<   rT   rA   rH   )gf8?g%eo?g$q??r   r   r  )	r8   rz   r   r   r   rQ  r   r   rD   )	r3   r  r  bad_abad_brP  rZ   rQ  rc  s	            r'   rR  zTestBroadcast.test_betap  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<   rA   )g`ʄ?gE]?g?r   r   r  )	r8   rz   r   r   r   rw  r   r   rD   r3   r|  r~  rP  rZ   rc  s         r'   rx  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  )	r8   rz   r   r   r   r  r   r   rD   )r3   ry   	bad_shaperP  rZ   	std_gammarc  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<   rT   rA   rH   )g3ʄ?gJE]?g?r   r   r  )	r8   rz   r   r   r   r  r   r   rD   )	r3   ry   r|  r  r~  rP  rZ   r  rc  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<   rT   rA   rH   )gM3B?gybi@g0?r   r   r  )	r8   rz   r   r   r   r  r   r   rD   )	r3   r  r  	bad_dfnum	bad_dfdenrP  rZ   r  rc  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 )
NrT   r   r   r   rA   rH   )gŜ,n1 @g!6)@g9?r   r  )r8   rz   r   r   r   r  r   rp   r  r_   r   rD   )r3   r  r  r  r  r  bad_noncrP  rZ   nonc_frc  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   rT   r   r   r  )r   r   r   r8   rz   r  r   )r3   rZ   rP  rc  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<   rA   )gC{?g7Q#?g%h1T@r   r   r  )	r8   rz   r   r   r   rX  r   r   rD   r3   r  bad_dfrP  rZ   rc  s         r'   rY  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<   rT   rA   rH   )g-S?g[@gr3/.?r   r   r  )	r8   rz   r   r   r   r  r   r   rD   )	r3   r  r  r  r  rP  rZ   nonc_chirc  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<   rA   )g>Qg{g,e?r   r   r  )	r8   rz   r   r   r   r)  r   r   rD   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 )NrT   r<   rA   )gD()@g,)ʸ@gPor   r   r  )	r8   rz   r   r   r   r[  r   r   rD   )r3   r  rZ  	bad_kapparP  rZ   rc  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<   rA   )g/h?gcE?g/gV?r   r   r  )	r8   rz   r   r   r   r  r   r   rD   r3   r  r  rP  rZ   rc  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  )	r8   rz   r   r   r   rp  r   r   rD   r  s         r'   rq  zTestBroadcast.test_weibull-  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<   rA   )gT?gʥ?gKܮc?r   r   r  )	r8   rz   r   r   r   r  r   r   rD   r  s         r'   r   zTestBroadcast.test_power7  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<   rA   )gh&BgsgR#?r   r   r  )	r8   rz   r   r   r   r  r   r   rD   )r3   r  r|  r~  rP  rZ   r  rc  s           r'   r  zTestBroadcast.test_laplaceA  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<   rA   )gs4?g$Cw%T?gտr   r   r  )	r8   rz   r   r   r   r  r   r   rD   )r3   r  r|  r~  rP  rZ   r  rc  s           r'   r  zTestBroadcast.test_gumbelS  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<   rA   )g$DgXPg,?r   r   r  rj  rk   )
r8   rz   r   r   r   r  r   r   rD   r   )r3   r  r|  r~  rP  rZ   rc  s          r'   r  zTestBroadcast.test_logistice  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<   rA   )g c?gu@gVQ?r   r   r  )	r8   rz   r   r   r   r  r   r   rD   )r3   r   r  	bad_sigmarP  rZ   r  rc  s           r'   r  zTestBroadcast.test_lognormalv  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<   rA   )gs(?g4mK?gVk+?r   r   r  )	r8   rz   r   r   r   r  r   r   rD   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 )	NrX   r<   r   rH   )gk7Z?g*}z9?gc-	?r   r   r  )	r8   rz   r   r   r   rm  r   r   rD   )r3   r   r|  bad_meanr~  rP  rZ   rc  s           r'   rn  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   rT   r   )gR8T>?gK?g;>h@r   r  r  rk   g      4@g      9@)	r8   rz   r   r   r   r/  r   r   rD   )r3   r,  r.  r-  bad_left_onebad_mode_onebad_left_twobad_mode_tworP  rZ   r/  rc  s               r'   r0  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<   rX   rA   rs  r   r   r<   r   )	r8   rz   r   r   r   r[   r
   r   rD   )
r3   r  r\   bad_n	bad_p_one	bad_p_tworP  rZ   binomrc  s
             r'   rV  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<   rX   rA   rs  )r   rT   r<   rV   r   )
r8   rz   r   r   r   r   r   r
   r   rD   )
r3   r  r\   r  r  r  rP  rZ   	neg_binomrc  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<   rA   )r   r   r   rT   r   )
r8   rz   r   r   r   _poisson_lam_maxr  r
   r   rD   )	r3   r  bad_lam_onerP  rZ   max_lambad_lam_twor  rc  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 )NrT   r   )r<   r   r<   r   r  r  )r8   rz   r   r   r   ru  r
   r   rD   r  r_   )r3   r  r  rP  rZ   ru  rc  s          r'   rv  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 )NrX   rA   rs  r   r   )	r8   rz   r   r   r   r  r
   r   rD   )r3   r\   r  r  rP  rZ   r  rc  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<   rT   rA   rH   r   r  r   r   r   r   i   @i  l        r   i    r-   )	r8   rz   r   r   r   r  r
   r   rD   )r3   ngoodnbadr   	bad_ngoodbad_nbadbad_nsample_onebad_nsample_tworP  rZ   rc  	hypergeoms               r'   r  z!TestBroadcast.test_hypergeometric(	  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 )NrX   rT   rA   )r<   r<   r<   r   )	r8   rz   r   r   r   r  r
   r   rD   )r3   r\   r  r  rP  rZ   r  rc  s           r'   r  zTestBroadcast.test_logseriesU	  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 )Nro   r   r  r   r  r   )r   r   rT   r<   rT   r   )rT   r   r   r   rT   r   )r<   r   r<   r   rT   r<   )r   rT   rT   r<   r   r   )r   rT   r   r<   rT   r   )r   rT   r   r   r   ro   rV   rT   )r   r   rT   r<   r<   r<   )r   rT   r   r   ro   r   )r   r   r   rh   r8   rz   r   r
   r  s       r'   r  zTestBroadcast.test_multinomialb	  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   rA   r  r   )r<   r<   r<   r<   r<   r<   )r   r   r   r8   rz   rh   r   rU   r  ry   r  broadcast_shapesr   r   rD   )r3   r  rZ   r   rc  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<   rX   )r   r   r   r   rD   rh   )r3   rZ   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   rh   r8   r   ry   r  s      r'   test_empty_outputsz TestBroadcast.test_empty_outputs	  s    749--..##BHZ$>$>!LL|},,,,##B(=(=>>|{****##BHY$=$=$&H\$:$:< <||++++++r)   N)+rM   rN   rO   r   r5  r  rR  rx  r  r  r  r  r  rY  r  r*  r\  r  rq  r   r  r  r  r  r  rn  r0  rV  r   r  rv  r  r  r  r  r   r   r   r8   rz   r  r  r  rP   r)   r'   rz  rz  I  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)   rz  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   )r7   seedsrE   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  r4   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 rP   )startr  rr   s     r'   r  z-TestThread.check_function.<locals>.<listcomp>	  s     qr)   c                 6    g | ]}|                                 S rP   )joinr  s     r'   r  z-TestThread.check_function.<locals>.<listcomp>	  s     ar)   r   win32)	threadingr  r8   r   rL  r  zipr   r   intprW   r   r9  platformr   r
   )	r3   r  szout1out2tr4   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   r=  s     r'   
gen_randomz*TestThread.test_normal.<locals>.gen_random	  s    |||//CHHHr)   )r  r  r  r3   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rd   r-   r{  .)rw  r8   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   .)rh   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)rM   rN   rO   r   r  r  r  r  rP   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 )NrT   r   r   r  )r8   rz   argOneargTwoargThreetgtShaperE   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   )rZ   rw  r  rX  r)  r  rp  r  r  r  ru  r  r  r8   rz   r  r   ry   r  )r3   funcs	probfuncsr=  r=  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 )NrX   r   )rZ   r4  r  rQ  r  r  r  r[  r  r  r  r  rm  r[   r   r8   rz   r  r  r   ry   r  )r3   r  r  r=  r  r=  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   )r8   rE  r4  r7  r2  r5  r3  rx   r   r6  rZ   r1   rz   r   ry   r  )r3   r(   r  r=  r\  r[  r	  r=  s           r'   r  z%TestSingleEltArrayInput.test_integers
  s    27BHbh	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   )
rZ   r  r/  r  r  r  r  r   ry   r  )r3   r  r=  r=  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)rM   rN   rO   r   r  r  r  r  rP   r)   r'   r  r  	  s_          3 3 3&3 3 363 3 3"3 3 3 3 3r)   r  rZ  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   rr  r   r   r   r   )
r   r=   r   r9  r:  r;  r<  r=  r>  r   )rZ  r   r   mt19937r   r=  r   s          r'   test_jumpedr  3
  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   rT   )ro   r   r   r   )r<   r   )r   r<   r<   )r   rJ  r<   r  gffffff?)rT   r<   rT   ro   zOutput size \(6, 5, 1, 1\) isr   )r   ro   r<   r<   )r8   r  rZ   r  ry   r   r   rD   r  r   r[   rh   rX  r  )r  r  r   ry   r=  r  r  r  s           r'   test_broadcast_size_errorr  O
  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   rT   )r8   r  rZ   r  r   r   rD   )r  r  s     r'   test_broadcast_size_scalarr	  z
  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\  rH   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 >= highrA   )r   r   r   r   rD   r1   )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rW   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)orderrW   r   zSupplied output arrayr   r  r  )r8   r   r   r   rD   rZ   r  ry   )rW   r=  ry   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   )rW   r  r  )r=  rW   r   )r8   r   ry   )r  r  rW   r=  variatess        r'   test_contig_req_outr  
  sd    
 (6e
4
4
4Ct5)))Hs????t5sy999Hs??????r)   c                  R   t           j                            t           j                            d                    } |                     d           |                                 \  }}}|d d         dk    sJ  ||d d          }||j        _        |j        j        }||k    sJ d S )Nr   r<   )	PCG64DXSM)r8   rZ   r   r  r   
__reduce__r   r   )r   ctorr  state_ar  state_bs         r'   $test_generator_ctor_old_style_pickler"  
  s    			RY0033	4	4Bq--//D$8~%%%%d2A2hA#AOo#Ggr)   )1r9  r<  r   numpyr8   numpy.linalgr   numpy.testingr   r   r   r   r   r	   r
   r   r   r   numpy.randomr   r   r   r   rZ   JUMP_TEST_DATAfixturer(   r+   rR   rb   r   r   r   r  rz  r   rx  r  r  r   r  r  r	  r  r  r  r   r  r"  rP   r)   r'   <module>r)     s   



       $ $ $ $ $ $; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
 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@, @, @, @, @, @, @, @,F$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/
 
 
 
 
r)   