
    0hhg8                         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rS r " S S\R                  5      r	\
S:X  a  \R                  " 5         gg)    Na  # coding: %s
a = 'x'
assert ord(a) == 120
b = '\x01'
assert ord(b) == 1
c = r'\x01'
assert list(map(ord, c)) == [92, 120, 48, 49]
d = '\x81'
assert ord(d) == 0x81
e = r'\x81'
assert list(map(ord, e)) == [92, 120, 56, 49]
f = '\u1881'
assert ord(f) == 0x1881
g = r'\u1881'
assert list(map(ord, g)) == [92, 117, 49, 56, 56, 49]
h = '\U0001d120'
assert ord(h) == 0x1d120
i = r'\U0001d120'
assert list(map(ord, i)) == [92, 85, 48, 48, 48, 49, 100, 49, 50, 48]
c                     [        U /5      $ N)bytes)is    B/opt/python-3.13.8/usr/lib/python3.13/test/test_string_literals.pybyter   <   s    !:    c                       \ 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S jrS rS rS rS rS rS rSrg)TestLiterals@   c                     [         R                  S S  U l        [        R                  " 5       U l        [         R                  R                  SU R
                  5        g )Nr   )syspath	save_pathtempfilemkdtemptmpdirinsertselfs    r   setUpTestLiterals.setUpB   s7    !&&(4;;'r	   c                 |    U R                   [        R                  S S & [        R                  " U R
                  SS9  g )NT)ignore_errors)r   r   r   shutilrmtreer   r   s    r   tearDownTestLiterals.tearDownG   s%    nndkk6r	   c                     [          H  nM     g r   )TEMPLATE)r   cs     r   test_templateTestLiterals.test_templateK   s     Ar	   c                 z   U R                  [        S5      S5        U R                  [        S5      [        S5      5        U R                  [        S5      [        S5      5        U R                  [        S5      [        S5      5        U R                  [        S5      [        S5      5        U R                  [        S	5      [        S
5      5        U R                  [        S5      [        S
5      5        U R                  [        S5      [        S5      5        U R                  [        S5      [        S5      5        g )Nz 'x' xz '\x01'    z '' z '\x81'    u    '' z
 '\u1881'   u    'ᢁ' z '\U0001d120'   u    '𝄠' assertEqualevalchrr   s    r   test_eval_str_normal!TestLiterals.test_eval_str_normalQ   s    k*C0o.A7n-s1v6o.D	:n-s4y9/0#f+>./V=34c'lC23S\Br	   c                    U R                  [        [        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        U R                  [        [        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 )Nz '\x' z '\x0' z '\u' z '\u0' z '\u00' z	 '\u000' z '\U' z '\U0' z '\U00' z	 '\U000' z
 '\U0000' z '\U00000' z '\U000000' z '\U0000000' assertRaisesSyntaxErrorr,   r   s    r   test_eval_str_incomplete%TestLiterals.test_eval_str_incomplete\   s   +t];+t^<+t];+t^<+t_=+t-=>+t];+t^<+t_=+t-=>+t->?+t-?@+t-@A+t-ABr	   c           	         [        SS5       HS  nUS;   a  M  U R                  [        5         U R                  [	        SU-  5      S[        U5      -   5        S S S 5        MU     [        R                  " SS9 n[        R                  " S[        S	9  [	        S
5        S S S 5        U R                  [        W5      S5        U R                  [        US   R                  5      S5        U R                  US   R                  S5        U R                  US   R                  S5        [        R                  " SS9 n[        R                  " S[        S	9  U R                  [        5       n[	        S
5        S S S 5        WR                   nS S S 5        U R                  U/ 5        U R                  WR"                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR$                  S5        [        R                  " SS9 n[        R                  " S[        S	9  U R                  [        5       n[	        S5        S S S 5        WR                   nS S S 5        U R                  [        U5      S5        U R                  US   R&                  [        5        U R)                  [        US   R                  5      S5        U R                  US   R                  S5        g ! , (       d  f       GM  = f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)Nr&      s   
"'01234567NU\abfnrtuvxz'\%c'\Trecordalwayscategoryz	'''
\z'''r   invalid escape sequence '\z'<string>   errorz'\e' $zinvalid escape sequence)rangeassertWarnsSyntaxWarningr+   r,   r-   warningscatch_warningssimplefilterlenstrmessagefilenamelinenor2   r3   	exceptionmsgoffsetr=   assertRegexr   bwcmexcs        r   test_eval_str_invalid_escape)TestLiterals.test_eval_str_invalid_escapel   s}   q#A66!!-0  hl!3TCF]C 10  $$D1Q!!(]C 2 	Q#QqT\\*,KL1
31a($$D1Q!!'MB"";/2]# 0,,C	 2
 	B"ABz2Q'Q' $$D1Q!!(]C"";/2Y 0,,C	 2
 	Q#16QqT\\*,EF1
3A 10 21 0/ 21 0/ 21s_   +L8%L:/L;)L)5L;'/MM"M
L	
L&)
L8	3L;;
M

M	M
M,c                    [        SS5       HH  nU R                  [        5         U R                  [	        SU-  5      [        U5      5        S S S 5        MJ     [        R                  " SS9 n[        R                  " S[        S9  [	        S5        S S S 5        U R                  [        W5      S	5        U R                  [        US
   R                  5      S5        U R                  US
   R                  S5        U R                  US
   R                  S5        [        R                  " SS9 n[        R                  " S[        S9  U R                  [        5       n[	        S5        S S S 5        WR                   nS S S 5        U R                  U/ 5        U R                  WR"                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR$                  S	5        g ! , (       d  f       GM  = f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)N      z'\%o'Tr9   r;   r<   z'''
\407'''r&   r   $invalid octal escape sequence '\407'r?   r@   rA   )rB   rC   rD   r+   r,   r-   rE   rF   rG   rH   rI   rJ   rK   rL   r2   r3   rM   rN   rO   r   r   rS   rT   rU   s        r   "test_eval_str_invalid_octal_escape/TestLiterals.test_eval_str_invalid_octal_escape   s   uf%A!!-0  hl!3SV< 10 & $$D1Q!!(]C! 2 	Q#QqT\\*@	B1
31a($$D1Q!!'MB"";/2_% 0,,C	 2
 	B"IJz2Q'Q'+ 10 21 0/ 21s;   (H	-%H//H?H.*H?	
H	
H+.
H<	8H??
Ic                 D   [         R                  " SS9 n[         R                  " S[        S9  U R	                  [
        5       n[        S5        S S S 5        WR                  nS S S 5        U R                  W/ 5        U R                  WR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S	5        [         R                  " SS9 n[         R                  " S[        S9  U R	                  [
        5       n[        S
5        S S S 5        WR                  nS S S 5        U R                  U/ 5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)NTr9   rA   r<   z&"'''''''''''''''''''''invalid\ Escape"zinvalid escape sequence '\ 'r?   r&      z"''Incorrect \ logic?"   )rE   rF   rG   rD   r2   r3   r,   rM   r+   rN   rK   rL   rO   )r   rS   rT   rU   s       r   )test_invalid_escape_locations_with_offset6TestLiterals.test_invalid_escape_locations_with_offset   s   $$D1Q!!'MB"";/2@A 0,,C	 2
 	B"ABz2Q'R($$D1Q!!'MB"";/201 0,,C	 2
 	B"ABz2Q'R(% 0/ 21 0/ 21sG   /G.GG./H1H =H
G+	&G..
G= 
H	
H
Hc                 2   U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      [        S5      5        U R                  [        S5      S5        U R                  [        S	5      [        S
5      5        U R                  [        S5      S5        U R                  [        S5      [        S5      5        U R                  [        S5      S5        U R                  [        S5      [        S5      5        g )Nz r'x' r%   z	 r'\x01' \x01z r'' r&   z	 r'\x81' z\x81u    r'' r'   z r'\u1881' z\u1881u    r'ᢁ' r(   z r'\U0001d120' z
\U0001d120u	    r'𝄠' r)   r*   r   s    r   test_eval_str_rawTestLiterals.test_eval_str_raw   s    l+S1./>o.A7./>o.D	:01>B/0#f+>457IJ34c'lCr	   c                     U R                  [        S5      S5        U R                  [        S5      [        S5      5        U R                  [        S5      [        S5      5        U R                  [        S5      [        S5      5        U R                  [        [        S5        U R                  [        S	5      S
5        U R                  [        [        S5        U R                  [        S5      S5        U R                  [        [        S5        g )Nz b'x'    xz	 b'\x01' r&   z b'' z	 b'\x81' r'   u    b''  br'\u1881'    \u1881u    b'ᢁ'  br'\U0001d120' 
   \U0001d120u	    b'𝄠' r+   r,   r   r2   r3   r   s    r   test_eval_bytes_normal#TestLiterals.test_eval_bytes_normal   s    l+T2./a9o.Q8./d<+t_=124DE+t->?568LM+t-BCr	   c                 p    U R                  [        [        S5        U R                  [        [        S5        g )Nz b'\x' z b'\x0' r1   r   s    r   test_eval_bytes_incomplete'TestLiterals.test_eval_bytes_incomplete   s&    +t^<+t_=r	   c           	         [        SS5       HT  nUS;   a  M  U R                  [        5         U R                  [	        SU-  5      S[        U/5      -   5        S S S 5        MV     [        R                  " SS9 n[        R                  " S[        S	9  [	        S
5        S S S 5        U R                  [        W5      S5        U R                  [        US   R                  5      S5        U R                  US   R                  S5        U R                  US   R                  S5        [        R                  " SS9 n[        R                  " S[        S	9  U R                  [        5       n[	        S
5        S S S 5        WR                   nS S S 5        U R                  U/ 5        U R                  WR"                  S5        U R                  UR                  S5        U R                  UR                  S5        g ! , (       d  f       GM  = f! , (       d  f       GNu= f! , (       d  f       N= f! , (       d  f       N= f)Nr&   r7   s   
"'01234567\abfnrtvxzb'\%c'   \Tr9   r;   r<   z
b'''
\z'''r   r>   r?   r@   rA   rB   rC   rD   r+   r,   r   rE   rF   rG   rH   rI   rJ   rK   rL   r2   r3   rM   rN   rQ   s        r   test_eval_bytes_invalid_escape+TestLiterals.test_eval_bytes_invalid_escape   s   q#A33!!-0  i!m!4eeQCj6HI 10  $$D1Q!!(]C  2 	Q#QqT\\*,KL1
31a($$D1Q!!'MB"";/2^$ 0,,C	 2
 	B"ABz2Q'' 10 21 0/ 21s;   ,G99%H;/H/*H6H/9
H		
H
H,	(H//
H=c           	      p   [        SS5       HL  nU R                  [        5         U R                  [	        SU-  5      [        US-  /5      5        S S S 5        MN     [        R                  " SS9 n[        R                  " S[        S9  [	        S	5        S S S 5        U R                  [        W5      S
5        U R                  [        US   R                  5      S5        U R                  US   R                  S5        U R                  US   R                  S5        [        R                  " SS9 n[        R                  " S[        S9  U R                  [        5       n[	        S	5        S S S 5        WR                   nS S S 5        U R                  U/ 5        U R                  WR"                  S5        U R                  UR                  S5        U R                  UR                  S5        g ! , (       d  f       GM  = f! , (       d  f       GNu= f! , (       d  f       N= f! , (       d  f       N= f)NrY   rZ   zb'\%o'   Tr9   r;   r<   zb'''
\407'''r&   r   r[   r?   r@   rA   rv   r\   s        r   $test_eval_bytes_invalid_octal_escape1TestLiterals.test_eval_bytes_invalid_octal_escape   s   uf%A!!-0  i!m!4eQYK6HI 10 & $$D1Q!!(]C!" 2 	Q#QqT\\*@	B1
31a($$D1Q!!'MB"";/2%& 0,,C	 2
 	B"IJz2Q') 10 21 0/ 21s;   ,G11%H3/H'"H.H'1
H	
H
H$	 H''
H5c                 8   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      5        U R                  [        S	5      [        S5      5        U R                  [        S
5      S5        U R                  [        S5      S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        S5      S5        U R                  [        S5      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        U R                  [        [        S5        U R                  [        [        S5        g )Nz br'x' ri   z rb'x' z
 br'\x01'    \x01z
 rb'\x01' z br'' r&   z rb'' z
 br'\x81' s   \x81z
 rb'\x81' u    br'' u    rb'' rj   rk   z rb'\u1881' u	    br'ᢁ' u	    rb'ᢁ' rl   rm   z rb'\U0001d120' u
    br'𝄠' u
    rb'𝄠' z bb'' z rr'' z brr'' z bbr'' z rrb'' z rbb'' rn   r   s    r   test_eval_bytes_raw TestLiterals.test_eval_bytes_raw  s   m,d3m,d3/0.A/0.A./a9./a9/0.A/0.A+t-=>+t-=>124DE124DE+t-?@+t-?@568LM568LM+t-CD+t-CD+t\:+t\:+t];+t];+t];+t];r	   c                 ~   U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S5        U R                  [        [        S	5        g )
Nz u'x' r%   u    U'ä'    äu    u'ä' z ur'' z ru'' z bu'' z ub'' )r+   r,   r2   r3   r   s    r   test_eval_str_uTestLiterals.test_eval_str_u'  s    l+S1/0$7PQSWX+t\:+t\:+t\:+t\: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        g )Nz B'x' ri   z	 R'\x01' re   z
 BR'\x01' r~   z
 F'{1+1}' r@   z U'\U0001d120' u   𝄠)r+   r,   r   s    r   test_uppercase_prefixes$TestLiterals.test_uppercase_prefixes0  sq    l+T2./9/0(;./C5:45}Er	   c                 t   SUR                  SS5      -   n[        R                  R                  U R                  US-   5      n[        USUS9n UR                  [        U-  5        UR                  U5        UR                  5         [        U5        [        R                  U	 g ! UR                  5         f = f)Nxx_-_z.pyrS   )encoding)replaceosr   joinr   openwriter    close
__import__r   modules)r   r   extramodnamefnfs         r   check_encodingTestLiterals.check_encoding7  s    (**344WW\\$++w7S8,	GGHx'(GGENGGI7KK  GGIs   )B% %B7c                 ,    SnU R                  SU5        g )Nu#   z = 'ሴ'; assert ord(z) == 0x1234
utf-8r   r   r   s     r   test_file_utf_8TestLiterals.test_file_utf_8C  s    9GU+r	   c                 L    SnU R                  [        U R                  SU5        g )Nu   b''
r   )r2   r3   r   r   s     r   test_file_utf_8_error"TestLiterals.test_file_utf_8_errorG  s!    +t':':GUKr	   c                 &    U R                  S5        g )Nr   r   r   s    r   test_file_utf8TestLiterals.test_file_utf8K  s    G$r	   c                 &    U R                  S5        g )Nz
iso-8859-1r   r   s    r   test_file_iso_8859_1!TestLiterals.test_file_iso_8859_1N  s    L)r	   c                 &    U R                  S5        g )Nzlatin-1r   r   s    r   test_file_latin_1TestLiterals.test_file_latin_1Q  s    I&r	   c                 &    U R                  S5        g )Nlatin9r   r   s    r   test_file_latin9TestLiterals.test_file_latin9T  s    H%r	   )r   r   N) )__name__
__module____qualname____firstlineno__r   r   r"   r.   r4   rV   r]   rb   rf   ro   rr   rw   r{   r   r   r   r   r   r   r   r   r   r   __static_attributes__ r	   r   r   r   @   s|    (
79	CC $4L(2).	D	D>(2(0<4;F
!,L%*'&r	   r   __main__)r   r   r   r   unittestrE   r    r   TestCaser   r   mainr   r	   r   <module>r      sR   < 
 
    ,U&8$$ U&p zMMO r	   