
    Bwg                    P   d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZ d dl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.                  j1                  ed       G d d             Z G d d      Zy)    N)	assert_assert_raisesassert_equalassert_warnsassert_no_warningsassert_array_equalassert_array_almost_equalsuppress_warningsIS_WASM)randomc                   *    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     U/var/www/horilla/myenv/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_shape-   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-   r8    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   rB   ps      r   test_n_zerozTestBinomial.test_n_zero7   sR     %( 	AAFOOAq)Q./vua8%@	Ar   c                 `    t        t        t        j                  dt        j
                         y )Nr*   )r   r%   r   rC   r   nanr&   s    r   test_p_is_nanzTestBinomial.test_p_is_nan@   s    j&//1bff=r   N)r9   r:   r;   rE   rH   r<   r   r   r>   r>   6   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_basicF   s    3c
+r   c                 4    t        j                  dg d       y )NrL   )rM   rN           rS   rS   rO   r&   s    r   test_zero_probabilityz%TestMultinomial.test_zero_probabilityI   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"   r4   )r   r   r   r   all)r   xs     r   test_int_negative_intervalz*TestMultinomial.test_int_negative_intervalL   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 )NrA   r*   r*   r+   r+   r+   r+   r+   r+   r+   )
r   r   r   rP   uint32shaper6   r   r$   floatr   rD   s     r   	test_sizezTestMultinomial.test_sizeR   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   rP   r6   r&   s    r   test_multidimensional_pvalsz+TestMultinomial.test_multidimensional_pvals`   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)r9   r:   r;   rQ   rT   rY   rb   rd   r<   r   r   rJ   rJ   E   s    ,;  Yr   rJ   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestSetStatec                     d| _         t        j                  | j                         | _        | j                  j	                         | _        y NiI)seedr   r   prng	get_statestater&   s    r   setup_methodzTestSetState.setup_methodh   s3    	&&tyy1	YY((*
r   c                     | j                   j                  d      }| j                   j                  | j                         | j                   j                  d      }t	        t        j                  ||k(               y )N   )rj   tomaxint	set_staterl   r   r   rW   r   oldnews      r   rQ   zTestSetState.test_basicm   sU    ii  $		DJJ'ii  $scz"#r   c                     | j                   j                  d      }| j                   j                  | j                         | j                   j                  d      }t	        t        j                  ||k(               y Nr2   size)rj   standard_normalrq   rl   r   r   rW   rr   s      r   test_gaussian_resetz TestSetState.test_gaussian_resets   s[    ii''Q'/		DJJ'ii''Q'/scz"#r   c                 T   | j                   j                          | j                   j                         }| j                   j                  d      }| j                   j                  |       | j                   j                  d      }t	        t        j                  ||k(               y rv   )rj   ry   rk   rq   r   r   rW   )r   rl   rs   rt   s       r    test_gaussian_reset_in_media_resz-TestSetState.test_gaussian_reset_in_media_resz   s{     			!!#		##%ii''Q'/		E"ii''Q'/scz"#r   c                    | j                   d d }| j                  j                  d      }| j                  j                  |       | j                  j                  d      }| j                  j                  | j                          | j                  j                  d      }t	        t        j                  ||k(               t	        t        j                  ||k(               y )Nr,   ro   rw   )rl   rj   ry   rq   r   r   rW   )r   	old_statex1x2x3s        r   test_backwards_compatibilityz)TestSetState.test_backwards_compatibility   s     JJsO	YY&&B&/		I&YY&&B&/		DJJ'YY&&B&/rRx !rRx !r   c                 <    | j                   j                  dd       y NrA   )rj   negative_binomialr&   s    r   test_negative_binomialz#TestSetState.test_negative_binomial   s     			##C-r   c                     t        j                  t              5  | j                  j	                  d       d d d        y # 1 sw Y   y xY w)Nr<   )pytestraises
IndexErrorrj   rq   r&   s    r   test_set_invalid_statez#TestSetState.test_set_invalid_state   s5    ]]:& 	$II#	$ 	$ 	$s	   ?AN)
r9   r:   r;   rm   rQ   rz   r|   r   r   r   r<   r   r   rf   rf   g   s%    +
$$	$
".
$r   rf   c            	       2   e Zd Zej                  j
                  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                 F    t        t        | j                  dt               y Nr*   r/   )r   r$   rfuncr`   r&   s    r   test_unsupported_typez!TestRandint.test_unsupported_type   s    iQe<r   c                    | 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/   )	ityper   booliinfominmaxr   r%   r   )r   dtlbndubnds       r   test_bounds_checkingz TestRandint.test_bounds_checking   s    ** 	BBbgg1288B<+;+;Dbgg1288B<+;+;a+?D*djj$(DK*djj$qK*djj$BG*djj!QbA	Br   c           	         | 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   rx   r0   )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    ** 	MBbgg1288B<+;+;Dbgg1288B<+;+;a+?D(CCqt2FLCCqt2FL$;"CCqt2FL	Mr   c                 r   | 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   	ExceptionAssertionErrorstr)r   r   r   r   es        r   test_full_rangezTestRandint.test_full_range   s     ** 		@Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D@

4R
0		@  @$ &68;A&? @ @@s   :B	B6B11B6c                    t         j                  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*   )r3      ro   r+   i   r   r   )	r   r   ri   r   r   r   r   r   r   )r   r   r   valss       r   test_in_bounds_fuzzzTestRandint.test_in_bounds_fuzz   s    
		**QR. 	)B" )zz!TRz@
T)*
a()	) zz!QU"''z:
Q
a r   c           
      B   dd l }dddddddddd	}| j                  dd  D ]  }t        j                  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                  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int32r7   int8uint16r^   uint64uint8r*   i  littler5   r   r   r+   )hashlibr   r   r   ri   sys	byteorderr   byteswapsha256viewr   	hexdigestr   r0   namer   )r   r   r   r   valress         r   test_repeatabilityzTestRandint.test_repeatability   sK    ZZZZY[[[Z\ **QR. 
	3BIINN4  }}(jjADj;jjADj;DDF.."''!23==?CC))*c12
	3 			tjjADj5::277C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   r7   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                    | 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/   longr0   )r   r   r   r   r   r   r   r   r0   r@   r   hasattrtype)r   r   r   r   samples        r   test_respect_dtype_singletonz(TestRandint.test_respect_dtype_singleton  s
   ** 	5Bbgg1288B<+;+;Dbgg1288B<+;+;a+?DZZd"Z5Frxx|4	5 + 	+Bd
1(8(<(<Dd
1(8(<(<q(@D ZZd"Z5F001fr*	+r   N)r9   r:   r;   r   r   r   r   r   r   r   r   r   r   r^   r7   r   r   r   r   r   r   r   r   r   r   r<   r   r   r   r      s~    IIE WWbggrxx299XXryy"((BII7E=BM@!1B".+r   r   c                   t   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TestRandomDistc                     d| _         y rh   ri   r&   s    r   rm   zTestRandomDist.setup_method+  s	    	r   c                     t         j                  j                  | j                         t         j                  j                  dd      }t        j                  ddgddgddgg      }t        ||d	
       y )Nr2   r+   _\*?琛?<p?,o?H?Z?   decimal)r   r   ri   randr6   r	   r   r   desireds      r   	test_randzTestRandomDist.test_rand.  sh    
		tyy!1%((02EF02EF/1CDF G 	"&'2>r   c                     t         j                  j                  | j                         t         j                  j                  dd      }t        j                  ddgddgddgg      }t        ||d	
       y )Nr2   r+   !<Oq?4u,?3?LI/DͿ@? @HS\@r   r   )r   r   ri   randnr6   r	   r   s      r   
test_randnzTestRandomDist.test_randn6  sh    
		tyy!A&((02EF-/BC-/BCE F 	"&'2>r   c                     t         j                  j                  | j                         t         j                  j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||       y )Nc   r2   r+   rw      r2   )   )r   r   ri   r   r6   r   r   s      r   test_randintzTestRandomDist.test_randint>  sd    
		tyy!""3"8((RG "I #J( ) 	67+r   c                    t         j                  j                  | j                         t               5 }|j	                  t
              }t         j                  j                  ddd      }t        t        |      dk(         d d d        t        j                  ddgdd	gd
dgg      }t        |       y # 1 sw Y   4xY w)Nr   r   r   rw   r*   r   r2   r   r   r   r   )r   r   ri   r
   recordDeprecationWarningrandom_integersr   lenr6   r   r   supwr   r   s        r   test_random_integersz#TestRandomDist.test_random_integersF  s    
		tyy!  	!C

-.AYY..sBV.DFCFaK 	! ((RG "I #J( ) 	67+	! 	!s   AB66B?c                    t               5 }|j                  t              }t        j                  j                  t        j                  d      j                  t        j                  d      j                        }t        t        |      dk(         d d d        t        j                  d      j                  }t        |       y # 1 sw Y   5xY w)Nlr*   )r
   r   r   r   r   r   r   r   r   r   r   r   s        r   test_random_integers_max_intz+TestRandomDist.test_random_integers_max_intQ  s       	!C

-.AYY..rxx}/@/@/1xx}/@/@BFCFaK 		! ((3-##VW%	! 	!s   BCC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_deprecated`  s    $$& 	@!!'+=> ,))33((3-++-
 ,))33((3-++RXXc]->->@	@ 	@ 	@s   CC##C,c                     t         j                  j                  | j                         t         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   ri   r6   r	   r   s      r   test_randomzTestRandomDist.test_randomn  sh    
		tyy!!!&)((02EF02EF/1CDF G 	"&'2>r   c                     t         j                  j                  | j                         t         j                  j                  dd      }t        j                  g d      }t        ||       y )Nr3   )r+   r2   r+   r2   r   r   ri   choicer6   r   r   s      r   test_choice_uniform_replacez*TestRandomDist.test_choice_uniform_replacev  sD    
		tyy!!!!Q'((<(67+r   c                     t         j                  j                  | j                         t         j                  j                  ddg d      }t        j                  g d      }t        ||       y )Nr3   )皙?r	  皙?r
  rD   )r*   r*   r+   r+   r  r   s      r   test_choice_nonuniform_replacez-TestRandomDist.test_choice_nonuniform_replace|  sJ    
		tyy!!!!Q*>!?((<(67+r   c                     t         j                  j                  | j                         t         j                  j                  ddd      }t        j                  g d      }t        ||       y )Nr3   r2   Freplace)r   r*   r2   r  r   s      r   test_choice_uniform_noreplacez,TestRandomDist.test_choice_uniform_noreplace  sI    
		tyy!!!!Q!6((9%67+r   c                     t         j                  j                  | j                         t         j                  j                  dddg d      }t        j                  g d      }t        ||       y )Nr3   r2   F)r
  g333333?rA   r
  r  rD   )r+   r2   r*   r  r   s      r    test_choice_nonuniform_noreplacez/TestRandomDist.test_choice_nonuniform_noreplace  sP    
		tyy!!!!Q$8 " :((9%67+r   c                     t         j                  j                  | j                         t         j                  j                  g dd      }t        j                  g d      }t        ||       y )N)abcdr3   )r  r  r  r  r  r   s      r   test_choice_nonintegerz%TestRandomDist.test_choice_noninteger  sF    
		tyy!!!"6:((/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"   r2   g      @r*   r+   r3   )r*   r+   r2   r3   g      ?r  )r	  r	  rM   g?gr	  r1   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        t               }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+   r2   )r
  r
  r
  r
  r	  rM   r5   )r2   r   r3   rw   i)r   r   r  r  )r   r   isscalarr   r  r6   emptyobjecttuplendimitemr   r_   r   r   r   r%   )r   rD   r  arrr   s        r   test_choice_return_shapez'TestRandomDist.test_choice_return_shape  su   #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 G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   r6   r   r%   r   r  )r   r  rD   s      r   test_choice_nan_probabilitiesz,TestRandomDist.test_choice_nan_probabilities  s-    HHZ j"))"2"2A;r   c                     t         j                  j                  | j                         t         j                  j                  d      }d}t	        ||       y )Nr   s
   Ui+Wf)r   r   ri   bytesr   r   s      r   
test_byteszTestRandomDist.test_bytes  s7    
		tyy!$.VW%r   c                    d d d d d d d d d	 d
 d fD ]l  }t         j                  j                  | j                          |g d      }t         j                  j                  |       |} |g d      }t	        ||       n y )Nc                 ,    t        j                  g       S N)r   r6   rX   s    r   <lambda>z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rxx| r   c                     | S r.  r<   r/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    q r   c                 f    t        j                  |       j                  t         j                        S r.  )r   asarrayastyper   r/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BGG< r   c                 f    t        j                  |       j                  t         j                        S r.  )r   r3  r4  float32r/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BJJ? r   c                 f    t        j                  |       j                  t         j                        S r.  )r   r3  r4  	complex64r/  s    r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BLLA r   c                 R    t        j                  |       j                  t              S r.  )r   r3  r4  r   r/  s    r   r0  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<   rX   is     r   r0  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   r3  r;  s     r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s!    rzz1*=aAq6*=> *=s   &c                 D    t        j                  | | g      j                  S r.  )r   vstackTr/  s    r   r0  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   r3  r@   r   recarrayr;  s     r   r0  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 rB  )r   r3  r   r   r;  s     r   r0  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s8    rzz1*=aAq6*=,/=3/*J L *=s   ?)
r*   r+   r2   r3   r4   r5      r   	   r   )
r   r*   rF  r5   r+   r3   r4   r   rE  r2   )r   r   ri   shuffler   )r   convalistr   r   s        r   test_shufflezTestRandomDist.test_shuffle  s     , <?A;2>24LM 	0D  IINN499%78EIIe$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   )r4   r3   r2   r*   r"   2   )r   mamasked_valuesreshaper   r   copyr   rG  r   sorteddatamask)r   r  r  a_origb_origr<  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+   r2   r3   r4   r5   )r   r*   r+   r2   r3   r4   r5   z!you are shuffling a 'dict' objectmatchr  )r   warnsUserWarningrG  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)r9   r:   r;   r<   r   r   MyArrrd    s    r   re  r2   r   rE  r/   c              3   8   K   | ]  }t        |      v   y wr.  id.0r<  item_idss     r   	<genexpr>zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<genexpr>#  s     22a5H$2   z#Shuffling a one dimensional array.*rY  c              3   8   K   | ]  }t        |      v   y wr.  rg  ri  s     r   rl  zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<genexpr>,  s     6Qr!u(6rm  )r   ndarrayr6   float64r   rh  r   rW   
isinstancer   	Generatorr   r[  r\  rG  )r   r   ra  re  itemsr$  r<  rk  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                  | j                         t        j                  d      j                  }t         j                  j                  |       t        t        j                  |      g d       t         j                  j                  | j                        }|j                  |       t        t        j                  |      g d       t         j                  j                  | j                        }|j                  |       t        t        j                  |      g d       y )Nr4   )r   r*   r3   r2   r+   )r   r*   r+   r2   r3   )r3   r*   r   r2   r+   )
r   r   ri   r   rS  rG  r   r3  r   default_rng)r   r  rngs      r   test_shuffle_memoryviewz&TestRandomDist.test_shuffle_memoryview.  s     			tyy!IIaL
		!RZZ]O4ii##DII.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)Nr2   Fz	read-onlyrY  )	r   rB   flags	writeabler   r   r%   r   rG  )r   r  s     r   test_shuffle_not_writeablez)TestRandomDist.test_shuffle_not_writeable=  sP    HHQK!]]:[9 	!IIa 	! 	! 	!s    A++A4c                     t         j                  j                  | j                         t         j                  j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr
  r  r   rw   gAKč?ghA?g ҇o>gάXf+q?gS1$?g'8zX ?r   r   )r   r   ri   betar6   r	   r   s      r   	test_betazTestRandomDist.test_betaC  sl    
		tyy!BV4(()+BC)+BC)+BCEF 	"&'2>r   c                     t         j                  j                  | j                         t         j                  j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||       y )NrL   gv/?r   rw   %   +   r'  0   .   -   )r   r   ri   rC   r6   r   r   s      r   test_binomialzTestRandomDist.test_binomialL  sd    
		tyy!##CF#;((RHHH& ' 	67+r   c                     t         j                  j                  | j                         t         j                  j                  dd      }t        j                  ddgddgdd	gg      }t        ||d
       y )NrM  r   rw   g+Q]uO@g+Q@gY7`ZqP@ge(fG@gvtR@gEIȋR@   r   )r   r   ri   	chisquarer6   r	   r   s      r   test_chisquarezTestRandomDist.test_chisquareT  sm    
		tyy!$$Rf$5((13GH13GH02FGI J 	"&'2>r   c                 J   t         j                  j                  | j                         t        j                  ddg      }t         j                  j                  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   rw   gi{s?gn,	A?g]^?gpDB?gȧ#y?gr?g1U?gѨUC?g^,%?gB?gډOoX;?gM`!O?r   r   )r   r   ri   r6   mtrand	dirichletr	   )r   alphar   r   s       r   test_dirichletzTestRandomDist.test_dirichlet\  s    
		tyy!.0DEF!!++E+?((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*   r[   r+   r\   r]   )
r   r6   r   r   r  r^   r_   r   r$   r`   ra   s     r   test_dirichlet_sizez"TestRandomDist.test_dirichlet_sizeh  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ؗҜr4   r*   )r   r6   r   r%   r   r  r  )r   r  s     r   test_dirichlet_bad_alphaz'TestRandomDist.test_dirichlet_bad_alphat  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                         t         j                  j                  dd      }t        j                  ddgddgdd	gg      }t        ||d
       y )Ng8EGr?r   rw   gNU?gbI0?gVU\@g:3@gU?g"qo?r   r   )r   r   ri   exponentialr6   r	   r   s      r   test_exponentialzTestRandomDist.test_exponential  sm    
		tyy!&&vF&;((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                         t         j                  j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )N   M   r   rw   g7?g`j?g6"+?gܳ2>?gc>+Y?g_}S?r   r   )r   r   ri   fr6   r	   r   s      r   test_fzTestRandomDist.test_f  sl    
		tyy!R&1((02EF02EF02EFH I 	"&'2>r   c                     t         j                  j                  | j                         t         j                  j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr4   r2   r   rw   gԏGM8@gȌ<@g	":@gv#)@gZQ?@gr[@@   r   )r   r   ri   gammar6   r	   r   s      r   
test_gammazTestRandomDist.test_gamma  sl    
		tyy!AF3((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                         t         j                  j                  dd      }t        j                  ddgddgddgg      }t        ||       y )	N_c97ݚ?r   rw   r   rE     r4   r  )r   r   ri   	geometricr6   r   r   s      r   test_geometriczTestRandomDist.test_geometric  sb    
		tyy!$$Zf$=((QFHG% & 	67+r   c                     t         j                  j                  | j                         t         j                  j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr         @r   locr  rx   gؕ?gs0 ?g#0g(xg-KD?gůp`@r   r   )r   r   ri   gumbelr6   r	   r   s      r   test_gumbelzTestRandomDist.test_gumbel  so    
		tyy!!!j&!I((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                         t         j                  j                  dddd      }t        j                  ddgddgddgg      }t        ||       t         j                  j                  dddd	      }t        j                  g d
      }t        ||       t         j                  j                  dddd	      }t        j                  g d      }t        ||       t         j                  j                  dddd	      }t        j                  g d      }t        ||       t         j                  j                  dddd	      }t        j                  g d      }t        ||       y )Nr   r4   r  r   rw   rF  r   r2   r3   )r2   r2   r2   r2   r   r  )r  r  r  r  )r   r   r   r   )r   r   ri   hypergeometricr6   r   r   s      r   test_hypergeometricz"TestRandomDist.test_hypergeometric  s?   
		tyy!))"a&)A((RHHF$ % 	67+ ))!Q):((<(67+))"a!)<((+,67+ ))!Q):((<(67+))!R!)<((<(67+r   c                     t         j                  j                  | j                         t         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   ri   laplacer6   r	   r   s      r   test_laplacezTestRandomDist.test_laplace  so    
		tyy!""z6"J((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                         t         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   ri   logisticr6   r	   r   s      r   test_logisticzTestRandomDist.test_logistic  so    
		tyy!##
#F#K((02DE02EF13FGI J 	"&'2>r   c                     t         j                  j                  | j                         t         j                  j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr  r  r   )meansigmarx   gɁ0@go,+4FB@g)ʭ6@g5?gnxNnP@g)U@r  r   )r   r   ri   	lognormalr6   r	   r   s      r   test_lognormalzTestRandomDist.test_lognormal  so    
		tyy!$$*Cf$M((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                         t         j                  j                  dd      }t        j                  ddgddgddgg      }t        ||       y )Ngƀ@?r   )rD   rx   r+   r5   r  r2   )r   r   ri   	logseriesr6   r   r   s      r   test_logserieszTestRandomDist.test_logseries  sb    
		tyy!$$z$?((QFGF$ % 	67+r   c                    t         j                  j                  | j                         t         j                  j                  ddgdz  d      }t        j                  g dg dgg dg d	gg d
g dgg      }t        ||       y )NrL  UUUUUU?r5   r   rw   )r3   r2   r4   r3   r+   r+   )r4   r+   r   r+   r+   r*   )r2   r3   r2   r5   r   r3   )r+   r*   r3   r2   r5   r3   )r3   r3   r+   r4   r+   r2   )r3   r2   r3   r+   r2   r3   )r   r   ri   rP   r6   r   r   s      r   test_multinomialzTestRandomDist.test_multinomial  sw    
		tyy!&&rD6!8&&A((//1//1//1	2 3 	67+r   c                    t         j                  j                  | j                         d}ddgddgg}d}t         j                  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       t         j                  j                  ||      }t        j                  ddg      }t        ||d       ddg}ddgddgg}t        t        t         j                  j                  ||       t        t         j                  j                  ||d       t        t        t         j                  j                  ||d       t        j                  ddgddggt         j                        }t               5 }t         j                  j                  ||       |j                  t              }t        |      dk(  s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   ri   multivariate_normalr6   r	   r   RuntimeWarningr   r   r%   r6  r
   r   r   )r   r  covrx   r   r   r   r   s           r   test_multivariate_normalz'TestRandomDist.test_multivariate_normal   s   
		tyy!1v1v..tS$?((/1BC/1BCE/1CD/1BCE/1BC02CDF	G H 	"&'2> ..tS9((-/?@A!&'2> 1v1v1v^RYY%B%BD#N 	29988$'/	1 	j"))"?"?s")	+ hhC3(+2::>  	CII))$4

>*Aq6Q;;	 	 	s   AG""G+c                     t         j                  j                  | j                         t         j                  j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||       y )NrL   g|Pk?r   )nrD   rx   iP  iI  i|  ic  i  i  )r   r   ri   r   r6   r   r   s      r   r   z%TestRandomDist.test_negative_binomial(  sd    
		tyy!,,sf6,J((S#J #J #J( ) 	67+r   c                 |   t         j                  j                  | j                         t         j                  j                  ddd      }t        j                  ddgddgdd	gg      }t        ||d
       t         j                  j                  ddd      }t        j                  ddgddgddgg      }t        ||d
       t         j                  j                  | j                         t         j                  j                  ddd      }t        j                  ddgddgddgg      }t        ||d
       y )Nr4   r   )dfnoncrx   gG7@g! ܴ*@g1}z9?@g+驸0@g26E_r#@gI!1@r  r   rA   rM   g?gTD?g?T?g+qnl?g~|D?g밬?r   g{01#@gprs'@g~;$@g"dI@g*@g}',@)r   r   ri   noncentral_chisquarer6   r	   r   s      r   test_noncentral_chisquarez(TestRandomDist.test_noncentral_chisquare0  s5   
		tyy!//116/J((13GH13GH02FGI J 	"&'2>//2BV/L((03FG03FG.1DEG H 	"&'2>
		tyy!//116/J((.0BC/1BC/1CDF G 	"&'2>r   c                     t         j                  j                  | j                         t         j                  j                  dddd      }t        j                  ddgdd	gd
dgg      }t        ||d       y )Nr4   r+   r*   r   )dfnumdfdenr  rx   g^~?g/+c?g".@g@g7?gE?r  r   )r   r   ri   noncentral_fr6   r	   r   s      r   test_noncentral_fz TestRandomDist.test_noncentral_fE  sv    
		tyy!''aqq-3 ( 5((02EF02EF02DEG H 	"&'2>r   c                     t         j                  j                  | j                         t         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   ri   normalr6   r	   r   s      r   test_normalzTestRandomDist.test_normalN  so    
		tyy!!!j&!I((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_0V  r  r   c                    t         j                  j                  | j                         t         j                  j                  dd      }t        j                  ddgddgdd	gg      }t         j
                  j                  ||d
       y )Nr  r   r  rx   gWI@gԨy@gy]0Ag1~\Aga@gY
7A   )nulp)r   r   ri   paretor6   testingassert_array_almost_equal_nulpr   s      r   test_paretozTestRandomDist.test_paretoZ  sz    
		tyy!!!JV!<(()+BC)+BC)+BCEF 	

11&'1Kr   c                     t         j                  j                  | j                         t         j                  j                  dd      }t        j                  ddgddgddgg      }t        ||       y )Nr  r   )lamrx   r   r*   )r   r   ri   poissonr6   r   r   s      r   test_poissonzTestRandomDist.test_poissoni  sb    
		tyy!""z"?((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_exceptionsq  s~    #""j"))"3"3V<j"))"3"3fXb[Aj"))"3"3V<j"))"3"3fXb[Ar   c                     t         j                  j                  | j                         t         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   ri   powerr6   r	   r   s      r   
test_powerzTestRandomDist.test_powery  sj    
		tyy!:F;((02EF02EF02EFH I 	"&'2>r   c                     t         j                  j                  | j                         t         j                  j                  dd      }t        j                  ddgddgdd	gg      }t        ||d
       y )Nr   r   )r  rx   g"u+@gN$MB*@g7v8B4@g55@ge&@g~ӣZ1@r  r   )r   r   ri   rayleighr6   r	   r   s      r   test_rayleighzTestRandomDist.test_rayleigh  sm    
		tyy!##"6#:((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                         t         j                  j                  d      }t        j                  ddgddgddgg      }t        ||d	
       y )Nr   rw   gMoDL?g6([9grF=?gM'	- gVgVA:Qy?r   r   )r   r   ri   standard_cauchyr6   r	   r   s      r   test_standard_cauchyz#TestRandomDist.test_standard_cauchy  sk    
		tyy!***7((02FG02FG13FGI J 	"&'2>r   c                     t         j                  j                  | j                         t         j                  j                  d      }t        j                  ddgddgddgg      }t        ||d	
       y )Nr   rw   g܁?gc!z?g&N"@gNI@gF>?g~ME?r   r   )r   r   ri   standard_exponentialr6   r	   r   s      r   test_standard_exponentialz(TestRandomDist.test_standard_exponential  sk    
		tyy!//V/<((02EF/1DE/1DEG H 	"&'2>r   c                     t         j                  j                  | j                         t         j                  j                  dd      }t        j                  ddgddgdd	gg      }t        ||d
       y )Nr2   r   )r_   rx   g)@gľ@gd],q@gPk{@g9B#1@gv @r  r   )r   r   ri   standard_gammar6   r	   r   s      r   test_standard_gammaz"TestRandomDist.test_standard_gamma  sm    
		tyy!)))?((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                         t         j                  j                  d      }t        j                  ddgddgddgg      }t        ||d	
       y )Nr   rw   r   r   r   r   r   r   r   r   )r   r   ri   ry   r6   r	   r   s      r   test_standard_normalz#TestRandomDist.test_standard_normal  sk    
		tyy!***7((02EF.0CD.0CDF G 	"&'2>r   c                     t         j                  j                  | j                         t         j                  j                  dd      }t        j                  ddgddgdd	gg      }t        ||d
       y )Nr   r   )r  rx   g\VH?ghU%gH$M?gLgVqdzǿg㖀?r   r   )r   r   ri   
standard_tr6   r	   r   s      r   test_standard_tzTestRandomDist.test_standard_t  sm    
		tyy!%%&%9((02FG02FG13FGI J 	"&'2>r   c                     t         j                  j                  | j                         t         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rightrx   g:}\)@ghرTj(@gǨL30@g6ڜA0@g6sh&@g<,@r  r   )r   r   ri   
triangularr6   r	   r   s      r   test_triangularzTestRandomDist.test_triangular  sv    
		tyy!%%4e5+1 & 3((13FG13GH13FGI J 	"&'2>r   c                     t         j                  j                  | j                         t         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highrx   g>#H@gu@g#@g}d]#@gN@gw)* @r   r   )r   r   ri   uniformr6   r	   r   s      r   test_uniformzTestRandomDist.test_uniform  so    
		tyy!""t%f"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)r9   r:   r;   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)r9   r:   r;   r1  	__index__r<   r   r   ThrowingIntegerr/    s       Ir   r3  r*   )	r   ro  r6   r   r   r$   r   r  r  )r   r-  throwing_floatr3  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                         t         j                  j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr  p=
ף?r   mukapparx   gLZI@g'N"@gkr?gk=m@gډ?g^=\?r   r   )r   r   ri   vonmisesr6   r	   r   s      r   test_vonmiseszTestRandomDist.test_vonmises  so    
		tyy!##t4f#E((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 )NrS   gg5_PG>i@B r9  )r   r   ri   r<  r  r   isfiniterW   )r   rs     r   test_vonmises_smallz"TestRandomDist.test_vonmises_small  sT    
		tyy!II"F?


2;;q>--/0r   c                     t         j                  j                  | j                         t         j                  j                  ddd      }t        j                  ddgddgd	d
gg      }t        ||d       y )Nr  r8  r   )r  r  rx   gZ@g-g@g8
m?gVP"?g`V?gx^&3?r  r   )r   r   ri   waldr6   r	   r   s      r   	test_waldzTestRandomDist.test_wald   sl    
		tyy!TFC((02EF02EF02EFH I 	"&'2>r   c                     t         j                  j                  | j                         t         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   ri   weibullr6   r	   r   s      r   test_weibullzTestRandomDist.test_weibull  sm    
		tyy!""T"7((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   ri   r   rF  rB   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                         t         j                  j                  dd      }t        j                  ddgddgddgg      }t        ||       y )	Nr  r   r  B      r*   r2   r  )r   r   ri   zipfr6   r   r   s      r   	test_zipfzTestRandomDist.test_zipf  s_    
		tyy!$V4((RHFG% & 	67+r   N)Sr9   r:   r;   rm   r   r   r   r   r   r  r  r  r  r  r  r  r  r%  r(  r+  rJ  rW  r   markparametrizer   r   r   rv  r`  rt  rx  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r   r  r  r	  r  r  r  r  r  r%  r6  r=  rA  rD  rG  rI  rN  r<   r   r   r   r   '  s1   ??,	,&@?,,,,,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,	,&P,?*???L,B??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!d  Z"y!)"TestBroadcastc                     d| _         y )Ni[r   r&   s    r   rm   zTestBroadcast.setup_method!  s	    	r   c                 V    t         j                  j                  | j                         y r.  )r   r   ri   r&   s    r   setSeedzTestBroadcast.setSeed$  s    
		tyy!r   c                    dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       | j	                           |||dz        }t        ||d       y )Nr   r*   gl?g_x?g=*BN?r2   r  r   )r   r   r  r6   rU  r	   )r   r  r  r  r   r   s         r   r  zTestBroadcast.test_uniform*  s~    cs))##(( 1 2 	q$'!&'2>dQh'!&'2>r   c                 t   dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         y )Nr   r*   r"   )g-r@gYl@g-`w?r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  r  	bad_scaler  r   r   s          r   r  zTestBroadcast.test_normal:  s    cD	!!(( 0 1 	a'!&'2>j&#'9=UQY'!&'2>j&#y1}=r   c                    dg}dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         y )	Nr*   r+   r"   r,   )gnQVf?gVKB?gv`k?r2   r  r   )r   r   r~  r6   rU  r	   r   r%   )r   r  r  bad_abad_br~  r   r   s           r   r  zTestBroadcast.test_betaM  s    CCyy~~(( 1 2 	a!eQ!&'2>j$	15j$Au5aQ!&'2>j$q1u5j$5195r   c                     dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         y Nr*   r"   )g.UgZ?gi Prq?gEK?r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  rY  r  r   r   s         r   r  zTestBroadcast.test_exponentialc  sg    D	ii++(( 1 2 	UQY'!&'2>j+y1}=r   c                     dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         y r^  )r   r   r  r6   rU  r	   r   r%   )r   r_   	bad_shape	std_gammar   r   s         r   r	  z!TestBroadcast.test_standard_gammap  sg    D	II,,	(( 1 2 	519%!&'2>j)Y];r   c                    dg}dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         y )	Nr*   r+   r"   r,   )g.UgZ?gi Prq?gEK?r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r_   r  r`  rY  r  r   r   s           r   r  zTestBroadcast.test_gamma}  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}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         y )	Nr*   r+   r"   r,   )gbyʜ?go?gT7@r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  r  	bad_dfnum	bad_dfdenr  r   r   s           r   r  zTestBroadcast.test_f  s    D	D	IIKK(( 0 1 	519e$!&'2>j!Y]E:j!UQY	:5%!)$!&'2>j!Y	:j!UIM:r   c                    dg}dg}dg}dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  ||      }	t        |	|d	       t        t        ||dz  ||       t        t        ||dz  ||       t        t        ||dz  ||       | j	                           |||dz  |      }	t        |	|d	       t        t        |||dz  |       t        t        |||dz  |       t        t        |||dz  |       | j	                           ||||dz        }	t        |	|d	       t        t        ||||dz         t        t        ||||dz         t        t        ||||dz         y )
Nr+   r2   r3   r   r"   r,   )gr^G"@g/*@gц!@r  r   )r   r   r  r6   rU  r	   r   r%   )
r   r  r  r  rd  re  bad_noncnonc_fr   r   s
             r   r  zTestBroadcast.test_noncentral_f  sy   sC	D	4''(( 0 1 		5$/!&'2>j&)a-Ej&%!)YEj&%!)UHEuqy$/!&'2>j&)UQYEj&%QEj&%HEudQh/!&'2>j&)UD1HEj&%D1HEj&%1Er   c                     | j                          t        j                  ddg      }t        j                  j	                  dddd      }t        ||d       y )Ngaz@gn4M;%?r  r+   rw   r  r   )rU  r   r6   r   r  r	   )r   r   r   s      r   test_noncentral_f_small_dfz(TestBroadcast.test_noncentral_f_small_df  sI    ((-/@AB''S!!'<!&'2>r   c                     dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         y )Nr*   r"   )g~}N??g$F?g'rS?r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  bad_dfr  r   r   s         r   r  zTestBroadcast.test_chisquare  sg    SII''	(( 0 1 	26"!&'2>j)VaZ8r   c                    dg}dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         y )	Nr*   r+   r"   r,   )g w "@g2WR@gRY@r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  r  rl  rg  nonc_chir   r   s           r   r  z'TestBroadcast.test_noncentral_chisquare  s    Ss49911(( 0 1 	"q&$'!&'2>j(FQJ=j(BFH="dQh'!&'2>j(FD1H=j(B1=r   c                     dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         y )Nr*   r"   )gT@g~Fl@gƚtp?r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  rl  tr   r   s         r   r  zTestBroadcast.test_standard_t  sf    SII  (( 0 1 	26!&'2>j!VaZ0r   c                 t   dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         y )Nr+   r*   r"   )gW!@gOBg}?r2   r  r   )r   r   r<  r6   rU  r	   r   r%   )r   r:  r;  	bad_kappar<  r   r   s          r   r=  zTestBroadcast.test_vonmises   s    SD	99%%(( 1 2 	"q&%(!&'2>j(BFI>"eai(!&'2>j(B	A>r   c                     dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         y )Nr*   r"   )g&8??geFX?gՋː?r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  r[  r  r   r   s         r   r  zTestBroadcast.test_pareto  sf    C!!(( 0 1 	A!&'2>j&%!)4r   c                     dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         y r^  )r   r   rF  r6   rU  r	   r   r%   )r   r  r[  rF  r   r   s         r   rG  zTestBroadcast.test_weibull   sf    C))##(( 1 2 	Q!&'2>j'5195r   c                     dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         y )Nr*   r"   rW  r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  r[  r  r   r   s         r   r  zTestBroadcast.test_power-  sd    C		(( 1 2 	q1u!&'2>j%3r   c                 t   dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         y )Nr   r*   r"   )g:BKc?g3k?g~q?r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  r  rY  r  r   r   s          r   r  zTestBroadcast.test_laplace:  s    cD	))##(( 2 3 	q%(!&'2>j'37I>eai(!&'2>j'3	A>r   c                 t   dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         y )Nr   r*   r"   )g'Zy?gdSO=?g3L1?r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  r  rY  r  r   r   s          r   r  zTestBroadcast.test_gumbelM  s    cD	!!(( 1 2 	a'!&'2>j&#'9=UQY'!&'2>j&#y1}=r   c                 t   dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         y )Nr   r*   r"   )gy?gJR?g
~&?r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  r  rY  r  r   r   s          r   r  zTestBroadcast.test_logistic`  s    cD	99%%(( 2 3 	#'5)!&'2>j(C!GY?#uqy)!&'2>j(CQ?r   c                 t   dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         y )Nr   r*   r"   )gH"@gܮ @gvv	:@r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  r  	bad_sigmar  r   r   s          r   r  zTestBroadcast.test_lognormals  s    sD	II''	(( 0 1 	4!8U+!&'2>j)TAXyA4+!&'2>j)T9q=Ar   c                     dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz        }t        ||d       t        t        ||dz         y )Nr*   r"   )gݱlo?g/ӂ?gz~R?r2   r  r   )r   r   r  r6   rU  r	   r   r%   )r   r  rY  r  r   r   s         r   r  zTestBroadcast.test_rayleigh  sg    D	99%%(( 0 1 	%!)$!&'2>j(IM:r   c                    dg}dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||d       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||d       t        t        |||dz         t        t        |||dz         t        t        |d	d       t        t        |dd	       y )
NrA   r*   r   r,   )g@m e?g`I߿?g|2?r2   r  r   rS   )r   r   rC  r6   rU  r	   r   r%   )r   r  r  bad_meanrY  rC  r   r   s           r   rD  zTestBroadcast.test_wald  s    u3D	yy~~(( 0 1 	dQh&!&'2>j$1e<j$q)<dEAI&!&'2>j$%!)<j$i!m<j$Q/j$S1r   c                 "   dg}dg}dg}dg}dg}|dz  \  }}t         j                  j                  }t        j                  g d      }	| j	                           ||dz  ||      }
t        |
|	d       t        t        ||dz  ||       t        t        ||dz  ||       t        t        ||dz  ||       | j	                           |||dz  |      }
t        |
|	d       t        t        |||dz  |       t        t        |||dz  |       t        t        |||dz  |       | j	                           ||||dz        }
t        |
|	d       t        t        ||||dz         t        t        ||||dz         t        t        ||||dz         y )Nr*   r2   r+   r3   )g,P;bD @g%G @g,~S @r  r   )r   r   r  r6   rU  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YY))
(( 0 1 	D1HdE2!&'2>j*lQ.>eLj*dQheLj*lQ.>	 	D$(E2!&'2>j*lD1HeLj*dL14DeLj*lL1<L	 	D$	2!&'2>j*lD%!)Lj*dL%!)Lj*lLai	!r   c                     dg}dg}dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||       t        t        ||dz  |       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||       t        t        |||dz         t        t        |||dz         t        t        |||dz         y )Nr*   rA   r"         ?r*   r*   r*   r2   )r   r   rC   r6   rU  r   r   r%   )	r   r  rD   bad_n	bad_p_one	bad_p_twobinomr   r   s	            r   r  zTestBroadcast.test_binomial  s    CED	E			""((9%q1ua67+j%A6j%Q	:j%Q	:q!a%67+j%A6j%IM:j%IM:r   c                     dg}dg}dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz  |      }t        ||       t        t        ||dz  |       t        t        ||dz  |       t        t        ||dz  |       | j	                           |||dz        }t        ||       t        t        |||dz         t        t        |||dz         t        t        |||dz         y )Nr*   rA   r"   r  )r*   r   r*   r2   )r   r   r   r6   rU  r   r   r%   )	r   r  rD   r  r  r  	neg_binomr   r   s	            r   r   z$TestBroadcast.test_negative_binomial  s    CED	E	II//	((9%1q5!$67+j)UQY:j)QUI>j)QUI>1a!e$67+j)UAE:j)Q	A>j)Q	A>r   c                 l   t         j                  j                         j                  }dg}dg}|dz  g}t         j                  j                  }t        j
                  g d      }| j                           ||dz        }t        ||       t        t        ||dz         t        t        ||dz         y )Nr*   r"   r+   )r*   r*   r   r2   )
r   r   r   _poisson_lam_maxr  r6   rU  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%q!67+j';?;j';?;r   c                    dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz        }t        ||       t        t        ||dz         t        j                  d      5  t        t        |t         j                         t        t        |ddt         j                  g       d d d        y # 1 sw Y   y xY w)Nr+   r   )r+   r+   r*   r2   r  )invalid)
r   r   rM  r6   rU  r   r   r%   errstaterG   )r   r  r[  rM  r   r   s         r   rN  zTestBroadcast.test_zipf  s    Cyy~~((9%a!e67+j$	2[[* 	<*dBFF3*dQ266N;	< 	< 	<s   	ACCc                    dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz        }t        ||       t        t        ||dz         t        t        ||dz         y )NrA   r"   r  r\   r2   )r   r   r  r6   rU  r   r   r%   )r   rD   r  r  geomr   r   s          r   r  zTestBroadcast.test_geometric  st    ED	E	yy""((9%a!e67+j$	A6j$	A6r   c                    dg}dg}dg}dg}dg}dg}dg}t         j                  j                  }t        j                  g d      }	| j	                           ||dz  ||      }
t        |
|	       t        t        ||dz  ||       t        t        ||dz  ||       t        t        ||dz  ||       t        t        ||dz  ||       | j	                           |||dz  |      }
t        |
|	       t        t        |||dz  |       t        t        |||dz  |       t        t        |||dz  |       t        t        |||dz  |       | j	                           ||||dz        }
t        |
|	       t        t        ||||dz         t        t        ||||dz         t        t        ||||dz         t        t        ||||dz         y )	Nr*   r+   r"   r,   r   r3   r  r2   )r   r   r  r6   rU  r   r   r%   )r   ngoodnbadnsample	bad_ngoodbad_nbadbad_nsample_onebad_nsample_two	hypergeomr   r   s              r   r  z!TestBroadcast.test_hypergeometric'  s   s#D	4##II,,	((9%519dG467+j)Y]D'Jj)UQY'Jj)UQYoNj)UQYoN5$(G467+j)Yq'Jj)UHqL'Jj)UD1HoNj)UD1HoN5$!467+j)YgkJj)UHgkJj)UD/A:MNj)UD/A:MNr   c                    dg}dg}dg}t         j                  j                  }t        j                  g d      }| j	                           ||dz        }t        ||       t        t        ||dz         t        t        ||dz         y )NrA   r+   r"   r  r2   )r   r   r  r6   rU  r   r   r%   )r   rD   r  r  r  r   r   s          r   r  zTestBroadcast.test_logseriesJ  su    EC	D	II''	((9%1q5!67+j)Y];j)Y];r   N)#r9   r:   r;   rm   rU  r  r  r  r  r	  r  r  r  rj  r  r  r  r=  r  rG  r  r  r  r  r  r  rD  r  r  r   r  rN  r  r  r  r<   r   r   rR  rR    s    "? >&6,><?,;,FB?9>,1?&564?&>&@&B&;20"!H;.?.<<7!OF<r   rR  zcan't start thread)reasonc                   *    e Zd Zd Zd Zd Zd Zd Zy)
TestThreadc                 $    t        d      | _        y )Nr3   )r   seedsr&   s    r   rm   zTestThread.setup_method[  s    1X
r   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argsr3   win32)	threadingr  r   r  r   r  zipr   r   startjoinintpr0   itemsizer   platformr	   r   )
r   functionszr  out1out2r   orp  rX   s
             r   check_functionzTestThread.check_function^  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'  rw   .)r  rl   outs     r   
gen_randomz*TestThread.test_normal.<locals>.gen_randomu  s    |||/CHr   )r  r  r  r   r  s     r   r  zTestThread.test_normalt  s    	0J84r   c                 0    d }| j                  |d       y )Nc                 T    | j                  t        j                  d            |d<   y )NrL   r   r  .)r  r   onesr  s     r   r  z'TestThread.test_exp.<locals>.gen_randomz  s"    ((rww{/C(DCHr   r  r  r  r  s     r   test_expzTestThread.test_expy  s    	EJ;7r   c                 0    d }| j                  |d       y )Nc                 :    | j                  ddgdz  d      |d<   y )Nr   r  r5   r  rw   .)rP   r  s     r   r  z/TestThread.test_multinomial.<locals>.gen_random  s#    ((dVAXE(BCHr   )r  r5   r  r  r  s     r   r  zTestThread.test_multinomial~  s    	CJ:6r   N)r9   r:   r;   rm   r  r  r  r  r<   r   r   r  r  X  s    +,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| _        y )Nr+   r2   r3   )r*   )r   r6   argOneargTwoargThreetgtShaper&   s    r   rm   z$TestSingleEltArrayInput.setup_method  s<    hhsmhhsm!r   c                 |   t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j
                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  f}t         j                  j                  t         j                  j                  f}|D ]U  }||v r |t        j                  dg            }n || j                        }t!        |j"                  | j$                         W y r   )r   r   r  r  r  r  r  rF  r  r  r  rM  r  r  r6   r  r   r_   r  )r   funcs	probfuncsr$  r  s        r   test_one_arg_funcsz*TestSingleEltArrayInput.test_one_arg_funcs  s   &&		(@(@$$bii&:&:!!299#4#4"))"4"4""BIINN$$bii&9&9; YY(("))*=*=>	 	3Dy 288SE?+ 4;;'DMM2	3r   c                    t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j
                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  t         j                  j                  f}t         j                  j                  t         j                  j                  f}|D ]  }||v rt        j                   dg      }n| j"                  } || j$                  |      }t'        |j(                  | j*                          || j$                  d   |      }t'        |j(                  | j*                          || j$                  |d         }t'        |j(                  | j*                          y )NrA   r   )r   r   r  r  r~  r  r  r  r<  r  r  r  r  rC  rC   r   r6   r  r  r   r_   r  )r   r  r  r$  r  r  s         r   test_two_arg_funcsz*TestSingleEltArrayInput.test_two_arg_funcs  sp   ""BII$4$4bii<<##RYY%6%6!!299#5#5$$biinn##RYY%@%@B YY'')D)DE	 	3Dy 3% t{{F+CDMM2t{{1~v.CDMM2t{{F1I.CDMM2	3r   c           	         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 ]  } ||||      }t        |j                  | j                          ||d   ||      }t        |j                  | j                          |||d   |      }t        |j                  | j                          y )Nr*   r   r/   )r   r   r   r   r   r   r   r^   r7   r   r   r   r6   r   r_   r  )r   r   r$  r  r  r   r  s          r   r   z$TestSingleEltArrayInput.test_randint  s    rww"((BII299bhh		;yy  xx}hhsm 	3BsD+CDMM2s1vt2.CDMM2sDG2.CDMM2	3r   c                 h   t         j                  j                  t         j                  j                  t         j                  j                  g}|D ]  } || j
                  | j                  | j                        }t        |j                  | j                          || j
                  d   | j                  | j                        }t        |j                  | j                          || j
                  | j                  d   | j                        }t        |j                  | j                          y )Nr   )r   r   r  r  r  r  r  r  r   r_   r  )r   r  r$  r  s       r   test_three_arg_funcsz,TestSingleEltArrayInput.test_three_arg_funcs  s    '')=)=))+  	3Dt{{DKK?CDMM2t{{1~t{{DMMBCDMM2t{{DKKNDMMBCDMM2	3r   N)r9   r:   r;   rm   r  r  r   r  r<   r   r   r  r    s    3&363"3r   r  )r   r   numpyr   numpy.testingr   r   r   r   r   r   r	   r
   r   r   r   r   r>   rJ   rf   r   r   rR  rO  skipifr  r  r<   r   r   <module>r     s      
 
 

  
$F $FN> >Y YD2$ 2$jH+ H+Vt, t,nw< w<t G$89(7 (7 :(7XR3 R3r   