
    0hh}?                        S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
Jr  S SKJr  / SQr " S S\R                  5      r " S	 S
\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\5      r\S:X  a  \R2                  " 5         gg)    N)support)	os_helper)TESTFN)import_module)gb2312gbkgb18030hz	big5hkscscp932	shift_jiseuc_jpeuc_jisx0213shift_jisx0213euc_jis_2004shift_jis_2004cp949euc_krjohabbig5cp950
iso2022_jpiso2022_jp_1iso2022_jp_2iso2022_jp_2004iso2022_jp_3iso2022_jp_ext
iso2022_krc                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)Test_MultibyteCodec"   c                     [          Ha  nU R                  SR                  U5      S5        U R                  [        SU5      S5        U R                  SR	                  U5      S5        Mc     g )N     )ALL_CJKENCODINGSassertEqualdecodestrencodeselfencs     A/opt/python-3.13.8/usr/lib/python3.13/test/test_multibytecodec.pytest_nullcoding#Test_MultibyteCodec.test_nullcoding$   sR    #CSZZ_b1Sc]B/RYYs^S1 $r#   c                 `    [          H$  nU R                  SR                  U5      S5        M&     g )Nabcd   abcd)r%   r&   r)   r*   s     r-   test_str_decode#Test_MultibyteCodec.test_str_decode*   s%    #CV]]3/9 $r#   c                     [         R                  " S5      nS n[         R                  " SU5        U R                  [        USS5        g )Nzeuc-krc                 ,    S[         R                  S-   4$ )Nr$      )sysmaxsize)excs    r-   <lambda>BTest_MultibyteCodec.test_errorcallback_longindex.<locals>.<lambda>0   s    "ckk!m!4r#   ztest.cjktests   applehamspam)codecs
getdecoderregister_errorassertRaises
IndexError)r+   dec	myreplaces      r-   test_errorcallback_longindex0Test_MultibyteCodec.test_errorcallback_longindex.   s?    )4	ni8*c1>	Cr#   c                     Sn[         R                  " S[         R                  5        [         H%  nU R	                  UR                  US5      S5        M'     g )Nu,  ztest.ignorer#   )r=   r?   ignore_errorsr%   r&   r)   )r+   datar,   s      r-    test_errorcallback_custom_ignore4Test_MultibyteCodec.test_errorcallback_custom_ignore5   sB    mV-A-AB#CT[[m<cB $r#   c                      [          H  nSR                  U5      n[        U5        M!     [        R                  " [
        5        g ! [        R                  " [
        5        f = f)Nz# coding: {}
)r%   formatexecr   unlinkr   )r+   r,   codes      r-   test_codingspec#Test_MultibyteCodec.test_codingspec<   sG    	%''..s3T
 ( V$IV$s   )A A"c                     U R                  [        [        R                  S 5        U R                  [        [        R                  S 5        g N)r@   AttributeError_multibytecodecMultibyteStreamReaderMultibyteStreamWriterr+   s    r-   test_init_segfault&Test_MultibyteCodec.test_init_segfaultD   s:    .)??	G.)??	Gr#   c                 t    [          H.  nU R                  [        [        R                  " U5      S5        M0     g Nr$   )r%   r@   	TypeErrorr=   r>   r*   s     r-   test_decode_unicode'Test_MultibyteCodec.test_decode_unicodeK   s)    #Ci):):3)?D $r#    N)__name__
__module____qualname____firstlineno__r.   r3   rD   rI   rP   rY   r^   __static_attributes__r`   r#   r-   r    r    "   s)    2:CC%GEr#   r    c                   n    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 r\R                  S 5       rSrg)Test_IncrementalEncoderP   c                    [         R                  " S5      " 5       nU R                  UR                  S5      S5        U R                  UR	                  5       S 5        U R                  UR                  SS5      S5        U R                  UR	                  5       S 5        U R                  UR                  SS5      S5        U R                  UR                  SS	5      S5        U R                  UR	                  5       S 5        g )
Nr   u   파이썬 마을s   ̽ u	   ☆∼☆Ts   ١r$   r#   Fr=   getincrementalencoderr&   r)   resetr+   encoders     r-   test_stateless&Test_IncrementalEncoder.test_statelessR   s    ..w79(IJE	G$/(<dC4	6$/D137E2C8$/r#   c                    [         R                  " S5      " 5       nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  SS5      S5        U R                  UR	                  5       S 5        U R                  UR                  S5      S	5        U R                  UR                  S5      S5        U R                  UR                  S
S5      S5        U R                  UR                  S
S5      S5        g )Njisx0213   æ̀      ær#      ̀T      r$   rj   rm   s     r-   test_stateful%Test_IncrementalEncoder.test_stateful_   s     ..z:<7E1371;?$7E$/1;?137D1;?D137r#   c                    [         R                  " S5      " 5       nU R                  UR                  S5      S5        U R	                  [
        UR                  S5        U R                  UR                  S5      S5        U R	                  [
        UR                  S5        U R                  UR                  5       S 5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R	                  [
        UR                  S5        U R                  UR                  S	S
5      S5        g )Nrr   ru   r#   u   ģu   ̀ært   rv   rx   r$   Trw   )r=   rk   r&   r)   r@   UnicodeEncodeErrorrl   rm   s     r-   test_stateful_keep_buffer1Test_IncrementalEncoder.test_stateful_keep_bufferr   s    ..z:<137,gnnhG7E,gnnhG$/1;?137,gnnhGD1;?r#   c                    [         R                  " S5      " 5       nUR                  5       nU R                  UR	                  S5      S5        UR                  U5        U R                  UR	                  S5      S5        U R                  UR	                  S5      S5        UR                  5       nU R                  UR	                  S5      S5        UR                  U5        U R                  UR	                  S5      S5        g )Nr   rs   rt   ru   r#   rv   )r=   rk   getstater&   r)   setstate)r+   rn   initial_statepartial_states       r-   $test_state_methods_with_buffer_state<Test_IncrementalEncoder.test_state_methods_with_buffer_state~   s    ..~>@((*7E'7E137((*1;?'1;?r#   c                    [         R                  " S5      " 5       nU R                  UR                  S5      S5        UR	                  5       nU R                  UR                  S5      S5        UR	                  5       nU R                  UR                  S5      S5        UR                  U5        U R                  UR                  S5      S5        UR                  U5        U R                  UR                  S5      S5        g )Nr   z   z   あs   $B$"s   (Bzs   $")r=   rk   r&   r)   r   r   )r+   rn   en_statejp_states       r-   (test_state_methods_with_non_buffer_state@Test_IncrementalEncoder.test_state_methods_with_non_buffer_state   s    ..|<>,d3##%13JK##%,.>?"1;?",d3r#   c                    [         R                  " S5      " 5       nU R                  UR                  5       S5        UR	                  S5        U R                  UR                  5       [
        R                  SS5      5        UR	                  S5        U R                  UR                  5       S5        [         R                  " S5      " 5       nU R                  UR                  5       [
        R                  SS5      5        UR	                  S	5        U R                  UR                  5       [
        R                  S
S5      5        g )Nr   r   ru   s   æ        littlerv   r   s	    BB      r   s	    B      )r=   rk   r&   r   r)   int
from_bytes)r+   buffer_state_encodernon_buffer_state_encoders      r-   $test_getstate_returns_expected_value<Test_IncrementalEncoder.test_getstate_returns_expected_value   s     &;;NKM-668!<##H--668A &	'	( 	##H--668!< $*#?#?#M#O 1::<A%'	(
 	!''11::<A%'	(r#   c                     [         R                  " S5      " 5       n[        R                  SS5      nU R	                  [
        UR                  U5        g )Nr   s   	                r   )r=   rk   r   r   r@   UnicodeErrorr   )r+   rn   pending_size_nines      r-   "test_setstate_validates_input_size:Test_IncrementalEncoder.test_setstate_validates_input_size   sI    ..x8:NN0 	
 	,(8(8:KLr#   c                     [         R                  " S5      " 5       n[        R                  SS5      nU R	                  [
        UR                  U5        g )Nr   s
           r   )r=   rk   r   r   r@   UnicodeDecodeErrorr   )r+   rn   invalid_utf8s      r-   #test_setstate_validates_input_bytes;Test_IncrementalEncoder.test_setstate_validates_input_bytes   sH    ..x8:~~0 	
 	,g.>.>Mr#   c                     [         R                  " S5      " S5      nU R                  UR                  S5      S5        U R                  UR                  S5      S5        g )Nz	shift-jisbackslashreplace   ÿs   \xff
   
)r=   rk   r&   r)   rm   s     r-   test_issue5640&Test_IncrementalEncoder.test_issue5640   sJ    ..{;<NO/:-u5r#   c                     [        S5      nSnSn[        R                  " S5      X#4-  nUR                  U5      nU R	                  US5        g )N	_testcapir   uE   Python の開発は、1990 年ごろから開始されています。a5  
            import codecs
            encoding = %r
            text = %r
            encoder = codecs.getincrementalencoder(encoding)()
            text2 = encoder.encode(text).decode(encoding)
            if text2 != text:
                raise ValueError(f"encoding issue: {text2!a} != {text!a}")
        r   )r   textwrapdedentrun_in_subinterpr&   )r+   r   encodingtextrO   ress         r-   test_subinterp&Test_IncrementalEncoder.test_subinterp   sZ     "+.	V      ((.a r#   r`   N)ra   rb   rc   rd   ro   ry   r}   r   r   r   r   r   r   r   cpython_onlyr   re   r`   r#   r-   rg   rg   P   sN    08&
@@4"(@MN6
 ! !r#   rg   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
Test_IncrementalDecoder   c                     [         R                  " S5      " 5       nU R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        g )Nr   s   ̽u   파이s    u
   썬 마을r#   r$   )r=   getincrementaldecoderr&   r'   r+   decoders     r-   	test_dbcs!Test_IncrementalDecoder.test_dbcs   sh    ..w79(?@'	)(@A.	0,b1r#   c                    [         R                  " S5      " 5       nU R                  UR                  S5      S5        U R	                  [
        UR                  SS5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R	                  [
        UR                  SS5        U R                  UR                  S5      S5        g )	Nr   s   u   파r#   T   u   이s   ̽)r=   r   r&   r'   r@   r   r   s     r-   test_dbcs_keep_buffer-Test_IncrementalDecoder.test_dbcs_keep_buffer   s    ..w798(C,gnnc4H0(;8(C,gnn%t	-0(;r#   c                 *   [         R                  " S5      " 5       nSnU R                  UR                  US-   5      S5        U R                  UR                  SS5      S5        U R                  UR                  US-   5      S5        U R                  UR                  S5      S	5        U R                  UR                  S
5      S	5        U R                  UR                  SS5      S	5        U R                  UR	                  5       S 5        U R                  UR                  S5      S5        U R                  UR                  US-   5      S5        U R                  [        UR                  SS5        U R                  UR                  S5      S	5        g )Nz
iso2022-jp      (r$      BT   $s   B@$u   世s   @$@s   @$z@$r#   )r=   r   r&   r'   rl   r@   r   )r+   r   ESCs      r-   test_iso2022$Test_IncrementalDecoder.test_iso2022   s:   ..|<>d
3R8d3R8d
3R8/:/:d3X>$/.5d
3R8,gnnc4H/:r#   c                     [          H?  n[        R                  " U5      " 5       nU R                  [        UR
                  S5        MA     g r\   )r%   r=   r   r@   r]   r'   )r+   r,   r   s      r-   r^   +Test_IncrementalDecoder.test_decode_unicode  s5    #C22379Gi< $r#   c                    [         R                  " S5      " 5       nU R                  UR                  S5      S5        UR	                  5       u  p#U R                  US5        U R                  UR                  S5      S5        UR	                  5       u  pEU R                  US5        U R                  UR                  S5      S5        UR	                  5       u  pcU R                  US5        UR                  XE45        U R                  UR                  S5      S5        UR	                  5       u  psU R                  US5        UR                  S5        U R                  UR	                  5       S5        g )	Nr   s   u   うr#      r$      )s   abci[)r=   r   r&   r'   r   r   )r+   r   pending1_pending2flags2pending3pending4s           r-   test_state_methods*Test_IncrementalDecoder.test_state_methods  s>   ..x8: 	4h?&&(3' 	0"5"++-7+ 	0(;&&(3' 	(+,0(;&&(3' 	,-))+-@Ar#   c                 B   [         R                  " S5      " 5       nU R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [        UR                  S5        U R                  [
        UR                  S5        g )Nr   {   )invalidr   )s   1234r   )s	   123456789r   )r=   r   r@   r]   r   r   r   s     r-   test_setstate_validates_input5Test_IncrementalDecoder.test_setstate_validates_input.  sx    ..x8:)W%5%5s;)W%5%5~F)W%5%57KL,g.>.>@QRr#   r`   N)ra   rb   rc   rd   r   r   r   r^   r   r   re   r`   r#   r-   r   r      s"    2	<;=B8Sr#   r   c                       \ rS rSrS rSrg)Test_StreamReaderi5  c                     [        [        S5      n UR                  S5        UR                  5         [        R                   " [        SS9n U R                  [        UR                  S5        UR                  5          [        R                  " [        5        g ! UR                  5         f = f! UR                  5         f = f! [        R                  " [        5        f = f)Nwb   r   )r      )
openr   writecloser=   r@   r   readr   rN   )r+   fs     r-   test_bug1728403!Test_StreamReader.test_bug17284036  s    	%VT"A 	FW5A!!"4affa@	V$ 	
 	V$s9   C B )C !B0 /C B--C 0CC C!r`   N)ra   rb   rc   rd   r   re   r`   r#   r-   r   r   5  s    %r#   r   c                   &    \ rS rSrS rS rS rSrg)Test_StreamWriteriE  c                    [         R                  " 5       n[        R                  " S5      " U5      nUR	                  S5        U R                  UR                  5       S5        UR	                  S5        U R                  UR                  5       S5        UR	                  S5        U R                  UR                  5       S5        g )Nr	   123   123   𒍅s   12379   가¬s   123797501ioBytesIOr=   	getwriterr   r&   getvaluer+   scs      r-   test_gb18030Test_StreamWriter.test_gb18030F  s    ::<Y'*	v.	'78	4	6r#   c                    [         R                  " 5       n[        R                  " S5      " U5      nUR	                  S5        U R                  UR                  5       S5        UR	                  S5        U R                  UR                  5       S5        UR	                  S5        U R                  UR                  5       S5        g )Nzutf-8r   r   r   s   123𒍅r   s   123𒍅가¬r   r   s      r-   
test_utf_8Test_StreamWriter.test_utf_8Q  s    ::<W%a(	v.	'=>	$	%r#   c                     [         R                  " 5       n[        R                  " S5      " U5      nUR	                  S5        U R                  UR                  5       S5        g )Nr	   r1   r2   r   )r+   r   wrs      r-   test_streamwriter_strwrite,Test_StreamWriter.test_streamwriter_strwrite]  sD    JJLi(+
w/r#   r`   N)ra   rb   rc   rd   r   r   r   re   r`   r#   r-   r   r   E  s    	6
%0r#   r   c                   P    \ rS rSrS rS r\R                  " S5      S 5       rSr	g)Test_ISO2022ic  c                 N    SnSnU R                  UR                  S5      U5        g )Ns   (B:hu4:unit.ANi de familleu   :hu4:unité de familleziso2022-jp-2)r&   r'   )r+   
iso2022jp2unis      r-   test_g2Test_ISO2022.test_g2d  s'    >
(**>:C@r#   c                     U R                  SSR                  S5      5        S H5  nSR                  U5      nU R                  [        S U 5       5      5        M7     g )N      ­ziso-2022-jp-2)ziso-2022-jp-2004ziso-2022-jp-3u   㐆c              3   *   #    U  H	  oS :  v   M     g7f)   Nr`   ).0xs     r-   	<genexpr>2Test_ISO2022.test_iso2022_jp_g0.<locals>.<genexpr>m  s      51aT1s   )assertNotInr)   assertFalseany)r+   r   es      r-   test_iso2022_jp_g0Test_ISO2022.test_iso2022_jp_g0i  sO    "3":":?"KL=H)AS 51 556 >r#   cpuc                 `    [        SS5       H  n[        U5      R                  SS5        M      g )Ni   i   iso_2022_jpignore)rangechrr)   )r+   r  s     r-   test_bug1572832Test_ISO2022.test_bug1572832o  s%    w)AFMM-2 *r#   r`   N)
ra   rb   rc   rd   r  r  r   requires_resourcer  re   r`   r#   r-   r   r   c  s,    A
7 u%3 &3r#   r   c                   @    \ rS rSrSrSrSrSr\\-   rS r	S r
S rS	rg
)TestStatefuliu  u   世世ziso-2022-jps   $B@$@$s   (Bc                     U R                  U R                  R                  U R                  5      U R                  5        g rS   )r&   r   r)   r   expected_resetrX   s    r-   test_encodeTestStateful.test_encode|  s+    ))$--8$:M:MNr#   c                 d  ^ [         R                  " U R                  5      " 5       mSR                  U4S jU R                   5       5      nU R                  XR                  5        U R                  TR                  SSS9U R                  5        U R                  TR                  SSS9S5        g )Nr#   c              3   F   >#    U  H  nTR                  U5      v   M     g 7frS   r)   )r
  charrn   s     r-   r  7TestStateful.test_incrementalencoder.<locals>.<genexpr>  s$      #! NN4  !s   !r$   Tfinal)	r=   rk   r   joinr   r&   expectedr)   rl   )r+   outputrn   s     @r-   test_incrementalencoder$TestStateful.test_incrementalencoder  s    ..t}}=? #		# # 	/$7D$7=r#   c                 V  ^^ [         R                  " U R                  5      " 5       m[        U R                  5      S-
  mSR                  UU4S j[        U R                  5       5       5      nU R                  XR                  5        U R                  TR                  SSS9S5        g )Nr7   r#   c              3   P   >#    U  H  u  pTR                  X!T:H  5      v   M     g 7frS   r%  )r
  indexr&  rn   
last_indexs      r-   r  =TestStateful.test_incrementalencoder_final.<locals>.<genexpr>  s+      53 NN4*!4553s   #&r$   Tr(  )
r=   rk   r   lenr   r*  	enumerater&   r   r)   )r+   r,  rn   r2  s     @@r-   test_incrementalencoder_final*TestStateful.test_incrementalencoder_final  s    ..t}}=?^a'
 5(35 5 	!4!45$7=r#   r`   N)ra   rb   rc   rd   r   r   r+  rl   r   r!  r-  r6  re   r`   r#   r-   r  r  u  s0    DHHE%NO>>r#   r  c                   .    \ rS rSrSrSrSrSr\\-   rSr	g)TestHZStatefuli  u   聊聊r
   s   ~{ADADs   ~}r`   N)
ra   rb   rc   rd   r   r   r+  rl   r   re   r`   r#   r-   r9  r9    s     DHHE%Nr#   r9  __main__)rU   r=   r   r8   r   unittesttestr   test.supportr   test.support.os_helperr   test.support.import_helperr   r%   TestCaser    rg   r   r   r   r   r  r9  ra   mainr`   r#   r-   <module>rB     s      	 
    " ) 4 ",E(++ ,E\U!h// U!nLSh// LS\%)) % 0)) 0<38$$ 3$>8$$ >8&\ & zMMO r#   