‡Æ
GNö9c       sÍ     d  Z    d k Z 	 d k Z 
 d k Z  d k Z  d k Z  d k Z  d k Z  e i ƒ  Z	  d „  Z
 7 d „  Z : d „  Z A d „  Z k d „  Z  e d j o Ž e ƒ  n d S(   s_   Sort performance test.

See main() for command line syntax.
See tabulate() for output format.

Nc    sô     t  i i t d |  ƒ }  y  t | d ƒ } Wn t j
 o g  }  x/ t
 |  ƒ d  r }  | i t i ƒ  ƒ qj W y‘  z?  t | d ƒ }  t i | | ƒ  | i ƒ    t } Wd ! " | o: # y $ t  i | ƒ Wn % t  i j
 o
 & n Xn XWn, ' t j
 o } ( d G| Gd G| GHn Xn– X* t i | ƒ } + | i ƒ  . xo t
 d ƒ d . r\ } / t i d |  d	 ƒ } 0 | |  } 1 | | 42 | i ƒ  3 | | t | ƒ )4 ~ q†W5 | Sd S(
   s$   Return a random shuffle of range(n).s   rr%06ds   rbi    s   wbNs   can't writes   :i
   i   (   s   oss   paths   joins   tds   ns   fns   opens   fps   IOErrors   results   ranges   is   appends   whrandoms   randoms   marshals   dumps   closes   Nones   unlinks   errors   msgs   loads   randints   temps   reverses   len(   s   ns   fns   fps   results   is   msgs   temps*   /mit/python/lib/python2.0/test/sortperf.pys	   randrange sD   	 	
 	

c      s   7 8 t  i i ƒ  d  S(   N(   s   syss   stdouts   flush(    s*   /mit/python/lib/python2.0/test/sortperf.pys   fl7 s   c    sK   : ; t  i ƒ  } < |  i ƒ  = t  i ƒ  } > d | | G? t ƒ  d  S(   Ns   %6.2f(   s   times   clocks   t0s   Ls   sorts   t1s   fl(   s   Ls   t0s   t1s*   /mit/python/lib/python2.0/test/sortperf.pys   doit: s
   c    s¡  A P Q d d d d d d f } R d d t | ƒ } S | d	 d
 f | GHT xI|  d T r<} U d | >} V t | ƒ } X d | | f GY t ƒ  Z t	 | ƒ [ | i
 ƒ  \ t	 | ƒ ] t	 | ƒ ^ | d j o4 _ | d 3` | | d } a t d „  | ƒ } n b t	 | ƒ c ~ d t t d g | ƒ } e t	 | ƒ f t | d d d d ƒ } g t | d ƒ | t | ƒ )h t	 | ƒ i HqZ Wd S(   sŒ  Tabulate sort speed for lists of various sizes.

    The sizes are 2**i for i in r (the argument, a list).

    The output displays i, 2**i, and the time to sort arrays of 2**i
    floating point numbers with the following properties:

    *sort: random data
    \sort: descending data
    /sort: ascending data
    ~sort: many duplicates
    -sort: all equal
    !sort: worst case scenario

    s   *sorts   \sorts   /sorts   ~sorts   -sorts   !sorts   %2s %6ss    %6ss   is   2**ii    i   s   %2d %6di   c    s	   a |  S(   N(   s   x(   s   xs*   /mit/python/lib/python2.0/test/sortperf.pys   <lambda>a s    f0.5i   N(   s   casess   lens   fmts   rs   is   ns	   randranges   Ls   fls   doits   reverses   maps   abss   range(   s   rs   casess   fmts   is   ns   Ls*   /mit/python/lib/python2.0/test/sortperf.pys   tabulateA s4    	

c  
   sž  k r s d k  }  u d } v d } w t i d oBy |  i t i d ƒ } } z t i d o| |  i t i d ƒ } } t i d oâ  d d d f \ } } } € x§ t i d d € r“ }  t
 | ƒ } ‚ t | d ƒ \ } } ƒ | d	 @} „ | | A| Ad
 @} … | d ?} † | | A| Ad
 @} ‡ | d ?} ˆ | | A| Ad
 @} q» W‰ t i | | | ƒ n n n Š t | | d ƒ }	 ‹ t |	 ƒ d S(   sÂ   Main program when invoked as a script.

    One argument: tabulate a single row.
    Two arguments: tabulate a range (inclusive).
    Extra arguments are used to seed the random generator.

    Ni   i   i   i   i   i    i   iÿÿÿ iÿ   i   (   s   strings   k1s   k2s   syss   argvs   atois   xs   ys   zs   as   hashs   hs   divmods   ds   whrandoms   seeds   ranges   rs   tabulate(
   s   strings   k1s   k2s   xs   ys   zs   as   hs   ds   rs*   /mit/python/lib/python2.0/test/sortperf.pys   maink s.   		 	"s   __main__(   s   __doc__s   syss   times   whrandoms   marshals   tempfiles   operators   oss
   gettempdirs   tds	   randranges   fls   doits   tabulates   mains   __name__(    s*   /mit/python/lib/python2.0/test/sortperf.pys   ? s   %*"