o
    HXîhÉ(  ã                   @   sh   	 d dl Z d dlZd dlZd dlZd dlZd dlZdZdd„ ZG dd„ dejƒZ	e
dkr2e ¡  dS dS )é    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                 C   s
   t | gƒS ©N)Úbytes)Úi© r   úC/opt/python-3.10.19/usr/lib/python3.10/test/test_string_literals.pyÚbyte<   s   
r   c                   @   s®   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd+dd„Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*S ),ÚTestLiteralsc                 C   s.   t jd d … | _t ¡ | _t j d| j¡ d S )Nr   )ÚsysÚpathÚ	save_pathÚtempfileÚmkdtempÚtmpdirÚinsert©Úselfr   r   r   ÚsetUpB   s   
zTestLiterals.setUpc                 C   s$   | j tjd d …< tj| jdd d S )NT)Úignore_errors)r   r	   r
   ÚshutilÚrmtreer   r   r   r   r   ÚtearDownG   s   zTestLiterals.tearDownc                 C   s   t D ]}qd S r   )ÚTEMPLATE)r   Úcr   r   r   Útest_templateK   s   zTestLiterals.test_templatec                 C   s´   |   tdƒd¡ |   tdƒtdƒ¡ |   tdƒtdƒ¡ |   tdƒtdƒ¡ |   tdƒtdƒ¡ |   td	ƒtd
ƒ¡ |   tdƒtd
ƒ¡ |   tdƒtdƒ¡ |   tdƒtdƒ¡ d S )Nz 'x' Úxz '\x01' é   z '' z '\x81' é   u    'Â' z
 '\u1881' é  u    'á¢' z '\U0001d120' é Ñ u    'ð„ ' ©ÚassertEqualÚevalÚchrr   r   r   r   Útest_eval_str_normalQ   s   z!TestLiterals.test_eval_str_normalc                 C   sÈ   |   ttd¡ |   ttd¡ |   ttd¡ |   ttd¡ |   ttd¡ |   ttd¡ |   ttd¡ |   ttd¡ |   ttd	¡ |   ttd
¡ |   ttd¡ |   ttd¡ |   ttd¡ |   ttd¡ d S )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   r   r   r   Útest_eval_str_incomplete\   s   z%TestLiterals.test_eval_str_incompletec              	   C   s‚  t ddƒD ]*}|dv rq|  t¡ |  td| ƒdt|ƒ ¡ W d   ƒ n1 s*w   Y  qtjdd}tjdtd	 td
ƒ W d   ƒ n1 sLw   Y  |  t	|ƒd¡ |  |d j
d¡ |  |d jd¡ tjdd+}tjdtd	 |  t¡}td
ƒ W d   ƒ n1 sw   Y  |j}W d   ƒ n1 sŸw   Y  |  |g ¡ |  |j
d¡ |  |jd¡ |  |jd¡ d S )Nr   é€   s   
"'01234567NU\abfnrtuvxz'\%c'ú\T©ÚrecordÚalways©Úcategoryz	'''
\z'''r   ú<string>Úerror)ÚrangeÚassertWarnsÚDeprecationWarningr    r!   r"   ÚwarningsÚcatch_warningsÚsimplefilterÚlenÚfilenameÚlinenor%   r&   Ú	exceptionÚoffset©r   ÚbÚwÚcmÚexcr   r   r   Útest_eval_str_invalid_escapel   s2   ÿ€
þ
ÿüz)TestLiterals.test_eval_str_invalid_escapec                 C   s¤   |   tdƒd¡ |   tdƒd¡ |   tdƒtdƒ¡ |   tdƒd¡ |   td	ƒtd
ƒ¡ |   tdƒd¡ |   tdƒtdƒ¡ |   tdƒd¡ |   tdƒtdƒ¡ d S )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   r   r   r   Útest_eval_str_raw„   s   zTestLiterals.test_eval_str_rawc                 C   sš   |   tdƒd¡ |   tdƒtdƒ¡ |   tdƒtdƒ¡ |   tdƒtdƒ¡ |  ttd¡ |   td	ƒd
¡ |  ttd¡ |   tdƒd¡ |  ttd¡ d S )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   r%   r&   r   r   r   r   Útest_eval_bytes_normal   s   z#TestLiterals.test_eval_bytes_normalc                 C   s    |   ttd¡ |   ttd¡ d S )Nz b'\x' z b'\x0' r$   r   r   r   r   Útest_eval_bytes_incompleteš   s   z'TestLiterals.test_eval_bytes_incompletec              	   C   sv  t ddƒD ]+}|dv rq|  t¡ |  td| ƒdt|gƒ ¡ W d   ƒ n1 s+w   Y  qtjdd}tjdtd	 td
ƒ W d   ƒ n1 sMw   Y  |  t	|ƒd¡ |  |d j
d¡ |  |d jd¡ tjdd+}tjdtd	 |  t¡}td
ƒ W d   ƒ n1 sŽw   Y  |j}W d   ƒ n1 s w   Y  |  |g ¡ |  |j
d¡ |  |jd¡ d S )Nr   r(   s   
"'01234567\abfnrtvxzb'\%c'ó   \Tr*   r,   r-   z
b'''
\z'''r   r/   r0   )r1   r2   r3   r    r!   r   r4   r5   r6   r7   r8   r9   r%   r&   r:   r<   r   r   r   Útest_eval_bytes_invalid_escapež   s0    ÿ€
þ
ÿüz+TestLiterals.test_eval_bytes_invalid_escapec                 C   st  |   tdƒd¡ |   tdƒd¡ |   tdƒd¡ |   tdƒd¡ |   tdƒtdƒ¡ |   td	ƒtdƒ¡ |   td
ƒd¡ |   tdƒd¡ |  ttd¡ |  ttd¡ |   tdƒd¡ |   tdƒd¡ |  ttd¡ |  ttd¡ |   tdƒd¡ |   tdƒd¡ |  ttd¡ |  ttd¡ |  ttd¡ |  ttd¡ |  ttd¡ |  ttd¡ |  ttd¡ |  ttd¡ d S )Nz br'x' rD   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'Â' rE   rF   z rb'\u1881' u	    br'á¢' u	    rb'á¢' rG   rH   z rb'\U0001d120' u
    br'ð„ ' u
    rb'ð„ ' z bb'' z rr'' z brr'' z bbr'' z rrb'' z rbb'' rI   r   r   r   r   Útest_eval_bytes_rawµ   s0   z TestLiterals.test_eval_bytes_rawc                 C   sl   |   tdƒd¡ |   tdƒd¡ |   tdƒd¡ |  ttd¡ |  ttd¡ |  ttd¡ |  ttd	¡ d S )
Nz u'x' r   u    U'Ã¤' õ   Ã¤u    u'Ã¤' z ur'' z ru'' z bu'' z ub'' )r    r!   r%   r&   r   r   r   r   Útest_eval_str_uÏ   s   zTestLiterals.test_eval_str_uc                 C   sV   |   tdƒd¡ |   tdƒd¡ |   tdƒd¡ |   tdƒd› ¡ |   td	ƒd
¡ d S )Nz B'x' rD   z	 R'\x01' rB   z
 BR'\x01' rN   z
 F'{1+1}' é   z U'\U0001d120' u   ð„ )r    r!   r   r   r   r   Útest_uppercase_prefixesØ   s
   z$TestLiterals.test_uppercase_prefixesÚ c                 C   sv   d|  dd¡ }tj | j|d ¡}t|d|d}z| t| ¡ | |¡ W | ¡  n| ¡  w t	|ƒ t
j|= d S )NZxx_ú-Ú_z.pyr>   )Úencoding)ÚreplaceÚosr
   Újoinr   ÚopenÚwriter   ÚcloseÚ
__import__r	   Úmodules)r   rW   ÚextraÚmodnameÚfnÚfr   r   r   Úcheck_encodingß   s   zTestLiterals.check_encodingc                 C   s   d}|   d|¡ d S )Nu#   z = 'áˆ´'; assert ord(z) == 0x1234
úutf-8©rd   ©r   r`   r   r   r   Útest_file_utf_8ë   s   zTestLiterals.test_file_utf_8c                 C   s   d}|   t| jd|¡ d S )Nu   b'Â€'
re   )r%   r&   rd   rg   r   r   r   Útest_file_utf_8_errorï   s   z"TestLiterals.test_file_utf_8_errorc                 C   ó   |   d¡ d S )Nre   rf   r   r   r   r   Útest_file_utf8ó   ó   zTestLiterals.test_file_utf8c                 C   rj   )Nz
iso-8859-1rf   r   r   r   r   Útest_file_iso_8859_1ö   rl   z!TestLiterals.test_file_iso_8859_1c                 C   rj   )Nzlatin-1rf   r   r   r   r   Útest_file_latin_1ù   rl   zTestLiterals.test_file_latin_1c                 C   rj   )NÚlatin9rf   r   r   r   r   Útest_file_latin9ü   rl   zTestLiterals.test_file_latin9N)rT   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r#   r'   rA   rC   rJ   rK   rM   rO   rQ   rS   rd   rh   ri   rk   rm   rn   rp   r   r   r   r   r   @   s*    	
r   Ú__main__)rY   r	   r   r   Zunittestr4   r   r   ZTestCaser   rq   Úmainr   r   r   r   Ú<module>   s     Aÿ