
    8`iL                       d dl Z d dlZd dlZd dlZd dlZd dlZd dlm	Z	 d dl
mZ d dlmZmZmZmZ d dlmZmZmZmZmZmZmZmZ  e e                      Zd dddd	d
dd	dddddd	ddd	dg ddddd	ddd	dgZ ej        dddg          d             Z G d d          Z G d  d!          Z G d" d#          Z  G d$ d%          Z! G d& d'          Z" G d( d)          Z# G d* d+          Z$ G d, d-          Z%ej&        '                    ed./           G d0 d1                      Z( G d2 d3          Z)ej&        *                    d4e          d5             Z+d6 Z,d7 Z-d8 Z.ej&        *                    d9d:d:gg          ej&        *                    d;ddg          d<                         Z/ej&        *                    d=d>d?g          d@             Z0ej&        *                    d=d>d?g          ej&        *                    dAdBdCg          ej&        *                    dDej1        ej        g          dE                                     Z2dF Z3dG Z4ej&        *                    dHdIdJg          dK             Z5dS )L    N)	AxisError)LinAlgError)MT19937	GeneratorRandomStateSeedSequence)IS_WASMassert_assert_allcloseassert_array_almost_equalassert_array_equalassert_equalassert_no_warningsassert_raises
   @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    e/root/collector_daemon/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_scalar5   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.   r/   )r   r   ranger   r0   nparanger1   s     r&   
test_arrayzTestSeed.test_array;   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_rawr1   s     r&   test_seedsequencezTestSeed.test_seedsequenceE   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r2   s    r&   test_invalid_scalarzTestSeed.test_invalid_scalarI   s,    i$///j'2.....r(   c                     t          t          t          dg           t          t          t          dg           t          t          t          g d           d S )Nr?   r@   )r;           rA   rD   s    r&   test_invalid_arrayzTestSeed.test_invalid_arrayN   sI    i4&111j'B4000j'+>+>+>?????r(   c                 F    t          t          t          t                     d S r#   )r   rC   r   r   rD   s    r&   test_noninstantized_bitgenz#TestSeed.test_noninstantized_bitgenT   s    j)W55555r(   N)	__name__
__module____qualname__r4   r9   r=   rE   rI   rK    r(   r&   r*   r*   4   sq        , , ,, , ,2 2 2/ / /
@ @ @6 6 6 6 6r(   r*   c                        e Zd 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   )r7   zerosr
   randombinomialr   )r2   rX   ps      r&   test_n_zerozTestBinomial.test_n_zeroY   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   rC   rY   rZ   r7   nanrD   s    r&   test_p_is_nanzTestBinomial.test_p_is_nanb   s     j&/1bf=====r(   c                 F   d}d}d}t                               |||          }|                                }||z  }t          j        ||z  d|z
  z  |z            }|d|z  z
  }|dk    s
J d            d	| d
| d}	t          ||z
            d|z  k     s
J |	            d S )Nl    tvH. gؗҌ< -1sizer;      r   z0bad test params: 6-sigma lower bound is negativezsample mean z! deviates from the expected mean z by more than 6*sigma)rY   rZ   meanr7   sqrtabs)
r2   nr[   sample_sizexsample_meanexpected_meansigma	low_boundtest_msgs
             r&   test_p_extremely_smallz#TestBinomial.test_p_extremely_smallf   s    OOAq{O33ffhhAAQ+566
 "AI-	1}}}P}}}<; < <$< < <=;.//!e);;;X;;;;;r(   N)rL   rM   rN   r\   r_   rp   rO   r(   r&   rQ   rQ   X   sI        A A A> > >F F F F Fr(   rQ   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   皙?皙?rY   multinomialrD   s    r&   
test_basiczTestMultinomial.test_basicz   s"    3c
+++++r(   c                 @    t                               dg d           d S )Nrt   )ru   rv           r{   r{   rw   rD   s    r&   test_zero_probabilityz%TestMultinomial.test_zero_probability}   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 )Nr@      )r
   rY   r0   r7   allr2   rj   s     r&   test_int_negative_intervalz*TestMultinomial.test_int_negative_interval   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 )NrW   r;   r;   rS   rS   rS   rS   rS   rS   rS   )
r   rY   rx   r7   uint32shapearrayr   rB   floatr2   r[   s     r&   	test_sizezTestMultinomial.test_size   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 )Nrt   皙?ru   皙?r   rC   rY   rx   rD   s    r&   test_invalid_probz!TestMultinomial.test_invalid_prob   s>    j&"4cC:FFFj&"4cC:FFFFFr(   c                     t          t          t          j        dddg           t          t          t          j        dgdz  ddg           d S )Nr@   rv   ru   r   r   rD   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;      ۠iUrt   )pvals)r7   r8   sumr   r   rx   ascontiguousarrayr   )r2   r[   r   rY   
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   rU   r   z-[\w\s]*pvals array is cast to 64-bit floatingmatchr;   )
r7   r   float32r   r   r   pytestraisesrC   rx   )r2   rj   r   rY   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)rL   rM   rN   ry   r|   r   r   r   r   r   r   rO   r(   r&   rr   rr   y   s        , , ,; ; ;          G G GM M M/ / /) ) ) ) )r(   rr   c                   N   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 )TestMultivariateHypergeometrici_ 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      )rS   r   r   r@   )r@   rS   r   rS   r;   iɚ;e   r   	marginalsrt   count)
r   rC   rY   multivariate_hypergeometricr7   iinfoint64maxrV   itemsize)r2   
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;   rc   r   )r;   r   rU   r;   rS   r   )r   r   r   r   )r   r   r   )r;   r;   r   r;   r;   r   r   r      )	r   r   r   r   r   r7   emptyr   r   )r2   r   rY   rj   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< / > >1yyykAo.....r(   nsample)      -   7   rc   )r   rS   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   r      r   r   r   r@   axis)
fill_valuerV   順 MbP?{Gzt?)rtolatol)r   r   r   r7   r   r   
isinstancerT   r   r   r
   r   r   r   fullr   re   )r2   r   r   rc   rY   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   r   r   r   )rS   r;   rS   r;   r;   r   rS   r   r   r   r   r   r   r7   r   r   r2   rY   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   r   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   r   r   r   )rS   r   r   )r   r   r   )rS   r   r   )r;   r   rd   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)rL   rM   rN   r   r   r   markparametrizer   r   r   r   r   rO   r(   r&   r   r      s       D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        }|d         |d         d         |d         d         f}|||fS )NIbit_generatorstatekeyr   )r   r   r   r   )r2   r   rgr   r   legacy_states         r&   _create_rngzTestSetState._create_rng6  s`    wt}}%%(#o.gu-gu-/ =%''r(   c                     |                                  \  }}}|                    d          }||_        |                    d          }t          t	          j        ||k                         d S Nr   rb   r   standard_normalr   r
   r7   r   r2   r   r   r   oldnews         r&   test_gaussian_resetz TestSetState.test_gaussian_reset@  sp    #'#3#3#5#5 M5  a ((#  a ((scz""#####r(   c                    |                                  \  }}}|                                 |j        }|                    d          }||_        |                    d          }t          t	          j        ||k                         d S r   r   r   s         r&    test_gaussian_reset_in_media_resz-TestSetState.test_gaussian_reset_in_media_resH  s     $(#3#3#5#5 M5
#  a ((#  a ((scz""#####r(   c                 b    |                                  \  }}}|                    dd           d S NrW   )r   negative_binomial)r2   r   _s      r&   test_negative_binomialz#TestSetState.test_negative_binomialS  s7     ##%%Aq
S#&&&&&r(   N)rL   rM   rN   r   r   r  r  rO   r(   r&   r   r   5  sP        ( ( ($ $ $	$ 	$ 	$' ' ' ' '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'   rV   )r   rB   rfuncr   )r2   r'   s     r&   test_unsupported_typez"TestIntegers.test_unsupported_typea  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   rS   r;   r  	itypeboolr7   r   minr   r   rC   r  r2   r'   dtlbndubnds        r&   test_bounds_checkingz!TestIntegers.test_bounds_checkingd  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!8*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_array}  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   rS   r;   r,   rc   r'   rV   r  r  r7   r   r  r   r   r  )r2   r'   r  r  r  is_opentgts          r&   test_rng_zero_and_extremesz'TestIntegers.test_rng_zero_and_extremes  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   rS   r;   rc   rV   rU   r  )r2   r'   rc   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   rS   r;   r  zMNo error should have been raised, but one was with the following message:

%s
r  r  r7   r   r  r   r  	ExceptionAssertionErrorstrr2   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      rS   i   r  r   )r   r   r  r  r
   r   r  r  )r2   r'   rY   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   rS   r;   r,     r  
r  r  r7   r   r  r   r   r   r0   r   )
r2   r'   r  r  r  rc   rY   scalarscalar_arrayr   s
             r&   test_scalar_array_equivz$TestIntegers.test_scalar_array_equiv  sR   * 	. 	.Bd

11(8Dd

11(81(<D'14!88TDDwt}}--F__T4dX&( % * *F wt}}--F!??D6D6/7r + C CL wt}}--FOOTFTMD6#4$*. $ M MEv|444vu----%	. 	.r(   c           
      L   dddddddddd	}| j         dd          D ]}t          t          d                    }t          j        d	k    r|                    d
d|z
  d||          }n/|                    d
d|z
  d||                                          }t          j        |          	                                }t          |t          j        |          j                 |k               t          t          d                    }|                    d
d|z
  d|t                                        t          j                  }t          j        |          	                                }t          |t          j        t                    j                 |k               d S )N@053594a9b82d656f967c54869bc6970aa0358cf94ad469c81478459c6a90eee3@54de9072b6ee9ff7f20b58329556a46a447a8a29d67db51201bf88baa6e4e5d4@d3a0d5efb04542b25ac712e50d21f39ac30f312a5052e9bbb1ad3baa791ac84b@14e224389ac4580bfbdccb5697d6190b496f91227cf67df60989de3d546389b1@0e203226ff3fbbd1580f15da4621e5f7164d0d8d6b51696dd42d004ece2cbec1)	r  int16int32r   int8uint16r   uint64uint8r;   r4  littler   rd   r,   r  rS   )r  r   r   sys	byteorderr0   byteswaphashlibsha256	hexdigestr
   r7   rV   namer  viewrA  )r2   r'   r  r  rY   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   rS   r;   r4  r,   r  r  r5  )r2   r'   r  r  r  rY   rN  val_bcs           r&   test_repeatability_broadcastingz,TestIntegers.test_repeatability_broadcasting*  sW   * 	, 	,BtRWo--1128B<<3CDtRWo--1128B<<3Ca3GD'14!88TD wt}}--F//$4(#% " ' 'C wt}}--F__dVd]D8&( % * *F sF+++wt}}--F__dVd]TFTM)1 % = =F sF++++)	, 	,r(   zbound, expectedr.   )iui,YQiXgi$#Pl   bA i{El   /Yi rH   )ui,YQXgi%#Pl   bA i|El   0Yi        )rT  rU  l   bA l   1Yi i{,miuHl   HM c                     d t          |          fD ]O}t          t          d                    }|                    ||          }t	          |||n|d                    Pd S )Nr4  rb   r   )lenr   r   r0   r   )r2   boundr   rc   rY   rj   s         r&   !test_repeatability_32bit_boundaryz.TestIntegers.test_repeatability_32bit_boundaryA  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)r   r   r   i90  r@   r   r;   )r.   rH   rV  rb   )r7   r   r   r   r0   r   )r2   desiredrc   rY   rj   s        r&   .test_repeatability_32bit_boundary_broadcastingz;TestIntegers.test_repeatability_32bit_boundary_broadcastingP  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   rS   A   )r@               r   r   r   r   ))r   l            )l         r`  ra  rb  )        rc  r   r  rU   )	r7   rC  r   r   r   rC   rY   r0   object)r2   r'   configsrV   configlowhighlow_ahigh_alow_ohigh_os              r&   &test_int64_uint64_broadcast_exceptionsz3TestIntegers.test_int64_uint64_broadcast_exceptionsg  s   91b5z;H8 89  	> 	>E!%. > >"	Th3%"*..4&2+..j&/3'/u> > > >j&/5$'/u> > > >j&/3'/u> > > >j&/5&'/u> > > > 3%"*V<<<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
  )r7   r   r   r   rC  rY   r0   r   )r2   r'   r  r  r  r  actuals          r&   test_int64_uint64_corner_casez*TestIntegers.test_int64_uint64_corner_case  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   rS   r;   r  rV   )r  r  r7   r   r  r   r  r   rV   rT   hasattrtyper2   r'   r  r  r  r   s         r&   test_respect_dtype_singletonz)TestIntegers.test_respect_dtype_singleton  sY   * 	+ 	+Bd

11(8Dd

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

11(8Dd

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

11(8Dd

11(81(<D'14!88TD$JJBBZZZLLFr***ZZ
TFQJ&(   * *Fr****
	+ 
	+r(   c                    | j         D ]}|                     ddd||          }|j        dk    sJ |j        |k    sJ |                     ddd||          j        dk    sJ t	          t
                              ddd          j        d           t	          t
                              ddd          j        d           t	          t
                              ddd          j        d           d S )Nr   r   r   r   r  r   rb   r   )r  r  r   rV   r   rY   r0   )r2   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"  )rF  rG  r   r   rC   rY   r0   )r2   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 r   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_countsrS   )rY   r0   r7   uniquer   )
r2   ri   rh  rV   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)*rL   rM   rN   rY   r0   r  r  r7   rA  rD  r?  rB  r@  r   r   rC  r  r  r  r  r   r#  r,  r.  r2  r8  rP  rS  r   r   r   r   rZ  r]  rm  rp  ru  rw  r|  r  slowr  rO   r(   r&   r  r  Z  s       OE 27BHbh	Xry"(BI7EP P P7 7 727 7 7  4K K K>@ @ @@ @ @! ! ! . . .*!1 !1 !1F, , ,. [
XRX C C C D D 
E
 ? ? ? @ @ 
A
XRX C C C D D 
E		F K K KO O O.> > >8" " ".+ + +*+ + +F F FE E E [[=
1bgu	%
1bh	&
D"(F	+
D")V	,	
      r(   r  c                      e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
ej                            d	ej        ej        fej        ej        fg          d
             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d  Z)d! Z*d" Z+d# Z,d$ Z-ej                            d%e.e/g          ej                            d&d' ej0        g d(g d)g          fd* ej0        g d+g d,g          fd- ej0        g d.g d/g          fg          d0                         Z1d1 Z2d2 Z3ej                            d3d4d5g          d6             Z4d7 Z5d8 Z6d9 Z7d: Z8d; Z9d< Z:d= Z;d> Z<d? Z=d@ Z>ej        j?        ej        @                    dAB          dC                         ZAej                            dDg dEg dFg dGg dHg dIg dJdKgg dLg          dM             ZBdN ZCdO ZDdP ZEdQ ZFdR ZGdS ZHdT ZIdU ZJdV ZKdW ZLdX ZMdY ZNdZ ZOd[ ZPd\ ZQd] ZRd^ ZSej                            d_ ejT        dKd`          daejU        dbg          dc             ZVdd ZWej        X                    eYdeB          ej                            dfg dg          dh                         ZZej                            did*gdjggfdkgd-ggfg          dl             Z[ej                            dfg dg          dm             Z\dn Z]do Z^dp Z_dq Z`dr Zads Zbdt Zcdu Zddv Zedw Zfdx Zgdy Zhdz Zid{ Zjd| Zkd} Zld~ Zmd Znd Zod Zpd Zqd Zrd Zsd Ztd Zud Zvd Zwd Zxd Zyd Zzd Z{d Z|d Z}d Z~d Zd Zd Zej                            dddg          d             Zej                            ddej         dej        dg          ej                            dg d          d                         Zd Zd Zd Zd Zd Zd'S )TestRandomDistr   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||           d S )Nc   r   rS   rb   )   %   ir   r   r   r0   r7   r   r   r2   rY   ro  r\  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  rU   )r   r   r   r0   r7   r   r   r   r  s       r&   test_integers_maskedz#TestRandomDist.test_integers_masked  su     749--..BV29EE(QGb"X2w7ryIII67+++++r(   c                     t          t          | j                            }|                    dddd          }t	          j        ddgdd	gd
dgg          }t          ||           d S )Nr  r  r  T)rc   r'   r  r  r  &   r  ir  r  s       r&   test_integers_closedz#TestRandomDist.test_integers_closed  sj    749--..bvEE(S#JR3*=>>67+++++r(   c                     t                               t          j        d          j        t          j        d          j        d          }t          j        d          j        }t          ||           d S )NlTr'   )rY   r0   r7   r   r   r   )r2   ro  r\  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   decimalrb  r   r   r   rY   r7   r   r   r  s       r&   test_randomzTestRandomDist.test_random  s    749--..v&&(.0AB.0AB.0ABD E E 	"&'2>>>>749--..!&'$-DDDDDDr(   c                     t          t          | j                            }|                    d          }t	          j        ddgddgddgg          }t          ||d	           d S )
Nr  CԸ?gP?gtX?g81
A?grO>H?g88dE?r   r  r  r  s       r&   test_random_floatz TestRandomDist.test_random_float  st    749--..v&&(Y4'4'46 7 7 	"&'1======r(   c                     t          t          | j                            }|                    t          j                  }d}t          ||d           d S )NrU   r  r   r  )r   r   r   rY   r7   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   rU   r;   i$^  i,e  )r   r   r   rY   r7   count_nonzerorM  )r2   rV   uint_view_typerY   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 )Nr@  rU   )r   rB   rY   rD   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   rS   rS   rU   r   r   r   choicer7   r   r   r   r  s       r&   test_choice_uniform_replacez*TestRandomDist.test_choice_uniform_replace0  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;   rU   r  r  s       r&   test_choice_nonuniform_replacez-TestRandomDist.test_choice_nonuniform_replace6  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   rU   )r  shuffle)	r   r   r   r  r7   r   r   r   r8   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?rW   r  r  r[   )r   rS   r   rU   r  r  s       r&    test_choice_nonuniform_noreplacez/TestRandomDist.test_choice_nonuniform_noreplaceE  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  r7   r   r   r  s       r&   test_choice_nonintegerz%TestRandomDist.test_choice_nonintegerK  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;   rS   r   r   r   rd   r   r  r  s       r&   )test_choice_multidimensional_default_axisz8TestRandomDist.test_choice_multidimensional_default_axisQ  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;   rS   r   r   r   rd   r   r   r  r  s       r&   (test_choice_multidimensional_custom_axisz7TestRandomDist.test_choice_multidimensional_custom_axisW  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 )Nr@   r         @)r;   rS   r   r         ?r  r;   rS   )r  r  ru   r   r   r  r   r   Fr  rG   )r@   )r@   r;   )r;   r   r   r  )rY   r  r   rC   )r2   r   s     r&   test_choice_exceptionsz%TestRandomDist.test_choice_exceptions]  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            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|                                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   rS   Tr  Fr  r;   rU   r   rO   r   )r  r  r  r  r  ru   rd   ry  rb   rz  r{  r   r  r  )r
   r7   isscalarrY   r  r   r   rd  ndimitemr   r   r8   r0   r   rC   )r2   r[   r  arrr3   s        r&   test_choice_return_shapez'TestRandomDist.test_choice_return_shapeo  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 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;   rS   )NNNr  )r7   r   r   rC   rY   r  )r2   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   r   r  r;   rS   r   r  )r7   onesr   r   r   r  r   r   )r2   r[   rY   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      @rS   Fr  r  )r[   r  )r7   r  rY   r  rV   r   )r2   r[   ro  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'  r  Fr  rE  )r   r   r   r  rF  rG  rH  rI  rJ  rM  r7   rA  rK  r
   )r2   choice_hashrY   ro  rO  s        r&   test_choice_large_samplez'TestRandomDist.test_choice_large_sample  s    X749--..udE::=H$$__&&FnV[[1122<<>>s"#####r(   c                    t          t          | j                            }t          |                    g dd          t          j        d          d           t          |                    g dgd          g d           t          |                    dggd          dgd           t          |                    dggdd          dgd           d S )Nr   rO   rb   r;   T)strict)rc   r   )r   r   r   r   r  r7   r   r2   rY   s     r&   "test_choice_array_size_empty_tuplez1TestRandomDist.test_choice_array_size_empty_tuple  s    749--..6===<<bhqkk"&	( 	( 	( 	(6==)))2=>>			JJJ6==1#R=881#dKKKK6==1#Ra=@@1#"&	( 	( 	( 	( 	( 	(r(   c                     t          t          | j                            }|                    d          }d}t	          ||           d S )Nr   s
   	8%)r   r   r   bytesr   r  s       r&   
test_byteszTestRandomDist.test_bytes  sE    749--..b!!5VW%%%%%r(   c                     d d d d d d d d d	 d
 d fD ]d}t          t          | j                            } |g d          }|                    |           |} |g d          }t	          ||           ed S )Nc                 *    t          j        g           S r#   r7   r   rj   s    r&   <lambda>z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rx|| r(   c                     | S r#   rO   r  s    r&   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    q r(   c                 d    t          j        |                               t           j                  S r#   )r7   asarrayastyperA  r  s    r&   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33BG<< r(   c                 d    t          j        |                               t           j                  S r#   )r7   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#   )r7   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#   )r7   r  r  rd  r  s    r&   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz!}}33F;; r(   c                     d | D             S )Nc                     g | ]}||fS rO   rO   .0is     r&   
<listcomp>zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    2221A222r(   rO   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 rO   rO   r  s     r&   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>      *=*=*=aAq6*=*=*=r(   )r7   r  r  s    r&   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rz*=*=1*=*=*=>> r(   c                 8    t          j        | | g          j        S r#   )r7   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 rO   rO   r  s     r&   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  s    +>+>+>qQF+>+>+>r(   r  r  )r7   r  rT   rM  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 rO   rO   r  s     r&   r  zATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>  r  r(   r  r;   r  )r7   r  rd  r@  r  s    r&   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sA    rz*=*=1*=*=*=,/+>,/4+@+B C  C r(   
r;   rS   r   r   r   rd   r   r   r   r   
r   r;   r   r   r   r   r   rd   rS   r   )r   r   r   r  r   )r2   convrY   alistro  r\  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 )
Nr0  r   r   r;   r   r   r   r;   rS   r   r   r   rd   r      r   r   r   r   r   r   r@   )	r   r   r   r7   r8   reshaper  r   r   r  s       r&   test_shuffle_custom_axisz'TestRandomDist.test_shuffle_custom_axis  s    749--..2&&v..vA&&&(,,,,,,,,,,,,. / / 	67+++749--..2&&v..vB'''67+++++r(   c                 <   t          t          | j                            }t          j        g                               d          }dD ]P}t          j        g                               d          }|                    ||           t          ||           Qd S )N)r   rd   )r   r;   r   )r   r   r   r7   r   r  r  r   )r2   rY   r\  r   ro  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   rS   r   r;   r   )
r7   r8   r  copyr   r   r   r  r  r   )r2   y1y2rY   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   )r   r   r   r;   r@   r   )r7   mamasked_valuesr  r6   r8   r#  rY   r  r   sorteddatamask)r2   r  r  a_origb_origr  s         r&   test_shuffle_maskedz"TestRandomDist.test_shuffle_masked	  sC   E
599f = = AA ErJJE	" 1A 5r::r 	L 	LANN1qvqvg''V[L0I)J)JL L LNN1qvqvg''V[L0I)J)JL L L L	L 	Lr(   c           
         t          t          | j                            }t          j        d          }t          t          |j        |d           t          j        d                              d          }t          t          |j        |d           t          t          |j        |t          ddd                      g dg dg}t          t          |j        |d           t          j        d          }t          t          |j        |           t          j        d	          }t          t          |j        |d           d S )
Nr   r;   r   r   r   r   rS   r   )r   r   rd   r  )r   r   r   r7   r8   r   r   r  r  rB   sliceNotImplementedErrorr   r  r2   rY   r  s      r&   test_shuffle_exceptionsz&TestRandomDist.test_shuffle_exceptions  s   749--..immia888ill""6**ia888ieAq$6G6GHHHyy)))$)6>3BBBhqkki555gfooia88888r(   c                    t          t          | j                            }t          j        d          }d|j        _        t          j        t          d          5  |
                    |           d d d            d S # 1 swxY w Y   d S )Nr   F	read-onlyr   )r   r   r   r7   rX   flags	writeabler   r   rC   r  )r2   rY   r  s      r&   test_shuffle_not_writeablez)TestRandomDist.test_shuffle_not_writeable&  s    749--..HQKK!]:[999 	 	NN1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   B  BBc                    t          t          | j                            }g d}|                    |          }g d}t	          ||           t          t          | j                            }t          j        g d          j        }|                    |          }t	          |t          j        |          j                   d}t          t          |j        |           d}t          t          |j        |           t          t          | j                            }d}g d}|                    |          }t	          ||           d S )Nr  r  abcdg333333?r   )
r   r   r   r   r   r   rS   r   r;   rd   )
r   r   r   permutationr   r7   
atleast_2dr  r   r   )	r2   rY   r  ro  r\  arr_2d	bad_x_strbad_x_floatinteger_vals	            r&   test_permutationzTestRandomDist.test_permutation-  s6   749--.....##E**00067+++749--..===>>@##F++62=#9#9#;<<<	i!3Y???i!3[AAA749--..000##K0067+++++r(   c                    t          j        d                              d          }t          j        g dg dg dg dg          }t	          t          | j                            }|                    |d          }t          ||           t	          t          | j                            }|                    |d	          }t          ||           d S )
Nr0  r  r  r  r  r  r;   r   r@   )	r7   r8   r  r   r   r   r   r=  r   )r2   r  r\  rY   ro  s        r&   test_permutation_custom_axisz+TestRandomDist.test_permutation_custom_axisF  s    IbMM!!&))(,,,,,,,,,,,,. / / 749--..##AA#..67+++749--..##AB#//67+++++r(   c           
         t          t          | j                            }t          j        d          }t          t          |j        |d           t          j        d                              d          }t          t          |j        |d           t          t          |j        |t          ddd                      d S )Nr   r;   r   r1  r   rS   )r   r   r   r7   r8   r   r   r=  r  rB   r2  r4  s      r&   test_permutation_exceptionsz*TestRandomDist.test_permutation_exceptionsS  s    749--..immi!3S!<<<ill""6**i!3S!<<<i!3S%1d:K:KLLLLLr(   rV   zaxis, expectedN)r   r   r   r   r   r  )r   r   rS   r   r;   rd   r   )rd   r;   rS   r   r   r  )r   r   r   r   r   r   r;   )r   r   r   r   rS   r;   )r  r   r   rd   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   rS   rd   r   outr   )
r   r   r   r7   r8   r  r  permutedr   rV   )r2   rV   r   r   rY   rj   ys          r&   test_permutedzTestRandomDist.test_permuted[  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   rS   r  r   r;   rI  )r   r   r   rd   )r   r   r  r   )
r   r   r   r7   r8   r  r#  rK  r   r   )r2   rY   x0x1rj   rL  r   s          r&   test_permuted_with_stridesz)TestRandomDist.test_permuted_with_strideso  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#   )rY   rK  r   )r2   rL  s     r&   test_permuted_emptyz"TestRandomDist.test_permuted_empty|  s)    OOB1b!!!!!r(   outshaper   r   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   rU   z
same shaper   rJ  )	r7   r   rX   rV   r   r   rC   rY   rK  )r2   rU  r  rJ  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   r   rU   zCannot castr   r;   rI  )	r7   rX   r@  r  r   r   rB   rY   rK  )r2   rJ  rj   s      r&   !test_permuted_out_with_wrong_typez0TestRandomDist.test_permuted_out_with_wrong_type  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)rS   r   Fr7  r   r;   rI  )	r7   rX   r8  r9  r   r   rC   rY   rK  r   s     r&   test_permuted_not_writeablez*TestRandomDist.test_permuted_not_writeable  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  rb   gW<$=g^
=g/:Ћ?gG!Gc>g'`2?gU?r   r  )r   r   r   betar7   r   r   r  s       r&   	test_betazTestRandomDist.test_beta  s~    749--..R&11(#%:;#%:;#%:;=> > 	"&'2>>>>>>r(   c                 d   t          t          | j                            }|                    ddd          }t	          j        ddgddgdd	gg          }t          ||           t          t          | j                            }|                    dd          }d}t          ||           d S )
NgZd;Y@gv/?r  rb   r  r  0   ,   r   )r   r   r   rZ   r7   r   r   r  s       r&   test_binomialzTestRandomDist.test_binomial  s    749--..$V<<(RHHH& ' ' 	67+++749--..$//67+++++r(   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r  rb   gmE~@@g
1ςC@grӳL@gm%xL@g<kQK@gtK@r   r  )r   r   r   	chisquarer7   r   r   r  s       r&   test_chisquarezTestRandomDist.test_chisquare  s    749--..!!"6!22(-/?@-/?@-/?@B C C 	"&'2>>>>>>r(   c                 B   t          t          | j                            }t          j        ddg          }|                    |d          }t          j        ddgddggd	d
gddggddgddggg          }t          ||d           t          j        ddg          }t          t          |j        |           t          t          | j                            }t          j        ddg          }|                    |          }t          ||d         d           d S )NI<I@EZC@r  rb   g28\h?gɎG/?gAp?g|);?gLX?gfOh?g됷W?g(ސP?gz$Q?gmWt ?g搝K?g4hz?r   r  HzG?缉ؗҜrb  )	r   r   r   r7   r   	dirichletr   r   rC   )r2   rY   alpharo  r\  	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 )Nrh  ri  r;   r   rS   r   r   )
r7   r   r   rY   rl  r   r   r   rB   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 )Nrj  rk  r   r;   )r7   r   r   rC   rY   rl  )r2   rm  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)rh  g      ri  rS   r  rb   )r7   r   r   r   r   rl  r   r   )r2   r  rm  rY   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  rb   r{   r   r  )r7   r   r   r   r   rl  r   )r2   epsrm  rY   ro  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(   zcrashes with low memoryreasonc                     t          j        g d          }||                                z  }t          t	          | j                            }|                    |d          }|                    d          }t          ||d           d S )N)g{Gz?{Gz?Q?ra   rb   r   r   r   )r   )	r7   r   r   r   r   r   rl  re   r   )r2   rm  
exact_meanrY   r   rk   s         r&   %test_dirichlet_moderately_small_alphaz4TestRandomDist.test_dirichlet_moderately_small_alpha  s     +++,,UYY[[(
749--..!!%h!77kkqk))Zd;;;;;;r(   rm  )r   r   r   r   )rW   r   r   r   )r;   r   r   r         ?r   r   r   )g{Gz?r~  r   r   )gh㈵>r   r   r   )gMb`?gQ?r   r   r}  r   r   r   r{   r   c                     t          j        |          }t                              |          }t	          ||dk             d           d S )Nr   r{   )r7   r   rY   rl  r   )r2   rm  rL  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  rb   gvM?g?g#c?gQ:N?gAP?gE_9@r   r  )r   r   r   exponentialr7   r   r   r  s       r&   test_exponentialzTestRandomDist.test_exponential  s    749--..##F#88(.0AB.0AB.0@BD E E 	"&'2>>>>>>r(   c                     t          t                              d          d           t          t          t          j        d           d S Nr   scale       )r   rY   r  r   rC   rD   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  rb   g}(Ҍ?gi?g=r?g]hDA?gjӨ?g8k*u?r   r  )r   r   r   fr7   r   r   r  s       r&   test_fzTestRandomDist.test_f  s    749--.."bv..(.0AB.0@B.0ABD E E 	"&'2>>>>>>r(   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )Nr   r   r  rb   g,שn'@gt@g<e2@g1a3@g3r
y-2@gs1-2@r   r  )r   r   r   gammar7   r   r   r  s       r&   
test_gammazTestRandomDist.test_gamma&  s    749--..a00(.B.0AB.0ABD E E 	"&'2>>>>>>r(   c                     t          t                              dd          d           t          t          t          j        dd           d S )Nr   )r   r  r  )r   rY   r  r   rC   rD   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  rb   r;   r  r   r   )r   r   r   	geometricr7   r   r   r  s       r&   test_geometriczTestRandomDist.test_geometric2  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   rC   rY   r  r7   errstater^   rD   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  rc   gA7G@g1Fiҿgei@g_Cg0cPg`(_տr   r  )r   r   r   gumbelr7   r   r   r  s       r&   test_gumbelzTestRandomDist.test_gumbelC  s    749--..:SvFF(/1CD/1CD/1CDF G G 	"&'2>>>>>>r(   c                     t          t                              d          d           t          t          t          j        d           d S r  )r   rY   r  r   rC   rD   s    r&   test_gumbel_0zTestRandomDist.test_gumbel_0K  =    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  rb   r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   hypergeometricr7   r   r   r  s       r&   test_hypergeometricz"TestRandomDist.test_hypergeometricO  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   laplacer7   r   r   r  s       r&   test_laplacezTestRandomDist.test_laplacei  s    749--..JcGG(/2CD/2CD/2CDF G G 	"&'2>>>>>>r(   c                     t          t                              d          d           t          t          t          j        d           d S r  )r   rY   r  r   rC   rD   s    r&   test_laplace_0zTestRandomDist.test_laplace_0q  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   logisticr7   r   r   r  s       r&   test_logisticzTestRandomDist.test_logisticu  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  )re   rm   rc   gܒx?gk*+@g<Ҿ?g
@g5a@g%jz(@r   r  )r   r   r   	lognormalr7   r   r   r  s       r&   test_lognormalzTestRandomDist.test_lognormal}  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   )rm   r;   r  )r   rY   r  r   rC   rD   s    r&   test_lognormal_0zTestRandomDist.test_lognormal_0  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[   rc   r   r   r      r   r;   )r   r   r   	logseriesr7   r   r   r  s       r&   test_logserieszTestRandomDist.test_logseries  ss    749--..!!JV!<<(RHGF$ % % 	67+++++r(   c                 ~    t          t          | j                            }|                    d          dk    sJ d S )Nr   r;   )r   r   r   r  r  s     r&   test_logseries_zeroz"TestRandomDist.test_logseries_zero  s>    749--..""a''''''r(   valuer@   rw  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   rS   )
r   r   r   r7   r  r   r   rC   r  r   )r2   r  rY   s      r&   test_logseries_exceptionsz(TestRandomDist.test_logseries_exceptions  s(   749--..[*** 	> 	>z** ( (  '''( ( ( ( ( ( ( ( ( ( ( ( ( ( (z** 9 9  5'B,!7!78889 9 9 9 9 9 9 9 9 9 9 9 9 9 9 z** > >  5'B,!7!7!!<===> > > > > > > > > > > > > > >	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s}   EA3'E3A7	7E:A7	;E,CEC	EC	E35D4(E4D8	8E;D8	<EEEc                     t          t          | j                            }|                    ddgdz  d          }t	          j        g dg dgg dg d	gg d
g dgg          }t          ||           d S )Nr   UUUUUU?rd   r  rb   )r;   r   r;   rd   r   r   )r   rS   rd   rS   r   rS   )r   r   rS   rd   r   r;   )r   r   r   rS   r   r   )rd   r   r;   r   r   rS   )r   r   r   r;   rS   r   )r   r   r   rx   r7   r   r   r  s       r&   test_multinomialzTestRandomDist.test_multinomial  s    749--..##B16#BB(//////1//////1//////1	2 3 3 	67+++++r(   zfp errors don't work in wasmr   )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          j
        t          |j        ||           t          j
        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          j                    5  t          j        d$           |                    |||           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$("@rS   raise)check_validr  r  r  )r  r   )r  r  r   ).r   ).r;   rd   r  rU   errorother)rS   r;   r;   r   )r   r   r   multivariate_normalr7   r   r   r   rC   r   warnsRuntimeWarningr   r   r   warningscatch_warningssimplefilterrX   eyer   )
r2   r   rY   re   covrc   ro  r\  r  mus
             r&   test_multivariate_normalz'TestRandomDist.test_multivariate_normal  s]    749--..1v1v++D#tF+KK(03DF13EFH13EF14EFH14EF13EFH	I J J 	"&'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:>>>$&& 	A 	A!'***&&tS&@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A Xa[[fQiij&"<dC")	+ 	+ 	+ 	+j&"<hy))3	0 	0 	0j&"<"(6**	, 	, 	,j&"<"&))	% 	% 	% 	% 	%s   -I??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   rB   r  )r2   re   r  rY   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;   rS   r   rG   r  ru   )
r   r   r   r7   r   r  r  r   rg   re   )	r2   r   rY   n_sre   r  r3   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 )Nrt   g|Pk?r  )rh   r[   rc   i  i  i  i  iX  i  )r   r   r   r  r7   r   r   r  s       r&   r  z%TestRandomDist.test_negative_binomial
  su    749--..))C6)GG(S#J #J #J( ) ) 	67+++++r(   c                    t          j        d          5  t          t          t          j        dt           j                   t          t          t          j        dt           j        gdz             d d d            d S # 1 swxY w Y   d S )Nr  r  rt   r   )r7   r  r   rC   rY   r  r^   rD   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   rC   rY   r  r   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  r`  r  )r7   r  r   rC   rY   r  rD   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 )Nr   r  )dfnoncrc   gs؀3J?gugو/@gNJm+@gA}-4@gq=&@gjhn@r   r  rW   ru   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_chisquarer7   r   r   r  s       r&   test_noncentral_chisquarez(TestRandomDist.test_noncentral_chisquare$  se   749--..,,,GG(.0AB.0AB-1ABD E E 	"&'2>>>>,,&,II(13GH13GH13GHJ K K 	"&'2>>>>749--..,,,GG(-/?@-/?@-/?@B C C 	"&'2>>>>>>r(   c                     t          t          | j                            }|                    dddd          }t	          j        ddgdd	gd
dgg          }t          ||d           d S )Nr   rS   r;   r  )dfnumdfdenr  rc   gHP
?gn?g%f?gch?gzƎ?g]?:?r   r  )r   r   r   noncentral_fr7   r   r   r  s       r&   test_noncentral_fz TestRandomDist.test_noncentral_f9  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 )Nr   rS   )r  r  r  )r   r   r   r  r7   r^   isnanr2   rY   ro  s      r&   test_noncentral_f_nanz$TestRandomDist.test_noncentral_f_nanB  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   normalr7   r   r   r  s       r&   test_normalzTestRandomDist.test_normalG  s    749--..:SvFF(/2CD/2CD/2CDF G G 	"&'2>>>>>>r(   c                     t          t                              d          d           t          t          t          j        d           d S r  )r   rY   r  r   rC   rD   s    r&   test_normal_0zTestRandomDist.test_normal_0O  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  rc   gá?gƫh@gi`>?g0"&Agc@g=fAr   )nulp)r   r   r   paretor7   r   testingassert_array_almost_equal_nulpr  s       r&   test_paretozTestRandomDist.test_paretoS  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  )lamrc   r   )r   r   r   poissonr7   r   r   r  s       r&   test_poissonzTestRandomDist.test_poissona  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   r@   r   r  r  )	r7   r   r   r   rC   rY   r  r  r^   )r2   lambiglamnegs      r&   test_poisson_exceptionsz&TestRandomDist.test_poisson_exceptionsi  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   powerr7   r   r   r  s       r&   
test_powerzTestRandomDist.test_powert  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  rc   gry@gtQP0@gAI_@g@u81@g	G0@g"wc5@r   r  )r   r   r   rayleighr7   r   r   r  s       r&   test_rayleighzTestRandomDist.test_rayleigh|  s    749--..r77(-/@A-/@A.0ABD E E 	"&'2>>>>>>r(   c                     t          t                              d          d           t          t          t          j        d           d S r  )r   rY   r  r   rC   rD   s    r&   test_rayleigh_0zTestRandomDist.test_rayleigh_0  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  rb   gH1gW|3
g\?gLeg5P	gFA?r   r  )r   r   r   standard_cauchyr7   r   r   r  s       r&   test_standard_cauchyz#TestRandomDist.test_standard_cauchy  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_exponentialr7   r   r   r  s       r&   test_standard_exponentialz(TestRandomDist.test_standard_exponential  s    749--..,,&,GG(.0AB.0AB.0ABD E E 	"&'2>>>>>>r(   c                 \    t          t          t          j        t          j                   d S NrU   )r   rB   rY   r  r7   r@  rD   s    r&   #test_standard_expoential_type_errorz2TestRandomDist.test_standard_expoential_type_error  s"    i!<BHMMMMMMr(   c                     t          t          | j                            }|                    dd          }t	          j        ddgddgdd	gg          }t          ||d
           d S )Nr   r  r   rc   gΈ̏&?gTϿ?g1n21@gDb<z@gBv@gc^@r   r  r   r   r   standard_gammar7   r   r   r  s       r&   test_standard_gammaz"TestRandomDist.test_standard_gamma  s    749--..&&QV&<<(-/?@+/?@-/?@B C C 	"&'2>>>>>>r(   c                     t          t          | j                            }|                    dt          j                  }d}t          ||d           d S )Nr   rU   g   d@rd   r  )r   r   r   r  r7   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@r   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  rU         $@rJ  rV   gM»L$@ga {@gN]"@gPS")@g_+@gmB@r   r  rJ  rc   rV   )	r7   rX   r   r   r   r   r  r   r   )r2   ro  rY   r\  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 )Nrw  r@  rU   )r   rB   rY   r  rD   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   )rc   rJ  )r   r;   )r7   rX   r   rC   rY   r  )r2   rJ  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   )r   r  )r   rY   r  r   rC   rD   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  rb   g
bYg? ?gGH{Lgz\?gc`+?gT}?r   r  )r   r   r   r   r7   r   r   r  s       r&   test_standard_normalz#TestRandomDist.test_standard_normal  s    749--..''V'44(/2BD/2CD/2CDF G G 	"&'2>>>>>>r(   c                 \    t          t          t          j        t          j                   d S r  )r   rB   rY   r   r7   r@  rD   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  rc   gV1g	|ڙ(?g-?g NhڿgMc?g!uLM r   r  )r   r   r   
standard_tr7   r   r   r  s       r&   test_standard_tzTestRandomDist.test_standard_t  s    749--..""bv"66(/2BC/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rightrc   gEpw@g4DC+@gŋ@g/,@gkuR*@gHNPcr+@r   r  )r   r   r   
triangularr7   r   r   r  s       r&   test_triangularzTestRandomDist.test_triangular  s    749--..""5(. # 0 0(.0@B.0AB.0ABD E E 	"&'2>>>>>>r(   c                     t          t          | j                            }|                    ddd          }t	          j        ddgddgd	d
gg          }t          ||d           d S )NGz?gGz%@r  )rg  rh  rc   gm2@gJaD@g: @g
Q @g@T{e@gb@r   r  r   r   r   uniformr7   r   r   r  s       r&   test_uniformzTestRandomDist.test_uniform  s    749--..Du6BB(-0AB.0AB.0ABD E E 	"&'2>>>>>>r(   c                 (   t          j        d          j        }t          j        d          j        }t          j        }t          t          |t           j         d           t          t          |dt           j                   t          t          |||           t          t          |t           j         gdg           t          t          |dgt           j        g           t                              t          j	        |d          |dz             d S )Nr   r   r;   g ؅W4vC)rg  rh  )
r7   finfor  r   rY   r>  r   OverflowErrorinf	nextafter)r2   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 )Nr  r{   g
ףp= @r   )rY   r>  r   r7   pirX   )r2   rG  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 )NrS   r;   r   r   )rY   r>  r   rC   )r2   rG  s     r&   test_uniform_neg_rangez%TestRandomDist.test_uniform_neg_range
  s`    ~j$1---j$!Q!Q888j$1a&1a&)91=====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#   rB   rD   s    r&   	__float__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__      r(   N)rL   rM   rN   rT  rO   r(   r&   ThrowingFloatrQ    #                 r(   rV  rw  c                       e Zd Zd ZdS )ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                     t           r#   rS  rD   s    r&   __int__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__   rU  r(   N)rL   rM   rN   r[  rO   r(   r&   ThrowingIntegerrY    rW  r(   r\  r;   )	r7   ndarrayr   rM  r   rB   rY   r>  r  )r2   rV  throwing_floatr\  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 )Nr<  p=
ף?r  r  kapparc   gLA?gxyw@gzVR?gpE ?g8&Aпgv @r   r  )r   r   r   vonmisesr7   r   r   r  s       r&   test_vonmiseszTestRandomDist.test_vonmises&  s    749--..D6BB(/2CD/2CD/2CDF G G 	"&'2>>>>>>r(   c                     t          t          | j                            }|                    ddd          }t	          t          j        |                                                     d S )Nr{   gg5_PG>i@B rc  )r   r   r   re  r
   r7   isfiniter   r2   rY   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 )Nr{   )r  rd  )r   r   r   re  r7   r^   r
   r  ri  s      r&   test_vonmises_nanz TestRandomDist.test_vonmises_nan4  sL    749--..OOrO00r(   rd  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   rb   g    .A)
r   r   r   r   r   r   re  r   r7   r   )r2   rd  rY   rsr   random_state_valsgen_valss          r&   test_vonmises_large_kappaz(TestRandomDist.test_vonmises_large_kappa9  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     @@rn  c                    t          t          | j                            }|                    ||d          }t	          t          j        |t
          j         k              o!t          j        |t
          j        k                         d S )Nr   )r   r   r   re  r
   r7   r   rJ  )r2   r  rd  rY   rj  s        r&   test_vonmises_large_kappa_rangez.TestRandomDist.test_vonmises_large_kappa_rangeG  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 )Nr<  rb  r  re   r  rc   g*س2?gt	@g;S@g\ F@gxF @g6b?r   r  )r   r   r   waldr7   r   r   r  s       r&   	test_waldzTestRandomDist.test_waldN  s    749--..$d@@(-@-/?@-/?@B C C 	"&'2>>>>>>r(   c                     t          t          | j                            }|                    ddd          }t	          t          j        |dk                         d S )Ng    eAg      @r,   rw  r{   )r   r   r   rx  r
   r7   r   )r2   rY   r  s      r&   test_wald_nonnegativez$TestRandomDist.test_wald_nonnegativeV  sR    749--..++3d+>>w#~&&'''''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  gnJZ?g*/F?gs(RY?g]'%?g,qD?g8 ?r   r  )r   r   r   weibullr7   r   r   r  s       r&   test_weibullzTestRandomDist.test_weibull[  s    749--..$V44(.0AB.0AB.0ABD E E 	"&'2>>>>>>r(   c                     t          t          | j                            }t          |                    dd          t          j        d                     t          t          |j        d           d S )Nr   r   r  r  )r  )	r   r   r   r   r}  r7   rX   r   rC   r  s     r&   test_weibull_0zTestRandomDist.test_weibull_0c  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 )	Nr<  r  r  r;   r   ic  ib  rS   )r   r   r   zipfr7   r   r   r  s       r&   	test_zipfzTestRandomDist.test_zipfh  sp    749--..t&11(qAJ #J AJ( ) ) 	67+++++r(   )rL   rM   rN   r   r  r  r  r  r  r  r  r   r   r   r7   r   r   float64rC  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r&  r/  r5  r:  rC  rE  rG  rT   rd  r   rM  rR  rT  rX  rZ  r\  r_  rc  rf  ro  rq  rs  ru  ry  r  thread_unsafer  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rD  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/  r1  r4  r:  r?  rH  rL  rN  r`  rf  rk  rm  rs  rJ  ru  ry  r{  r~  r  r  rO   r(   r&   r  r    sa
        D, , ,, , ,, , ,
& 
& 
&
E 
E 
E> > >> > > [4!z295!z29578 8/ /8 8/? ? ?, , ,, , ,, , ,, , ,, , ,, , ,, , ,2 2 2$,9 ,9 ,9\9 9 9
/ / /
( 
( 
($ $ $( ( (& & &0 0 06, , ,0 0 0# # #L L L9 9 9  , , ,2, , ,M M M [WsFm44[-#XRX/C/C/C/C/C/C/E &F &F G ("(,@,@,@,@,@,@,B #C #C D ("(,@,@,@,@,@,@,B #C #C D	EF F
( 
(F F 54
(# # #" " " [Z&!55( ( 65(0 0 0. . .? ? ?, , ,? ? ?E E E&
@ 
@ 
@	P 	P 	P6 6 6@ @ @ [[&?@@< < A@ < [			#	#	#					,	,	,
		
 
) )
 
)
? ? ?A A 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F% F% DC HGF%P [[QC6(+<tqcUm*LMM2 2 NM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            	       n   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 )'TestBroadcasti[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  r=  )r2   rY   rg  rh  r>  r\  ro  s          r&   r?  zTestBroadcast.test_uniformv  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;   r@   )gw-Dؿgn0_x?gʊ;<.?r   r   r  )	r   r   r   r7   r   r  r   r   rC   )r2   r  r  	bad_scalerY   r\  ro  r  s           r&   r  zTestBroadcast.test_normal  s   cD	749--..(QQQRR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;   rS   r@   rG   )gf8?g%eo?g$q??r   r   r  )	r7   r   r   r   r   r^  r   r   rC   )	r2   r  r  bad_abad_br\  rY   r^  ro  s	            r&   r_  zTestBroadcast.test_beta  s    CC(QQQRR749--..{a!eQ!&'2>>>>j$	1555j$Au555749--..QA&&!&'2>>>>>>r(   c                    dg}dg}t          j        g d          }t          t          | j                            }|                    |dz            }t          ||d           t          t          |j        |dz             d S Nr;   r@   )g`ʄ?gE]?g?r   r   r  )	r7   r   r   r   r   r  r   r   rC   r2   r  r  r\  rY   ro  s         r&   r  zTestBroadcast.test_exponential  s    D	(PPPQQ749--..##EAI..!&'2>>>>j&"4i!mDDDDDr(   c                     dg}dg}t          j        g d          }t          t          | j                            }|j        } ||dz            }t          ||d           t          t          ||dz             d S r  )	r7   r   r   r   r   r  r   r   rC   )r2   r   	bad_shaper\  rY   	std_gammaro  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;   rS   r@   rG   )g3ʄ?gJE]?g?r   r   r  )	r7   r   r   r   r   r  r   r   rC   )	r2   r   r  r  r  r\  rY   r  ro  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;   rS   r@   rG   )gM3B?gybi@g0?r   r   r  )	r7   r   r   r   r   r  r   r   rC   )	r2   r  r  	bad_dfnum	bad_dfdenr\  rY   r  ro  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 )
NrS   r   r   r   r@   rG   )gŜ,n1 @g!6)@g9?r   r  )r7   r   r   r   r   r  r   r   r  r^   r   rC   )r2   r  r  r  r  r  bad_noncr\  rY   nonc_fro  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   rS   rb   r   r  )r   r   r   r7   r   r  r   )r2   rY   r\  ro  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;   r@   )gC{?g7Q#?g%h1T@r   r   r  )	r7   r   r   r   r   re  r   r   rC   r2   r  bad_dfr\  rY   ro  s         r&   rf  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;   rS   r@   rG   )g-S?g[@gr3/.?r   r   r  )	r7   r   r   r   r   r  r   r   rC   )	r2   r  r  r  r  r\  rY   nonc_chiro  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;   r@   )g>Qg{g,e?r   r   r  )	r7   r   r   r   r   r3  r   r   rC   r  s         r&   r4  zTestBroadcast.test_standard_t0  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 )NrS   r;   r@   )gD()@g,)ʸ@gPor   r   r  )	r7   r   r   r   r   re  r   r   rC   )r2   r  rd  	bad_kappar\  rY   ro  s          r&   rf  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;   r@   )g/h?gcE?g/gV?r   r   r  )	r7   r   r   r   r   r  r   r   rC   r2   r  r  r\  rY   ro  s         r&   r  zTestBroadcast.test_paretoJ  s    C(PPPQQ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  )	r7   r   r   r   r   r}  r   r   rC   r  s         r&   r~  zTestBroadcast.test_weibullT  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;   r@   )gT?gʥ?gKܮc?r   r   r  )	r7   r   r   r   r   r	  r   r   rC   r  s         r&   r
  zTestBroadcast.test_power^  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;   r@   )gh&BgsgR#?r   r   r  )	r7   r   r   r   r   r  r   r   rC   )r2   r  r  r  r\  rY   r  ro  s           r&   r  zTestBroadcast.test_laplaceh  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;   r@   )gs4?g$Cw%T?gտr   r   r  )	r7   r   r   r   r   r  r   r   rC   )r2   r  r  r  r\  rY   r  ro  s           r&   r  zTestBroadcast.test_gumbelz  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;   r@   )g$DgXPg,?r   r   r  rw  r{   )
r7   r   r   r   r   r  r   r   rC   r   )r2   r  r  r  r\  rY   ro  s          r&   r  zTestBroadcast.test_logistic  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;   r@   )g c?gu@gVQ?r   r   r  )	r7   r   r   r   r   r  r   r   rC   )r2   re   rm   	bad_sigmar\  rY   r  ro  s           r&   r  zTestBroadcast.test_lognormal  s    sD	(QQQRR749--..$	4!8U++!&'2>>>>j)TAXyAAA749--..!!$	22j&"2D)a-HHHHHr(   c                    dg}dg}t          j        g d          }t          t          | j                            }|                    |dz            }t          ||d           t          t          |j        |dz             d S )Nr;   r@   )gs(?g4mK?gVk+?r   r   r  )	r7   r   r   r   r   r  r   r   rC   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 )	NrW   r;   r   rG   )gk7Z?g*}z9?gc-	?r   r   r  )	r7   r   r   r   r   rx  r   r   rC   )r2   re   r  bad_meanr  r\  rY   ro  s           r&   ry  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   rS   r   )gR8T>?gK?g;>h@r   r  r$  r{   g      4@g      9@)	r7   r   r   r   r   r9  r   r   rC   )r2   r6  r8  r7  bad_left_onebad_mode_onebad_left_twobad_mode_twor\  rY   r9  ro  s               r&   r:  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;   rW   r@   r  r   r   r;   r   )	r7   r   r   r   r   rZ   r   r   rC   )
r2   rh   r[   bad_n	bad_p_one	bad_p_twor\  rY   binomro  s
             r&   rc  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;   rW   r@   r  )r   rS   r;   rU   r   )
r7   r   r   r   r   r   r  r   r   rC   )
r2   rh   r[   r  r  r  r\  rY   	neg_binomro  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;   r@   )r   r   r   rS   r   )
r7   r   r   r   r   _poisson_lam_maxr  r   r   rC   )	r2   r  bad_lam_oner\  rY   max_lambad_lam_twor  ro  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 )NrS   r   )r;   r   r;   r   r  r  )r7   r   r   r   r   r  r   r   rC   r  r^   )r2   r  r  r\  rY   r  ro  s          r&   r  zTestBroadcast.test_zipf4	  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 )NrW   r@   r  r   r   )	r7   r   r   r   r   r  r   r   rC   )r2   r[   r  r  r\  rY   r  ro  s           r&   r  zTestBroadcast.test_geometricB	  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;   rS   r@   rG   r   r  r   r   r   r   i   @i  l        r   i    r,   )	r7   r   r   r   r   r  r   r   rC   )r2   ngoodnbadr   	bad_ngoodbad_nbadbad_nsample_onebad_nsample_twor\  rY   ro  	hypergeoms               r&   r  z!TestBroadcast.test_hypergeometricO	  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 )NrW   rS   r@   )r;   r;   r;   r   )	r7   r   r   r   r   r  r   r   rC   )r2   r[   r  r  r\  rY   r  ro  s           r&   r  zTestBroadcast.test_logseries|	  s    EC	D	(999%%749--..$	1q5!!67+++j)Y];;;j)Y];;;;;r(   c                    t          t          | j                            }|                    ddgdgdz  d          }t	          j        g dg dgg d	g d
gg dg dggt          j                  }t          ||           t          t          | j                            }|                    ddgdgdz            }t	          j        g dg dgt          j                  }t          ||           t          t          | j                            }|                    ddgdgdz  gdz            }t	          j        g dg dgt          j                  }t          ||           t          t          | j                            }|                    dgdggdgdz  gdz            }t	          j        g dg dgg dg d
ggt          j                  }t          ||           d S )Nr   r   r  rd   r  rb   )r   r   rS   r;   rS   r   )rS   r   rd   r   rS   r   )r;   r   r;   r   rS   r;   )r   rS   rS   r;   r   r   )r   rS   r   r;   rS   r   )r   rS   r   r   r   r   rU   rS   )r   r   rS   r;   r;   r;   )r   rS   r   r   r   r   )r   r   r   rx   r7   r   r   r   r  s       r&   r  zTestBroadcast.test_multinomial	  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(   rh   r   c                 p   t          t          | j                            }t          j        dgdz            }|                    ||          }t          |t                    rd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   rO   )r   r@   r  rb   )r;   r;   r;   r;   r;   r;   )r   r   r   r7   r   rx   r   rT   r   r
  broadcast_shapesr   r   rC   )r2   rh   rY   r   ro  n_shaper   s          r&   test_multinomial_pval_broadcastz-TestBroadcast.test_multinomial_pval_broadcast	  s    749--..%1%%##Au--"1c**7"" 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   F++F/2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  rd   r  r;   rW   )r   r   r   r   rC   rx   )r2   rY   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   rd   i8r  rd   )r   r   rd   rd   r   )r   r   r   )r   r   r   )r   r   r   r   )r   r   r   rx   r7   r   r   r  s      r&   test_empty_outputsz TestBroadcast.test_empty_outputs	  s    749--..##BHZ$>$>!LL|},,,,##B(=(=>>|{****##BHY$=$=$&H\$:$:< <||++++++r(   N)+rL   rM   rN   r   r?  r  r_  r  r  r  r  r  r  rf  r  r4  rf  r  r~  r
  r  r  r  r  r  ry  r:  rc  r  r  r  r  r  r  r  r   r   r   r7   r   r  r  r  rO   r(   r&   r  r  q  s        D? ? ?> > >$? ? ?$E E E	< 	< 	<? ? ?*; ; ;*!F !F !FF? ? ?@ @ @> > >*A A AF F F < < <= = =; ; ;? ? ?$> > >$5 5 5"I I I B B BD D D&&= &= &=P; ; ;.? ? ?0< < << < << < <+H +H +HZ< < <, , ,> [S2#+28RH#5#5#+28rdVrdV,<#=#=#%  
A A 
A.> > >, , , , ,r(   r  zcan't start threadrz  c                   <    e Zd Z ed          Zd Zd Zd Zd ZdS )
TestThreadr   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  r3   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 rO   )startr  rj   s     r&   r  z-TestThread.check_function.<locals>.<listcomp>	  s     qr(   c                 6    g | ]}|                                 S rO   )joinr  s     r&   r  z-TestThread.check_function.<locals>.<listcomp>	  s     ar(   r   win32)	threadingr  r7   r   rX  seedszipr   r   intprV   r   rF  platformr   r   )	r2   r  szout1out2tr3   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  rb   .)r  r   rJ  s     r&   
gen_randomz*TestThread.test_normal.<locals>.gen_random	  s    |||//CHHHr(   )r  r  r  r2   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rt   r,   r  .)r  r7   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  rd   r  rb   .)rx   r  s     r&   r  z/TestThread.test_multinomial.<locals>.gen_random	  s*    ((fX\(FFCHHHr(   )r  rd   r  r  r  s     r&   r  zTestThread.test_multinomial	  s5    	G 	G 	G 	J:66666r(   N)	rL   rM   rN   r6   r  r  r  r  r  rO   r(   r&   r  r  	  s_         E!HHE+ + +,5 5 58 8 87 7 7 7 7r(   r  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestSingleEltArrayInputc                     t          j        dg          t          j        dg          t          j        dg          dfS )NrS   r   r   r  r  rD   s    r&   _create_arraysz&TestSingleEltArrayInput._create_arrays
  s/    x}}bhsmmRXqc]]D@@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 ]E}||v r |t          j        dg                    }n ||          }t!          |j        |           Fd S r  )r  rY   r  r  re  r3  r  r}  r	  r  r  r  r  r  r7   r   r   r   )r2   argOner  tgtShapefuncs	probfuncsrG  rJ  s           r&   test_one_arg_funcsz*TestSingleEltArrayInput.test_one_arg_funcs
  s    !%!4!4!6!61h#V%:!6#4v!6#35 %v'78	 	. 	.Dy  d28SE??++ d6llH----	. 	.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        t          j        t          j        f}t          j        t          j        f}|D ]}||v rt!          j        dg          }n|} |||          }t%          |j        |            ||d         |          }t%          |j        |            |||d                   }t%          |j        |           d S )NrW   r   )r  rY   r>  r  r^  r  r  r  re  r  r  r  r  rx  rZ   r  r7   r   r   r   )	r2   r  argTwor  r  r  r  rG  rJ  s	            r&   test_two_arg_funcsz*TestSingleEltArrayInput.test_two_arg_funcs
  s&   &*&9&9&;&;#8fl66&.!6;&":< _f&>?	 	. 	.Dy  3%  $vv&&CH---$vay&))CH---$vvay))CH----	. 	.r(   c           	      h   |                                  \  }}}}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 ]z} |||||          }	t          |	j        |            ||d         |||          }	t          |	j        |            |||d         ||          }	t          |	j        |           {d S )Nr;   r   r  )r  r7   r  rA  rD  r?  rB  r@  r   r   rC  rY   r0   r   r   r   )
r2   r'   r  r  r  rG  rh  rg  r  rJ  s
             r&   r  z%TestSingleEltArrayInput.test_integers8
  s    //111a"'28RXry29bh	;x}}hsmm 	. 	.B$sD82>>>CH---$s1vthbAAACH---$sDGhbAAACH----	. 	.r(   c                 l   |                                  \  }}}}t          j        t          j        t          j        g}|D ]t} ||||          }t          |j        |            ||d         ||          }t          |j        |            |||d         |          }t          |j        |           ud S )Nr   )r  rY   r  r9  r  r   r   )r2   r  r
  argThreer  r  rG  rJ  s           r&   test_three_arg_funcsz,TestSingleEltArrayInput.test_three_arg_funcsJ
  s    -1-@-@-B-B*($f&7&(  	. 	.D$vvx00CH---$vay&(33CH---$vvay(33CH----	. 	.r(   N)rL   rM   rN   r  r  r  r  r  rO   r(   r&   r   r   
  sb        A A A. . .(. . .8. . .$. . . . .r(   r   rf  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   r~  r   r   r   r   )
r   r<   r   rF  rG  rH  rI  rJ  rK  r   )rf  r   r   mt19937r   rJ  r   s          r&   test_jumpedr  Z
  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   rS   )r   r   r   rb   )r;   r   )r   r;   r;   )r   rW  r;   r  gffffff?)rS   r;   rS   r   zOutput size \(6, 5, 1, 1\) isr   )rd   r   r;   r;   )r7   r  rY   r  r   r   r   rC   r  r   rZ   rx   re  r  )r  rm   rc   r   rJ  r  r  r  s           r&   test_broadcast_size_errorr  v
  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   rb   rS   )r7   r  rY   r  r   r   rC   )r  rm   s     r&   test_broadcast_size_scalarr  
  s    	BGAJJE
MM"e!M$$$	z	"	" ) )b%a((() ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   B

BBc                      g g dg} t          t          d                    }t          |j        |            | dg g gk    sJ d S r  )r   r   r   r  )seqgens     r&   test_ragged_shuffler  
  sO    r1+C
GAJJ

Cs{C(((1b"+r(   rh  rG   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 >= highr@   )r   r   r   r   rC   r0   )rh  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rV   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)orderrV   r   zSupplied output arrayr   r%  r&  )r7   r   r   r   rC   rY   r  r   )rV   rJ  r   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   )rV   r"  r%  )rJ  rV   rc   )r7   r   r   )r%  r"  rV   rJ  variatess        r&   test_contig_req_outr(  
  sd    
 (6e
4
4
4Ct5)))Hs????t5sy999Hs??????r(   c                     t           j                            t           j                            d                    } |                     d           |                                 \  }\  }}|j        j        dk    sJ t          |            |d }t          |           |j	        |j
        _	        |j
        j	        }|j	        |k    sJ d S )Nr   r;   	PCG64DXSM)r*  )r7   rY   r   r*  r   
__reduce__	__class__rL   printr   r   )r   ctorbit_genr  r  state_bs         r&   $test_generator_ctor_old_style_pickler1  
  s    			RY0033	4	4Bq==??D+7q%4444	$KKKnA	!HHH#MAOo#G=G######r(   c                  H   dd l } t          j                            t          j                            d                    }|j        j        }|                     |                     |                    }|j        j        }t          |j
        |j
                   t          |j        |j                   |j        j                            d           |                     |                     |                    }|j        j        }t          |j
        |j
                   d S )Nr   i4r   )pickler7   rY   r   r*  r   seed_seqloadsdumpsr   r   poolspawn)r3  r   ssrg_plkss_plks        r&   #test_pickle_preserves_seed_sequencer<  
  s     MMM			RY00::	;	;B			"B\\&,,r**++F!*F6<(((&+&&&##B'''\\&,,r**++F!*F6<(((((r(   versiony   ~   c                 H   dd l }dd l}t          j                            t          j                            t                              d         }t          j                            |dd|  d          }|                    |          5 }|	                    |          }d d d            n# 1 swxY w Y   |j
        j        d         }t          |t                    sJ t          |j
        t          j        j                  sJ |d         dk    sJ |d         dk    sJ d S )	Nr   r+  generator_pcg64_npz.pkl.gzr   l	   a*MzJR2MP incl	   sN	D%(^6FA )gzipr3  ospathsplitabspath__file__r  openloadr   r   r   r   r7   rY   PCG64)r=  rC  r3  	base_pathpkl_filegzr   r   s           r&   test_legacy_picklerO  
  sN    KKKMMMbgooh7788;Iw||6@@@@ H 
8		 [[__              "7+Eb)$$$$$b&	88888>CCCCC<AAAAAAAs   
B,,B03B0)6rI  os.pathrD  rF  r  r   numpyr7   numpy.exceptionsr   numpy.linalgr   numpy.randomr   r   r   r   numpy.testingr	   r
   r   r   r   r   r   r   rY   JUMP_TEST_DATAfixturer'   r*   rQ   rr   r   r   r  r  r  r   r  r  r   r   r  r  r  r  r  r#  r   r(  r1  r<  rO  rO   r(   r&   <module>rX     sm     



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