mò
­fIc        	   @   så  d  k  Z  d  k Z d  k Z d  k Z d  k Z d k l Z l Z l Z e	 e i
 d ƒ Z d „  Z d „  Z d f  d „  ƒ  YZ d f  d „  ƒ  YZ d  k Z e e _ d	 e _ d
 e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d d d d d Z d Z d Z d Z d Z d Z d „  Z d e  i  f d „  ƒ  YZ! d e f d  „  ƒ  YZ" d! e f d" „  ƒ  YZ# d# e f d$ „  ƒ  YZ$ d% e f d& „  ƒ  YZ% d' e& f d( „  ƒ  YZ' d) e( f d* „  ƒ  YZ) d+ e* f d, „  ƒ  YZ+ d- e, f d. „  ƒ  YZ- d/ e. f d0 „  ƒ  YZ/ d1 e0 f d2 „  ƒ  YZ1 d3 e2 f d4 „  ƒ  YZ3 d5 e4 f d6 „  ƒ  YZ5 e% e' e) e+ e- e/ e1 e3 e5 g	 Z6 d7 e3 f d8 „  ƒ  YZ7 d9 e f d: „  ƒ  YZ8 d; e  i  f d< „  ƒ  YZ9 d= e  i  f d> „  ƒ  YZ: d  S(?   N(   s
   TestFaileds   have_unicodes   TESTFNi   c         C   s?   x8 t  i | ƒ D]' \ } } } | i |  j o t Sq q Wt S(   N(   t   pickletoolst   genopst   picklet   opt   dummyt   codet   Truet   False(   R   R   R   R   (    (    t.   /mit/python/lib/python2.4/test/pickletester.pyt   opcode_in_pickle   s
     c         C   sK   d } x> t i | ƒ D]- \ } } } | i |  j o | d 7} q q W| S(   Ni    i   (   t   nR    R   R   R   R   R   (   R   R   R   R
   R   (    (    R   t   count_opcode   s     t   ExtensionSaverc           B   s   t  Z d „  Z d „  Z RS(   Nc         C   s[   | |  _  | t i j o5 t i | |  _ t i |  i d |  i d | ƒ n
 d  |  _ d  S(   Ni    i   (   R   t   selft   copy_regt   _inverted_registryt   pairt   remove_extensiont   None(   R   R   (    (    R   t   __init__,   s
    	%c         C   s€   |  i } t i i | ƒ } | d  j	 o t i | d | d | ƒ n |  i } | d  j	 o t i	 | d | d | ƒ n d  S(   Ni    i   (
   R   R   R   R   t   gett   curpairR   R   R   t   add_extension(   R   R   R   R   (    (    R   t   restore5   s    		(   t   __name__t
   __module__R   R   (    (    (    R   R   )   s   		t   Cc           B   s   t  Z d „  Z RS(   Nc         C   s   t  |  i | i ƒ S(   N(   t   cmpR   t   __dict__t   other(   R   R   (    (    R   t   __cmp__?   s    (   R   R   R   (    (    (    R   R   >   s   t   __main__t   myintc           B   s   t  Z d „  Z RS(   Nc         C   s   t  | ƒ |  _  d  S(   N(   t   strt   xR   (   R   R"   (    (    R   R   G   s    (   R   R   R   (    (    (    R   R    F   s   t   initargc           B   s   t  Z d „  Z d „  Z RS(   Nc         C   s   | |  _  | |  _ d  S(   N(   t   aR   t   b(   R   R$   R%   (    (    R   R   L   s    	c         C   s   |  i |  i f S(   N(   R   R$   R%   (   R   (    (    R   t   __getinitargs__P   s    (   R   R   R   R&   (    (    (    R   R#   J   s   	t	   metaclassc           B   s   t  Z RS(   N(   R   R   (    (    (    R   R'   S   s   t   use_metaclassc           B   s   t  Z e Z RS(   N(   R   R   R'   t   __metaclass__(    (    (    R   R(   V   s   s*   (lp1
I0
aL1L
aF2
ac__builtin__
complex
p2
sm   (F3
F0
tRp3
aI1
aI-1
aI255
aI-255
aI-256
aI65535
aI-65535
aI-65536
aI2147483647
aI-2147483647
aI-2147483648
as   (S'abc'
p4
g4
s   (i__main__
C
p5
s4   (dp6
S'foo'
p7
I1
sS'bar'
p8
I2
sbg5
tp9
ag9
aI5
a.
s      0: (    MARK
    1: l        LIST       (MARK at 0)
    2: p    PUT        1
    5: I    INT        0
    8: a    APPEND
    9: L    LONG       1L
   13: a    APPEND
   14: F    FLOAT      2.0
   17: a    APPEND
   18: c    GLOBAL     '__builtin__ complex'
   39: p    PUT        2
   42: (    MARK
   43: F        FLOAT      3.0
   46: F        FLOAT      0.0
   49: t        TUPLE      (MARK at 42)
   50: R    REDUCE
   51: p    PUT        3
   54: a    APPEND
   55: I    INT        1
   58: a    APPEND
   59: I    INT        -1
   63: a    APPEND
   64: I    INT        255
   69: a    APPEND
   70: I    INT        -255
   76: a    APPEND
   77: I    INT        -256
   83: a    APPEND
   84: I    INT        65535
   91: a    APPEND
   92: I    INT        -65535
  100: a    APPEND
  101: I    INT        -65536
  109: a    APPEND
  110: I    INT        2147483647
  122: a    APPEND
  123: I    INT        -2147483647
  136: a    APPEND
  137: I    INT        -2147483648
  150: a    APPEND
  151: (    MARK
  152: S        STRING     'abc'
  159: p        PUT        4
  162: g        GET        4
  165: (        MARK
  166: i            INST       '__main__ C' (MARK at 165)
  178: p        PUT        5
  181: (        MARK
  182: d            DICT       (MARK at 181)
  183: p        PUT        6
  186: S        STRING     'foo'
  193: p        PUT        7
  196: I        INT        1
  199: s        SETITEM
  200: S        STRING     'bar'
  207: p        PUT        8
  210: I        INT        2
  213: s        SETITEM
  214: b        BUILD
  215: g        GET        5
  218: t        TUPLE      (MARK at 151)
  219: p    PUT        9
  222: a    APPEND
  223: g    GET        9
  226: a    APPEND
  227: I    INT        5
  230: a    APPEND
  231: .    STOP
highest protocol among opcodes = 0
s¯   ]q(K L1L
G@       c__builtin__
complex
q(G@      G        tRqKJÿÿÿÿKÿJÿÿÿJ ÿÿÿMÿÿJ ÿÿJ  ÿÿJÿÿÿJ  €J   €(Uabcqh(c__main__
C
qoq}q(UfooqKUbarq	Kubhtq
h
Ke.sî      0: ]    EMPTY_LIST
    1: q    BINPUT     1
    3: (    MARK
    4: K        BININT1    0
    6: L        LONG       1L
   10: G        BINFLOAT   2.0
   19: c        GLOBAL     '__builtin__ complex'
   40: q        BINPUT     2
   42: (        MARK
   43: G            BINFLOAT   3.0
   52: G            BINFLOAT   0.0
   61: t            TUPLE      (MARK at 42)
   62: R        REDUCE
   63: q        BINPUT     3
   65: K        BININT1    1
   67: J        BININT     -1
   72: K        BININT1    255
   74: J        BININT     -255
   79: J        BININT     -256
   84: M        BININT2    65535
   87: J        BININT     -65535
   92: J        BININT     -65536
   97: J        BININT     2147483647
  102: J        BININT     -2147483647
  107: J        BININT     -2147483648
  112: (        MARK
  113: U            SHORT_BINSTRING 'abc'
  118: q            BINPUT     4
  120: h            BINGET     4
  122: (            MARK
  123: c                GLOBAL     '__main__ C'
  135: q                BINPUT     5
  137: o                OBJ        (MARK at 122)
  138: q            BINPUT     6
  140: }            EMPTY_DICT
  141: q            BINPUT     7
  143: (            MARK
  144: U                SHORT_BINSTRING 'foo'
  149: q                BINPUT     8
  151: K                BININT1    1
  153: U                SHORT_BINSTRING 'bar'
  158: q                BINPUT     9
  160: K                BININT1    2
  162: u                SETITEMS   (MARK at 143)
  163: b            BUILD
  164: h            BINGET     6
  166: t            TUPLE      (MARK at 112)
  167: q        BINPUT     10
  169: h        BINGET     10
  171: K        BININT1    5
  173: e        APPENDS    (MARK at 3)
  174: .    STOP
highest protocol among opcodes = 1
s¯   €]q(K ŠG@       c__builtin__
complex
qG@      G        †RqKJÿÿÿÿKÿJÿÿÿJ ÿÿÿMÿÿJ ÿÿJ  ÿÿJÿÿÿJ  €J   €(Uabcqh(c__main__
C
qoq}q(UfooqKUbarq	Kubhtq
h
Ke.sÌ      0: € PROTO      2
    2: ]    EMPTY_LIST
    3: q    BINPUT     1
    5: (    MARK
    6: K        BININT1    0
    8: Š     LONG1      1L
   11: G        BINFLOAT   2.0
   20: c        GLOBAL     '__builtin__ complex'
   41: q        BINPUT     2
   43: G        BINFLOAT   3.0
   52: G        BINFLOAT   0.0
   61: †     TUPLE2
   62: R        REDUCE
   63: q        BINPUT     3
   65: K        BININT1    1
   67: J        BININT     -1
   72: K        BININT1    255
   74: J        BININT     -255
   79: J        BININT     -256
   84: M        BININT2    65535
   87: J        BININT     -65535
   92: J        BININT     -65536
   97: J        BININT     2147483647
  102: J        BININT     -2147483647
  107: J        BININT     -2147483648
  112: (        MARK
  113: U            SHORT_BINSTRING 'abc'
  118: q            BINPUT     4
  120: h            BINGET     4
  122: (            MARK
  123: c                GLOBAL     '__main__ C'
  135: q                BINPUT     5
  137: o                OBJ        (MARK at 122)
  138: q            BINPUT     6
  140: }            EMPTY_DICT
  141: q            BINPUT     7
  143: (            MARK
  144: U                SHORT_BINSTRING 'foo'
  149: q                BINPUT     8
  151: K                BININT1    1
  153: U                SHORT_BINSTRING 'bar'
  158: q                BINPUT     9
  160: K                BININT1    2
  162: u                SETITEMS   (MARK at 143)
  163: b            BUILD
  164: h            BINGET     6
  166: t            TUPLE      (MARK at 112)
  167: q        BINPUT     10
  169: h        BINGET     10
  171: K        BININT1    5
  173: e        APPENDS    (MARK at 5)
  174: .    STOP
highest protocol among opcodes = 2
c          C   sÀ   t  ƒ  }  d |  _ d |  _ d d d d d g } d } d	 } d
 } | i d d | | | d | | | d | | | d g ƒ d d |  |  f } | i
 | ƒ | i
 | ƒ | i
 d ƒ | S(   Ni   i   i    l    f2.0f3.0x0.00.0iÿ   iÿÿ  iÿÿÿiÿÿÿÿt   abci   (   R   t   ct   foot   barR"   t   uint1maxt   uint2maxt   int4maxt   extendt   yt   append(   R+   R/   R.   R2   R"   R0   (    (    R   t   create_dataW  s    			@t   AbstractPickleTestsc           B   sr  t  Z e ƒ  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d „  Z e o d „  Z n 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   d  S(   N(    (   R   (    (    R   t   setUpp  s    c         C   sÏ   xÈ t  D]À } t d ƒ } |  i | | ƒ } |  i | ƒ } |  i	 | | ƒ d f  f } |  i | | ƒ } |  i | ƒ } |  i	 | | ƒ t
 d | ƒ } |  i | | ƒ } |  i | ƒ } |  i	 | | ƒ q Wd  S(   Ni   i   (   t	   protocolst   protoR    R"   R   t   dumpst   st   loadsR2   t   assertEqualR#   (   R   R8   R:   R2   R"   (    (    R   t	   test_miscs  s     c         C   sO   |  i } x? t D]7 } |  i | | ƒ } |  i | ƒ } |  i	 | | ƒ q Wd  S(   N(
   R   t	   _testdatat   expectedR7   R8   R9   R:   R;   t   gotR<   (   R   R8   R:   R?   R@   (    (    R   t   test_roundtrip_equality‡  s    	 c         C   sF   |  i } x6 t t t f D]% } |  i | ƒ } |  i	 | | ƒ q Wd  S(   N(
   R   R>   R?   t   DATA0t   DATA1t   DATA2t   cannedR;   R@   R<   (   R   RE   R?   R@   (    (    R   t   test_load_from_canned_stringŽ  s
    	 c         C   s‘   d k  l } d k l } xp d t f d t f f D]V \ } } |  i	 |  i
 | ƒ } | ƒ  } | | d | ƒ| i ƒ  } |  i | | ƒ q3 Wd  S(   N(   s   StringIO(   s   disi    i   t   out(   t	   cStringIOt   StringIOR    t   dist	   DATA0_DISt	   DATA1_DISR8   R?   R   R9   R>   R:   t   fileliket   getvalueR@   R<   (   R   R8   R@   RI   R:   RM   R?   RJ   (    (    R   t   dont_test_disassemblyš  s     	c         C   sv   g  } | i | ƒ x\ t D]T } |  i | | ƒ } |  i | ƒ } |  i	 t
 | ƒ d ƒ |  i | | d j ƒ q Wd  S(   Ni   i    (   t   lR3   R7   R8   R   R9   R:   R;   R"   R<   t   lent   assert_(   R   R8   RP   R:   R"   (    (    R   t   test_recursive_list¥  s     c         C   sv   h  } | | d <x_ t D]W } |  i | | ƒ } |  i | ƒ } |  i | i	 ƒ  d g ƒ |  i
 | d | j ƒ q Wd  S(   Ni   (   t   dR7   R8   R   R9   R:   R;   R"   R<   t   keysRR   (   R   RT   R8   R:   R"   (    (    R   t   test_recursive_dict®  s    
 c         C   sz   t  ƒ  } | | _ xa t D]Y } |  i | d ƒ } |  i | ƒ } |  i
 t | ƒ t | ƒ ƒ |  i | i | j ƒ q Wd  S(   Ni   (   R   t   it   attrR7   R8   R   R9   R:   R;   R"   R<   t   dirRR   (   R   R8   RW   R:   R"   (    (    R   t   test_recursive_inst·  s    		 c         C   sÞ   g  } h  d | <} t ƒ  } | | _ | i | ƒ x£ t D]› } |  i	 | | ƒ } |  i | ƒ } |  i t | ƒ d ƒ |  i t | d ƒ t | ƒ ƒ |  i | d i i ƒ  d g ƒ |  i | d i d | j ƒ q; Wd  S(   Ni   i    (   RP   RT   R   RW   RX   R3   R7   R8   R   R9   R:   R;   R"   R<   RQ   RY   RU   RR   (   R   RT   R8   RW   RP   R:   R"   (    (    R   t   test_recursive_multiÀ  s    		   c         C   s   |  i |  i |  i d ƒ d  S(   Nt   garyp(   R   t   assertRaisest   errorR;   (   R   (    (    R   t
   test_garypÎ  s    c         C   sQ   d d d d d d g } x2 | D]* } d | d } |  i t |  i | ƒ q Wd  S(	   NR*   s   2 + 2s   'abcs   'abc"s	   'abc'   ?s   '\'t   Ss   
p0
.(   t   insecureR:   t   bufR   R]   t
   ValueErrorR;   (   R   R:   Rb   Ra   (    (    R   t   test_insecure_stringsÑ  s
    
 c         C   sŠ   t  d ƒ t  d ƒ t  d ƒ t  d ƒ t  d ƒ g } xP t D]H } x? | D]7 } |  i | | ƒ } |  i | ƒ } |  i
 | | ƒ qG Wq: Wd  S(   Nt    s   <\u>s	   <\\u1234>s   <
>s   <\>(   t   unicodet   endcasesR7   R8   t   uR   R9   t   pR;   t   u2R<   (   R   R8   Rj   Ri   Rh   Rg   (    (    R   t   test_unicodeá  s    3  c         C   s‰   d  k  } xy t D]q } | i } x_ | oW xF | | f D]7 } |  i | | ƒ } |  i	 | ƒ } |  i | | ƒ q7 W| d ?} q" Wq Wd  S(   Ni   (   t   sysR7   R8   t   maxintR
   R?   R   R9   R:   R;   t   n2R<   (   R   R8   R
   Rl   R:   R?   Rn   (    (    R   t	   test_intsê  s    	 	  c         C   so   d d >d } d t | ƒ d } |  i | ƒ } |  i | | ƒ d t | ƒ d } |  i t |  i | ƒ d  S(   Nl    i?   i   t   Is   
.s   JUNK
.(	   t   maxint64R!   t   dataR   R;   R@   R<   R]   Rc   (   R   Rq   R@   Rr   (    (    R   t   test_maxint64õ  s    c   	      C   s#  x¶ t  D]® } x¥ d d d d d d d d d d f D]{ } d | >} xh | d | | d f D]O } xF | | f D]7 } |  i | | ƒ } |  i	 | ƒ } |  i | | ƒ qr Wq^ Wq6 Wq Wt d d	 ƒ } | | d
 >7} xF | | f D]7 } |  i | d ƒ } |  i	 | ƒ } |  i | | ƒ qä Wd  S(   Ni   i   iþ   iÿ   i   i  l    t   deadbeeffeedfacei   i@B i   (   R7   R8   t   nbitst   nbaset   nposR
   R   R9   R   R;   R@   R<   t   longRi   (	   R   Ru   R8   Rv   R
   Ri   Rw   R@   R   (    (    R   t	   test_longÿ  s&     ) 
    c         C   s   d  S(   N(    (   R   (    (    R   t   test_reduce  s    c         C   s   d  S(   N(    (   R   (    (    R   t   test_getinitargs  s    c         C   sU   t  ƒ  } xE t D]= } |  i | | ƒ } |  i | ƒ } |  i	 | i
 | i
 ƒ q Wd  S(   N(   R(   R$   R7   R8   R   R9   R:   R;   R%   R<   t	   __class__(   R   R$   R%   R8   R:   (    (    R   t   test_metaclass  s    	 c         C   s  d  k  } d  k } | i ƒ  } xí t D]å } |  i | | ƒ } |  i	 | ƒ } |  i | | ƒ t | d ƒ oG | i | i ƒ } |  i | | ƒ } |  i	 | ƒ } |  i | | ƒ n t | d ƒ oG | i | i ƒ } |  i | | ƒ } |  i	 | ƒ } |  i | | ƒ q% q% Wd  S(   Nt   statt   statvfs(   t   timet   ost	   localtimet   tR7   R8   R   R9   R:   R;   Rh   R<   t   hasattrR~   t   curdirR   (   R   R8   R:   Rh   Rƒ   R€   R   (    (    R   t   test_structseq  s$    		 c         C   sì   t  i t  i } x^ t D]V } | } | d j o t  i t | ƒ | } n |  i
 d  | ƒ } |  i | | ƒ q Wt d d } t  i t | ƒ | } y |  i | ƒ Wn1 t j
 o% } |  i t | ƒ i d ƒ ƒ n X|  i d ƒ d  S(   Ni   iÿÿÿÿi   s   unsupported pickle protocols0   expected bad protocol number to raise ValueError(   R   t   NONEt   STOPt
   build_noneR7   R8   R?   t   PROTOt   chrR   R9   R   Ri   R<   t   oobt	   badpickleR;   Rc   t   detailt
   failUnlessR!   t
   startswitht   fail(   R   R8   RŒ   R   RŽ   Ri   R?   R‰   (    (    R   t
   test_proto5  s     !c         C   sn   d } xa t D]Y } |  i | | ƒ } |  i | ƒ } |  i | | ƒ |  i t	 t
 i | ƒ | d j ƒ q Wd  S(   Nl   èUJ^w,3ƒ|	 i   (   R"   R7   R8   R   R9   R:   R;   R2   R<   R	   R   t   LONG1(   R   R8   R:   R2   R"   (    (    R   t
   test_long1H  s     c         C   sv   d d d >} xa t D]Y } |  i | | ƒ } |  i | ƒ } |  i | | ƒ |  i t	 t
 i | ƒ | d j ƒ q Wd  S(   Nl   èUJ^w,3ƒ|	 i   i   i   (   R"   R7   R8   R   R9   R:   R;   R2   R<   R	   R   t   LONG4(   R   R8   R:   R2   R"   (    (    R   t
   test_long4P  s     c      	   C   sô  h  d d f t  i <d d f t  i <d d f t  i <d d f t  i <d d f t  i <d d f t  i <d d f t  i <d d f t  i <d d f t  i <d d f t  i <d d f t  i <d d f t  i <d d f t  i <d d f t  i <d d f t  i <} f  } d f } d d f } d d d f } d d d d f } x t D]• } xŒ | | | | | f D]u }
 |  i |
 | ƒ } |  i | ƒ }	 |  i |
 |	 | |
 | |	 f ƒ | | t |
 ƒ f } |  i t | | ƒ t ƒ qsWqWWd  S(   Ni    i   i   i   i   (   R   t   TUPLEt   EMPTY_TUPLEt   TUPLE1t   TUPLE2t   TUPLE3t   expected_opcodeR$   R%   R+   RT   t   eR7   R8   R"   R   R9   R:   R;   R2   R<   RQ   R?   R	   R   (   R   R$   R+   R%   R   RT   R8   R?   R:   R2   R"   Rœ   (    (    R   t   test_short_tuplesX  s     ÿ 	  c         C   s1  h  d t i <d t i <d t i <d t f t i <d t f t i <d t f t i <d t f t i <d t f t i <d t f t i <} x” t	 D]Œ } xƒ d  t t f D]r } |  i | | ƒ } |  i | ƒ } |  i | | j | | | | f ƒ | | | f } |  i t | | ƒ t ƒ q³ Wq Wd  S(   Ni    i   i   (   i    N(   i   N(   i   N(   R   R   R‡   R   t   INTt   NEWTRUER   t   NEWFALSERœ   R7   R8   R"   R   R9   R:   R;   R2   RR   R?   R<   R	   (   R   R8   R?   R:   R2   R"   Rœ   (    (    R   t   test_singletonsy  s    –  "c         C   s   t  d d d g ƒ } d | _ d | _ xa t D]Y } |  i | | ƒ } |  i	 | ƒ } |  i t | ƒ t | ƒ ƒ |  i | i | i ƒ q. Wd  S(   Ni   i   i   i*   t   hello(   t   MyTupleR"   R,   R-   R7   R8   R   R9   R:   R;   R2   R<   t   tupleR   (   R   R8   R:   R2   R"   (    (    R   t   test_newobj_tuple  s    		 c         C   s   t  d d d g ƒ } d | _ d | _ xa t D]Y } |  i | | ƒ } |  i	 | ƒ } |  i t | ƒ t | ƒ ƒ |  i | i | i ƒ q. Wd  S(   Ni   i   i   i*   R£   (   t   MyListR"   R,   R-   R7   R8   R   R9   R:   R;   R2   R<   t   listR   (   R   R8   R:   R2   R"   (    (    R   t   test_newobj_list™  s    		 c      	   C   s¾   x· t  D]¯ } x¦ t D]ž } | i } | | i ƒ } d | _ |  i
 | | ƒ } |  i | ƒ } | | | | | t | ƒ f } |  i | | ƒ | | ƒ | ƒ |  i | i | i | ƒ q Wq Wd  S(   Ni*   (   R7   R8   t	   myclassesR   t   __base__t   Bt   sampleR"   R,   R   R9   R:   R;   R2   t   typeRŽ   R<   R   (   R   R   R¬   R8   RŽ   R:   R2   R"   (    (    R   t   test_newobj_generic£  s      		c         C   s€  t  | ƒ } zbt i t d | ƒ t d d d g ƒ } d | _ d | _	 |  i | d ƒ } |  i t | j ƒ |  i d | j ƒ |  i t | | ƒ t ƒ |  i | ƒ } |  i t | ƒ t | ƒ ƒ |  i | i | i ƒ |  i | d ƒ } |  i t | j ƒ |  i d | j ƒ |  i t | | ƒ t ƒ |  i | ƒ } |  i t | ƒ t | ƒ ƒ |  i | i | i ƒ Wd  | i ƒ  Xd  S(   NR§   i   i   i   i*   R£   (   R   t   extcodeR   R   R   R   R§   R"   R,   R-   R   R9   t   s1RR   R<   R	   t   opcodeR   R;   R2   R¨   R   t   s2R   R   (   R   R°   R²   R"   R   R³   R2   R±   (    (    R   t   produce_global_ext³  s,    		 c         C   s*   |  i d t i ƒ |  i d t i ƒ d  S(   Ni   iÿ   (   R   R´   R   t   EXT1(   R   (    (    R   t   test_global_ext1Ò  s    c         C   s=   |  i d t i ƒ |  i d t i ƒ |  i d t i ƒ d  S(   Ni   iÿÿ  iÍ«  (   R   R´   R   t   EXT2(   R   (    (    R   t   test_global_ext2Ö  s    c         C   s=   |  i d t i ƒ |  i d t i ƒ |  i d t i ƒ d  S(   Ni   iÿÿÿiïÍ«(   R   R´   R   t   EXT4(   R   (    (    R   t   test_global_ext4Û  s    c         C   s  d } t | ƒ } xg t D]_ } |  i | | ƒ } |  i | ƒ } |  i
 | | ƒ t t i | ƒ } |  i
 | | d j ƒ q Wd } t | ƒ } x… t D]} } |  i | | ƒ } |  i | ƒ } |  i
 | | ƒ t t i | ƒ } | d j o |  i
 | d ƒ q• |  i | d j ƒ q• Wd  S(   Ni
   i    iÄ	  i   (   R
   t   rangeR"   R7   R8   R   R9   R:   R;   R2   R<   R   R   t   APPENDSt   num_appendsR   (   R   R8   R:   R
   R½   R2   R"   (    (    R   t   test_list_chunkingà  s(      c         C   s,  d } t i t | ƒ ƒ } xg t D]_ } |  i | | ƒ } |  i
 | ƒ } |  i | | ƒ t t i | ƒ } |  i | | d j ƒ q" Wd } t i t | ƒ ƒ } x… t D]} } |  i | | ƒ } |  i
 | ƒ } |  i | | ƒ t t i | ƒ } | d j o |  i | d ƒ q§ |  i | d j ƒ q§ Wd  S(   Ni
   i    iÄ	  i   (   R
   t   dictt   fromkeysR»   R"   R7   R8   R   R9   R:   R;   R2   R<   R   R   t   SETITEMSt   num_setitemsR   (   R   R8   R:   R
   RÂ   R2   R"   (    (    R   t   test_dict_chunkingö  s(      c         C   s™   t  i t ƒ } d | _ xz t D]r } |  i | | ƒ } |  i
 t t i | ƒ | d j ƒ |  i | ƒ } |  i
 | i d ƒ |  i
 | i | i ƒ q Wd  S(   Niš  i   (   t   objectt   __new__t   SimpleNewObjR"   R*   R7   R8   R   R9   R:   R<   R	   R   t   NEWOBJR;   R2   R   (   R   R8   R:   R2   R"   (    (    R   t   test_simple_newobj  s    	 "c         C   sª   t  d d d g ƒ } d | _ d | _ |  i | d ƒ } |  i | ƒ } |  i	 t
 | ƒ t
 | ƒ ƒ |  i	 | i | i ƒ |  i	 | i | i ƒ |  i	 | i | i ƒ d  S(   Ni   i   i   i*   R£   (   t   SlotListR"   R,   R-   R   R9   R:   R;   R2   R<   R¨   R   (   R   R:   R2   R"   (    (    R   t   test_newobj_list_slots  s    		c         C   sx   xq d D]i } t ƒ  } |  i | i d ƒ |  i | | ƒ } |  i | i d ƒ |  i | ƒ } |  i | i d ƒ q Wd  S(   Ni    i   i   (   i    i   i   (
   R8   t   REX_oneR"   R   R<   t   _reduce_calledR9   R:   R;   R2   (   R   R8   R:   R2   R"   (    (    R   t'   test_reduce_overrides_default_reduce_ex!  s     	c         C   sx   xq d D]i } t ƒ  } |  i | i d  ƒ |  i | | ƒ } |  i | i | ƒ |  i	 | ƒ } |  i | i d  ƒ q Wd  S(   Ni    i   i   (   i    i   i   (   R8   t   REX_twoR"   R   R<   t   _protoR   R9   R:   R;   R2   (   R   R8   R:   R2   R"   (    (    R   t   test_reduce_ex_called*  s     	c         C   sx   xq d D]i } t ƒ  } |  i | i d  ƒ |  i | | ƒ } |  i | i | ƒ |  i	 | ƒ } |  i | i d  ƒ q Wd  S(   Ni    i   i   (   i    i   i   (   R8   t	   REX_threeR"   R   R<   RÏ   R   R9   R:   R;   R2   (   R   R8   R:   R2   R"   (    (    R   t   test_reduce_ex_overrides_reduce3  s     	(+   R   R   R4   R>   R6   R=   RA   RF   RO   RS   RV   RZ   R[   R_   Rd   t   have_unicodeRk   Ro   Rs   Ry   Rz   R{   R}   R†   R’   R”   R–   Rž   R¢   R¦   R©   R¯   R´   R¶   R¸   Rº   R¾   RÃ   RÈ   RÊ   RÍ   RÐ   RÒ   (    (    (    R   R5   k  sP   																		
									!		
	
								
					RË   c           B   s   t  Z d Z d „  Z RS(   Ni    c         C   s   d |  _ t f  f S(   Ni   (   R   RÌ   RË   (   R   (    (    R   t
   __reduce__@  s    	(   R   R   RÌ   RÔ   (    (    (    R   RË   >  s   RÎ   c           B   s   t  Z d  Z d „  Z RS(   Nc         C   s   | |  _ t f  f S(   N(   R8   R   RÏ   RÎ   (   R   R8   (    (    R   t   __reduce_ex__G  s    	(   R   R   R   RÏ   RÕ   (    (    (    R   RÎ   E  s   RÑ   c           B   s    t  Z d  Z d „  Z d „  Z RS(   Nc         C   s   | |  _ t f  f S(   N(   R8   R   RÏ   RÎ   (   R   R8   (    (    R   RÕ   N  s    	c         C   s   t  d ‚ d  S(   Ns#   This __reduce__ shouldn't be called(   t
   TestFailed(   R   (    (    R   RÔ   Q  s    (   R   R   R   RÏ   RÕ   RÔ   (    (    (    R   RÑ   L  s   	t   MyIntc           B   s   t  Z d Z RS(   Ni   (   R   R   R­   (    (    (    R   R×   V  s   t   MyLongc           B   s   t  Z d Z RS(   Nl    (   R   R   R­   (    (    (    R   RØ   Y  s   t   MyFloatc           B   s   t  Z d Z RS(   Nf1.0(   R   R   R­   (    (    (    R   RÙ   \  s   t	   MyComplexc           B   s   t  Z d d Z RS(   Nf1.0x0.00.0(   R   R   R­   (    (    (    R   RÚ   _  s   t   MyStrc           B   s   t  Z d Z RS(   NR£   (   R   R   R­   (    (    (    R   RÛ   b  s   t	   MyUnicodec           B   s   t  Z d Z RS(   Nu	   hello áˆ´(   R   R   R­   (    (    (    R   RÜ   e  s   R¤   c           B   s   t  Z d Z RS(   Ni   i   i   (   i   i   i   (   R   R   R­   (    (    (    R   R¤   h  s   R§   c           B   s   t  Z d d d g Z RS(   Ni   i   i   (   R   R   R­   (    (    (    R   R§   k  s   t   MyDictc           B   s    t  Z h  d d <d d <Z RS(   NR$   i   R%   i   (   R   R   R­   (    (    (    R   RÝ   n  s   RÉ   c           B   s   t  Z d g Z RS(   NR,   (   R   R   t	   __slots__(    (    (    R   RÉ   w  s   RÆ   c           B   s   t  Z d „  Z RS(   Nc         C   s   t  d ƒ ‚ d  S(   Ns3   SimpleNewObj.__init__() didn't expect to get called(   t	   TypeError(   R   R$   R%   R+   (    (    R   R   {  s    (   R   R   R   (    (    (    R   RÆ   z  s   t   AbstractPickleModuleTestsc           B   s,   t  Z d „  Z d „  Z d „  Z d „  Z RS(   Nc         C   sW   d  k  } t t d ƒ } z* | i ƒ  |  i t |  i i	 d | ƒ Wd  | i
 t ƒ Xd  S(   Nt   wi{   (   R   t   opent   TESTFNt   ft   closeR   R]   Rc   t   modulet   dumpt   remove(   R   Rä   R   (    (    R   t   test_dump_closed_file  s    	
  c         C   sW   d  k  } t t d ƒ } z* | i ƒ  |  i t |  i i	 d | ƒ Wd  | i
 t ƒ Xd  S(   NRá   i{   (   R   Râ   Rã   Rä   Rå   R   R]   Rc   Ræ   Rç   Rè   (   R   Rä   R   (    (    R   t   test_load_closed_fileŠ  s    	
  c         C   s   |  i |  i i d ƒ d  S(   Ni   (   R   R<   Ræ   t   HIGHEST_PROTOCOL(   R   (    (    R   t   test_highest_protocol“  s    c         C   sž   d k  l } | ƒ  } |  i i d | d ƒ |  i i d d | d d ƒ|  i i d d ƒ |  i i d d d ƒ|  i i | d ƒ |  i i | d d ƒd  S(   N(   s   StringIOi{   iÿÿÿÿt   filet   protocol(   RH   RI   Rä   R   Ræ   Rç   R9   t   Pickler(   R   Rä   RI   (    (    R   t   test_callapi—  s    	(   R   R   Ré   Rê   Rì   Rð   (    (    (    R   Rà     s   					t   AbstractPersistentPicklerTestsc           B   s,   t  Z d „  Z d „  Z d „  Z d „  Z RS(   Nc         C   sF   t  | t ƒ o. | d d j o |  i d 7_ t | ƒ Sn d  Sd  S(   Ni   i    i   (   t
   isinstanceRÄ   t   intR   t   id_countR!   R   (   R   RÄ   (    (    R   t   persistent_id¨  s    !c         C   s   |  i d 7_ t | ƒ } | S(   Ni   (   R   t
   load_countRó   t   oidRÄ   (   R   R÷   RÄ   (    (    R   t   persistent_load¯  s     c         C   sj   d |  _ d |  _ t d ƒ } |  i |  i |  i | ƒ ƒ | ƒ |  i |  i d ƒ |  i |  i d ƒ d  S(   Ni    i
   i   (   R   Rô   Rö   R»   t   LR<   R;   R9   (   R   Rù   (    (    R   t   test_persistenceµ  s    		"c         C   sm   d |  _ d |  _ t d ƒ } |  i |  i |  i | d ƒ ƒ | ƒ |  i |  i d ƒ |  i |  i d ƒ d  S(   Ni    i
   i   i   (   R   Rô   Rö   R»   Rù   R<   R;   R9   (   R   Rù   (    (    R   t   test_bin_persistence½  s    		%(   R   R   Rõ   Rø   Rú   Rû   (    (    (    R   Rñ   ¢  s   			(;   t   unittestR   t   cPickleR    R   t   test.test_supportRÖ   RÓ   Rã   R»   Rë   R7   R	   R   R   R   R   R   Ró   R    R#   R®   R'   RÄ   R(   RB   RK   RC   RL   RD   t	   DATA2_DISR4   t   TestCaseR5   RË   RÎ   RÑ   R×   Rx   RØ   t   floatRÙ   t   complexRÚ   R!   RÛ   Rf   RÜ   R¥   R¤   R¨   R§   R¿   RÝ   Rª   RÉ   RÆ   Rà   Rñ   (+   R4   R   Rü   R   R   RÆ   RL   RØ   RÝ   R(   RÓ   Rª   R×   Rã   R5   RÖ   R'   RÑ   Rÿ   Rý   R   R   R#   R§   Rñ   R7   RÚ   R    R¤   RK   RC   RÉ   R	   Rà   RÎ   RÜ   RÙ   R    RÛ   RË   R   RB   RD   (    (    R   t   ?   sX   					 						.H8	8	ÿ Ô
!#