mò
­fIc           @   st  d  k  l Z d k Z d k l Z d a d d „ Z d g Z x? e d d ƒ D]. Z	 d e	 Z
 e i e e
 d e
 d ƒ ƒ qN We i d d d	 g ƒ d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ x0e D](Z
 e e
 ƒ Z e o d Ge
 GHn e Z e d e e ƒ e Z e i ƒ  e d e e ƒ e Z e i e ƒ e d e e ƒ e Z e i ƒ  e Z e d e e d „  ƒ e o d GHd GHn e Z e i d „  ƒ e d e e ƒ g  Z e D] Z e e e ƒ qÀ[ Z e Z e i e ƒ e e _ e Z y e i ƒ  Wn e j
 o e Z n Xe o e e _ e d e e ƒ n g  Z e e
 ƒ D] Z e e e i d ƒ e ƒ q^[ Z g  Z e D] Z e e e i f q‘[ Z  e  i ƒ  g  Z e  D] \ Z Z e e qÅ[ Z e d e e ƒ qÉ Wd k! Z! d k" l# Z# d k$ 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("   (   s   verboseN(   s   UserListi    c         C   s  t  o d G|  GHn | } | o | i | ƒ n | i ƒ  t | ƒ t | ƒ j oC d G|  GHd Gt | ƒ Gt | ƒ GH| GH| GH| GHt d 7a d  Sn xl t	 | ƒ D]^ \ } } | | } | | j	 o; d G|  GHd G| G| G| GH| GH| GH| GHt d 7a d  Sq¦ q¦ Wd  S(   Ns       checkings   error ins   length mismatch;i   s   out of order at index(   t   verboset   tagt   rawt   origt   comparet   sortt   lent   expectedt   nerrorst	   enumeratet   it   goodt   maybe(   R   R   R   R   R   R
   R   R   (    (    t+   /mit/python/lib/python2.4/test/test_sort.pyt   check   s4     
	
 
	
i   i
   i   id   iè  t	   Complainsc           B   s)   t  Z e Z d „  Z d „  Z d „  Z RS(   Nc         C   s   | |  _  d  S(   N(   R
   t   self(   R   R
   (    (    R   t   __init__1   s    c         C   sO   t  i o5 t i ƒ  d j  o" t o d G|  G| GHn t ‚ n |  i | i j  S(   Nf0.001s           complaining at(   R   t   maybe_complaint   randomR    R   t   othert   RuntimeErrorR
   (   R   R   (    (    R   t   __lt__4   s
    
c         C   s   d |  i S(   Ns   Complains(%d)(   R   R
   (   R   (    (    R   t   __repr__;   s    (   t   __name__t
   __module__t   TrueR   R   R   R   (    (    (    R   R   .   s   		t   Stablec           B   s#   t  Z d „  Z d „  Z d „  Z RS(   Nc         C   s   | |  _  | |  _ d  S(   N(   t   keyR   R
   t   index(   R   R   R
   (    (    R   R   ?   s    	c         C   s   t  |  i | i ƒ S(   N(   t   cmpR   R   R   (   R   R   (    (    R   t   __cmp__C   s    c         C   s   d |  i |  i f S(   Ns   Stable(%d, %d)(   R   R   R   (   R   (    (    R   R   F   s    (   R   R   R   R   R   (    (    (    R   R   >   s   		s   Testing sizet   identityt   reverseds   random permutations   reversed via functionc         C   s   t  | |  ƒ S(   N(   R   t   bt   a(   R#   R"   (    (    R   t   <lambda>\   s    s3       Checking against an insane comparison function.s?           If the implementation isn't careful, this may segfault.c         C   s   t  t i ƒ  d ƒ d S(   Ni   i   (   t   intR   (   R#   R"   (    (    R   R$   b   s    s(   an insane function left some permutations+   exception during sort left some permutationt	   stability(   s   test_supportt   TestBugsc           B   s#   t  Z d „  Z d „  Z d „  Z RS(   Nc            sW   d f  ‡  d †  ƒ  Y} g  } t d ƒ D] } | | ƒ  q' ~ ‰  |  i t ˆ  i ƒ d  S(   Nt   Cc              s   t  Z ‡  d †  Z RS(   Nc            sE   ˆ  o! t i ƒ  d j  o ˆ  i ƒ  n ˆ  i d ƒ t i ƒ  d j  S(   Nf0.75i   f0.5(   t   LR   t   popt   append(   R   R   (   R)   (    R   R   ‡   s    (   R   R   R   (    (   R)   (    R   R(   †   s   i2   (	   R(   t   _[1]t   rangeR
   R)   R   t   assertRaisest
   ValueErrorR   (   R   R(   R
   R)   R,   (    (   R)   R   t   test_bug453523   s    *c         C   s@   t  d ƒ } t i | ƒ | i d  ƒ |  i | t  d ƒ ƒ d  S(   Ni2   (   R-   R)   R   t   shuffleR   t   NoneR   t   assertEqual(   R   R)   (    (    R   t   test_cmpNone‘   s    c            sz   g  } xm t d ƒ D]_ } ‡  d †  } d d g ‰  |  i t ˆ  i | ƒ ‡  d †  } |  i t ˆ  i | ƒ | g } q Wd  S(   Ni   c            s$   ˆ  i d ƒ ˆ  i ƒ  t |  | ƒ S(   Ni   (   R)   R+   R*   R   t   xt   y(   R5   R6   (   R)   (    R   t   mutating_cmp   s    
i   i   c            s   ˆ  i d ƒ ˆ  2t |  | ƒ S(   Ni   (   R)   R+   R   R5   R6   (   R5   R6   (   R)   (    R   R7   £   s    (	   t   memorywasterR-   R
   R7   R)   R   R.   R/   R   (   R   R7   R
   R8   R)   (    (   R)   R   t   test_undetected_mutation™   s     (   R   R   R0   R4   R9   (    (    (    R   R'      s   		t   TestDecorateSortUndecoratec           B   sk   t  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d	 „  Z
 d
 „  Z d „  Z RS(   Nc         C   sJ   d i  ƒ  } | } t i | ƒ | i d t i ƒ | i d d „  ƒ d  S(   Ns,   The quick Brown fox Jumped over The lazy DogR   R   c         C   s   t  |  i ƒ  | i ƒ  ƒ S(   N(   R   R5   t   lowerR6   (   R5   R6   (    (    R   R$   ³   s    (   t   splitt   datat   copyR   R1   R   t   strR;   (   R   R>   R=   (    (    R   t   test_decorated®   s
    c         C   s,   d i  ƒ  } |  i t | i d  d „  ƒ d  S(   Ns,   The quick Brown fox Jumped over The lazy Dogc         C   s   d S(   Ni    (    (   R5   R6   (    (    R   R$   ·   s    (   R<   R=   R   R.   t	   TypeErrorR   R2   (   R   R=   (    (    R   t   test_baddecoratorµ   s    c         C   sn   g  } t d ƒ D] } | t i d ƒ | f q ~ } | } | i d d „  ƒ | i ƒ  |  i	 | | ƒ d  S(   NiÈ   id   R   c         C   s   |  \ } } | S(   N(   R5   R6   (   t   .0R5   R6   (    (    R   R$   ¼   s    (
   R,   t   xrangeR
   R   t	   randrangeR=   R>   R   R   R3   (   R   R
   R,   R>   R=   (    (    R   t   test_stability¹   s
    6
c            s5   ‡  d †  } d i ƒ  } | i d | d t i ƒ d  S(   Nc            s9   ˆ  i t |  ƒ t ƒ ˆ  i t |  ƒ t ƒ t |  | ƒ S(   N(   R   R3   t   typeR5   R?   R   R6   (   R5   R6   (   R   (    R   R   Â   s    s,   The quick Brown fox Jumped over The lazy DogR   R   (   R   R<   R=   R   R?   R;   (   R   R=   R   (    (   R   R   t   test_cmp_and_key_combinationÀ   s    c         C   s,   d i  ƒ  } |  i t | i d t i ƒ d  S(   Ns,   The quick Brown fox Jumped over The lazy Dogt   bad(   R<   R=   R   R.   RA   R   R?   R;   (   R   R=   (    (    R   t   test_badcmp_with_keyÉ   s    c         C   sF   t  d d ƒ } | } |  i t | i d  d „  ƒ |  i | | ƒ d  S(   Niþÿÿÿi   c         C   s   d |  S(   Ni   (   R5   (   R5   (    (    R   R$   Ò   s    (	   R-   R=   t   dupR   R.   t   ZeroDivisionErrorR   R2   R3   (   R   RK   R=   (    (    R   t   test_key_with_exceptionÎ   s    c            s5   t  d ƒ ‰  ‡  d †  } |  i t ˆ  i d | ƒd  S(   Ni
   c            s   ˆ  2t d ƒ ˆ  (|  S(   Ni   (   R=   R-   R5   (   R5   (   R=   (    R   t   k×   s    R   (   R-   R=   RN   R   R.   R/   R   (   R   RN   R=   (    (   R=   R   t   test_key_with_mutationÕ   s    c            sB   t  d ƒ ‰  d t f ‡  d †  ƒ  Y} |  i t ˆ  i d | ƒd  S(   Ni
   t
   SortKillerc              s   t  Z d „  Z ‡  d †  Z RS(   Nc         C   s   d  S(   N(    (   R   R5   (    (    R   R   à   s    c            s   ˆ  2t d ƒ ˆ  (d  S(   Ni   (   R=   R-   (   R   (   R=   (    R   t   __del__â   s    (   R   R   R   RQ   (    (   R=   (    R   RP   ß   s   	R   (   R-   R=   t   objectRP   R   R.   R/   R   (   R   RP   R=   (    (   R=   R   t   test_key_with_mutating_delÝ   s    c            sB   t  d ƒ ‰  d t f ‡  d †  ƒ  Y} |  i t ˆ  i d | ƒd  S(   Ni
   RP   c              s   t  Z d „  Z ‡  d †  Z RS(   Nc         C   s   | d j o
 t ‚ n d  S(   Ni   (   R5   R   (   R   R5   (    (    R   R   ë   s    c            s   ˆ  2t d ƒ ˆ  (d  S(   Ni   (   R=   R-   (   R   (   R=   (    R   RQ   î   s    (   R   R   R   RQ   (    (   R=   (    R   RP   ê   s   	R   (   R-   R=   RR   RP   R   R.   R   R   (   R   RP   R=   (    (   R=   R   t(   test_key_with_mutating_del_and_exceptionç   s    c         C   s_   t  d ƒ } t i | ƒ | i d t ƒ |  i | t  d d d ƒ ƒ |  i t	 | i d ƒ d  S(   Nid   t   reverseic   iÿÿÿÿs
   wrong type(
   R-   R=   R   R1   R   R   R   R3   R.   RA   (   R   R=   (    (    R   t   test_reverseû   s
    c         C   s­   g  } t d ƒ D] } | t i d ƒ | f q ~ } | } | } | i d d „  d t	 ƒ | i d d „  ƒ |  i | | ƒ | i d d „  d t	 ƒ |  i | | ƒ d  S(	   NiÈ   id   R   c         C   s   t  |  d | d ƒ S(   Ni    (   R   R5   R6   (   R5   R6   (    (    R   R$     s    RU   c         C   s   t  | d |  d ƒ S(   Ni    (   R   R6   R5   (   R5   R6   (    (    R   R$     s    R   c         C   s   |  d S(   Ni    (   R5   (   R5   (    (    R   R$   	  s    (   R,   RD   R
   R   RE   R=   t   copy1t   copy2R   R   R   R3   (   R   R
   R,   RW   R=   RX   (    (    R   t   test_reverse_stability  s    6(   R   R   R@   RB   RF   RH   RJ   RM   RO   RS   RT   RV   RY   (    (    (    R   R:   ¬   s   									
		c         C   s—   t  t f } t i | Œ  |  os t t d ƒ oc d  k } d  g d } xA t t | ƒ ƒ D]- } t i | Œ  | i ƒ  t i ƒ  | | <qY W| GHn d  S(   Nt   gettotalrefcounti   (   R:   R'   t   test_classest   test_supportt   run_unittestR    t   hasattrt   syst   gcR2   t   countsRD   R   R
   t   collectRZ   (   R    R
   R`   R[   Ra   (    (    R   t	   test_main  s    	 
t   __main__R    (*   t   test.test_supportR    R   t   UserListR   R2   R   t   sizesR-   t   powert   nt   extendRR   R   R   R5   t   sRU   R1   R6   R   R,   R
   R   R   t   Falset   it_complainedR   RD   RE   t   eR   t	   augmentedt   unittestt   testR\   R_   t   TestCaseR'   R:   Rc   R   (   R\   R    R   R   R   Rm   Rf   R:   Rc   Rp   Rh   R_   Rn   R   Rg   R
   Ri   R,   Rk   R6   R5   R'   Ro   (    (    R   t   ?   sx   	!	 
" 

	'		9*
'		-b