;
Ìâ"Ic               @   sÈ   d  d l  m Z d  d l Z d  d l Z d  d l Z e j Z d  a d „  Z d d „ Z	 Gd „  d e j
 ƒ Z Gd „  d e j
 ƒ Z Gd	 „  d
 e j
 ƒ Z d d „ Z e d k o e d d ƒ n d S(   i    (   u   supportNc                s   G‡  f d †  d t  ƒ } | S(   u,   Convert a cmp= function into a key= functionc                s&   |  Ee  Z d  „  Z ‡  f d †  Z d S(   c             S   s   | |  _  d  S(   N(   u   obj(   u   selfu   obj(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __init__   s    c                s   ˆ  |  j  | j  ƒ d k S(   Niÿÿÿÿ(   u   obj(   u   selfu   other(   u   mycmp(    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __lt__   s    N(   u   __name__u
   __module__u   __init__u   __lt__(   u
   __locals__(   u   mycmp(    u+   /mit/python/lib/python3.0/test/test_sort.pyu   K   s   
	u   K(   u   object(   u   mycmpu   K(    (   u   mycmpu+   /mit/python/lib/python3.0/test/test_sort.pyu   CmpToKey	   s    c             C   sG  t  o t d |  ƒ n | d  d  … } | o | j d t | ƒ ƒ n | j ƒ  t | ƒ t | ƒ k oV t d |  ƒ t d t | ƒ t | ƒ ƒ t | ƒ t | ƒ t | ƒ t d 7a d  Sx~ t | ƒ D]p \ } } | | } | | k	 oM t d |  ƒ t d | | | ƒ t | ƒ t | ƒ t | ƒ t d 7a d  SqÏ Wd  S(   Nu       checkingu   keyu   error inu   length mismatch;i   u   out of order at index(   u   verboseu   printu   sortu   CmpToKeyu   lenu   nerrorsu	   enumerate(   u   tagu   expectedu   rawu   compareu   origu   iu   goodu   maybe(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   check   s2    




 




c             B   s   |  Ee  Z d  „  Z d S(   c       	         sÂ  d g } x? t  d d ƒ D]. } d | } | j t  | d | d ƒ ƒ q W| j d d d g ƒ G‡ f d †  d t ƒ ‰ Gd	 „  d
 t ƒ ‰  x.| D]&} t t  | ƒ ƒ } t o t d | ƒ n | d  d  … } t d | | ƒ | d  d  … } | j ƒ  t d | | ƒ | d  d  … } t j	 | ƒ t d | | ƒ | d  d  … } | j ƒ  | d  d  … } t d | | d „  ƒ t o t d ƒ t d ƒ n | d  d  … } | j
 d t d „  ƒ ƒ t d | | ƒ ‡ f d †  | Dƒ } | d  d  … } t j	 | ƒ d ˆ _ d } y | j
 ƒ  Wn t k
 o d } Yn X| o d ˆ _ t d | | ƒ n ‡  f d †  t  | ƒ Dƒ } d „  | Dƒ } | j
 ƒ  d „  | Dƒ } t d | | ƒ q” Wd  S(   Ni    i   i
   i   id   iè  c                s5   |  Ee  Z d Z d  „  Z ‡  f d †  Z d „  Z d S(   c             S   s   | |  _  d  S(   N(   u   i(   u   selfu   i(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __init__>   s    c                sR   ˆ  j  o8 t j ƒ  d k  o% t o t d |  | ƒ n t ‚ n |  j | j k  S(   Ngü©ñÒMbP?u           complaining at(   u   maybe_complainu   randomu   verboseu   printu   RuntimeErroru   i(   u   selfu   other(   u	   Complains(    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __lt__A   s
    
c             S   s   d |  j  S(   Nu   Complains(%d)(   u   i(   u   self(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __repr__H   s    NT(   u   __name__u
   __module__u   Trueu   maybe_complainu   __init__u   __lt__u   __repr__(   u
   __locals__(   u	   Complains(    u+   /mit/python/lib/python3.0/test/test_sort.pyu	   Complains;   s   
	u	   Complainsc             B   s)   |  Ee  Z d  „  Z d „  Z d „  Z d S(   c             S   s   | |  _  | |  _ d  S(   N(   u   keyu   index(   u   selfu   keyu   i(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __init__L   s    	c             S   s   |  j  | j  k  S(   N(   u   key(   u   selfu   other(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __lt__P   s    c             S   s   d |  j  |  j f S(   Nu   Stable(%d, %d)(   u   keyu   index(   u   self(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __repr__S   s    N(   u   __name__u
   __module__u   __init__u   __lt__u   __repr__(   u
   __locals__(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   StableK   s   
		u   Stableu   Testing sizeu   identityu   reversedu   random permutationu   reversed via functionc             S   s   t  | |  ƒ S(    (   u   cmp(   u   au   b(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   <lambda>i   s    u3       Checking against an insane comparison function.u?           If the implementation isn't careful, this may segfault.u   keyc             S   s   t  t j ƒ  d  ƒ d S(   i   i   (   u   intu   random(   u   au   b(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   <lambda>o   s    u(   an insane function left some permutationc                s!   g  } |  ] } | ˆ  | ƒ q
 S(    (    (   u   .0u   _[1]u   i(   u	   Complains(    u+   /mit/python/lib/python3.0/test/test_sort.pyu
   <listcomp>r   s    u+   exception during sort left some permutationc                s-   g  } |  ] } | ˆ  t  j d  ƒ | ƒ q
 S(   i
   (   u   randomu	   randrange(   u   .0u   _[1]u   i(   u   Stable(    u+   /mit/python/lib/python3.0/test/test_sort.pyu
   <listcomp>   s    c             S   s$   g  } |  ] } | | | j  f q
 S(    (   u   index(   u   .0u   _[1]u   e(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu
   <listcomp>€   s    c             S   s!   g  } |  ] \ } } | | q
 S(    (    (   u   .0u   _[1]u   eu   i(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu
   <listcomp>‚   s    u	   stabilityTF(   u   rangeu   extendu   objectu   listu   verboseu   printu   checku   reverseu   randomu   shuffleu   sortu   CmpToKeyu   Trueu   maybe_complainu   Falseu   RuntimeError(	   u   selfu   sizesu   poweru   nu   xu   su   yu   it_complainedu	   augmented(    (   u   Stableu	   Complainsu+   /mit/python/lib/python3.0/test/test_sort.pyu   testStressfully3   s`    	 
" 


		
N(   u   __name__u
   __module__u   testStressfully(   u
   __locals__(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   TestBase2   s   
u   TestBasec             B   s    |  Ee  Z d  „  Z d „  Z d S(   c                sI   G‡ f d †  d ƒ ‰  ‡  f d †  t  d ƒ Dƒ ‰ |  j t ˆ j ƒ d  S(   Nc                s   |  Ee  Z ‡  f d  †  Z d S(   c                sE   ˆ  o! t  j  ƒ  d k  o ˆ  j ƒ  n ˆ  j d ƒ t  j  ƒ  d k  S(   Ng      è?i   g      à?(   u   randomu   popu   append(   u   selfu   other(   u   L(    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __lt__   s    N(   u   __name__u
   __module__u   __lt__(   u
   __locals__(   u   L(    u+   /mit/python/lib/python3.0/test/test_sort.pyu   CŽ   s   
u   Cc                s   g  } |  ] } | ˆ  ƒ  q
 S(    (    (   u   .0u   _[1]u   i(   u   C(    u+   /mit/python/lib/python3.0/test/test_sort.pyu
   <listcomp>–   s    i2   (   u   rangeu   assertRaisesu
   ValueErroru   sort(   u   self(    (   u   Cu   Lu+   /mit/python/lib/python3.0/test/test_sort.pyu   test_bug453523‰   s    c                s’   g  } x… t  d ƒ D]w } ‡  f d †  } d d g ‰  |  j t ˆ  j d t | ƒ ƒ‡  f d †  } |  j t ˆ  j d t | ƒ ƒ| g } q Wd  S(   Ni   c                s$   ˆ  j  d ƒ ˆ  j ƒ  t |  | ƒ S(   Ni   (   u   appendu   popu   cmp(   u   xu   y(   u   L(    u+   /mit/python/lib/python3.0/test/test_sort.pyu   mutating_cmp   s    
i   i   u   keyc                s'   ˆ  j  d ƒ ˆ  d  d  … =t |  | ƒ S(   Ni   (   u   appendu   cmp(   u   xu   y(   u   L(    u+   /mit/python/lib/python3.0/test/test_sort.pyu   mutating_cmp£   s    (   u   rangeu   assertRaisesu
   ValueErroru   sortu   CmpToKey(   u   selfu   memorywasteru   iu   mutating_cmp(    (   u   Lu+   /mit/python/lib/python3.0/test/test_sort.pyu   test_undetected_mutation™   s     N(   u   __name__u
   __module__u   test_bug453523u   test_undetected_mutation(   u
   __locals__(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   TestBugs‡   s   
	u   TestBugsc             B   s_   |  Ee  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 S(
   c             C   sY   d j  ƒ  } | d  d  … } t j | ƒ | j d t j ƒ | j d t d „  ƒ ƒ d  S(   Nu,   The quick Brown fox Jumped over The lazy Dogu   keyc             S   s   t  |  j ƒ  | j ƒ  ƒ S(    (   u   cmpu   lower(   u   xu   y(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   <lambda>³   s    (   u   splitu   randomu   shuffleu   sortu   stru   loweru   CmpToKey(   u   selfu   datau   copy(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   test_decorated®   s
    c             C   s,   d j  ƒ  } |  j t | j d d „  ƒd  S(   Nu,   The quick Brown fox Jumped over The lazy Dogu   keyc             S   s   d  S(   i    (    (   u   xu   y(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   <lambda>·   s    (   u   splitu   assertRaisesu	   TypeErroru   sort(   u   selfu   data(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   test_baddecoratorµ   s    c             C   sW   d „  t  d ƒ Dƒ } | d  d  … } | j d d „  ƒ | j ƒ  |  j | | ƒ d  S(   Nc             S   s*   g  } |  ] } | t  j d  ƒ | f q
 S(   id   (   u   randomu	   randrange(   u   .0u   _[1]u   i(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu
   <listcomp>º   s    iÈ   u   keyc             S   s   |  d  S(   i    (    (   u   t(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   <lambda>¼   s    (   u   rangeu   sortu   assertEqual(   u   selfu   datau   copy(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   test_stability¹   s
    
c             C   sU   t  t d d ƒ ƒ } | d  d  … } |  j t | j d d „  ƒ|  j | | ƒ d  S(   Niþÿÿÿi   u   keyc             S   s   d  |  S(   i   (    (   u   x(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   <lambda>Ä   s    (   u   listu   rangeu   assertRaisesu   ZeroDivisionErroru   sortu   assertEqual(   u   selfu   datau   dup(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   test_key_with_exceptionÀ   s    c                s>   t  t d ƒ ƒ ‰  ‡  f d †  } |  j t ˆ  j d | ƒd  S(   Ni
   c                s'   ˆ  d  d  … =t  d ƒ ˆ  d  d  … <|  S(   Ni   (   u   range(   u   x(   u   data(    u+   /mit/python/lib/python3.0/test/test_sort.pyu   kÉ   s    u   key(   u   listu   rangeu   assertRaisesu
   ValueErroru   sort(   u   selfu   k(    (   u   datau+   /mit/python/lib/python3.0/test/test_sort.pyu   test_key_with_mutationÇ   s    c                sH   t  t d ƒ ƒ ‰  G‡  f d †  d t ƒ } |  j t ˆ  j d | ƒd  S(   Ni
   c                s/   |  Ee  Z d  „  Z ‡  f d †  Z d „  Z d S(   c             S   s   d  S(   N(    (   u   selfu   x(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __init__Ò   s    c                s'   ˆ  d  d  … =t  d ƒ ˆ  d  d  … <d  S(   Ni   (   u   range(   u   self(   u   data(    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __del__Ô   s    c             S   s   t  |  ƒ t  | ƒ k  S(   N(   u   id(   u   selfu   other(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __lt__×   s    N(   u   __name__u
   __module__u   __init__u   __del__u   __lt__(   u
   __locals__(   u   data(    u+   /mit/python/lib/python3.0/test/test_sort.pyu
   SortKillerÑ   s   
	u
   SortKilleru   key(   u   listu   rangeu   objectu   assertRaisesu
   ValueErroru   sort(   u   selfu
   SortKiller(    (   u   datau+   /mit/python/lib/python3.0/test/test_sort.pyu   test_key_with_mutating_delÏ   s    c                sH   t  t d ƒ ƒ ‰  G‡  f d †  d t ƒ } |  j t ˆ  j d | ƒd  S(   Ni
   c                s&   |  Ee  Z d  „  Z ‡  f d †  Z d S(   c             S   s   | d k o
 t  ‚ n d  S(   Ni   (   u   RuntimeError(   u   selfu   x(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __init__ß   s    c                s-   ˆ  d  d  … =t  t d ƒ ƒ ˆ  d  d  … <d  S(   Ni   (   u   listu   range(   u   self(   u   data(    u+   /mit/python/lib/python3.0/test/test_sort.pyu   __del__â   s    N(   u   __name__u
   __module__u   __init__u   __del__(   u
   __locals__(   u   data(    u+   /mit/python/lib/python3.0/test/test_sort.pyu
   SortKillerÞ   s   
	u
   SortKilleru   key(   u   listu   rangeu   objectu   assertRaisesu   RuntimeErroru   sort(   u   selfu
   SortKiller(    (   u   datau+   /mit/python/lib/python3.0/test/test_sort.pyu(   test_key_with_mutating_del_and_exceptionÛ   s    c             C   sU   t  t d ƒ ƒ } t j | ƒ | j d d ƒ |  j | t  t d d d ƒ ƒ ƒ d  S(   Nid   u   reverseic   iÿÿÿÿT(   u   listu   rangeu   randomu   shuffleu   sortu   Trueu   assertEqual(   u   selfu   data(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   test_reverseï   s    c             C   s«   d „  t  d ƒ Dƒ } | d  d  … } | d  d  … } | j d t d „  ƒ d d ƒ | j d t d „  ƒ ƒ |  j | | ƒ | j d d „  d d ƒ |  j | | ƒ d  S(	   Nc             S   s*   g  } |  ] } | t  j d  ƒ | f q
 S(   id   (   u   randomu	   randrange(   u   .0u   _[1]u   i(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu
   <listcomp>ö   s    iÈ   u   keyc             S   s   t  |  d  | d  ƒ S(   i    (   u   cmp(   u   xu   y(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   <lambda>ù   s    u   reversec             S   s   t  | d  |  d  ƒ S(   i    (   u   cmp(   u   xu   y(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   <lambda>ú   s    c             S   s   |  d  S(   i    (    (   u   x(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   <lambda>ü   s    T(   u   rangeu   sortu   CmpToKeyu   Trueu   assertEqual(   u   selfu   datau   copy1u   copy2(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   test_reverse_stabilityõ   s    N(   u   __name__u
   __module__u   test_decoratedu   test_baddecoratoru   test_stabilityu   test_key_with_exceptionu   test_key_with_mutationu   test_key_with_mutating_delu(   test_key_with_mutating_del_and_exceptionu   test_reverseu   test_reverse_stability(   u
   __locals__(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   TestDecorateSortUndecorate¬   s   
								u   TestDecorateSortUndecoratec             C   s¢   t  t t f } t j | Œ  |  o{ t t d ƒ ok d d  l } d  g d } xA t	 t
 | ƒ ƒ D]- } t j | Œ  | j ƒ  t j ƒ  | | <q_ Wt | ƒ n d  S(   Nu   gettotalrefcounti    i   (   u   TestBaseu   TestDecorateSortUndecorateu   TestBugsu   supportu   run_unittestu   hasattru   sysu   gcu   Noneu   rangeu   lenu   collectu   gettotalrefcountu   print(   u   verboseu   test_classesu   gcu   countsu   i(    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu	   test_main  s    	 
u   __main__u   verboseT(   u   testu   supportu   randomu   sysu   unittestu   verboseu   nerrorsu   CmpToKeyu   Noneu   checku   TestCaseu   TestBaseu   TestBugsu   TestDecorateSortUndecorateu	   test_mainu   __name__u   True(    (    (    u+   /mit/python/lib/python3.0/test/test_sort.pyu   <module>   s   			 U%U