;
Ěâ"Ic               @   s]  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l m Z d  d l m Z m Z m	 Z	 d  d l
 Z
 e
 j d k Z e
 j d k Z [
 y d  d l Z Wn& e k
 o d  Z d Z d Z Yn8 Xe e d d   Z e e d	 d   Z e e d
 d   Z d   Z d   Z d   Z e d    Z Gd   d e j  Z d   Z e d k o e   n d S(   i    N(   u   wraps(   u
   TestFailedu   verboseu   run_unittestu   bigi˙˙˙i   i   u   _PY_STRUCT_RANGE_CHECKINGu   _PY_STRUCT_OVERFLOW_MASKINGu   _PY_STRUCT_FLOAT_COERCEc             C   s   |  d  d  d  S(   Ni˙˙˙˙(    (   u   s(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   string_reverse   s    c             C   s   t  o |  St |   Sd  S(   N(   u   ISBIGENDIANu   string_reverse(   u   value(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   bigendian_to_native   s    c                s   t       f d    } | S(   Nc           
      sW   t  j   j } j   z1 t  j d  t  j d d t   |  |   SWd  | ~ QXd  S(   Nu   alwaysu   erroru   category(   u   warningsu   catch_warningsu   __exit__u	   __enter__u   simplefilteru   filterwarningsu   DeprecationWarning(   u   argsu   kwu   _[1](   u   func(    u-   /mit/python/lib/python3.0/test/test_struct.pyu	   decorator#   s    (   u   wraps(   u   funcu	   decorator(    (   u   funcu-   /mit/python/lib/python3.0/test/test_struct.pyu   with_warning_restore"   s    c          
   G   s   y |  |   WnT t  j t f k
 o YnR t k
 o, t p t d |  j | f   n Yn Xt d |  j | f   d  S(   Nu)   %s%s expected to raise DeprecationWarningu   %s%s did not raise error(   u   structu   erroru	   TypeErroru   DeprecationWarningu   PY_STRUCT_OVERFLOW_MASKINGu
   TestFailedu   __name__(   u   funcu   args(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   deprecated_err-   s    c             B   sĂ   |  Ee  Z e 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 e o d   Z n d S(   c          	   C   sŰ   t  d k oF t j | |  } t j | |  d } |  j | t |  d  d  Sy t j | |  Wn` t j t f k
 o  t  o |  j d  n Yn: t	 k
 o  t  p |  j d  n Yn X|  j d  d  S(   Ni   i    u$   did not correcly coerce float to intu,   expected DeprecationWarning for float coerceu/   expected to raise struct.error for float coerceu$   did not raise error for float coerce(
   u   PY_STRUCT_FLOAT_COERCEu   structu   packu   unpacku   assertEqualu   intu   erroru	   TypeErroru   failu   DeprecationWarning(   u   selfu   formatu   numberu   packedu   floored(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   check_float_coerce>   s    c             C   s*   |  j  t j d d  d d k t  d  S(   Nu   =ii   i    (   u   assertEqualu   structu   packu   ISBIGENDIAN(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_isbigendianS   s    c             C   sf  |  j  t j t j d  t j d  } |  j | d t j d   d } d } t j |  } t j |  } |  j | d |  |  j  t j t j d d  |  j  t j t j d d d d  |  j  t j t j d d  |  j  t j t j d d  |  j  t j t j d	 d
  t j d d d  } |  j  t j t j d |  |  j  t j t j d |  d  S(   Nu   Zu   ii   u   iiiu   cbxxxxxxhhhhiillffd?u   3c3b18x12h6i6l6f3d3?u   foou   Pu   ds   flapu   iii   i   (   u   assertRaisesu   structu   erroru   calcsizeu   assertEqualu   packu   unpack(   u   selfu   szu   fmtu   fmt3u   sz3u   s(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_consistenceV   s     "c             C   sY  d } d } d } d } d } d } d } d } x"d D]}	 xd D]	}
 |	 |
 }
 t j |
 | | | | | | | | 	 } t j |
 |  \ } } } } } } } } |  j | |  |  j | |  |  j | |  |  j | |  |  j | |  |  j t d |  t d |   |  j t d |  t d |   |  j | |  qD Wq7 Wd  S(   Ns   ai   i˙   i˙˙  i   goŔĘ!	@u    u   @u   <u   >u   =u   !u	   xcbhilfd?u	   xcBHILfd?id   T(   u    u   @u   <u   >u   =u   !(   u	   xcbhilfd?u	   xcBHILfd?(   u   Trueu   structu   packu   unpacku   assertEqualu   int(   u   selfu   cu   bu   hu   iu   lu   fu   du   tu   prefixu   formatu   su   cpu   bpu   hpu   ipu   lpu   fpu   dpu   tp(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_transitivenessk   s.      
'*$$c          '   C   s  dF dG dH dI dJ dK dL dM dN d d
 d
 dO d
 dP d f dQ dR dS dT dU dV dW d$ dX d" d# d f dY dZ d[ d- d\ d+ d, d f d] d^ d_ d0 d` d+ d, d f da db dc dd de df dh d= g  d d d f d= di d? d? d f g# } x,| D]$\ } } } } } t | d@  } t | d@  } xî dA | | f dB | | f dC | | f dD | t o | p | f g D]¤ \ } } t j | |  }	 |  j |	 |  |  j t j |  t |	   t j | |	  d }
 t	 | t
  o t | dE  } n |
 | k o |  j |  qTqTWqŘ Wd  S(j   Nu   cu   ai    u   xcu    au   cxu   a u   su   0su
   helloworldu    i   u   1su   hu   9su	   helloworlu   10su   11su   helloworld u   20si
   u    u   bi   u   iů˙˙˙u   Ăšu   Biů   iź  u   Âźu   ÂźiDý˙˙u   Ă˝Du   DĂ˝u   Hi   u   ii,u   ,Âu   Â,iâÓűu   ĂťĂĂ˘Âu   ÂĂ˘ĂĂťu   Il        u   lu   Lu   fg       @u   @   u      @u   du   @       u          @g       Ŕu   Ă   u      Ău	   Ă       u	          Ău   ?i   u   u   latin-1u   >u   !u   <u   =u   latin1(   u   cu   au   au   ai    (   u   xcu   au    au    ai    (   u   cxu   au   a u   a i    (   u   su   au   au   ai    (   u   0su
   helloworldu    u    i   (   u   1su
   helloworldu   hu   hi   (   u   9su
   helloworldu	   helloworlu	   helloworli   (   u   10su
   helloworldu
   helloworldu
   helloworldi    (   u   11su
   helloworldu   helloworld u   helloworld i   u
             u
             (   u   bi   u   u   i    (   u   biů˙˙˙u   Ăšu   Ăši    (   u   Bi   u   u   i    (   u   Biů   u   Ăšu   Ăši    (   u   hiź  u   Âźu   Âźi    (   u   hiDý˙˙u   Ă˝Du   DĂ˝i    (   u   Hiź  u   Âźu   Âźi    iDý  (   u   ii,u   ,Âu   Â,i    (   u   iiâÓűu   ĂťĂĂ˘Âu   ÂĂ˘ĂĂťi    (   u   Ii,u   ,Âu   Â,i    l   b§w (   u   li,u   ,Âu   Â,i    (   u   liâÓűu   ĂťĂĂ˘Âu   ÂĂ˘ĂĂťi    (   u   Li,u   ,Âu   Â,i    l   b§w (   u   fg       @u   @   u      @i    (   u   dg       @u   @       u          @i    (   u   fg       Ŕu   Ă   u      Ăi    (   u   dg       Ŕu	   Ă       u	          Ăi    (   u   ?i    u    u    i    (   u   ?i   u   u   i   T(   u   ?Tu   u   i    (   i   (   u   Trueu   bytesu   ISBIGENDIANu   structu   packu   assertEqualu   calcsizeu   lenu   unpacku
   isinstanceu   stru   assert_(   u   selfu   testsu   fmtu   argu   bigu   lilu   asyu   xfmtu   expu   resu   rev(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_new_features   sh       * c             C   s¤  |  j  t j t f t j d d  |  j  t j t j d d  |  j  t j t j d d  y t j d d  Wn t j k
 o YnXt j d  } xd d d | f d d d | f d d d | f d d	 d | d	 d
 f d d	 d | >d	 d | f d d	 d | d	 >d	 d d | d	 f f D]r \ } } } t | d  } t j | |  } t |  } |  j | |  t j	 | |  d } |  j | |  q*Wd  S(   Nu   Qi˙˙˙˙u   qu   ai   u   Ăżi    u    i   u   i   u   u   latin-1(
   u   assertRaisesu   structu   erroru	   TypeErroru   packu   calcsizeu   bytesu   bigendian_to_nativeu   assertEqualu   unpack(   u   selfu   nbytesu   formatu   inputu   expectedu   gotu   native_expectedu	   retrieved(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_native_qQž   s,    ", c                sb   d d  l    G  f d   d t j  } x3 d d d d d g D] } | |   } | j   q> Wd  S(   Ni    c                sA   |  Ee  Z d  Z d   Z e j e j   j d  Z d   Z	 d S(   u   bBhHiIlLc             S   sÚ   |  j  t |  d  | |  _ xB d D]: } x1 | D]) } | | } |  j  t j |  |  q3 Wq& W| |  _ | d |  _ | \ |  _ |  _ d |  _	 d |  j d |  _
 d |  j d |  _ d |  j d d |  _ d  S(   Ni   u   <>!=i   i    i   (   u   assertEqualu   lenu
   formatpairu   structu   calcsizeu   bytesizeu   bitsizeu   signed_codeu   unsigned_codeu   unsigned_minu   unsigned_maxu
   signed_minu
   signed_max(   u   selfu
   formatpairu   bytesizeu	   directionu   codeu   format(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   __init__ę   s    	  
!		c       
      S   së  |  j  } |  j | k o |  j k n o| } | d k  o( | d |  j >7} |  j | d k  n t |  d d   } t |  d @o d | } n | |  } d |  j t |  | } d | } | | |  } |  j | |  | | |  d }	 |  j | |	  |  j	 t
 j t f | | d |  d | } t |  } | | |  } |  j | |  | | |  d }	 |  j | |	  |  j	 t
 j t f | | d |  n] t o, | |  j k o t o t d	 |  qn) t | d | |  t | d | |  |  j } |  j | k o |  j k n oPd | } | } t |  d d   } t |  d @o d | } n | |  } d |  j t |  | } | | |  } |  j | |  | | |  d }	 |  j | |	  |  j	 t
 j t f | | d |  d | } t |  } | | |  } |  j | |  | | |  d }	 |  j | |	  |  j	 t
 j t f | | d |  n] t o, | |  j k o t o t d	 |  qçn) t | d | |  t | d | |  d  S(
   Ni    i   i   u   0s    u   >s   u   <u#   Skipping buggy range check for code(   u   signed_codeu
   signed_minu
   signed_maxu   bitsizeu   assert_u   hexu   lenu   bytesizeu   assertEqualu   assertRaisesu   structu   erroru	   TypeErroru   string_reverseu   PY_STRUCT_RANGE_CHECKINGu   BUGGY_RANGE_CHECKu   verboseu   printu   deprecated_erru   unsigned_codeu   unsigned_minu   unsigned_max(
   u   selfu   xu   packu   unpacku	   unhexlifyu   codeu   expectedu   formatu   gotu	   retrieved(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_oneů   sv    	$

	$

c             S   s  d d l  m } g  } x, t |  j d  D] } | j d | > q* WxX t |  j  D]G } d } x+ t |  j  D] } | d >| d  B} qq W| j |  qU Wxu | D]m } xd | | f D]U } xL d D]D } | | }	 y t |	  }	 Wn t k
 o Yn X|  j |	  qČ Wqť Wq§ Wxb d D]Z }
 xQ |  j	 D]F } x= d	 d | f D], } |  j
 t j t f t j |
 | |  qEWq/WqWd  S(   Ni    (   u	   randrangei   i   i   i   i˙˙˙˙u   <>u   a stringy              E@(   i˙˙˙˙i    i   y      @      E@(   u   randomu	   randrangeu   rangeu   bitsizeu   appendu   bytesizeu   intu   OverflowErroru   test_oneu
   formatpairu   assertRaisesu   structu   erroru	   TypeErroru   pack(   u   selfu	   randrangeu   valuesu   expu   iu   valu   ju   baseu   incru   xu	   directionu   codeu	   badobject(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   runa  sB          
 
  N(
   u   __name__u
   __module__u   BUGGY_RANGE_CHECKu   __init__u   structu   packu   unpacku	   unhexlifyu   test_oneu   run(   u
   __locals__(   u   binascii(    u-   /mit/python/lib/python3.0/test/test_struct.pyu	   IntTesterâ   s   
	fu	   IntTesteru   bBi   u   hHi   u   iIi   u   lLu   qQi   (   u   bBi   (   u   hHi   (   u   iIi   (   u   lLi   (   u   qQi   (   u   binasciiu   unittestu   TestCaseu   run(   u   selfu	   IntTesteru   argsu   t(    (   u   binasciiu-   /mit/python/lib/python3.0/test/test_struct.pyu   test_standard_integersŢ   s    Ł c             C   sŤ   x¤ d d d d d d  d! d d d d d d d d f g D]h \ } } } } t  | d  } t j | |  } |  j | |  t j | |  \ } |  j | |  q; Wd  S("   Nu   pu   abcu    s    u   1pu   2pu   as   au   3pu   abs   abu   4pu   abcs   abcu   5pu   abc u   6pu   abc  u   1000pu   xič  u   Ăżiç  s   xi˙   u   latin-1(   u   pu   abcu    s    (   u   1pu   abcu    s    (   u   2pu   abcu   as   a(   u   3pu   abcu   abs   ab(   u   4pu   abcu   abcs   abc(   u   5pu   abcu   abc s   abc(   u   6pu   abcu   abc  s   abc(   u   bytesu   structu   packu   assertEqualu   unpack(   u   selfu   codeu   inputu   expectedu   expectedbacku   got(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_p_code  s    # c       	      C   sh  d d  l  } xÔ t d d  D]Ă } d } x$ | | d | k o | d } q+ W| | } t j d |  } t j d |  d } |  j | |  t j d |  } |  j | t |   t j d |  d } |  j | |  q Wd } | j | d  } t j d |  } t j d |  d } |  j | |  d } | j | d  } |  j t	 t j d |  d  S(   Ni    i   i!   g      ŕ?g       @u   <fu   >fi   i   i   i   i   i˙˙˙ ih   i   i˙˙˙ig   (
   u   mathu   rangeu   structu   packu   unpacku   assertEqualu   string_reverseu   ldexpu   assertRaisesu   OverflowError(	   u   selfu   mathu   baseu   deltau   smalleru   packedu   unpackedu	   bigpackedu   big(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_705836  s.      
c          	   C   sł   d d  l  } x  d D] } x% d D] } t t j | | d	  q  Wt t j | d d
  t t j | d d  t t j | d | j d  t t j | d | j d  q Wd  S(   Ni    u    u   >u   <u   Bu   Hu   Iu   Li˙˙˙˙i,  ip i   (   u    u   >u   <(   u   Bu   Hu   Iu   L(   u   sysu   deprecated_erru   structu   packu   maxsize(   u   selfu   sysu   endianu   fmt(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_1229380Â  s      c          	   C   sN   xG d D]? } x6 d D]. } |  j  | | d  |  j  | | d  q Wq Wd  S(   Nu    u   >u   <u   Bu   Hu   Iu   Lu   bu   hu   iu   lg      đ?g      ř?(   u    u   >u   <(   u   Bu   Hu   Iu   Lu   bu   hu   iu   l(   u   check_float_coerce(   u   selfu   endianu   fmt(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   XXXtest_1530559Đ  s      c             C   sM  d } d } t  j |  } x$t t f D]} | |  } t | t t f  p t | d  } n | } |  j | j |  d  |  j | j | d  d  |  j | j | d  d  xA t d	  D]3 } |  j | j | |  | | | d  f  qÇ Wx= t d	 t |  d
  D]" } |  j	 t  j
 | j | |  qWq( Wxt t f D]ö } | |  } |  j t  j | |  d  |  j t  j | | d  d  |  j t  j | | d  d  xD t d	  D]6 } |  j t  j | | |  | | | d  f  qČWx@ t d	 t |  d
  D]% } |  j	 t  j
 t  j | | |  qWqOWd  S(   Ns	   abcd01234u   4su   latin1s   abcdi   s   cd01i   s   0123i   i   (   s   abcd(   s   cd01(   s   0123(   s   abcd(   s   cd01(   s   0123(   u   structu   Structu   bytesu	   bytearrayu
   isinstanceu   assertEqualu   unpack_fromu   rangeu   lenu   assertRaisesu   error(   u   selfu   test_stringu   fmtu   su   clsu   datau
   bytes_datau   i(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_unpack_fromŘ  s<      1 $  4 c             C   s  d } t  j  d d d  } d } t j |  } | j | d |  | j   d  t |   } |  j | |  | j | d |  | j   d  t |  d  } |  j | | d  d  |  t  j  d d	  } |  j t j | j | d |  |  j t j | j | d |  d  S(
   Ns   Reykjavik rocks, eow!u   bs    id   u   21si    i
   i   s
             (	   u   arrayu   structu   Structu	   pack_intou   tostringu   lenu   assertEqualu   assertRaisesu   error(   u   selfu   test_stringu   writable_bufu   fmtu   su   from_bufu	   small_buf(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_pack_intoó  s     c                s	  d } t  j  d d d  } d     f d   } | | d |  | j   d  t |   } |  j | |  | | d |  | j   d  t |  d  } |  j | | d  d  |  t  j  d d
  } |  j t j | | d |  |  j t j | | d	 |  d  S(   Ns   Reykjavik rocks, eow!u   bs    id   u   21sc                 s   t  j   |   S(    (   u   structu	   pack_into(   u   args(   u   fmt(    u-   /mit/python/lib/python3.0/test/test_struct.pyu   <lambda>  s    i    i
   i   s
             (   u   arrayu   tostringu   lenu   assertEqualu   assertRaisesu   structu   error(   u   selfu   test_stringu   writable_bufu	   pack_intou   from_bufu	   small_buf(    (   u   fmtu-   /mit/python/lib/python3.0/test/test_struct.pyu   test_pack_into_fn  s     c             C   s^   t  j  d d  } t d  } x9 | | g D]+ } t j d |  \ } |  j | d  q+ Wd  S(   Nu   Bs   4Vxu   >IixV4(   u   arrayu
   memoryviewu   structu   unpacku   assertEqual(   u   selfu   data1u   data2u   datau   value(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_unpack_with_buffer  s     c          
   C   s×  xĐt  d  d D]ž} d g  g  d d f } d g d d d d d f } | d
 t |  } t j | |  } t j | |  } | d
 t |  } t j | |  } t j | |  }	 |  j t |  t |	   |  j t |  t |   x | D] }
 |  j |
  qö Wx |	 D] }
 |  j |
  qWt j | d
 d  } |  j t |  t j | d
   t |  d k o |  j | d d | n x: d d d d d g D]# } |  j t j d |  d  q¨Wq Wd  S(   Nu   <>!=u    i    i   u   testi   i˙˙˙˙l   ˙˙ i   u   ?u   msgu    encoded bool is not one byte: %rs   s   s   ˙s   s   đu   >?(   u    (    l        g  ŕ˙˙˙ßA(	   u   tupleu   lenu   structu   packu   unpacku   assertEqualu   assertFalseu
   assertTrueu   calcsize(   u   selfu   prefixu   falseu   trueu   falseFormatu   packedFalseu   unpackedFalseu
   trueFormatu
   packedTrueu   unpackedTrueu   tu   packedu   c(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu	   test_bool%  s4       # c             C   s   |  j  t t j d d  d  S(   Nu
   357913941bu   a(   u   assertRaisesu   MemoryErroru   structu   pack(   u   self(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   test_crasherF  s    N(   u   __name__u
   __module__u   with_warning_restoreu   check_float_coerceu   test_isbigendianu   test_consistenceu   test_transitivenessu   test_new_featuresu   test_native_qQu   test_standard_integersu   test_p_codeu   test_705836u   PY_STRUCT_RANGE_CHECKINGu   test_1229380u   XXXtest_1530559u   test_unpack_fromu   test_pack_intou   test_pack_into_fnu   test_unpack_with_bufferu	   test_boolu   IS32BITu   test_crasher(   u
   __locals__(    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu
   StructTest<   s&   
				;	 	Ż		#						 u
   StructTestc               C   s   t  t  d  S(   N(   u   run_unittestu
   StructTest(    (    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu	   test_mainJ  s    u   __main__(   u   arrayu   unittestu   structu   warningsu	   functoolsu   wrapsu   test.supportu
   TestFailedu   verboseu   run_unittestu   sysu	   byteorderu   ISBIGENDIANu   maxsizeu   IS32BITu   _structu   ImportErroru   PY_STRUCT_RANGE_CHECKINGu   PY_STRUCT_OVERFLOW_MASKINGu   PY_STRUCT_FLOAT_COERCEu   getattru   string_reverseu   bigendian_to_nativeu   with_warning_restoreu   deprecated_erru   TestCaseu
   StructTestu	   test_mainu   __name__(    (    (    u-   /mit/python/lib/python3.0/test/test_struct.pyu   <module>   s8   			˙ ˙ 	