mò
­fIc           @   sc   d  Z  d k l Z d k Z d k Z d e i f d „  ƒ  YZ d „  Z e d j o e ƒ  n d S(   s   Test the binascii C module.(   s   test_supportNt   BinASCIITestc           B   s‹   t  Z d Z e d i e e e d ƒ ƒ ƒ 7Z e d 7Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z RS(   Ns.   The quick brown fox jumps over the lazy dog.
t    i   s   
Hello world.
c         C   s6   |  i t t i t ƒ ƒ |  i t t i t ƒ ƒ d  S(   N(   t   selft   assert_t
   issubclasst   binasciit   Errort	   Exceptiont
   Incomplete(   R   (    (    t/   /mit/python/lib/python2.4/test/test_binascii.pyt   test_exceptions   s    c         C   sä   g  } x‘ d D]‰ } d d g } | d j o | i d d d	 g ƒ n xM | D]E } | | } |  i t t	 t
 | ƒ ƒ ƒ |  i t t	 t
 | ƒ ƒ qM Wq WxC d D]; } |  i t t	 t
 | ƒ ƒ ƒ |  i t t	 t
 | ƒ ƒ q¡ Wd  S(   Nt   base64t   hqxt   uut   hext   a2b_t   b2a_t   crc_t   rlecode_t
   rledecode_t   hexlifyt	   unhexlify(   s   base64R   s   uus   hex(   R   R   (   t   funcst   suffixt   prefixest   extendt   prefixt   nameR   R   t   callablet   getattrR   t   assertRaisest	   TypeError(   R   R   R   R   R   R   (    (    R	   t   test_functions   s      
! c         C   s©   d } g  } xS t d t |  i ƒ | ƒ D]6 } |  i | | | !} t i	 | ƒ } | i | ƒ q( Wd } x' | D] } t i | ƒ } | | } qo W|  i | |  i ƒ d  S(   Ni9   i    R   (   t
   MAX_BASE64t   linest   ranget   lenR   t   datat   it   bR   t
   b2a_base64t   at   appendt   rest   linet
   a2b_base64t   assertEqual(   R   R)   R'   R&   R"   R!   R+   R,   (    (    R	   t   test_base64valid#   s      c            s!  d } g  } xS t d t |  i ƒ | ƒ D]6 } |  i | | | !} t i	 | ƒ } | i | ƒ q( Wd ‰  d } x; t d ƒ D]- } t | ƒ } | | j o ˆ  | 7‰  q{ q{ W‡  d †  }
 d } x0 t |
 | ƒ D] }	 t i |	 ƒ } | | 7} qÎ W|  i | |  i ƒ |  i t i ˆ  ƒ d ƒ d  S(   Ni9   i    R   s@   abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/i   c            s™   ˆ  } t |  ƒ t | ƒ } d } xh |  o` | oY t |  ƒ t | ƒ | j o |  d |  d } }  n | d | d } } | | 7} q% W| | |  S(   NR   i    i   (   t   fillerst   noiseR$   R,   t   ratioR+   t   c(   R,   R3   R1   R2   R+   (   R0   (    R	   t   addnoiseA   s     (   R!   R"   R#   R$   R   R%   R&   R'   R   R(   R)   R*   R0   t   validt   xranget   chrR3   R4   R+   t   mapR,   R-   R.   (   R   R)   R3   R'   R+   R&   R"   R5   R!   R,   R4   R0   (    (   R0   R	   t   test_base64invalid1   s,       c         C   sO  d } g  } xS t d t |  i ƒ | ƒ D]6 } |  i | | | !} t i	 | ƒ } | i | ƒ q( Wd } x' | D] } t i | ƒ } | | 7} qo W|  i | |  i ƒ |  i t i d ƒ d d ƒ |  i t i d ƒ d d ƒ |  i t i d	 ƒ d d ƒ |  i t i t i d
 ƒ |  i t i t i d ƒ |  i t i t i	 d d ƒ d  S(   Ni-   i    R   s   t    i   s   €i    s   ÿs   ÿ s   !!!!i.   t   !(   t   MAX_UUR"   R#   R$   R   R%   R&   R'   R   t   b2a_uuR)   R*   R+   R,   t   a2b_uuR.   R   R   (   R   R)   R'   R&   R"   R<   R+   R,   (    (    R	   t   test_uuV   s&      c         C   sH   t  i d ƒ } t  i d | ƒ } |  i | d ƒ |  i t t  i ƒ d  S(   Ns   Test the CRC-32 ofs    this string.ijë¦](   R   t   crc32t   crcR   R.   R   R   (   R   RA   (    (    R	   t
   test_crc32k   s    c         C   s    d } t i | ƒ } t i | ƒ } |  i | | ƒ |  i t	 t i | d  ƒ |  i t	 t i | d  d ƒ t
 i o& |  i t i t d d ƒ ƒ d ƒ n d  S(   Ns    {s   worldi   s   helloi   0iÿÿÿÿt   qR)   t   asciit   61(   t   sR   t   b2a_hext   tt   a2b_hext   uR   R.   R   R   t   test_supportt   have_unicodeR   t   unicode(   R   RF   RJ   RH   (    (    R	   t   test_hext   s    
c         C   s  y t  i d h  d d < Wn t j
 o n X|  i d ƒ |  i t  i d ƒ d ƒ |  i t  i d ƒ d ƒ |  i t  i d ƒ d ƒ |  i t t  i d d	 ƒ|  i t  i d
 ƒ d ƒ |  i t  i d ƒ d ƒ |  i t  i d d d ƒ d d d ƒ d  S(   NR   i   s/   binascii.a2b_qp(**{1:1}) didn't raise TypeErrors   = s   ==t   =s   =AXt   foot   bars   =00
=00t    
 s   ÿ
ÿ
ÿs   =FF
=FF
=FFt   0iK   s   ÿ
ÿ
ÿs   =
=FF
=FF
=FF(   R   t   a2b_qpR   R   t   failR.   R   t   b2a_qp(   R   (    (    R	   t   test_qp   s    c         C   sk   xT d d d d d d d d d	 d
 d d d d d g D] } t t | ƒ } | d ƒ q4 Wt i d d ƒ d  S(   NRV   RI   R(   R>   RT   RG   R   R   R@   t   b2a_hqxt   a2b_hqxR-   t   rlecode_hqxR=   t   rledecode_hqxR   i    (   t   nR   R   t   ft   crc_hqx(   R   R]   R\   (    (    R	   t   test_empty_string—   s
    4 (   t   __name__t
   __module__R%   t   joinR8   R7   R6   R
   R    R/   R9   R?   RB   RN   RW   R_   (    (    (    R	   R       s   "
				%					c           C   s   t  i t ƒ d  S(   N(   RK   t   run_unittestR    (    (    (    R	   t	   test_main¡   s    t   __main__(	   t   __doc__t   testRK   t   unittestR   t   TestCaseR    Rd   R`   (   RK   R    Rh   R   Rd   (    (    R	   t   ?   s   		š	