
    gin                    H   d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZmZmZ  G d d      Z G d d      Z G d d	      Z G d
 d      Z G d d      Z G d d      Z G d d      Zej*                  j-                  ed       G d d             Z G d d      Zy)    N)random)IS_WASMassert_assert_array_almost_equalassert_array_equalassert_equalassert_no_warningsassert_raisesc                   *    e Zd Zd Zd Zd Zd Zd Zy)TestSeedc                     t         j                  j                  d      }t        |j	                  d      d       t         j                  j                  d      }t        |j	                  d      d       y )Nr     i      i  )npr   RandomStater   randintselfss     V/var/www/html/audio_env/lib/python3.12/site-packages/numpy/random/tests/test_random.pytest_scalarzTestSeed.test_scalar   sN    II!!!$QYYt_c*II!!*-QYYt_c*    c                    t         j                  j                  t        d            }t	        |j                  d      d       t         j                  j                  t        j                  d            }t	        |j                  d      d       t         j                  j                  dg      }t	        |j                  d      d       t         j                  j                  dg      }t	        |j                  d      d       y )N
   r   i  r   i  r   i	  )r   r   r   ranger   r   aranger   s     r   
test_arrayzTestSeed.test_array   s    II!!%),QYYt_c*II!!"))B-0QYYt_c*II!!1#&QYYt_c*II!!:,/QYYt_c*r   c                     t        t        t        j                  j                  d       t        t
        t        j                  j                  d       y )N      r
   	TypeErrorr   r   r   
ValueErrorr   s    r   test_invalid_scalarzTestSeed.test_invalid_scalar$   s.    i!6!6=j"))"7"7<r   c                    t        t        t        j                  j                  dg       t        t
        t        j                  j                  dg       t        t
        t        j                  j                  dg       t        t
        t        j                  j                  g d       t        t
        t        j                  j                  g d       y )Nr   r            )      r'   )r(   r'   r!   r$   s    r   test_invalid_arrayzTestSeed.test_invalid_array)   sx    i!6!6?j"))"7"7">j"))"7"7*Fj"))"7"79KLj"))"7"79LMr   c                 R   t        t        t        j                  j                  t        j
                  g t        j                               t        t        t        j                  j                  g dg       t        t        t        j                  j                  g dg dg       y )Ndtyper(   r)      )         )r
   r#   r   r   r   arrayint64r$   s    r   test_invalid_array_shapez!TestSeed.test_invalid_array_shape1   sd    j"))"7"7hhr2	4j"))"7"7)Ej"))"7"7):C:E 	Fr   N)__name__
__module____qualname__r   r   r%   r+   r6    r   r   r   r      s    ++=
NFr   r   c                       e Zd Zd Zd Zy)TestBinomialc                     t        j                  dd      }dD ]D  }t        t        j                  d|      dk(         t        t        j                  ||      |       F y )Nr)   intr-   )r         ?r(   r   )r   zerosr   r   binomialr   )r   r@   ps      r   test_n_zerozTestBinomial.test_n_zero;   sR     %( 	AAFOOAq)Q./vua8%@	Ar   c                 `    t        t        t        j                  dt        j
                         y )Nr(   )r
   r#   r   rA   r   nanr$   s    r   test_p_is_nanzTestBinomial.test_p_is_nanD   s    j&//1bff=r   N)r7   r8   r9   rC   rF   r:   r   r   r<   r<   :   s    A>r   r<   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestMultinomialc                 4    t        j                  dddg       y )Nd   皙?皙?r   multinomialr$   s    r   
test_basiczTestMultinomial.test_basicJ   s    3c
+r   c                 4    t        j                  dg d       y )NrJ   )rK   rL           rQ   rQ   rM   r$   s    r   test_zero_probabilityz%TestMultinomial.test_zero_probabilityM   s    3 9:r   c                    t        dt        j                  dd      cxk  xr dk  nc        t        j                  ddd      }t        t        j                  d|k               t        t        j                  |dk               y )Nr    r2   )r   r   r   r   all)r   xs     r   test_int_negative_intervalz*TestMultinomial.test_int_negative_intervalP   sY    fnnR,1r12NN2r1%rQw q2vr   c           	         ddg}t        t        j                  j                  d|t        j                  d            j
                  d       t        t        j                  j                  d|t        j                  d            j
                  d       t        t        j                  j                  d|t        j                  d            j
                  d       t        t        j                  j                  d|ddg      j
                  d       t        t        j                  j                  d|d      j
                  d       t        t        j                  j                  d|t        j                  d            j
                  d       t        t        t        j                  j                  d|t        d             y )Nr?   r(   r(   r)   r)   r)   r)   r)   r)   r)   )
r   r   r   rN   uint32shaper4   r
   r"   floatr   rB   s     r   	test_sizezTestMultinomial.test_sizeV   s(   #JRYY**1a1>DDfMRYY**1a1>DDfMRYY**1a1>DDfMRYY**1a!Q8>>	JRYY**1a8>>	JRYY**1a&1ABHH	  	i!6!61Ah	 r   c           
         t        t        t        j                  j                  dddgg       t        t        t        j                  j                  ddgdgg       t        t        t        j                  j                  ddgdggdgdggg       t        t        t        j                  j                  dt        j
                  ddgddgg             y )Nr   r   r(   )r
   r#   r   r   rN   r4   r$   s    r   test_multidimensional_pvalsz+TestMultinomial.test_multidimensional_pvalsd   s    j"))"7"7q!fXFj"))"7"7qcA3ZHj"))"7"7sQCjA3QRPS*=UVj"))"7"7RXX1vPQSTvFV=WXr   N)r7   r8   r9   rO   rR   rW   r`   rb   r:   r   r   rH   rH   I   s    ,;  Yr   rH   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestSetStatec                 X    d}t        j                  |      }|j                         }||fS )NI)r   r   	get_state)r   seedprngstates       r   _create_rngzTestSetState._create_rngl   s-    !!$' U{r   c                     | j                         \  }}|j                  d      }|j                  |       |j                  d      }t        t	        j
                  ||k(               y )N   )rk   tomaxint	set_stater   r   rU   r   ri   rj   oldnews        r   rO   zTestSetState.test_basicr   sQ    &&(emmBummBscz"#r   c                     | j                         \  }}|j                  d      }|j                  |       |j                  d      }t        t	        j
                  ||k(               y Nr0   sizerk   standard_normalro   r   r   rU   rp   s        r   test_gaussian_resetz TestSetState.test_gaussian_resety   s[    &&(e"""*u"""*scz"#r   c                    | j                         \  }}|j                          |j                         }|j                  d      }|j                  |       |j                  d      }t	        t        j                  ||k(               y rt   )rk   rx   rg   ro   r   r   rU   rp   s        r    test_gaussian_reset_in_media_resz-TestSetState.test_gaussian_reset_in_media_res   su     &&(e """*u"""*scz"#r   c                 h   | j                         \  }}|d d }|j                  d      }|j                  |       |j                  d      }|j                  |       |j                  d      }t        t	        j
                  ||k(               t        t	        j
                  ||k(               y )Nr*   rm   ru   rw   )r   ri   rj   	old_statex1x2x3s          r   test_backwards_compatibilityz)TestSetState.test_backwards_compatibility   s     &&(e#2J	!!r!*y!!!r!*u!!r!*rRx !rRx !r   c                 N    | j                         \  }}|j                  dd       y Nr?   )rk   negative_binomialr   ri   _s      r   test_negative_binomialz#TestSetState.test_negative_binomial   s&     ""$asC(r   c                     | j                         \  }}t        j                  t              5  |j	                  d       d d d        y # 1 sw Y   y xY w)Nr:   )rk   pytestraises
IndexErrorro   r   s      r   test_set_invalid_statez#TestSetState.test_set_invalid_state   sA    ""$a]]:& 	NN2	 	 	s   AAN)
r7   r8   r9   rk   rO   ry   r{   r   r   r   r:   r   r   rd   rd   k   s%    $$	$")r   rd   c            	          e Zd Zej                  ej
                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  g	Zd Zd Zd Zd Zd Zd Zd Zd Zy	)
TestRandintc                 n    t        j                         }t        t        |j                  dt
               y Nr(   r-   )r   r   r
   r"   r   r^   )r   rngs     r   test_unsupported_typez!TestRandint.test_unsupported_type   s"      "iau=r   c                    t        j                         }| j                  D ]  }|t        j                  u rdnt        j
                  |      j                  }|t        j                  u rdn!t        j
                  |      j                  dz   }t        t        |j                  |dz
  ||       t        t        |j                  ||dz   |       t        t        |j                  |||       t        t        |j                  dd|        y )Nr   r)   r(   r-   )r   r   ityper   booliinfominmaxr
   r#   r   )r   r   dtlbndubnds        r   test_bounds_checkingz TestRandint.test_bounds_checking   s      "** 	CBbgg1288B<+;+;Dbgg1288B<+;+;a+?D*ckk4!8TL*ckk4L*ckk4RH*ckk1arB	Cr   c           	      
   t        j                         }| j                  D ]  }|t        j                  u rdnt        j
                  |      j                  }|t        j                  u rdn!t        j
                  |      j                  dz   }|dz
  }t        |j                  ||dz   d|      |       |}t        |j                  ||dz   d|      |       ||z   dz  }t        |j                  ||dz   d|      |        y )Nr   r)   r(   r   rv   r.   )
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   tgts         r   test_rng_zero_and_extremesz&TestRandint.test_rng_zero_and_extremes   s      "** 	NBbgg1288B<+;+;Dbgg1288B<+;+;a+?D(CS#'BGMCS#'BGM$;1$CS#'BGM	Nr   c                    t        j                         }| j                  D ]  }|t        j                  u rdnt        j
                  |      j                  }|t        j                  u rdn!t        j
                  |      j                  dz   }	 |j                  |||        y # t        $ r}t        dt        |      z        d }~ww xY w)Nr   r)   r(   r-   zMNo error should have been raised, but one was with the following message:

%s)r   r   r   r   r   r   r   r   r   	ExceptionAssertionErrorstr)r   r   r   r   r   es         r   test_full_rangezTestRandint.test_full_range   s      "** 		@Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D@D$b1		@  @$ &68;A&? @ @@s   B%%	C
.CC
c                    t        j                         }| j                  dd  D ]V  }dD ]O  }|j                  d|d|      }t	        |j                         |k         t	        |j                         dk\         Q X |j                  dddt        j                        }t	        |j                         dk         t	        |j                         dk\         y )Nr(   )r1      rm   r)   i   r   r   )	r   r   r   r   r   r   r   r   r   )r   r   r   r   valss        r   test_in_bounds_fuzzzTestRandint.test_in_bounds_fuzz   s      "**QR. 	)B" ){{1db{A
T)*
a()	) {{1ae277{;
Q
a r   c           
         dd l }dddddddddd	}| j                  dd  D ]  }t        j                  d	      }t        j
                  d
k(  r|j                  ddd|      }n#|j                  ddd|      j                         }|j                  |j                  t        j                              j                         }t        |t        j                  |      j                     |k(          t        j                  d	      }|j                  dddt               j                  t        j                        }|j                  |      j                         }t        |t        j                  t               j                     |k(         y )Nr   @509aea74d792fb931784c4b0135392c65aec64beee12b0cc167548a2c3d31e71@7b07f1a920e46f6d0fe02314155a2330bcfd7635e708da50e536c5ebb631a7d4@e577bfed6c935de944424667e3da285012e741892dcb7051a8f1ce68ab05c92f@0fbead0b06759df2cfb55e43148822d4a1ff953c7eb19a5b08445a63bb64fa9e@001aac3a5acb935a9b186cbe14a1ca064b8bb2dd0b045d48abeacf74d0203404)	r   int16int32r5   int8uint16r\   uint64uint8r(   i  littler3   r   r   r)   )hashlibr   r   r   sys	byteorderr   byteswapsha256viewr   r   	hexdigestr   r.   namer   )r   r   r   r   r   valress          r   test_repeatabilityzTestRandint.test_repeatability   sK    \[[[[[[[[] **QR. 
	3B$$T*C }}(kk!QTk<kk!QTk<EEG.."''!23==?CC))*c12
	3   &kk!QTk6;;BGGDnnS!++-BHHTN''(C/0r   c                    t         j                  }t        j                  t         j                        j                  }t        j                  t        j                  t         j                        j                        }t        j                  t        j                  t         j                        j                  dz         }t         j
                  j                  |||      }t        ||       y r   )r   r5   r   r   r   r   r   r   )r   r   r   r   r   actuals         r   test_int64_uint64_corner_casez)TestRandint.test_int64_uint64_corner_case  s     XXhhrxx $$xx*../yy"((+//!34 ""4R"8VS!r   c                    t        j                         }| j                  D ]  }|t        j                  u rdnt        j
                  |      j                  }|t        j                  u rdn!t        j
                  |      j                  dz   }|j                  |||      }t        |j                  t        j                  |              t        t        fD ]  }|t        u rdnt        j
                  d      j                  }|t        u rdn!t        j
                  d      j                  dz   }|j                  |||      }t        t        |d              t        t        |      |        y )Nr   r)   r(   r-   longr.   )r   r   r   r   r   r   r   r   r   r   r.   r>   r   hasattrtype)r   r   r   r   r   samples         r   test_respect_dtype_singletonz(TestRandint.test_respect_dtype_singleton  s     "** 	5Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D[[t2[6Frxx|4	5 + 	+Bd
1(8(<(<Dd
1(8(<(<q(@D [[t2[6F001fr*	+r   N)r7   r8   r9   r   r   r   r   r   r   r   r\   r5   r   r   r   r   r   r   r   r   r   r   r:   r   r   r   r      so     WWbggrxx299XXryy"((BII7E>CN@!1B".+r   r   c                   r   e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej.                  j1                  dej4                  ej4                  j7                         ej4                  j9                         g      d        Zej.                  j1                  dej4                  ej4                  j7                         ej4                  j9                         g      ej.                  j1                  dddg      d               Zd Zd Z d Z!d Z"d Z#d Z$d  Z%d! Z&d" Z'd# Z(d$ Z)d% Z*d& Z+d' Z,d( Z-d) Z.d* Z/d+ Z0d, Z1d- Z2d. Z3d/ Z4d0 Z5d1 Z6d2 Z7d3 Z8d4 Z9d5 Z:d6 Z;d7 Z<d8 Z=d9 Z>d: Z?d; Z@d< ZAd= ZBd> ZCd? ZDd@ ZEdA ZFdB ZGdC ZHdD ZIdE ZJdF ZKdG ZLdH ZMdI ZNdJ ZOdK ZPdL ZQdM ZRyN)OTestRandomDistrf   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||d	
       y )Nr0   r)   _\*?琛?<p?,o?H?Z?   decimal)r   r   rh   randr   r4   r   r   r   r   desireds       r   	test_randzTestRandomDist.test_rand9  sc      +!Q((02EF02EF/1CDF G 	"&'2>r   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||d	
       y )Nr0   r)   !<Oq?4u,?3?LI/DͿ@? @HS\@r   r   )r   r   rh   randnr   r4   r   r   s       r   
test_randnzTestRandomDist.test_randnA  sc      +1a((02EF-/BC-/BCE F 	"&'2>r   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||       y Nic   r0   r)   ru      r0   i)   ii)r   r   rh   r   r   r4   r   r   s       r   test_randintzTestRandomDist.test_randintI  s]      +S"62((RG "I #J( ) 	67+r   c                    t        j                  | j                        }t        j                  t
              5  |j                  ddd      }d d d        t        j                  ddgddgd	d
gg      }t        |       y # 1 sw Y   4xY wr   )
r   r   rh   r   warnsDeprecationWarningrandom_integersr   r4   r   r   s       r   test_random_integersz#TestRandomDist.test_random_integersQ  s      +\\,- 	?((bv(>F	?((RG "I #J( ) 	67+	? 	?s   BB
c                 j   t        j                  t              5  t        j                  j                  t        j                  d      j                  t        j                  d      j                        }d d d        t        j                  d      j                  }t        |       y # 1 sw Y   5xY w)Nl)	r   r   r   r   r   r   r   r   r   )r   r   r   s      r   test_random_integers_max_intz+TestRandomDist.test_random_integers_max_intZ  s     \\,- 	BYY..rxx}/@/@/1xx}/@/@BF	B ((3-##VW%	B 	Bs   AB))B2c           	         t        j                         5  t        j                  dt               t	        t        t
        j                  j                  t        j                  d      j                         t	        t        t
        j                  j                  t        j                  d      j                  t        j                  d      j                         d d d        y # 1 sw Y   y xY w)Nerrorr   )
warningscatch_warningssimplefilterr   r
   r   r   r   r   r   r$   s    r   test_random_integers_deprecatedz.TestRandomDist.test_random_integers_deprecatedg  s    $$& 	@!!'+=> ,))33((3-++-
 ,))33((3-++RXXc]->->@	@ 	@ 	@s   CC##C,c                     t        j                  | j                        }|j                  d      }t        j                  ddgddgddgg      }t        ||d	       y )
Nr   r   r   r   r   r   r   r   r   )r   r   rh   r   r4   r   r   s       r   test_randomzTestRandomDist.test_randomu  sb      +F#((02EF02EF/1CDF G 	"&'2>r   c                     t        j                  | j                        }|j                  dd      }t	        j
                  g d      }t        ||       y )Nr1   )r)   r0   r)   r0   r   r   rh   choicer   r4   r   r   s       r   test_choice_uniform_replacez*TestRandomDist.test_choice_uniform_replace}  s>      +Aq!((<(67+r   c                     t        j                  | j                        }|j                  ddg d      }t	        j
                  g d      }t        ||       y )Nr1   )皙?r  皙?r  rB   )r(   r(   r)   r)   r   r   s       r   test_choice_nonuniform_replacez-TestRandomDist.test_choice_nonuniform_replace  sC      +Aq$89((<(67+r   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  g d      }t        ||       y )Nr1   r0   Freplace)r   r(   r0   r   r   s       r   test_choice_uniform_noreplacez,TestRandomDist.test_choice_uniform_noreplace  sB      +Aq%0((9%67+r   c                     t        j                  | j                        }|j                  dddg d      }t	        j
                  g d      }t        ||       y )Nr1   r0   F)r  g333333?r?   r  r  rB   )r)   r0   r(   r   r   s       r    test_choice_nonuniform_noreplacez/TestRandomDist.test_choice_nonuniform_noreplace  sJ      +Aq%$8  :((9%67+r   c                     t        j                  | j                        }|j                  g dd      }t	        j
                  g d      }t        ||       y )N)abcdr1   )r  r  r  r  r   r   s       r   test_choice_nonintegerz%TestRandomDist.test_choice_noninteger  s@      +0!4((/067+r   c           	      ~   t         j                  j                  }t        t        |dd       t        t        |dd       t        t        |ddgddggd       t        t        |g d       t        t        |g ddddgddgg	       t        t        |ddgdg d
	       t        t        |ddgdddg	       t        t        |ddgdddg	       t        t        |g ddd       t        t        |g ddd       t        t        |g ddd       t        t        |g ddd       t        t        |g dddg d       y )Nr    r0   g      @r(   r)   r1   )r(   r)   r0   r1   g      ?r  )r  r  rK   g?gr  r/   Fr  r*   )r    )r    r(   )r(   r   r   r
  )r   r   r   r
   r#   )r   r   s     r   test_choice_exceptionsz%TestRandomDist.test_choice_exceptions  s   !!j&"a0j&"a0j&Aq6Aq6*:A>j&"a0j&,d|4	6j&1a&!Gj&1a&!T{Cj&1a&!SzBj&)QFj&)RGj&)UEJj&)WeLj&)Q#y	2r   c           
         ddg}t        t        j                  t        j                  j	                  dd                   t        t        j                  t        j                  j	                  dd                   t        t        j                  t        j                  j	                  dd|                   t        t        j                  t        j                  j	                  dd|                   t        t        j                  t        j                  j	                  ddgd                   t        t        j                  j	                  d gd      d u        t        j
                  ddg      }t        j                  dt        	      }||d
<   t        t        j                  j	                  |d      |u        d}t        t        j                  t        j                  j	                  d|d                    t        t        j                  t        j                  j	                  d|d                    t        t        j                  t        j                  j	                  d|d|                    t        t        j                  t        j                  j	                  d|d|                    t        t        j                  t        j                  j	                  ddg|d                    t        t        j                  j	                  d g|d      j                  d
k(         t        j
                  ddg      }t        j                  dt        	      }||d
<   t        t        j                  j	                  ||d      j                         |u        d}g d}t        t        j                  j	                  d|d      j                  |       t        t        j                  j	                  d|d      j                  |       t        t        j                  j	                  d|d|      j                  |       t        t        j                  j	                  d|d|      j                  |       t        t        j                  j	                  t        j                  d      |d      j                  |       t        t        j                  j                  d
d
d      j                  d       t        t        j                  j                  d
dd
      j                  d       t        t        j                  j                  ddd
      j                  d       t        t        j                  j	                  d
d
      j                  d       t        t        j                  j	                  g d      j                  d       t        t        j                  j	                  ddgd      j                  d       t        t        t        j                  j                  g d       y )Nr  ?r)   Tr  Fr
  r(   r-   r   r:   )r)   r0   )r  r  r  r  r  rK   r3   )r0   r   r1   ru   i)r   r   r  r  )r   r   isscalarr   r   r4   emptyobjectndimitemr   r]   r   r   r
   r#   )r   rB   r  arrr   s        r   test_choice_return_shapez'TestRandomDist.test_choice_return_shape  ss   #JBII,,Q,=>?BII,,Q,>?@BII,,Q,BCDBII,,Q,CDEBII,,aVT,BCD		  $ 6$>?HHaVhhq'A		  d 3q89 BKK		 0 0At 0 DEEFBKK		 0 0Au 0 EFFGBKK		 0 0Atq 0 IJJKBKK		 0 0Au 0 JKKLBKK		 0 0!QD 0 IJJK		  $D 9>>!CDHHaVhhq'A		  a 6;;=BC *RYY%%aD%9??CRYY%%aE%:@@!DRYY%%aDA%>DDaHRYY%%aEQ%?EEqIRYY%%biilAt%DJJAN 	RYY&&q!)&<BBINRYY&&q#A&6<<dCRYY&&r2A&6<<dCRYY%%aa%066=RYY%%bt%4::DARYY%%sCjy%AGG	 j"))"2"2B;r   c                     t        j                  g d      }g d}t        t        t         j                  j
                  ||       y )N)*   r(   r)   )NNNr  )r   r4   r
   r#   r   r   )r   r  rB   s      r   test_choice_nan_probabilitiesz,TestRandomDist.test_choice_nan_probabilities  s-    HHZ j"))"2"2A;r   c                     t        j                  | j                        }|j                  d      }d}t	        ||       y )Nr   s
   Ui+Wf)r   r   rh   bytesr   r   s       r   
test_byteszTestRandomDist.test_bytes  s2      +2.VW%r   c                     d d d d d d d d d	 d
 d fD ]T  }t        j                  | j                        } |g d      }|j                  |       |} |g d      }t	        ||       V y )Nc                 ,    t        j                  g       S Nr   r4   rV   s    r   <lambda>z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rxx| r   c                     | S r%  r:   r'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    q r   c                 f    t        j                  |       j                  t         j                        S r%  )r   asarrayastyper   r'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BGG< r   c                 f    t        j                  |       j                  t         j                        S r%  )r   r+  r,  float32r'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BJJ? r   c                 f    t        j                  |       j                  t         j                        S r%  )r   r+  r,  	complex64r'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BLLA r   c                 R    t        j                  |       j                  t              S r%  )r   r+  r,  r  r'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33F; r   c                 0    | D cg c]  }||f c}S c c}w r%  r:   rV   is     r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    21A2 2s   c                 V    t        j                  | D cg c]  }||g c}      S c c}w r%  )r   r+  r3  s     r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s!    rzz1*=aAq6*=> *=s   &c                 D    t        j                  | | g      j                  S r%  )r   vstackTr'  s    r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    ryy!Q022 r   c                     t        j                  | D cg c]  }||f c}dt        fdt        fg      j                  t         j                        S c c}w Nr  r  )r   r+  r>   r   recarrayr3  s     r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sE    

A+>qQF+>-0#Jc
+C!E!%bkk!2 +>s   Ac                     t        j                  | D cg c]  }||f c}dt        fdt         j                  fg      S c c}w r:  )r   r+  r  r   r3  s     r   r(  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s8    rzz1*=aAq6*=,/=3/*J L *=s   ?)
r(   r)   r0   r1   r2   r3      r   	   r   )
r   r(   r>  r3   r)   r1   r2   r   r=  r0   )r   r   rh   shuffler   )r   convr   alistr   r   s         r   test_shufflezTestRandomDist.test_shuffle  s     , <?A;2>24LM 	0D  $$TYY/C78EKKF9:Gvw/+	0r   c                    t         j                  j                  t        j                  t	        d      d      dz  dz
  d      }t         j                  j                  t        j
                  d      dz  dz
  d      }|j                         }|j                         }t	        d      D ]  }t         j                  j                  |       t        t        |j                  |j                            t        |j                  |j                                   t         j                  j                  |       t        t        |j                  |j                            t        |j                  |j                                    y )N   )r2   r1   r0   r(   r    2   )r   mamasked_valuesreshaper   r   copyr   r?  r   sorteddatamask)r   r  r  a_origb_origr4  s         r   test_shuffle_maskedz"TestRandomDist.test_shuffle_masked  s   EE

59f = AA ErJEE		" 1A 5r:r 	LAIIa qvvqvvg'V[[L0I)JLIIa qvvqvvg'V[[L0I)JL	Lr   r   c                     dddddddd}t        j                  t        d	
      5 } |j                  |       d d d        dd   j                  v sJ y # 1 sw Y   xY w)Nr   r(   r)   r0   r1   r2   r3   )r   r(   r)   r0   r1   r2   r3   z!you are shuffling a 'dict' objectmatchr   )r   r   UserWarningr?  filename)r   r   valuesrecs       r   test_shuffle_untyped_warningz+TestRandomDist.test_shuffle_untyped_warning  sg     1qQ1;\\+9; 	#>AFNN6"	# A///	# 	#s   AAuse_array_likeTFc                     G d dt         j                        }d t        j                  dg      t        j                  d      t        j                  d      t        j                  d      g}t        j                  |t              }|D ch c]  }t        |       c}|r|j                  |      }t        fd|D              sJ |r[t        |t         j                  j                        s7t        j                  t        d	      5   |j                  |       d d d        y  |j                  |       t        fd
|D              sJ y c c}w # 1 sw Y   y xY w)Nc                       e Zd Zy)>TestRandomDist.test_shuffle_no_object_unpacking.<locals>.MyArrN)r7   r8   r9   r:   r   r   MyArrr[    s    r   r\  r0   r   r=  r-   c              3   8   K   | ]  }t        |      v   y wr%  id.0r4  item_idss     r   	<genexpr>zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<genexpr>*  s     22a5H$2   z#Shuffling a one dimensional array.*rQ  c              3   8   K   | ]  }t        |      v   y wr%  r^  r`  s     r   rc  zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<genexpr>3  s     6Qr!u(6rd  )r   ndarrayr4   float64r  r_  r   rU   
isinstancer   	Generatorr   r   rS  r?  )r   r   rX  r\  itemsr  r4  rb  s          @r    test_shuffle_no_object_unpackingz/TestRandomDist.test_shuffle_no_object_unpacking  s   	BJJ 	 "((A3-Abjjm
 hhuF+#()aBqE)((5/C 2c2222*VRYY5H5H"Ik?A $s#$ $ FNN36#6666 *$ $s   EEE c                 <   t        j                  | j                        }t        j                  d      j
                  }|j                  |       t        t        j                  |      g d       t        j                  | j                        }|j                  |       t        t        j                  |      g d       t        j                   j                  | j                        }|j                  |       t        t        j                  |      g d       y )Nr2   )r   r(   r1   r0   r)   )r   r(   r)   r0   r1   )r1   r(   r   r0   r)   )
r   r   rh   r   r   rK  r?  r   r+  default_rng)r   r   r  s      r   test_shuffle_memoryviewz&TestRandomDist.test_shuffle_memoryview5  s       +IIaLARZZ]O4  +ARZZ]O4ii##DII.ARZZ]O4r   c                     t        j                  d      }d|j                  _        t	        j
                  t        d      5  t         j                  j                  |       d d d        y # 1 sw Y   y xY w)Nr0   Fz	read-onlyrQ  )	r   r@   flags	writeabler   r   r#   r   r?  )r   r  s     r   test_shuffle_not_writeablez)TestRandomDist.test_shuffle_not_writeableD  sP    HHQK!]]:[9 	!IIa 	! 	! 	!s    A++A4c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  r  r   ru   gAKč?ghA?g ҇o>gάXf+q?gS1$?g'8zX ?r   r   )r   r   rh   betar   r4   r   r   s       r   	test_betazTestRandomDist.test_betaJ  sh      +"bv.(()+BC)+BC)+BCEF 	"&'2>r   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||       y )NrJ   gv/?r   ru   %   +   r  0   .   -   )r   r   rh   rA   r   r4   r   r   s       r   test_binomialzTestRandomDist.test_binomialS  s]      +c4f5((RHHH& ' 	67+r   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )NrE  r   ru   g+Q]uO@g+Q@gY7`ZqP@ge(fG@gvtR@gEIȋR@   r   )r   r   rh   	chisquarer   r4   r   r   s       r   test_chisquarezTestRandomDist.test_chisquare[  sf      +r/((13GH13GH02FGI J 	"&'2>r   c                    t        j                  | j                        }t        j                  ddg      }|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       y )NI<I@EZC@r   ru   gi{s?gn,	A?g]^?gpDB?gȧ#y?gr?g1U?gѨUC?g^,%?gB?gډOoX;?gM`!O?r   r   )r   r   rh   r   r4   	dirichletr   )r   r   alphar   r   s        r   test_dirichletzTestRandomDist.test_dirichletc  s      +.0DEFu62((13FG13FGI13FG13FGI13FG13FGI	J K 	"&'2>r   c                    t        j                  ddg      }t        t         j                  j	                  |t        j
                  d            j                  d       t        t         j                  j	                  |t        j
                  d            j                  d       t        t         j                  j	                  |t        j
                  d            j                  d       t        t         j                  j	                  |ddg      j                  d       t        t         j                  j	                  |d      j                  d       t        t         j                  j	                  |t        j                  d            j                  d       t        t        t         j                  j                  |t        d             y )Nr  r  r(   rY   r)   rZ   r[   )
r   r4   r   r   r  r\   r]   r
   r"   r^   r_   s     r   test_dirichlet_sizez"TestRandomDist.test_dirichlet_sizeo  s   HH*,@ABRYY((BIIaL9??HRYY((BIIaL9??HRYY((BIIaL9??HRYY((QF3999ERYY((F3999ERYY((BHHV,<=CCYOi!4!4aqBr   c           	         t        j                  ddg      }t        t        t         j                  j
                  j                  |       t        t        t        j                  ddgg       t        t        t        j                  dgdgg       t        t        t        j                  dgdggdgdggg       t        t        t        j                  t        j                  ddgddgg             y )NgHzG?gؗҜr2   r(   )r   r4   r
   r#   r   mtrandr  )r   r  s     r   test_dirichlet_bad_alphaz'TestRandomDist.test_dirichlet_bad_alpha{  s    '8,-j"))"2"2"<"<eD 	j&"2"2aVH=j&"2"2aS1#J?j&"2"2qcA3Z1#s4LMj&"2"2BHHq!fq!f=M4NOr   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Ng8EGr?r   ru   gNU?gbI0?gVU\@g:3@gU?g"qo?r   r   )r   r   rh   exponentialr   r4   r   r   s       r   test_exponentialzTestRandomDist.test_exponential  sf      +f5((02EF02EF02EFH I 	"&'2>r   c                     t        t        j                  j                  d      d       t	        t
        t        j                  j                  d       y Nr   scale       )r   r   r   r  r
   r#   r$   s    r   test_exponential_0z!TestRandomDist.test_exponential_0  s4    RYY***3Q7j"))"7"7sCr   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )N   M   r   ru   g7?g`j?g6"+?gܳ2>?gc>+Y?g_}S?r   r   )r   r   rh   fr   r4   r   r   s       r   test_fzTestRandomDist.test_f  sh      +r2F+((02EF02EF02EFH I 	"&'2>r   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr2   r0   r   ru   gԏGM8@gȌ<@g	":@gv#)@gZQ?@gr[@@   r   )r   r   rh   gammar   r4   r   r   s       r   
test_gammazTestRandomDist.test_gamma  sh      +1af-((13GH13GH13GHJ K 	"&'2>r   c                     t        t        j                  j                  dd      d       t	        t
        t        j                  j                  dd       y )Nr   )r]   r  r  )r   r   r   r  r
   r#   r$   s    r   test_gamma_0zTestRandomDist.test_gamma_0  s3    RYY__1A_6:j"))//CHr   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||       y )	N_c97ݚ?r   ru   r   r=     r2   r  )r   r   rh   	geometricr   r4   r   r   s       r   test_geometriczTestRandomDist.test_geometric  s[      +z7((QFHG% & 	67+r   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr         @r   locr  rv   gؕ?gs0 ?g#0g(xg-KD?gůp`@r   r   )r   r   rh   gumbelr   r4   r   r   s       r   test_gumbelzTestRandomDist.test_gumbel  sh      +
#FC((02EF02FG02FGI J 	"&'2>r   c                     t        t        j                  j                  d      d       t	        t
        t        j                  j                  d       y r  )r   r   r   r  r
   r#   r$   s    r   test_gumbel_0zTestRandomDist.test_gumbel_0  4    RYY%%A%.2j"))"2"2#>r   c                    t        j                  | j                        }|j                  dddd      }t	        j
                  ddgddgddgg      }t        ||       |j                  dddd	      }t	        j
                  g d
      }t        ||       |j                  dddd	      }t	        j
                  g d      }t        ||       |j                  dddd	      }t	        j
                  g d      }t        ||       |j                  dddd	      }t	        j
                  g d      }t        ||       y )Nr   r2   r  r   ru   r>  r   r0   r1   )r0   r0   r0   r0   r   r  )r  r  r  r  )r   r   r   r   )r   r   rh   hypergeometricr   r4   r   r   s       r   test_hypergeometricz"TestRandomDist.test_hypergeometric  s+     +##B2F#;((RHHF$ % 	67+ ##Aq!!#4((<(67+##B2A#6((+,67+ ##Aq!!#4((<(67+##Ar2A#6((<(67+r   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  r  r   r  g bO?g¸?gpJm	@g{K*t	@g:^w-gY~o?r   r   )r   r   rh   laplacer   r4   r   r   s       r   test_laplacezTestRandomDist.test_laplace  sh      +3VD((02EF02EF13FGI J 	"&'2>r   c                     t        t        j                  j                  d      d       t	        t
        t        j                  j                  d       y r  )r   r   r   r  r
   r#   r$   s    r   test_laplace_0zTestRandomDist.test_laplace_0  s4    RYY&&Q&/3j"))"3"33?r   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  r  r   r  g#K-z?gJ?g92@gر[@g#+^˿g-@r   r   )r   r   rh   logisticr   r4   r   r   s       r   test_logisticzTestRandomDist.test_logistic  sh      +*CfE((02DE02EF13FGI J 	"&'2>r   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  r  r   )meansigmarv   gɁ0@go,+4FB@g)ʭ6@g5?gnxNnP@g)U@r~  r   )r   r   rh   	lognormalr   r4   r   r   s       r   test_lognormalzTestRandomDist.test_lognormal  sh      +JcG((13GH13FG13GHJ K 	"&'2>r   c                     t        t        j                  j                  d      d       t	        t
        t        j                  j                  d       y )Nr   )r  r(   r  )r   r   r   r  r
   r#   r$   s    r   test_lognormal_0zTestRandomDist.test_lognormal_0  s4    RYY((q(115j"))"5"5SAr   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||       y )Ngƀ@?r   )rB   rv   r)   r3   r  r0   )r   r   rh   	logseriesr   r4   r   r   s       r   test_logserieszTestRandomDist.test_logseries  s[      +&9((QFGF$ % 	67+r   c                     t        j                  | j                        }|j                  ddgdz  d      }t	        j
                  g dg dgg dg d	gg d
g dgg      }t        ||       y )NrD  UUUUUU?r3   r   ru   )r1   r0   r2   r1   r)   r)   )r2   r)   r   r)   r)   r(   )r0   r1   r0   r3   r   r1   )r)   r(   r1   r0   r3   r1   )r1   r1   r)   r2   r)   r0   )r1   r0   r1   r)   r0   r1   )r   r   rh   rN   r   r4   r   r   s       r   test_multinomialzTestRandomDist.test_multinomial  sp      +fX\?((//1//1//1	2 3 	67+r   c                 &   t        j                  | j                        }d}ddgddgg}d}|j                  |||      }t	        j
                  ddgddggd	d
gddggddgddggg      }t        ||d       |j                  ||      }t	        j
                  ddg      }t        ||d       ddg}ddgddgg}t        j                  t        |j                  ||       t        |j                  ||d       t        t        |j                  ||d       t	        j
                  ddgddggt        j                        }t        j                         5  t        j                   d       |j                  ||       d d d        y # 1 sw Y   y xY w)N)r  r   r(   r   r   g4Vj?gy'@gI1?gSB#@ge<@g 4W(@g6R¿?g9r
v"@gс?g{#@g4xg"f"@r   r   gN}O6?gYMW"@r)   ignore)check_validraiser  r-   r   )r   r   rh   multivariate_normalr   r4   r   r   r   RuntimeWarningr	   r
   r#   r.  r   r   r   )r   r   r  covrv   r   r   s          r   test_multivariate_normalz'TestRandomDist.test_multivariate_normal  s     +1v1v((sD9((/1BC/1BCE/1CD/1BCE/1BC02CDF	G H 	"&'2> ((s3((-/?@A!&'2> 1v1v1v^S%<%<dCH 	322D#'/	1 	j#"9"94")	+ hhC3(+2::>$$& 	/!!'*##D#.	/ 	/ 	/s   (FFc                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||       y )NrJ   g|Pk?r   )nrB   rv   iP  iI  i|  ic  i  i  )r   r   rh   r   r   r4   r   r   s       r   r   z%TestRandomDist.test_negative_binomial.  s`      +&&V&D((S#J #J #J( ) 	67+r   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgdd	gg      }t        ||d
       |j                  ddd      }t	        j
                  ddgddgddgg      }t        ||d
       t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgddgg      }t        ||d
       y )Nr2   r   )dfnoncrv   gG7@g! ܴ*@g1}z9?@g+驸0@g26E_r#@gI!1@r  r   r?   rK   g?gTD?g?T?g+qnl?g~|D?g밬?r   g{01#@gprs'@g~;$@g"dI@g*@g}',@)r   r   rh   noncentral_chisquarer   r4   r   r   s       r   test_noncentral_chisquarez(TestRandomDist.test_noncentral_chisquare6  s)     +))QQV)D((13GH13GH02FGI J 	"&'2>))Rbv)F((03FG03FG.1DEG H 	"&'2>  +))QQV)D((.0BC/1BC/1CDF G 	"&'2>r   c                     t        j                  | j                        }|j                  dddd      }t	        j
                  ddgdd	gd
dgg      }t        ||d       y )Nr2   r)   r(   r   )dfnumdfdenr  rv   g^~?g/+c?g".@g@g7?gE?r  r   )r   r   rh   noncentral_fr   r4   r   r   s       r   test_noncentral_fz TestRandomDist.test_noncentral_fK  sr      +!!-3 " 5((02EF02EF02DEG H 	"&'2>r   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  r  r   r  g&&n@gOG_@g~w@gtw]տgm&5@g$>@r   r   )r   r   rh   normalr   r4   r   r   s       r   test_normalzTestRandomDist.test_normalT  sh      +
#FC((02EF.0DE02EFH I 	"&'2>r   c                     t        t        j                  j                  d      d       t	        t
        t        j                  j                  d       y r  )r   r   r   r  r
   r#   r$   s    r   test_normal_0zTestRandomDist.test_normal_0\  r  r   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        j                  j                  ||d
       y )Nr  r   r  rv   gWI@gԨy@gy]0Ag1~\Aga@gY
7A   )nulp)r   r   rh   paretor   r4   testingassert_array_almost_equal_nulpr   s       r   test_paretozTestRandomDist.test_pareto`  ss      +jv6(()+BC)+BC)+BCEF 	

11&'1Kr   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||       y )Nr  r   )lamrv   r   r(   )r   r   rh   poissonr   r4   r   r   s       r   test_poissonzTestRandomDist.test_poissono  s[      +&9((QFFF$ % 	67+r   c                    t        j                  d      j                  }d}t        t        t         j
                  j                  |       t        t        t         j
                  j                  |gdz         t        t        t         j
                  j                  |       t        t        t         j
                  j                  |gdz         y )Nr   r    r   )r   r   r   r
   r#   r   r  )r   lambiglamnegs      r   test_poisson_exceptionsz&TestRandomDist.test_poisson_exceptionsw  s~    #""j"))"3"3V<j"))"3"3fX]Cj"))"3"3V<j"))"3"3fX]Cr   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr  r   r  g;'?gܴw*?g5?gFG?g D]?g$`?r   r   )r   r   rh   powerr   r4   r   r   s       r   
test_powerzTestRandomDist.test_power  sf      +Zf5((02EF02EF02EFH I 	"&'2>r   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr   r   )r  rv   g"u+@gN$MB*@g7v8B4@g55@ge&@g~ӣZ1@r  r   )r   r   rh   rayleighr   r4   r   r   s       r   test_rayleighzTestRandomDist.test_rayleigh  sf      +BV4((02DE13GH13GHJ K 	"&'2>r   c                     t        t        j                  j                  d      d       t	        t
        t        j                  j                  d       y r  )r   r   r   r  r
   r#   r$   s    r   test_rayleigh_0zTestRandomDist.test_rayleigh_0  s4    RYY''a'0!4j"))"4"4C@r   c                     t        j                  | j                        }|j                  d      }t	        j
                  ddgddgddgg      }t        ||d	
       y )Nr   ru   gMoDL?g6([9grF=?gM'	- gVgVA:Qy?r   r   )r   r   rh   standard_cauchyr   r4   r   r   s       r   test_standard_cauchyz#TestRandomDist.test_standard_cauchy  sg      +$$&$1((02FG02FG13FGI J 	"&'2>r   c                     t        j                  | j                        }|j                  d      }t	        j
                  ddgddgddgg      }t        ||d	
       y )Nr   ru   g܁?gc!z?g&N"@gNI@gF>?g~ME?r   r   )r   r   rh   standard_exponentialr   r4   r   r   s       r   test_standard_exponentialz(TestRandomDist.test_standard_exponential  sg      +))v)6((02EF/1DE/1DEG H 	"&'2>r   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr0   r   )r]   rv   g)@gľ@gd],q@gPk{@g9B#1@gv @r  r   )r   r   rh   standard_gammar   r4   r   r   s       r   test_standard_gammaz"TestRandomDist.test_standard_gamma  si      +##!&#9((02EF02EF02CDF G 	"&'2>r   c                     t        t        j                  j                  d      d       t	        t
        t        j                  j                  d       y )Nr   )r]   r  )r   r   r   r  r
   r#   r$   s    r   test_standard_gamma_0z$TestRandomDist.test_standard_gamma_0  s4    RYY--A-6:j"))":":#Fr   c                     t        j                  | j                        }|j                  d      }t	        j
                  ddgddgddgg      }t        ||d	
       y )Nr   ru   r   r   r   r   r   r   r   r   )r   r   rh   rx   r   r4   r   r   s       r   test_standard_normalz#TestRandomDist.test_standard_normal  sg      +$$&$1((02EF.0CD.0CDF G 	"&'2>r   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr   r   )r  rv   g\VH?ghU%gH$M?gLgVqdzǿg㖀?r   r   )r   r   rh   
standard_tr   r4   r   r   s       r   test_standard_tzTestRandomDist.test_standard_t  sf      +2F3((02FG02FG13FGI J 	"&'2>r   c                     t        j                  | j                        }|j                  dddd      }t	        j
                  ddgdd	gd
dgg      }t        ||d       y )Ng{Gz@g(\u$@gףp=
W4@r   )leftmoderightrv   g:}\)@ghرTj(@gǨL30@g6ڜA0@g6sh&@g<,@r  r   )r   r   rh   
triangularr   r4   r   r   s       r   test_triangularzTestRandomDist.test_triangular  sp      +TU+1   3((13FG13GH13FGI J 	"&'2>r   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )NGz?gGz%@r   )lowhighrv   g>#H@gu@g#@g}d]#@gN@gw)* @r   r   )r   r   rh   uniformr   r4   r   r   s       r   test_uniformzTestRandomDist.test_uniform  sh      +E?((02EF02EF02EFH I 	"&'2>r   c                 T   t        j                  d      j                  }t        j                  d      j                  }t         j                  j
                  }t        t        |t         j                   d       t        t        |dt         j                         t        t        |||       t        t        |t         j                   gdg       t        t        |dgt         j                  g       t         j                  j                  t        j                  |d      |dz         y )Nr^   r   r(   g ؅W4vC)r  r  )
r   finfor   r   r   r  r
   OverflowErrorinf	nextafter)r   fminfmaxfuncs       r   test_uniform_range_boundsz(TestRandomDist.test_uniform_range_bounds  s    xx $$xx $$yy  mTBFF7A6mTABFF;mTDD9mTRVVG9qc:mTA39
 			bll43$+Fr   c                     G d dt         j                        }t        j                  d      j                  |      }t	        t
        t         j                  j                  ||        G d dt         j                        }t        j                  d      j                  |      }t	        t
        t         j                  j                  |dd       y )Nc                       e Zd Zd Zy)GTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloatc                     t         r%  r"   r$   s    r   	__float__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__      r   N)r7   r8   r9   r!  r:   r   r   ThrowingFloatr    s     r   r#  g      ?c                       e Zd Zd ZeZy)ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                     t         r%  r   r$   s    r   __int__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__  r"  r   N)r7   r8   r9   r'  	__index__r:   r   r   ThrowingIntegerr%    s       Ir   r)  r(   )	r   rf  r4   r   r
   r"   r   r  r  )r   r#  throwing_floatr)  throwing_ints        r   !test_scalar_exception_propagationz0TestRandomDist.test_scalar_exception_propagation  s    	 BJJ 	  #++M:i!2!2N$	&	 bjj 	  xx{''8i!9!9<ANr   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  p=
ף?r   mukapparv   gLZI@g'N"@gkr?gk=m@gډ?g^=\?r   r   )r   r   rh   vonmisesr   r4   r   r   s       r   test_vonmiseszTestRandomDist.test_vonmises  sh      +T?((02EF02EF02EFH I 	"&'2>r   c                    t         j                  j                  | j                         t         j                  j                  ddd      }t         j                  j                  t        j                  |      j                                y )NrQ   gg5_PG>i@B r/  )r   r   rh   r2  r  r   isfiniterU   )r   rs     r   test_vonmises_smallz"TestRandomDist.test_vonmises_small   sT    
		tyy!II"F?


2;;q>--/0r   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  r.  r   )r  r  rv   gZ@g-g@g8
m?gVP"?g`V?gx^&3?r  r   )r   r   rh   waldr   r4   r   r   s       r   	test_waldzTestRandomDist.test_wald  sh      +t4f=((02EF02EF02EFH I 	"&'2>r   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr  r   r  g@6?g]A?g(1ڥR?gU?g2_u?g^}-Q?r   r   )r   r   rh   weibullr   r4   r   r   s       r   test_weibullzTestRandomDist.test_weibull  sf      +t&1((02EF02EF02EFH I 	"&'2>r   c                 &   t         j                  j                  | j                         t        t         j                  j	                  dd      t        j
                  d             t        t        t         j                  j                  d       y )Nr   r  r  r  )r  )r   r   rh   r   r<  r@   r
   r#   r$   s    r   test_weibull_0zTestRandomDist.test_weibull_0  sR    
		tyy!RYY&&&4bhhrlCj"))"3"3s;r   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||       y )	Nr  r   r  B      r(   r0   r~  )r   r   rh   zipfr   r4   r   r   s       r   	test_zipfzTestRandomDist.test_zipf  s[      +Dv.((RHFG% & 	67+r   N)Sr7   r8   r9   rh   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r"  rB  rO  r   markparametrizer   r   r   rm  rW  rk  rn  rr  ru  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r,  r3  r7  r:  r=  r?  rD  r:   r   r   r   r   4  s3    D??,,&@?,,,,,2&,<\<
&04L [[XYY		--/1F1F1HIK0K0 [[X	BII))+RYY-B-B-DEG[[-e}=7 >G705!?,?
?
C	P?D??I,??,4?@??B,	,%/N,?*???L,D??A???G????G O0?1??<
,r   r   c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!y )!TestBroadcasti[c                 F   dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        j                  | j                        }|j                  ||dz        }t        ||d       y )Nr   r(   gl?g_x?g=*BN?r0   r  r   )r   r4   r   r   rh   r  r   )r   r  r  r   r   r   s         r   r  zTestBroadcast.test_uniform,  s    cs(( 1 2   +S1Wd+!&'2>  +S$(+!&'2>r   c                    dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         y )Nr   r(   r    )g-r@gYl@g-`w?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   r   r  r  	bad_scaler   r   r   s          r   r  zTestBroadcast.test_normal;  s    cD	(( 0 1   +C!GU+!&'2>j#**cAgyA  +C+!&'2>j#**c9q=Ar   c                 J   dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )	Nr(   r)   r    r*   )gnQVf?gVKB?gv`k?r0   r  r   )	r   r4   r   r   rh   rt  r   r
   r#   )r   r  r  bad_abad_br   r   r   s           r   ru  zTestBroadcast.test_betaM  s    CC(( 1 2   +!a%#!&'2>j#((EAIq9j#((AE59  +!QU#!&'2>j#((E1q59j#((Auqy9r   c                     dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y Nr(   r    )g.UgZ?gi Prq?gEK?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   r   r  rM  r   r   r   s         r   r  zTestBroadcast.test_exponentialb  sk    D	(( 1 2   ++!&'2>j#//9q=Ar   c                     dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y rR  )	r   r4   r   r   rh   r  r   r
   r#   )r   r]   	bad_shaper   r   r   s         r   r  z!TestBroadcast.test_standard_gamman  so    D	(( 1 2   +##EAI.!&'2>j#"4"4i!mDr   c                 J   dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )	Nr(   r)   r    r*   )g.UgZ?gi Prq?gEK?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   )r   r]   r  rU  rM  r   r   r   s           r   r  zTestBroadcast.test_gammaz  s    D	D	(( 0 1   +519e,!&'2>j#))Y]EBj#))UQY	B  +5%!),!&'2>j#))Y	Bj#))UIMBr   c                 J   dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )	Nr(   r)   r    r*   )gbyʜ?go?gT7@r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   )r   r  r  	bad_dfnum	bad_dfdenr   r   r   s           r   r  zTestBroadcast.test_f  s    D	D	(( 0 1   +uqy%(!&'2>j#%%Q>j#%%I>  +ueai(!&'2>j#%%EAI>j#%%	A>r   c                 (   dg}dg}dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  ||      }	t        |	|d	       t        t        |j
                  |dz  ||       t        t        |j
                  |dz  ||       t        t        |j
                  |dz  ||       t        j                  | j                        }|j                  ||dz  |      }	t        |	|d	       t        t        |j
                  ||dz  |       t        t        |j
                  ||dz  |       t        t        |j
                  ||dz  |       t        j                  | j                        }|j                  |||dz        }	t        |	|d	       t        t        |j
                  |||dz         t        t        |j
                  |||dz         t        t        |j
                  |||dz         y )
Nr)   r0   r1   r   r    r*   )gr^G"@g/*@gц!@r  r   )	r   r4   r   r   rh   r  r   r
   r#   )
r   r  r  r  rX  rY  bad_noncr   r   r   s
             r   r  zTestBroadcast.test_noncentral_f  s   sC	D	4(( 0 1   +!!%!)UD9!&'2>j#"2"2IM5$Oj#"2"2EAIy$Oj#"2"2EAIuhO  +!!%D9!&'2>j#"2"2Iuqy$Oj#"2"2E9q=$Oj#"2"2E519hO  +!!%q9!&'2>j#"2"2IudQhOj#"2"2E9dQhOj#"2"2E5(Q,Or   c                     t        j                  | j                        }t        j                  ddg      }|j                  dddd      }t        ||d       y )Ngaz@gn4M;%?r  r)   ru   r  r   )r   r   rh   r   r4   r  r   )r   r   r   r   s       r   test_noncentral_f_small_dfz(TestBroadcast.test_noncentral_f_small_df  sP      +((-/@AB!!#sAA!6!&'2>r   c                     dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y )Nr(   r    )g~}N??g$F?g'rS?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   r   r  bad_dfr   r   r   s         r   r  zTestBroadcast.test_chisquare  sk    S(( 0 1   +rAv&!&'2>j#--!<r   c                 J   dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )	Nr(   r)   r    r*   )g w "@g2WR@gRY@r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   )r   r  r  r`  r[  r   r   r   s           r   r  z'TestBroadcast.test_noncentral_chisquare  s    Ss4(( 0 1   +))"q&$7!&'2>j#":":FQJMj#":":BFHM  +))"dQh7!&'2>j#":":FD1HMj#":":B1Mr   c                     dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y )Nr(   r    )gT@g~Fl@gƚtp?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   r_  s         r   r  zTestBroadcast.test_standard_t  sk    S(( 0 1   +Q'!&'2>j#..&1*=r   c                    dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         y )Nr)   r(   r    )gW!@gOBg}?r0   r  r   )	r   r4   r   r   rh   r2  r   r
   r#   )r   r0  r1  	bad_kappar   r   r   s          r   r3  zTestBroadcast.test_vonmises  s    SD	(( 1 2   +b1fe,!&'2>j#,,Q	B  +b%!),!&'2>j#,,IMBr   c                     dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y )Nr(   r    )g&8??geFX?gՋː?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   r   r  rO  r   r   r   s         r   r  zTestBroadcast.test_pareto	  sk    C(( 0 1   +AE"!&'2>j#**eai8r   c                     dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y rR  )	r   r4   r   r   rh   r<  r   r
   r#   rf  s         r   r=  zTestBroadcast.test_weibull  sk    C(( 1 2   +QU#!&'2>j#++uqy9r   c                     dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y )Nr(   r    rJ  r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   rf  s         r   r  zTestBroadcast.test_power!  sk    C(( 1 2   +1q5!!&'2>j#))UQY7r   c                    dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         y )Nr   r(   r    )g:BKc?g3k?g~q?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   rL  s          r   r  zTestBroadcast.test_laplace-  s    cD	(( 2 3   +S1We,!&'2>j#++sQw	B  +S%!),!&'2>j#++sIMBr   c                    dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         y )Nr   r(   r    )g'Zy?gdSO=?g3L1?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   rL  s          r   r  zTestBroadcast.test_gumbel?  s    cD	(( 1 2   +C!GU+!&'2>j#**cAgyA  +C+!&'2>j#**c9q=Ar   c                    dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         y )Nr   r(   r    )gy?gJR?g
~&?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   rL  s          r   r  zTestBroadcast.test_logisticQ  s    cD	(( 2 3   +cAgu-!&'2>j#,,aC  +c519-!&'2>j#,,Y]Cr   c                    dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         y )Nr   r(   r    )gH"@gܮ @gvv	:@r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   )r   r  r  	bad_sigmar   r   r   s          r   r  zTestBroadcast.test_lognormalc  s    sD	(( 0 1   +tax/!&'2>j#--9E  +tUQY/!&'2>j#--y1}Er   c                     dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y )Nr(   r    )gݱlo?g/ӂ?gz~R?r0   r  r   )	r   r4   r   r   rh   r  r   r
   r#   rS  s         r   r  zTestBroadcast.test_rayleighu  sk    D	(( 0 1   +eai(!&'2>j#,,	A>r   c                    dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        t        |j
                  ||dz         t        t        |j
                  d	d       t        t        |j
                  dd	       y )
Nr?   r(   r   r*   )g@m e?g`I߿?g|2?r0   r  r   rQ   )	r   r4   r   r   rh   r9  r   r
   r#   )r   r  r  bad_meanrM  r   r   r   s           r   r:  zTestBroadcast.test_wald  s   u3D	(( 0 1   +$(E*!&'2>j#((HqL%@j#((D1Hi@  +$	*!&'2>j#((Heai@j#((D)a-@j#((C3j#((C5r   c                 2   dg}dg}dg}dg}dg}|dz  \  }}t        j                  g d      }t        j                  | j                        }	|	j                  |dz  ||      }
t        |
|d       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        j                  | j                        }	|	j                  ||dz  |      }
t        |
|d       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        j                  | j                        }	|	j                  |||dz        }
t        |
|d       t        t        |	j
                  |||dz         t        t        |	j
                  |||dz         t        t        |	j
                  |||dz         y )Nr(   r0   r)   r1   )g,P;bD @g%G @g,~S @r  r   )	r   r4   r   r   rh   r  r   r
   r#   )r   r  r
  r	  bad_left_onebad_mode_onebad_left_twobad_mode_twor   r   r   s              r   r  zTestBroadcast.test_triangular  s   ssss%*QY"l(( 0 1   +q$6!&'2>j#..,2BD%Pj#..$(L%Pj#..,2BL	   +dQh6!&'2>j#..,q%Pj#..$q8H%Pj#..,q@P	   +dEAI6!&'2>j#..,eaiPj#..$eaiPj#..,ai	!r   c                    dg}dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||       t        t        |j
                  ||dz         t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )Nr(   r?   r          ?r(   r(   r(   r0   )	r   r4   r   r   rh   rA   r   r
   r#   	r   r  rB   bad_n	bad_p_one	bad_p_twor   r   r   s	            r   r|  zTestBroadcast.test_binomial  s   CED	E	((9%  +a!eQ'67+j#,,	1=j#,,AyAj#,,AyA  +aQ'67+j#,,q1u=j#,,9q=Aj#,,9q=Ar   c                    dg}dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||       t        t        |j
                  ||dz         t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )Nr(   r?   r    rw  )r(   r   r(   r0   )	r   r4   r   r   rh   r   r   r
   r#   ry  s	            r   r   z$TestBroadcast.test_negative_binomial  s+   CED	E	((9%  +&&q1ua067+j#"7"7AFj#"7"7Q	Jj#"7"7Q	J  +&&q!a%067+j#"7"7AFj#"7"7IMJj#"7"7IMJr   c                    t         j                  j                         j                  }dg}dg}|dz  g}t        j                  g d      }t        j                  | j
                        }|j                  |dz        }t        ||       t        t        |j                  |dz         t        t        |j                  |dz         y )Nr(   r    r)   )r(   r(   r   r0   )
r   r   r   _poisson_lam_maxr4   rh   r  r   r
   r#   )r   max_lamr  bad_lam_onebad_lam_twor   r   r   s           r   r  zTestBroadcast.test_poisson  s    ))'')::cd{m((9%  +S1W%67+j#++{Q?j#++{Q?r   c                    dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||       t        t        |j
                  |dz         t        j                  d      5  t        t        |j
                  t         j                         t        t        |j
                  ddt         j                  g       d d d        y # 1 sw Y   y xY w)Nr)   r   )r)   r)   r(   r0   r  )invalid)r   r4   r   r   rh   rC  r   r
   r#   errstaterE   rf  s         r   rD  zTestBroadcast.test_zipf  s    C((9%  +!a%67+j#((EAI6[[* 	@*chh7*chhArvv?	@ 	@ 	@s   AC00C9c                 :   dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||       t        t        |j
                  |dz         t        t        |j
                  |dz         y )Nr?   r    rw  rZ   r0   )	r   r4   r   r   rh   r  r   r
   r#   r   rB   r{  r|  r   r   r   s          r   r  zTestBroadcast.test_geometric  s}    ED	E	((9%  +q1u%67+j#--Q?j#--Q?r   c                    dg}dg}dg}dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }	|	j                  |dz  ||      }
t        |
|       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        j                  | j                        }	|	j                  ||dz  |      }
t        |
|       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        j                  | j                        }	|	j                  |||dz        }
t        |
|       t        t        |	j
                  |||dz         t        t        |	j
                  |||dz         t        t        |	j
                  |||dz         t        t        |	j
                  |||dz         y )	Nr(   r)   r    r*   r   r1   rx  r0   )	r   r4   r   r   rh   r  r   r
   r#   )r   ngoodnbadnsample	bad_ngoodbad_nbadbad_nsample_onebad_nsample_twor   r   r   s              r   r  z!TestBroadcast.test_hypergeometric  s!   s#D	4##((9%  +##EAItW=67+j#"4"4i!mT7Sj#"4"4eai7Sj#"4"4eaiWj#"4"4eaiW  +##E4!8W=67+j#"4"4i7Sj#"4"4eX\7Sj#"4"4eTAXWj#"4"4eTAXW  +##E41=67+j#"4"4iwQR{Sj#"4"4eXwQR{Sj#"4"4eT?UVCVWj#"4"4eT?UVCVWr   c                 :   dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||       t        t        |j
                  |dz         t        t        |j
                  |dz         y )Nr?   r)   r    rx  r0   )	r   r4   r   r   rh   r  r   r
   r#   r  s          r   r  zTestBroadcast.test_logseries0  s}    EC	D	((9%  +q1u%67+j#--Q?j#--Q?r   N)"r7   r8   r9   rh   r  r  ru  r  r  r  r  r  r]  r  r  r  r3  r  r=  r  r  r  r  r  r  r:  r  r|  r   r  rD  r  r  r  r:   r   r   rH  rH  $  s     D
?B$:*
B
EC*?*P@?
=N*
>C$
9
:
8C$B$D$F$
?6.!!FB,K,@@
@ XD
@r   rH  zcan't start thread)reasonc                   4    e Zd Z ed      Zd Zd Zd Zd Zy)
TestThreadr1   c           
      ,   ddl m} t        j                  t	        | j
                        f|z         }t        j                  t	        | j
                        f|z         }t        | j
                  |      D cg c].  \  }} ||t        j                  j                  |      |f      0 }}}|D 	cg c]  }	|	j                          c}	 |D 	cg c]  }	|	j                          c}	 t        | j
                  |      D ]+  \  }} |t        j                  j                  |      |       - t        j                         j                  j                  dk(  r t        j                  dk(  rt!        ||       y t#        ||       y c c}}w c c}	w c c}	w )Nr   )Thread)targetargsr1   win32)	threadingr  r   r  lenseedszipr   r   startjoinintpr.   itemsizer   platformr   r   )
r   functionszr  out1out2r   otrV   s
             r   check_functionzTestThread.check_functionB  s/   $xxTZZ*R/0xxTZZ*R/0 TZZ.0A 8299+@+@+CQ*GH 0 0qa 

D) 	2DAqRYY**1-q1	2 779??##q(S\\W-D%dD1tT*0s   83F2FFc                 0    d }| j                  |d       y )Nc                 .    | j                  d      |d<   y )N'  ru   .)r  rj   outs     r   
gen_randomz*TestThread.test_normal.<locals>.gen_randomY  s    |||/CHr   )r  r  r  r   r  s     r   r  zTestThread.test_normalX  s    	0J84r   c                 0    d }| j                  |d       y )Nc                 T    | j                  t        j                  d            |d<   y )NrJ   r   r  .)r  r   onesr  s     r   r  z'TestThread.test_exp.<locals>.gen_random^  s"    ((rww{/C(DCHr   r  r  r  r  s     r   test_expzTestThread.test_exp]  s    	EJ;7r   c                 0    d }| j                  |d       y )Nc                 :    | j                  ddgdz  d      |d<   y )Nr   r  r3   r  ru   .)rN   r  s     r   r  z/TestThread.test_multinomial.<locals>.gen_randomc  s#    ((fX\(FCHr   )r  r3   r  r  r  s     r   r  zTestThread.test_multinomialb  s    	GJ:6r   N)	r7   r8   r9   r   r  r  r  r  r  r:   r   r   r  r  =  s!     !HE+,5
8
7r   r  c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestSingleEltArrayInputc                     t        j                  dg      t        j                  dg      t        j                  dg      dfS )Nr)   r0   r1   )r(   r&  r$   s    r   _create_arraysz&TestSingleEltArrayInput._create_arraysj  s/    xx}bhhsmRXXqc]D@@r   c                 ~   | j                         \  }}}}t        j                  j                  t        j                  j                  t        j                  j
                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  f}t        j                  j                  t        j                  j                  f}|D ]A  }||v r |t        j                  dg            }n ||      }t!        |j"                  |       C y r   )r  r   r   r  r  r  r  r  r<  r  r  r  rC  r  r  r4   r   r]   )r   argOner   tgtShapefuncs	probfuncsr  r  s           r   test_one_arg_funcsz*TestSingleEltArrayInput.test_one_arg_funcsm  s   !%!4!4!61h&&		(@(@$$bii&:&:!!299#4#4"))"4"4""BIINN$$bii&9&9; YY(("))*=*=>	 	.Dy 288SE?+ 6lH-	.r   c                 d   | j                         \  }}}}t        j                  j                  t        j                  j                  t        j                  j
                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                  t        j                  j                   f}t        j                  j                  t        j                  j                   f}|D ]  }||v rt        j"                  dg      }n|} |||      }t%        |j&                  |        ||d   |      }t%        |j&                  |        |||d         }t%        |j&                  |        y )Nr?   r   )r  r   r   r  r  rt  r  r  r  r2  r  r  r  r  r9  rA   r   r4   r   r]   )	r   r  argTwor   r  r  r  r  r  s	            r   test_two_arg_funcsz*TestSingleEltArrayInput.test_two_arg_funcs  sk   &*&9&9&;#8""BII$4$4bii<<##RYY%6%6!!299#5#5$$biinn##RYY%@%@B YY'')D)DE	 	.Dy 3%  vv&CH-vay&)CH-vvay)CH-	.r   c           	         | j                         \  }}}}t        t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  g	}t        j                  j                  }t        j                  dg      }t        j                  dg      }|D ]k  } ||||      }t        |j                  |        ||d   ||      }t        |j                  |        |||d   |      }t        |j                  |       m y )Nr(   r   r-   )r  r   r   r   r   r   r   r   r\   r5   r   r   r   r4   r   r]   )	r   r   r  r   r  r  r  r   r  s	            r   r   z$TestSingleEltArrayInput.test_randint  s     //11arww"((BII299bhh		;yy  xx}hhsm 	.BsD+CH-s1vt2.CH-sDG2.CH-	.r   c                    | j                         \  }}}}t        j                  j                  t        j                  j                  t        j                  j
                  g}|D ]h  } ||||      }t        |j                  |        ||d   ||      }t        |j                  |        |||d   |      }t        |j                  |       j y )Nr   )r  r   r   r  r  r  r   r]   )r   r  r  argThreer  r  r  r  s           r   test_three_arg_funcsz,TestSingleEltArrayInput.test_three_arg_funcs  s    -1-@-@-B*('')=)=))+  	.Dvvx0CH-vay&(3CH-vvay(3CH-	.r   N)r7   r8   r9   r  r  r  r   r  r:   r   r   r  r  i  s    A.(.8.$.r   r  )r   r   r   numpyr   r   numpy.testingr   r   r   r   r   r	   r
   r   r<   rH   rd   r   r   rH  rE  skipifr  r  r:   r   r   <module>r     s    
      $F $FN> >Y YD8 8vK+ K+\m, m,`V@ V@r G$89'7 '7 :'7VS. S.r   