
    daf8                         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 d dlmZ  G d de j                        Z	 G d de j                        Z
 G d	 d
e j                        Zedk(  r e j                          yy)    N)array)	os_helper)script_helperc                   *    e Zd Zd Zd Zd Zd Zd Zy)LegacyBase64TestCasec                 &   | j                  t        |d       | j                  t        |g        t        d      j                  dd      }| j                  t        ||       t        d      j                  d      }| j                  t        ||       y )N s   1234B)   r   I)assertRaises	TypeError
memoryviewcast)selffmultidimensionalint_datas       +/root/Python-3.12.4/Lib/test/test_base64.pycheck_type_errorsz&LegacyBase64TestCase.check_type_errors   sx    )Q+)Q+%g.33C@)Q(89g&++C0)Q1    c                    | j                   } |t        j                  d      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d	      d	        |t        j                  d
      d        |t        j                  d      d        |t        j                  t        d            d        |t        j                  t	        d            d        |t        j                  t        dd            d       | j                  t        j                         y )N   www.python.org   d3d3LnB5dGhvbi5vcmc=
   a   YQ==
   ab   YWI=
   abc   YWJj
r   R   abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#0^&*();:<>,. []{}r   YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==
   Aladdin:open sesame   QWxhZGRpbjpvcGVuIHNlc2FtZQ==
r
   )assertEqualbase64encodebytes	bytearrayr   r   r   r   eqs     r   test_encodebytesz%LegacyBase64TestCase.test_encodebytes   s   
6/02KL
6d#Y/
6e$i0
6f%y1
6c"C(
6 A B3	4 	645?	A 	6i/0)<
6j019=
6eC019=v112r   c                    | j                   } |t        j                  d      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d	      d
        |t        j                  d      d        |t        j                  d      d        |t        j                  t        d            d        |t        j                  t	        d            d        |t        j                  t        dd            d       | j                  t        j                         y )Nr   r   r   r   r   r   r    r   r"   r!   r   r$   r#   r
   )r%   r&   decodebytesr(   r   r   r   r)   s     r   test_decodebytesz%LegacyBase64TestCase.test_decodebytes*   s   
678:KL
6i($/
6i(%0
6i(&1
6 G H-	. 	6c"C(
6?@4	6 	6i	23V<
6j34f=
6eC34f=v112r   c                    | j                   }ddlm}m}  |d      } |       }t	        j
                  ||        ||j                         d       | j                  t        t        j
                   |d       |              | j                  t        t        j
                   |d       |              | j                  t        t        j
                   |d       |              y )Nr   BytesIOStringIOr!   r"   abcr   )	r%   ior1   r2   r&   encodegetvaluer   r   )r   r*   r1   r2   infpoutfps         r   test_encodez LegacyBase64TestCase.test_encode?   s    ( 9 : 	dE"
5>>3	4
 	)V]]HUOWYO)V]]GFOXZP)V]]HUOXZPr   c                    ddl m}m}  |d      } |       }t        j                  ||       | j                  |j                         d       | j                  t        t        j                   |d       |              | j                  t        t        j                   |d       |              | j                  t        t        j                   |d       |              y )Nr   r0      d3d3LnB5dGhvbi5vcmc=r   zYWJj
r    )
r4   r1   r2   r&   decoder%   r6   r   r   r5   )r   r1   r2   r7   r8   s        r   test_decodez LegacyBase64TestCase.test_decodeP   s    (./	dE")+<=)V]]HX4F	R)V]]GI4F
S)V]]HX4F
Sr   N)__name__
__module____qualname__r   r+   r.   r9   r=    r   r   r   r   
   s    23*3*Q"	Tr   r   c                       e 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d Zd Zd Z d Z!y )!BaseXYTestCasec                 `    | j                  t        |d       | j                  t        |g        y )Nr	   r   r   r   r   s     r   check_encode_type_errorsz'BaseXYTestCase.check_encode_type_errors`   s&    )Q+)Q+r   c                 2    | j                  t        |g        y NrE   rF   s     r   check_decode_type_errorsz'BaseXYTestCase.check_decode_type_errorsd   s    )Q+r   c                 D   | j                   }t        |      } | ||      |        |||        | |t        |            |        | |t        d|            |       | j	                  t
        j                  |       | j                  t
        j                  |       y )Nr
   )r%   r(   r   r   check_nonbyte_element_formatr&   	b64encodecheck_multidimensional)r   r   
bytes_dataexpectedr*   bs         r   check_other_typesz BaseXYTestCase.check_other_typesg   s    j!
1Q4
1j
1Z
#$h/
1U3
#$h/))&*:*:JG##F$4$4jAr   c                     t        |      dz  rdnd}||z   }t        |      dz  df}t        |      j                  d|      }| j                   ||       ||             y )Nr       r   r
   lenr   r   r%   )r   r   datapaddingrO   shaper   s          r   rN   z%BaseXYTestCase.check_multidimensionals   sa     Y]'G^
ZA%q)%j166sEB+,a
m<r   c                     ddt        |      z
  dz  z  }||z   }t        |      j                  d      }| j                   ||       ||             y )NrT      r   rU   )r   r   rW   rX   rO   r   s         r   rL   z+BaseXYTestCase.check_nonbyte_element_formatz   sO    a#d)mq01G^
j)..s38a
m4r   c           	      "   | j                   } |t        j                  d      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d	      d
        |t        j                  d      d        |t        j                  d      d        |t        j                  dd      d        |t        j                  dt        d            d        |t        j                  dt	        d            d        |t        j                  dt        dd            d       | j                  t        j                  dd       | j                  t        j                         | j                  t        t        j                  dd        |t        j                  d      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d	      d
        |t        j                  d      d        |t        j                  d      d       | j                  t        j                  dd       | j                  t        j                          |t        j                  d      d       | j                  t        j                  dd       | j                  t        j                         y )Nr   r;   rT      AA==r      YQ==r      YWI=r      YWJjr   r!   sp   YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==   Vo   *$altchars   01a*b$cdr
      abcds   YWJjZA==z*$   01a-b_cd)r%   r&   rM   r(   r   r   rR   rG   r   r   standard_b64encodeurlsafe_b64encoder)   s     r   test_b64encodezBaseXYTestCase.test_b64encode   sv   
6-.0GH
6G$g.
6D!7+
6E"G,
6F#W-
6C #&
6 > ?1	2 	61EBKP
61Ie<LM	
61Ju<MN	
61E#u<MN	 	v//+F%%f&6&67)V%5%5sTJ
6$$%679PQ
6$$T*G4
6$$U+W5
6$$V,g6
6$$S)3/
6$$ &G H1	2 	v88&	5%%f&?&?@
6##$9:KHv774k	C%%f&>&>?r   c                 f   | j                   }dddddddd}|j                         D ]L  \  }} |t        j                  |      |        |t        j                  |j	                  d	            |       N | j                  t        j                  d
d       | j                  t        j                         ddi}|j                         D ]  \  \  }}}|j	                  d	      }|j	                  d	      } |t        j                  ||      |        |t        j                  ||      |        |t        j                  ||      |        |t        j                  ||      |        |j                         D ]L  \  }} |t        j                  |      |        |t        j                  |j	                  d	            |       N | j                  t        j                  d
d       | j                  t        j                         ddd}	|	j                         D ]L  \  }} |t        j                  |      |        |t        j                  |j	                  d	            |       N | j                  t        j                  dd       | j                  t        j                         y )Nr   rT   r   r   r   r!   r   )r;   r]   r^   r_   r`   sq   YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0
NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==r   asciir`   )re   rb   ra   rc   )rg   r   rg   )	r%   itemsr&   	b64decoder<   rR   rJ   standard_b64decodeurlsafe_b64decode)
r   r*   testsrW   restests_altcharsrd   data_straltchars_strtests_urlsafes
             r   test_b64decodezBaseXYTestCase.test_b64decode   se   *;! 
3   	<ID#v%s+vG 45s;	< 	v//&A%%f&6&67 /0E %3%9%9%; 	G!T8c{{7+H#??73Lvx8#>v8<cBv|<cBv<@#F	G  	EID#v((.4v((W)=>D	E 	v88'6J%%f&?&?@ '<! ',,. 	DID#v''-s3v''G(<=sC	D 	v774	6%%f&>&>?r   c                     | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       y )Nr   r3   )r   binasciiErrorr&   rn   r   s    r   test_b64decode_padding_errorz+BaseXYTestCase.test_b64decode_padding_error   s:    (..&*:*:FC(..&*:*:EBr   c           
      >   d}t         j                  t         j                  t         j                  f}|D ]  \  }}|D ]]  }| j	                  ||      5  | j                   ||      |       | j                   ||j                  d            |       d d d        _ | j                  t        j                        5  t        j                  |d       d d d        | j                  t        j                        5  t        j                  |j                  d      d       d d d         d}| j                  t        j                  dd      |       | j                  t        j                  d	      |       y # 1 sw Y   GxY w# 1 sw Y   xY w# 1 sw Y   hxY w)
N)
)s   %3d==   )s   $3d==r~   )s   [==r   )s   YW]3=s   am)s   3{d==r~   )s   3d}==r~   )s   @@r   )   !r   )r    r   )s	   YWJj
YWI=s   abcab)bstrfuncrl   T)validates   s   ++[[//]]s   []s   ++--//__)
r&   rn   ro   rp   subTestr%   r<   r   ry   rz   )r   rq   funcsr   rr   r   s         r   test_b64decode_invalid_charsz+BaseXYTestCase.test_b64decode_invalid_chars   sx   	, %%$$

  	FID# F\\t$\7 F$$T$Z5$$T$++g*>%?EF FF ""8>>2 6  56""8>>2 F  W!5EF F	F *))+u=sC11+>DF F6 6F Fs%   A E9;F:'F9FF	F	c                 $   | j                   } |t        j                  d      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d      d	        |t        j                  d
      d        |t        j                  d      d       | j                  t        j                  d
d       | j	                  t        j                         y )Nr   rT      AA======r      ME======r      MFRA====r      MFRGG===rf      MFRGGZA=   abcde   MFRGGZDF)r%   r&   	b32encoderR   rG   r)   s     r   test_b32encodezBaseXYTestCase.test_b32encode  s    
6C #&
6G$k2
6D!;/
6E"K0
6F#[1
6G$k2
6H%{3v//+F%%f&6&67r   c                 n   | j                   }dddddddd}|j                         D ]L  \  }} |t        j                  |      |        |t        j                  |j	                  d	            |       N | j                  t        j                  d
d       | j                  t        j                         y )Nr   rT   r   r   r   rf   r   )r   r   r   r   r   r   r   rl   r   )r%   rm   r&   	b32decoder<   rR   rJ   r   r*   rq   rW   rr   s        r   test_b32decodezBaseXYTestCase.test_b32decode  s    %"#$%&  	<ID#v%s+vG 45s;	< 	v//fE%%f&6&67r   c                 Z   | j                   }dddddddddddd}|j                         D ]N  \  }} |t        j                  |d      |        |t        j                  |j	                  d	      d      |       P | j                  t        j                  t        j                  d
       | j                  t        j                  t        j                  d        |t        j                  d      d        |t        j                  d      d       ddd}|j                         D ]  \  \  }}}|j	                  d	      }|j	                  d	      } |t        j                  ||      |        |t        j                  ||      |        |t        j                  ||      |        |t        j                  ||      |       | j                  t        j                  t        j                  |       | j                  t        j                  t        j                  |        y )Nr   r   r   r   rf   r   )r   r   r   r   r   r      me======s   mfra====s   mfrgg===s   mfrggza=s   mfrggzdfTrl   r   zme======s   MLO23456s   bݭMLO23456s   b))   M1023456   L)r      I)map01)r%   rm   r&   r   r<   r   ry   rz   )	r   r*   rq   rW   rr   	map_testsr   rt   	map01_strs	            r   test_b32decode_casefoldz&BaseXYTestCase.test_b32decode_casefold-  s   "#$%&"#$%&  	BID#vd+S1vG 4d;SA	B 	(..&*:*:KH(..&*:*:JG 	6K(*>?
6J')=>*>*>	 #,//"3 		JMT53{{7+HW-IvE2C8v6<vI6<v	:C@hnnf.>.>Ehnnf.>.>I		Jr   c                 `   g d}g d}t        dd      D ]H  }|r|j                  d|z         |D ]+  }t        |      |z   dk7  s|j                  |d|z  z          - J |D ]  }| j                  |      5  | j	                  t
        j                        5  t        j                  |       d d d        | j	                  t
        j                        5  t        j                  |j                  d             d d d        d d d         y # 1 sw Y   `xY w# 1 sw Y    xY w# 1 sw Y   xY w)	N)r      ABCDEF==   ==ABCDEF   Ms   MEs   MFRAs   MFRGGs   MFRGGZAr   r         =   )rW   rl   )
rangeappendrV   r   r   ry   rz   r&   r   r<   r   rq   prefixesiprefixrW   s         r   test_b32decode_errorz#BaseXYTestCase.test_b32decode_errorV  s   2Lq" 	2AT!V$" 2v;?a'LL$q&12	2  	;D4( ;&&x~~6 +$$T*+&&x~~6 ;$$T[[%9:;; ;	;+ +; ;; ;<   7 D$D-'D$%D9D$DD$D!D$$D-	c                     g d}|D ]E  \  }}| j                  |      5  | j                  t        j                  |      |       d d d        G y # 1 sw Y   RxY w)N))r   r   )rT      00======)r      C4======)r      C5H0====)r      C5H66===)rf      C5H66P0=)r      C5H66P35	to_decode)r   r%   r&   b32hexencode)r   
test_cases	to_encoderP   s       r   test_b32hexencodez BaseXYTestCase.test_b32hexencodef  si    	

 $. 	KIx	2 K  !4!4Y!?JK K	KK Ks   &AA	c                     | j                  t        j                  dd       | j                  t        j                         y )Nrf   r   )rR   r&   r   rG   r{   s    r   test_b32hexencode_other_typesz,BaseXYTestCase.test_b32hexencode_other_typesu  s.    v22G[I%%f&9&9:r   c           	      (   g d}|D ]}  \  }}}| j                  ||      5  | j                  t        j                  ||      |       | j                  t        j                  |j	                  d      |      |       d d d         y # 1 sw Y   xY w)N))r   r   F)r   rT   F)r   r   F)r   r   F)r   r   F)r   rf   F)r   r   F)r   r   T)r   rT   T)r   r   T)r   r   T)r   r   T)r   rf   T)r   r   T)   c4======r   T)s   c5h0====r   T)s   c5h66===r   T)s   c5h66p0=rf   T)s   c5h66p35r   T)r   casefoldrl   )r   r%   r&   b32hexdecoder<   )r   r   r   rP   r   s        r   test_b32hexdecodez BaseXYTestCase.test_b32hexdecodey  s    

, .8 	6)Ix	HE 6  !4!4Y!I!)+  !4!4Y5E5Eg5N!)"+,466 6	66 6s   ABB	c                     | j                  t        j                  dd       | j                  t        j                         y )Nr   r   )rR   r&   r   rJ   r{   s    r   test_b32hexdecode_other_typesz,BaseXYTestCase.test_b32hexdecode_other_types  s.    v22KH%%f&9&9:r   c                 `   g d}g d}t        dd      D ]H  }|r|j                  d|z         |D ]+  }t        |      |z   dk7  s|j                  |d|z  z          - J |D ]  }| j                  |      5  | j	                  t
        j                        5  t        j                  |       d d d        | j	                  t
        j                        5  t        j                  |j                  d             d d d        d d d         y # 1 sw Y   `xY w# 1 sw Y    xY w# 1 sw Y   xY w)	N)r   r   r   r   r   r   r   r   r   r   rl   )
r   r   rV   r   r   ry   rz   r&   r   r<   r   s         r   test_b32hexdecode_errorz&BaseXYTestCase.test_b32hexdecode_error  s   ?Lq" 	2AT!V$" 2v;?a'LL$q&12	2  	>D- >&&x~~6 .''-.&&x~~6 >''G(<=>> >	>. .> >> >r   c                    | j                   } |t        j                  d      d        |t        j                  d      d       | j                  t        j                  dd       | j	                  t        j                         y )N   
   0102ABCDEFrT      00)r%   r&   	b16encoderR   rG   r)   s     r   test_b16encodezBaseXYTestCase.test_b16encode  sh    
634mD
6G$e,v//1H,	.%%f&6&67r   c                 N   | j                   } |t        j                  d      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d      d       | j                  t        j
                  t        j                  d       | j                  t        j
                  t        j                  d        |t        j                  dd	      d        |t        j                  dd	      d       | j                  t        j                  dd       | j                  t        j                          |t        j                  t        d      d	      d        |t        j                  t        d      d	      d        |t        j                  t        d
d      d	      d       | j                  t        j
                  t        j                  d       | j                  t        j
                  t        j                  d       y )Nr   r   
0102ABCDEFr   rT   00s
   0102abcdef
0102abcdefTr
   0102AG010)r%   r&   	b16decoder   ry   rz   rR   rJ   r(   r   r   r)   s     r   test_b16decodezBaseXYTestCase.test_b16decode  s   
6M*,CD
6L)+BC
6E"G,
6D!7+(..&*:*:MJ(..&*:*:LI
6M402IJ
6L$/1HIv//6	8%%f&6&67
6Im4d;"	$
6J}5t<"	$
6E#}5t<"	$ 	(..&*:*:HE(..&*:*:EBr   c                    | j                   }ddddt        t        d            ddddd	d
dddddddddddddddi}|j                         D ]f  \  }} |t	        j
                  |      ||        |t	        j
                  |d      ||        |t	        j
                  |d      d|z   dz   |       h | j                  t        j
                  dd       | j                  t        t        j
                  d        |t	        j
                  dd d!      d"        |t	        j
                  d#d d!      d$        |t	        j
                  dd d!      d%        |t	        j
                  d&dd'      d(        |t	        j
                  d)dd'      d*        |t	        j
                  d+dd'      d,        |t	        j
                  d-dd'      d.       y )/Nr   r      GB\6`E-ZP=Df.1GEb>   s?  !!*-'"9eu7#RLhG$k3[W&.oNg'GVB"(`=52*$$(B+<_pR,UFcb-n-Vr/1iJ-0JP==1c70M3&s#]4?Ykm5X@_(6q'R884cEH9MJ8X:f1+h<)lt#=BSg3>[:ZC?t!MSA7]@cBPD3sCi+'.E,fo>FEMbNG^4U^I!pHnJ:W<)KS>/9Ll%"IN/`jYOHG]iPa.Q$R$jD4S=Q7DTV8*TUnsrdW2ZetXKAY/Yd(L?['d?O\@K2_]Y2%o^qmn*`5Ta:aN;TJbg"GZd*^:jeCE.%f\,!5gtgiEi8N\UjQ5OekiqBum-X60nF?)@o_%qPq"ad`r;HTr!   g   @:E_WAS,RgBkhF"D/O92EH6,BF`qtRH$VbC6UX@47n?3D92&&T:Jand;cHat='/U/0JP==1c70M3&r-I,;<FN.OZ`-3]oSW/g+A(H[P   no padding..   DJpY:@:Wn_DJ(RS   zero compression       H=_,8+Cf>,E,oN2F(oQ1z   zero compression      H=_,8+Cf>,E,oN2F(oQ1!!!!   Boundary:       6>q!aA79M(3WK-[!!   Space compr:       ;fH/TAKYK$D/aMV+<VdL      rr      s8N      s8W*      s8W-!FadobeT   <~   ~>r	      )wrapcolr   s   GB\6`E-
ZP=Df.1
GEb>s       www.python.orgs   zGB\6`E
-ZP=Df.
1GEb>s   <~GB\6`
E-ZP=Df
.1GEb>
~>           
foldspacesr      yy             y+<Vd            y+<U           y+9)	r%   bytesr   rm   r&   	a85encoderR   r   r   r   s        r   test_a85encodezBaseXYTestCase.test_a85encode  s    5%*  2I/')A%'B "6!8Uvwx-2  	NID#v%sD1vE2C>vD153;3FM	N
 	v//1B5	7 	)V%5%5r:
6-qF%	'
65qN&	(
6-qE+	- 	6Ft5A5I
6Ft5A8L
6Ft5A7K
6Ft5A6Jr   c                 "   | j                   }ddddt        t        d            ddddd	d
dddddddddddddddi}|j                         D ]!  \  }} |t	        j
                  |      |       # | j                  t        j
                  dd       y )Nr   r      cXxL#aCvlSZ*DGca%Tr   ?  009C61O)~M2nh-c3=Iws5D^j+6crX17#SKH9337XAR!_nBqb&%C@Cr{EG;fCFflSSG&MFiI5|2yJUu=?KtV!7L`6nNNJ&adOifNtP*GA-R8>}2SXo+ITwPvYU}0ioWMyV&XlZI|Y;A6DaB*^Tbai%jczJqze0_d@fPsR8goTEOh>41ejE#<ukdcy;l$Dm3n3<ZJoSmMZprN9pq@|{(sHv)}tgWuEu(7hUw6(UkxVgH!yuH4^z`?@9#Kp$P$jQpf%+1cv(9zP<)YaD4*xB0K+}+;a;Njxq<mKk)=;`X~?CtLF@bU8V^!4`l`1$(#{Qdpr!   g   VPa!sWoBn+X=-b1ZEkOHadLBXb#`}nd3r%YLqtVJM@UIZOH55pPf$@(Q&d$}S6EqEFflSSG&MFiI5{CeBQRbjDkv#CIy^osE+AW7dwlr      Zf_uPVPs@!Zf7nor      dS!BNAY*TBaB^jHb7^mG00000r      dS!BNAY*TBaB^jHb7^mG0000r      LT`0$WMOi7IsgCw00r      Q*dEpWgug3ZE$irARr(hr      {{r      |Njr      |Ns9r      |NsC0)r%   r   r   rm   r&   	b85encoderR   r   s        r   test_b85encodezBaseXYTestCase.test_b85encode  s     4%*  6H//1M+-H,.F!8Uvwx-
2  	,ID#v%s+	, 	v//1B4	6r   c                    | j                   }ddt        t        d            dddddd	d
dddd}|j                         D ]  \  }} |t	        j
                  |      ||        |t	        j
                  |d      ||        |t	        j
                  |j                  d      d      ||        |t	        j
                  d|z   dz   d      ||        |t	        j
                  |dz   d      ||        |t	        j
                  d|j                  d      z  d      ||         |t	        j
                  ddd      d        |t	        j
                  ddd      d        |t	        j
                  ddd      d        |t	        j
                  ddd      d        |t	        j
                  dd       d!       | j                  t        j
                  d"d       y )#Nr   r   r   r!   r   r   r   r   r   r   r   r   r   )r   r   sJ  ! ! * -'"
		9eu
7#  RLhG$k3[W&.oNg'GVB"(`=52*$$(B+<_pR,UFcb-n-Vr/1iJ-0JP==1c70M3&s#]4?Ykm5X@_(6q'R884cEH9MJ8X:f1+h<)lt#=BSg3>[:ZC?t!MSA7]@cBPD3sCi+'.E,fo>FEMbNG^4U^I!pHnJ:W<)KS>/9Ll%"IN/`jYOHG]iPa.Q$R$jD4S=Q7DTV8*TUnsrdW2ZetXKAY/Yd(L?['d?O\@K2_]Y2%o^qmn*`5Ta:aN;TJbg"GZd*^:jeCE.%f\,!5gtgiEi8N\UjQ5OekiqBum-X60nF?)@o_%qPq"ad`r;HTr   r   r   r   r   r   r   r   r   r   Fr   rl   r   r   Tz<~%s~>r   r   r   r   r   r   r   r   r   s   aaaaayr   s   ɀ@    r   )r%   r   r   rm   r&   	a85decoder<   rR   r   s        r   test_a85decodezBaseXYTestCase.test_a85decode$  s    $5 "%*-- /&I)H">%8-2  	ID#v%sD1vE2C>vG 4EBCNvu 4DA3MvuD93Ev4;;w+? ?tLD	 	6Ed%@&I
6HUCVL
6GEBFK
6Ft5A6J
6I$79MNv//1G0	2r   c                 `   | j                   }ddt        t        d            dddddd	d
dddd}|j                         D ]L  \  }} |t	        j
                  |      |        |t	        j
                  |j                  d            |       N | j                  t        j
                  dd       y )Nr   r   r   r!   r   r   r   r   r   r   r   r   r   )r   r   r   r   r  r  r  r  r  r  r  r  r	  rl   r   )r%   r   r   rm   r&   	b85decoder<   rR   r   s        r   test_b85decodezBaseXYTestCase.test_b85decodeR  s     #4 #5:.6 /*M)H&F%8-
2  	<ID#v%s+vG 45s;	< 	v//1F0	2r   c                 `   | j                   } |t        j                  dd      d        |t        j                  dd      d        |t        j                  dd      d        |t        j                  d	d      d
        |t        j                  dd      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d
      d	        |t        j                  d      d       y )N   xTpads   GQ7^D   xxs   G^'2g   xxxs   G^+H5   xxxxs   G^+IX   xxxxxs
   G^+IXGQ7^D   x      xx     xxx    xxxxx   )r%   r&   r   r  r)   s     r   test_a85_paddingzBaseXYTestCase.test_a85_paddingu      
6Dd+X6
6Et,h7
6F-x8
6G.9
6H$/?
6H%'78
6H%}5
6H%z2
6H%w/
6M*,@Ar   c                 `   | j                   } |t        j                  dd      d        |t        j                  dd      d        |t        j                  dd      d        |t        j                  d	d      d
        |t        j                  dd      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d      d        |t        j                  d
      d	        |t        j                  d      d       y )Nr  Tr  s   cmMzZr  s   cz6H+r  s   czAdKr  s   czAetr  s
   czAetcmMzZr  r  r  r  )r%   r&   r
  r  r)   s     r   test_b85_paddingzBaseXYTestCase.test_b85_padding  r   r   c                    t        t        d            t        t        dd            z  t        d      z
  }|D ]  }| j                  t        t	        |g            5  t        j                  dt	        |g      z          d d d        | j                  t        t	        |g            5  t        j                  dt	        |g      z   d       d d d        | j                  t        t	        |g            5  t        j                  d	t	        |g      z   d
z   d       d d d         | j                  t        t
        j                  dd       | j                  t        t
        j                  dd       | j                  t        t
        j                  d       | j                  t        t
        j                  dd       t        j                  dd       | j                  t        t
        j                  dd       | j                  t        t
        j                  dd       | j                  t        t
        j                  ddd       | j                  t        t
        j                  dd       | j                  t        t
        j                  dd       | j                  t        t
        j                  dd       | j                  t        t
        j                  dd       | j                  t        t
        j                  dd       | j                  t        t
        j                  dd       y # 1 sw Y   xY w# 1 sw Y   |xY w# 1 sw Y   &xY w)N    v      s    	
msgs   !!!!Fr   s   <~!!!!r   Ts	   malformeds   <~still malformeds   <~~>s   abcxs   abcdeys   a b
cr   )r   ignorechars   ss   s8s   s8Ws   s8W-s   s8W-"s   aaaayr  )setr   r   
ValueErrorr   r&   r  r   illegalcs      r   test_a85decode_errorsz$BaseXYTestCase.test_a85decode_errors  s   uRy>Cc3$88C<MM 	MA"":5!:"> 7  5!:!567"":5!:"> D  5!:!5UCD"":5!:"> M  UA3Z!7%!?tLM M	M 	*f&6&6&2$ 	 	@*f&6&6&:$ 	 	H 	*f&6&6&-	/*f&6&6&-U 	 	<-*f&6&6&-U 	 	<*f&6&6&/u 	 	>*f&6&6&/u# 	 	O 	*f&6&6EJ*f&6&6UK*f&6&6eL*f&6&6uM*f&6&6N*f&6&6%) 	 	+?7 7D DM Ms$   #L;)%M7(M;M	M	M	c                    t        t        d            t        d      z   t        t        dd            z   }|D ]N  }| j                  t        t	        |g            5  t        j                  dt	        |g      z          d d d        P | j                  t        t
        j                  d       | j                  t        t
        j                  d       | j                  t        t
        j                  d	       | j                  t        t
        j                  d
       | j                  t        t
        j                  d       y # 1 sw Y   xY w)N!   s	   "',./:[\]   r&  r'  s   0000   |s   |Ns   |Nss   |NsCs   |NsC1)listr   r   r,  r   r&   r  r-  s      r   test_b85decode_errorsz$BaseXYTestCase.test_b85decode_errors  s   uRy/~&'uS#'(  	7A"":5!:"> 7  5!:!567 7	7 	*f&6&6=*f&6&6>*f&6&6?*f&6&6@*f&6&6A7 7s   #EE	c                    t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  f}|D ]  }| j                  t        |d        y )Nu   with non-ascii Ë)
r&   rn   ro   rp   r   r   r  r  r   r,  )r   decode_funcsr   s      r   test_decode_nonascii_strz'BaseXYTestCase.test_decode_nonascii_str  sn    ((1100((((((((*  	DAj!-BC	Dr   c                 ^    | j                  t        t        j                  t                     y rI   )
assertTrue
issubclassry   rz   r,  r{   s    r   test_ErrorHeritagez!BaseXYTestCase.test_ErrorHeritage  s    
8>>:>?r   c                    t         j                  }t         j                  }t         j                  }t         j                  }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d	       | j                   |d
      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d
      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d
      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d
      d       | j                   |d      d       y ) Nr      fs   Zg==s   fos   Zm8=s   foos   Zm9vs   foobs   Zm9vYg==s   foobas   Zm9vYmE=s   foobars   Zm9vYmFys   MY======s   MZXQ====s   MZXW6===s   MZXW6YQ=s   MZXW6YTBs   MZXW6YTBOI======s   CO======s   CPNG====s   CPNMU===s   CPNMUOG=s   CPNMUOJ1s   CPNMUOJ1E8======s   66s   666Fs   666F6Fs   666F6F62s
   666F6F6261s   666F6F626172)r&   rM   r   r   r   r%   )r   rM   r   r   r   s        r   test_RFC4648_test_casesz&BaseXYTestCase.test_RFC4648_test_cases  sv   $$	**$$	$$	3-4'25)736*G47+[98,k:9-{;3-4+65);76*K87+[98,k:9-/BCc*C0d+[9e,k:f-{;g.<h/=i02EF3-4%05)736*I67+[98,m<9-?r   N)"r>   r?   r@   rG   rJ   rR   rN   rL   rj   rw   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r"  r0  r6  r9  r=  r@  rA   r   r   rC   rC   \   s    ,,
B=50@d6@pCE@88"'JR; K;6<;>"8C60Kd 6D,2\!2FBB#+JB	D@%@r   rC   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestMainc                     t         j                  j                  t        j                        r$t        j
                  t        j                         y y rI   )ospathexistsr   TESTFNunlinkr{   s    r   tearDownzTestMain.tearDown  s/    77>>)**+IIi&&' ,r   c                 D    t        j                  ddg| j                  S )N-mr&   )r   assert_python_okout)r   argss     r   
get_outputzTestMain.get_output  s     --dHDtDHHHr   c                    t        t        j                  d      5 }|j                  d       d d d        | j	                  dt        j                        }| j                  |j                         d       y # 1 sw Y   JxY w)Nwb   ab
-e   Yf9iCg==openr   rG  writerO  r%   rstripr   fpoutputs      r   test_encode_filezTestMain.test_encode_file  sa    )""D) 	"RHH[!	"y'7'78+6	" 	"   A66A?c                     t        j                  ddd      5 }|j                  d      \  }}d d d        | j                  j	                         d       | j                         y # 1 sw Y   ;xY w)NrK  r&   rS  rR  rT  )r   spawn_pythoncommunicater%   rX  assertIsNone)r   procrM  errs       r   test_encode_from_stdinzTestMain.test_encode_from_stdin
  sc    ''h= 	5''4HC	5{3#	5 	5s   A''A0c                    t        t        j                  d      5 }|j                  d       d d d        | j	                  dt        j                        }| j                  |j                         d       y # 1 sw Y   JxY w)NrQ  rT  z-ds   abrU  rY  s      r   r=   zTestMain.test_decode  sa    )""D) 	"RHH[!	"y'7'78)4	" 	"r]  c                 n    | j                  d      }| j                  d|       | j                  d|       y )Nz-h   usage:    -d, -u: decode)rO  assertInr   r[  s     r    test_prints_usage_with_help_flagz)TestMain.test_prints_usage_with_help_flag  s-    &j&)'0r   c                     t        j                  ddd      j                  }| j                  d|       | j                  d|       y )NrK  r&   z-xrg  rh  )r   assert_python_failurerc  ri  rj  s     r   #test_prints_usage_with_invalid_flagz,TestMain.test_prints_usage_with_invalid_flag  s9    44T8TJNNj&)'0r   N)
r>   r?   r@   rI  rO  r\  rd  r=   rk  rn  rA   r   r   rB  rB    s&    (I751
1r   rB  __main__)unittestr&   ry   rD  r   test.supportr   r   TestCaser   rC   rB  r>   mainrA   r   r   <module>rt     su       	  " &OT8,, OTd]
@X&& ]
@@"1x   "1H zHMMO r   