
"Ic           @   sD  d  d k  Z  d  d k Z d  d k Z d  d k Z d  d k Z d  d k l Z l Z l Z l	 Z	 l
 Z d  d k l Z d e  i f d     YZ d e f d     YZ d e f d	     YZ d
 e f d     YZ d Z e d d  Z d e  i f d     YZ d e  i f d     YZ d d  Z e d j o e d e  n d S(   iN(   t   logt   expt   sqrtt   pit   fsum(   t   test_supportt   TestBasicOpsc           B   st   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 RS(   c         C   s.   g  } t  |  D] } | |  i i   q ~ S(   s0   Helper function to make a list of random numbers(   t   xranget   gent   random(   t   selft   nt   _[1]t   i(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt
   randomlist   s    c         C   sY   |  i  i   |  i  i   } t i d  |  i  i   |  i  i   } |  i | |  d  S(   Ng?(   R   t   seedt   getstatet   timet   sleept   assertNotEqual(   R
   t   state1t   state2(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_autoseed   s    c         C   s^   d } |  i  i   |  i  i   } |  i |  } |  i  i |  |  i | |  i |   d  S(   Ni  (   R   R   R   R   t   setstatet   assertEqual(   R
   t   Nt   statet   randseq(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_saverestore   s    c         C   s   xK d  d d d d d d d d d	 d d t d  g D] } |  i i |  q4 Wx< t d  t d d  g D] } |  i t |  i i |  qj W|  i t |  i i d d  |  i t t |  i  g   d  S(   Ni    l    i   l    il i
   i   gQ	@y               @t   at   abci   t   onei   l      Fx:^V l      Fx:^V l   Fx:^V y      ?       @(	   t   Nonet   tupleR   R   t   ranget   dictt   assertRaisest	   TypeErrort   type(   R
   t   arg(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_seedargs$   s      c         C   s   |  i  i   |  i  i   } |  i  i d  |  i  i   } |  i | |  |  i  i d  |  i  i   } |  i | |  |  i t |  i  i  |  i t |  i  i d  |  i t |  i  i d  |  i t |  i  i d d  d  S(   Nid   t   ickgffffff@i   i   (   R   R   R   t	   jumpaheadR   R$   R%   (   R
   R   R   t   state3(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_jumpahead-   s    c         C   s   d } t  |  } x~ t  | d  D]l } |  i i | |  } |  i t |  |  t |  } |  i t |  |  |  i | t |  j  q# W|  i |  i i g  d  g   d  S(   Nid   i   i    (   R   R   t   sampleR   t   lent   sett
   failUnless(   R
   R   t
   populationt   kt   st   uniq(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_sample<   s     c   	      C   s   d } t  |  } d } d   } x t |  D]~ } | |  | | |  } h  } xU t |  D]= } d  | t |  i i | |   <t |  | j o Pqa qa W|  i   q. Wd  S(   Ni   i'  c         S   s   t  t i t d |   d  S(   Ni   (   t   reducet   intt   __mul__R   (   R   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt	   factorialO   s    (   R"   R   R    R!   R   R-   R.   t   fail(	   R
   R   t   popt   trialsR9   R2   t   expectedt   permsR   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_sample_distributionI   s    	  	c         C   s   |  i  i t t d   d  |  i  i t d  d  |  i  i t d  d  |  i  i t d  d  |  i  i t d  d  d  S(   Ni   i   t   abcdefghijklmnopqrst(   R   R-   R/   R"   R   t   strR!   (   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_sample_inputs[   s
    c         C   s  |  i  i t i d  d  t i t d  t d d d  t d d   } |  i  i | d  d } t d   t |  D  } xW t | d	  D]E } |  i  i | |  } x' | D] } |  i t |  t j  q Wq W| i	   |  i
 | t |   d  S(
   NR@   i   i
   id   in   i   i   c         s   s(   x! |  ] } | t  | |  f Vq Wd  S(   N(   t   complex(   t   .0R   (    (    s-   /mit/python/lib/python2.6/test/test_random.pys	   <genexpr>n   s   	 i   (   R   R-   R#   t   fromkeysR"   R   t   assert_R&   R7   t   sortR   (   R
   R   R   t   dR2   t   sampt   x(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_sample_on_dictsc   s    2  !
c         C   s   x d	 D] } |  i  i |  |  i  i   } |  i  i d d  } |  i  i |  |  i  i   } |  i  i d d  } |  i | |  |  i | |  q Wd  S(
   Ni   i   i{   i  i90  i@ i	 i    (   i   i   i{   i  i90  i@ i	 (   R   R   R	   t   gaussR   (   R
   R   t   x1t   y1t   x2t   y2(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt
   test_gaussw   s     c         C   s   t  i |  i  } g  } t d  D] } | |  i i   q# ~ } t  i |  } g  } t d  D] } | | i   qb ~ } |  i | |  d  S(   Ni
   (   t   picklet   dumpsR   R   R	   t   loadsR   (   R
   R   R   R   t   origseqt   newgent   _[2]t   restoredseq(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_pickling   s
    0-c         C   st   d	 d
 d g } x^ | D]V \ } } t  t i |  d  } t i |  } | i   |  i | i d  |  q Wd  S(   Ns   randv2_32.pcki  s   randv2_64.pckib  s
   randv3.pckiW  t   rbi  (   s   randv2_32.pcki  (   s   randv2_64.pckib  (   s
   randv3.pckiW  (   t   openR   t   findfileRR   t   loadt   closeR   t	   randrange(   R
   t   filest   filet   valuet   ft   r(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_bug_1727780   s    	 
(   t   __name__t
   __module__R   R   R   R(   R,   R5   R?   RB   RK   RQ   RY   Re   (    (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR      s   												t   WichmannHill_TestBasicOpsc           B   s8   e  Z e i   Z d    Z d   Z d   Z d   Z RS(   c         C   s   |  i  t |  i i d  d  S(   Ni   (   i   NN(   R$   t
   ValueErrorR   R   R    (   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_setstate_first_arg   s    c         C   s   d } |  i  i   } |  i  i |  |  i  i   } |  i  i |  x! t |  D] } |  i  i   qQ W|  i  i   } |  i | |  d  S(   Ni  (   R   R   R*   R	   R   R   R   (   R
   R   R3   t   r1R   t   r2(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_strong_jumpahead   s     c         C   s   x d	 D] } |  i  i |  |  i  i   } |  i  i d d  } |  i  i |  |  i  i   } |  i  i d d  } |  i | |  |  i | |  q Wd  S(
   Ni   i   i{   i  i90  i@ i	 i    (   i   i   i{   i  i90  i@ i	 (   R   t   whseedR	   RL   R   (   R
   R   RM   RN   RO   RP   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_gauss_with_whseed   s     c      	   C   sK   t  i   i i   z- t  i d d  |  i t |  i i d  Wd  QXd  S(   Nt   errors   Underlying randomi   i<   l            (	   t   warningst   catch_warningst   __exit__t	   __enter__t   filterwarningsR$   t   UserWarningR   R_   (   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_bigrand   s    (	   Rf   Rg   R	   t   WichmannHillR   Rj   Rm   Ro   Rw   (    (    (    s-   /mit/python/lib/python2.6/test/test_random.pyRh      s
   			t   SystemRandom_TestBasicOpsc           B   s   e  Z e i   Z d    Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d   Z d	   Z d
   Z e e d  Z RS(   c         C   s   |  i  i   d  S(   N(   R   R   (   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR      s    c         C   s3   |  i  t |  i i  |  i  t |  i i d   d  S(   N(   R$   t   NotImplementedErrorR   R   R   R    (   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR      s    c         C   s   |  i  i d  d  S(   Nid   (   R   R   (   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR(      s    c         C   s   |  i  i d  d  S(   Nid   (   R   R*   (   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR,      s    c         C   s6   d  |  i _ |  i i d  |  i |  i i d   d  S(   Nid   (   R    R   t
   gauss_nextR   R   (   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyRQ      s    c         C   s   |  i  t t i |  i  d  S(   N(   R$   Rz   RR   RS   R   (   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyRY      s    c         C   sX   d } d } x1 t  d  D]# } | t |  i i   |  O} q W|  i | | d  d  S(   Ni   i5   i    id   i   l          (   R   R7   R   R	   R   (   R
   t   spant   cumR   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_53_bits_per_float   s     !c         C   s{   d } d } xT t  d  D]F } |  i i |  } |  i d | j o
 | j  n  | | O} q W|  i | | d  d  S(   Ni   i  i    id   i   l"                                                                       (   R   R   R_   RF   R   (   R
   R|   R}   R   Rd   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyRw      s     $c      	   C   s   x d d d d d d d d d	 g	 D]{ } |  i  i d
 |  } |  i  i d
 | d
  } | | j o d  S|  i | |  i  i | |  j o
 | j  n  q" Wd  S(   Ni(   iP   i   i   i   i   iw  i   i&  i   (   R   R_   RF   (   R
   R   t   startt   stop(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_bigrand_ranges   s    " c      
   C   s   x~ d d	 d f d d f g D]a \ } } |  i  t t | |   t g  } t d  D] } | |  i i | |  qT ~   q Wd  S(   Nii    i   i<   id   (   ii    l            l         l        l            l         l            l            l           (   R   R/   R"   R   R   R_   (   R
   R   R   R   R   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_rangelimits   s     c         C   s[  xK t  d d  D]: } |  i d |  i i |  j o d | j  n  q W|  i i } x} d d d d d d d d	 d
 d d d d d g D]K } d } x$ t  d  D] } | | |  O} q W|  i | d | d  q W|  i t |  i i  |  i t |  i i d d  |  i t |  i i d  |  i t |  i i d  |  i t |  i i d  d  S(   Ni   i  i    i   i   i   i   i    i4   i5   i6   iw   i   i   i   id   ig333333$@(   R   RF   R   t   getrandbitsR   R$   R%   Ri   (   R
   R2   t   getbitsR|   R}   R   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_genrandbits  s      81  c         C   sQ  xJt  d d  D]9} d | >} | d } | d | | d   } |  i | |  |  i | d | d j  | | d 7} | d | | d   } |  i | | | d g j  |  i d | | j o d | d j n  | | d ?8} | d | | d   } |  i | |  |  i d | | j o d | d j n  q Wd  S(   Ni   i  l    grZ|
 ?i   i   (   R   R   RF   (   R
   t   _logR7   R   R   t   numbitsR2   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_randbelow_logic  s     

0(   Rf   Rg   R	   t   SystemRandomR   R   R   R(   R,   RQ   RY   R~   Rw   R   R   R   R    R7   R   (    (    (    s-   /mit/python/lib/python2.6/test/test_random.pyRy      s   											t   MersenneTwister_TestBasicOpsc           B   s   e  Z e i   Z d    Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d   Z d	   Z e e d
  Z d   Z RS(   c         C   s   |  i  t |  i i d  d  S(   Ni   (   i   NN(   R$   Ri   R   R   R    (   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyRj   .  s    c         C   s   |  i  t |  i i d  |  i  t |  i i d d	 d  f  |  i  t |  i i d d
 d d  f  |  i  t |  i i d d d d d  f  d  S(   Ni   i   i   R   iq  i    ip  (   i   NN(   i   i   i   (   R   (   i    (   R   (   R$   R%   R   R   R    Ri   (   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_setstate_middle_arg1  s    "&c      
   C   s   d d d d d d d d d	 d
 g
 } |  i  i d d d d  |  i d  d } x3 t | |  D]" \ } } |  i | | d d qc Wd  S(   Ng>FdV?gwR1ۉ?gQ"?g~5?g mb?gYKbX?gH,r̊?gV8?gOֶ?g4Ԗ?l   #q l   Gai    l   fi@   l   $ i`   i  it   placesi   l        l           `&l               'R (   R   R   R   t   zipt   assertAlmostEqual(   R
   R=   t   actualR   t   e(    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_referenceImplementation;  s    	 c         C   s   d d k  l } d d d d d d d	 d
 d d g
 } |  i i d d d d  |  i d  d } x< t | |  D]+ \ } } |  i t | | d   |  qs Wd  S(   Ni(   t   ldexpl   #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 l   #q l   Gai    l   fi@   l   $ i`   i  ii5   l        l           `&l               'R (   t   mathR   R   R   R   R   R   t   long(   R
   R   R=   R   R   R   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt$   test_strong_reference_implementationZ  s     	 c         C   s"   d d >d } |  i  i |  d  S(   Nl    i'  i   i   i8 (   R   R   (   R
   R   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_long_seedp  s    c         C   sX   d } d } x1 t  d  D]# } | t |  i i   |  O} q W|  i | | d  d  S(   Ni   i5   i    id   i   l          (   R   R7   R   R	   R   (   R
   R|   R}   R   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR~   y  s     !c         C   s{   d } d } xT t  d  D]F } |  i i |  } |  i d | j o
 | j  n  | | O} q W|  i | | d  d  S(   Ni   i  i    id   i   l"                                                                       (   R   R   R_   RF   R   (   R
   R|   R}   R   Rd   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyRw     s     $c      	   C   s   x d d d d d d d d d	 g	 D]{ } |  i  i d
 |  } |  i  i d
 | d
  } | | j o d  S|  i | |  i  i | |  j o
 | j  n  q" Wd  S(   Ni(   iP   i   i   i   i   iw  i   i&  i   (   R   R_   RF   (   R
   R   R   R   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR     s    " c      
   C   s   x~ d d	 d f d d f g D]a \ } } |  i  t t | |   t g  } t d  D] } | |  i i | |  qT ~   q Wd  S(   Nii    i   i<   id   (   ii    l            l         l        l            l         l            l            l           (   R   R/   R"   R   R   R_   (   R
   R   R   R   R   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR     s     c         C   s  |  i  i d  |  i |  i  i d  d  xK t d d  D]: } |  i d |  i  i |  j o d | j  n  q< W|  i  i } x} d d d d	 d
 d d d d d d d d d g D]K } d } x$ t d  D] } | | |  O} q W|  i | d | d  q W|  i t |  i  i  |  i t |  i  i d  |  i t |  i  i d d  |  i t |  i  i d  |  i t |  i  i d  d  S(   Ni id   l   S!m.vFXO i   i  i    i   i   i   i   i    i4   i5   i6   iw   i   i   i   R   i(	   R   R   R   R   R   RF   R$   R%   Ri   (   R
   R2   R   R|   R}   R   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR     s&     81  c         C   sQ  xJt  d d  D]9} d | >} | d } | d | | d   } |  i | |  |  i | d | d j  | | d 7} | d | | d   } |  i | | | d g j  |  i d | | j o d | d j n  | | d ?8} | d | | d   } |  i | |  |  i d | | j o d | d j n  q Wd  S(   Ni   i  l    grZ|
 ?i   i   (   R   R   RF   (   R
   R   R7   R   R   R   R2   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR     s     

0c         C   sj   d } d } d } |  i  i | | |  } |  i | | j  o
 | j n  |  i | | | d  d  S(   Nl    J)l   Fx:^V i8i    (   R   R_   RF   R   (   R
   R   R   t   stepRJ   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_randrange_bug_1590891  s    $(   Rf   Rg   R	   t   RandomR   Rj   R   R   R   R   R~   Rw   R   R   R   R    R7   R   R   (    (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR   +  s   		
									g?g
ö)$@g&Ԏgta@gQfg>@~)@gA~g~\>giE>i   c         C   s   |  d 8}  t  | d g g  } t d t |   D] } | | | |  | q1 ~  } |  d 7}  |  | |  t |  |  t d t  | S(   Ng      ?i    i   g      ?g       @(   t   msumR"   R.   R   R   R   (   t   zt   coft   gR   R   R3   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   gamma  s    
M
t   TestDistributionsc           B   s   e  Z d    Z d   Z RS(   c         C   s  t  i   } g  } t d  D] } | | i    q ~ d g d } | i | _  | i d d  | i | _  | i d  | i | _  | i d  | i | _  | i d d  | i | _  | i d d  | i | _  | i	 d d  | i | _  | i
 d d  | i | _  | i d d  | i | _  | i d d  | i | _  | i d d  | i | _  | i d d  | i | _  | i d	 d	  | i | _  | i d d d d	  d  S(
   Ni2   g        i   i   i
   g      ?g{Gz?g      i@g      @(   R	   R   R   R;   t   uniformt   paretovariatet   expovariatet   weibullvariatet   normalvariateRL   t   lognormvariatet   vonmisesvariatet   gammavariatet   betavariatet
   triangular(   R
   R   R   R   RJ   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_zeroinputs  s8    8             c         C   s  t  i   } d } g  } t d |  D] } | | t |  q& ~ } x| i d d d d d f | i d d d d f d	 d
 d d
 d f | i d d d d d f | i d d d d d d f | i d t	 d d d  t	 d d d  t	 d d d  d f g D] \ } } } }	 | i
 | _  g  }
 xG t t |   D]3 } y |
 i | |    WqFt j
 o qFXqFWd } } x* |
 D]" } | | 7} | | | d 7} qWt |
  } |  i | | | d  |  i | | d |	 d  qWd  S(   Ni  i   g      ?g      $@i   i   g        g      @g      @g      "@g      @g      2@g      ?g      @i    (   g      ?g      $@g      &@g      "@g     @T@(   g      ?g      @(   g      @g      @g      @g      0@g      @(   g      ?g      @(   R	   R   R   t   floatR   R   R   R   R   R   R;   R.   t   appendt
   IndexErrorR   (   R
   R   R   R   R   RJ   t   variatet   argst   mut	   sigmasqrdt   yt   s1t   s2R   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test_avg_std  s8    4+.  	
 
(   Rf   Rg   R   R   (    (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR     s   	t
   TestModulec           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   sP   |  i  t i d  |  i  t i d  |  i  t i d  |  i  t i d  d  S(   Ng3?r?g.DT!@g9B.?gtY@(   R   R	   t   NV_MAGICCONSTt   TWOPIt   LOG4t   SG_MAGICCONST(   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   testMagicConstants	  s    c         C   s,   |  i  t t i  t t t   j  d  S(   N(   R0   R/   R	   t   __all__t   dir(   R
   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   test__all__  s    c         C   s*   d t  i f d     Y} | d d  d  S(   Nt   Subclassc           B   s   e  Z d d   Z RS(   c         S   s   t  i i |   d  S(   N(   R	   R   t   __init__(   R
   t   newarg(    (    s-   /mit/python/lib/python2.6/test/test_random.pyR     s    N(   Rf   Rg   R    R   (    (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR     s   R   i   (   R	   R   (   R
   R   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt    test_random_subclass_with_kwargs  s    (   Rf   Rg   R   R   R   (    (    (    s-   /mit/python/lib/python2.6/test/test_random.pyR     s   		c         C   s   t  t t t g } y t i   i   Wn t j
 o n X| i t  t	 i
 |   d d  k } |  o` t | d  oP d  g d } x7 t t |   D]# } t	 i
 |   | i   | | <q W| GHn d  S(   Nit   gettotalrefcounti   (   Rh   R   R   R   R	   R   Rz   R   Ry   R   t   run_unittestt   syst   hasattrR    R   R.   R   (   t   verboset   testclassesR   t   countsR   (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt	   test_main  s$    	 t   __main__R   (	   g?g
ö)$@g&Ԏgta@gQfg>@~)@gA~g~\>giE>(   t   unittestR	   R   RR   Rq   R   R    R   R   R   R   R   t   testR   t   TestCaseR   Rh   Ry   R   t   _gammacoeffR   R   R   R    R   Rf   t   True(    (    (    s-   /mit/python/lib/python2.6/test/test_random.pyt   <module>   s&   (*e  0