
    giV             	          d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	m
Z
 d dlmZmZmZmZmZmZmZ ddddd ej&                  d	      d
z  fddddZ ej*                  ej,                        j.                  dk  rdddddddddZndddddddd dZ ej2                  d!e"      d#        Zej2                  d$        Zd% Z G d& d'      Z G d( d)      Z G d* d+      Z G d, d-      Z  G d. d/      Z! G d0 d1      Z" G d2 d3      Z#ejH                  jK                  ed45       G d6 d7             Z& G d8 d9      Z'd: Z(d; Z)d< Z*d= Z+ejH                  jY                  d>5      d?        Z-ejH                  jY                  d>5      d@        Z.ejH                  jY                  d>5      dA        Z/ejH                  jY                  d>5      dB        Z0ejH                  jY                  d>5      dC        Z1y)D    N)random)MT19937PCG64)IS_WASMassert_assert_array_almost_equalassert_array_equalassert_equalassert_no_warningsassert_raises)g      Y@g333333?)      ?)   r   
   r      g      @)d   r   )      $@)   )binomial	geometrichypergeometric	logseriesmultinomialnegative_binomialpoissonzipf        @2fbead005fc63942decb5326d36a1f32fe2c9d32c904ee61e46866b88447c263@23ead5dcde35d4cfd4ef2c105e4c3d43304b45dc1b1444b7823b9ee4fa144ebb@0d764db64f5c3bad48c8c33551c13b4d07a1e7b470f77629bef6c985cac76fcf@7b59bf2f1691626c5815cdcd9a49e1dd68697251d4521575219e4d2a1b8b2c67@d754fa5b92943a38ec07630de92362dd2e02c43577fc147417dc5b9db94ccdd3@8eb216f7cb2a63cf55605422845caaff002fddc64a7dc8b2d45acd477a49e824@70c891d76104013ebd6f6bcf30d403a9074b886ff62e4e6b8eb605bf1a4673b7@01f074f97517cd5d21747148ac6ca4074dde7fcb7acbaec0a936606fecacd93f)r   r   r   r   r   r   r   r   @8626dd9d052cb608e93d8868de0a7b347258b199493871a1dc56e2a26cacb112@8edd53d272e49c4fc8fbbe6c7d08d563d62e482921f3131d0a0e068af30f0db9@83496cc4281c77b786c9b7ad88b74d42e01603a55c60577ebab81c3ba8d45657@65878a38747c176bc00e930ebafebb69d4e1e16cd3a704e264ea8f5e24f548db@7a984ae6dca26fd25374479e118b22f55db0aedccd5a0f2584ceada33db98605@d636d968e6a24ae92ab52fe11c46ac45b0897e98714426764e820a7d77602a61@956552176f77e7c9cb20d0118fc9cf690be488d790ed4b4c4747b965e61b0bb4@f84ba7feffda41e606e20b28dfc0f1ea9964a74574513d4a4cbc98433a8bfa45module)scopeparamsc                 d    | j                   t        | j                      t        | j                      fS N)param	INT_FUNCSINT_FUNC_HASHES)requests    [/var/www/html/audio_env/lib/python3.12/site-packages/numpy/random/tests/test_randomstate.pyint_funcr7   6   s*    MM9W]]3GMM*, ,    c               #      K   t         j                  j                         } d t         j                  j                  |        yw)z:Ensures that the singleton bitgen is restored after a testN)npr   get_bit_generatorset_bit_generator)orig_bitgens    r6   restore_singleton_bitgenr>   <   s/      ))--/K	II,s   AAc                     t        | d   |d          t        | d   d   |d   d          t        | d   d   |d   d          t        | d   |d          t        | d   |d          y )Nbit_generatorstatekeypos	has_gaussgauss)r
   r	   )abs     r6   assert_mt19937_state_equalrH   D   sr    ?#Q%78qz%(!G*U*;<qz%(!G*U*;<;;07QwZ(r8   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestSeedc                     t        j                  d      }t        |j                  d      d       t        j                  d      }t        |j                  d      d       y )Nr     i      i  )r   RandomStater
   randintselfss     r6   test_scalarzTestSeed.test_scalarM   sF    q!QYYt_c*z*QYYt_c*r8   c                    t        j                  t        d            }t        |j	                  d      d       t        j                  t        j                  d            }t        |j	                  d      d       t        j                  dg      }t        |j	                  d      d       t        j                  dg      }t        |j	                  d      d       y )Nr   rL   i  r   i  rM   i	  )r   rN   ranger
   rO   r:   arangerP   s     r6   
test_arrayzTestSeed.test_arrayS   s    uRy)QYYt_c*ryy}-QYYt_c*s#QYYt_c*
|,QYYt_c*r8   c                     t        t        t        j                  d       t        t        t        j                  d       y )N      r   	TypeErrorr   rN   
ValueErrorrQ   s    r6   test_invalid_scalarzTestSeed.test_invalid_scalar]   s&    i!3!3T:j&"4"4b9r8   c                 H   t        t        t        j                  dg       t        t        t        j                  dg       t        t        t        j                  dg       t        t        t        j                  g d       t        t        t        j                  g d       y )NrY   rZ   r   )   r   r   )ra   r   r[   r^   s    r6   test_invalid_arrayzTestSeed.test_invalid_arrayb   sd    i!3!3dV<j&"4"4rd;j&"4"4zlCj&"4"46HIj&"4"46IJr8   c                    t        t        t        j                  t	        j
                  g t        j                               t        t        t        j                  g dg       t        t        t        j                  g dg dg       y )Ndtypera   r      )      r   )r   r]   r   rN   r:   arrayint64r^   s    r6   test_invalid_array_shapez!TestSeed.test_invalid_array_shapej   s\    j&"4"4bhhrEGXX7O 	Pj&"4"4ykBj&"4"4y7@7B 	Cr8   c                     t        j                  t        d            }t        t              5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr     )r   rN   r   r   r\   seed)rQ   rss     r6   test_cannot_seedzTestSeed.test_cannot_seedr   s>    a)9% 	GGDM	 	 	s   A		Ac                 J    t        t        t        j                  t               y r1   )r   r]   r   rN   r   r^   s    r6   test_invalid_initializationz$TestSeed.test_invalid_initializationw   s    j&"4"4g>r8   N)
__name__
__module____qualname__rS   rW   r_   rc   rm   rr   rt    r8   r6   rJ   rJ   L   s'    ++:
KC
?r8   rJ   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   intre   )r   r   ra   r   )r:   zerosr   r   r   r	   )rQ   r}   ps      r6   test_n_zerozTestBinomial.test_n_zero|   sR     %( 	AAFOOAq)Q./vua8%@	Ar8   c                 `    t        t        t        j                  dt        j
                         y )Nra   )r   r]   r   r   r:   nanr^   s    r6   test_p_is_nanzTestBinomial.test_p_is_nan   s    j&//1bff=r8   N)ru   rv   rw   r   r   rx   r8   r6   rz   rz   {   s    A>r8   rz   c                   B    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestMultinomialc                 4    t        j                  dddg       y )Nr   皙?皙?r   r   r^   s    r6   
test_basiczTestMultinomial.test_basic   s    3c
+r8   c                 4    t        j                  dg d       y )Nr   )r   r           r   r   r   r^   s    r6   test_zero_probabilityz%TestMultinomial.test_zero_probability   s    3 9:r8   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 )NrZ   rj   )r   r   rO   r:   allrQ   xs     r6   test_int_negative_intervalz*TestMultinomial.test_int_negative_interval   sY    fnnR,1r12NN2r1%rQw q2vr8   c           	          ddg}t        t        j                  d|t        j                  d            j
                  d       t        t        j                  d|t        j                  d            j
                  d       t        t        j                  d|t        j                  d            j
                  d       t        t        j                  d|ddg      j
                  d       t        t        j                  d|d      j
                  d       t        t        j                  d|t        j                  d            j
                  d       t        t        t        j                  d|t        d             y )Nr   ra   ra   r   r   r   r   r   r   r   )
r
   r   r   r:   uint32shaperk   r   r\   floatrQ   r~   s     r6   	test_sizezTestMultinomial.test_size   s   #JV''1biil;AA6JV''1biil;AA6JV''1biil;AA6JV''1q!f5;;YGV''1f5;;YGV''1bhhv.>?EE	  	i!3!3QAh	 r8   c                     t        t        t        j                  dddg       t        t        t        j                  dddg       y )Nr   皙?r   皙?r   r]   r   r   r^   s    r6   test_invalid_probz!TestMultinomial.test_invalid_prob   s2    j&"4"4cC:Fj&"4"4cC:Fr8   c                 H    t        t        t        j                  dddg       y )NrZ   r   r   r   r^   s    r6   test_invalid_nzTestMultinomial.test_invalid_n   s    j&"4"4b3*Er8   c                 X   t        j                  d      }|t        j                  |dd d         z  }|dd d   }t        j                  d      }|j                  d|      }t        j                  d      }|j                  dt        j                  |            }t        ||       y )Ng      .@ra   rh   i۠iUr   )pvals)r:   rV   sumr   rN   r   ascontiguousarrayr	   )rQ   r~   r   rng
non_contigcontigs         r6   test_p_non_contiguousz%TestMultinomial.test_p_non_contiguous   s    IIcN	RVVAaddG_!$Q$  ,__S_6
  ,B,@,@,GH:v.r8   c                    t        j                  g dt         j                        }||j                         z  }d}t	        j
                  t        |      5  t        j                  d|       d d d        y # 1 sw Y   y xY w)N)
Gz?r   &.>r   r   r   r   r   r   r   re   z-[\w\s]*pvals array is cast to 64-bit floatingmatchra   )	r:   rk   float32r   pytestraisesr]   r   r   )rQ   r   r   r   s       r6   test_multinomial_pvals_float32z.TestMultinomial.test_multinomial_pvals_float32   sd    HH :ACMAEEG@]]:U3 	)q%(	) 	) 	)s   A88Bc                 4    t        j                  dddg       y )Ng      Y@r   r   r   r^   s    r6   test_multinomial_n_floatz(TestMultinomial.test_multinomial_n_float   s    53*-r8   N)ru   rv   rw   r   r   r   r   r   r   r   r   r   rx   r8   r6   r   r      s1    ,;  GF/).r8   r   c                   N    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zy)TestSetStatec                 X    d}t        j                  |      }|j                         }||fS )NI)r   rN   	get_state)rQ   rp   random_staterA   s       r6   _create_statezTestSetState._create_state   s0    ))$/&&(U""r8   c                     | j                         \  }}|j                  d      }|j                  |       |j                  d      }t        t	        j
                  ||k(               y )N   )r   tomaxint	set_stater   r:   r   rQ   r   rA   oldnews        r6   r   zTestSetState.test_basic   sX    "002e##B'u%##B'scz"#r8   c                     | j                         \  }}|j                  d      }|j                  |       |j                  d      }t        t	        j
                  ||k(               y Nrh   sizer   standard_normalr   r   r:   r   r   s        r6   test_gaussian_resetz TestSetState.test_gaussian_reset   s^    "002e***2u%***2scz"#r8   c                    | j                         \  }}|j                          |j                         }|j                  d      }|j                  |       |j                  d      }t	        t        j                  ||k(               y r   )r   r   r   r   r   r:   r   r   s        r6    test_gaussian_reset_in_media_resz-TestSetState.test_gaussian_reset_in_media_res   sz     #002e$$&&&(***2u%***2scz"#r8   c                 h   | j                         \  }}|d d }|j                  d      }|j                  |       |j                  d      }|j                  |       |j                  d      }t        t	        j
                  ||k(               t        t	        j
                  ||k(               y )Nrb   r   r   r   )rQ   r   rA   	old_statex1x2x3s          r6   test_backwards_compatibilityz)TestSetState.test_backwards_compatibility   s     #002e#2J	))r)2y)))r)2u%))r)2rRx !rRx !r8   c                 N    | j                         \  }}|j                  dd       y Nr   )r   r   rQ   r   _s      r6   test_negative_binomialz#TestSetState.test_negative_binomial   s&     ,,.a&&sC0r8   c                     t        j                  t                     }t        j                  t
              5  |j                         }d d d        t        t              sJ |d   dk(  sJ y # 1 sw Y   &xY w)Nr@   r   )	r   rN   r   r   warnsRuntimeWarningr   
isinstancedict)rQ   rq   rA   s      r6   test_get_state_warningz#TestSetState.test_get_state_warning   sc    (\\.) 	#LLNE	#%&&&_%000	# 	#s   A--A6c                 X   | j                         \  }}|j                         }d|dd  z   }t        t        |j                  |       t        t
        |j                  t        j                  |t                     |j                  d      }|d= t        t        |j                  |       y )N)Unknownra   re   Flegacyr@   )	r   r   r   r]   r   r\   r:   rk   object)rQ   r   rA   	new_states       r6   !test_invalid_legacy_state_settingz.TestSetState.test_invalid_legacy_state_setting   s    "002e&&(!E!"I-	j,"8"8)Di!7!7hhy7	9&&e&4/"j,"8"8%@r8   c                 \   | j                         \  }}|j                  d       |j                  d       |j                          |j	                  d      }t        |d   d       t        j                  t        j                  |            }|j	                  d      }t        ||       y )Nr   r   Fr   rD   ra   )
r   rp   random_sampler   r   r
   pickleloadsdumpsrH   )rQ   r   r   pickled	rs_unpick	unpickleds         r6   test_picklezTestSetState.test_pickle	  s    ,,.a!""3'$$&(((6W[)1-LLl!;<	''u'5	"7I6r8   c                     | j                         \  }}|j                         }|j                          |j                  |       |j	                  d      }t        ||       y )NFr   )r   __getstate__r   __setstate__r   rH   )rQ   r   rA   
attr_states       r6   test_state_settingzTestSetState.test_state_setting  sZ    "002e!..0
$$&!!*-&&e&4":u5r8   c                 b    | j                         \  }}t        |      j                  d      sJ y )NzRandomState(MT19937))r   repr
startswithr   s      r6   	test_reprzTestSetState.test_repr  s.    ,,.aL!,,-CDDDr8   N)ru   rv   rw   r   r   r   r   r   r   r   r   r   r   r   rx   r8   r6   r   r      s;    #$$	$"11	A	76Er8   r   c            	          e Zd Zej                  ej
                  ej                  ej                  ej                  ej                  ej                  ej                  ej                  g	Zd Zd Zd Zd Zd Zd Zej*                  j-                   ej.                  d      j0                  dk  d	
      d        Zd Zd Zy)TestRandintc                     t         j                  j                         }t        t        |j
                  dt               y Nra   re   )r:   r   rN   r   r\   rO   r   )rQ   r   s     r6   test_unsupported_typez!TestRandint.test_unsupported_type'  s&    ii##%iau=r8   c                 0   t         j                  j                         }| j                  D ]  }|t         j                  u rdnt        j
                  |      j                  }|t         j                  u rdn!t        j
                  |      j                  dz   }t        t        |j                  |dz
  ||       t        t        |j                  ||dz   |       t        t        |j                  |||       t        t        |j                  dd|        y )Nr   r   ra   re   )r:   r   rN   itypebooliinfominmaxr   r]   rO   )rQ   r   dtlbndubnds        r6   test_bounds_checkingz TestRandint.test_bounds_checking+  s    ii##%** 	CBbgg1288B<+;+;Dbgg1288B<+;+;a+?D*ckk4!8TL*ckk4L*ckk4RH*ckk1arB	Cr8   c           	         t         j                  j                         }| j                  D ]  }|t         j                  u rdnt        j
                  |      j                  }|t         j                  u rdn!t        j
                  |      j                  dz   }|dz
  }t        |j                  ||dz   d|      |       |}t        |j                  ||dz   d|      |       ||z   dz  }t        |j                  ||dz   d|      |        y )Nr   r   ra   rL   r   rf   )
r:   r   rN   r   r   r   r  r  r
   rO   )rQ   r   r  r  r  tgts         r6   test_rng_zero_and_extremesz&TestRandint.test_rng_zero_and_extremes5  s    ii##%** 	NBbgg1288B<+;+;Dbgg1288B<+;+;a+?D(CS#'BGMCS#'BGM$;1$CS#'BGM	Nr8   c                    t         j                  j                         }| j                  D ]  }|t         j                  u rdnt        j
                  |      j                  }|t         j                  u rdn!t        j
                  |      j                  dz   }	 |j                  |||        y # t        $ r}t        dt        |      z        d }~ww xY w)Nr   r   ra   re   zMNo error should have been raised, but one was with the following message:

%s)r:   r   rN   r   r   r   r  r  rO   	ExceptionAssertionErrorstr)rQ   r   r  r  r  es         r6   test_full_rangezTestRandint.test_full_rangeD  s    ii##%** 		@Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D@D$b1		@  @$ &68;A&? @ @@s   B//	C8CC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 )Nra   )ri      r   r   i   r  r   )	r:   r   rN   r   rO   r   r  r  r   )rQ   r   r  r  valss        r6   test_in_bounds_fuzzzTestRandint.test_in_bounds_fuzzS  s    ii##%**QR. 	)B" ){{1db{A
T)*
a()	) {{1ae277{;
Q
a r8   c           
      "   dddddddddd	}| j                   dd  D ]  }t        j                  d      }t        j                  d	k(  r|j                  d
dd|      }n#|j                  d
dd|      j                         }t        j                  |j                  t        j                              j                         }t        |t        j                  |      j                     |k(          t        j                  d      }|j                  d
ddt               j                  t        j                        }t        j                  |      j                         }t        |t        j                  t               j                     |k(         y )N@509aea74d792fb931784c4b0135392c65aec64beee12b0cc167548a2c3d31e71@7b07f1a920e46f6d0fe02314155a2330bcfd7635e708da50e536c5ebb631a7d4@e577bfed6c935de944424667e3da285012e741892dcb7051a8f1ce68ab05c92f@0fbead0b06759df2cfb55e43148822d4a1ff953c7eb19a5b08445a63bb64fa9e@001aac3a5acb935a9b186cbe14a1ca064b8bb2dd0b045d48abeacf74d0203404)	r   int16int32rl   int8uint16r   uint64uint8ra   ro   littler   r   rL   r  r   )r   r   rN   sys	byteorderrO   byteswaphashlibsha256viewr:   r  	hexdigestr   rf   namer   )rQ   r	  r  r   valress         r6   test_repeatabilityzTestRandint.test_repeatabilityb  sH    \[[[[[[[[] **QR. 
	3B$$T*C }}(kk!QTk<kk!QTk<EEG.."''!23==?CC))*c12
	3   &kk!QTk6;;BGGDnnS!++-BHHTN''(C/0r8   lr   zCannot test with 32-bit C longreasonc           
      (   t        j                  g dg dg dgg dg dg dgg dg dg d	gg d
g dg dgg dg dg dgg      }dD ]F  }t        j                  d      }|j	                  dgdgdggg d|      }t        |||n|d          H y )N)l   Q[ l   dm" l   0 )l   ;i l   vlm l   iXp )i\L_l   ZN iwU')l   <~ l   20l iP?)ifiwLl   @
Vo )l   o\ iwi
1])i{YSl   r=| i)l   0 l   l i&})l   QZ) l   (q l   '}Q )l   WqV1 iMl   't )inMl   b" l   )  )ial    l   S"f )idi98l   nDk )l   Jc i-l    )iMi'*l   l, )N)rj   rh   rh   i90  rZ   r   ra   )rM   r   l       r   )r:   rk   r   rN   rO   r	   )rQ   desiredr   r   r   s        r6   .test_repeatability_32bit_boundary_broadcastingz:TestRandint.test_repeatability_32bit_boundary_broadcasting  s     ((AAAC BAAC BAAC BAAC BAACD E & 	OD$$U+CbTA3,.K $  &AqT-='71:N		Or8   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                  |||      }t        ||       y r   )r:   rl   r   r  r  r   rO   r
   )rQ   r  r	  r  r  actuals         r6   test_int64_uint64_corner_casez)TestRandint.test_int64_uint64_corner_case  s     XXhhrxx $$xx*../yy"((+//!34 d"5VS!r8   c                    t         j                  j                         }| j                  D ]  }|t         j                  u rdnt        j
                  |      j                  }|t         j                  u rdn!t        j
                  |      j                  dz   }|j                  |||      }t        |j                  t        j                  |              t        t        fD ]  }|t        u rdnd}|t        u rdnt        j
                  |      j                  }|t        u rdn!t        j
                  |      j                  dz   }|j                  |||      }t        t        |d              t        t        |      |        y )Nr   r   ra   re   longr   rf   )r:   r   rN   r   r   r   r  r  rO   r
   rf   r|   r   hasattrtype)rQ   r   r  r  r  sampleop_dtypes          r6   test_respect_dtype_singletonz(TestRandint.test_respect_dtype_singleton  s)   ii##%** 	5Bbgg1288B<+;+;Dbgg1288B<+;+;a+?D[[t2[6Frxx|4	5 + 
	+B "$svHd
1(:(>(>Dd
1(:(>(>(BD[[t2[6F001fr*
	+r8   N)ru   rv   rw   r:   r   r  r   r  r  r  r   rl   r  r   r   r  r
  r  r  r,  r   markskipifr   r  r2  r5  r<  rx   r8   r6   r   r   !  s     WWbggrxx299XXryy"((BII7E>CN@!1@ [[))E1?  AOAO,".+r8   r   c                   r   e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Z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. Z0d/ Z1e2jf                  ji                  d0 e5jl                  d1d2      d3e5jn                  d4g      d5        Z8d6 Z9d7 Z:d8 Z;d9 Z<d: Z=d; Z>d< Z?d= Z@d> ZAd? ZBd@ ZCdA ZDdB ZEdC ZFdD ZGdE ZHdF ZIdG ZJdH ZKdI ZLdJ ZMdK ZNdL ZOdM ZPdN ZQdO ZRdP ZSdQ ZTdR ZUdS ZVdT ZWdU ZXdV ZYdW ZZyX)YTestRandomDistr   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||d	
       y )Nrh   r   _\*?琛?<p?,o?H?Z?   decimal)r   rN   rp   randr:   rk   r   rQ   r   r4  r1  s       r6   	test_randzTestRandomDist.test_rand  sc      +!Q((02EF02EF/1CDF G 	"&'2>r8   c                     t        j                  | j                        }|j                         }d}t	        ||d       y )NrB  rH  rI  )r   rN   rp   rK  r   rL  s       r6   test_rand_singletonz"TestRandomDist.test_rand_singleton  s2      +%!&'2>r8   c                 >   t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||d	
       t        j                  | j                        }|j                         }t        ||d   d	
       y )Nrh   r   !<Oq?4u,?3?LI/DͿ@? @HS\@rH  rI  r   r   r   rN   rp   randnr:   rk   r   rL  s       r6   
test_randnzTestRandomDist.test_randn  s      +1a((02EF-/BC-/BCE F 	"&'2>  +!&'$-Dr8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||       y )Nc   rh   r   r      rh   )   )r   rN   rp   rO   r:   rk   r	   rL  s       r6   test_randintzTestRandomDist.test_randint  s]      +S"62((RG "I #J( ) 	67+r8   c                    t        j                  | j                        }t        j                  t
              5  |j                  ddd      }d d d        t        j                  ddgddgd	d
gg      }t        |       t        j                  | j                        }t        j                  t
              5  |j                  dd      }d d d        t        ||dz          y # 1 sw Y   xY w# 1 sw Y   %xY w)Nr\  r]  r^  r   r_  rh   r`  ra  rb  rc     r   )
r   rN   rp   r   r   DeprecationWarningrandom_integersr:   rk   r	   rL  s       r6   test_random_integersz#TestRandomDist.test_random_integers  s      +\\,- 	?((bv(>F	?((RG "I #J( ) 	67+  +\\,- 	;((6(:F	;67S=1	? 	?	; 	;s   C$8C0$C-0C9c                    t        j                  | j                        }|j                  d      }t	        j
                  t        j                        j                  dk(  r/t	        j                  ddgddgdd	ggt        j                  
      }n.t	        j                  ddgddgddggt        j                  
      }t        ||       |j                  | j                         |j                         }t        ||d          y )Nr^  r   ii4Oi˕+iRKiriFbqire   l   K+W+y l   r&&J] l   ;	 l   nBz l   @XHT l   D+l++ rW  )r   rN   rp   r   r:   r   r7  r  rk   rl   r
   )rQ   rq   r4  r1  s       r6   test_tomaxintzTestRandomDist.test_tomaxint  s    		*&)88BGG  J.hhi 8!+i 8!+i 8 :ACKG hh!46I J!46I J!46I J L &(XX/G
 	VW%
		VWT]+r8   c           	         t        j                  t              5  t        j                  t        j                  d      j                  t        j                  d      j                        }d d d        t        j                  d      j                  }t        |       t        j                  t              5  t        j                  d      j                  }t        j                   |t        j                  d      j                         |t        j                  d      j                              }d d d        t        ||       y # 1 sw Y   xY w# 1 sw Y   "xY w)Nr-  )r   r   rg  r   rh  r:   r   r  r
   rf   r9  )rQ   r4  r1  typers       r6   test_random_integers_max_intz+TestRandomDist.test_random_integers_max_int  s     \\,- 	?++BHHSM,=,=,.HHSM,=,=?F	? ((3-##VW%\\,- 	FHHSM&&E++E"((3-2C2C,D,1"((3-2C2C,DFF	F 	VW%	? 	?	F 	Fs   AE7A<EEEc           	         t        j                         5  t        j                  dt               t	        t        t
        j                  t        j                  d      j                         t	        t        t
        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simplefilterrg  r   r   rh  r:   r   r  r^   s    r6   test_random_integers_deprecatedz.TestRandomDist.test_random_integers_deprecated#  s    $$& 	@!!'+=> , 00((3-++-
 , 00((3-++RXXc]->->@	@ 	@ 	@s   B1CCc                 <   t        j                  | j                        }|j                  d      }t	        j
                  ddgddgddgg      }t        ||d	       t        j                  | j                        }|j                         }t        ||d
   d	       y )Nr^  rB  rC  rD  rE  rF  rG  rH  rI  rW  )r   rN   rp   r   r:   rk   r   rL  s       r6   test_random_samplez!TestRandomDist.test_random_sample1  s      +""6*((02EF02EF/1CDF G 	"&'2>  +""$!&'$-Dr8   c                     t        j                  | j                        }|j                  dd      }t	        j
                  g d      }t        ||       y )Nri   )r   rh   r   rh   r   rN   rp   choicer:   rk   r	   rL  s       r6   test_choice_uniform_replacez*TestRandomDist.test_choice_uniform_replace=  s>      +Aq!((<(67+r8   c                     t        j                  | j                        }|j                  ddg d      }t	        j
                  g d      }t        ||       y )Nri   )皙?r|  皙?r}  r~   )ra   ra   r   r   rx  rL  s       r6   test_choice_nonuniform_replacez-TestRandomDist.test_choice_nonuniform_replaceC  sC      +Aq$89((<(67+r8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  g d      }t        ||       y )Nri   rh   Freplace)r   ra   rh   rx  rL  s       r6   test_choice_uniform_noreplacez,TestRandomDist.test_choice_uniform_noreplaceI  sB      +Aq%0((9%67+r8   c                     t        j                  | j                        }|j                  dddg d      }t	        j
                  g d      }t        ||       y )Nri   rh   F)r}  333333?r   r}  r  r~   )r   rh   ra   rx  rL  s       r6    test_choice_nonuniform_noreplacez/TestRandomDist.test_choice_nonuniform_noreplaceO  sE      +Aq%3GH((9%67+r8   c                     t        j                  | j                        }|j                  g dd      }t	        j
                  g d      }t        ||       y )N)rF   rG   cdri   )r  r  r  r  rx  rL  s       r6   test_choice_nonintegerz%TestRandomDist.test_choice_nonintegerU  s@      +0!4((/067+r8   c           	      j   t         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 )NrZ   rh         @ra   r   ri   )ra   r   rh   ri   g      ?r~  )r|  r|  r   r   r   r|  rg   Fr  rb   )rZ   )rZ   ra   )ra   r   r   r  )r   ry  r   r]   )rQ   r:  s     r6   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	2r8   c           
      
   ddg}t        t        j                  t        j                  dd                   t        t        j                  t        j                  dd                   t        t        j                  t        j                  dd|                   t        t        j                  t        j                  dd|                   t        t        j                  t        j                  ddgd                   t        t        j                  d gd      d u        t        j
                  ddg      }t        j                  dt        	      }||d
<   t        t        j                  |d      |u        d}t        t        j                  t        j                  d|d                    t        t        j                  t        j                  d|d                    t        t        j                  t        j                  d|d|                    t        t        j                  t        j                  d|d|                    t        t        j                  t        j                  ddg|d                    t        t        j                  d g|d      j                  d
k(         t        j
                  ddg      }t        j                  dt        	      }||d
<   t        t        j                  ||d      j                         |u        d}g d}t        t        j                  d|d      j                  |       t        t        j                  d|d      j                  |       t        t        j                  d|d|      j                  |       t        t        j                  d|d|      j                  |       t        t        j                  t        j                  d      |d      j                  |       t        t        j                  d
d
d      j                  d       t        t        j                  d
dd
      j                  d       t        t        j                  ddd
      j                  d       t        t        j                  d
d
      j                  d       t        t        j                  g d      j                  d       t        t        j                  ddgd      j                  d       t        t        t        j                  g d       y )Nr}  r   r   Tr  Fr  ra   re   r   rx   )r   rh   )r}  r}  r}  r}  r|  r   r   )rh   r   ri   r   i)r   r   rF   rG   )r   r:   isscalarr   ry  rk   emptyr   ndimitemr
   r   rV   rO   r   r]   )rQ   r~   rF   arrrR   s        r6   test_choice_return_shapez'TestRandomDist.test_choice_return_shapen  s   #JFMM!T:;<FMM!U;<=FMM!TQ?@AFMM!Ua@ABFMM1a&$?@Atfd3t;<HHaVhhq'Ac40A56 BKKaD ABBCBKKaE BCCDBKKaDA FGGHBKKaEQ GHHIBKKq!fa FGGHtfa6;;q@AHHaVhhq'Ac1d388:a?@ *V]]1a6<<a@V]]1a7==qAV]]1a;AA1EV]]1a!<BBAFV]]299Q<DAGGK 	V^^Aqy9??KV^^As3994@V^^B3994@V]]11-33T:V]]2D177>V]]C:I>DD	 j&--R8r8   c                 |    t        j                  g d      }g d}t        t        t        j
                  ||       y )N)*   ra   r   )NNNr~  )r:   rk   r   r]   r   ry  )rQ   rF   r~   s      r6   test_choice_nan_probabilitiesz,TestRandomDist.test_choice_nan_probabilities  s'    HHZ j&--a8r8   c           
      f   t        j                  d      dz  }d|dd d<   t        j                  | j                        }|j                  dd|d d d         }t        j                  | j                        }|j                  ddt        j                  |d d d               }t        ||       y )Nr   rj   r  ra   r   rh   r~  )r:   onesr   rN   rp   ry  r   r	   )rQ   r~   r   r   r   s        r6   test_choice_p_non_contiguousz+TestRandomDist.test_choice_p_non_contiguous  s    GGBK!O!$Q$  +ZZ1#A#Z/
  +AqB$8$83Q3$@A:v.r8   c                     t        j                  | j                        }|j                  d      }d}t	        ||       y )Nr   s
   Ui+Wf)r   rN   rp   bytesr
   rL  s       r6   
test_byteszTestRandomDist.test_bytes  s2      +2.VW%r8   c                     d d d d d d d d d	 d
 d fD ]T  }t        j                  | j                        } |g d      }|j                  |       |} |g d      }t	        ||       V y )Nc                 ,    t        j                  g       S r1   r:   rk   r   s    r6   <lambda>z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rxx| r8   c                     | S r1   rx   r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    q r8   c                 f    t        j                  |       j                  t         j                        S r1   )r:   asarrayastyper  r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BGG< r8   c                 f    t        j                  |       j                  t         j                        S r1   )r:   r  r  r   r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BJJ? r8   c                 f    t        j                  |       j                  t         j                        S r1   )r:   r  r  	complex64r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33BLLA r8   c                 R    t        j                  |       j                  t              S r1   )r:   r  r  r   r  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    rzz!}33F; r8   c                 0    | D cg c]  }||f c}S c c}w r1   rx   r   is     r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    21A2 2s   c                 V    t        j                  | D cg c]  }||g c}      S c c}w r1   )r:   r  r  s     r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s!    rzz1*=aAq6*=> *=s   &c                 D    t        j                  | | g      j                  S r1   )r:   vstackTr  s    r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  s    ryy!Q022 r8   c                     t        j                  | D cg c]  }||f c}dt        fdt        fg      j                  t         j                        S c c}w )NrF   rG   )r:   r  r|   r'  recarrayr  s     r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sE    

A+>qQF+>-0#Jc
+C!E!%bkk!2 +>s   Ac                     t        j                  | D cg c]  }||f c}dt        dfdt         j                  dfg      S c c}w )NrF   ra   rG   )r:   r  r   r  r  s     r6   r  z-TestRandomDist.test_shuffle.<locals>.<lambda>  sB    rzz1*=aAq6*=,/+>,/4+@+B C *=s   A
ra   r   rh   ri   rj   r      r  	   r   
r   ra   r  r   r   ri   rj   r  r  rh   )r   rN   rp   shuffler	   )rQ   convr   alistr4  r1  s         r6   test_shufflezTestRandomDist.test_shuffle  s     , <?A;2>24CD 	0D" $$TYY/C78EKKF9:Gvw/-	0r8   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                  |       t        t        |j                  |j                            t        |j                  |j                                   t        j                  |       t        t        |j                  |j                            t        |j                  |j                                    d }y )Nr   )rj   ri   rh   ra   rZ   2   c                 l    t        j                  d      }t        t        t        j
                  |       y )Nrh   )r:   rk   r   r\   r   r  r   s     r6   test_shuffle_invalid_objectszHTestRandomDist.test_shuffle_masked.<locals>.test_shuffle_invalid_objects  s    A)V^^Q7r8   )r:   mamasked_valuesreshaperU   rV   copyr   r  r
   sorteddatamask)rQ   rF   rG   a_origb_origr  r  s          r6   test_shuffle_maskedz"TestRandomDist.test_shuffle_masked  s   EE

59f = AA ErJEE		" 1A 5r:r 	LANN1qvvqvvg'V[[L0I)JLNN1qvvqvvg'V[[L0I)JL	L	8r8   c                    t        j                  | j                        }g d}|j                  |      }g d}t	        ||       t        j                  | j                        }t        j                  g d      j                  }|j                  |      }t	        |t        j                  |      j                         t        j                  | j                        }d}t        t        t         j                  |       t        j                  | j                        }d}t        t        t         j                  |       d}g d}t        j                  | j                        }|j                  |      }t	        ||       y )Nr  r  abcdg333333?r   )
r  r   r  rj   ra   rh   ri   r  r   r   )
r   rN   rp   permutationr	   r:   
atleast_2dr  r   
IndexError)	rQ   r   r  r4  r1  arr_2d	bad_x_strbad_x_floatinteger_vals	            r6   test_permutationzTestRandomDist.test_permutation  s     +.'067+  +=>@@(62==#9#;#;<  +	j&"4"4i@  +j&"4"4kB0  +-67+r8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr}  r   r^  r   gAKč?ghA?g ҇o>gάXf+q?gS1$?g'8zX ?rH  rI  )r   rN   rp   betar:   rk   r   rL  s       r6   	test_betazTestRandomDist.test_beta  sh      +"bv.(()+BC)+BC)+BCEF 	"&'2>r8   c                 <   t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||       t        j                  | j                        }|j                  dd      }d}t        ||       y )NgZd;Y@gv/?r^  r   %   +   r  0   .   -   )r   rN   rp   r   r:   rk   r	   rL  s       r6   test_binomialzTestRandomDist.test_binomial  s      +gt&9((RHHH& ' 	67+  +gt,67+r8   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr  r^  r   g+Q]uO@g+Q@gY7`ZqP@ge(fG@gvtR@gEIȋR@   rI  )r   rN   rp   	chisquarer:   rk   r   rL  s       r6   test_chisquarezTestRandomDist.test_chisquare  sf      +r/((13GH13GH02FGI J 	"&'2>r8   c                 "   t        j                  | j                        }t        j                  ddg      }|j                  |d      }t        j                  ddgddggd	d
gddggddgddggg      }t        ||d       t        j                  ddg      }t        t        t         j
                  |       t        j                  | j                        }t        j                  ddg      }|j                  |      }t        ||d   d       y )NI<I@EZC@r^  r   gi{s?gn,	A?g]^?gpDB?gȧ#y?gr?g1U?gѨUC?g^,%?gB?gډOoX;?gM`!O?rH  rI  HzG?缉ؗҜrW  )	r   rN   rp   r:   rk   	dirichletr   r   r]   )rQ   r   alphar4  r1  	bad_alphas         r6   test_dirichletzTestRandomDist.test_dirichlet  s     +.0DEFu62((13FG13FGI13FG13FGI13FG13FGI	J K 	"&'2>HHgx01	j&"2"2I>  +.0DEFu%!&'$-Dr8   c                    t        j                  ddg      }t        t        j                  |t        j
                  d            j                  d       t        t        j                  |t        j
                  d            j                  d       t        t        j                  |t        j
                  d            j                  d       t        t        j                  |ddg      j                  d       t        t        j                  |d      j                  d       t        t        j                  |t        j                  d            j                  d       t        t        t        j                  |t        d             y )Nr  r  ra   r   r   r   r   )
r:   rk   r
   r   r  r   r   r   r\   r   r   s     r6   test_dirichlet_sizez"TestRandomDist.test_dirichlet_size)  s   HH*,@ABV%%a16<<fEV%%a16<<fEV%%a16<<fEV%%a!Q066	BV%%a066	BV%%a&)9:@@)Li!1!11eAh?r8   c                 p    t        j                  ddg      }t        t        t        j
                  |       y )Nr  r  )r:   rk   r   r]   r   r  )rQ   r  s     r6   test_dirichlet_bad_alphaz'TestRandomDist.test_dirichlet_bad_alpha5  s'    '8,-j&"2"2E:r8   c                 H   t        j                  g d      }|d d d   }t        j                  | j                        }|j                  |d      }t        j                  | j                        }|j                  t        j                  |      d      }t        ||       y )N)r  g      r  r   r^  r   )r:   rk   r   rN   rp   r  r   r   )rQ   rF   r  r   r   r   s         r6   #test_dirichlet_alpha_non_contiguousz2TestRandomDist.test_dirichlet_alpha_non_contiguous:  s    HHGH#A#  +]]5v]6
  +r33E:'-  /!*f5r8   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Ng8EGr?r^  r   gNU?gbI0?gVU\@g:3@gU?g"qo?rH  rI  )r   rN   rp   exponentialr:   rk   r   rL  s       r6   test_exponentialzTestRandomDist.test_exponentialD  sf      +f5((02EF02EF02EFH I 	"&'2>r8   c                     t        t        j                  d      d       t        t        t        j                  d       y Nr   scale       )r
   r   r  r   r]   r^   s    r6   test_exponential_0z!TestRandomDist.test_exponential_0L  s)    V''a0!4j&"4"4C@r8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )N   M   r^  r   g7?g`j?g6"+?gܳ2>?gc>+Y?g_}S?rH  rI  )r   rN   rp   fr:   rk   r   rL  s       r6   test_fzTestRandomDist.test_fP  sh      +r2F+((02EF02EF02EFH I 	"&'2>r8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nrj   rh   r^  r   gԏGM8@gȌ<@g	":@gv#)@gZQ?@gr[@@   rI  )r   rN   rp   gammar:   rk   r   rL  s       r6   
test_gammazTestRandomDist.test_gammaX  sh      +1af-((13GH13GH13GHJ K 	"&'2>r8   c                     t        t        j                  dd      d       t        t        t        j                  dd       y )Nr   )r   r  r  )r
   r   r  r   r]   r^   s    r6   test_gamma_0zTestRandomDist.test_gamma_0`  s)    V\\3Q7j&,,cEr8   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||       y )	N_c97ݚ?r^  r   r  r     rj   r  )r   rN   rp   r   r:   rk   r	   rL  s       r6   test_geometriczTestRandomDist.test_geometricd  s[      +z7((QFHG% & 	67+r8   c                 N   t        t        t        j                  d       t        t        t        j                  dgdz         t        t        t        j                  d       t        t        t        j                  dgdz         t	        j
                         5  t	        j                  dt               t        t        t        j                  t        j                         t        t        t        j                  t        j                  gdz         d d d        y # 1 sw Y   y xY w)Nr   r   r   ignore)
r   r]   r   r   rq  rr  rs  r   r:   r   r^   s    r6   test_geometric_exceptionsz(TestRandomDist.test_geometric_exceptionsl  s    j&"2"2C8j&"2"2SEBJ?j&"2"2D9j&"2"2TFRK@$$& 	G!!(N;*f&6&6?*f&6&62F	G 	G 	Gs   A9DD$c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr	         @r^  locr  r   gؕ?gs0 ?g#0g(xg-KD?gůp`@rH  rI  )r   rN   rp   gumbelr:   rk   r   rL  s       r6   test_gumbelzTestRandomDist.test_gumbelv  sh      +
#FC((02EF02FG02FGI J 	"&'2>r8   c                     t        t        j                  d      d       t        t        t        j                  d       y r  )r
   r   r  r   r]   r^   s    r6   test_gumbel_0zTestRandomDist.test_gumbel_0~  %    V]]+Q/j&--s;r8   c                    t        j                  | j                        }|j                  dddd      }t	        j
                  ddgddgddgg      }t        ||       |j                  dd	d
d      }t	        j
                  g d      }t        ||       |j                  dd	dd      }t	        j
                  g d      }t        ||       |j                  d	dd
d      }t	        j
                  g d      }t        ||       |j                  d	ddd      }t	        j
                  g d      }t        ||       y )Ng333333$@g      @r  r^  r   r   r  rj   r   rh   ri   )rh   rh   rh   rh   rH  r  )r  r  r  r  )r   r   r   r   )r   rN   rp   r   r:   rk   r	   rL  s       r6   test_hypergeometricz"TestRandomDist.test_hypergeometric  s+     +##D#r#?((RHHF$ % 	67+ ##Aq!!#4((<(67+##B2A#6((+,67+ ##Aq!!#4((<(67+##Ar2A#6((<(67+r8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr	  r  r^  r  g bO?g¸?gpJm	@g{K*t	@g:^w-gY~o?rH  rI  )r   rN   rp   laplacer:   rk   r   rL  s       r6   test_laplacezTestRandomDist.test_laplace  sh      +3VD((02EF02EF13FGI J 	"&'2>r8   c                     t        t        j                  d      d       t        t        t        j                  d       y r  )r
   r   r  r   r]   r^   s    r6   test_laplace_0zTestRandomDist.test_laplace_0  s%    V^^!,a0j&..<r8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr	  r  r^  r  g#K-z?gJ?g92@gر[@g#+^˿g-@rH  rI  )r   rN   rp   logisticr:   rk   r   rL  s       r6   test_logisticzTestRandomDist.test_logistic  sh      +*CfE((02DE02EF13FGI J 	"&'2>r8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr	  r  r^  )meansigmar   gɁ0@go,+4FB@g)ʭ6@g5?gnxNnP@g)U@r  rI  )r   rN   rp   	lognormalr:   rk   r   rL  s       r6   test_lognormalzTestRandomDist.test_lognormal  sh      +JcG((13GH13FG13GHJ K 	"&'2>r8   c                     t        t        j                  d      d       t        t        t        j                  d       y )Nr   )r$  ra   r  )r
   r   r%  r   r]   r^   s    r6   test_lognormal_0zTestRandomDist.test_lognormal_0  s)    V%%A.2j&"2"2#>r8   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||       y )Ngƀ@?r^  )r~   r   r   r   r
  rh   )r   rN   rp   r   r:   rk   r	   rL  s       r6   test_logserieszTestRandomDist.test_logseries  s[      +&9((QFGF$ % 	67+r8   c                 8    t        j                  d      dk(  sJ y )Nr   ra   )r   r   r^   s    r6   test_logseries_zeroz"TestRandomDist.test_logseries_zero  s    "a'''r8   valuer   rZ         ?g      @c                 T   t        j                  d      5  t        j                  t              5  t        j                  |       d d d        t        j                  t              5  t        j                  t        j                  |gdz               d d d        t        j                  t              5  t        j                  t        j                  |gdz        d d d          d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   rxY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nr  invalidr   r   )r:   errstater   r   r]   r   r   rk   )rQ   r-  s     r6   test_logseries_exceptionsz(TestRandomDist.test_logseries_exceptions  s    [[* 	>z* (  '(z* 9  5'B,!789 z* >  5'B,!7!!<=>	> 	>( (9 9> >	> 	>sR   DC:!D(-D!D63D)D:D	?DD	DD	DD'c                     t        j                  | j                        }|j                  ddgdz  d      }t	        j
                  g dg dgg dg d	gg d
g dgg      }t        ||       y )Nr   UUUUUU?r   r^  r   )ri   rh   rj   ri   r   r   )rj   r   r  r   r   ra   )rh   ri   rh   r   r   ri   )r   ra   ri   rh   r   ri   )ri   ri   r   rj   r   rh   )ri   rh   ri   r   rh   ri   )r   rN   rp   r   r:   rk   r	   rL  s       r6   test_multinomialzTestRandomDist.test_multinomial  sp      +fX\?((//1//1//1	2 3 	67+r8   c                    t        j                  | j                        }d}ddgddgg}d}|j                  |||      }t	        j
                  ddgddggd	d
gddggddgddggg      }t        ||d       |j                  ||      }t	        j
                  ddg      }t        ||d       ddg}ddgddgg}t        j                  t        |j                  ||       t        |j                  ||d       t        t        |j                  ||d       t	        j
                  ddgddggt        j                        }t        j                         5  t        j                   dt               |j                  ||       d d d        t	        j"                  d      }t	        j$                  d      }t        t        |j                  ||d       t        t        |j                  t	        j"                  d      |       t        t        |j                  |t	        j&                  d             t        t        |j                  |t	        j$                  d             y # 1 sw Y   xY w)N)r	  r   ra   r   r^  g4Vj?gy'@gI1?gSB#@ge<@g 4W(@g6R¿?g9r
v"@gс?g{#@g4xg"f"@rH  rI  gN}O6?gYMW"@r   r  )check_validraiser}  re   rp  other)r   ra   ra   rh   )r   rN   rp   multivariate_normalr:   rk   r   r   r   r   r   r   r]   r   rq  rr  rs  r}   eyer  )rQ   r   r#  covr   r4  r1  mus           r6   test_multivariate_normalz'TestRandomDist.test_multivariate_normal  sG     +1v1v((sD9((/1BC/1BCE/1CD/1BCE/1BC02CDF	G H 	"&'2> ((s3((-/?@A!&'2> 1v1v1v^S%<%<dCH 	322D#'/	1 	j#"9"94")	+ hhC3(+2::>$$& 	/!!'>:##D#.	/ XXa[ffQij#"9"94")	+j#"9"9hhy)3	0j#"9"9"((6*	,j#"9"9"&&)	%	/ 	/s   -I!!I*c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||       y )Nr   g|Pk?r^  )nr~   r   iP  iI  i|  ic  i  i  )r   rN   rp   r   r:   rk   r	   rL  s       r6   r   z%TestRandomDist.test_negative_binomial  s`      +&&V&D((S#J #J #J( ) 	67+r8   c                 J   t        j                         5  t        j                  dt               t	        t
        t        j                  dt        j                         t	        t
        t        j                  dt        j                  gdz         d d d        y # 1 sw Y   y xY w)Nr  r   r   )
rq  rr  rs  r   r   r]   r   r   r:   r   r^   s    r6   !test_negative_binomial_exceptionsz0TestRandomDist.test_negative_binomial_exceptions  sl    $$& 	)!!(N;*f&>&>RVVL*f&>&>66(R-)	) 	) 	)s   A;BB"c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgdd	gg      }t        ||d
       |j                  ddd      }t	        j
                  ddgddgddgg      }t        ||d
       t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgddgg      }t        ||d
       y )Nrj   r^  )dfnoncr   gG7@g! ܴ*@g1}z9?@g+驸0@g26E_r#@gI!1@r  rI  r   r   g?gTD?g?T?g+qnl?g~|D?g밬?r   g{01#@gprs'@g~;$@g"dI@g*@g}',@)r   rN   rp   noncentral_chisquarer:   rk   r   rL  s       r6   test_noncentral_chisquarez(TestRandomDist.test_noncentral_chisquare  s)     +))QQV)D((13GH13GH02FGI J 	"&'2>))Rbv)F((03FG03FG.1DEG H 	"&'2>  +))QQV)D((.0BC/1BC/1CDF G 	"&'2>r8   c                     t        j                  | j                        }|j                  dddd      }t	        j
                  ddgdd	gd
dgg      }t        ||d       y )Nrj   r   ra   r^  )dfnumdfdenrF  r   g^~?g/+c?g".@g@g7?gE?r  rI  )r   rN   rp   noncentral_fr:   rk   r   rL  s       r6   test_noncentral_fz TestRandomDist.test_noncentral_f4  sr      +!!*0 " 2((02EF02EF02DEG H 	"&'2>r8   c                     t        j                  | j                         t        j                  ddt        j                        }t        j
                  |      sJ y )Nrj   r   )rJ  rK  rF  )r   rp   rL  r:   r   isnan)rQ   r4  s     r6   test_noncentral_f_nanz$TestRandomDist.test_noncentral_f_nan=  s<    DII$$1ABFFCxxr8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr	  r  r^  r  g&&n@gOG_@g~w@gtw]տgm&5@g$>@rH  rI  )r   rN   rp   normalr:   rk   r   rL  s       r6   test_normalzTestRandomDist.test_normalB  sh      +
#FC((02EF.0DE02EFH I 	"&'2>r8   c                     t        t        j                  d      d       t        t        t        j                  d       y r  )r
   r   rR  r   r]   r^   s    r6   test_normal_0zTestRandomDist.test_normal_0J  r  r8   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        j                  j                  ||d
       y )Nr	  r^  rF   r   gWI@gԨy@gy]0Ag1~\Aga@gY
7A   )nulp)r   rN   rp   paretor:   rk   testingassert_array_almost_equal_nulprL  s       r6   test_paretozTestRandomDist.test_paretoN  ss      +jv6(()+BC)+BC)+BCEF 	

11&'1Kr8   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||       y )Nr	  r^  )lamr   r   ra   )r   rN   rp   r   r:   rk   r	   rL  s       r6   test_poissonzTestRandomDist.test_poisson]  s[      +&9((QFFF$ % 	67+r8   c                    t        j                  d      j                  }d}t        t        t
        j                  |       t        t        t
        j                  |gdz         t        t        t
        j                  |       t        t        t
        j                  |gdz         t        j                         5  t        j                  dt               t        t        t
        j                  t         j                         t        t        t
        j                  t         j                  gdz         d d d        y # 1 sw Y   y xY w)Nr-  rZ   r   r  )r:   r   r  r   r]   r   r   rq  rr  rs  r   r   )rQ   lambiglamnegs      r6   test_poisson_exceptionsz&TestRandomDist.test_poisson_exceptionse  s    #""j&..&9j&..6(R-@j&..&9j&..6(R-@$$& 	E!!(N;*fnnbff=*fnnrvvhmD	E 	E 	Es   :A9D<<Ec                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr	  r^  rW  g;'?gܴw*?g5?gFG?g D]?g$`?rH  rI  )r   rN   rp   powerr:   rk   r   rL  s       r6   
test_powerzTestRandomDist.test_powerq  sf      +Zf5((02EF02EF02EFH I 	"&'2>r8   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr   r^  )r  r   g"u+@gN$MB*@g7v8B4@g55@ge&@g~ӣZ1@r  rI  )r   rN   rp   rayleighr:   rk   r   rL  s       r6   test_rayleighzTestRandomDist.test_rayleighy  sf      +BV4((02DE13GH13GHJ K 	"&'2>r8   c                     t        t        j                  d      d       t        t        t        j                  d       y r  )r
   r   ri  r   r]   r^   s    r6   test_rayleigh_0zTestRandomDist.test_rayleigh_0  s%    V__1-q1j&//=r8   c                     t        j                  | j                        }|j                  d      }t	        j
                  ddgddgddgg      }t        ||d	
       y )Nr^  r   gMoDL?g6([9grF=?gM'	- gVgVA:Qy?rH  rI  )r   rN   rp   standard_cauchyr:   rk   r   rL  s       r6   test_standard_cauchyz#TestRandomDist.test_standard_cauchy  sg      +$$&$1((02FG02FG13FGI J 	"&'2>r8   c                     t        j                  | j                        }|j                  d      }t	        j
                  ddgddgddgg      }t        ||d	
       y )Nr^  r   g܁?gc!z?g&N"@gNI@gF>?g~ME?rH  rI  )r   rN   rp   standard_exponentialr:   rk   r   rL  s       r6   test_standard_exponentialz(TestRandomDist.test_standard_exponential  sg      +))v)6((02EF/1DE/1DEG H 	"&'2>r8   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nrh   r^  )r   r   g)@gľ@gd],q@gPk{@g9B#1@gv @r  rI  )r   rN   rp   standard_gammar:   rk   r   rL  s       r6   test_standard_gammaz"TestRandomDist.test_standard_gamma  si      +##!&#9((02EF02EF02CDF G 	"&'2>r8   c                     t        t        j                  d      d       t        t        t        j                  d       y )Nr   )r   r  )r
   r   rt  r   r]   r^   s    r6   test_standard_gamma_0z$TestRandomDist.test_standard_gamma_0  s)    V**3Q7j&"7"7sCr8   c                     t        j                  | j                        }|j                  d      }t	        j
                  ddgddgddgg      }t        ||d	
       y )Nr^  r   rQ  rR  rS  rT  rU  rV  rH  rI  )r   rN   rp   r   r:   rk   r   rL  s       r6   test_standard_normalz#TestRandomDist.test_standard_normal  sg      +$$&$1((02EF.0CD.0CDF G 	"&'2>r8   c                     t        j                  | j                        }|j                         }t	        j
                  d      }t        ||d       y )NrQ  rH  rI  rX  rL  s       r6   test_randn_singletonz#TestRandomDist.test_randn_singleton  s<      +((./!&'2>r8   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr   r^  )rE  r   g\VH?ghU%gH$M?gLgVqdzǿg㖀?rH  rI  )r   rN   rp   
standard_tr:   rk   r   rL  s       r6   test_standard_tzTestRandomDist.test_standard_t  sf      +2F3((02FG02FG13FGI J 	"&'2>r8   c                     t        j                  | j                        }|j                  dddd      }t	        j
                  ddgdd	gd
dgg      }t        ||d       y )Ng{Gz@g(\u$@gףp=
W4@r^  )leftmoderightr   g:}\)@ghرTj(@gǨL30@g6ڜA0@g6sh&@g<,@r  rI  )r   rN   rp   
triangularr:   rk   r   rL  s       r6   test_triangularzTestRandomDist.test_triangular  sp      +TU(.   0((13FG13GH13FGI J 	"&'2>r8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )NGz?gGz%@r^  )lowhighr   g>#H@gu@g#@g}d]#@gN@gw)* @rH  rI  )r   rN   rp   uniformr:   rk   r   rL  s       r6   test_uniformzTestRandomDist.test_uniform  sh      +E?((02EF02EF02EFH I 	"&'2>r8   c                 ,   t        j                  d      j                  }t        j                  d      j                  }t        j
                  }t        t        |t         j                   d       t        t        |dt         j                         t        t        |||       t        t        |t         j                   gdg       t        t        |dgt         j                  g       t	        j
                  t        j                  |d      |dz         y )Nr   r   ra   g ؅W4vC)r  r  )
r:   finfor  r  r   r  r   OverflowErrorinf	nextafter)rQ   fminfmaxfuncs       r6   test_uniform_range_boundsz(TestRandomDist.test_uniform_range_bounds  s    xx $$xx $$~~mTBFF7A6mT1bff5mT46mTRVVG9qc:mTA39
 	2<<a0td{Cr8   c                 z    G d dt         j                        }t        j                  d      j                  |      }t	        t
        t        j                  ||        G d dt         j                        }t        j                  d      j                  |      }t	        t
        t        j                  |dd       y )Nc                       e Zd Zd Zy)GTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloatc                     t         r1   r\   r^   s    r6   	__float__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__      r8   N)ru   rv   rw   r  rx   r8   r6   ThrowingFloatr         r8   r  r.  c                       e Zd Zd Zy)ITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                     t         r1   r  r^   s    r6   __int__zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__  r  r8   N)ru   rv   rw   r  rx   r8   r6   ThrowingIntegerr    r  r8   r  ra   )	r:   ndarrayrk   r'  r   r\   r   r  r   )rQ   r  throwing_floatr  throwing_ints        r6   !test_scalar_exception_propagationz0TestRandomDist.test_scalar_exception_propagation  s    	 BJJ 	  #++M:i$	&	 bjj 	  xx{''8i!6!6aKr8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  p=
ף?r^  r>  kappar   gLZI@g'N"@gkr?gk=m@gډ?g^=\?rH  rI  r   rN   rp   vonmisesr:   rk   r   rL  s       r6   test_vonmiseszTestRandomDist.test_vonmises  sh      +T?((02EF02EF02EFH I 	"&'2>r8   c                     t        j                  | j                         t        j                  ddd      }t        t	        j
                  |      j                                y )Nr   gg5_PG>@B r  )r   rp   r  r   r:   isfiniter   rQ   rs     r6   test_vonmises_smallz"TestRandomDist.test_vonmises_small  s=    DIIOOre<A""$%r8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  g d      }t        ||d       y )Nr   g    cArh   r  )g A^>?g @R7?g x.r  rI  r  rL  s       r6   test_vonmises_largez"TestRandomDist.test_vonmises_large  sK      +3Q7(( 4 5 	"&'1=r8   c                     t        j                  | j                         t        j                  dt        j                        }t        t        j                  |             y )Nr   )r>  r  )r   rp   r  r:   r   r   rO  r  s     r6   test_vonmises_nanz TestRandomDist.test_vonmises_nan  s6    DIIOOr0r8   c                     t        j                  | j                        }|j                  ddd      }t	        j
                  ddgddgd	d
gg      }t        ||d       y )Nr  r  r^  )r#  r  r   gZ@g-g@g8
m?gVP"?g`V?gx^&3?r  rI  )r   rN   rp   waldr:   rk   r   rL  s       r6   	test_waldzTestRandomDist.test_wald
  sh      +t4f=((02EF02EF02EFH I 	"&'2>r8   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgdd	gg      }t        ||d
       y )Nr  r^  rW  g@6?g]A?g(1ڥR?gU?g2_u?g^}-Q?rH  rI  )r   rN   rp   weibullr:   rk   r   rL  s       r6   test_weibullzTestRandomDist.test_weibull  sf      +t&1((02EF02EF02EFH I 	"&'2>r8   c                     t        j                  | j                         t        t        j                  dd      t	        j
                  d             t        t        t         j                  d       y )Nr   r  rW  r  )rF   )r   rp   r
   r  r:   r}   r   r]   r^   s    r6   test_weibull_0zTestRandomDist.test_weibull_0  s?    DIIV^^ab1288B<@j&..C8r8   c                     t        j                  | j                        }|j                  dd      }t	        j
                  ddgddgddgg      }t        ||       y )	Nr  r^  rW  B      ra   rh   r  )r   rN   rp   r   r:   rk   r	   rL  s       r6   	test_zipfzTestRandomDist.test_zipf  s[      +Dv.((RHFG% & 	67+r8   N)[ru   rv   rw   rp   rM  rO  rZ  rd  ri  rk  rn  rt  rv  rz  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=  parametrizer:   r  r   r3  r6  r?  r   rC  rH  rM  rP  rS  rU  r]  r`  rd  rg  rj  rl  ro  rr  ru  rw  ry  r{  r~  r  r  r  r  r  r  r  r  r  r  r  r  rx   r8   r6   r@  r@    s    D??
E,2,&&$@
E,,,,,2&,9\9
/&068$,6?,?E&
@;
6?A??F,G?<,4?=???,( [[W|r||B';R&LM	> N	>	,0%d,)?*? 
?<L,
E??>???D?????D L,?&>
??9
,r8   r@  c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!y )!TestBroadcast[c                 F   dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        j                  | j                        }|j                  ||dz        }t        ||d       y )Nr   ra   gl?g_x?g=*BN?rh   r  rI  )r:   rk   r   rN   rp   r  r   )rQ   r  r  r1  r   r4  s         r6   r  zTestBroadcast.test_uniform-  s    cs(( 1 2   +S1Wd+!&'2>  +S$(+!&'2>r8   c                    dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         y )Nr   ra   rZ   )g-r@gYl@g-`w?rh   r  rI  )	r:   rk   r   rN   rp   rR  r   r   r]   rQ   r  r  	bad_scaler1  r   r4  s          r6   rS  zTestBroadcast.test_normal<  s    cD	(( 0 1   +C!GU+!&'2>j#**cAgyA  +C+!&'2>j#**c9q=Ar8   c                 J   dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )	Nra   r   rZ   rb   )gnQVf?gVKB?gv`k?rh   r  rI  )	r:   rk   r   rN   rp   r  r   r   r]   )rQ   rF   rG   bad_abad_br1  r   r4  s           r6   r  zTestBroadcast.test_betaN  s    CC(( 1 2   +!a%#!&'2>j#((EAIq9j#((AE59  +!QU#!&'2>j#((E1q59j#((Auqy9r8   c                     dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y Nra   rZ   )g.UgZ?gi Prq?gEK?rh   r  rI  )	r:   rk   r   rN   rp   r  r   r   r]   rQ   r  r  r1  r   r4  s         r6   r  zTestBroadcast.test_exponentialc  sk    D	(( 1 2   ++!&'2>j#//9q=Ar8   c                     dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y r  )	r:   rk   r   rN   rp   rt  r   r   r]   )rQ   r   	bad_shaper1  r   r4  s         r6   ru  z!TestBroadcast.test_standard_gammao  so    D	(( 1 2   +##EAI.!&'2>j#"4"4i!mDr8   c                 J   dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )	Nra   r   rZ   rb   )g.UgZ?gi Prq?gEK?rh   r  rI  )	r:   rk   r   rN   rp   r  r   r   r]   )rQ   r   r  r  r  r1  r   r4  s           r6   r  zTestBroadcast.test_gamma{  s    D	D	(( 0 1   +519e,!&'2>j#))Y]EBj#))UQY	B  +5%!),!&'2>j#))Y	Bj#))UIMBr8   c                 J   dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )	Nra   r   rZ   rb   )gbyʜ?go?gT7@rh   r  rI  )	r:   rk   r   rN   rp   r   r   r   r]   )rQ   rJ  rK  	bad_dfnum	bad_dfdenr1  r   r4  s           r6   r  zTestBroadcast.test_f  s    D	D	(( 0 1   +uqy%(!&'2>j#%%Q>j#%%I>  +ueai(!&'2>j#%%EAI>j#%%	A>r8   c           
         dg}dg}dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  ||      }	t        |	|d	       t        j                  t        j                  |j                  ||t         j                  gdz                    sJ t        t        |j
                  |dz  ||       t        t        |j
                  |dz  ||       t        t        |j
                  |dz  ||       t        j                  | j                        }|j                  ||dz  |      }	t        |	|d	       t        t        |j
                  ||dz  |       t        t        |j
                  ||dz  |       t        t        |j
                  ||dz  |       t        j                  | j                        }|j                  |||dz        }	t        |	|d	       t        t        |j
                  |||dz         t        t        |j
                  |||dz         t        t        |j
                  |||dz         y )
Nr   rh   ri   r   rZ   rb   )gr^G"@g/*@gц!@r  rI  )r:   rk   r   rN   rp   rL  r   r   rO  r   r   r]   )
rQ   rJ  rK  rF  r  r  bad_noncr1  r   r4  s
             r6   rM  zTestBroadcast.test_noncentral_f  s   sC	D	4(( 0 1   +!!%!)UD9!&'2>vvbhhs//urvvhlKLMMMj#"2"2IM5$Oj#"2"2EAIy$Oj#"2"2EAIuhO  +!!%D9!&'2>j#"2"2Iuqy$Oj#"2"2E9q=$Oj#"2"2E519hO  +!!%q9!&'2>j#"2"2IudQhOj#"2"2E9dQhOj#"2"2E5(Q,Or8   c                     t        j                  | j                        }t        j                  ddg      }|j                  dddd      }t        ||d       y )Ngaz@gn4M;%?r   r   r   r  rI  )r   rN   rp   r:   rk   rL  r   )rQ   r   r1  r4  s       r6   test_noncentral_f_small_dfz(TestBroadcast.test_noncentral_f_small_df  sP      +((-/@AB!!#sAA!6!&'2>r8   c                     dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y )Nra   rZ   )g~}N??g$F?g'rS?rh   r  rI  )	r:   rk   r   rN   rp   r  r   r   r]   rQ   rE  bad_dfr1  r   r4  s         r6   r  zTestBroadcast.test_chisquare  sk    S(( 0 1   +rAv&!&'2>j#--!<r8   c                 J   dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )	Nra   r   rZ   rb   )g w "@g2WR@gRY@rh   r  rI  )	r:   rk   r   rN   rp   rG  r   r   r]   )rQ   rE  rF  r  r  r1  r   r4  s           r6   rH  z'TestBroadcast.test_noncentral_chisquare  s    Ss4(( 0 1   +))"q&$7!&'2>j#":":FQJMj#":":BFHM  +))"dQh7!&'2>j#":":FD1HMj#":":B1Mr8   c                 @   dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         t        t        t        j
                  |dz         y )Nra   rZ   )gT@g~Fl@gƚtp?rh   r  rI  )	r:   rk   r   rN   rp   r}  r   r   r]   r  s         r6   r~  zTestBroadcast.test_standard_t  s    S(( 0 1   +Q'!&'2>j#..&1*=j&"3"3VaZ@r8   c                    dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         y )Nr   ra   rZ   )gW!@gOBg}?rh   r  rI  )	r:   rk   r   rN   rp   r  r   r   r]   )rQ   r>  r  	bad_kappar1  r   r4  s          r6   r  zTestBroadcast.test_vonmises  s    SD	(( 1 2   +b1fe,!&'2>j#,,Q	B  +b%!),!&'2>j#,,IMBr8   c                 @   dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         t        t        t        j
                  |dz         y )Nra   rZ   )g&8??geFX?gՋː?rh   r  rI  )	r:   rk   r   rN   rp   rZ  r   r   r]   rQ   rF   r  r1  r   r4  s         r6   r]  zTestBroadcast.test_pareto  s    C(( 0 1   +AE"!&'2>j#**eai8j&--;r8   c                 @   dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         t        t        t        j
                  |dz         y r  )	r:   rk   r   rN   rp   r  r   r   r]   r  s         r6   r  zTestBroadcast.test_weibull  s    C(( 1 2   +QU#!&'2>j#++uqy9j&..%!)<r8   c                 @   dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         t        t        t        j
                  |dz         y )Nra   rZ   r  rh   r  rI  )	r:   rk   r   rN   rp   rf  r   r   r]   r  s         r6   rg  zTestBroadcast.test_power'  s    C(( 1 2   +1q5!!&'2>j#))UQY7j&,,	:r8   c                    dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         y )Nr   ra   rZ   )g:BKc?g3k?g~q?rh   r  rI  )	r:   rk   r   rN   rp   r  r   r   r]   r  s          r6   r  zTestBroadcast.test_laplace4  s    cD	(( 2 3   +S1We,!&'2>j#++sQw	B  +S%!),!&'2>j#++sIMBr8   c                    dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         y )Nr   ra   rZ   )g'Zy?gdSO=?g3L1?rh   r  rI  )	r:   rk   r   rN   rp   r  r   r   r]   r  s          r6   r  zTestBroadcast.test_gumbelF  s    cD	(( 1 2   +C!GU+!&'2>j#**cAgyA  +C+!&'2>j#**c9q=Ar8   c                     dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        |j                  dd	      d       y )
Nr   ra   rZ   )gy?gJR?g
~&?rh   r  rI  r.  r   )
r:   rk   r   rN   rp   r   r   r   r]   r
   r  s          r6   r!  zTestBroadcast.test_logisticX  s    cD	(( 2 3   +cAgu-!&'2>j#,,aC  +c519-!&'2>j#,,Y]CS\\#s+S1r8   c                 T   dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        t        j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        t        t        j
                  ||dz         y )Nr   ra   rZ   )gH"@gܮ @gvv	:@rh   r  rI  )	r:   rk   r   rN   rp   r%  r   r   r]   )rQ   r#  r$  	bad_sigmar1  r   r4  s          r6   r&  zTestBroadcast.test_lognormalk  s    sD	(( 0 1   +tax/!&'2>j#--9Ej&"2"2D1HiH  +tUQY/!&'2>j#--y1}Ej&"2"2D)a-Hr8   c                     dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||d       t        t        |j
                  |dz         y )Nra   rZ   )gݱlo?g/ӂ?gz~R?rh   r  rI  )	r:   rk   r   rN   rp   ri  r   r   r]   r  s         r6   rj  zTestBroadcast.test_rayleigh  sk    D	(( 0 1   +eai(!&'2>j#,,	A>r8   c                 F   dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||d       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        t        t        j
                  |dz  |       t        t        t        j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||d       t        t        |j
                  ||dz         t        t        |j
                  ||dz         t        t        |j
                  d	d       t        t        |j
                  dd	       y )
Nr   ra   r   rb   )g@m e?g`I߿?g|2?rh   r  rI  r   )	r:   rk   r   rN   rp   r  r   r   r]   )rQ   r#  r  bad_meanr  r1  r   r4  s           r6   r  zTestBroadcast.test_wald  sC   u3D	(( 0 1   +$(E*!&'2>j#((HqL%@j#((D1Hi@j&++x!|UCj&++taxC  +$	*!&'2>j#((Heai@j#((D)a-@j#((C3j#((C5r8   c                    dg}dg}dg}dg}dg}|dz  \  }}t        j                  g d      }t        j                  | j                        }	|	j                  |dz  ||      }
t        |
|d       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        j                  | j                        }	|	j                  ||dz  |      }
t        |
|d       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        j                  | j                        }	|	j                  |||dz        }
t        |
|d       t        t        |	j
                  |||dz         t        t        |	j
                  |||dz         t        t        |	j
                  |||dz         t        t        |	j
                  dd	d
       t        t        |	j
                  ddd
       t        t        |	j
                  ddd       y )Nra   rh   r   ri   )g,P;bD @g%G @g,~S @r  rI  r   r   g      4@g      9@)	r:   rk   r   rN   rp   r  r   r   r]   )rQ   r  r  r  bad_left_onebad_mode_onebad_left_twobad_mode_twor1  r   r4  s              r6   r  zTestBroadcast.test_triangular  s   ssss%*QY"l(( 0 1   +q$6!&'2>j#..,2BD%Pj#..$(L%Pj#..,2BL	   +dQh6!&'2>j#..,q%Pj#..$q8H%Pj#..,q@P	   +dEAI6!&'2>j#..,eaiPj#..$eaiPj#..,ai	! 	j#..#r3?j#..#sC@j#..#sC@r8   c                    dg}dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||       t        t        |j
                  ||dz         t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )Nra   r   rZ         ?ra   ra   ra   rh   )	r:   rk   r   rN   rp   r   r	   r   r]   	rQ   rA  r~   bad_n	bad_p_one	bad_p_twor1  r   r4  s	            r6   r  zTestBroadcast.test_binomial  s   CED	E	((9%  +a!eQ'67+j#,,	1=j#,,AyAj#,,AyA  +aQ'67+j#,,q1u=j#,,9q=Aj#,,9q=Ar8   c                    dg}dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz  |      }t        ||       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        t        |j
                  |dz  |       t        j                  | j                        }|j                  ||dz        }t        ||       t        t        |j
                  ||dz         t        t        |j
                  ||dz         t        t        |j
                  ||dz         y )Nra   r   rZ   r  )ra   r   ra   rh   )	r:   rk   r   rN   rp   r   r	   r   r]   r  s	            r6   r   z$TestBroadcast.test_negative_binomial  s+   CED	E	((9%  +&&q1ua067+j#"7"7AFj#"7"7Q	Jj#"7"7Q	J  +&&q!a%067+j#"7"7AFj#"7"7IMJj#"7"7IMJr8   c                 |   t        j                         j                  }dg}dg}|dz  g}t        j                  g d      }t        j                  | j
                        }|j                  |dz        }t        ||       t        t        |j                  |dz         t        t        |j                  |dz         y )Nra   rZ   r   )ra   ra   r   rh   )
r   rN   _poisson_lam_maxr:   rk   rp   r   r	   r   r]   )rQ   max_lamr_  bad_lam_onebad_lam_twor1  r   r4  s           r6   r`  zTestBroadcast.test_poisson  s    $$&77cd{m((9%  +S1W%67+j#++{Q?j#++{Q?r8   c                    dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||       t        t        |j
                  |dz         t        j                  d      5  t        t        |j
                  t         j                         t        t        |j
                  ddt         j                  g       d d d        y # 1 sw Y   y xY w)Nr   r   )r   r   ra   rh   r  r0  )r:   rk   r   rN   rp   r   r	   r   r]   r2  r   r  s         r6   r  zTestBroadcast.test_zipf  s    C((9%  +!a%67+j#((EAI6[[* 	@*chh7*chhArvv?	@ 	@ 	@s   AC00C9c                 :   dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||       t        t        |j
                  |dz         t        t        |j
                  |dz         y )Nr   rZ   r  r   rh   )	r:   rk   r   rN   rp   r   r	   r   r]   rQ   r~   r  r  r1  r   r4  s          r6   r  zTestBroadcast.test_geometric  s}    ED	E	((9%  +q1u%67+j#--Q?j#--Q?r8   c                    dg}dg}dg}dg}dg}dg}dg}t        j                  g d      }t        j                  | j                        }	|	j                  |dz  ||      }
t        |
|       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        t        |	j
                  |dz  ||       t        j                  | j                        }	|	j                  ||dz  |      }
t        |
|       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        t        |	j
                  ||dz  |       t        j                  | j                        }	|	j                  |||dz        }
t        |
|       t        t        |	j
                  |||dz         t        t        |	j
                  |||dz         t        t        |	j
                  |||dz         t        t        |	j
                  |||dz         t        t        |	j
                  dd	d
       t        t        |	j
                  d	dd
       t        t        |	j
                  d	d	d       t        t        |	j
                  d	d	d       y )Nra   r   rZ   rb   r   ri   r  rh   r   r      )	r:   rk   r   rN   rp   r   r	   r   r]   )rQ   ngoodnbadnsample	bad_ngoodbad_nbadbad_nsample_onebad_nsample_twor1  r   r4  s              r6   r  z!TestBroadcast.test_hypergeometric  sy   s#D	4##((9%  +##EAItW=67+j#"4"4i!mT7Sj#"4"4eai7Sj#"4"4eaiWj#"4"4eaiW  +##E4!8W=67+j#"4"4i7Sj#"4"4eX\7Sj#"4"4eTAXWj#"4"4eTAXW  +##E41=67+j#"4"4iwQR{Sj#"4"4eXwQR{Sj#"4"4eT?UVCVWj#"4"4eT?UVCVWj#"4"4b"bAj#"4"4b"bAj#"4"4b"a@j#"4"4b"bAr8   c                 :   dg}dg}dg}t        j                  g d      }t        j                  | j                        }|j                  |dz        }t        ||       t        t        |j
                  |dz         t        t        |j
                  |dz         y )Nr   r   rZ   r  rh   )	r:   rk   r   rN   rp   r   r	   r   r]   r  s          r6   r*  zTestBroadcast.test_logseriesE  s}    EC	D	((9%  +q1u%67+j#--Q?j#--Q?r8   N)"ru   rv   rw   rp   r  rS  r  r  ru  r  r  rM  r  r  rH  r~  r  r]  r  rg  r  r  r!  r&  rj  r  r  r  r   r`  r  r  r  r*  rx   r8   r6   r  r  (  s     D?B$:*
B
EC*?* PD?
=N*AC$<=;C$B$2&I(
?62%ANB,K,@@
@%BN
@r8   r  zcan't start threadr.  c                   4    e Zd Z ed      Zd Zd Zd Zd Zy)
TestThreadri   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                  |      |f      & }}}|D 	cg c]  }	|	j                          c}	 |D 	cg c]  }	|	j                          c}	 t        | j
                  |      D ]!  \  }} |t        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argsri   win32)	threadingr  r:   r  lenseedszipr   rN   startjoinintprf   itemsizer"  platformr   r	   )
rQ   functionszr  out1out2rR   otr   s
             r6   check_functionzTestThread.check_functionW  s'   $xxTZZ*R/0xxTZZ*R/0 TZZ.0A 86+=+=a+@!*DE 0 0qa 

D) 	/DAqV''*A.	/ 779??##q(S\\W-D%dD1tT*0s   8)E2(E8E=c                 0    d }| j                  |d       y )Nc                 .    | j                  d      |d<   y )N'  r   .)rR  rA   outs     r6   
gen_randomz*TestThread.test_normal.<locals>.gen_randomn  s    |||/CHr8   )r'  r  r$  rQ   r*  s     r6   rS  zTestThread.test_normalm  s    	0 	J84r8   c                 0    d }| j                  |d       y )Nc                 T    | j                  t        j                  d            |d<   y )Nr   rL   r  .)r  r:   r  r(  s     r6   r*  z'TestThread.test_exp.<locals>.gen_randomt  s"    ((rww{/C(DCHr8   r0  r+  r,  r-  s     r6   test_expzTestThread.test_exps  s    	E 	J;7r8   c                 0    d }| j                  |d       y )Nc                 :    | j                  ddgdz  d      |d<   y )Nr   r5  r   r'  r   .)r   r(  s     r6   r*  z/TestThread.test_multinomial.<locals>.gen_randomz  s#    ((fX\(FCHr8   )r'  r   r+  r,  r-  s     r6   r6  zTestThread.test_multinomialy  s    	G 	J:6r8   N)	ru   rv   rw   rU   r  r$  rS  r1  r6  rx   r8   r6   r  r  R  s!     !HE+,587r8   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestSingleEltArrayInputc                     t        j                  dg      t        j                  dg      t        j                  dg      dfS )Nr   rh   ri   r  r  r^   s    r6   _create_arraysz&TestSingleEltArrayInput._create_arrays  s/    xx}bhhsmRXXqc]D@@r8   c                 f   | j                         \  }}}}t        j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  f}t        j                  t        j                  f}|D ]A  }||v r |t        j                  dg            }n ||      }t!        |j"                  |       C y r   )r7  r   r  rt  r  r}  rZ  r  rf  ri  r   r   r   r   r:   rk   r
   r   )rQ   argOner   tgtShapefuncs	probfuncsr  r)  s           r6   test_one_arg_funcsz*TestSingleEltArrayInput.test_one_arg_funcs  s    !%!4!4!61h##V%:%:!!6#4#4v!!6#3#35 %%v'7'78	 	.Dy 288SE?+ 6lH-	.r8   c                 $   | j                         \  }}}}t        j                  t        j                  t        j                  t        j
                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  f}t        j                  t        j                  f}|D ]  }||v rt!        j"                  dg      }n|} |||      }t%        |j&                  |        ||d   |      }t%        |j&                  |        |||d         }t%        |j&                  |        y )Nr   r   )r7  r   r  rR  r  r  r   rG  r  r  r  r   r%  r  r   r   r:   rk   r
   r   )	rQ   r9  argTwor   r:  r;  r<  r  r)  s	            r6   test_two_arg_funcsz*TestSingleEltArrayInput.test_two_arg_funcs  s   &*&9&9&;#8fll666&..!!6;;&":":< __f&>&>?	 	.Dy 3%  vv&CH-vay&)CH-vvay)CH-	.r8   c                 f   | j                         \  }}}}t        j                  t        j                  t        j                  g}|D ]h  } ||||      }t        |j                  |        ||d   ||      }t        |j                  |        |||d   |      }t        |j                  |       j y Nr   )r7  r   rL  r  r   r
   r   )rQ   r9  r?  argThreer:  r;  r  r)  s           r6   test_three_arg_funcsz,TestSingleEltArrayInput.test_three_arg_funcs  s    -1-@-@-B*($$f&7&7&&(  	.Dvvx0CH-vay&(3CH-vvay(3CH-	.r8   N)ru   rv   rw   r7  r=  r@  rD  rx   r8   r6   r5  r5    s    A.(.8.r8   r5  c                     t        j                  d       | \  }}}t        t         |      } ||ddi}t        |j                  t        j                  d      k(         y )Nr  r   r   r-  )r   rp   getattrr   rf   r:   )r7   fnamer  r&  r   r4  s         r6   test_integer_dtyperH    sN    
KK	"E4A1FFLLBHHSM)*r8   c                 D   t        j                  d      }| \  }}}t        ||      } ||ddi}t        j                  dk7  r|j                         }t        j                  |j                  t        j                              j                         }t        ||k(         y )Nr  r   r  r!  )r   rN   rF  r"  r#  r$  r%  r&  r'  r:   r  r(  r   )r7   r   rG  r  r&  r   r*  r+  s           r6   test_integer_repeatrJ    s    


Y
'C"E4UA
T
 
 C
}} lln
.."''*
+
5
5
7CC6Mr8   c                     t        j                  t              5  t        j                  dddgd       d d d        t        j                  t              5  t        j                  ddgdd       d d d        t        j                  t              5  t        j                  ddgddgd       d d d        y # 1 sw Y   xY w# 1 sw Y   TxY w# 1 sw Y   y xY w)Nra   r  gffffff?)r   ra   r   r   )r   r   r]   r   r   rx   r8   r6   test_broadcast_size_errorrL    s    	z	" 4C:F34	z	" 2A&12	z	" 9Ac
89 9	4 42 29 9s#   B8CC8CCCc                     t         j                  j                  t        d            } | j	                  d       | j                         \  }}}|d   j                  j                  dk(  sJ  |d }|j                  |       |j                  d      }t        |d   |d          t        |d   d	   |d   d	          t        |d   d
   |d   d
          t        |d   |d          t        |d   |d          y )Nr   ra   r   )r   Fr   r@   rA   rB   rC   rD   rE   )r:   r   rN   r   r   
__reduce__	__class__ru   r   r   r
   r	   )rq   ctorr  state_arG   state_bs         r6   &test_randomstate_ctor_old_style_picklerS    s    			wqz	*Bq--/D$7%%222lAKKkkk'G)7?+CDww'.0@0GHww'.0@0GH%w{';<!77#34r8   z0np.random.set_bit_generator affects global statec                 f   t         j                  j                  d      }|j                  }t         j                  j	                  |       t        t         j                  j                  j                  j                  t        |            sJ t         j                  j                         }||u sJ y rB  )r:   r   default_rngr@   r<   r   mtrand_rand_bit_generatorr9  r;   )r>   def_bgbg	second_bgs       r6   test_hot_swapr\    s}     YY""1%F			BII#bii&&,,;;T"XFFF		++-I??r8   c                    t        d      }t        j                  j                  |       t        j                  j	                  d      }t        j                  j                  d       t        j                  j	                  d      }t        |       t        |       |d   dk(  sJ |d   d   |d   d   k7  sJ |d   d   |d   d   k7  sJ y )	Nr   Fr   ra   r@   r   rA   inc)r   r:   r   r<   r   rp   print)r>   rZ  rA   r   s       r6   test_seed_alt_bit_genr`    s     
qBII#IIu-EIINN1		##5#1I	%L	)!W,,,>'"i&8&AAAA>% Ig$6u$====r8   c                 2   t         j                  j                         }t        d      }t         j                  j	                  |       t        j                  t        d      5  t         j                  j                  |       d d d        y # 1 sw Y   y xY w)Nr   zstate must be for a PCG64r   )	r:   r   r   r   r<   r   r   r]   r   )r>   rA   rZ  s      r6   test_state_error_alt_bit_genrb    sg     II!E	qBII#	z)D	E #
		E"# # #s   $ BBc                 p   t         j                  j                  d       t         j                  j                  ddd      }t	        d      }|j
                  }t         j                  j                  |       t         j                  j                  d      }|D ]  }||   ||   k(  rJ  t         j                  j                  d       t         j                  j                  ddd      }t        j                  ||k(        rJ |j
                  }|d   d   |d   d   k7  sJ |d   d   |d   d   k(  sJ y )	Ń r      @r   Fr   rA   r^  )	r:   r   rp   rO   r   rA   r<   r   r   )r>   r  rZ  rA   state_directfieldpcg_valsr   s           r6   test_swap_workedri    s    IINN599Q,D	qBHHEII#99&&e&4L 3U||E22223IINN5yy  GR0Hvvdh&'''IWg&%.*AAAAWe$	'(:5(AAAAr8   c                 $   t         j                  j                  t        d             t         j                  j	                  ddd      }t         j                  j                  t        d            }|j	                  ddd      }t        ||       y )Nrd  r   re  r   )r:   r   r<   r   rO   rN   r
   )r>   singleton_valsrgnon_singleton_valss       r6   %test_swapped_singleton_against_directrn  -  sf    IIe-YY&&q'26N			uU|	,BAw3#^4r8   )2r%  r   r"  rq  r   numpyr:   r   numpy.randomr   r   numpy.testingr   r   r   r	   r
   r   r   r  r3   r   r7  r  r4   fixturer7   r>   rH   rJ   rz   r   r   r   r@  r  r=  r>  r  r5  rH  rJ  rL  rS  thread_unsafer\  r`  rb  ri  rn  rx   r8   r6   <module>rt     sq     
     '   &+c!12"+	 288BGG5 ,n,n,n,n,n,n,n,nO -o,n,n,n,n,n,n,nO hy1, 2,
 - -),? ,?^> >6. 6.r[E [E|e+ e+P\, \,~g@ g@T G$89*7 *7 :*7\A. A.J+95$ "TU V "TU> V> "TU# V# "TUB VB$ "TU5 V5r8   