mò
­fIc           @   sÔ  d  k  l Z d k Z d k l Z d k l Z d k Z d k Z	 d k
 l Z d k Z d k Z d Z d „  Z d e i f d „  ƒ  YZ d	 „  Z d
 f  d „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ d f  d „  ƒ  YZ d k l Z l Z d „  Z d e i f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ  d  e i f d! „  ƒ  YZ! d" Z" h  d# e" <Z# e$ d$ „ Z% e& d% j o e% d& e' ƒ n d S('   (   s   dequeN(   s   test_support(   s   proxy(   s   StringIOi † c           c   s   t  ‚ d Vd  S(   Ni   (   t   SyntaxError(    (    (    t,   /mit/python/lib/python2.4/test/test_deque.pyt   fail   s    t	   TestBasicc           B   s  t  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 d „  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 d „  Z d „  Z d „  Z RS(   Nc         C   s‰  t  t d ƒ ƒ } | i t d d ƒ ƒ x$ t d d ƒ D] } | i | ƒ q8 Wx* t t d d ƒ ƒ D] } | i | ƒ qe W|  i	 t
 | ƒ t d d ƒ ƒ |  i	 t | ƒ d ƒ g  } t d ƒ D] } | | i ƒ  qÂ ~ } |  i	 | t d d ƒ ƒ |  i	 t
 | ƒ t d d ƒ ƒ g  } t d ƒ D] } | | i ƒ  q'~ } | i ƒ  |  i	 | t d	 d ƒ ƒ |  i	 t
 | ƒ t d d	 ƒ ƒ d  S(
   Nid   iÈ   i  i8ÿÿÿi    iX  iú   i2   i–   (   t   dequet   xranget   dt   __init__t   it   appendt   reversedt
   appendleftt   selft   assertEqualt   listt   ranget   lent   _[1]t   popleftt   leftt   popt   rightt   reverse(   R   R   R   R   R   R   (    (    R   t   test_basics   s"      --
c         C   s`  t  d ƒ } | i ƒ  xµ | t  d ƒ t  d ƒ t  ƒ  t | ƒ g D]‰ } |  i | | j t | ƒ t | ƒ j o t | ƒ t | ƒ j ƒ |  i | | j t | ƒ t | ƒ j o t | ƒ t | ƒ j ƒ qA Wt t  d
 ƒ } x|| D]t} xk| D]c} |  i | | j t | ƒ t | ƒ j | | f ƒ |  i | | j t | ƒ t | ƒ j | | f ƒ |  i | | j  t | ƒ t | ƒ j  | | f ƒ |  i | | j t | ƒ t | ƒ j | | f ƒ |  i | | j t | ƒ t | ƒ j | | f ƒ |  i | | j t | ƒ t | ƒ j | | f ƒ |  i t | | ƒ t t | ƒ t | ƒ ƒ | | f ƒ qñ Wqä Wd  S(   Nt   xabct   abct   abt    t   at   bt   bat   xbat   cba(	   R   R   R   R   R   R   R   R   R    (   R   R   R   R   t   eR   R   t   typet   mapt   argst   xt   yt   cmp(   R   R!   R   R$   R&   R%   (    (    R   t   test_comparisons&   s"    + AF  111111c         C   sO   t  d ƒ } |  i t | i d ƒ | i d ƒ |  i t | ƒ t d ƒ ƒ d  S(   NR   i   t   bcdt   abcd(   R   R   R   t   assertRaisest	   TypeErrort   extendR   R   (   R   R   (    (    R   t   test_extend7   s    c         C   s²   t  d ƒ } |  i t | i d ƒ | i d ƒ |  i t | ƒ t t d ƒ ƒ ƒ t  ƒ  } | i t	 d ƒ ƒ |  i t | ƒ t t t	 d ƒ ƒ ƒ ƒ |  i t
 | i t ƒ  ƒ d  S(   NR   i   R)   R*   iè  (   R   R   R   R+   R,   t
   extendleftR   R   R
   R   R    R   (   R   R   (    (    R   t   test_extendleft=   s    "	(c         C   s  d } t t | ƒ ƒ } t | ƒ } x† t | ƒ D]x } | i ƒ  | i d ƒ t	 i	 ƒ  d j  o | i
 | ƒ | i
 | ƒ n x' t d t | ƒ t | ƒ ƒ D] } qŸ Wq1 Wt d ƒ } |  i | d d ƒ |  i | d d ƒ t ƒ  } |  i t | i d ƒ |  i t | i d ƒ d  S(	   NiÈ   i    f0.5i   t   supermant   siÿÿÿÿt   n(   R3   R   R   R   R   t   lR   R   R   t   randomR	   R   t   jR   R   R+   t
   IndexErrort   __getitem__(   R   R6   R   R   R4   R3   (    (    R   t   test_getitemG   s&     
  	c         C   sÛ   d } t t | ƒ ƒ } x" t | ƒ D] } d | | | <q% W|  i t | ƒ g  } t | ƒ D] } | d | q] ~ ƒ t | ƒ } x: t d | d d ƒ D]" } d | | | <d | | | <q› W|  i t | ƒ | ƒ d  S(   NiÈ   i
   i   i    iÿÿÿÿi   (
   R3   R   R   R   R   R   R   R   R   R4   (   R   R   R   R4   R3   R   (    (    R   t   test_setitem[   s     ; c         C   sê   d } t t | ƒ ƒ } |  i t | i | d ƒ |  i t | i | ƒ x„ t | ƒ D]v } |  i	 t
 | ƒ | | ƒ t i t
 | ƒ t
 | ƒ ƒ } | | } |  i | | j ƒ | | =|  i | | j ƒ qV W|  i	 t
 | ƒ d ƒ d  S(   Niô  i   i    (   R3   R   R   R   R   R+   R7   t   __delitem__R   R   R   R5   t	   randrangeR6   t   valt   assert_(   R   R   R=   R   R6   R3   (    (    R   t   test_delitemg   s     
c         C   sû  t  d ƒ } t | ƒ } t | ƒ } | i d ƒ |  i d i	 | ƒ d ƒ t | ƒ } | i d ƒ |  i d i	 | ƒ d ƒ | i ƒ  |  i t  | ƒ | ƒ xÈ t
 | d ƒ D]¶ } t | ƒ } t | ƒ } | i | ƒ x! t
 | ƒ D] } | i d ƒ qå W|  i t  | ƒ t  | ƒ ƒ | i | ƒ |  i t  | ƒ | ƒ | i | | ƒ |  i t  | ƒ | ƒ q­ WxÈ t
 | d ƒ D]¶ } t | ƒ } t | ƒ } | i | ƒ x! t
 | ƒ D] } | i d ƒ q±W|  i t  | ƒ t  | ƒ ƒ | i | ƒ |  i t  | ƒ | ƒ | i | | ƒ |  i t  | ƒ | ƒ qxWt | ƒ } t | ƒ } | i t d ƒ | i } x t
 t d ƒ D] } | ƒ  quW|  i t  | ƒ t  | ƒ ƒ |  i t | i d	 ƒ |  i t | i d d
 ƒ t ƒ  } | i ƒ  |  i | t ƒ  ƒ d  S(   Nt   abcdei   R   t   eabcdiÿÿÿÿt   bcdeai   i   R%   i
   (   t   tupleR2   R   R3   R   R   t   rotateR   R   t   joinR   R   R!   R6   t   BIGt   drR+   R,   (   R   R!   R   R   R6   R3   R2   RG   (    (    R   t   test_rotateu   sb    
    	 	
c         C   sõ   t  d ƒ } |  i t | ƒ d ƒ | i ƒ  |  i t | ƒ d ƒ | i ƒ  |  i t | ƒ d ƒ |  i t | i ƒ |  i t | ƒ d ƒ | i	 d ƒ |  i t | ƒ d ƒ | i
 d ƒ |  i t | ƒ d ƒ | i ƒ  |  i t | ƒ d ƒ d  S(   NR   i   i   i    t   cR   (   R   R   R   R   R   R   R   R+   R7   R	   R   t   clear(   R   R   (    (    R   t   test_lenª   s    


c         C   s3   t  ƒ  } |  i t | i ƒ |  i t | i ƒ d  S(   N(   R   R   R   R+   R7   R   R   (   R   R   (    (    R   t   test_underflowº   s    	c         C   s‚   t  t d ƒ ƒ } |  i t | ƒ d ƒ | i ƒ  |  i t | ƒ d ƒ |  i t | ƒ g  ƒ | i ƒ  |  i t | ƒ g  ƒ d  S(   Nid   i    (   R   R   R   R   R   R   RJ   R   (   R   R   (    (    R   t
   test_clear¿   s    

c         C   sj   t  t d ƒ ƒ } t t | ƒ ƒ } |  i t | ƒ t | ƒ ƒ | i	 | ƒ |  i
 d t | ƒ j ƒ d  S(   NiÈ   s   ...(   R   R   R   t   evalt   reprR!   R   R   R   R	   R>   (   R   R!   R   (    (    R   t	   test_reprÈ   s
    c         C   s™   t  t d ƒ ƒ } | i | ƒ zX t t i d ƒ } | | I| i ƒ  t t i d ƒ } |  i
 | i ƒ  t | ƒ ƒ Wd  | i ƒ  t i t i ƒ Xd  S(   NiÈ   t   wbt   rb(   R   R   R   R	   t   opent   test_supportt   TESTFNt   fot   closeR   R   t   readRO   t   ost   remove(   R   R   RV   (    (    R   t
   test_printÏ   s    

  
c         C   s-   |  i t t d d ƒ |  i t t d ƒ d  S(   NR   i   i   (   R   R+   R,   R   (   R   (    (    R   t	   test_initÜ   s    c         C   s   |  i t t t d ƒ ƒ d  S(   NR   (   R   R+   R,   t   hashR   (   R   (    (    R   t	   test_hashà   s    c         C   s³   x¬ d D]¤ } t t | ƒ ƒ } | i | i } } xS t | t ƒ D]B } | | ƒ | ƒ  } | | | j o |  i | | | ƒ qB qB W|  i t | ƒ t t | t ƒ ƒ q Wd  S(   Ni    i   i   id   iè  (   i    i   i   id   iè  (   t   sizeR   R   R   R	   R   R   RF   R   R%   R   R   R   R   (   R   R   R   R   R%   R	   R_   (    (    R   t#   test_long_steadystate_queue_popleftã   s      
	c         C   sÅ   x¾ d D]¶ } t t t | ƒ ƒ ƒ } | i | i } } xS t | t ƒ D]B } | | ƒ | ƒ  } | | | j o |  i | | | ƒ qH qH W|  i t t t | ƒ ƒ ƒ t t | t ƒ ƒ q Wd  S(   Ni    i   i   id   iè  (   i    i   i   id   iè  (   R_   R   R
   R   R   R   R   R	   RF   R   R%   R   R   R   R   (   R   R   R   R   R%   R	   R_   (    (    R   t$   test_long_steadystate_queue_poprightî   s      
	c         C   s‚   t  ƒ  } | i | i } } x t t ƒ D] } | | ƒ q) Wx> t t ƒ D]0 } | ƒ  } | | j o |  i
 | | ƒ qJ qJ Wd  S(   N(   R   R   R	   R   R   R   RF   R   R%   R   R   (   R   R   R   R   R%   R	   (    (    R   t   test_big_queue_popleftù   s     	  	c         C   s‚   t  ƒ  } | i | i } } x t t ƒ D] } | | ƒ q) Wx> t t ƒ D]0 } | ƒ  } | | j o |  i
 | | ƒ qJ qJ Wd  S(   N(   R   R   R   R   R	   R   RF   R   R%   R   R   (   R   R   R   R   R%   R	   (    (    R   t   test_big_queue_popright  s    	  	c         C   sž   t  ƒ  } | i | i } } x t t ƒ D] } | | ƒ q) WxD t t t ƒ ƒ D]0 } | ƒ  } | | j o |  i
 | | ƒ qP qP W|  i
 t | ƒ d ƒ d  S(   Ni    (   R   R   R	   R   R   RF   R   R
   R%   R   R   R   (   R   R   R   R   R%   R	   (    (    R   t   test_big_stack_right  s    	  	c         C   sž   t  ƒ  } | i | i } } x t t ƒ D] } | | ƒ q) WxD t	 t t ƒ ƒ D]0 } | ƒ  } | | j o |  i | | ƒ qP qP W|  i t | ƒ d ƒ d  S(   Ni    (   R   R   R   R   R	   R   R   RF   R   R
   R%   R   R   R   (   R   R   R   R   R%   R	   (    (    R   t   test_big_stack_left  s    	  	c         C   sZ   t  t d ƒ ƒ } t  | ƒ } |  i t | ƒ t | ƒ ƒ |  i t | ƒ t | ƒ ƒ d  S(   NiÈ   (	   R   R   R   R!   R   t   assertNotEqualt   idR   R   (   R   R!   R   (    (    R   t   test_roundtrip_iter_init$  s    c         C   s€   t  t d ƒ ƒ } xg d D]_ } t i | | ƒ } t i | ƒ } |  i
 t | ƒ t | ƒ ƒ |  i t | ƒ t | ƒ ƒ q Wd  S(   NiÈ   i    i   i   (   i    i   i   (   R   R   R   R   t   picklet   dumpsR2   t   loadsR!   R   Rf   Rg   R   R   (   R   R!   R   R   R2   (    (    R   t   test_pickle*  s     c         C   s…   t  d ƒ } | i | ƒ xe d D]] } t i t i | | ƒ ƒ } |  i	 t
 | ƒ t
 | ƒ ƒ |  i t
 | ƒ t
 | d ƒ ƒ q  Wd  S(   NR   i    i   i   iÿÿÿÿ(   i    i   i   (   R   R   R	   R   Ri   Rk   Rj   R!   R   Rf   Rg   R   (   R   R!   R   R   (    (    R   t   test_pickle_recursive2  s     c         C   s‰   d g } t | g ƒ } t i | ƒ } |  i t | ƒ t | ƒ ƒ d | d <|  i	 t
 | ƒ t
 | ƒ ƒ |  i	 t | ƒ t | ƒ ƒ d  S(   Ni
   i   i    (   t   mutR   R   t   copyt   deepcopyR!   R   R   R   Rf   Rg   (   R   Rn   R!   R   (    (    R   t   test_deepcopy:  s    	
c         C   s‰   d g } t | g ƒ } t i | ƒ } |  i t | ƒ t | ƒ ƒ d | d <|  i t	 | ƒ t	 | ƒ ƒ |  i t | ƒ t | ƒ ƒ d  S(   Ni
   i   i    (
   Rn   R   R   Ro   R!   R   R   R   Rf   Rg   (   R   Rn   R!   R   (    (    R   t	   test_copyC  s    	
c         C   sO   xH d t  d ƒ f D]4 } |  i t t t | ƒ ƒ ƒ t t | ƒ ƒ ƒ q Wd  S(   NR*   iÐ  (   R   R2   R   R   R   R
   R   (   R   R2   (    (    R   t   test_reversedL  s     c         C   sD   d  k  } t ƒ  } x+ t d ƒ D] } | i d ƒ | i ƒ  q Wd  S(   Nid   i   (   t   gcR   R   R   R   R	   t   collect(   R   R   R   Rt   (    (    R   t   test_gc_doesnt_blowupP  s    		 (   t   __name__t
   __module__R   R(   R.   R0   R9   R:   R?   RH   RK   RL   RM   RP   R[   R\   R^   R`   Ra   Rb   Rc   Rd   Re   Rh   Rl   Rm   Rq   Rr   Rs   Rv   (    (    (    R   R      s8   				
				5												
										c         c   s   x |  D]
 } | Vq Wd S(   s   Regular generatorN(   t   seqnR   (   Ry   R   (    (    R   t   RY  s      t   Gc           B   s    t  Z d  Z d „  Z d „  Z RS(   s   Sequence using __getitem__c         C   s   | |  _  d  S(   N(   Ry   R   (   R   Ry   (    (    R   R   `  s    c         C   s   |  i | S(   N(   R   Ry   R   (   R   R   (    (    R   R8   b  s    (   Rw   Rx   t   __doc__R   R8   (    (    (    R   R{   ^  s    	t   Ic           B   s)   t  Z d  Z d „  Z d „  Z d „  Z RS(   s    Sequence using iterator protocolc         C   s   | |  _  d |  _ d  S(   Ni    (   Ry   R   R   (   R   Ry   (    (    R   R   g  s    	c         C   s   |  S(   N(   R   (   R   (    (    R   t   __iter__j  s    c         C   sF   |  i t |  i ƒ j o
 t ‚ n |  i |  i } |  i d 7_ | S(   Ni   (   R   R   R   Ry   t   StopIterationt   v(   R   R€   (    (    R   t   nextl  s
     
(   Rw   Rx   R|   R   R~   R   (    (    (    R   R}   e  s    		t   Igc           B   s    t  Z d  Z d „  Z d „  Z RS(   s9   Sequence using iterator protocol defined with a generatorc         C   s   | |  _  d |  _ d  S(   Ni    (   Ry   R   R   (   R   Ry   (    (    R   R   t  s    	c         c   s   x |  i D]
 } | Vq
 Wd  S(   N(   R   Ry   R=   (   R   R=   (    (    R   R~   w  s    
 (   Rw   Rx   R|   R   R~   (    (    (    R   R‚   r  s    	t   Xc           B   s    t  Z d  Z d „  Z d „  Z RS(   s    Missing __getitem__ and __iter__c         C   s   | |  _  d |  _ d  S(   Ni    (   Ry   R   R   (   R   Ry   (    (    R   R   }  s    	c         C   sF   |  i t |  i ƒ j o
 t ‚ n |  i |  i } |  i d 7_ | S(   Ni   (   R   R   R   Ry   R   R€   (   R   R€   (    (    R   R   €  s
     
(   Rw   Rx   R|   R   R   (    (    (    R   Rƒ   {  s    	t   Nc           B   s    t  Z d  Z d „  Z d „  Z RS(   s   Iterator missing next()c         C   s   | |  _  d |  _ d  S(   Ni    (   Ry   R   R   (   R   Ry   (    (    R   R   ˆ  s    	c         C   s   |  S(   N(   R   (   R   (    (    R   R~   ‹  s    (   Rw   Rx   R|   R   R~   (    (    (    R   R„   †  s    	t   Ec           B   s)   t  Z d  Z d „  Z d „  Z d „  Z RS(   s   Test propagation of exceptionsc         C   s   | |  _  d |  _ d  S(   Ni    (   Ry   R   R   (   R   Ry   (    (    R   R     s    	c         C   s   |  S(   N(   R   (   R   (    (    R   R~   “  s    c         C   s   d d d  S(   Ni   i    (    (   R   (    (    R   R   •  s    (   Rw   Rx   R|   R   R~   R   (    (    (    R   R…   Ž  s    		t   Sc           B   s)   t  Z d  Z d „  Z d „  Z d „  Z RS(   s   Test immediate stopc         C   s   d  S(   N(    (   R   Ry   (    (    R   R   š  s    c         C   s   |  S(   N(   R   (   R   (    (    R   R~   œ  s    c         C   s
   t  ‚ d  S(   N(   R   (   R   (    (    R   R   ž  s    (   Rw   Rx   R|   R   R~   R   (    (    (    R   R†   ˜  s    		(   s   chains   imapc         C   s(   t  t d „  t t t |  ƒ ƒ ƒ ƒ ƒ S(   s    Test multiple tiers of iteratorsc         C   s   |  S(   N(   R%   (   R%   (    (    R   t   <lambda>¤  s    N(   t   chaint   imapRz   R‚   R{   Ry   (   Ry   (    (    R   t   L¢  s     t   TestVariousIteratorArgsc           B   s   t  Z d „  Z d „  Z RS(   Nc         C   sÒ   xË d d t  d ƒ d	 t d d d ƒ f D]¢ } xN t t t t t t f D]4 } |  i t t | | ƒ ƒ ƒ t | | ƒ ƒ ƒ qG W|  i t t t | ƒ ƒ |  i t t t | ƒ ƒ |  i t t t | ƒ ƒ q( Wd  S(
   Nt   123R   iè  t   dof1.2iÐ  i˜  i   (   R   f1.2(   R   R   R2   R{   R}   R‚   R†   RŠ   Rz   t   gR   R   R   R   R+   R,   Rƒ   R„   t   ZeroDivisionErrorR…   (   R   RŽ   R2   (    (    R   t   test_constructor©  s    (  2c         C   s9   t  d ƒ } t | ƒ } | i ƒ  |  i t | i ƒ d  S(   Nt   abcdefg(	   R   R   t   itert   itR   R   R+   t   RuntimeErrorR   (   R   R   R“   (    (    R   t   test_iter_with_altered_data±  s    
(   Rw   Rx   R   R•   (    (    (    R   R‹   §  s   	t   Dequec           B   s   t  Z RS(   N(   Rw   Rx   (    (    (    R   R–   ·  s   t   DequeWithBadIterc           B   s   t  Z d „  Z RS(   Nc         C   s
   t  ‚ d  S(   N(   R,   (   R   (    (    R   R~   »  s    (   Rw   Rx   R~   (    (    (    R   R—   º  s   t   TestSubclassc           B   s5   t  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   Nc         C   s©  t  t d ƒ ƒ } | i t d d ƒ ƒ x$ t d d ƒ D] } | i | ƒ q8 Wx* t t d d ƒ ƒ D] } | i | ƒ qe W|  i	 t
 | ƒ t d d ƒ ƒ |  i	 t | ƒ d ƒ g  } t d ƒ D] } | | i ƒ  qÂ ~ } |  i	 | t d d ƒ ƒ |  i	 t
 | ƒ t d d ƒ ƒ g  } t d ƒ D] } | | i ƒ  q'~ } | i ƒ  |  i	 | t d	 d ƒ ƒ |  i	 t
 | ƒ t d d	 ƒ ƒ | i ƒ  |  i	 t | ƒ d ƒ d  S(
   Nid   iÈ   i  i8ÿÿÿi    iX  iú   i2   i–   (   R–   R   R   R   R   R	   R
   R   R   R   R   R   R   R   R   R   R   R   R   RJ   (   R   R   R   R   R   R   (    (    R   R   À  s&      --

c         C   s
  t  d ƒ } | i ƒ  } |  i t | ƒ t | ƒ ƒ |  i t | ƒ t | ƒ ƒ t  | ƒ } |  i t | ƒ t | ƒ ƒ |  i t | ƒ t | ƒ ƒ t i	 | ƒ } t i | ƒ } |  i t | ƒ t | ƒ ƒ |  i t | ƒ t | ƒ ƒ |  i t | ƒ t | ƒ ƒ d  S(   NR   (   R–   R   t   __copy__R!   R   R   R"   R   Ri   Rj   R2   Rk   Rf   Rg   (   R   R!   R   R2   (    (    R   t   test_copy_pickleÖ  s    c         C   s  t  d ƒ } | i | ƒ t i t i | ƒ ƒ } |  i t	 | ƒ t	 | ƒ ƒ |  i
 t | ƒ t | ƒ ƒ | i ƒ  } | i ƒ  } |  i
 t	 | ƒ t	 | ƒ ƒ |  i
 | | ƒ | | _ t i t i | ƒ ƒ } |  i
 t	 | ƒ t	 | i ƒ ƒ t d ƒ } |  i t t i | ƒ d  S(   NR   (   R–   R   R	   Ri   Rk   Rj   R!   R   Rf   Rg   R   R"   R   t   ddt   eeR%   R—   R+   R,   (   R   R!   R   Rœ   R›   (    (    R   Rl   è  s    	c         C   sQ   t  d ƒ } t | ƒ } |  i t | ƒ t | ƒ ƒ d  } |  i t	 t | ƒ d  S(   Nt   gallahad(
   R   R   t   proxyt   pR   R   t   strt   NoneR+   t   ReferenceError(   R   R   RŸ   (    (    R   t   test_weakrefû  s
    c         C   sN   d t  f d „  ƒ  Y} | d d d g ƒ } | d d d g ƒ } | | j d  S(	   NRƒ   c           B   s   t  Z d „  Z RS(   Nc         C   s
   t  g  ƒ S(   N(   R’   (   R   (    (    R   R~     s    (   Rw   Rx   R~   (    (    (    R   Rƒ     s   i   i   i   i   i   i   (   R   Rƒ   t   d1t   d2(   R   Rƒ   R¤   R¥   (    (    R   t   test_strange_subclass  s    (   Rw   Rx   R   Rš   Rl   R£   R¦   (    (    (    R   R˜   ¾  s
   				s‘
  
Example from the Library Reference:  Doc/lib/libcollections.tex

>>> from collections import deque
>>> d = deque('ghi')                 # make a new deque with three items
>>> for elem in d:                   # iterate over the deque's elements
...     print elem.upper()
G
H
I
>>> d.append('j')                    # add a new entry to the right side
>>> d.appendleft('f')                # add a new entry to the left side
>>> d                                # show the representation of the deque
deque(['f', 'g', 'h', 'i', 'j'])
>>> d.pop()                          # return and remove the rightmost item
'j'
>>> d.popleft()                      # return and remove the leftmost item
'f'
>>> list(d)                          # list the contents of the deque
['g', 'h', 'i']
>>> d[0]                             # peek at leftmost item
'g'
>>> d[-1]                            # peek at rightmost item
'i'
>>> list(reversed(d))                # list the contents of a deque in reverse
['i', 'h', 'g']
>>> 'h' in d                         # search the deque
True
>>> d.extend('jkl')                  # add multiple elements at once
>>> d
deque(['g', 'h', 'i', 'j', 'k', 'l'])
>>> d.rotate(1)                      # right rotation
>>> d
deque(['l', 'g', 'h', 'i', 'j', 'k'])
>>> d.rotate(-1)                     # left rotation
>>> d
deque(['g', 'h', 'i', 'j', 'k', 'l'])
>>> deque(reversed(d))               # make a new deque in reverse order
deque(['l', 'k', 'j', 'i', 'h', 'g'])
>>> d.clear()                        # empty the deque
>>> d.pop()                          # cannot pop from an empty deque
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in -toplevel-
    d.pop()
IndexError: pop from an empty deque

>>> d.extendleft('abc')              # extendleft() reverses the input order
>>> d
deque(['c', 'b', 'a'])



>>> def delete_nth(d, n):
...     d.rotate(-n)
...     d.popleft()
...     d.rotate(n)
...
>>> d = deque('abcdef')
>>> delete_nth(d, 2)   # remove the entry at d[2]
>>> d
deque(['a', 'b', 'd', 'e', 'f'])



>>> def roundrobin(*iterables):
...     pending = deque(iter(i) for i in iterables)
...     while pending:
...         task = pending.popleft()
...         try:
...             yield task.next()
...         except StopIteration:
...             continue
...         pending.append(task)
...

>>> for value in roundrobin('abc', 'd', 'efgh'):
...     print value
...
a
d
e
b
f
c
g
h


>>> def maketree(iterable):
...     d = deque(iterable)
...     while len(d) > 1:
...         pair = [d.popleft(), d.popleft()]
...         d.append(pair)
...     return list(d)
...
>>> print maketree('abcdefgh')
[[[['a', 'b'], ['c', 'd']], [['e', 'f'], ['g', 'h']]]]

t
   libreftestc         C   sÀ   d  k  } t t t f } t i | Œ  |  os t | d ƒ oc d  k	 } d  g d } xA t t | ƒ ƒ D]- } t i | Œ  | i ƒ  | i ƒ  | | <qe W| GHn d k l } t i | |  ƒ d  S(   Nt   gettotalrefcounti   (   s
   test_deque(   t   sysR   R‹   R˜   t   test_classesRT   t   run_unittestt   verboset   hasattrRt   R¡   t   countsR   R   R   Ru   R¨   t   testt
   test_dequet   run_doctest(   R¬   R°   R   R©   Rª   Rt   R®   (    (    R   t	   test_mainv  s    		 
	t   __main__R¬   ((   t   collectionsR   t   unittestR¯   RT   t   weakrefRž   Ro   t   cPickleRi   t	   cStringIOt   StringIOR5   RY   RF   R   t   TestCaseR   Rz   R{   R}   R‚   Rƒ   R„   R…   R†   t	   itertoolsRˆ   R‰   RŠ   R‹   R–   R—   R˜   R§   t   __test__R¡   R²   Rw   t   True(   RT   Rˆ   Rµ   R5   R   R˜   R   R–   R§   RF   R²   R   R…   R{   R}   RŠ   R„   R‹   R†   Rz   R¼   Rž   Rƒ   Ro   R‰   R¹   Ri   RY   R‚   R—   (    (    R   t   ?   s>   						ÿ I		
		Og