+
    Bi                        ^ RI t ^ RIt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt	^ RI
Ht ^ RIHtHtHtHtHtHt ^ RI	Ht ^ RIHt ^ RIHtHt  ! R R4      t ! R	 R
4      t ]P6                  ! 4       P                  4        Rt] P<                  ! ]R4       ! R R]] P>                  4      4       t  ! R R] P>                  4      t! ! R R]] P>                  4      t"R],          R,          3R lt# ! R R] P>                  4      t$ ! R R] P>                  4      t% ! R R] P>                  4      t& ! R R] P>                  4      t'](R8X  d   ] PR                  ! 4        R# R#   ] d    Rt Li ; i)     N)partial)logexppifsumsin	factorial)support)Fraction)abcCounterc                   ,   a  ] tR t^t o R tR tRtV tR# )MyIndexc                    Wn         R # Nvalue)selfr   s   &&'/usr/lib/python3.14/test/test_random.py__init__MyIndex.__init__   s    
    c                    V P                   # r   r   r   s   &r   	__index__MyIndex.__index__   s    zzr   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes____classdictcell____classdict__s   @r   r   r      s      r   r   c                   l  a  ] tR t^t o R tR tR tR tR t]	P                  P                  R4      R 4       tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR t]P<                  R 4       tR t R t!R t"R t#R t$R t%R t&]'](3R  lt)R! t*R" t+R# t,R$ t-R% t.R& t/R' t0R( t1R)t2V t3R*# )+TestBasicOpsc                p    \        V4       Uu. uF  q P                  P                  4       NK  	  up# u upi )z0Helper function to make a list of random numbers)rangegenrandom)r   nis   && r   
randomlistTestBasicOps.randomlist   s'    +0848a!8444s   "3c                $   V P                   P                  4        V P                   P                  4       p\        P                  ! R 4       V P                   P                  4        V P                   P                  4       pV P                  W4       R# )皙?N)r)   seedgetstatetimesleepassertNotEqual)r   state1state2s   &  r   test_autoseedTestBasicOps.test_autoseed#   sY    ""$

3""$F+r   c                
   R pV P                   P                  4        V P                   P                  4       pV P                  V4      pV P                   P	                  V4       V P                  W0P                  V4      4       R# )  N)r)   r1   r2   r-   setstateassertEqual)r   Nstaterandseqs   &   r   test_saverestoreTestBasicOps.test_saverestore+   s]    !!#//!$% //!"45r   c                    ! R  R\         4      pR F  pV P                  P                  V4       K   	  R\        R4      V! 4       3 FD  pV P	                  \
        4      ;_uu_ 4        V P                  P                  V4       RRR4       KF  	  \        \        ^4      4      \        ^R7      3 F.  pV P	                  \
        V P                  P                  V4       K0  	  V P	                  \
        V P                  P                  ^^^^4       V P	                  \
        \        V P                  4      . 4       R#   + '       g   i     EK  ; i)c                   &   a  ] tR t^5t o R tRtV tR# )*TestBasicOps.test_seedargs.<locals>.MySeedc                    R# )i  i? r   s   &r   __hash__3TestBasicOps.test_seedargs.<locals>.MySeed.__hash__6   s    r   rG   N)r   r   r   r    rH   r!   r"   r#   s   @r   MySeedrE   5   s      r   rJ   Nr   )one)
Nr      l      Fx:^V    Fx:^V FTQ	@ay      ?       @)
objectr)   r1   tupleassertRaises	TypeErrorlistr(   dicttype)r   rJ   args   &  r   test_seedargsTestBasicOps.test_seedargs3   s    	V 	,CHHMM#, %,1C""9--c" .- 2 qNDQK0Ci< 1)TXX]]Aq!Q?)T$((^R8 .--s   'D;;Ec                    \        R 4      pV P                  P                  V4       V P                  V\        R 4      4       R# )s   1234N)	bytearrayr)   r1   r=   )r   rP   s   & r   test_seed_no_mutate_bug_44018*TestBasicOps.test_seed_no_mutate_bug_44018E   s1    gaIg./r   zrandom._urandomc                <    \         Vn        V P                  4        R # r   )NotImplementedErrorside_effectrY   )r   urandom_mocks   &&r   *test_seed_when_randomness_source_not_found7TestBasicOps.test_seed_when_randomness_source_not_foundJ   s     $7 r   c                .   V P                   P                  p. pV! V4       V P                  V. 4       ^%.pV! V4       V P                  V^%.4       \        ^
4       Uu. uF  p\	        \        V4      4      NK  	  pp\        ^
4       Uu. uF  p\	        \        V4      4      NK  	  ppV F  pV! V4       K  	  \        WE4       FM  w  rvV P                  \        V4      \        V4      4       V P                  \        V4      \        V4      4       KO  	  \	        \        R4      4      p\	        \        R4      4      pV! V4       V P                  W(8g  4       V! V4       V P                  W(8g  4       V P                  \        VR4       R# u upi u upi )%   r;   NrL         )r)   shuffler=   r(   rU   ziplenset
assertTruerS   rT   )	r   rj   lstr+   seqsshuffled_seqsshuffled_seqseqshuffled_lsts	   &        r   test_shuffleTestBasicOps.test_shuffleT   sH   ((""b!drd#(-b	2	1U1X	216r;AeAh;)LL! *#&t#;SSXs<'89SXs<'89 $< 5;E$K(+,+,)Wi8/ 3;s   F
Fc                   V P                   P                  pV P                  \        4      ;_uu_ 4        V! . 4       R R R 4       V P	                  V! ^2.4      ^24       V P                  V! ^^K.4      ^^K.4       R #   + '       g   i     LG; ir   )r)   choicerS   
IndexErrorr=   assertIn)r   rx   s   & r   test_choiceTestBasicOps.test_choiceu   sf    z**2J +r*fb"X&R1 +*s   	A<<B	c                `   V P                   P                  p ! R  R\        4      pV P                  \        4      ;_uu_ 4        V! V! . 4      4       RRR4       V P                  V! V! ^2.4      4      ^24       V P                  V! V! ^^K.4      4      ^^K.4       R#   + '       g   i     LS; i)c                   *   a  ] tR t^t o RtR tRtV tR# )/TestBasicOps.test_choice_with_numpy.<locals>.NAzSimulate numpy.array() behaviorc                    \         hr   )RuntimeErrorr   s   &r   __bool__8TestBasicOps.test_choice_with_numpy.<locals>.NA.__bool__   s    ""r   rG   N)r   r   r   r    __doc__r   r!   r"   r#   s   @r   NAr      s     -# #r   r   N)r)   rx   rU   rS   ry   r=   rz   )r   rx   r   s   &  r   test_choice_with_numpy#TestBasicOps.test_choice_with_numpy|   s     	# 	#
 z**2b6N +B4)2.fRR\*RH5 +*s   BB-	c                   ^dp\        V4      p\        V^,           4       F|  pV P                  P                  W#4      pV P                  \	        V4      V4       \        V4      pV P                  \	        V4      V4       V P                  V\        V4      8*  4       K~  	  V P                  V P                  P                  . ^ 4      . 4       V P                  \        V P                  P                  W!^,           4       V P                  \        V P                  P                  . R4       V P                  \        V P                  P                  VR4       R# )d         ?NrM   )
r(   r)   sampler=   rl   rm   rn   rS   
ValueErrorrT   )r   r>   
populationksuniqs   &     r   test_sampleTestBasicOps.test_sample   s     1X
qsA
.ASVQ'q6DSY*OODC
O34  	Q/4*dhhoozQ3G*dhhoor2>)TXX__j#Fr   c           
     F   ^p\        V4      pRp\        V4       F  p\        V4      \        W,
          4      ,          p/ p\        V4       F=  pRV\        V P                  P	                  W$4      4      &   \        V4      V8X  g   K<   Kp  	  V P                  4        K  	  R# )   '  N)r(   r	   rR   r)   r   rl   fail)r   r+   poptrialsr   expectedpermsr,   s   &       r   test_sample_distribution%TestBasicOps.test_sample_distribution   s     AhqA |y~5HE6]8<eDHHOOC345u:) #
 		 r   c                .   V P                   P                  \        ^4      ^4       V P                   P                  \        ^4      ^4       V P                   P                  \        R4      ^4       V P                   P                  \	        R4      ^4       R# )   abcdefghijklmnopqrstN)r)   r   r(   strrR   r   s   &r   test_sample_inputsTestBasicOps.test_sample_inputs   s^    b	1%b	1%23Q745q9r   c                    V P                  \        V P                  P                  \        P                  R 4      ^4       R# )abcdefN)rS   rT   r)   r   rV   fromkeysr   s   &r   test_sample_on_dicts!TestBasicOps.test_sample_on_dicts   s'    )TXX__dmmH6MqQr   c                    V P                  \        4      ;_uu_ 4        0 RmpV P                  P                  V^R7       RRR4       R#   + '       g   i     R# ; i)
   r   N>   r   r      (   2   <   F   )rS   rT   r)   r   )r   r   s   & r   test_sample_on_sets TestBasicOps.test_sample_on_sets   s;    y))5JHHOOJ!O, *)))s   "A

A	c                N    ! R  R\         P                  \         P                  4      pV! . RO4      p\        P                  ! 4       ;_uu_ 4        \        P
                  ! R\        4       V P                  P                  V^R7       RRR4       R#   + '       g   i     R# ; i)c                   2   a  ] tR t^t o R tR tR tRtV tR# )3TestBasicOps.test_sample_on_seqsets.<locals>.SeqSetc                    Wn         R # r   _items)r   itemss   &&r   r   <TestBasicOps.test_sample_on_seqsets.<locals>.SeqSet.__init__   s    #r   c                ,    \        V P                  4      # r   )rl   r   r   s   &r   __len__;TestBasicOps.test_sample_on_seqsets.<locals>.SeqSet.__len__   s    4;;''r   c                (    V P                   V,          # r   r   )r   indexs   &&r   __getitem__?TestBasicOps.test_sample_on_seqsets.<locals>.SeqSet.__getitem__   s    {{5))r   r   N)	r   r   r   r    r   r   r   r!   r"   r#   s   @r   SeqSetr      s     $(* *r   r   errorr   N)rh      rL   ri   )	r   SequenceSetwarningscatch_warningssimplefilterDeprecationWarningr)   r   )r   r   r   s   &  r   test_sample_on_seqsets#TestBasicOps.test_sample_on_seqsets   sg    	*S\\377 	* L)
$$&&!!'+=>HHOOJ!O, '&&&s   9BB$	c                   V P                   P                  p. ROp. ROpRp\        V! W#VR7      4      pV P                  \	        VP                  4       4      V4       \        W#4       F  w  rgV P                  WV,          V4       K  	  V P                  RV4       \	        V4      p\        V! W#VR7      4      pV P                  \	        VP                  4       4      V4       \        W#4       F  w  rgV P                  WV,          V4       K  	  V P                  RV4       \        V! R.^
.^R7      4      pV P                  V\        ^R7      4       \        V4      p\        V! V^
.V,          ^
V,          R7      4      pV P                  V\        ^
V,          4      4       V P                  \        4      ;_uu_ 4        V! . RO^
^
R7       RRR4       V P                  \        4      ;_uu_ 4        V! . RO. RO^R7       RRR4       V P                  \        4      ;_uu_ 4        V! R R.^
^
.^R7       RRR4       V P                  \        4      ;_uu_ 4        V! . RO^^.^R7       RRR4       V P                  \        4      ;_uu_ 4        V! . RO. RO^R7       RRR4       V P                  V! R^ . ROR	7      V! . ^ R
7      4       V P                  V! . ^ . R7      V! . ^ 4      4       V P                  \        4      ;_uu_ 4        V! . ^. R7       RRR4       V P                  \        4      ;_uu_ 4        V! R^^ .R7       RRR4       R#   + '       g   i     EL; i  + '       g   i     ELp; i  + '       g   i     ELO; i  + '       g   i     EL.; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; i)redgreenbrown  countsr   x)r   Nr   )r   r   r   )r   )r   r   blueorangeblackr   amber)     r   r   r   r   rL   )r   r   r   )ii)rL   rh   ri   r   )r   r   r   )r)   r   r   r=   sumvaluesrk   assertLessEqualassertNotInrl   rS   rT   r   )	r   r   colorsr   r   summarycolorweightncs	   &        r   test_sample_with_counts$TestBasicOps.test_sample_with_counts   s    ON&!<=W^^-.2 0ME  8 1'* K&!<=W^^-.2 0ME  8 1'* &#tq9:'A,/ [&R2b5AB'"V)"45 y))+B"= *z**+LAF +z**E7#RH; +z**+QFa@ +z**+LAF + 	5Ai02O	
 	2q$2qM	
 z**2q$ +z**31#& +*- *))************ +****sT   ?M2M)'M=NN%N9>OM&	)M:	=N	N"	%N6	9O		O	c                   V P                   P                  p. ROpRp\        ^4      p\        \        ^4      4      pV! V^R7      V! V\        ^4      ^R7      V! ^V\        ^4      R7      V! ^V\        ^4      R7      V! V\	        ^4      R7      3 Fc  pV P                  \        V4      ^4       V P                  \        V4      \        4       V P                  \        V4      \        V4      8*  4       Ke  	  V P                  \        4      ;_uu_ 4        V! ^4       RRR4       V P                  V! V^ R7      . 4       V P                  V! VRR7      . 4       V P                  \        4      ;_uu_ 4        V! VRR7       RRR4       V P                  \        V! V^R7      4      \        V4      8*  4       V P                  \        V! V^R7      4      \        V4      8*  4       V P                  \        4      ;_uu_ 4        V! V^R7       RRR4       V P                  \        V! VR^R7      4      \        V4      8*  4       V P                  \        V! VR^R7      4      \        V4      8*  4       V P                  \        4      ;_uu_ 4        V! V^^.^R7       RRR4       V P                  \        4      ;_uu_ 4        V! V^
^R7       RRR4       V P                  \        4      ;_uu_ 4        V! VR.^,          ^R7       RRR4       . RO. RO\        ^^4      \        ^^4      \        ^^4      \        ^^4      .. RO3 F1  pV P                  \        V! W'^R7      4      \        V4      8*  4       K3  	  V P                  \        4      ;_uu_ 4        V! V^^.^R7       RRR4       V P                  \        4      ;_uu_ 4        V! V^
^R7       RRR4       V P                  \        4      ;_uu_ 4        V! VR.^,          ^R7       RRR4       V P                  \        4      ;_uu_ 4        V! V\        ^4      \        ^4      ^R7       RRR4       . RO. RO\        ^^4      \        ^^4      \        ^^4      \        ^^4      .3 F1  pV P                  \        V! W'^R7      4      \        V4      8*  4       K3  	  V P                  V! R. RO4      R	.4       V P                  V! R. RO4      R
.4       V P                  V! R. RO4      R.4       V P                  V! R. RO4      R.4       V P                  \        4      ;_uu_ 4        V! . ^R7       RRR4       V P                  \        4      ;_uu_ 4        V! . . ^R7       RRR4       V P                  \        4      ;_uu_ 4        V! . . ^R7       RRR4       R#   + '       g   i     EL; i  + '       g   i     ELh; i  + '       g   i     EL; i  + '       g   i     ELs; i  + '       g   i     ELV; i  + '       g   i     EL1; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELc; i  + '       g   i     EL3; i  + '       g   i     EL=; i  + '       g   i     EL ; i  + '       g   i     R# ; i)r   abcdr   )r   r   weights)r   r   cum_weightsN      @)r   r   r   r   rP   bcd)r   r   r   yellowrM   )   r      r   )g333333.@gffffff$@g3333339@gL>@)TFTF)rL   r   r   r   )r   rL   r   r   )r   r   rL   r   )r   r   r   rL   )r)   choicesr(   rm   r   r=   rl   rW   rU   rn   rS   rT   r   r   ry   )r   r   datastr_data
range_dataset_datar   r   s   &       r   test_choicesTestBasicOps.test_choices  s   ((""11X
uQx= DAD%(a(aD%(;aDeAh?DGAJ'
F S[!,T&\40OOCK3t945
 y))AJ * 	+R0,b1y))DC  * 	GH23s8}DEGJ!45ZHIy))H" * 	GD$!45TBCGD$!<=TJKz**D1Q%1% +y))D"" *y))D4&(a( * !(!Q!Q!Q!QP*	
G OOC ;<D	IJ
 z**Dqeq1 +y))DbA. *y))DtfQh!4 *y))D%(aA> * !(!Q!Q!Q!QP
G
 OOCQ GHCPTIUV
 	6>6>6>6> z**B! +z**Ba( +z**BB!, +*o *))
 *))
 *))
 +**)))))) +**)))))))))  +********s   	W8W"W6X
X6X2YY Y.9ZZZ*8Z>W	"W3	6X	
X	X/	2Y	Y	Y+	.Y?	Z	Z'	*Z;	>[	c                P    V P                   P                  pV! ^^.RR.RR7       R# )rL   g         )r   r   r   N)r)   r   )r   r   s   & r   test_choices_subnormal#TestBasicOps.test_choices_subnormalQ  s(    
 ((""Aq6FF+;tDr   c                    V P                  \        4      ;_uu_ 4        V P                  P                  R RR.4       RRR4       R#   + '       g   i     R# ; i)AB        NrS   r   r)   r   r   s   &r   "test_choices_with_all_zero_weights/TestBasicOps.test_choices_with_all_zero_weightsY  s:    z**HHTC:. +***   AA	c                    V P                  \        4      ;_uu_ 4        V P                  P                  R . RO4       RRR4       R#   + '       g   i     R# ; i)ABCN)ri   rL   r   r   s   &r   test_choices_negative_total(TestBasicOps.test_choices_negative_total^  s6    z**HHUJ/ +***r  c           	        V P                  \        4      ;_uu_ 4        V P                  P                  R \	        R4      .4       RRR4       V P                  \        4      ;_uu_ 4        V P                  P                  RR\	        R4      .4       RRR4       V P                  \        4      ;_uu_ 4        V P                  P                  R\	        R4      ) ^{.4       RRR4       V P                  \        4      ;_uu_ 4        V P                  P                  RR\	        R4      .4       RRR4       V P                  \        4      ;_uu_ 4        V P                  P                  R\	        R4      \	        R4      .4       RRR4       R#   + '       g   i     ELQ; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)AinfNr   r   nanz-inf)rS   r   r)   r   floatr   s   &r   test_choices_infinite_total(TestBasicOps.test_choices_infinite_totalb  s5   z**HHS5<.1 +z**HHTCu#67 +z**HHTU5\M3#78 +z**HHTCu#67 +z**HHTE&M5<#@A +* +************s;   'F*(F!7)F5(G1GF	!F2	5G	G	G,	c                   R F  pV P                   P                  V4       V P                   P                  4       pV P                   P                  ^ ^4      pV P                   P                  V4       V P                   P                  4       pV P                   P                  ^ ^4      pV P	                  W$4       V P	                  W54       K  	  R# )rL   N)rL      {   i  i90  i@ i	 )r)   r1   r*   gaussr=   )r   r1   x1y1x2y2s   &     r   
test_gaussTestBasicOps.test_gaussn  s    
 <DHHMM$"B1%BHHMM$"B1%BR$R$ <r   c                    Rp^ p\        ^d4       F4  pV\        V P                  P                  4       V,          4      ,          pK6  	  V P	                  W!^,
          4       R# )rh   Nl          )r(   intr)   r*   r=   )r   spancumr,   s   &   r   test_53_bits_per_float#TestBasicOps.test_53_bits_per_float  sK    sA3txx(4/00C 1f%r   c                   V P                   P                  p\        ^R4       F5  pT P                  ^ V! V4      u;8*  ;'       d    ^V,          8  Mu 4       K7  	  V P	                  V! ^ 4      ^ 4       R Fj  p^V,          ^,
          p^ p^ p\        ^d4       F"  pV! V4      pWX,          pWdV,          ,          pK$  	  V P	                  WT4       V P	                  Wd4       Kl  	  V P                  \        V4       V P                  \        V^^4       V P                  \        VR4       V P                  \        V^R,          4       V P                  \        VRR,          4       V P                  \        VR4       R# )rL   r;   g333333$@N)rL   rh   ri   r          r"  4   5   6   w            rM   )	r)   getrandbitsr(   rn   r=   rS   rT   r   OverflowError)	r   r*  r   r  all_bitsr  cpl_cumr,   vs	   &        r   test_getrandbitsTestBasicOps.test_getrandbits  s:   hh**q$AOOAQ66!Q$67  Q+ MD$wqyHCG3Z%a<'   S+W/ M 	)[1)[!Q7*k26-ag>*k2t8<)[$7r   c                    ^R,          p^ p\        ^d4       FK  pV P                  P                  V4      pT P                  ^ Tu;8*  ;'       d    V8  Mu 4       W$,          pKM  	  V P	                  W!^,
          4       R# )rh   r   N)r(   r)   	randrangern   r=   )r   r  r  r,   rs   &    r   test_bigrandTestBasicOps.test_bigrand  se     CxsA""4(AOOAMMTM*HC  	1f%r   c                8   R F  pV P                   P                  ^V^,
          ,          4      pV P                   P                  ^V,          4      pW28:  d   KV  T P                  W P                   P                  W#4      u;8*  ;'       d    V8  Mu 4       K  	  R# )r   N)	r   P      r         iw  i   i&  )r)   r2  rn   )r   r,   startstops   &   r   test_bigrand_ranges TestBasicOps.test_bigrand_ranges  sn    ;AHH&&qQqSz2E88%%a1f-D}OOEXX%7%7%DKKtKL <r   c                    R Fc  w  rT P                  \        \        W4      4      \        \        ^d4       Uu. uF  q0P                  P	                  W4      NK  	  up4      4       Ke  	  R# u upi )rh   N))r   )l        l         )l            l           )r=   rm   r(   r)   r2  )r   r;  r<  r,   s   &   r   test_rangelimitsTestBasicOps.test_rangelimits  sU    KKESu!23U3ZHZXX''3ZHIK LHs   #A,c                    V P                   P                  ^ ^
^4      pV P                  VR4       V P                   P                  ^ ^^4      pV P                  V^ 4       R# )r   N)r   rh   r         )r)   r2  rz   r=   )r   rints   & r   test_randrange_nonunit_step(TestBasicOps.test_randrange_nonunit_step  sP    xx!!!R+dO,xx!!!Q*q!r   c                   \        V P                  \        V P                  P                  4      p\        V P                  \
        V P                  P                  4      pV! ^^4       V! R
4       V! ^ ^dR4       V! ^ ^*^ 4       V! ^ ^*R4       V! ^ ^ R4       V! R4       V! R4       V! \        ^^4      4       V! R4       V! ^ R4       V! ^ R4       V! ^ \        ^^4      4       V! ^ R4       V! ^ R^4       V! R^4       V! R^4       V! \        ^^4      ^4       V! R^4       V! R^^4       V! ^ ^*R4       V! ^ ^*R4       V! ^ ^*\        ^^4      4       V! ^ ^*R4       V! ^ ^*R4       V! ^ ^ R4       R	# )ri   r   n!	@      @3gW}W@       @2r   Ni/)r   rS   r   r)   r2  rT   r   )r   raises_value_errorraises_type_errors   &  r   test_randrange_errors"TestBasicOps.test_randrange_errors  st   $T%6%6
DHHDVDVW#D$5$5y$((BTBTU 	1a 4 1c3' 	1b!$!R%!Q$ 	'"#(1a.)#!W%!S!!Xa^,!S!!Wa( 	'1%#q!(1a.!,#q!'1a( 	!R)!R%!R!Q0!R%!R%!Q$r   c           	     t   V P                   P                  pV P                  \        4      ;_uu_ 4        V! R ^dR7       RRR4       V P                  \        4      ;_uu_ 4        V! R R^dR7       RRR4       V P                  \        4      ;_uu_ 4        V! R \	        ^4      R7       RRR4       V P                  \        4      ;_uu_ 4        V! R R\	        ^4      R7       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lr; i  + '       g   i     R# ; i)r;   )stepN)r)   r2  rS   rT   r   r   r2  s   & r   test_randrange_step TestBasicOps.test_randrange_step  s    HH&&	y))d% *y))dDs+ *y))d, *y))dDwqz2 *) *))))))))s/   C-$D DD&-C=	 D	D#	&D7	c                   \        ^R4       EFF  p^V,          pV^,           pV! RV! V^4      ,           4      pV P                  We4       V P                  V^V^,
          ,          4       WD^,
          ,          pV! RV! V^4      ,           4      pV P                  WeV^,           .4       T P                  ^V,          Tu;8  ;'       d    ^V^,
          ,          8  Mu 4       WD^,	          ,          pV! RV! V^4      ,           4      pV P                  We4       T P                  ^V,          Tu;8  ;'       d    ^V^,
          ,          8  Mu 4       EKI  	  R# )rL   r;   grZ|
 ?N)r(   r=   rz   rn   )r   _logr  r,   r+   numbitsr   s   &&&    r   test_randbelow_logic!TestBasicOps.test_randbelow_logic  s    q$AQAcGGd1aj()AQ(QAaC)QJAGd1aj()AMM!wqy12OOAqD1//q1Q3x/0bLAGd1aj()AQ(OOAqD1//q1Q3x/0  r   c           	     p   V P                   P                  pV P                  V! \        ^4      4      \	        ^4      4       V P                  V! \        ^4      \        ^4      4      \	        ^^4      4       V P                  V! \        ^4      \        ^4      \        ^4      4      \	        ^^^4      4       R# )r   N)r)   r2  rz   r   r(   rV  s   & r   test_randrange_index!TestBasicOps.test_randrange_index	  s{    HH&&	i
+U1X6i
GAJ7q!Ei
GBKDeArSToVr   c                ^   V P                   P                  pV P                  V! ^^4      R4       V P                  V! ^^4      ^4       V P                  V! \	        ^4      \	        ^4      4      R4       V P                  V! \	        ^4      \	        ^4      4      ^4       V P                  \        V^^4       V P                  \        V4       V P                  \        V^4       V P                  \        V^^^4       V P                  \        VR^4       V P                  \        V^R4       R# )rh   rM        @N)rh   ri   r   r   )r)   randintrz   r=   r   rS   r   rT   )r   rc  s   & r   test_randintTestBasicOps.test_randint  s    ((""gam\2A*ggaj'!*5|DWQZ8!<*gq!4)W-)Wa0)WaA6)Wc15)Wa5r   c                   \        \        P                  ^,           4       F  p\        P                  ! V P                  V4      p\        ^
4       Uu. uF  q0P                  P                  4       NK  	  pp\        P                  ! V4      p\        ^
4       Uu. uF  q5P                  4       NK  	  ppV P                  WF4       K  	  R# u upi u upi rL   N)r(   pickleHIGHEST_PROTOCOLdumpsr)   r*   loadsr=   )r   protor?   r,   origseqnewgenrestoredseqs   &      r   test_picklingTestBasicOps.test_pickling  s    622Q67ELL51E27)<)Qxx()G<\\%(F49"I>Iq==?IK>W2 8<>s   "C
Cc                8   . ROpV F|  w  r#\        \        P                  ! V4      R4      ;_uu_ 4       p\        P                  ! V4      pRRR4       V P                  \        XP                  4       R,          4      V4       K~  	  R#   + '       g   i     LF; i)randv2_32.pckrbNr;   ))rs  i  )zrandv2_64.pckib  )z
randv3.pckiW  )openr
   findfilerh  loadr=   r  r*   )r   filesfiler   fr3  s   &     r   test_bug_1727780TestBasicOps.test_bug_1727780%  si    & !KDg&&t,T22aKKN 3SD159 !22s   B		Bc                   a R pV P                   P                  o\        V3R l\        V4       4       4      pT P	                  RW!,          u;8  ;'       d    R8  Mu W!,          4       R# )順 c              3   H   <"   T F  pS! R 4      ^,          ^8H  x  K  	  R# 5i)l          NrG   ).0r,   r2  s   & r   	<genexpr>-TestBasicOps.test_bug_9025.<locals>.<genexpr>6  s!     Gh	*+a/14hs   "333333?gGz?N)r)   r2  r   r(   rn   )r   r+   r   r2  s   &  @r   test_bug_9025TestBasicOps.test_bug_90251  sL     HH&&	GeAhGGqs((S(130r   c                    R pRpRpV P                   P                  WV4      pT P                  Y$u;8  ;'       d    V8*  Mu 4       V P                  WB,           V,          ^ 4       R# )l    J)NrN   i8)r)   r2  rn   r=   )r   r;  r<  rU  r   s   &    r   test_randrange_bug_1590891'TestBasicOps.test_randrange_bug_15908919  sT    %HHuD1))E)*!&$*r   c                X   \        ^^
4       FX  pV P                  P                  V4      pV P                  \	        V4      \
        4       V P                  \        V4      V4       KZ  	  V P                  V P                  P                  ^ 4      R4       V P                  \        V P                  P                  4       V P                  \        V P                  P                  ^^4       V P                  \        V P                  P                  R4       V P                  \        V P                  P                  ^R,          4       V P                  \        \        3V P                  P                  RR,          4       V P                  \        V P                  P                  R4       R# )rL   r   r;   r   NrM   )r(   r)   	randbytesr=   rW   bytesrl   rS   rT   r   r+  )r   r+   r   s   &  r   test_randbytesTestBasicOps.test_randbytesA  s&   q"A88%%a(DT$Z/SY* 
 	++A.4 	)TXX%7%78)TXX%7%7A>*dhh&8&8"=-););QWE:}5txx7I7I2t8T)TXX%7%7=r   c                    V P                  V P                  P                  4       \        4       V P                  V P                  P	                  4       \        4       R # r   )assertIsInstancer)   normalvariater  r  r   s   &r   test_mu_sigma_default_args'TestBasicOps.test_mu_sigma_default_argsR  s:    dhh446>dhhnn.6r   rG   N)4r   r   r   r    r-   r8   rA   rY   r]   unittestmockpatchrc   ru   r{   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r
   requires_IEEE_754r  r/  r4  r=  rA  rG  rR  rW  r   r  r\  r_  rd  rp  r{  r  r  r  r  r!   r"   r#   s   @r   r&   r&      s    
5,69$0
 ]]*+ ,9B26G" :R-
- 6'pL-\E/
0
B%" & &86	&MK
"&%P
3 ), 1*W63
:1+>"7 7r   r&   TFz!random.SystemRandom not availablec                   `   a  ] tR tRt o ]P
                  ! 4       tR tR tR t	R t
R tRtV tR# )	SystemRandom_TestBasicOpsi^  c                :    V P                   P                  4        R # r   r)   r1   r   s   &r   r8   'SystemRandom_TestBasicOps.test_autoseedb  s    r   c                    V P                  \        V P                  P                  4       V P                  \        V P                  P                  R 4       R # r   )rS   r`   r)   r2   r<   r   s   &r   rA   *SystemRandom_TestBasicOps.test_saverestoref  s:    -txx/@/@A-txx/@/@$Gr   c                <    V P                   P                  ^d4       R# )r   Nr  r   s   &r   rY   'SystemRandom_TestBasicOps.test_seedargsj  s    cr   c                    R V P                   n        V P                   P                  ^d4       V P                  V P                   P                  R 4       R # r   )r)   
gauss_nextr1   r=   r   s   &r   r  $SystemRandom_TestBasicOps.test_gaussn  s8    "c,,d3r   c                    \        \        P                  ^,           4       F3  pV P                  \        \        P
                  V P                  V4       K5  	  R# rg  )r(   rh  ri  rS   r`   rj  r)   )r   rl  s   & r   rp  'SystemRandom_TestBasicOps.test_picklings  s9    622Q67E16<<5Q 8r   rG   N)r   r   r   r    r*   SystemRandomr)   r8   rA   rY   r  rp  r!   r"   r#   s   @r   r  r  ^  s4     



CH4
R Rr   r  c                      a  ] tR tRt o ]P
                  P                  R 4       t]P
                  P                  R 4       tRt	V t
R# )TestRawMersenneTwisterix  c                    ^ RI p\        \        P                  ^,           4       F8  pVP	                  4       pV P                  \        \        P                  W24       K:  	  R# )r   N)_randomr(   rh  ri  RandomrS   rT   rj  )r   r  rl  r3  s   &   r   test_bug_41052%TestRawMersenneTwister.test_bug_41052y  sC     	622Q67E Aiq@ 8r   c                    ^ RI pVP                  4       pVP                  R4       VP                  R4      pV P                  VP	                  4       VP	                  4       4       R# )r   N_ )r  r  r1   r=   r*   )r   r  r1r2s   &   r   test_bug_42008%TestRawMersenneTwister.test_bug_42008  sI     	^^
^^G$biik2r   rG   N)r   r   r   r    testr
   cpython_onlyr  r  r!   r"   r#   s   @r   r  r  x  sA     	\\A A 
\\3 3r   r  c                   &  a a ] tR tRt o]P
                  ! 4       tR tR tR t	R t
R tR tR tR	 tR
 tV 3R ltR t]P&                  ! RRRR7      R 4       tR tR tR tV 3R ltR t]P&                  ! RRRR7      R 4       tR tRtVtV ;t# )MersenneTwister_TestBasicOpsi  c                   V P                   P                  R ^R7       T P                  \        ^4       Uu. uF*  qP                   P	                  4       P                  4       NK,  	  up. RO4       V P                   P                  R^R7       T P                  \        ^4       Uu. uF*  qP                   P	                  4       P                  4       NK,  	  up. RO4       R# u upi u upi )i4 versionzthe quick brown foxN)z0x1.ac362300d90d2p-1z0x1.9d16f74365005p-1z0x1.1ebb4352e4c4dp-1z0x1.1a7422abf9c11p-1)z0x1.1239ddfb11b7cp-3z0x1.b3cbb5c51b120p-4z0x1.8c4f55116b60fp-1z0x1.63eb525174a27p-1r)   r1   r=   r(   r*   hexr   r,   s   & r   test_guaranteed_stable3MersenneTwister_TestBasicOps.test_guaranteed_stable  s    gq)58D8a((//+//18D=	> 	+Q758D8a((//+//18D=	>	 E Es   0C!%0C&c                   V P                   P                  R ^R7       T P                  \        ^4       Uu. uF*  qP                   P	                  4       P                  4       NK,  	  up. RO4       V P                   P                  R^R7       T P                  \        ^4       Uu. uF*  qP                   P	                  4       P                  4       NK,  	  up. RO4       V P                   P                  R^R7       T P                  \        ^4       Uu. uF*  qP                   P	                  4       P                  4       NK,  	  up. RO4       R# u upi u upi u upi )nofarr  rachel Nz0x1.8645314505ad7p-1z0x1.afb1f82e40a40p-5z0x1.2a59d2285e971p-1z0x1.56977142a7880p-6z0x1.0b294cc856fcdp-1z0x1.2ad22d79e77b8p-3z0x1.3052b9c072678p-2z0x1.578f332106574p-3z0x1.b0580f98a7dbep-1z0x1.84129978f9c1ap-1z0x1.aeaa51052e978p-2z0x1.092178fb945a6p-2r  r  s   & r   test_bug_27706+MersenneTwister_TestBasicOps.test_bug_27706  s    	gq)58D8a((//+//18D=	> 	h*58D8a((//+//18D=	> 	b!$58D8a((//+//18D=	> E
 E
 Es   0E%0E0Ec                     ! R  R\         4      p V P                  P                  V! 4       4       R#   \         d     R# i ; i)c                   &   a  ] tR tRt o R tRtV tR# );MersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadInti  c                    R # r   rG   r   s   &r   __abs__CMersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadInt.__abs__  s    r   rG   N)r   r   r   r    r  r!   r"   r#   s   @r   BadIntr    s      r   r  N)r  r)   r1   rT   )r   r  s   & r   test_bug_31478+MersenneTwister_TestBasicOps.test_bug_31478  s7    	S 		HHMM&(# 		s    3 AAc                   V P                   P                  R ^R7       T P                  \        ^4       Uu. uF*  qP                   P	                  4       P                  4       NK,  	  up. RO4       V P                   P                  R^R7       T P                  \        ^4       Uu. uF*  qP                   P	                  4       P                  4       NK,  	  up. RO4       V P                   P                  R^R7       T P                  \        ^4       Uu. uF*  qP                   P	                  4       P                  4       NK,  	  up. RO4       RpV P                   P                  V^R7       T P                  \        ^4       Uu. uF*  qP                   P	                  4       P                  4       NK,  	  up. R	O4       R# u upi u upi u upi u upi )
s   nofarr  s   rachelr   s	     @`Nr  r  r  )z0x1.52c2fde444d23p-1z0x1.875174f0daea4p-2z0x1.9e9b2c50e5cd2p-1z0x1.fa57768bd321cp-2r  )r   r,   r   s   &  r   test_bug_31482+MersenneTwister_TestBasicOps.test_bug_31482  s_    	h*58D8a((//+//18D=	> 	i+58D8a((//+//18D=	> 	c1%58D8a((//+//18D=	> 4a#58D8a((//+//18D=	>! E
 E
 E Es   0G%0G0G0Gc                \    V P                  \        V P                  P                  R4       R# )rL   N)rL   NN)rS   r   r)   r<   r   s   &r   test_setstate_first_arg4MersenneTwister_TestBasicOps.test_setstate_first_arg  s    *dhh&7&7Ir   c                   V P                   P                  4       pV P                  \        V P                   P                  R4       V P                  \
        V P                   P                  R4       V P                  \        V P                   P                  ^RR,          R34       V P                  \        V P                   P                  ^R	R,          R,           R34       V P                  \
        \        34      ;_uu_ 4        V P                   P	                  ^R
R,          R,           R34       RRR4       V P                  \
        \        34      ;_uu_ 4        V P                   P	                  ^R
R,          R,           R34       RRR4       V P                   P                  ^d4      pV P                   P	                  V4       V P                  V P                   P                  ^d4      V4       V P                   P                  4       ^,          p\        V4      p\        R4      VR&   R V 4       pV P                  \        V P                   P                  ^VR34       R#   + '       g   i     EL=; i  + '       g   i     L; i)rh   Nq  ip  r  c              3   8   "   T F  p\        V4      x  K  	  R # 5ir   )r  )r  r   s   & r   r  HMersenneTwister_TestBasicOps.test_setstate_middle_arg.<locals>.<genexpr>  s     .AQs   )rh   NN)rh   rg   N)rP   )r   )rL   )r  rM   )rM   )r)   r2   rS   rT   r<   r   r+  r*  r=   rU   r  )r   start_statebits100state_valuesr?   s   &    r   test_setstate_middle_arg5MersenneTwister_TestBasicOps.test_setstate_middle_arg  s   hh''))TXX%6%6H*dhh&7&79KL)TXX%6%6F3J8MN)TXX%6%6DHVOT8RS
M:;;HHq$s(6/489 <
M:;;HHq$s(5.$78 < ((&&s++&--c2G< xx((*1-L) <R..)TXX%6%6E48HI# <;;;;s   -I&-I:&I7	:J
	c                    . ROpV P                   P                  R4       V P                  R4      RR p\        W!4       F  w  r4V P	                  W4^R7       K  	  R# )>FdV?  N)places)
r  gwR1ۉ?gQ"?g~5?g mb?gYKbX?gH,r̊?gV8?gOֶ?g4Ԗ?   #q  `&  'R )r)   r1   r-   rk   assertAlmostEqual)r   r   actualrP   es   &    r   test_referenceImplementation9MersenneTwister_TestBasicOps.test_referenceImplementation  sU    	) 	CD&st,)DA""1b"1 *r   c           	         ^ RI Hp . ROpV P                  P                  R4       V P	                  R4      RR p\        W24       F'  w  rEV P                  \        V! V^54      4      V4       K)  	  R# )r   )ldexpr  N)
l   #1,u l   wbl' l    JX l   uak~[ l   @"p1y l   sV%bX$ l   E3EJ l   Vb l   aoek l   4)[v r  r  )mathr  r)   r1   r-   rk   r=   r  )r   r  r   r  rP   r  s   &     r   $test_strong_reference_implementationAMersenneTwister_TestBasicOps.test_strong_reference_implementation  sb    
 		& 	CD&st,)DASq".2 *r   c                \    ^R,          ^,
          pV P                   P                  V4       R# )rL   Ni8 r  )r   r1   s   & r   test_long_seed+MersenneTwister_TestBasicOps.test_long_seed'  s#     i A%dr   c                N  < \         SV `  4        V P                  P                  R 4       V P	                  V P                  P                  ^d4      R4       V P                  P                  R 4       V P	                  V P                  P                  \        ^d4      4      R4       R#  l   S!m.vFXO N)superr/  r)   r1   r=   r*  r   )r   	__class__s   &r   r/  -MersenneTwister_TestBasicOps.test_getrandbits0  sx     " 	g--c26	8g--gcl;6	8r   c                B   RpV P                   P                  R4       V P                   P                  V4      pV P                  VP	                  4       V4       V P                  V^^d,          ^,
          ,          R4       V P                  W!^d,
          ,	          R4       R# )rh   r  l   S!m.vFXl   Xx@W-HBbNl        r)   r1   r*  r=   
bit_lengthr   sizer   s   &  r   test_getrandbits_2G_bits5MersenneTwister_TestBasicOps.test_getrandbits_2G_bits;  su    gHH  &.afQh)GHCx*IJr   F)r  memusedry_runc                >   V P                   P                  R 4       V P                   P                  V4      pV P                  VP	                  4       V4       V P                  V^^d,          ^,
          ,          R4       V P                  W!^d,
          ,	          R4       R# )i l   W]Wg l   B4zvN")FUNr  r  s   && r   test_getrandbits_4G_bits5MersenneTwister_TestBasicOps.test_getrandbits_4G_bitsC  sp    gHH  &.afQh)GHCx*HIr   c                    V P                   P                  R 4       V P                  V P                   P                  ^^c,          4      R4       R# r  )r)   r1   r=   r2  r   s   &r   test_randrange_uses_getrandbits<MersenneTwister_TestBasicOps.test_randrange_uses_getrandbitsK  s<     	g 	++ArE26	8r   c                   ^\         P                  ,          p\        P                  ! 4       ;_uu_ 4        \        P                  ! R\
        4       V P                  P                  V^,           VR7       RRR4       V P                  P                  RVR7       ^*pRpWV,          ,
          V,          p\        P                  P                  P                  \         P                  R4      ;_uu_ 4       pWC,           WC,
          .Vn        V P                  P                  W!R7       V P                  VP                  ^4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)rL   ignore)maxsizeNi  {Gz?r*   )r*   BPFr   r   r   UserWarningr)   _randbelow_without_getrandbitsr  r  r  rQ   r  ra   r=   
call_count)r   r
  r+   epsilonlimitrandom_mocks   &     r   "test_randbelow_without_getrandbits?MersenneTwister_TestBasicOps.test_randbelow_without_getrandbitsU  s	    VZZ-$$&&!!(K8HH33	7 4  ' 	//g/F  aK(G3]]  ''x@@K',&HK#HH33A3G[33Q7 A@3 '&2 A@@s   A E4AEE	E0	c                2   V P                   P                  pR pV P                   P                  R4       V P                   P                  \        V4      RR7      pV P                   P                  R4       V P                   P                  \        V4      ^.V,          RR7      pV P	                  W44       V P                   P                  R4       V P                   P                  \        V4      \        ^V^,           4      RR7      pV P	                  W54       . R
Op. ROp. ROpR.^,          R.^,          ,           R.^,          ,           p	V P                   P                  R4       V P                   P                  V	RR7      pV P                   P                  R4       V P                   P                  WgRR7      pV P	                  W44       V P                   P                  R4       V P                   P                  WhRR7      pV P	                  W54       R	# )i r  r   r   r   RedBlackGreeni߉ N)r  r  r  )   r  rh   )r  $   &   )r)   r   r1   r(   r=   )
r   r   r+   rP   r   r   r   r   r   expanded_populations
   &         r   test_choices_algorithms4MersenneTwister_TestBasicOps.test_choices_algorithmsw  s   ((""gHHU1X/gHHU1Xs1u6gHHU1X5AaC=EJ /
"$glgY^;wi!mKgHH0E:gHHZE:gHHZEJr   c           
     ,  <a a \         SS `  4        R pRoS P                  P                  V4       S P	                  S P                  P                  ^4      S4       S P                  P                  V4       S P	                  S P                  P                  ^ 4      R4       S P	                  S P                  P                  ^4      S4       S P                  P                  V4       S P	                  RP                  \        ^4       Uu. uF  pS P                  P                  ^4      NK   	  up4      S4       S P                  P                  V4       SR,          pS P	                  RP                  V 3R l\        ^4       4       4      V4       S P                  P                  V4       RP                  V3R l\        ^ \        S4      ^4       4       4      pS P	                  RP                  V 3R l\        ^4       4       4      V4       S P                  P                  V4       RP                  V3R l\        ^ \        S4      ^4       4       4      pS P	                  RP                  V 3R l\        ^4       4       4      V4       R	# u upi )
r  s   3f6oer   :ri   Nr   c              3   Z   <"   T F   pSP                   P                  ^4      x  K"  	  R# 5irg  r)   r  r  _r   s   & r   r  >MersenneTwister_TestBasicOps.test_randbytes.<locals>.<genexpr>  #     !JA$(("4"4Q"7"7   (+c              3   J   <"   T F  pSV^,           V^,            x  K  	  R# 5irh   NrG   r  r,   r   s   & r   r  r$    (      B&@ &a!eQU3&@    #c              3   Z   <"   T F   pSP                   P                  ^4      x  K"  	  R# 5ir(  r!  r"  s   & r   r  r$    r%  r&  c              3   J   <"   T F  pSV^,           V^,            x  K  	  R# 5irg  rG   r)  s   & r   r  r$    r*  r+  c              3   Z   <"   T F   pSP                   P                  ^4      x  K"  	  R# 5i)ri   Nr!  r"  s   & r   r  r$    r%  r&  N)	r  r  r)   r1   r=   r  joinr(   rl   )r   r1   r#  	expected1	expected2	expected3r   r  s   f     @r   r  +MersenneTwister_TestBasicOps.test_randbytes  s     Gd++B/: 	d++A.4++B/: 	d%("K(Q488#5#5a#8("KL!	#
 	dTN	!Jq!JJ"	$ 	dHH B&+As8}a&@B B	!Jq!JJ"	$ 	dHH B&+As8}a&@B B	!Jq!JJ"	$' #Ls   $Jc                R   R p\         P                  ! 4       pV P                  P                  V4       VP                  V4       \	        ^	4       FT  pV P                  V P                  P                  V4      VP                  V^,          4      P                  VR4      4       KV  	  R# )   OS littleN)	r*   r  r)   r1   r(   r=   r  r*  to_bytes)r   r1   gen2r+   s   &   r   test_randbytes_getrandbits7MersenneTwister_TestBasicOps.test_randbytes_getrandbits  sz    }}d		$qATXX//2!--a!e4==aJL r   c                <   V P                   P                  R 4       V P                   P                  V4      pV P                  \	        V4      V4       V P                  VR,          P                  4       R4       V P                  VRR P                  4       R4       R# )r5  :Nr  Nf6fd9ae63855ab91ea238b4fN0e7af69a84ee99bf4a11beccrO  )r)   r1   r  r=   rl   r  r  s   && r   test_randbytes_256M0MersenneTwister_TestBasicOps.test_randbytes_256M  sr    j!HHt$Q&3'AB34(BCr   c           
        V P                   P                  pV P                   P                  p. ROp. R	OpRpV! R4       V! W4VR7      pV! R4       \        W44       UUU	u. uF  w  rx\	        V4       F  qNK  	  K  	  p
ppp	V P                  \        V
4      \        V4      4       V! WR7      pV P                  Wk4       Rp. R
OpV! R4       RP                  V! W^R7      4      pRP                  \        W4       UUU	u. uF  w  r\	        V4       F  qNK  	  K  	  up	pp4      p
V! R4       RP                  V! V
^R7      4      pV P                  Wk4       R# u up	ppi u up	ppi )r   r   r  r   r   	abcdefghir  N)r   r   r   r   r   r   )r   r   r   r   r   rL   )	r   	   rE     rD  r   r   ri   rh   )	r)   r   r1   rk   r(   r=   rl   r   r/  )r   r   r1   r   r   r   s1r   countr,   expandeds2r   letters   &             r   test_sample_counts_equivalence;MersenneTwister_TestBasicOps.test_sample_counts_equivalence  s3    xx}}FEWFQ/W03F0CZ0CnuUSX\E\E0CZXF4H" -WWWVC"5677#c:Ja:JTYZ_T`qFT`F:JabWWWVH+,  [ bs    EE#rG   l        g?i    g @)r   r   r   r    r*   r  r)   r  r  r  r  r  r  r  r  r  r/  r  r
   
bigmemtestr  r  r  r  r  r9  r>  rI  r!   r"   __classcell__)r  r$   s   @@r   r  r    s     
--/C	>>$	>6JJ<2>3,	8K U8UCJ DJ8 8DB&$PL U7EBD CD! !r   r  rM        ?c                    V R 8  d9   \         \        \         V ,          4      ,          \        RV ,
          4      ,          # V R,           pW R ,
          ,          \        V4      ,          V,          \	        RRV ,          RV R,           ,          RV R,           ,          RV R,           ,          RV R	,           ,          RV R
,           ,          RV R,           ,          RV R,           ,          .	4      ,          # )rM  r   g      @g?g
ö)$@gta@rM  rK  g>@~)@g      @rb  g~\>g      @giE>g      @g&ԎgQfgA~)r   r   gammar   r   )zsqrt2piazs   && r   rO  rO    s    3wC1I~c!e,,	
iBC%=3r7"W,tAae$QsU#ae$QsU#qu%!C%(!C%(
5 
0 
 
r   c                     a  ] tR tRt o R tR tR tR tR tR t	R t
]P                  P                  R	4      R
 4       t]P                  P                  R	4      R 4       t]P                  P                  R	4      R 4       t]P                  P                  R	4      R 4       t]P                  P                  R4      R 4       tRtV tR# )TestDistributionsi   c                   \         P                  ! 4       p\        ^24       Uu. uF  q!P                  4       NK  	  upR.^,          ,           pVR,          P                  Vn         VP	                  ^^
4       VR,          P                  Vn         VP                  R4       VR,          P                  Vn         VP                  R4       VR,          P                  Vn         VP                  4        VR,          P                  Vn         VP                  RR4       VR,          P                  Vn         VP                  RR4       VR,          P                  Vn         VP                  RR4       VR,          P                  Vn         VP                  RR4       VR,          P                  Vn         VP                  RR4       VR,          P                  Vn         VP                  RR4       VR,          P                  Vn         VP                  RR4       VR,          P                  Vn         VP                  RR4       VR,          P                  Vn         VP                  RR4       VR,          P                  Vn         VP                  RR4       VR,          P                  Vn         VP                  RRR4       R# u upi )	r   r   NNNr   r  g      i@rK  NUUUUUU?)r*   r  r(   r   uniformparetovariateexpovariateweibullvariatevonmisesvariater  r  lognormvariategammavariatebetavariate
triangular)r   gr,   r   s   &   r   test_zeroinputs!TestDistributions.test_zeroinputs  s   MMO!&r+AXXZ+seAg5Q488QYYq_Q488Q__S1Q488Q]]3/Q488Q]]_Q488Q--c37Q488Q..sC8Q488Q__S#6Q488QWWS#.Q488Q--c37Q488Q..sC8Q488Q^^D#6Q488Q^^C5Q488Q^^E37Q488Q]]34Q488Q\\#sG< ,s   Kc                   \         P                  ! 4       pR p\        ^V4       Uu. uF  q3\        V4      ,          NK  	  ppVP                  RRR3VP
                  RRR	3VP                  R
RR3VP                  R\        \        ^,          ^,          3VP                  RRR3VP                  R\        R4      \        R4      \        R4      ^,          ,
          33 F  w  rVrxVR,          P                  Vn         . p	\        \        V4      4       F  p V	P                  V! V!  4       K  	  ^ ;rV	 F!  pW,          p
WV,
          ^,          ,          pK#  	  \        V	4      pV P!                  W,          V^VP"                  : V: 2R7       V P!                  W^,
          ,          V^VP"                  : V: 2R7       K  	  R# u upi   \         d     K  i ; i)r   rV  )r  msgN)r         $@g      @g      @)r   r   rW  gqq?g<ݚ?)      ?gUUUUUU?)gGz?r   )rb  g      ?g?)r   rK  gUUUUUU?g?)r*   r  r(   r  rX  r`  rZ  r\  r   rY  r[  rO  r   rl   appendry   r  r   )r   ra  r>   r,   r   variateargsmu	sigmasqrdyrD  rG  r  s   &            r   test_avg_stdTestDistributions.test_avg_std  s    MMO!&q,AuQxZZ,J6FG2G\Jx8""Ir2q57;&+":<!!:uW~"'.w1B"BD-F(G2 txxAHA3q6]HHWd^, #
 KB2v!m#  AA""24A181A1A4'H # J""2s8Yq181A1A4'H # J/-F - " s   GGGGc                   \         P                  ! 4       p^dpVP                  RR3VP                  RR3VP                  RR3VP                  \        R4      3R3VP                  R\        R4      3R3VP                  R	R3VP                  R
R3VP                  \        R4      ) R3R3VP                  R	R3VP                  R^ 3VP                  R^ 3VP                  R^
3VP                  \        R4      3R3VP                  R\        R4      3R3VP                  RR33 F.  w  r4p\        V4       F  pV P                  V! V!  V4       K  	  K0  	  R# )r   rf  r  r   rK  r   N)rf  rf  )rf  rf  rf  )rf  r   )r   r   )r   rM  )r   r   )r   r   )r   rf  )r*   r  rX  r`  rZ  r  r\  r  r]  r  binomialvariaterY  r[  r(   r=   )r   ra  r>   ri  rj  r   r,   s   &      r   test_constantTestDistributions.test_constant5  sS   MMOL$/|T2148u5""S%,$7=+t,!!:s3!!U5\M3#7=+t4""Ha0""Iq1""Ir25</37!!D%,#7>!!;4(#G8" 1X  $: #(r   c                  a \         P                  oV P                  \        4      ;_uu_ 4        S! R R7       RRR4       V P                  \        4      ;_uu_ 4        S! ^R!R7       RRR4       V P                  \        4      ;_uu_ 4        S! ^RR7       RRR4       V P	                  S! ^ R4      ^ 4       V P	                  S! ^
R4      ^ 4       V P	                  S! ^
R4      ^
4       V P                  S! ^R4      R"9   4       V P                  S! ^R	4      R"9   4       V P                  S! ^R4      R#9   4       V P                  S! ^R4      R$9   4       V P	                  S! ^R
4      ^ 4       V P                  S! ^R4      \        \        ^4      4      9   4       V P                  S! ^R4      \        \        ^4      4      9   4       V P                  S! ^dR4      \        \        ^e4      4      9   4       V P                  S! ^dR4      \        \        ^e4      4      9   4       \        V3R l\        R4       4       4      pT P                  RV^ ,          u;8*  ;'       d    R8*  Mu V4       T P                  RV^,          u;8*  ;'       d    R8*  Mu 4       T P                  RV^,          u;8*  ;'       d    R8*  Mu 4       T P                  RV^,          u;8*  ;'       d    R8*  Mu 4       V P	                  \        V4      0 R%m4       \        V3R l\        R4       4       4      pT P                  RV^,          V^,          ,           V^,          ,           V^,          ,           V^,          ,           u;8*  ;'       d    R8*  Mu 4       V P                  \        V4      \        \        ^e4      4      8*  4       V P	                  VP                  4       R4       T P                  RS! RR4      u;8*  ;'       d    R8*  Mu 4       T P                  RS! RR	4      u;8*  ;'       d    R8*  4       R# u 4       R#   + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i)&rL   )r+   NrM  )r+   prg  r   r   r  g?gC]r2<      ?g      ?c              3   6   <"   T F  pS! ^R4      x  K  	  R# 5i)r   rv  NrG   r  r,   Bs   & r   r  9TestDistributions.test_binomialvariate.<locals>.<genexpr>r  s     71AaJJ   r~  is  ii  i  i  iJ  i6Z  i
  i   c              3   6   <"   T F  pS! ^dR4      x  K  	  R# 5i)r   rv  NrG   rx  s   & r   r  rz  {  s     9.QAc4LL.r{  i  iF  i!i g?i@o@i@NilrM   g      >   r   rL   >   r   >   rL   >   r   rL   rh   ri   r   )
r*   rq  rS   r   r=   rn   rm   r(   r   total)r   r   ry  s   & @r   test_binomialvariate&TestDistributions.test_binomialvariateL  s7   "" z**G +z**TN +z**SM +1cA&2sQ'2sR(!S	V+,!S	V+,!S	S()!S	S() 	1ea( 	!T
c%(m34 	!T
c%(m34 	#tE#J78 	#tE#J78 7g77!A$00&0!4!A$00&01!A$00&01!A$//%/0Q1 9%.99!B%"+ae"3AbE"9!B%"?II6IJA#eCj/12G, 	
aS&9GGZGH
aS&9GGZGHGHe +********s#   
QQQ*Q	Q'	*Q;	c                (   \         P                  ! 4       p^dpR Ft  pR Fk  p\        V4       FY  pVP                  W44      pT P	                  ^ Tu;8*  ;'       d    \         P
                  8*  Mu RP                  W4V4      R7       K[  	  Km  	  Kv  	  R# )r   zCvonmisesvariate({}, {}) produced a result {} out of range [0, 2*pi])re  N)r   r0   g@g@)r   ffffff@g     @@)r*   r  r(   r\  rn   TWOPIformat)r   ra  r>   rk  kappar#  r   s   &      r   test_von_mises_range&TestDistributions.test_von_mises_range  s}     MMO$B(qA..r9FOOV33v||334:F2f4M $ O " ) %r   c                b    \         P                  ! ^ R4       \         P                  ! ^ R4       R# )r   g  4&kCg}Ô%ITN)r*   r\  r   s   &r   test_von_mises_large_kappa,TestDistributions.test_von_mises_large_kappa  s"    q$'q%(r   c                6   V P                  \        \        P                  R^4       V P                  \        \        P                  ^ ^4       V P                  \        \        P                  ^^ 4       V P                  \        \        P                  ^R4       R# )rL   NrM   r   )rS   r   r*   r^  r   s   &r   test_gammavariate_errors*TestDistributions.test_gammavariate_errors  sj    *f&9&92qA*f&9&91a@*f&9&91a@*f&9&91bAr   zrandom.Random.randomc                j    . ROVn         \        P                  ! RR4      pV P                  VR4       R# ):0yE>g?r  g=
ףp=@N)r  rM  r  ra   r*   r^  r  r   r  returned_values   && r   #test_gammavariate_alpha_greater_one5TestDistributions.test_gammavariate_alpha_greater_one  s.     #3,,S#6~t4r   c                h    R .Vn         \        P                  ! RR4      pV P                  VR4       R# )g?r   rO   g/qr	?Nr  r  s   && r   !test_gammavariate_alpha_equal_one3TestDistributions.test_gammavariate_alpha_equal_one  s1     $(&,,S$7~/@Ar   c                    R pRR.Vn         \        P                  ! RV4      p\        P                  ! RV,          4      pV P	                  W44       R# )rO   r  r   N)ra   r*   r^  rZ  r  )r   r  betagammavariate_returned_valueexpovariate_returned_values   &&   r   4test_gammavariate_alpha_equal_one_equals_expovariateFTestDistributions.test_gammavariate_alpha_equal_one_equals_expovariate  sL    
 #',&,&9&9#t&D#%+%7%7d
%C":Wr   c                   \         P                  p\         P                  p\         P                  pR pRpW%,           V,          pRpRp	Rp
WV,           W.Vn        \         P
                  ! WV4      pV P                  VR4       Rp	Rp
WV,           W.Vn        \         P
                  ! WV4      pV P                  VR4       R	# )
gffffff?g333333?r  gX Y?g=,6V?g.3333?gl%t?gK,	9?g7SvT?N)r*   _e_exprZ  ra   r^  r  )r   r  r  r  rZ  alphar  r   r  r  r  r  s   &&          r   ,test_gammavariate_alpha_between_zero_and_one>TestDistributions.test_gammavariate_alpha_between_zero_and_one  s    F YY{{{{ZO
 $&G|R"<,,U9~/AB 
 $&G|R"<,,U9~/ABr   zrandom.Random.gammavariatec                b    R Vn         V P                  R \        P                  ! RR4      4       R# )r   g	@rJ  N)return_valuer=   r*   r_  )r   gammavariate_mocks   &&r   test_betavariate_return_zero.TestDistributions.test_betavariate_return_zero
  s*     *-&f00'BCr   rG   N)r   r   r   r    rb  rn  rr  r~  r  r  r  r  r  r  r  r  r  r  r  r!   r"   r#   s   @r   rT  rT     s     =(J@;.6IrO)
B ]]/05 15 ]]/0B 1B ]]/0X 1X ]]/0CC 1CCJ ]]56D 7Dr   rT  c                   ,   a  ] tR tRt o R tR tRtV tR# )TestRandomSubclassingi  c                J     ! R  R\         P                  4      pV! ^R7       R# )c                   *   a  ] tR tRt o RR ltRtV tR# )HTestRandomSubclassing.test_random_subclass_with_kwargs.<locals>.Subclassi  Nc                D    \         P                  P                  V 4       R # r   )r*   r  r   )r   newargs   &&r   r   QTestRandomSubclassing.test_random_subclass_with_kwargs.<locals>.Subclass.__init__  s    &&t,r   rG   r   )r   r   r   r    r   r!   r"   r#   s   @r   Subclassr    s     - -r   r  )r  N)r*   r  )r   r  s   & r    test_random_subclass_with_kwargs6TestRandomSubclassing.test_random_subclass_with_kwargs  s    	-v}} 	- 	r   c                  a  ! V3R  lR\         P                  4      p\        4       oV! 4       P                  ^*4       V P	                  SR04        ! V3R lR\         P                  4      p\        4       oV! 4       P                  ^*4       V P	                  SR04        ! V3R lRV4      p\        4       oV! 4       P                  ^*4       V P	                  SR04        ! V3R	 lR
V4      p\        4       oV! 4       P                  ^*4       V P	                  SR04        ! V3R lR4      p ! V3R lR4      p ! R RV\         P                  4      p\        4       oV! 4       P                  ^*4       V P	                  SR04        ! R RV\         P                  4      p\        4       oV! 4       P                  ^*4       V P	                  SR04        ! R RWV\         P                  4      p	\        4       oV	! 4       P                  ^*4       V P	                  SR04        ! R RWe\         P                  4      p
\        4       oV
! 4       P                  ^*4       V P	                  SR04       R# )c                   :   <a  ] tR tRt o V3R ltV3R ltRtV tR# )KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1i"  c                d   < SP                  R 4       \        P                  P                  V 4      # )zSubClass1.randomaddr*   r  r   calleds   &r   r*   RTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1.random#  %    

-.}}++D11r   c                d   < SP                  R 4       \        P                  P                  W4      # )SubClass1.getrandbitsr  r*   r  r*  r   r+   r  s   &&r   r*  WTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1.getrandbits'  %    

23}}0099r   rG   N)r   r   r   r    r*   r*  r!   r"   r$   r  s   @r   	SubClass1r  "  s     2: :r   r  r  c                   .   <a  ] tR tRt o V3R ltRtV tR# )KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass2i/  c                d   < SP                  R 4       \        P                  P                  V 4      # )SubClass2.randomr  r  s   &r   r*   RTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass2.random0  r  r   rG   Nr   r   r   r    r*   r!   r"   r  s   @r   	SubClass2r  /       2 2r   r  r  c                   .   <a  ] tR tRt o V3R ltRtV tR# )KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass3i9  c                d   < SP                  R 4       \        P                  P                  W4      # )SubClass3.getrandbitsr  r  s   &&r   r*  WTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass3.getrandbits:  r  r   rG   Nr   r   r   r    r*  r!   r"   r  s   @r   	SubClass3r  9       : :r   r  r  c                   .   <a  ] tR tRt o V3R ltRtV tR# )KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass4iC  c                d   < SP                  R 4       \        P                  P                  V 4      # )SubClass4.randomr  r  s   &r   r*   RTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass4.randomD  r  r   rG   Nr  r  s   @r   	SubClass4r  C  r  r   r  r  c                   .   <a  ] tR tRt o V3R ltRtV tR# )HTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin1iM  c                d   < SP                  R 4       \        P                  P                  V 4      # )Mixin1.randomr  r  s   &r   r*   OTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin1.randomN  s$    

?+}}++D11r   rG   Nr  r  s   @r   Mixin1r  M  r  r   r  c                   .   <a  ] tR tRt o V3R ltRtV tR# )HTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin2iQ  c                d   < SP                  R 4       \        P                  P                  W4      # )Mixin2.getrandbitsr  r  s   &&r   r*  TTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin2.getrandbitsR  s%    

/0}}0099r   rG   Nr  r  s   @r   Mixin2r  Q  r  r   r  c                       ] tR tRtRtR# )KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass5iV  rG   Nr   r   r   r    r!   rG   r   r   	SubClass5r  V      r   r  r  c                       ] tR tRtRtR# )KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass6i\  rG   Nr  rG   r   r   	SubClass6r  \  r  r   r  r  c                       ] tR tRtRtR# )KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass7ib  rG   Nr  rG   r   r   	SubClass7r  b  r  r   r  c                       ] tR tRtRtR# )KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass8ih  rG   Nr  rG   r   r   	SubClass8r  h  r  r   r  N)r*   r  rm   r2  r=   )r   r  r  r  r  r  r  r  r  r  r  r  s   &          @r   "test_subclasses_overriding_methods8TestRandomSubclassing.test_subclasses_overriding_methods  s   	: 	: b!"9!:;	2 	2 b!"4!56	:	 	: b!"9!:;	2	 	2 b!"4!56	2 	2	: 	:
	 	b!/!23	 	b!"6!78	 	b!/!23	 	b!"6!78r   rG   N)r   r   r   r    r  r  r!   r"   r#   s   @r   r  r    s     R9 R9r   r  c                   l   a  ] tR tRt o R tR t]P                  P                  4       R 4       t	Rt
V tR# )
TestModuleio  c                   V P                  \        P                  R 4       V P                  \        P                  R4       V P                  \        P                  R4       V P                  \        P
                  R4       R# )g3?r?g.DT!@g9B.?gtY@N)r  r*   NV_MAGICCONSTr  LOG4SG_MAGICCONSTr   s   &r   testMagicConstantsTestModule.testMagicConstantsp  sY    v335EFv||];v{{,<=v335EFr   c                    V P                  \        \        P                  4      \        \	        \        4      4      8*  4       R # r   )rn   rm   r*   __all__dirr   s   &r   test__all__TestModule.test__all__v  s%    FNN+s3v;/??@r   c                   \         P                  ! 4       w  r\         P                  ! 4       pV^ 8X  dg    \        P                  ! ^4      p\        VR4      ;_uu_ 4       pVP                  \        V4      4       RRR4       \         P                  ! ^ 4       R# \         P                  ! V4       \        P                  ! ^4      p\        VR4      ;_uu_ 4       p\        VP                  4       4      pRRR4       V P                  VX4       \        P                  ! V^ R7       R#   + '       g   i     L; i  \         P                  ! ^ 4       i ; i  + '       g   i     Lj; i)r   wNr3  )exitcode)ospipeforkr*   r*  ru  writer   _exitcloseevalreadr5   r
   wait_process)r   r3  r  pidvalrz  	child_vals   &      r   test_after_forkTestModule.test_after_forkz  s     wwyggi!8((-!S\\QGGCH% "  HHQK$$S)Ca N	 Y/  q1 "\ 
 s/   *D; D(:D; E(D8	3D; ;EE&	rG   N)r   r   r   r    r  r  r  r
   requires_forkr  r!   r"   r#   s   @r   r  r  o  s2     GA 
\\!2 "2r   r  c                   J   a  ] tR tRt o ]P
                  R 4       tR tRtV t	R# )CommandLineTesti  c                J   \         P                  ! \        P                  ! R 4      4      w  rV P	                  VP
                  . R	O4       V P                  VR4       \         P                  ! \        P                  ! R4      4      w  rV P	                  VP                  ^4       V P                  VR4       \         P                  ! \        P                  ! R4      4      w  rV P	                  VP                  R4       V P                  VR4       \         P                  ! \        P                  ! R4      4      w  rV P	                  VP                  . R	O4       V P                  VR4       \         P                  ! \        P                  ! R4      4      w  rV P	                  VP                  R.4       V P                  VR4       \         P                  ! \        P                  ! R4      4      w  rV P	                  VP                  R.4       V P                  VR4       R# )
--choice a b czusage: --integer 5--float 2.5r   a b c52.5N)rP   r   r   )
r*   _parse_argsshlexsplitr=   rx   assertStartsWithintegerr  input)r   rj  	help_texts   &  r   test_parse_argsCommandLineTest.test_parse_args  s    ,,U[[9I-JKo6i3 ,,U[[-GHq)i3 ,,U[[-GHS)i3 ,,U[[-AB_5i3 ,,U[[-=>cU+i3 ,,U[[-?@eW-i3r   c                    R FU  w  r\         P                  ! ^ 4       V P                  \         P                  ! \        P
                  ! V4      4      V4       KW  	  R# )r  N)	)r  r   )z"a b c"r   )r  r   )z--choice 'a a' 'b b' 'c c'b b)z'a a' 'b b' 'c c'r)  )r  r   )r  r   )r  痎p @)r  r*  )r*   r1   r=   mainr   r!  )r   commandr   s   &  r   	test_mainCommandLineTest.test_main  s@    
"
G KKNV[[W)=>I
"
r   rG   N)
r   r   r   r    r
   force_not_colorizedr&  r-  r!   r"   r#   s   @r   r  r    s)       4 !42J Jr   r  __main__)*r  unittest.mockr*   r  r3   rh  r   r   test.supportr  	functoolsr   r  r   r   r   r   r   r	   r
   	fractionsr   collectionsr   r   r   r&   r  SystemRandom_availabler`   
skipUnlessTestCaser  r  r  rO  rT  r  r  r  r   r+  rG   r   r   <module>r9     s^      	       3 3   $ z7 z7z"
  " "	+-PQRh.?.? R RR23X.. 3&`!<1B1B `!F "fs] $OD)) ODdZ9H-- Z9z 2""  2F(Jh'' (JV zMMO I  #"#s   $E   	E,+E,