
    0hhj                       S r 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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Jr  SSKJr   SSKrS rS r " S S	\5      r " S
 S\5      r " S S5      r " S S5      r " S S\R:                  \R<                  \R>                  5      r  " S S\R>                  5      r!\"S:X  a  \RF                  " 5         gg! \ a    Sr Nf = f)zTest script for the Unicode implementation.

Written by Marc-Andre Lemburg (mal@lemburg.com).

(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.

    N)warnings_helper)supportstring_tests)assert_python_failurec                 X    SS jnSS jnSS jnSS jnU S:X  a  X!S S 4$ U S:X  a  X4S S 4$ g )Nc                     gN*    inputerrorss     6/opt/python-3.13.8/usr/lib/python3.13/test/test_str.pydecode1 search_function.<locals>.decode1           c                     gr	   r   r   s     r   encode1 search_function.<locals>.encode1!   r   r   c                     gN)r
   r
   r   r   s     r   encode2 search_function.<locals>.encode2#       r   c                     gr   r   r   s     r   decode2 search_function.<locals>.decode2%   r   r   test.unicode1test.unicode2)strictr   )encodingr   r   r   r   s        r   search_functionr#      sC     $--	?	"$--r   c                 >    U R                  5       R                  5       $ )z
Try to get a fresh clone of the specified text:
new object with a reference count of 1.

This is a best-effort: latin1 single letters and the empty
string ('') are singletons and cannot be cloned.
)encodedecode)texts    r   duplicate_stringr(   .   s     ;;=!!r   c                       \ rS rSrSrg)StrSubclass8   r   N__name__
__module____qualname____firstlineno____static_attributes__r   r   r   r*   r*   8       r   r*   c                       \ rS rSrSrg)OtherStrSubclass;   r   Nr,   r   r   r   r4   r4   ;   r2   r   r4   c                        \ rS rSrS rS rSrg)WithStr>   c                     Xl         g Nvalueselfr<   s     r   __init__WithStr.__init__?       
r   c                     U R                   $ r:   r;   r>   s    r   __str__WithStr.__str__A       zzr   r;   Nr-   r.   r/   r0   r?   rD   r1   r   r   r   r7   r7   >       r   r7   c                        \ rS rSrS rS rSrg)WithReprD   c                     Xl         g r:   r;   r=   s     r   r?   WithRepr.__init__E   rA   r   c                     U R                   $ r:   r;   rC   s    r   __repr__WithRepr.__repr__G   rF   r   r;   Nr-   r.   r/   r0   r?   rO   r1   r   r   r   rJ   rJ   D   rH   r   rJ   c                     ^  \ rS rSr\rS rS rS rS r	S r
S rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS r\R:                  " \R>                  S:  S5      S 5       r S r!\"RF                  S 5       r$S r%S r&S r'U 4S  jr(U 4S! jr)U 4S" jr*U 4S# jr+\"RX                  " S$5      S% 5       r-U 4S& jr.U 4S' jr/U 4S( jr0S) r1U 4S* jr2S+ r3S, r4S- r5\"RX                  " S$5      S. 5       r6S/ r7S0 r8S1 r9S2 r:S3 r;U 4S4 jr<S5 r=S6 r>\R~                  " \R>                  S7:H  S85      \"RF                  S9 5       5       r@S: rAS; rBS< rCS= rDS> rES? rFS@ rGSA rHSB rISC rJSD rKSE rL\"RF                  \R:                  " \MSFL SG5      SH 5       5       rNSI rOSJ rP\"R                  " SKSLSMSN5      SO 5       rRSP rSSQ rTSR rUSS rVST rWSU rXSV rYSW rZSX r[SY r\SZ r]S[ r^S\ r_S] r`S^ raS_ rbS` rcSa rdSb reSc rfSd rgSe rhSf riSg rj\R:                  " \R>                  S:  =(       d    \kR                  " Sh5      Si:g  Sj5      Sk 5       rm\"RF                  Sl 5       rnSm roSn rpSo rqSp rrSq rsSr rtSs ruSt rvSurwU =rx$ )vStrTestJ   c                     [         R                  " [        5        U R                  [         R                  [        5        g r:   )codecsregisterr#   
addCleanup
unregisterrC   s    r   setUpStrTest.setUpP   s"    ())?;r   c                 .   [        X#5      nU" U6 nU R                  Xa5        U R                  [        U5      [        U5      L 5        XbL aK   " S S[        5      nU" U5      n[        X#5      nU" U6 nU R                  Xa5        U R                  X&L5        g g )Nc                       \ rS rSrS rSrg)%StrTest.checkequalnofix.<locals>.usub]   c                 2    S[         R                  U 5      -  $ )Nzusub(%r))strrO   rC   s    r   rO   .StrTest.checkequalnofix.<locals>.usub.__repr__^   s    %T(:::r   r   Nr-   r.   r/   r0   rO   r1   r   r   r   usubr^   ]   s    ;r   rd   )getattrassertEqual
assertTruetypera   )r>   resultobject
methodnameargsmethod
realresultrd   s           r   checkequalnofixStrTest.checkequalnofixT   s    ,T]
,Z(DL89 ;s ; &\FV0FJZ0OOF45  r   c                 n    U R                  [        U5      [        U5      5        U R                  X5        g r:   )assertIsrh   rf   )r>   actualexpecteds      r   assertTypedEqualStrTest.assertTypedEqualf   s&    d6lDN3*r   c                    U R                  SS5        U R                  SS5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        SS-  5        U R	                  SS5        g )	N   ÿ   ￿z'\Ufffffffe'z'\Uffffffff'z'\U%08x'   z\u0020 )rf   assertRaisesSyntaxErrorevalassertNotEqualrC   s    r   test_literalsStrTest.test_literalsj   so    *<0+t->?+t->?+t]X-EFIs+r   c           
         U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S	5      S
5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        Sn[        SR                  [        [        [        S5      5      5      5      nU R                  X!5        U R                  [        S5      [        S5      5        U R                  [        S5      S5        U R                  [        [        S5      5      S5        U R                  [        [        S5      5      S5        U R                  [        [        [        S5      5      5      [        S5      5        U R                  [        [        S 5      5      S!5        U R                  [        [        [        S 5      5      5      S!5        U R                  [        [        [        S"5      5        g )#Nabc'abc'ab\c'ab\\c'ab\'ab\\'\c'\\c'\'\\'
'\n''\r'	'\t''\x08''"'\'"''"'""'"'a  '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff'    0  𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿   🐍z'\U0001f40d'<abc>   <🐍>z<\U0001f40d>	   byte-repr)rf   asciijoinmapchrrangeru   r*   rJ   r|   	TypeErrorr>   
latin1reprtestreprs      r   
test_asciiStrTest.test_asciis   s   uw/w5v
3uy1th/tg.tg.tg.ti0u|4u|4sY/sY/ 	 S%*!567.BC!"EF	H 	eL1?CeK$67AeHW$56@eH[-A$BC[QXEYZeH^$<=OeH[-H$IJO\)UH\,BCr   c           
         U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S	5      S
5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        Sn[        SR                  [        [        [        S5      5      5      5      nU R                  X!5        U R                  [        S5      [        S5      5        U R                  [        S5      S5        U R                  [        [        S5      5      S5        U R                  [        [        S5      5      S5        U R                  [        [        [        S5      5      5      [        S5      5        U R                  [        [        S 5      5      S 5        U R                  [        [        [        S 5      5      5      [        S 5      5        U R                  [        [        [        S!5      5        g )"Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   u%  '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0¡¢£¤¥¦§¨©ª«¬\xad®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'r   r   r   r   u   '🐍'r   r   r   )rf   reprr   r   r   r   ru   r*   rJ   r|   r   r   s      r   	test_reprStrTest.test_repr   s$   eg.g4fz2ei0dX.dW-dW-dW-dY/el3el3cI.cI. 	 Cs 456.AB !DE	G 	d<0.Ad;u#56@d8G#45w?d8K,@#ABKPWDXYd8N#;<nMd8K,G#HI;WeKfg)T8L+ABr   c                     SR                  5       nU R                  [        U5      S5        U R                  [        U5      S5        U R                  [        U5      S5        U R                  [        [        U5        g )N	   ᄑ∢㌳u   ᄑu   ∢u   ㌳)__iter__rf   nextr|   StopIteration)r>   its     r   test_iteratorsStrTest.test_iterators   s^    !**,b8,b8,b8,-r2r   c                     [        [        S5      5      [        [        S5      5      /nU H1  nU R                  US9   U R                  [        U5        S S S 5        M3     g ! , (       d  f       ME  = f)Nr   u   🚀)cls)rh   itersubTestr|   r   )r>   casesr   s      r   test_iterators_invocation!StrTest.test_iterators_invocation   sU    d5k"Df$67C#&!!)S1 '& &&s   A!!
A0	c           
          / SQnU HE  nU R                  US9   U R                  USR                  [        U5      5      5        S S S 5        MG     g ! , (       d  f       MY  = f)Nr   u   🚀🚀🚀r   )stringr   )r   rf   r   r   )r>   r   cases      r   test_iterationStrTest.test_iteration   sK    =DT*  rwwtDz':; +* **s   +A
A 	c                     / SQnU HL  nU R                  US9   [        U5      n[        U5        U R                  [        [
        U5        S S S 5        MN     g ! , (       d  f       M`  = f)Nr   r   )r   r   tupler|   r   r   )r>   r   r   iterators       r   test_exhausted_iteratorStrTest.test_exhausted_iterator   sP    =D4(:h!!-x@ )( ((s   2A
A'	c                    / SQnU H  nU R                  US9   [        [        R                  S-   5       Hp  n[	        U5      nU R                  US9   SR                  [        R                  " [        R                  " XC5      5      5      nU R                  X%5        S S S 5        Mr     S S S 5        M     g ! , (       d  f       M  = f! , (       d  f       M  = f)Nr   r      )protor   )	r   r   pickleHIGHEST_PROTOCOLr   r   loadsdumpsrf   )r>   r   r   r   r   pickleds         r   test_pickle_iteratorStrTest.test_pickle_iterator   s    =D4("6#:#:Q#>?EdBE2"$''&,,v||B7N*O"P((7 32 @ )(  32 )(s$   :C	AB7	C	7
CC		
C	c                    [         R                  R                  U 5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSSS5        U R                  SSSSS	5        U R                  S
SSSSS5        U R                  SSSSSS	5        U R	                  SSSS5        U R	                  SSSS5        U R	                  SSSS5        U R	                  SSSS5        U R	                  SSSS5        U R	                  SSSS5        U R	                  SSSS5        U R	                  SSSS5        U R	                  SSSS5        U R	                  SSSS5        U R	                  SSSS5        U R	                  SSSS5         " S S[
        5      nU R	                  SU" S5      SS5        g )N   aaacountar   br   i   
   u   Ăaaaaaaaaaau   􀌄aaaaaaaaaau   􀌄ĂĂĂĂĂĂĂĂĂĂ   Ă
aaaaaaaaaa   􀌄u   ĂĂĂĂĂĂĂĂĂĂu   Ăa_a_a_a_a_a_a_a_a_a_a_u   􀌄a_a_a_a_a_a_a_a_a_a_u"   􀌄Ă_Ă_Ă_Ă_Ă_Ă_Ă_Ă_Ă_Ă_   Ă_   aĂ   a􀌄   Ă􀌄c                       \ rS rSrSrg)!StrTest.test_count.<locals>.MyStri
  r   Nr,   r   r   r   MyStrr   
      r   r   )r   StringLikeTest
test_countro   
checkequalra   )r>   r   s     r   r   StrTest.test_count   s   ##..t4Q5Q5Qw5Qw5Qw5Qwb9Qwc:Qwa<Qwa=/#>3WcB8'8L8Wh78Wl;='<@0'4@4gtD97IN8Wi88Wm<='3EF	C 	5<#6r   c                    [         R                  R                  U 5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SS	SS
5        U R                  SS	SS5        U R                  SS	SS5        U R	                  SSSS5        U R	                  SSSSS5        U R	                  SSSSS5        U R                  SSSS5        U R                  SSSSS5        U R                  SSSSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSSS5        U R                  SSSSSS5        U R                  SSSSS5        U R                  SSSSSS5        U R                  SSSSS5        U R                  SSSS5        U R                  [        SR                  5        U R                  [        SR                  S5        U R                  SS SS!5        U R                  SS"SS!5        U R                  SS#SS5        U R                  SS$SS5        U R                  SS$SS
5        U R                  SS%SS
5        U R                  SS&SS'5        U R                  SS(SS'5        U R                  SS)SS*5        U R                  SS$SS+5        U R                  SS$SS,5        U R                  SS%SS-5        g ).Nd   uf   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaĂfindr   r      ȁ   Ġ   Ƞuh   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa􀌄r      􀈄   􂀄r   abcdefghiabcr   	   r   def      тестu   тr   e   тест тест   ес   r      echellor
      ĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂar     􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄a  􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄Ădaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   ĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂ   ĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂa_r     􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄a_  􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄Ă_r   r   r   r   )r   r   	test_findr   ro   r|   r   r   rC   s    r   r  StrTest.test_find  s   ##--d3168D0&(C0&(C0&(C5v|L4flK4flKQ?QBRB 	:vt4:vtQ7Ja;J4.?.B.1E.B/AF/C/>)W\\2)W\\26163?5vsC:FHMIvx8Iv|<NFLA2FDA6E;VYOIvy9Iv}=NF4FGr   c                 |   [         R                  R                  U 5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SS	SS
5        U R                  SS	SS5        U R                  SS	SS5        U R	                  SSSS5        U R	                  SSSS5        U R	                  SSSS5        U R                  SSSS5        U R                  SSSSS5        U R                  SSSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSSS5        U R                  SSSSSS5        U R                  SSSSS5        U R                  SSSSSS5        U R                  SSSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SS SS5        U R                  SS!SS5        U R                  SS!SS
5        U R                  SS"SS
5        U R                  SS#SS$5        U R                  SS%SS$5        U R                  SS&SS'5        U R                  SS!SS(5        U R                  SS!SS)5        U R                  SS"SS*5        g )+Nr   uf   Ăaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarfindr   r   r   r   r   uh   􀌄aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar   r   r   r   r   r      r   r   r   u   еr   r   r   r   r   r   r   r     aĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂr     a􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄  Ă􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄r  r     _aĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂ_a  _a􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄  _Ă􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄   _Ă   Ăa   􀌄a   􀌄Ă)r   r   
test_rfindr   ro   rC   s    r   r  StrTest.test_rfind;  s   ##..t4/'8D07HE07HE07HE3WlK4g|L4g|LQ.'5AR.'2>R2>:w5:wa8Jq9J5.@.C.AF.C/&!QG/&!D/$?/#>3WcB8'8LIw9Iw=NG\B0'4@4gtD97INIw	:Iw>NG5GHr   c                 n   [         R                  R                  U 5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSSS	5        U R	                  [
        SR                  S
5        U R	                  [
        SR                  SS	5        U R	                  [
        SR                  SS5        U R	                  [
        SR                  SS5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R	                  [
        SR                  S5        U R	                  [
        SR                  S5        U R	                  [
        SR                  S5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R	                  [
        SR                  S5        U R	                  [
        SR                  S5        U R	                  [
        SR                  S 5        g )!Nr   r   indexr   r   r   r   r   r   hibabcdefghiab	abcdefghighi   r   r   r  r   r  r  r   r  r   r  r  r   r	  r
  r   r   r   r   )r   r   
test_indexro   r|   
ValueErrorr  r   rC   s    r   r$  StrTest.test_indexd  s   ##..t4Q"=Q%@Q%@Q%C*n&:&:EB*m&9&9E1E*k&7&7%C*k&7&7%D17C@5wD:GXN*y&7&7B*y&7&7F*~&<&<lK2GTB6F;WiP*y&7&7C*y&7&7G*~&<&<>PQr   c                    [         R                  R                  U 5        U R                  SSSS5        U R                  SSSS5        U R                  SSSS5        U R                  S	SSSS	S
5        U R	                  [
        SR                  S5        U R	                  [
        SR                  SS5        U R	                  [
        SR                  SS	S
5        U R	                  [
        SR                  SS	S5        U R	                  [
        SR                  SS	S
5        U R                  S	SSS5        U R                  S	SSS5        U R                  S	SSS5        U R	                  [
        SR                  S5        U R	                  [
        SR                  S5        U R	                  [
        SR                  S5        U R                  S	SSS5        U R                  S	SSS5        U R                  S	SSS5        U R	                  [
        SR                  S5        U R	                  [
        SR                  S5        U R	                  [
        SR                  S 5        g )!Nr  r   rindexr   r   r   r   r   r   r   r  	defghiabcr   r!  r"  r#  r  r   r  r  r   r  r   r  r  r  r  r  r  r  r  r  )r   r   test_rindexro   r|   r%  r(  r   rC   s    r   r*  StrTest.test_rindex|  s   ##//5RB?QEBQEBQE1bI*n&;&;eD*k&8&85!D*k&8&85!RH*k&8&85!QG*k&8&85!RH/3?3XsC8(HM*y&8&8(C*y&8&8,G*~&=&=|L0(DA4hE98YO*y&8&8)D*y&8&8-H*~&=&=?QRr   c                 6   U R                  SSS[        S5      S 05        U R                  SSS[        S5      S [        S5      [        S5      05        U R                  SSS[        S5      S [        S5      [        S5      [        S	5      S
05        U R                  S	SS[        S5      S [        S5      S05        U R                  SSS[        S5      S05        U R                  SSSSS05        U R                  R                  S SS.5      nU R                  SSSU5        U R                  R                  SSS5      nU R                  SSSU5        U R	                  SR                  [        R                  SS5      5      S5        U R	                  SR                  [        R                  SS05      5      S5        U R	                  SR                  [        R                  SS 05      5      S5        U R	                  SR                  [        R                  SS05      5      S5        U R	                  SR                  [        R                  SS05      5      S5        U R	                  S R                  [        R                  S S!S.5      5      S"5        U R	                  S R                  [        R                  S SS.5      5      S#5        U R	                  SR                  [        R                  SS$05      5      S%5        U R	                  SR                  [        R                  SS05      5      S5        U R	                  SR                  [        R                  SS 05      5      S5        U R	                  SR                  [        R                  SS!05      5      S&5        U R	                  S'R                  [        R                  SS(05      5      S)5        S*nS+ H?  n[        R                  X205      nS,U-  nU R                  [        UR
                  U5        MA     U R                  [        U R                  R                  5        U R                  [        U R                  R                  SS-5        U R                  [        U R                  R                  S.S/5        U R                  [        U R                  R                  SS.5        U R                  [        U R                  R                  SS/S.5        U R                  [        U R                  R                  S0S.05        U R                  [        U R                  R                  S1S.05        U R                  [        S2R
                  5        U R                  [        SR
                  SS5        g )3Nbbbcabababc	translater   iiicr   iiiixcxr   xyyxxzxzyyz<i>r   r   z
<i><i><i>cr   xyzdxyzzyabdcdcbddddz[a]Xz[X][]XXXz[XXX]   éu   [é]axb123x123u   xéu   <é>u   [<é>]z[123]u   [aé]u   <€>u	   [<€>é]rz   u
   aé€􏿿z[%s]defgr   r   xy)r   r  )
ro   ord	type2test	maketransrf   r/  ra   r|   r%  r   )r>   tblinvalid_charbeforemappingr'   s         r   test_maketrans_translate StrTest.test_maketrans_translate  s   VY!#h-	/VY!#hc#hCA	CVY!#hc#hC#c(CP	RS)[!#hc#h;	=VUK!#h-	/ 	Y	;!5\	+nn&&T'>?\9k3Gnn&&ueS9Wm[#F 	sC)@A	 Sz)BC	 T{)CD	U|)DE 	"V})EF!	#T7N)OP	!T7O)PQ 	" 	X)GH#	%++CMM63-,HI	 ++CMM64.,IJ	++CMM65/,JK 	",,S]]C;L-MN)	+ "-FmmV$:;GF?Dj$..'B . 	)T^^%=%=>*dnn&>&>vN)T^^%=%=q%H)T^^%=%=uaH)T^^%=%=ueQO*dnn&>&>q	J)T^^%=%=ayI)W%6%67)Y%8%8%Gr   c           	      \   [         R                  R                  U 5        S H  u  pUS-  nUS-  nS Hr  nU R                  X-   /X-   SU5        U R                  X/X-   U-   SU5        U R                  X-   /X-   SUS-  5        U R                  X/XS-  -   U-   SUS-  5        Mt     M     g )Nba   āĀ   𐌁𐌀r   r3  r      𐌂splitr   )r   r   
test_splitr   r>   leftrightdelims       r   rX  StrTest.test_split  s    ##..t4 JKDAIDQJE6 $gu> $u 4guF $guqyB $qy 05 8'5!8M 7 Jr   c           	         [         R                  R                  U 5        S H  u  pUS-  nUS-  nS Hr  nU R                  X-   /X-   SU5        U R                  X/X-   U-   SU5        U R                  X-   /X-   SUS-  5        U R                  X/XS-  -   U-   SUS-  5        Mt     U R                  X-   /X-   SS 5        M     g )N)rR  u   юёrS  rT  r   )r3  u   ыr   rV  rsplitr   )r   r   test_rsplitr   rY  s       r   r`  StrTest.test_rsplit  s    ##//5QKDAIDQJE< $h? $u 4hG $h	C $qy 05 8(E1HN = OOT\N!\8T; Rr   c           	         [         R                  R                  U 5        U R                  SSSS5        S H  u  pUS-  nUS-  nS H{  nU R                  X-   SS4X-   SU5        U R                  XU4X-   U-   SU5        U R                  X-   SS4X-   SUS	-  5        U R                  XS	-  U4XS	-  -   U-   SUS	-  5        M}     M     g )
N)ABCDEFGHr   r   rc  	partition   䈀rQ  r   rU  r   r   )r   r   test_partitionr   rY  s       r   rf  StrTest.test_partition  s    ##2248,j+xPIKDAIDQJE6r2 6 $k5Be 4 $u 4k5Jr2 6 $k519Fqy% 8 $qy 05 8+uqyR 7 Jr   c           	         [         R                  R                  U 5        U R                  SSSS5        S H  u  pUS-  nUS-  nS H{  nU R                  SSX-   4X-   SU5        U R                  XU4X-   U-   SU5        U R                  SSX-   4X-   SUS	-  5        U R                  XS	-  U4XS	-  -   U-   SUS	-  5        M}     M     g )
N)r   r   rc  rc  
rpartitionre  rQ  r   rU  r   r   )r   r   test_rpartitionr   rY  s       r   rj  StrTest.test_rpartition  s    ##33D9,j,QIKDAIDQJE6R 6 $lECe 4 $u 4lEKR 6 $lEAIGqy% 8 $qy 05 8,PQ	S 7 Jr   c           
         [         R                  R                  U 5         " S S5      nU R                  SSS/ SQ5        U R                  SSSS5        U R                  S	SS[         R                  " S
5      5        U R                  SSS/ SQ5        U R                  SSS/ SQ5        U R                  SSSS5        U R                  S	SS[         R                  " S
5      5        U R                  [        SSSSU" S5      /5        U R                  [        SSSSS[        5       /5        U R                  [        SS/ SQ5        U R                  [        SS/ SQ5        g )Nc                        \ rS rSrS rS rSrg)$StrTest.test_join.<locals>.MyWrapperi&  c                     Xl         g r:   sval)r>   rq  s     r   r?   -StrTest.test_join.<locals>.MyWrapper.__init__'  s    $ir   c                     U R                   $ r:   rp  rC   s    r   rD   ,StrTest.test_join.<locals>.MyWrapper.__str__(  s    dii/r   rp  NrG   r   r   r   	MyWrapperrn  &  s    6/r   ru  za b c dr{   r   )r   r   r3  r;  abcdr   zw x y zwxyz12foo3)r   r   r   )rx  ry  r   )r   r   	test_joinro   Sequencecheckraisesr   bytes)r>   ru  s     r   r|  StrTest.test_join#  s0   ##--d3	0 	0
 	YV5IJVR1EFYV\5J5J65RSYV5IJYV5IJVR1EFYV\5J5J65RSC#sIe<L1MNC#sC1IJC;C?r   l        z*needs too much memory on a 64-bit platformc                     [        [        R                  S-  5      S-   nSU-  4U-  nU R                  [        SR
                  U5        g )Ng      ?r   Ar   )intsysmaxsizer|   OverflowErrorr   )r>   sizeseqs      r   test_join_overflowStrTest.test_join_overflow7  sB     3;;#$q(Tzmd"-#6r   c           
         [         R                  R                  U 5        U R                  SSSSSS5        U R	                  [
        SR                  SS5        S	 H  u  pUS
-  nUS
-  nS H  nS Hz  nU R                  X-   X-   SX45        U R                  X-   U-   X-   U-   SX45        U R                  X-   X-   SUS-  U5        U R                  X-   U-   XS-  -   U-   SUS-  U5        M|     M     M     g )Nzone@two!three!zone!two!three!replace!@r   rr
   rQ  r   rU  )r;  u   ău   𐌃r   )r   r   test_replacero   r|   r   r  r   )r>   rZ  r[  r\  repls        r   r  StrTest.test_replace>  s   ##006 	-/?CQTVWX)Y%6%6R@IKDAIDQJE69DOODL$(L)UJOODK%$7$(L5$8$-u< OODL$(L)UQYNOODK%$7$(19$4u$<$-uqy$@ : 7 Jr   c                 N    SnSnU R                  UR                  X5      U5        g )Nr   zabc def)rr   r  )r>   patternr'   s      r   test_replace_idStrTest.test_replace_idU  s#    dll74d;r   c                    SnSnU R                  [        U5      [        U5      5        U R                  [        U5      [        U5      5        U R                  [        U5      [        US-  5      5        U R                  [        U5      [        US-  5      5        U R                  [        U5      [        US-  5      5        U R                  [        U5      [        SU-  5      5        U R                  [        U5      [        US-  5      5         " S S[        5      nU" S	5      nU R                  [        U5      [        U5      5        U R                  [        U5      [        US-  5      5        U R                  [        U5      [        US-  5      5        U R                  [        U5      [        US-  5      5        U R                  [        U5      [        SU-  5      5        U R                  [        U5      [        US-  5      5        g )
Nz123abc1@z456zyx-+r   r   r   c                       \ rS rSrSrg)1StrTest.test_repeat_id_preserving.<locals>.SubStrif  r   Nr,   r   r   r   SubStrr  f  r   r   r  zqwerty())rf   idr   ra   )r>   r   r   r  ss        r   test_repeat_id_preserving!StrTest.test_repeat_id_preserving[  s   A1&BqE2a5)BqE2a"f:.BqE2a!e9-A1q5	*A1q5	*BqE2a!e9-	S 	 :A1&BqE2a"f:.BqE2a!e9-BqE2a!e9-BqE2a!e9-BqE2a!e9-r   c                 d   [         R                  " 5          [        R                  " S[        5        U R                  SS:H  S5        U R                  SS:g  S5        U R                  S[        S5      :H  S5        U R                  S[        S5      :g  S5        S S S 5        g ! , (       d  f       g = f)Nignorer      abcFT)r   check_warningswarningssimplefilterBytesWarningrf   	bytearrayrC   s    r   test_bytes_comparisonStrTest.test_bytes_comparisonq  s    ++-!!(L9Uf_e4Uf_d3Ui&77?Ui&77> .--s   BB!!
B/c                    ^ ^^ T R                  SS5        T R                  SS:  5        T R                  SS:  5         T R                  SS:  5        g )Nr   rv  u   u   )rf   rg   )r>   
test_fixup
test_lecmps   `@@r   test_comparisonStrTest.test_comparisony  sJ    &''f 	78r   c                 8  > [         TU ]  5         U R                  SSS5        U R                  SR	                  5       5        U R                  SR	                  5       5        U R                  SR	                  5       5        U R                  SR	                  5       5        U R                  SR	                  5       5        U R                  S	R	                  5       5        U R                  S
R	                  5       5        U R                  SR	                  5       5        g )NF   ῼislower   Ⅷ   ⅷ   𐐁   𐐧   𐐩   𐑎r      👯)supertest_islowerro   assertFalser  rg   r>   	__class__s    r   r  StrTest.test_islower  s    UHi8))+,((*+--/0--/0,,./,,./--/0--/0r   c                 8  > [         TU ]  5         U R                  SSS5        U R                  SR	                  5       5        U R                  SR	                  5       5        U R                  SR	                  5       5        U R                  SR	                  5       5        U R                  SR	                  5       5        U R                  S	R	                  5       5        U R                  S
R	                  5       5        U R                  SR	                  5       5        g )NFr  isupperr  r  r  r  r  r  r   r  )r  test_isupperro   rg   r  r  r  s    r   r  StrTest.test_isupper  s    UHi8((*+))+,,,./,,./--/0--/0--/0--/0r   c                 Z  > [         TU ]  5         U R                  SSS5        U R                  SSS5        U R                  SR	                  5       5        U R                  SR	                  5       5        S H2  nU R                  UR	                  5       SR                  U5      5        M4     g )	NTr  istitleu   Greek ῼitlecases ...u   𐐁𐐩u   𐐧𐑎)r  r  r   r  z{!a} is not title)r  test_istitlero   rg   r  r  formatr>   chr  s     r   r  StrTest.test_istitle  s    T8Y7T#>	J 	.6689.6689JBRZZ\+>+E+Eb+IJ Kr   c                   > [         TU ]  5         U R                  SSS5        U R                  SSS5        U R                  SSS5        S H2  nU R                  UR	                  5       SR                  U5      5        M4     g )	NTu    isspaceu    Fu   —r  r  r  r  r   r  z{!a} is not space.)r  test_isspacero   r  r  r  r  s     r   r  StrTest.test_isspace  sr    T8Y7T8Y7UHi8/BRZZ\+?+F+Fr+JK/r   cpuc                    [        [        R                  S-   5       Hi  n[        U5      n[        R
                  " U5      n[        R                  " U5      nU R                  UR                  5       US;   =(       d    US:H  5        Mk     g )Nr   )WSBSZs)	r   r  
maxunicoder   unicodedatabidirectionalcategoryrf   r  )r>   	codepointcharr  r  s        r   test_isspace_invariantStrTest.test_isspace_invariant  so    s~~12Iy>D'55d;M"++D1HT\\^+/?? 2!)T!14	 3r   c                    > [         TU ]  5         S H2  nU R                  UR                  5       SR	                  U5      5        M4     g )N)r  r  r  r     𝟶   𑁦   𐒠   🄇z{!a} is alnum.)r  test_isalnumrg   isalnumr  r  s     r   r  StrTest.test_isalnum  s<    KBOOBJJL*:*A*A"*EFKr   c                   > [         TU ]  5         U R                  SSS5        U R                  SR	                  5       5        U R                  SR	                  5       5        U R                  SR	                  5       5        U R                  SR	                  5       5        U R                  SR	                  5       5        U R                  S	R	                  5       5        g )
NTr  isalphar  r  r  r  r   r  )r  test_isalpharo   rg   r  r  r  s    r   r  StrTest.test_isalpha  s    T8Y7,,./,,./,,./,,./--/0--/0r   c                    > [         TU ]  5         U R                  SR                  5       5        U R                  SR                  5       5        g )N   €   􏿿)r  test_isasciir  isasciir  s    r   r  StrTest.test_isascii  s<    ))+,--/0r   c                 D   U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS	S5        U R                  SS
S5        U R                  SSS5        U R                  [        SSS5        S H2  nU R                  UR	                  5       SR                  U5      5        M4     S H2  nU R                  UR	                  5       SR                  U5      5        M4     g )NFr   	isdecimalr   T0   ①   ¼   ٠
01234567890123456789ar   r
   )r  r  r  r  r   r     𑁥r  z{!a} is not decimal.)r  r  r  z{!a} is decimal.)ro   r~  r   r  r  r  rg   r>   r  s     r   test_isdecimalStrTest.test_isdecimal	  s   UB4UC5T34UHk:UFK8T8[9T<=UM;?E;;KBR\\^-C-J-J2-NOK =BOOBLLN,>,E,Eb,IJ =r   c                 t  > [         TU ]  5         U R                  SSS5        U R                  SSS5        U R                  SSS5        S H2  nU R                  UR	                  5       SR                  U5      5        M4     S	 H2  nU R                  UR	                  5       S
R                  U5      5        M4     g )NTr  isdigitFr  r  )r  r  r  r  r   r  r  z{!a} is not a digit.)r  r  r  r  z{!a} is a digit.)r  test_isdigitro   r  r  r  rg   r  s     r   r  StrTest.test_isdigit  s    T8Y7UFI6T8Y7=BRZZ\+A+H+H+LM= KBOOBJJL*<*C*CB*GH Kr   c                 V   U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SSS5        U R                  SS	S5        U R                  SS
S5        U R                  SSS5        U R                  [        SR                  S5        S H2  nU R	                  UR                  5       SR                  U5      5        M4     S H2  nU R                  UR                  5       SR                  U5      5        M4     g )NFr   	isnumericr   Tr  r  r  r  r  r  r   r
   r  z{!a} is not numeric.)r  r  r  r  r  z{!a} is numeric.)ro   r|   r   r   r  r  rg   r  s     r   test_isnumericStrTest.test_isnumeric'  s   UB4UC5T34T8[9T6;7T8[9T<=UM;?)U__b9/BR\\^-C-J-J2-NO//BOOBLLN,>,E,Eb,IJ/r   c                    U R                  SR                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        U R                  S	R                  5       5        U R                  S
R                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        g )Nr   Z_b0bcb_   µu   𝔘𝔫𝔦𝔠𝔬𝔡𝔢r{   [   ©r  )rg   isidentifierr  rC   s    r   test_isidentifierStrTest.test_isidentifier:  s   ((*+((*+((*+))+,))+,))+,))+,6CCEF))+,))+,**,-))+,r   c                 2   U R                  SR                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        U R                  SR                  5       5        U R                  S	R                  5       5        g )
Nr   r{   abcdefgzabcdefg
   ʹ   ͸   r  u   󠀠)rg   isprintabler  rC   s    r   test_isprintableStrTest.test_isprintableI  s    ())*	--/00023,,./--/0--/000231134r   c                     [        [        R                  S-   5       HV  n[        U5      n[        R
                  " U5      nU R                  UR                  5       US   S;  =(       d    US:H  5        MX     g )Nr   r   )Cr  r{   )r   r  r  r   r  r  rf   r  )r>   r  r  r  s       r   test_isprintable_invariant"StrTest.test_isprintable_invariantX  sd    s~~12Iy>D"++D1HT--/%a[
: , $- 3r   c           	         S H`  nU R                  UR                  5       5        U R                  UR                  5       5        U R                  UR	                  5       5        Mb     S H`  nU R                  UR                  5       5        U R                  UR                  5       5        U R                  UR	                  5       5        Mb     S H<  n[        [        U5      nS H#  nU R                  U" U5      U< SU< S35        M%     M>     S H<  n[        [        U5      nS H#  nU R                  U" U5      U< SU< S35        M%     M>     g )	N)   ab   ab	   aba	   aba)u   ABu   ABu	   ABAu	   ABA)r  r  r  )r           .z() is False)r  r  r  r  r  r   r  r  )r  r   r!  r"  r  r  r  r  )rg   r  r  r  r  re   ra   )r>   r  	meth_namemeths       r   test_surrogatesStrTest.test_surrogatesa  s	   8AOOAIIK(QYY[)QYY[)	8
8AQYY[)OOAIIK(OOAIIK(	8 ;I3	*DI  a9*MN J ;
9I 3	*D<   a9*MN<	9r   c                    [         R                  R                  U 5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  S	R	                  5       S
5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        g )Nr     𐑏   𐐧𐐧   𐑏𐑏   𐐧𐑏
   X𐐧x𐑏u
   x𐑏x𐑏   ﬁ   İ   i̇   Σ   σ   ͅΣu   ͅσ   AͅΣu   aͅς   AͅΣau   aͅσa   AΣͅu   aςͅ   Σͅ u   σͅ    򏿾r  )r   r   
test_lowerrf   lowerrC   s    r   r9  StrTest.test_lower|  s   ##..t4++-|</557/	1/557/	117791	3.)>:)84--/@..0/B)//13CD..0/B..0/B..0/B++-|<)84r   c                    U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  S	R                  5       S
5        U R                  SR                  5       S5        g )Nr  hELlo   ßssr.  fir1  r2  r4  u   aισr	  u   μ)rf   casefoldrC   s    r   test_casefoldStrTest.test_casefold  s    ))+W5))+W5$/)40**,h7113_E**,h7r   c                    [         R                  R                  U 5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S	5        U R                  S
R	                  5       S
5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        g )Nr)  r  r+  r*  r,  r-  u
   X𐐧X𐐧r.  FIr/  r1  r>  SS   ῒ   Ϊ̀r8  r  r  )r   r   
test_upperrf   upperrC   s    r   rI  StrTest.test_upper  s(   ##..t4++-|</557/	1/557/	117791	3-)84)84t,)+?@++-|<)84r   c                    [         R                  R                  U 5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S	5        S
nU R                  SR	                  5       U5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        g )Nr)  r  r+  r,     𐑏𐐧r-  u
   X𐑏x𐑏u   hİu   Hi̇u	   Ϊ̀i̇u   ῒİu   ﬁnnishFinnishr4  u   Aͅς)r   r   test_capitalizerf   
capitalize)r>   exps     r   rO  StrTest.test_capitalize  s   ##33D9002LA/::</	1/::</	1/::</	11<<>1	3--/A.224c:..0)<335Gr   c                 b  > [         TU ]  5         U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S	5        U R                  S
R                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        g )Nr)  r  r+  r,  u   𐑏𐑏 𐑏𐑏u   𐐧𐑏 𐐧𐑏u   𐑏𐐧 𐑏𐐧u   X𐐧x𐑏 X𐐧x𐑏u   X𐑏x𐑏 X𐑏x𐑏u   ﬁNNISHrN  u	   AΣ ᾡxyu	   Aς ᾩxyu   AΣAu   Aσa)r  
test_titlerf   titler  s    r   rT  StrTest.test_title  s	   ++-|</557/	1DJJLD	FDJJLD	FDJJLD	FHNNPH	J))+Y7+1135GH))+Z8r   c                    [         R                  R                  U 5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  S	R	                  5       S
5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        U R                  SR	                  5       S5        g )Nr)  r  r+  r*  r,  rM  r-  u
   x𐑏X𐐧r.  rE  r/  r0  r1  r2  r3  u   Ισr4  u   aΙςr5  u   aΙσAr6  u   aςΙr7  u   σΙ r>  rF  rG  rH  )r   r   test_swapcaserf   swapcaserC   s    r   rX  StrTest.test_swapcase  s   ##11$7..0,?..0,?/88:/	1/88:/	1/88:/	11::<1	3)40**,n=**,h7002NC113_E)2246FG113_E113_E113_E**,h7$/**,.BCr   c                    [         R                  R                  U 5        U R                  SR	                  SS5      S5        U R                  SR	                  SS5      S5        U R                  SR	                  SS5      S5        g )	Nr4  r   r  u   x􏿿r   u	   􏿿x􏿿r   u   􏿿x􏿿􏿿)r   r   test_centerrf   centerrC   s    r   r\  StrTest.test_center  sp    ##//5A|4&	(A|40	2A|4:	<r   izrequires 32-bit systemc                     Sn SU-  n U R                  [        WR                  5        Ag ! [          a    U R                  SUS-  -  5         NFf = f! Af = f)NiVUU   üz$no enough memory (%.0f MiB required)i   )MemoryErrorskipTestr|   r  rJ  )r>   r  r  s      r   test_case_operation_overflow$StrTest.test_case_operation_overflow  sc     	StA	mQWW5  	SMM@D5LQR	S
 s   ,  A !AAAc                    U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS	5        U R                  SS
5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  [        SR                  5        S He  nUS-  nS HW  nU R                  X!5        U R                  X!U-   5        U R                  US-  U5        U R                  US-  XS-  -   5        MY     Mg     g )Nr   abdbbdabbdababdbabdb)r   r   N)r   Nr   )r4  r   y)r4  r   Nrv  abcxxxxabr   )r   Nrm  r    z abczabc asdfasd)r      Āu   𐌀r   rU  r   )assertInassertNotInr|   r   __contains__)r>   fillr\  s      r   test_containsStrTest.test_contains  s   c6"c6"c7#c6"e$c6"c<(c<(c<(c<(k*l++dF#dE"dM*b% b"b% u%dG$dG$c7#ff%'$)U%7%781DAID6  -eE\2  D1eai	)9:	 7 2r   c                 0   SR                  5         SR                  5         SR                  5         SR                  5         SR	                  5         SR                  5         SR                  SS5        SR                  SS5        SR                  SS5        g )Nu   𐀀􀀀   􀀀r      𐀀)	r:  rA  rJ  rP  rU  rY  r]  ljustrjustrC   s    r   test_issue18183StrTest.test_issue18183&  sz    $$&'')$$&))+$$&'')A|,1l+1l+r   c                 5   U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S	5        U R                  S
R                  5       S5        U R                  SR                  5       S5        SS KnU R                  SR                  S5      S5        U R                  SR                  [        SS95      S5        U R                  SR                  S5      S5        UR                  " SSS5      nU R                  SR                  U5      S5         " S S5      n " S S5      n " S S 5      n " S! S"5      n " S# S$5      n " S% S&UR                  5      n " S' S([
        5      n	 " S) S*5      n
 " S+ S,5      nU R                  SR                  5       S5        U R                  S-R                  5       S-5        U R                  S.R                  S-5      S-5        U R                  S/R                  S-5      S-5        U R                  S0R                  S-5      S15        U R                  S2R                  S-5      S35        U R                  S4R                  S-5      S55        U R                  S6R                  S7S-5      S-5        U R                  S8R                  S7S-5      S15        U R                  S9R                  S7S-5      S35        U R                  S:R                  S7S-5      S55        U R                  S.R                  S;5      S<5        U R                  S=R                  S;S-5      S>5        U R                  S?R                  S;S-5      S@5        U R                  SAR                  5       SB5        U R                  SCR                  5       SD5        U R                  SER                  5       SF5        U R                  SGR                  5       SH5        U R                  SIR                  SJ5      SK5        U R                  SLR                  5       SM5        U R                  SNR                  5       SO5        U R                  SPR                  5       SQ5        U R                  SRR                  SSST05      ST5        U R                  SUR                  SVST05      ST5        U R                  SWR                  SXSY05      SZ5        U R                  S[R                  U" S\5      S]9S^5        U R                  S_R                  U" S`5      U" S\5      5      Sa5        U R                  SbR                  U" U" S-5      5      5      S-5        U R                  ScR                  S-Sd/5      S-5        U R                  SeR                  S-Sd/5      Sd5        U R                  SfR                  S-Sd//5      Sd5        U R                  SgR                  S-U" Sd5      //5      Sd5        U R                  ShR                  S-5      S-5        U R                  ShR                  S5      S5        U R                  ShR                  Si5      S-5        U R                  SjR                  Si5      S5        U R                  SkR                  S-5      S-5        U R                  SlR                  S-5      S-5        U R                  SmR                  S-5      S5        U R                  SnR                  S-5      So5        U R                  SpR                  Sq5      Sq5        U R                  SrR                  Sq5      Sq5        U R                  SsR                  Sq5      Sq5        U R                  StR                  Sq5      Su5        U R                  SvR                  Sq5      Sw5        U R                  SxR                  Sq5      Sy5        U R                  SzR                  Sq5      Sy5        U R                  S{R                  Sq5      S|5        U R                  S}R                  Sq5      S~5        U R                  SR                  Sq5      S5        U R                  SR                  Sq5      S5        U R                  SR                  Sq5      S5        U R                  SR                  Sq5      S5        U R                  SR                  Sq5      Sq5        U R                  SR                  Sq5      S5        U R                  SR                  Sq5      S5        U R                  SR                  Sq5      S5        U R                  SR                  Sq5      S5        U R                  SR                  S5      SSXS-  -   5        U R                  SR                  S5      SXS-  5        U R                  SR                  S5      SXS-  5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  SY5      S5        U R                  SR                  SY5      S5        U R                  SR                  SY5      S5        U R                  SR                  SY5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  U" 5       5      S-5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  U" S5      5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  U" S5      5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  U" S5      5      S5        U R                  SR                  U" S5      5      S5        U R                  S.R                  0 5      SF5        U R                  S.R                  / 5      S5        U R                  S.R                  S7/5      S5        U R                  SR                  U" S5      5      S5        U R                  SR                  U" S5      5      S5        U R                  [        SR                  U" S5      5        U R                  [        SR                  U" S5      5        U R                  [        SR                  U" S5      5        U R                  SR                  U" SSSS95      S5        U R                  S.R                  U	" S`5      5      S^5        U R                  S/R                  S5      S5        U R                  SR                  SS5      S5        U R                  SR                  SS5      S5        U R                  SR                  SSS9S5        U R                  SR                  SS`SS9S5        U R                  SR                  SSSS9S5        U R                  [        SBR                  5        U R                  [        SDR                  5        U R                  [        SR                  5        U R                  [        SR                  5        U R                  [        SR                  5        U R                  [        SR                  5        U R                  [        S.R                  5        U R                  [        S6R                  S-5        U R                  [        SHR                  5        U R                  [        SOR                  5        U R                  [        SR                  5        U R                  [        SR                  5        U R                  [        SR                  5        U R                  [        SR                  S5        U R                  [        SR                  5        U R                  [        SR                  / 5        U R                  [        SR                  5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  SYS9  U R                  [        SR                  SY5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  5        U R                  [        SR                  5        U R                  [        SR                  5        U R                  [        SFR                  5        SnU R                  [        SBU-   SD-   R                  5        U R                  [        SU-   S-   R                  S/5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        GS R                  S /5        U R                  [        GSR                  S /5        U R                  [        GSR                  GSGS5        U R                  [        GSR                  S-GSS5        U R                  [        GSR                  SS7GSSYGSSGS	GS
5
        GSnU R                  [        UGSR                  S5        U R                  [        U[        SGS5        GSnU R                  [        UGSR                  S5        U R                  [        GSR                  S5        U R                  [        [        SGS5        U R                  [        [        SGS5        U R                  GSR                  GSGS5      GS5        U R                  ShR                  GS5      GS5        U R                  SjR                  GS5      S5        U R                  GSR                  SFS05      S5        U R                  GSR                  SFS05      S5        U R                  GSR                  SBS05      S5        U R                  GSR                  SDS05      S5        U R                  GSR                  GSS05      S5        U R                  GSR                  GSS05      S5        U R                  [        GSR                  GS5        U R                  [        GS R                  GS5        U R                  [        GS!R                  GS5        U R                  GS"R                  SGS#5      GS$5        U
" S5      nU R                  GS%R                  U5      GS&5        U R                  [        GS'R                  U5        U R                  [        SFR                  U5        U" S5      nU R                  GS%R                  U5      GS(5        U R                  GS'R                  U5      GS(5        U R                  [        SFR                  U5        g ()  Nr   r   rm  a{{a{a}}a}{{b{b}}b}ba{{ba{br   zMy name is {0}FredzMy name is FredzMy name is {0[name]})namezMy name is {0} :-{{}}zMy name is Fred :-{}i  r#     zThe year is {0.year}zThe year is 2007c                   $    \ rS rSrSS jrS rSrg)StrTest.test_format.<locals>.CiH  c                     Xl         g r:   _xr>   r4  s     r   r?   'StrTest.test_format.<locals>.C.__init__I      r   c                     U$ r:   r   r>   specs     r   
__format__)StrTest.test_format.<locals>.C.__format__K      r   r  Nr   r-   r.   r/   r0   r?   r  r1   r   r   r   r  r  H      r   r  c                        \ rS rSrS rS rSrg)StrTest.test_format.<locals>.DiN  c                     Xl         g r:   r4  r  s     r   r?   'StrTest.test_format.<locals>.D.__init__O      r   c                 ,    [        U R                  5      $ r:   )ra   r4  r  s     r   r  )StrTest.test_format.<locals>.D.__format__Q  s    466{"r   r  Nr  r   r   r   Dr  N  s    #r   r  c                        \ rS rSrS rS rSrg)StrTest.test_format.<locals>.EiU  c                     Xl         g r:   r  r  s     r   r?   'StrTest.test_format.<locals>.E.__init__V  r  r   c                 &    SU R                   -   S-   $ )NzE()r  rC   s    r   rD   &StrTest.test_format.<locals>.E.__str__X      dff}s**r   r  NrG   r   r   r   Er  U      +r   r  c                        \ rS rSrS rS rSrg)StrTest.test_format.<locals>.Fi\  c                     Xl         g r:   r  r  s     r   r?   'StrTest.test_format.<locals>.F.__init__]  r  r   c                 &    SU R                   -   S-   $ )NzF(r  r  rC   s    r   rO   'StrTest.test_format.<locals>.F.__repr___  r  r   r  NrQ   r   r   r   Fr  \  r  r   r  c                   &    \ rS rSrS rS rS rSrg)StrTest.test_format.<locals>.Gic  c                     Xl         g r:   r  r  s     r   r?   'StrTest.test_format.<locals>.G.__init__d  r  r   c                      SU R                   -   $ )Nz
string is r  rC   s    r   rD   &StrTest.test_format.<locals>.G.__str__f  s    #dff,,r   c                 \    US:X  a  SU R                   -   S-   $ [        R                  X5      $ )Nr;  zG(r  )r4  rj   r  r>   format_specs     r   r  )StrTest.test_format.<locals>.G.__format__h  s.    #%$&&=3..((;;r   r  N)r-   r.   r/   r0   r?   rD   r  r1   r   r   r   Gr  c  s    -<r   r  c                       \ rS rSrS rSrg)StrTest.test_format.<locals>.Iim  c                 $    U R                  U5      $ r:   )strftimer  s     r   r  )StrTest.test_format.<locals>.I.__format__n  s    }}[11r   r   Nr-   r.   r/   r0   r  r1   r   r   r   Ir  m  s    2r   r  c                       \ rS rSrS rSrg)StrTest.test_format.<locals>.Jiq  c                 4    [         R                  U S-  U5      $ )Nr   )r  r  r  s     r   r  )StrTest.test_format.<locals>.J.__format__r  s    ~~dQh<<r   r   Nr  r   r   r   Jr  q  s    =r   r  c                   $    \ rS rSrS rS rSrSrg)StrTest.test_format.<locals>.Miu  c                     Xl         g r:   r  r  s     r   r?   'StrTest.test_format.<locals>.M.__init__v  r  r   c                 &    SU R                   -   S-   $ )NzM(r  r  rC   s    r   rO   'StrTest.test_format.<locals>.M.__repr__x  r  r   Nr  )r-   r.   r/   r0   r?   rO   rD   r1   r   r   r   Mr  u  s    +Gr   r  c                   $    \ rS rSrS rS rSrSrg)StrTest.test_format.<locals>.Ni|  c                     Xl         g r:   r  r  s     r   r?   'StrTest.test_format.<locals>.N.__init__}  r  r   c                 &    SU R                   -   S-   $ )NzN(r  r  rC   s    r   rO   'StrTest.test_format.<locals>.N.__repr__  r  r   Nr  )r-   r.   r/   r0   r?   rO   r  r1   r   r   r   Nr  |  s    +Jr   r  r   {0}z{0:}zX{0}Xabcz{0}XabcXzX{0}YXabcYz{1}r   zX{1}z{1}XzX{1}Yiz-15z{0}{1}z-15abcz{0}X{1}z-15Xabcz{{{z}}}z{{}}{}z{{x}}z{x}z{{{0}}}{   z{123}z	{{{{0}}}}z{{0}}z}}{{z}{z}}x{{z}x{z{0[foo-bar]}zfoo-barbazz{0[foo bar]}zfoo barz{0[ ]}r{   r   r{  {foo._x}   )rz  20z{1}{0}r   2010z{0._x.x}z{0[0]}r   z{0[1]}z	{0[1][0]}z{0[1][0].x}z{0:.3s}abcdefz{0:.0s}z{0:3.3s}z{0:2.3s}z{0:2.2s}z{0:3.2s}zab z{0:x<0s}ri   z{0:x<5s}z{0:x<6s}z{0:x<7s}resultxz{0:x<8s}resultxxz{0: <7s}zresult z{0:<7s}z{0:>7s}z resultz{0:>8s}z  resultz{0:^8s}z result z{0:^9s}z	 result  z{0:^10s}z
  result  z{0:8s}zresult  z{0:0s}z{0:08s}result00z{0:<08s}z{0:>08s}00resultz{0:^08s}0result0z	{0:10000}i'  i'  z{0:10000000}i z{0: <6s}rz  zfoo   z{0:<6s}zfooz{0: ^6s}z foo  z{0:^6s}z foo  z{0: <6}z3     z{0:<6}z3z{0: ^6}z  3   z{0:<6}z3     g      
@z3.25  z3.25z 3.25 z{0:^6}z 3.25 z{0: <12}y      @       @z(3+2j)      z{0:<12}z(3+2j)z{0: ^12}z   (3+2j)   z{0:^12}z   (3+2j)   z{0:abc}z{0!s}Helloz{0!s:}z{0!s:15}zHello          z	{0!s:15s}z{0!r}z'Hello'z{0!r:}zF(Hello)r  z'\u0378'r  u   'ʹ'u   F(ʹ)z{0!a}z'\u0374'z{0!a:}z	F(\u0374)r?  z[1]z{0:d}datazG(data)zstring is dataz{0:^10}z{0:>15s}z{0:date: %Y-%m-%d}   )yearmonthdayzdate: 2007-08-27z{0:.{1}}hello world   r  z	{0:.{1}s}z{0:.{precision}s})	precisionz{0:{width}.{precision}s})widthr  z
hello     105{a}azabc{0:{}z{0z{0.}z{0[}z{0]}z{0.[]}z{0..foo}z{0[0}z	{0[0:foo}z{c]}z	{{ {{{0}}z{0}}z{foo})barz{0!x}z{0!}z{0!rs}z{!}z{:}z{:s},23098475029384702983476098230754973209482573z{[z]}z{0:x}              ?      ?z{0:X}z{0:o}z{0:u}z{0:i}z{0[0]x}z
{0[0](10)}z{0[{1}]}r  r   z{0:{1:{2}}}r  z{0:{1:{2:{3:{4:{5:{6}}}}}}}r   r   r   z+Sign not allowed in string format specifierz{0:-s}-z,Space not allowed in string format specifierz{: }z{0:=s}#z#20z
{0:s}{1:s}ABCu   АБВu	   ABCАБВz{[{}]}z{[{]}z{[}]}z{[[]}r
  z{[!]}r  z{a{}b}r
   z{a{b}z{[}z0x{:0{:d}X}   0x0000000000000000{!r}zM(data)z{!s}zN(data))rf   r  datetimedictdater  r|   r   r%  
IndexErrorKeyErrorassertRaisesRegex)r>   r  r;  r  r  r  r  r  r  r  r  r  bigsign_msg	space_msgmns                    r   test_formatStrTest.test_format1  s   b)s+-....%0 	)008:KL/66t7HI*	,077?/	1 MM$2&/66q9+	-	 		# 	#	+ 	+	+ 	+	< 	<	2 	2	= 	=	 		 	 	b)/e,e4u-u5u-v6u-v6.8a/7q%0&9q%0&9517;c*E2e4h?))#u5yA,,$/)51))#.8++-w7$/)51 	..	%/@A5I..	%/@A5I#a137**qu*5t<2"6?**1QuX;7?%8%@%8%@++UUG,<=uE--uqxj.ABEJ 	))%0%8))$/6))(3U;))(3R8**5159**5159**5148**5159**84h?**84h?**84h?**84i@**84jA**84i@))(3Y?))(3Y?))(3Z@))(3Z@))(3[A**84lC2J?2H=))(3Z@**84jA**84jA**84jA++C0#d
2BC++B/u=..r2C(NC 	--e46GH--e46GH--e46GH))%0(;,,Q/1HI,,Q/1HI,,Q/1HI+X6,,T2NC,,T2NC,,T2NC.9--f57WX--f57WX--f57WX))&1>B 	))!#.6 	0':17;**735FG++G46GH0)<19='
3Z@1;?1:>(4kB0)<1;?1;?19='
3Z@(4lC 	b)40b)40qc*E2&	2I>&	24DE)Y%5%5qyA)Z%6%6&	B)Z%6%6&	B-44QD=>;=6? @ ,	- 	ae,d3 	s+S1 	**=!<gF++M1=wG,33MQ3OQXY3::=PR^_:`bno3::=PT`c:dfrs 	*cjj1*cjj1*dkk2*dkk2*dkk2*dkk2*ell3*ellE:(ell3*dkk2*j&7&78*dkk2*fmm4*fmmQ7*fmm4*fmmR8(fmm4*hooq9*j&7&7;*gnna8*k&8&8!<(fmm4*k&8&8!<*fmmQ7(gnn!<*gnna8*fmmQ7*hooq9*ell3*ell3*fmm4*dkk2<*sSy3&>&>?*tczD'8&@&@1#F 	*gnnb9*gnnc:*gnnb9*gnnc:*gnnb9*gnnc:*gnnb9*gnnc:*gnnb9*gnnc:*gnnb9*gnnc: 	*i&6&6?*l&9&9D6B 	)Z%6%6	1E 	*m&:&:E3K*&C&J&JQ1aAq	2 Az8X__bIz8VREB	z9fmmRH*hoor: 	*fb#6*fb%8 	,,U4HI0	2))*AB	 ))*AB	 	$3S9$6<s4c:s4c:s4c:s4c:*hoor:*gnnb9*ellB7--c"57KL fIq)95)V]]A6)T[[!4fIq)95q)95)T[[!4r   c                 N   U R                  SR                  0 5      S5        U R                  SR                  0 5      S5        U R                  SR                  0 5      S5        U R                  SR                  0 5      S5        U R                  SR                  0 5      S5        U R                  SR                  0 5      S	5        U R                  S
R                  0 5      S5        U R                  SR                  0 5      S5         " S S[        5      nU R                  SR                  U" 5       5      S5        U R                  SR                  U" SS95      S5         " S S5      nU R                  SR                  U" 5       5      S5         " S S5      nU R                  SR                  SU" S5      05      S5        U R                  [        SR                  5        U R                  [        SR                  5        U R                  [
        SR                  0 5        U R                  [
        SR                  0 5        U R                  [
        SR                  0 5        U R                  [
        SR                  0 5        U R                  [
        S R                  0 5        U R                  [
        S!R                  0 5        U R                  [
        S"R                  SS#05        U R                  [
        S"R                  S5        U R                  [
        S$R                  S#S%S&.5         " S' S(5      nU R                  [        SR                  0 5        U R                  [        SR                  / 5        U R                  [        SR                  U" 5       5        g ))Nr   r   rm  r  r  r  r  r  r  r  r  r  r  c                       \ rS rSrS rSrg)(StrTest.test_format_map.<locals>.Mappingi  c                     U$ r:   r   r>   keys     r   __missing__4StrTest.test_format_map.<locals>.Mapping.__missing__  s    
r   r   N)r-   r.   r/   r0   r  r1   r   r   r   Mappingr        r   r  z{hello}r  z{a} {world})r   r  c                        \ rS rSrS rS rSrg)0StrTest.test_format_map.<locals>.InternalMappingi  c                     SS0U l         g )Nr   r  rM  rC   s    r   r?   9StrTest.test_format_map.<locals>.InternalMapping.__init__  s     #W~r   c                      U R                   U   $ r:   r"  r  s     r   __getitem__<StrTest.test_format_map.<locals>.InternalMapping.__getitem__  s    ||C((r   r"  N)r-   r.   r/   r0   r?   r%  r1   r   r   r   InternalMappingr     s    .)r   r'  z{a}c                   $    \ rS rSrSS jrS rSrg)"StrTest.test_format_map.<locals>.Ci  c                     Xl         g r:   r  r  s     r   r?   +StrTest.test_format_map.<locals>.C.__init__  r  r   c                     U$ r:   r   r  s     r   r  -StrTest.test_format_map.<locals>.C.__format__  r  r   r  Nr  r  r   r   r   r  r)    r  r   r  r  rz  r  r  r  r  r  r  r  r   z{a} {}r   r9  c                       \ rS rSrS rSrg)+StrTest.test_format_map.<locals>.BadMappingi  c                     SS-  $ )Nr   r   r   r  s     r   r%  7StrTest.test_format_map.<locals>.BadMapping.__getitem__  s    s
r   r   N)r-   r.   r/   r0   r%  r1   r   r   r   
BadMappingr/    r  r   r2  )rf   
format_mapr	  r|   r   r%  r  ZeroDivisionError)r>   r  r'  r  r2  s        r   test_format_mapStrTest.test_format_mapy  s   r*B/+S1,d3))"-t4))"-t4))"-t4))"-t4**2.6	d 	 	--gi8'B11'G2DE}U	) 	)
 	))/*;<gF	 	
 	..qu~>E 	)R]]3)S^^4*cnnb9*cnnb9*door:*door:*door:*door: 	*dooayA*doos;*h&9&9!1;MN	 	 	(E$4$4b9)U%5%5r:+U-=-=z|Lr   c                     SR                  [        R                  S-   5      nU R                  [        5         [        SU5      nS S S 5        g ! , (       d  f       g = f)Nz.{}fr   Q@r  r  r  r|   r%  r>   format_stringri   s      r   test_format_huge_precision"StrTest.test_format_huge_precision  s>    ckkAo6z*D-0F +**   A
Ac                     SR                  [        R                  S-   5      nU R                  [        5         [        SU5      nS S S 5        g ! , (       d  f       g = f)Nz{}fr   r8  r9  r:  s      r   test_format_huge_widthStrTest.test_format_huge_width  s>    S[[1_5z*D-0F +**r>  c                     SR                  [        R                  S-   5      nU R                  [        5         UR                  S5      nS S S 5        g ! , (       d  f       g = f)Nz
{{{}:.6f}}r   r8  r9  r:  s      r   test_format_huge_item_number$StrTest.test_format_huge_item_number  sD    $++CKK!O<z*"))$/F +**s   A
A!c           	          " S S5      nU R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  S	R                  S5      S
5        U R                  SR                  U" S5      5      S5        U R                  SR                  SS/5      S5        U R                  SR                  SSS.5      S5        U R                  SR                  SS5      S5        U R                  SR                  SS5      S5        U R                  SR                  SS5      S5        U R                  [        SR                  SS5        U R                  [        S R                  SS5        U R                  [        S!R                  SS5        U R                  [        S"R                  SS5        U R                  S#R                  SS$S%9S&5        U R                  S'R                  SS$S%9S(5        U R                  S)R                  SS*S+SS,9S-5        U R                  S.R                  SSSS+S/9S05        g )1Nc                   $    \ rS rSrSS jrS rSrg)-StrTest.test_format_auto_numbering.<locals>.Ci  c                     Xl         g r:   r  r  s     r   r?   6StrTest.test_format_auto_numbering.<locals>.C.__init__  r  r   c                     U$ r:   r   r  s     r   r  8StrTest.test_format_auto_numbering.<locals>.C.__format__  r  r   r  Nr  r  r   r   r   r  rG    r  r   r  r  r   r  z{:5}r  zs    r  z's'z{._x}z{[1]}r   r   ry  z{[a]}r   r9  4za{}b{}cr   a0b1cza{:{}}br4  z^10za    x     bza{:{}x}br  r  a0x14bz{}{1}z{1}{}z{:{1}}z{0:{}}z{f}{}test)ftest4z{}{f}4testz{:{f}}{g}{}r   g)rS  rP  z 1g3z{f:{}}{}{g})rP  rS  z 14g)rf   r  r|   r%  )r>   r  s     r   test_format_auto_numbering"StrTest.test_format_auto_numbering  s   	 	 	R$/s+W5s+U3".5A/5QA7=))!Q/9))#u5~F**2s3X> 	*gnna;*gnna;*hooq!<*hooq!< 	V4g>V4g>--acQ-?H--aa3-?Hr   c                    [         R                  R                  U 5        U R                  SS-  S5        U R                  SS-  S5        U R                  SS-  S5        U R                  SS	-  S
5        U R                  SS-  S5        U R                  SS-  S5        U R                  SS-  S5        U R                  SS-  S5        U R                  SS-  S5        U R                  SSSS.-  S5        U R                  SSSS.-  S5        U R                  SS-  S 5        U R                  SS!-  S"5        U R	                  [
        SR                  S#5        U R                  SS"-  S"5        U R	                  [        SR                  S$5        U R	                  [        S%R                  S&5        U R	                  [        S'R                  S$5        U R                  S(S)S0-  S*5        U R                  S(S)S0-  S*5        U R                  S(S)S0-  S*5        U R                  S(S)S0-  S*5        U R                  S(SS+S,.-  S*5        U R                  S(SS+S,.-  S*5        U R                  S-S.-  S/5        U R                  S0S.-  S15        U R                  S2S-  S*5        U R                  S3S4-  S55        U R                  S3S6-  S75        U R                  S8S9-  S:5        U R                  S8S;-  S55        U R                  S<S=-  S>5        U R                  S?S@-  SA5        U R                  SSB-  SB5         " SC SD5      nU R                  SEU" 5       -  S 5        [        SF5      n[        SG5      nU R                  SHU-  SF5        U R                  SIU-  SJ5        U R                  SHU-  SG5        U R                  SIU-  SK5        U R                  SLSM-  SB5        U R                  SNSM-  SO5         " SP SQ5      n " SR SS5      nU" ST5      nU" SU5      nU R                  SVSW-  SX5        U R                  SYSZ-  S[5        U R                  S\S]-  S^5        U R                  SSU-  S_5        U R                  SVU-  S`5        U R                  SYU-  Sa5        U R                  S\U-  Sb5        U R                  SU-  S_5        U R                  [        Sc[        R                  SVSd5        U R                  [        Se[        R                  SYSf5        U R                  [        Sg[        R                  S\Sh5        U R                  [        Si[        R                  SVU5        U R                  [        Sj[        R                  SVSk5        U R                  [        Sl[        R                  SYSm5        U R                  [        Sn[        R                  S\So5        U R                  [        Sp[        R                  SqSk5        U R                  [        Sr[        R                  S'Sm5        U R                  [        Ss[        R                  StSo5        U R                  [        Su[        R                  SU5         " Sv Sw5      nU" 5       n	U R                  [        Sx[        R                  StU	5        U R                  [        Sx[        R                  S'U	5        U R                  [        Sx[        R                  SqU	5        U R                  [        Sy[        R                  SVU	5        U R                  [        Sy[        R                  SYU	5        U R                  [        Sy[        R                  S\U	5        g )zNz%s, %s)r   r   abc, abcz%s, %s, %i, %f, %5.2f)r   r   r   r   r   zabc, abc, 1, 2.000000,  3.00)r   r   r   r   zabc, abc, 1, -2.000000,  3.00)r   r   r   rX  g      @zabc, abc, -1, -2.000000,  3.50)r   r   r   rX  g(\@zabc, abc, -1, -2.000000,  3.57)r   r   r   rX  g(\\@z abc, abc, -1, -2.000000, 1003.57z%r, %r)r  r   zb'abc', 'abc'z%r)   ሴu   'ሴ'z%az'\u1234'z%(x)s, %(y)sr   r   )r4  rk  zabc, defu   %(x)s, %(ü)s)r4  r`  z%ci4  rY  i u   𡒃)rz   aau   %.1ဲfgUUUUUU?z%i...%(foo)s...rz  	...abc...r  rz  r   z...%s...%s...%s...%s...)r   r   r   r   z...1...2...3...abc...z"...%%...%%s...%s...%s...%s...%s...z...%...%s...1...2...3...abc...z...%s...z%*s)r  r   z  abc)r   zabc  z%*.*s)r  r   r   z   ab)r  r   r   z%i %*.*s)r   r  r   r   z10   abcz
%i%s %*.*s)r   r   r  r   r   z	103   abcr   c                       \ rS rSrS rSrg)(StrTest.test_formatting.<locals>.Wrapperi  c                     g)NrY  r   rC   s    r   rD   0StrTest.test_formatting.<locals>.Wrapper.__str__  s    r   r   Nr-   r.   r/   r0   rD   r1   r   r   r   Wrapperr`    s     r   rd  %snaninfz%fz%FNANINFz%.1su   aé€z%.2su   aéc                   &    \ rS rSrS rS rS rSrg)*StrTest.test_formatting.<locals>.PseudoInti  c                 $    [        U5      U l        g r:   r  r<   r=   s     r   r?   3StrTest.test_formatting.<locals>.PseudoInt.__init__  s     Z
r   c                     U R                   $ r:   r;   rC   s    r   __int__2StrTest.test_formatting.<locals>.PseudoInt.__int__      zz!r   c                     U R                   $ r:   r;   rC   s    r   	__index__4StrTest.test_formatting.<locals>.PseudoInt.__index__  rr  r   r;   N)r-   r.   r/   r0   r?   rp  rt  r1   r   r   r   	PseudoIntrk    s    (""r   rv  c                        \ rS rSrS rS rSrg),StrTest.test_formatting.<locals>.PseudoFloati  c                 $    [        U5      U l        g r:   )floatr<   r=   s     r   r?   5StrTest.test_formatting.<locals>.PseudoFloat.__init__  s    "5\
r   c                 ,    [        U R                  5      $ r:   rm  rC   s    r   rp  4StrTest.test_formatting.<locals>.PseudoFloat.__int__!  s    4::&r   r;   N)r-   r.   r/   r0   r?   rp  r1   r   r   r   PseudoFloatrx    s    *'r   r~  go!	@m   z%xr
   2az%X   r  z%or   11r  6d6D155z,%x format: an integer is required, not floatgQ	@z,%X format: an integer is required, not floatgzG @z,%o format: an integer is required, not floatgp=
ף?z2%x format: an integer is required, not PseudoFloatz.%x format: an integer is required, not complexy              @z.%X format: an integer is required, not complexy               @z.%o format: an integer is required, not complexr   z1%u format: a real number is required, not complexz%uz1%i format: a real number is required, not complexz1%d format: a real number is required, not complexz%dz%c requires int or charc                        \ rS rSrS rS rSrg).StrTest.test_formatting.<locals>.RaisingNumberi9  c                     [        S5      e)Nr  RuntimeErrorrC   s    r   rp  6StrTest.test_formatting.<locals>.RaisingNumber.__int__:  s    "5))r   c                     [        S5      e)Nr  r  rC   s    r   rt  8StrTest.test_formatting.<locals>.RaisingNumber.__index__<  s    "7++r   r   N)r-   r.   r/   r0   rp  rt  r1   r   r   r   RaisingNumberr  9  s    *,r   r  r  r  )r   r   test_formattingrf   r|   r  __mod__r   r%  rz  r  operatormodr  )
r>   rd  rh  ri  rv  r~  piletter_mr  rns
             r   r  StrTest.test_formatting  s   ##33D9N2J?03JJLjk03KKMlm03NNPpq03OOQqr03RRTvwO3_E+Z8+[9u%*@@*M*%-FF
S16-{C,l;)T\\48*l&:&:UD)T\\48 	E%=8+FE%=8+FE%=8+FE%=8+F%c+BB[Q%c+BBKP2]BD[\=MOope+[9+W5,g6</9</9&66
C(=={KS)	  	  		)84 ElElU+U+U+U+ 	-/5-/9	" 	"	' 	'
  S>D)C(4(S)$/$/%0#.y*XZbZfZfhlnrsy*XZbZfZfhlnrsy*XZbZfZfhlnrsy*^`h`l`lnrtvwy*Z\d\h\hjnprsy*Z\d\h\hjnprsy*Z\d\h\hjnprsy*]_g_k_kmqsuvy*]_g_k_kmqsuvy*]_g_k_kmqsuvy*CX\\SWY[\	, 	, _|UHLL$K|UHLL$K|UHLL$K|WhllD"M|WhllD"M|WhllD"Mr   c           
         SS K n " S S[        UR                  5      n " S SUR                  5      n " S SUR                  5      nU R                  UR                  < SUR                  < 3S	5        U R                  S
UR                  UR                  UR                  UR                  UR                  UR                  UR                  4-  S5        U R                  SSUR                  0-  S5        U R                  SSUR                  0-  S5        U R                  SSUR                  0-  S5        U R                  SSUR                  0-  S5        U R                  SSUR                  0-  S5        U R                  SUR                  UR                  S.-  S5        U R                  SUR                  SS.-  S5        g )Nr   c                       \ rS rSrSrSrg)0StrTest.test_formatting_with_enum.<locals>.FloatiJ  gJM!	@r   N)r-   r.   r/   r0   PIr1   r   r   r   Floatr  J  s    Br   r  c                       \ rS rSrSrSrg).StrTest.test_formatting_with_enum.<locals>.IntiM  r  r   N)r-   r.   r/   r0   IDESr1   r   r   r   Intr  M  s    Dr   r  c                       \ rS rSrSrSrg).StrTest.test_formatting_with_enum.<locals>.StriP  r   r   N)r-   r.   r/   r0   r  r1   r   r   r   Strr  P  s    Cr   r  z, rW  z%s, %s, %d, %i, %u, %f, %5.2fz%abc, abc, 15, 15, 15, 3.141593,  3.14r[  rz  r\  z...%(foo)r...z...<Int.IDES: 15>...z...15...z...%(foo)i...z...%(foo)d...z...%(foo)u...r]  z...%(foo)f...r  z...3.141593...)	enumrz  EnumIntEnumStrEnumrf   r  r  r  )r>   r  r  r  r  s        r   test_formatting_with_enum!StrTest.test_formatting_with_enumG  s   	E499 		$,, 		$,, 	 	SWWcgg6#	%8#''388SXX588-- A		B 	E#''?:$	&E#((+;;/	1E#((+;;#	%E#((+;;#	%E#((+;;#	%#((%((+KK#	%%((+EE)	+r   c                     SR                  [        R                  S-   5      nU R                  [        5         US-  nS S S 5        g ! , (       d  f       g = fNz%.{}fr   r8  r9  r:  s      r   test_formatting_huge_precision&StrTest.test_formatting_huge_precisionl  s<    s{{Q7z*"T)F +**   A
Ac                 X     " S S[         5      nU R                  SU" S5      -  S5        g )Nc                       \ rS rSrS rSrg)>StrTest.test_issue28598_strsubclass_rhs.<locals>.SubclassedStrit  c                 $    SR                  U5      $ )Nz'Success, self.__rmod__({!r}) was calledr  )r>   others     r   __rmod__GStrTest.test_issue28598_strsubclass_rhs.<locals>.SubclassedStr.__rmod__u  s    @GGNNr   r   N)r-   r.   r/   r0   r  r1   r   r   r   SubclassedStrr  t  s    Or   r  z	lhs %% %rrhsz.Success, self.__rmod__('lhs %% %r') was calledra   rf   )r>   r  s     r   test_issue28598_strsubclass_rhs'StrTest.test_issue28598_strsubclass_rhsq  s0    	OC 	O 	}U';;I	Kr   Nzneed _testcapi modulec                     SR                  [        R                  S-   5      nU R                  [        5         US-  nS S S 5        g ! , (       d  f       g = fr  )r  	_testcapiINT_MAXr|   r%  r:  s      r   'test_formatting_huge_precision_c_limits/StrTest.test_formatting_huge_precision_c_limitsz  sA      y'8'81'<=z*"T)F +**r  c                     SR                  [        R                  S-   5      nU R                  [        5         US-  nS S S 5        g ! , (       d  f       g = f)Nz%{}fr   r8  r9  r:  s      r   test_formatting_huge_width"StrTest.test_formatting_huge_width  s<    ckkAo6z*"T)F +**r  c                 $   SR                   SR                  4 Hc  nU R                  [        5       nU" S/5        S S S 5        [	        WR
                  5      nU R                  SU5        U R                  SU5        Me     g ! , (       d  f       NL= f)Nrz  rP  ra   r   )
startswithendswithr|   r   ra   	exceptionrr  )r>   r%  cmexcs       r   test_startswith_endswith_errors'StrTest.test_startswith_endswith_errors  sj    %%u~~6D""9-cU .bll#CMM%%MM'3' 7--s   
B
B	LC_ALLde_DEfr_FRr   c                 .    U R                  SSS-  5        g )Nz1.0z%.1fr  rf   rC   s    r   test_format_floatStrTest.test_format_float  s     	-r   c           	         U R                  [        S5      S5        S H  n[        U5      nU R                  [        U5      U5        U R                  [        U5      [        U5      5        US:X  d  MU  U R                  UR	                  S5      S5        U R                  UR	                  S5      S5        M     U R                  [        S5      S5         " S S5      nU R                  [        U" S	5      5      S	5        U" S
5      nU R                  [        U5      S
5        U R                  [        U5      S
5        S H0  nU R                  [        U5      [        [        U5      5      5        M2     U R                  [        [        SSS5        U R                  [        SSS5      S5        U R                  [        [        S5      SS5      S5        g )Nzunicode remains unicode)r   rA  r  r  r      asciiutf-8z strings are converted to unicodec                        \ rS rSrS rS rSrg).StrTest.test_constructor.<locals>.StringCompati  c                     Xl         g r:   r  r  s     r   r?   7StrTest.test_constructor.<locals>.StringCompat.__init__  r  r   c                     U R                   $ r:   r  rC   s    r   rD   6StrTest.test_constructor.<locals>.StringCompat.__str__  s    vvr   r  NrG   r   r   r   StringCompatr    s    r   r  z)__str__ compatible objects are recognizedz#unicode(obj) is compatible to str())r  g^@r  z!decoding unicode is not supportedr!   s   strings are decoded to unicodezstrings are decoded to unicodes(   character buffers are decoded to unicodez(character buffers are decoded to unicode)rf   ra   r*   lenr%   r|   r   
memoryview)r>   r'   subclassr  oobjs         r   test_constructorStrTest.test_constructor  s    	)*%	

 >D"4(HS]D1S]CI6w  !98D  !98D > 	23.	

	 	 	HIJ7	
 >?Q!FGQ!FG%CSXs3s8}5 & 	/	
 	17HE,	

 	FG
 7	
r   c                     U R                  [        SS9S5        U R                  [        SSS9S5        U R                  [        SSS9S5        U R                  [        SSS9S5        g	)
z>Pass various keyword argument combinations to the constructor.rz  )rj   s   foor  )rj   r"   r!   r   )rj   r   N)rf   ra   rC   s    r   test_constructor_keyword_args%StrTest.test_constructor_keyword_args  s^     	E*E2FW=uEVH5u=F8<eDr   c                     U R                  [        5       S5        U R                  [        SS9S5        SR                  S5      nU R                  [        USS9S5        U R                  [        [        USS9  g)	z(Check the constructor argument defaults.r   r!   r     ¢r  r   r"   N)rf   ra   r%   r|   UnicodeDecodeError)r>   	utf8_cents     r   test_constructor_defaults!StrTest.test_constructor_defaults  sh     	#H-r2KK(	Yx8$?,c9wOr   c                 
   / SQnU H&  u  p#U R                  UR                  S5      U5        M(     U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  S	R                  S5      S
5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  S
R                  S5      S	5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  SS5      S5        SnSnU Hc  nU R                  UR                  S5      UR                  S5      5        U R                  UR                  S5      R                  S5      U5        Me     U H3  nU R                  UR                  S5      R                  S5      U5        M5     U R                  [        S5         SR                  S5        S S S 5        g ! , (       d  f       g = f)N))u   A≢Α.s	   A+ImIDkQ.)u   Hi Mom -☺-!s   Hi Mom -+Jjo--!)u	   日本語s
   +ZeVnLIqe-)u   Item 3 is £1.s   Item 3 is +AKM-1.)+s   +-)z+-s   +--z+?s   +-?)z\?s   +AFw?r  )z\\?s   +AFwAXA?)z\\\?s
   +AFwAXABc?)z++--s   +-+---)u   򫳞s   +2m/c3g-)/   /utf-7u   s   +2AE-u   xs   +2AE-xu   s   +3AE-u   xs   +3AE-xu   򫳞s
   +2AHab9ze-s   +r  r   zGABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?z!"#$%&*;<=>@[]^_`{|}utf7r   zill-formed sequences   +@)rf   r%   r&   r  r  )r>   utfTestsr4  rk  set_dset_or3  s          r   test_codecs_utf7StrTest.test_codecs_utf7  s   
" FQQXXg.2  	18<))'2I>18<))'2I>18<))'2I>18<))'2I>+227;]K--g68JK 	(;R@ Z&AQXXf-qxx/@AQXXg.55f=qA  AQXXg.55f=qA  ##$6$9;LL!; ; ;s   I44
Jc                    U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S	5        U R                  S
R                  SS5      S5        U R                  SR                  SS5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  [        S	S5      S5        U R                  [        SS5      S5        U R                  [        SS5      S5        g )Nr   r  r   r  s   €u   𐀂s   𐀂u   𣑖s   𣑖r  surrogatepasss   u   s   u(   𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂s(   𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂u   正確に言うと翻訳はされていません。一部はドイツ語ですが、あとはでたらめです。実際には「Wenn ist das Nunstuck git unds   正確に言うと翻訳はされていません。一部はドイツ語ですが、あとはでたらめです。実際には「Wenn ist das Nunstuck git und)rf   r%   ra   rC   s    r   test_codecs_utf8StrTest.test_codecs_utf8  s,   7+S11?C,,W57JK,,W57JK/BOT/BOT/11':/	1 
 !'w	9	
( 	0':LJ0':LJ_g6Br   c                 d    / SQnU H&  u  p#U R                  UR                  S5      U5        M(     g )N))    rn  )   ar   )   )s      )s   ߿u   ߿)s   ࠀu   ࠀ)s   ퟿u   ퟿)s   u   )s   ￿ry   )s   𐀀rz  )s   􏿿r  r  )rf   r&   )r>   	sequencesr  ress       r    test_utf8_decode_valid_sequences(StrTest.test_utf8_decode_valid_sequencesA  s0    
	 "HCSZZ0#6 "r   c                    [        SS5       Vs/ s H  n[        U/5      PM     nn[        SS5       Vs/ s H  n[        U/5      PM     nn[        SS5       Vs/ s H  n[        U/5      PM     nnX#-   U-   [        SS5       Vs/ s H  n[        U/5      PM     sn-   nU H$  nU R                  [        UR                  S5        M&     U H/  nU H&  nU R                  [        Xx-   R                  S5        M(     M1     U HD  nUS S	  H8  n	US S	  H,  n
U R                  [        Xy-   S
-   U
-   R                  S5        M.     M:     MF     [        SS5       Vs/ s H  n[        U/5      PM     sn HQ  nU R                  [        SU-   S
-   R                  S5        U R                  [        SU-   S-   R                  S5        MS     [        SS5       Vs/ s H  n[        U/5      PM     sn HQ  nU R                  [        SU-   S
-   R                  S5        U R                  [        SU-   S-   R                  S5        MS     [        SS5       Vs/ s H  n[        U/5      PM     sn HQ  nU R                  [        SU-   S-   R                  S5        U R                  [        SU-   S-   R                  S5        MS     [        SS5       Vs/ s H  n[        U/5      PM     sn HQ  nU R                  [        SU-   S-   R                  S5        U R                  [        SU-   S-   R                  S5        MS     g s  snf s  snf s  snf s  snf s  snf s  snf s  snf s  snf )N                  r   r  r                           s      )r   r  r|   r  r&   )r>   r4  continuation_bytesinvalid_2B_seq_start_bytesinvalid_4B_seq_start_bytesinvalid_start_bytesbytesbcbcb1cb3s              r   "test_utf8_decode_invalid_sequences*StrTest.test_utf8_decode_invalid_sequencesR  sO   27d2CD2CQeQCj2CD:?d:K%L:KQeQCj:K"%L:?d:K%L:KQeQCj:K"%L;&'>CD%>P)Q>P%*>P)QR 	
 (D0$++wG ( -B(!!"4runngN ) - -B)"1--bq1C%%&8')vg~c'9&A&A7L 2 . - (-T4'89'8!5!:'89B0&rz'1997D0&rz'1997D : (-T4'89'8!5!:'89B0&rz'1997D0&rz'1997D :
 (-T4'89'8!5!:'89B0&rz+5==wH0&rz+5==wH :
 (-T4'89'8!5!:'89B0&rz+5==wH0&rz+5==wH :O E%L%L *R  : :
 :
 :s.   L<MMMMMMMc                 |    [         R                   " SSSSSS5      nU R                  UR                  S5      S5        g )	Ni     r      r  r5   z%zr   )r  rf   r  )r>   r;  s     r   test_issue127903StrTest.test_issue127903  s7     dBBB7D)2.r   c                    Sn/ SU4PSUS-  4PSU4PSUS-  4PSU4PSUS-  4PS	US-  4PS
U4PSUS-  4PSUS-  4PSUS-   4PSU4PSUS-  4PSUS-  4PSUS-  4PSU4PSUS-   4PSUS-   U-   4PSUS-   4PSUS-   4PSUS-  S-   4PSUS-   U-   4PSU4PSUS-  4PSUS-  4PS US-  4PS!US"-  4PS#U4PS$U4PS%US-   4PS&US-   4PS'US-   4PS(US-   U-   4PS)US-   US-  -   4PS*US-   U-   S-   4PS+US-   U-   4PS,US-   U-   4PS-US-   US-  -   4PS.US-  S-   4PS/US-   US-  -   4PS0U4PS1US-  4PS2US-  4PS3US-  4PS4US-  4PS5US-  S-   4PS6US-  S-   U-   4PS7US-   US-  -   S-   4PS8U4PS9US-  4PS:US-  4PS;US-  S-   4PS<US"-  4PS=U4PS>US-  4PS?US-  4PS@USA-  4PSBU4PSCUS-  4PSDPSEPSFPSGPn[        U5       H  u  nu  pEU R                  [        UR                  SHSI5        U R	                  UR                  SHSJ5      U5        U R	                  USK-   R                  SHSJ5      USL-   5        U R	                  UR                  SHSM5      UR                  SSN5      5        M     g )ON   �r  r  r      s      s   s      s   s   r   s   Ar     s   s   s   r   s   s   As   As   AAAAs   As   As   A   s   s   s   s   r  s   s   s   As   AAs   As   As   As   AAs   AAs   As   As   As   A   s   s   s   s   s   As   As   AA   s   s   s   As      s   s   s   r      s   )s   ABCu   �ABC)s   BCu   ��BC)s   Cu   �C)s   abcdu   a���b�c��dr  r!   r     br   r  r   )	enumerater|   r  r&   rf   r  )r>   FFFDr  r  r  r  s         r   test_issue8271StrTest.test_issue8271  s    J
dOJ
 $q&!J
 dO	J

 $q&!J
 dOJ
 $q&!J
 $q&!J
 dOJ
 $q&!J
 d1f%J
 $s(#J
 dOJ
  $q&!!J
" d1f%#J
$ !$q&)%J
& $'J
( $s(#)J
* d3htm,+J
, d4i(-J
. d3h'/J
0 !$q&*-1J
2 !$s(4-03J
6 dO7J
8 $q&!9J
: d1f%;J
< !$q&)=J
> %d1f-?J
@ $AJ
B d#CJ
D d3h'EJ
F !$t),GJ
H !$s(+IJ
J d3htm,KJ
L !$s(46/2MJ
N !$s(4-"34OJ
P !$t)D.1QJ
R !$s(4-0SJ
T !$s(46/2UJ
V !$q&*-WJ
X !$s(46/2YJ
\ dO]J
^ $q&!_J
` $q&!aJ
b d1f%cJ
d !$q&)eJ
f d1fSj)gJ
h !$q&*T/2iJ
j %d3htAvoc&9:kJ
n dOoJ
p $q&!qJ
r $q&!sJ
t d1fsl+uJ
v %d1f-wJ
z dO{J
| $q&!}J
~ d1f%J
@ )$q&1AJ
D dOEJ
F d1f%GJ
J <KJ
L >MJ
N 8OJ
PEQJ
	V 'y1MAz0#**gxPSZZ;SAc$h..w	BCGLSZZ: [[268	 2r   c                 6   U R                  [        5       nUR                  S5        SSS5        WR                  nU R	                  U[        U5      5        U R                  UR                  SS5      U5        U R                  SU-   S-   R                  SS5      SU-   S-   5        UR                  SS	5      nU R                  UR                  SS
5      U5        U R                  SU-   S-   R                  SS
5      SU-   S-   5        g! , (       d  f       N= f)z
Check that an invalid UTF-8 sequence raises a UnicodeDecodeError when
'strict' is used, returns res when 'replace' is used, and that doesn't
return anything when 'ignore' is used.
r  Nr  s   aaaas   bbbbaaaabbbbr)  r   r  )r|   r  r&   r  rr  ra   rf   r  )r>   r  r  errr  r  s         r   assertCorrectUTF8Decoding!StrTest.assertCorrectUTF8Decoding  s     12bJJw 3llc3s8$GY7='C-'199'9M#.	0kk(B'GX6<'C-'199'8L 3,/	1 32s   D


Dc                 T    SnS H   nU R                  [        U/5      SS5        M"     g)a8  
Test that an 'invalid start byte' error is raised when the first byte
is not in the ASCII range or is not a valid start byte of a 2-, 3-, or
4-bytes sequence. The invalid start byte is replaced with a single
U+FFFD when errors='replace'.
E.g. <80> is a continuation byte and can appear only after a start byte.
r)  s   zinvalid start byteN)r=  r  )r>   r6  r  s      r   test_invalid_start_byteStrTest.test_invalid_start_byte  s/     7D**5$=(+?A 8r   c                 n    / SQnSnU H)  nU R                  [        R                  U5      SS5        M+     g)a  
Test that an 'unexpected end of data' error is raised when the string
ends after a start byte of a 2-, 3-, or 4-bytes sequence without having
enough continuation bytes.  The incomplete sequence is replaced with a
single U+FFFD when errors='replace'.
E.g. in the sequence <F3 80 80>, F3 is the start byte of a 4-bytes
sequence, but it's followed by only 2 valid continuation bytes and the
last continuation bytes is missing.
Note: the continuation bytes must be all valid, if one of them is
invalid another error will be raised.
)&C2DFzE0 A0zE0 BFzE1 80zE1 BFzEC 80zEC BFzED 80zED 9FzEE 80zEE BFzEF 80zEF BFzF0 90zF0 BFzF0 90 80zF0 90 BFzF0 BF 80zF0 BF BFzF1 80zF1 BFzF1 80 80zF1 80 BFzF1 BF 80zF1 BF BFzF3 80zF3 BFzF3 80 80zF3 80 BFzF3 BF 80zF3 BF BFzF4 80zF4 8FzF4 80 80zF4 80 BFzF4 8F 80zF4 8F BFr)  zunexpected end of dataNr=  r  fromhex)r>   r  r6  r  s       r   test_unexpected_end_of_data#StrTest.test_unexpected_end_of_data   s9    
	 C**5==+=x+CE r   c           	          SnUS-  nSUS-   4SUS-   4SU4SU4S	US-   4S
US-   4SU4SU4/nU H+  u  pEU R                  [        R                  U5      US5        M-     g)a|  
Test that an 'invalid continuation byte' error is raised when the
continuation byte of a 2-bytes sequence is invalid.  The start byte
is replaced by a single U+FFFD and the second byte is handled
separately when errors='replace'.
E.g. in the sequence <C2 41>, C2 is the start byte of a 2-bytes
sequence, but 41 is not a valid continuation byte because it's the
ASCII letter 'A'.
r)  r   zC2 00rn  zC2 7Fr  zC2 C0zC2 FFzDF 00zDF 7FzDF C0zDF FFinvalid continuation byteNrE  r>   r6  FFFDx2r  r  r  s         r   test_invalid_cb_for_2bytes_seq&StrTest.test_invalid_cb_for_2bytes_seq  s     d6k"Wd6k$:f0d6k"Wd6k$:f0	
	 "HC**5==+=s+FH "r   c                    SnUS-  n/ SUS-   4PSUS-   4PSU4PSU4PS	U4PS
U4PSUS-   4PSUS-   4PSU4PSU4PSUS-   4PSUS-   4PSU4PSU4PSUS-   4PSUS-   4PSU4PSU4PSUS-   4PSUS-   4PSU4PSU4PSUS-   4PSUS-   4PSU4PSU4PSUS-   4PS US-   4PS!U4PS"U4PS#US-   4PS$US-   4PS%U4PS&U4PS'US-   4PS(US-   4PS)U4PS*U4PS+US-   4PS,US-   4PS-U4PS.U4PS/U4PS0U4PS1US-   4PS2US-   4PS3U4PS4U4PS5US-   4PS6US-   4PS7U4PS8U4PS9US-   4PS:US-   4PS;U4PS<U4PS=US-   4PS>US-   4PS?U4PS@U4PSAUS-   4PSBUS-   4PSCU4PSDU4PSEUS-   4PSFUS-   4PSGU4PSHU4PSIUS-   4PSJUS-   4PSKU4PSLU4PSMUS-   4PSNUS-   4PSOU4PSPU4PnU H+  u  pEU R                  [        R                  U5      USQ5        M-     gR)SaH  
Test that an 'invalid continuation byte' error is raised when the
continuation byte(s) of a 3-bytes sequence are invalid.  When
errors='replace', if the first continuation byte is valid, the first
two bytes (start byte + 1st cb) are replaced by a single U+FFFD and the
third byte is handled separately, otherwise only the start byte is
replaced with a U+FFFD and the other continuation bytes are handled
separately.
E.g. in the sequence <E1 80 41>, E1 is the start byte of a 3-bytes
sequence, 80 is a valid continuation byte, but 41 is not a valid cb
because it's the ASCII letter 'A'.
Note: when the start byte is E0 or ED, the valid ranges for the first
continuation byte are limited to A0..BF and 80..9F respectively.
Python 2 used to consider all the bytes in range 80..BF valid when the
start byte was ED.  This is fixed in Python 3.
r)  r   zE0 00rn  zE0 7Fr  zE0 80zE0 9FzE0 C0zE0 FFzE0 A0 00zE0 A0 7FzE0 A0 C0zE0 A0 FFzE0 BF 00zE0 BF 7FzE0 BF C0zE0 BF FFzE1 00zE1 7FzE1 C0zE1 FFzE1 80 00zE1 80 7FzE1 80 C0zE1 80 FFzE1 BF 00zE1 BF 7FzE1 BF C0zE1 BF FFzEC 00zEC 7FzEC C0zEC FFzEC 80 00zEC 80 7FzEC 80 C0zEC 80 FFzEC BF 00zEC BF 7FzEC BF C0zEC BF FFzED 00zED 7FzED A0zED BFzED C0zED FFzED 80 00zED 80 7FzED 80 C0zED 80 FFzED 9F 00zED 9F 7FzED 9F C0zED 9F FFzEE 00zEE 7FzEE C0zEE FFzEE 80 00zEE 80 7FzEE 80 C0zEE 80 FFzEE BF 00zEE BF 7FzEE BF C0zEE BF FFzEF 00zEF 7FzEF C0zEF FFzEF 80 00zEF 80 7FzEF 80 C0zEF 80 FFzEF BF 00zEF BF 7FzEF BF C0zEF BF FFrJ  NrE  rK  s         r   test_invalid_cb_for_3bytes_seq&StrTest.test_invalid_cb_for_3bytes_seq0  sO   " "
d6k""
%,d6k$:"
=Df<M"
f"
 '0"
3:F2C"
 f%"
 )3DK'@"
  	"
 $.v"6	"

 f%"

 )3DK'@"
  "
 $.v"6"
 :A$v+8N"
 d6k""
 &-f$5"
 9@7H"
 f%"
 )3DK'@"
  "
 $.v"6"
 f%"
 )3DK'@"
  "
 $.v"6"
 :A$v+8N"
 d6k""
 &-f$5"
 9@7H"
 f%"
 )3DK'@"
  "
 $.v"6"
 f%"
 )3DK'@"
   !"
  $.v"6!"
  :A$v+8N!"
" d6k"#"
$ f%"
$ !(0%"
& f'"
& !(0'"
& 4>tF{2K'"
( f%)"
( )3F';)"
*  +"
* $.tF{";+"
, f%-"
, )3F';-"
.  /"
. $+DK"8/"
0 d6k"1"
0 &-f$51"
0 9@7H1"
2 f%3"
2 )3DK'@3"
4  5"
4 $.v"65"
6 f%7"
6 )3DK'@7"
8  9"
8 $.v"69"
8 :A$v+8N9"
: d6k";"
: &-f$5;"
: 9@7H;"
< f%="
< )3DK'@="
>  ?"
> $.v"6?"
@ f%A"
@ )3DK'@A"
B  C"
B $.v"6C"
	F "HC**5==+=s+FH "r   c                 h   SnUS-  n/ SUS-   4PSUS-   4PSU4PSU4PS	U4PS
U4PSUS-   4PSUS-   4PSU4PSU4PSUS-   4PSUS-   4PSU4PSU4PSUS-   4PSUS-   4PSU4PSU4PSUS-   4PSUS-   4PSU4PSU4PSUS-   4PSUS-   4PSU4PSU4PSUS-   4PS US-   4PS!U4PS"U4PS#US-   4PS$US-   4PS%U4PS&U4PS'US-   4PS(US-   4PS)U4PS*U4PS+US-   4PS,US-   4PS-U4PS.U4PS/US-   4PS0US-   4PS1U4PS2U4PS3US-   4PS4US-   4PS5U4PS6U4PS7US-   4PS8US-   4PS9U4PS:U4PS;US-   4PS<US-   4PS=U4PS>U4PS?US-   4PS@US-   4PSAU4PSBU4PSCUS-   4PSDUS-   4PSEU4PSFU4PSGUS-   4PSHUS-   4PSIU4PSJU4PSKUS-   4PSLUS-   4PSMU4PSNU4PSOUS-   4PSPUS-   4PSQU4PSRU4PSSUS-   4PSTUS-   4PSUU4PSVU4PSWUS-   4PSXUS-   4PSYU4PSZU4PS[US-   4PS\US-   4PS]U4PS^U4PS_U4PS`U4PSaUS-   4PSbUS-   4PScU4PSdU4PSeUS-   4PSfUS-   4PSgU4PShU4PSiUS-   4PSjUS-   4PSkU4PSlU4PSmUS-   4PSnUS-   4PSoU4PSpU4PSqUS-   4PSrUS-   4PSsU4PStU4PSuUS-   4PSvUS-   4PSwU4PSxU4PnU H+  u  pEU R                  [        R                  U5      USy5        M-     gz){a  
Test that an 'invalid continuation byte' error is raised when the
continuation byte(s) of a 4-bytes sequence are invalid.  When
errors='replace',the start byte and all the following valid
continuation bytes are replaced with a single U+FFFD, and all the bytes
starting from the first invalid continuation bytes (included) are
handled separately.
E.g. in the sequence <E1 80 41>, E1 is the start byte of a 3-bytes
sequence, 80 is a valid continuation byte, but 41 is not a valid cb
because it's the ASCII letter 'A'.
Note: when the start byte is E0 or ED, the valid ranges for the first
continuation byte are limited to A0..BF and 80..9F respectively.
However, when the start byte is ED, Python 2 considers all the bytes
in range 80..BF valid.  This is fixed in Python 3.
r)  r   zF0 00rn  zF0 7Fr  zF0 80zF0 8FzF0 C0zF0 FFzF0 90 00zF0 90 7FzF0 90 C0zF0 90 FFzF0 BF 00zF0 BF 7FzF0 BF C0zF0 BF FFzF0 90 80 00zF0 90 80 7FzF0 90 80 C0zF0 90 80 FFzF0 90 BF 00zF0 90 BF 7FzF0 90 BF C0zF0 90 BF FFzF0 BF 80 00zF0 BF 80 7FzF0 BF 80 C0zF0 BF 80 FFzF0 BF BF 00zF0 BF BF 7FzF0 BF BF C0zF0 BF BF FFzF1 00zF1 7FzF1 C0zF1 FFzF1 80 00zF1 80 7FzF1 80 C0zF1 80 FFzF1 BF 00zF1 BF 7FzF1 BF C0zF1 BF FFzF1 80 80 00zF1 80 80 7FzF1 80 80 C0zF1 80 80 FFzF1 80 BF 00zF1 80 BF 7FzF1 80 BF C0zF1 80 BF FFzF1 BF 80 00zF1 BF 80 7FzF1 BF 80 C0zF1 BF 80 FFzF1 BF BF 00zF1 BF BF 7FzF1 BF BF C0zF1 BF BF FFzF3 00zF3 7FzF3 C0zF3 FFzF3 80 00zF3 80 7FzF3 80 C0zF3 80 FFzF3 BF 00zF3 BF 7FzF3 BF C0zF3 BF FFzF3 80 80 00zF3 80 80 7FzF3 80 80 C0zF3 80 80 FFzF3 80 BF 00zF3 80 BF 7FzF3 80 BF C0zF3 80 BF FFzF3 BF 80 00zF3 BF 80 7FzF3 BF 80 C0zF3 BF 80 FFzF3 BF BF 00zF3 BF BF 7FzF3 BF BF C0zF3 BF BF FFzF4 00zF4 7FzF4 90zF4 BFzF4 C0zF4 FFzF4 80 00zF4 80 7FzF4 80 C0zF4 80 FFzF4 8F 00zF4 8F 7FzF4 8F C0zF4 8F FFzF4 80 80 00zF4 80 80 7FzF4 80 80 C0zF4 80 80 FFzF4 80 BF 00zF4 80 BF 7FzF4 80 BF C0zF4 80 BF FFzF4 8F 80 00zF4 8F 80 7FzF4 8F 80 C0zF4 8F 80 FFzF4 8F BF 00zF4 8F BF 7FzF4 8F BF C0zF4 8F BF FFrJ  NrE  rK  s         r   test_invalid_cb_for_4bytes_seq&StrTest.test_invalid_cb_for_4bytes_seqj  sN     8
d6k"8
%,d6k$:8
=Df<M8
f8
 '08
3:F2C8
 f%8
 )3DK'@8
  	8
 $.v"6	8

 f%8

 )3DK'@8
  8
 $.v"68
 DK(8
 ,9$v+*F8
 F#8
 '4V%<8
 DK(8
 ,9$v+*F8
 F#8
 '4V%<8
 DK(8
 ,9$v+*F8
 F#8
 '4V%<8
 DK(8
 ,9$v+*F8
 F#8
 '4V%<8
 d6k"8
 &-d6k$:8
 >Ef<M8
  f!8
  !+DK8!8
" f%#8
" )3F';#8
$  %8
$ $.tF{";%8
& f%'8
& )3F';'8
(  )8
( $1$v+">)8
* DK(+8
* ,9&*A+8
, F#-8
, '4T&[%A-8
. DK(/8
. ,9&*A/8
0 F#18
0 '4T&[%A18
2 DK(38
2 ,9&*A38
4 F#58
4 '4T&[%A58
6 DK(78
6 ,9&*A78
8 F#98
8 '.tF{%;98
: d6k";8
: &-f$5;8
: 9@7H;8
< f%=8
< )3DK'@=8
>  ?8
> $.v"6?8
@ f%A8
@ )3DK'@A8
B  C8
B $.v"6C8
D DK(E8
D ,9$v+*FE8
F F#G8
F '4V%<G8
H DK(I8
H ,9$v+*FI8
J F#K8
J '4V%<K8
L DK(M8
L ,9$v+*FM8
N F#O8
N '4V%<O8
P DK(Q8
P ,9$v+*FQ8
R F#S8
R '4V%<S8
T d6k"U8
T &-d6k$:U8
T >Ef<MU8
V fW8
V !(0W8
V 4;F2CW8
X f%Y8
X )3DK'@Y8
Z  [8
Z $.v"6[8
\ f%]8
\ )3DK'@]8
^  _8
^ $.v"6_8
` DK(a8
` ,9$v+*Fa8
b F#c8
b '4V%<c8
d DK(e8
d ,9$v+*Fe8
f F#g8
f '4V%<g8
h DK(i8
h ,9$v+*Fi8
j F#k8
j '4V%<k8
l DK(m8
l ,9$v+*Fm8
n F#o8
n '4V%<o8
	r "HC**5==+=s+FH "r   c                 F    U R                  SR                  S5      S5        g )Nzwww.python.org.idnas   www.python.org.)rf   r%   rC   s    r   test_codecs_idnaStrTest.test_codecs_idna  s    *11&9;MNr   c                     U R                  [        SR                  S5        U R                  [        SR                  SS5        U R                  SR                  SS5      S5        U R                  SR                  SS5      S5        U R                  SR                  SS5      SR                  SSS95        U R                  SR                  SS5      SR                  SSS	95        U R                  [        [        S
S5        U R                  [        [        S
SS5        U R                  [	        S
SS5      S5        U R                  [	        S
SS5      S5        U R                  [	        SSS5      S5        U R                  SR                  SS5      S5        U R                  [        SR
                  S5        U R                  [        SR
                  S5        U R                  [        [        SS5        U R                  [        SR                  S5        U R                  [        SR                  S5        U R                  [        SR                  SSS5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        g )Nu   Andr xr   r!   r  s   Andr xr  s   Andr? xr  )r"   r   s   Andr xzAndr xu	   Andr� xs    xu   � xs	   \N{foo}xxzunicode-escapexx   \   hellor   r    r  r
   r  u   )r|   UnicodeErrorr%   rf   ra   r&   r   r%  r  rz  complexrC   s    r   test_codecs_errorsStrTest.test_codecs_errors  s`   ,(;(;WE,(;(;WXN,,WX>	J,,WY?L,,Wi@%,,WY,G	I,,Wh?%,,gh,O	Q 	,]GD,]GXN]GX>I]GY?PY;ZH 	--.>I4P 	,6FG)X__oF)S(OD)W^^_E)W^^_E 	)W^^RR@ 	*c84*c84*eX6*eX6*gx8*gx8r   c                    U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S5        U R                  SR                  S5      S	5        U R                  SR                  S
5      S5        U R                  SR                  5       S5        [        S5       HB  n[        U5      nS H.  nU R                  [	        UR                  U5      U5      U5        M0     MD     [        S5       HB  n[        U5      nS H.  nU R                  [	        UR                  U5      U5      U5        M0     MD     [        S5       HB  n[        U5      nS H.  nU R                  [	        UR                  U5      U5      U5        M0     MD     [
        R                  " 5          SnS H.  nU R                  [	        UR                  U5      U5      U5        M0     S S S 5        SR                  [        [        [        [        SS5      5      [        [        SS5      5      -   5      5      nS H.  nU R                  [	        UR                  U5      U5      U5        M0     g ! , (       d  f       N= f)Nr  r   r\  r  r  	utf-16-les
   h e l l o 	utf-16-bes
    h e l l olatin-1u   ☃s   ☃i   )r  r  utf-16rb  rc  raw_unicode_escapeunicode_escaper   )rd  r	  )r   u   𐀁𠀂𰀃񀀄񐀅)r  re  rb  rc  rf  rg  r   r   i   i   rz   )r  )
rf   r%   r   r   ra   r  catch_warningsr   r   list)r>   r3  ur"   s       r   test_codecsStrTest.test_codecs  sM   0(;0(;0(;0(;46RS46RS	2H= 	*O< tAAA/   QXXh%7!A1E/  sAAA(  QXXh%7!A1E )  sAAA&  QXXh%7!A1E '  $$&DAE  QXXh%7!A1EE ' GGCT%6"23!%"9:; < ="HS(!3H=qA # '&s   7K
Kc                 "   [        [        S5      5      nS H-  nU R                  [        X5      R	                  U5      U5        M/     [        [        SS5      5      nS H-  nU R                  [        X5      R	                  U5      U5        M/     g )Nr	  )9cp037cp1026cp273cp437cp500cp720cp737cp775cp850cp852cp855cp858cp860cp861cp862cp863cp865cp866cp1125
iso8859_10
iso8859_13
iso8859_14
iso8859_15	iso8859_2	iso8859_3	iso8859_4	iso8859_5	iso8859_6	iso8859_7	iso8859_9koi8_rkoi8_tkoi8_ukz1048latin_1mac_cyrillic
mac_latin2cp1250cp1251cp1252cp1253cp1254cp1255cp1256cp1257cp1258cp856cp857cp864cp869cp874	mac_greekmac_iceland	mac_romanmac_turkishcp1006	iso8859_8r   ) rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )r  r   rf   ra   r%   )r>   r  r"   s      r   test_codecs_charmapStrTest.test_codecs_charmap	  s~    %*H2 S-44X>B38 %S/"H* S-44X>B+r   c                     U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        g )Nr  r!  r  rC   s    r   test_concatenationStrTest.test_concatenationL	  sT    +1+1+1+k:+k:r   c                    SnUR                  S5      R                  S5      nU R                  X5        SnUR                  S5      R                  S5      nU R                  X5        SnUR                  S5      R                  S5      nU R                  X5         SR                  S5        U R                  S5        g ! [         aB  nU R                  UR
                  S5        U R                  UR                  S5         S nAg S nAff = f)	Nry  zraw-unicode-escapes
   \U00100000s
   \U00010000s
   \U11111111z%Should have raised UnicodeDecodeErrorr   r   )r%   r&   rf   failr  startend)r>   r4  rk  r   s       r   	test_ucs4StrTest.test_ucs4S	  s    HH)*112FGHH)*112FGHH)*112FG	?!!"67
 II=>	 " 	(QWWa(QUUB''	(s   B> >
D
8DD
c           	          " S S[         5      nU R                  [        [        S5      5      S5        U R                  [        [        [        S5      5      5      [        S5      5        U R                  [        [        S5      5      [        S5      5        U R                  [        [        [        S5      5      5      [        S5      5        U R                  [        [        [	        S5      5      5      [        S5      5        U R                  [        U" S5      5      S5        U R                  [        U" [        S5      5      5      [        S5      5        U R                  [        U" S5      5      [        S5      5        U R                  [        U" [        S5      5      5      [        S5      5        U R                  [        U" [	        S5      5      5      [        S5      5        U R                  [        [        S5      5      S5        U R                  [        [        [        S5      5      5      [        S5      5        U R                  [        [        S5      5      [        S5      5        U R                  [        [        [        S5      5      5      [        S5      5        U R                  [        [        [	        S5      5      5      [        S5      5        g )Nc                        \ rS rSrS rS rSrg)+StrTest.test_conversion.<locals>.StrWithStrii	  c                 >    [         R                  U S5      nXl        U$ )Nr   )ra   __new__r<   )r   r<   r>   s      r   r  3StrTest.test_conversion.<locals>.StrWithStr.__new__j	  s    {{3+"
r   c                     U R                   $ r:   r;   rC   s    r   rD   3StrTest.test_conversion.<locals>.StrWithStr.__str__n	  rr  r   r;   N)r-   r.   r/   r0   r  rD   r1   r   r   r   
StrWithStrr  i	  s    "r   r  r   r   )ra   ru   r7   r*   r4   rJ   )r>   r  s     r   test_conversionStrTest.test_conversiong	  s   	" 	" 	c'%.159c'+e*<"=>E@RSk'%.9;u;MNk'+e2D*EF)%0	2k'2B52I*JK)%0	2 	c*U"34e<c*[-?"@A;uCUVk*U*;<k%>PQk*[5G*HI)%0	2k*5Ee5L*MN)%0	2 	c(7"34g>c(;w+?"@A;wCWXk(7*;<k'>RSk(;w3G*HI)'2	4k(3CG3L*MN)'2	4r   c                 X     " S S5      nU R                  [        U" 5       5      S5        g )Nc                       \ rS rSrS rSrg)%StrTest.test_unicode_repr.<locals>.s1i	  c                     g)N\nr   rC   s    r   rO   .StrTest.test_unicode_repr.<locals>.s1.__repr__	  s    r   r   Nrc   r   r   r   s1r  	  s    r   r  r  rf   r   )r>   r  s     r   test_unicode_reprStrTest.test_unicode_repr	  s$    	 	 	bdU+r   c                 v    U R                  [        S5      SS-  5        U R                  [        S5      S5        g )Nrz  z'%c')   u   𔀀z'\U00014000'r  rC   s    r   test_printable_reprStrTest.test_printable_repr	  s1    l+Vj-@Al+_=r   Pr   z only applies to 32-bit platformsc                 b    U R                  [        SR                  [        R                  5        g )Nzt	t	)r|   r  
expandtabsr  r  rC   s    r   $test_expandtabs_overflows_gracefully,StrTest.test_expandtabs_overflows_gracefully	  s      	-)<)<ckkJr   c                 H    SnU R                  UR                  5       U5        g )Nr   )rr   r  )r>   r  s     r   test_expandtabs_optimization$StrTest.test_expandtabs_optimization	  s    allna(r   c                 &  ^	^
 SnUS-   n[         R                  " U5      n[         R                  " U5      nS H  m	[        T	5      nUS:  a  SnUnOUS:  a  SnUnOUS:  a  SnUnOS	nUn[        R                  U-
  U-  m
U	U
4S
 jnU R                  T	UUS9   U R                  [        R                  " T	S-  5      XvS-  -   5        U R                  [        U5        U R                  [        U5        S S S 5        M     g ! , (       d  f       M  = f)NnnbnP)r   rA  r  r  r	  r   r   r  r   r   c                     > T T-  $ r:   r   )r  maxlens   r   <lambda>,StrTest.test_raiseMemError.<locals>.<lambda>	  s	    D6Mr   )r  struct_size	char_sizer
   +   )
r   calcobjsizerG  r  r  r   rf   	getsizeofr|   ra  )r>   asciifieldscompactfieldsascii_struct_sizecompact_struct_sizecoder  r  allocr  r  s            @@r   test_raiseMemErrorStrTest.test_raiseMemError	  s   #d*#//<%11-@9Dt9Dd{	/	1	1	1 {{[0Y>F)E'#     MM$),#78 !!+u5!!+u5 ' :& s   AD
D	c                      " S S[         5      nU" S5      nU R                  SU-  S5        U R                  SR                  U5      S5        g )Nc                       \ rS rSrS rSrg)'StrTest.test_format_subclass.<locals>.Si	  c                     g)N__str__ overriddenr   rC   s    r   rD   /StrTest.test_format_subclass.<locals>.S.__str__	  s    +r   r   Nrc  r   r   r   r  r  	  s    ,r   r  xxxre  r  r  )ra   rf   r  r>   r  r  s      r   test_format_subclassStrTest.test_format_subclass	  sG    	, 	, eH#78Q)=>r   c                      " S S[         5      nU R                  U" S5      U" S5      -   S5         " S S[         5      nU" S5      nUS-  nU R                  US5        g )Nc                       \ rS rSrS rSrg)$StrTest.test_subclass_add.<locals>.Si	  c                     gNr{  r   r>   r  s     r   __add__,StrTest.test_subclass_add.<locals>.S.__add__	      r   r   N)r-   r.   r/   r0   r  r1   r   r   r   r  r  	  r  r   r  rL  r  r{  c                       \ rS rSrS rSrg)r  i	  c                     gr  r   r  s     r   __iadd__-StrTest.test_subclass_add.<locals>.S.__iadd__	  r  r   r   N)r-   r.   r/   r0   r  r1   r   r   r   r  r  	  r  r   rx  r  r  s      r   test_subclass_addStrTest.test_subclass_add	  s\    	 	 	3!C&#.	 	 cF	SC r   c                     SnUR                  5       nU R                  US   U5        U R                  US   U5        U R                  [        U5      S5        g )Nr   r   r   )__getnewargs__assertIsNotrf   r  )r>   r'   rl   s      r   test_getnewargsStrTest.test_getnewargs	  sQ    ""$a$'a$'TA&r   c                    SnSU-  nSU-  nSU-  nSU-  nSU-  nSU-  nSU-  nS	U-  n	X#XEXgX4n
[         R                  " U
S
5       H  u  pXL nU R                  X:H  U5        U R                  X:g  U(       + 5        U(       d  M>  U R                  X:*  5        U R                  X:  5        [	        U5      n[	        U5      nU R                  X5        U R                  X:H  5        U R                  X:g  5        U R                  X:*  5        U R                  X:  5        M     U R                  X#:  5        U R                  X$:  5        U R                  X&:  5        U R                  X(:  5        U R                  X#:  5        U R                  X$:  5        U R                  X&:  5        U R                  X(:  5        U R                  XB:  5        U R                  XE:  5        U R                  XF:  5        U R                  XH:  5        U R                  XB:  5        U R                  XE:  5        U R                  XF:  5        U R                  XH:  5        U R                  Xb:  5        U R                  Xd:  5        U R                  Xg:  5        U R                  Xh:  5        U R                  Xb:  5        U R                  Xd:  5        U R                  Xg:  5        U R                  Xh:  5        U R                  X:  5        U R                  X:  5        U R                  X:  5        U R                  X:  5        U R                  X:  5        U R                  X:  5        U R                  X:  5        U R                  X:  5        g )Nr   r   r7  r  rx   rq  ry   ry  r  r   )	itertoolscombinationsrf   rg   r(   r  r  )r>   r  r   ascii2latinlatin2bmpbmp2astralastral2stringstext1text2equalcopy1copy2s                   r   test_compareStrTest.test_compare	  s   aq
!l!|!"	
 &227A>LE^EU^U3U^Y7u//
 )/(/  ./  0//) ?, 	'&$')(&)''$'')&)%%
#%%%%'(('()(('*+r   c                     [         R                  " U [        [        5        [         R                  " U [        [        5        g r:   )r   check_free_after_iteratingr   ra   reversedrC   s    r   test_free_after_iterating!StrTest.test_free_after_iterating,
  s&    **4s;**43?r   c                     SnSn[         R                  " SU< SU< SU< SU< SU< SU< S	U< S
35      n[        SSSU5      nU R                  UR                  SU5        g )N)r   utf8latin1zBoom, Shaka Laka, Boom!z0
            import sys
            encodings = zn

            for data in (b'', b'short string'):
                try:
                    str(data, encoding=z)
                except LookupError:
                    pass
                else:
                    sys.exit(21)

                try:
                    str(data, errors=z)
                except LookupError:
                    pass
                else:
                    sys.exit(22)

                for encoding in encodings:
                    try:
                        str(data, encoding, errors=z)
                    except LookupError:
                        pass
                    else:
                        sys.exit(22)

            for data in ('', 'short string'):
                try:
                    data.encode(encoding=z)
                except LookupError:
                    pass
                else:
                    sys.exit(23)

                try:
                    data.encode(errors=z)
                except LookupError:
                    pass
                else:
                    sys.exit(24)

                for encoding in encodings:
                    try:
                        data.encode(encoding, errors=z)
                    except LookupError:
                        pass
                    else:
                        sys.exit(24)

            sys.exit(10)
        z-Xdevz-cr   )textwrapdedentr   rf   rc)r>   	encodingsinvalidr  procs        r   test_check_encoding_errors"StrTest.test_check_encoding_errors0
  s     0	+ $" &( )0{ 3& '.[ 14 5<; ?* +2 5( )0{ 36 7>[ A	Y3  3h %T5$="d+r   c                    U R                  [        S5         [        SSSS5        S S S 5        U R                  [        S5         [        SSSS5        S S S 5        U R                  [        S5         [        SS	9  S S S 5        U R                  [        S
5         [        SS5        S S S 5        U R                  [        S
5         [        SSS9  S S S 5        U R                  [        S5         [        SS5        S S S 5        U R                  [        S5         [        SSS9  S S S 5        U R                  [        S
5         [        SSS5        S S S 5        U R                  [        S5         [        SSS9  S S S 5        U R                  [        S5         [        SSSS9  S S S 5        U R                  [        S5         [        SSS5        S S S 5        U R                  [        S5         [        SSSS9  S S S 5        U R                  [        S5         [        SSSS9  S S S 5        U R                  [        S5         [        SSSSS9  S S S 5        U R                  [        S5         [        SSSSS9  S S S 5        g ! , (       d  f       GNb= f! , (       d  f       GNG= f! , (       d  f       GN1= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNn= f! , (       d  f       GNV= f! , (       d  f       GN>= f! , (       d  f       GN%= f! , (       d  f       g = f)Nz'str expected at most 3 arguments, got 4toomanyargumentsr   r   z1str\(\) got an unexpected keyword argument 'test')rO  z0str\(\) argument 'encoding' must be str, not intr  z2str\(\) argument 'encoding' must be str, not bytes   xr  z.str\(\) argument 'errors' must be str, not intr  z0str\(\) argument 'errors' must be str, not bytesr   s   strictzDargument for str\(\) given by name \('encoding'\) and position \(2\)r  z-str\(\) takes at most 3 arguments \(4 given\)r  r!   )r  r   ra   rC   s    r   test_str_invalid_callStrTest.test_str_invalid_calll
  s   ##I/YZvvw/ [##I/YZ2r1 [ ##I/cdQK e ##I/bc1I d##I/bcA d##I/deh f##I/dex( f ##I/bc1aL d##I/`a! b##I/`a2a  b##I/bcgy) d##I/bcgi0 d ##I/vwg0 x##I/_`gx': a##I/_`gx9 a`I [ZZZ ed dccceeee dcaaaacccc xw````s   JJ1
J%J7K	-KK-K?-LL# L5,MM M++M=
J
J"%
J47
K	
K
K*-
K<?
L
L #
L25
M
M
M(+
M:=
Nr   )yr-   r.   r/   r0   ra   rH  rZ   ro   ru   r   r   r   r   r   r   r   r   r   r  r  r$  r*  rN  rX  r`  rf  rj  r|  unittestskipIfr  r  r  r  r   cpython_onlyr  r  r  r  r  r  r  r  requires_resourcer  r  r  r  r  r  r  r  r  r  r&  r9  rB  rI  rO  rT  rX  r\  
skipUnlessrc  rv  r}  r  r5  r<  r@  rC  rT  r  r  r  r  r  r  r  r  run_with_localer  r  r  r  r  r  r  r!  r&  r7  r=  r@  rG  rM  rP  rS  rW  r_  rk  r  r  r  r  r  r  structcalcsizer  r  r  r  r  r  r  r  r&  r.  r1   __classcell__)r  s   @r   rS   rS   J   s    I<6$+,)DV*CX32<A87<+HZ'IRR0S4DHLM";(R"S"@( __S[[5(46767
@. < <
.,?99v11
KL u%4 &4G
11
K$
IK&-5 u%- &-O65,85"H"9"D4< 	13KL
  M
%;N	,F5P
5Mn1
1
0
I<hNT#+J*
K __Y$&(?@* A *
*
( Xw<. =.@
DE	P1"fCJ7"-H^/W8r1&AE4H,8HtMH^O'9R-B^5Cn;?( 4D,> __S[[G,I0D0I79K9K ) )$6L?
!'H,T@:,x': ':r   rS   c                   &    \ rS rSrS rS rS rSrg)StringModuleTesti
  c                 d   S nU" S5      nU R                  U/ SQ5        U" S5      nU R                  USS/5        U" S5      nU R                  US/5        U" S	5      nU R                  U/ 5        U" S
5      nU R                  US/5        U R                  [        [        R                  S5        g )Nc                 @    [        [        R                  " U 5      5      $ r:   )ri  _stringformatter_parserr  s    r   parse5StringModuleTest.test_formatter_parser.<locals>.parse
  s    00899r   z2prefix {2!s}xxx{0:^+10.3f}{obj.attr!s} {z[0]!s:10}))prefix ry  r   r  )r  r  z^+10.3fN)r   zobj.attrr   r  )r{   zz[0]r  r  zprefix {} suffix)rA  r   r   N)z suffixNNNra   )ra   NNNr   r  )r   r  r   Nr   )rf   r|   r   r=  r>  )r>   r?  	formatters      r   test_formatter_parser&StringModuleTest.test_formatter_parser
  s    	: NO	 %
 	 ,-	%)%
 	
 %L	%%
 	 "I	B'%L	%
 	 	)W%=%=qAr   c                 ,   S nU R                  U" S5      S/ /5        U R                  U" S5      SS//5        U R                  U" S5      SS//5        U R                  U" S5      S/ SQ/5        U R                  [        [        R                  S	5        g )
Nc                 f    [        [        R                  " U 5      5      n[        US   5      US'   U$ )Nr   )ri  r=  formatter_field_name_split)r  itemss     r   rW  ?StringModuleTest.test_formatter_field_name_split.<locals>.split
  s-    ;;DABEE!H~E!HLr   r  zobj.argTargzobj[key])Fr  zobj.arg[key1][key2])rJ  )Fkey1)Fkey2r   )rf   r|   r   r=  rG  )r>   rW  s     r   test_formatter_field_name_split0StringModuleTest.test_formatter_field_name_split
  s    	 	ur{3y)EM?+CDz*U^4D,EF458 	 	)W%G%GKr   c                    [        S5      n[        S5      n " S S5      nU" 5       nU R                  [        5         [        XA5        S S S 5        [	        XAS5        U R                  UR                  S5        SUl        U R                  [        UR                  5      U/5        U R                  [        5         [        XB5        S S S 5        U R                  [        5         U?	S S S 5        [	        XBS5        U R                  UR                  S5        SUl	        U R                  [        UR                  5      X/5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)	Nr  name2c                       \ rS rSrSrg)4StringModuleTest.test_str_subclass_attr.<locals>.Bagi
  r   Nr,   r   r   r   BagrS  
  r   r   rT  r   r   r   r   )
r*   r|   AttributeErrordelattrsetattrrf   r  ri  __dict__rQ  )r>   r  rQ  rT  r  s        r   test_str_subclass_attr'StringModuleTest.test_str_subclass_attr
  s   6"G$	 	 E~.A /#ajj)D62~.A /~. /!!$ajj)D=9 /. /...s#   E;E$E(
E
E%(
E6r   N)r-   r.   r/   r0   rC  rN  rY  r1   r   r   r   r:  r:  
  s    BBL :r   r:  __main__)$__doc__r=  rV   r  r  r  r   r6  r  r   r  r0  r  test.supportr   rO  r   r   test.support.script_helperr   r  ImportErrorr#   r(   ra   r*   r4   r7   rJ   r   MixinStrUnicodeTestTestCaserS   r:  r-   mainr   r   r   <module>rc     s           
     ( & <
 "	# 		s 	  I):l))((I):XRH:x(( H:V zMMO OV  Is   C C C 