a
    äzeá'  ã                   @   sn   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 dlmZ dZdd„ Z	G dd„ dej
ƒZedkrje ¡  dS )	é    N)Úuse_old_parseraÈ  # 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   ú//usr/lib/python3.9/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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   ÚsetUpC   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   ÚtearDownH   s    zTestLiterals.tearDownc                 C   s   t D ]}qd S r   )ÚTEMPLATE)r   Úcr   r   r   Útest_templateL   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_normalR   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 ]T}|dv rq
|  t¡, |  td| ƒdt|ƒ ¡ W d   ƒ q
1 sT0    Y  q
tjdd&}tjdtd	 td
ƒ W d   ƒ n1 s˜0    Y  |  t	|ƒd¡ |  |d j
d¡ |  |d jd¡ tjddX}tjdtd	 |  t¡}td
ƒ W d   ƒ n1 s0    Y  |j}W d   ƒ n1 sB0    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_escapem   s(    <&(&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' z\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   sˆ  t ddƒD ]V}|dv rq
|  t¡. |  td| ƒdt|gƒ ¡ W d   ƒ q
1 sV0    Y  q
tjdd&}tjdtd	 td
ƒ W d   ƒ n1 sš0    Y  |  t	|ƒd¡ |  |d j
d¡ tƒ rÞ|  |d jd¡ tjddX}tjdtd	 |  t¡}td
ƒ W d   ƒ n1 s$0    Y  |j}W d   ƒ n1 sJ0    Y  |  |g ¡ |  |j
d¡ tƒ r„|  |jd¡ d S )Nr   r)   s   
"'01234567\abfnrtvxzb'\%c'ó   \Tr+   r-   r.   z
b'''
\z'''r   r0   r1   )r2   r3   r4   r!   r"   r   r5   r6   r7   r8   r9   r   r:   r&   r'   r;   r=   r   r   r   Útest_eval_bytes_invalid_escapeŸ   s*    >&(&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' s   \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_uÚ c                 C   sv   d|  dd¡ }tj | j|d ¡}t|d|d}z$| t| ¡ | |¡ W | ¡  n
| ¡  0 t	|ƒ t
j|= d S )NZxx_ú-Ú_z.pyr?   )Úencoding)ÚreplaceÚosr   Újoinr   ÚopenÚwriter   ÚcloseÚ
__import__r
   Úmodules)r   rT   Ú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©ra   ©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'Â€'
rb   )r&   r'   ra   rd   r   r   r   Útest_file_utf_8_errorë   s    z"TestLiterals.test_file_utf_8_errorc                 C   s   |   d¡ d S )Nrb   rc   r   r   r   r   Útest_file_utf8ï   s    zTestLiterals.test_file_utf8c                 C   s   |   d¡ d S )Nz
iso-8859-1rc   r   r   r   r   Útest_file_iso_8859_1ò   s    z!TestLiterals.test_file_iso_8859_1c                 C   s   |   d¡ d S )Nzlatin-1rc   r   r   r   r   Útest_file_latin_1õ   s    zTestLiterals.test_file_latin_1c                 C   s   |   d¡ d S )NÚlatin9rc   r   r   r   r   Útest_file_latin9ø   s    zTestLiterals.test_file_latin9N)rQ   )Ú__name__Ú
__module__Ú__qualname__r   r   r   r$   r(   rB   rC   rJ   rK   rM   rN   rP   ra   re   rf   rg   rh   ri   rk   r   r   r   r   r	   A   s&   	
r	   Ú__main__)rV   r
   r   r   Zunittestr5   Ztest.supportr   r   r   ZTestCaser	   rl   Úmainr   r   r   r   Ú<module>   s    <