Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_unparse.cpython-311.opt-2.pyc
�

�Ke�a���	ddlZddlZddlZddlZddlZddlZd�ZdZdZ	dZ
dZdZdZ
d	Zd
ZdZdZd
ZdZdZdZGd�dej��ZGd�de��ZGd�de��ZGd�de��Zedkrej��dSdS)�Nc��	tj|��5}|���cddd��S#1swxYwYdS�N)�tokenize�open�read)�filename�streams  �;/usr/local/apps/python3/lib/python3.11/test/test_unparse.py�read_pyfilers���7�	��x�	 �	 ��F��{�{�}�}���������������������s�7�;�;zQdef f():
    for x in range(10):
        break
    else:
        y = 2
    z = 3
zIdef g():
    while True:
        break
    else:
        y = 2
    z = 3
zQfrom . import fred
from .. import barney
from .australia import shrimp as prawns
zzdef f():
    x = 1
    def g():
        nonlocal x
        x = 2
        y = 7
        def h():
            nonlocal x, y
zOtry:
    1 / 0
except ZeroDivisionError as e:
    raise ArithmeticError from e
z@f1(arg)
@f2
class Foo: pass
z=if cond1:
    suite1
elif cond2:
    suite2
else:
    suite3
z,if cond1:
    suite1
elif cond2:
    suite2
zctry:
    suite1
except ex1:
    suite2
except ex2:
    suite3
else:
    suite4
finally:
    suite5
zetry:
    suite1
except* ex1:
    suite2
except* ex2:
    suite3
else:
    suite4
finally:
    suite5
zwith f():
    suite1
zwith f() as x:
    suite1
z$with f() as x, g() as y:
    suite1
)�zclass foo:
    zdef foo():
    zasync def foo():
    c�<�eZdZd�Zd�Zefd�Zdd�Zdd�Zdd�Z	dS)	�ASTTestCasec�������|tj����|tj��t��f��fd�	��||��dS)Nc����t|��t|��ur4�
�t|���dt|������t|tj��r>|jD]4}t
|||��}t
|||��}||ur�||���5dSt|t��r�	t||d���D]\}}�||���dS#t$rRt|��}t|��}	||	krd}
||	z
}nd}
|	|z
}|
�d|�d�}�
�|��d�wxYw||kr�
�|�d|����dSdS)	Nz is not T)�strict�First�Secondz list contains z additional elements.z != )�type�fail�
isinstance�ast�AST�_fields�getattr�list�zip�
ValueError�len�failureException)�a�b�missing�field�value1�value2�node1�node2�len1�len2�what�diff�msg�self�traverse_compares             ��r
r.z4ASTTestCase.assertASTEqual.<locals>.traverse_compare�s�����A�w�w�d�1�g�g�%�%��	�	�T�!�W�W�;�;��Q���;�;�<�<�<��!�S�W�%�%�
-��Y�9�9�E�$�Q��w�7�7�F�$�Q��w�7�7�F��V�+�+�(�(���8�8�8��
9�9��A�t�$�$�
-�?�(+�A�q��(>�(>�(>�7�7���u�(�(���6�6�6�6�7�7��!�?�?�?��q�6�6�D��q�6�6�D��d�{�{�&��#�d�{���'��#�d�{��!�M�M�$�M�M�M�C��/�/��4�4�$�>�?�����a����	�	�Q�+�+�a�+�+�,�,�,�,�,��s
�$C(�(AE)�assertIsInstancerr�object)r-�ast1�ast2r.s`  @r
�assertASTEqualzASTTestCase.assertASTEqual�s{�������d�C�G�,�,�,����d�C�G�,�,�,�
,2�8�8�	-�	-�	-�	-�	-�	-�	-�:	���t�$�$�$�$�$�c��|�||���5tj|fi|��}tj|��}tj|fi|��}|�||��ddd��dS#1swxYwYdS)N)�code1�ast_parse_kwargs)�subTestr�parse�unparser3)r-r6�kwargsr1�code2r2s      r
�check_ast_roundtripzASTTestCase.check_ast_roundtrip�s���
�\�\���\�
?�
?�	,�	,��9�U�-�-�f�-�-�D��K��%�%�E��9�U�-�-�f�-�-�D�����d�+�+�+�		,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,s�AA4�4A8�;A8c��|�|���5|�|tj|��ddd��dS#1swxYwYdS)N)�node)r8�assertRaisesrr:)r-r?�raisess   r
�
check_invalidzASTTestCase.check_invalid�s���
�\�\�t�\�
$�
$�	9�	9����f�c�k�4�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9s�"A�A
�
A
Nc�^�|p|}tjtj|����}||fSr)rr:r9�r-r6r<s   r
�
get_sourcezASTTestCase.get_source�s.��������C�I�e�,�,�-�-���e�|�r4c���|�||��\}}|�||���5|�||��ddd��dS#1swxYwYdS�N)r6r<)rEr8�assertEqualrDs   r
�check_src_roundtripzASTTestCase.check_src_roundtrip�s������u�e�4�4���u�
�\�\��U�\�
3�
3�	+�	+����U�E�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�	+�	+��A�A�Ac���|�||��\}}|�||���5|�||��ddd��dS#1swxYwYdSrG)rEr8�assertNotEqualrDs   r
�check_src_dont_roundtripz$ASTTestCase.check_src_dont_roundtrip�s������u�e�4�4���u�
�\�\��U�\�
3�
3�	.�	.�����u�-�-�-�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.rJr)
�__name__�
__module__�__qualname__r3r=rrBrErIrM�r4r
rr�s�������%%�%%�%%�N,�,�,�*4�9�9�9�9�����
+�+�+�+�
.�.�.�.�.�.r4rc�(�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0S)1�UnparseTestCasec��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d	��|�d
��|�d��|�d��|�d
��|�d��|�d��|�d��dS)Nzf'a'zf'{{}}'zf'{{5}}'z	f'{{5}}5'z	f'X{{}}X'zf'{a}'zf'{ {1:2}}'zf'a{a}a'zf'a{a}{a}a'zf'a{a}a{a}a'zf'{a!r}x{a!s}12{{}}{a!a}'z	f'{a:10}'zf'{a:100_000{10}}'zf'{a!r:10}'z
f'{a:a{b}10}'zRf'a{b}{c!s}{d!r}{e!a}{f:a}{g:a{b}}{h!s:a}{j!s:{a}b}{k!s:a{b}c}{l!a:{b}c{d}}{x+y=}'�r=�r-s r
�
test_fstringszUnparseTestCase.test_fstrings�sW��� � ��(�(�(�� � ��+�+�+�� � ��,�,�,�� � ��-�-�-�� � ��-�-�-�� � ��*�*�*�� � ��/�/�/�� � ��,�,�,�� � ��/�/�/�� � ��0�0�0�� � �!<�=�=�=�� � ��-�-�-�� � �!5�6�6�6�� � ��/�/�/�� � ��1�1�1�� � �<�	
�	
�	
�	
�	
r4c��|�d��|�d��|�d��|�d��dS)Nz
f'{f"{0}"*3}'z
f'{f"{y}"*3}'zf''zf"""'end' "quote\""""rUrVs r
�test_fstrings_special_charsz+UnparseTestCase.test_fstrings_special_chars�s[��� � �!5�6�6�6�� � �!5�6�6�6�� � ��+�+�+�� � �!=�>�>�>�>�>r4c�,�|�d��|�d��|�d��|�d��|�d��|�d��|�d��dS)Nzf'''{"'"}'''�%f'''-{f"""*{f"+{f'.{x}.'}+"}*"""}-'''z4f'''-{f"""*{f"+{f'.{x}.'}+"}*"""}-'single quote\''''zf"""{'''
'''}"""zf"""{g('''
''')}"""z	f"a\r\nb"�f"\u2028{'x'}"rUrVs r
�test_fstrings_complicatedz)UnparseTestCase.test_fstrings_complicated�s���� � �!3�4�4�4�� � �!R�S�S�S�� � �!b�c�c�c�� � �!:�;�;�;�� � �!=�>�>�>�� � �!2�3�3�3�� � �!6�7�7�7�7�7r4c��|�d��|�d��|�d��dS)Nzu'foo'zr'foo'zb'foo'rUrVs r
�test_stringszUnparseTestCase.test_strings�sD��� � ��*�*�*�� � ��*�*�*�� � ��*�*�*�*�*r4c�0�|�d��dS)Nzdel x, y, zrUrVs r
�test_del_statementz"UnparseTestCase.test_del_statement�s��� � ��/�/�/�/�/r4c�Z�|�d��|�d��dS)Nz45 << 2z13 >> 7rUrVs r
�test_shiftszUnparseTestCase.test_shifts�s0��� � ��+�+�+�� � ��+�+�+�+�+r4c�:�|�t��dSr)r=�for_elserVs r
�
test_for_elsezUnparseTestCase.test_for_else�s��� � ��*�*�*�*�*r4c�:�|�t��dSr)r=�
while_elserVs r
�test_while_elsezUnparseTestCase.test_while_else����� � ��,�,�,�,�,r4c���|�d��|�d��|�d��|�d��|�d��dS)Nz(-1)**7z(-1.)**8z(-1j)**6znot True or FalsezTrue or not FalserUrVs r
�test_unary_parensz!UnparseTestCase.test_unary_parenssn��� � ��+�+�+�� � ��,�,�,�� � ��,�,�,�� � �!4�5�5�5�� � �!4�5�5�5�5�5r4c�0�|�d��dS)Nz3 .__abs__()rUrVs r
�test_integer_parensz#UnparseTestCase.test_integer_parenss��� � ��0�0�0�0�0r4c��|�d��|�d��|�d��|�d��dS)N�1e1000z-1e1000�1e1000jz-1e1000jrUrVs r
�test_huge_floatzUnparseTestCase.test_huge_float
sX��� � ��*�*�*�� � ��+�+�+�� � ��+�+�+�� � ��,�,�,�,�,r4c���|�tjtjtjtd���������tjd����dS)N�nan��valuez1e1000 - 1e1000)r3rr9r:�Constant�floatrVs r
�test_nanzUnparseTestCase.test_nans\������I�c�k�#�,�U�5�\�\�"B�"B�"B�C�C�D�D��I�'�(�(�	
�	
�	
�	
�	
r4c��|�td����|�td����dS)Ni�l����)r=�strrVs r
�test_min_intzUnparseTestCase.test_min_ints<��� � ��Z���1�1�1�� � ��Z���1�1�1�1�1r4c��|�d��|�d��|�d��|�d��dS)N�7jz-7j�0jz-0jrUrVs r
�test_imaginary_literalsz'UnparseTestCase.test_imaginary_literalssX��� � ��&�&�&�� � ��'�'�'�� � ��&�&�&�� � ��'�'�'�'�'r4c�0�|�d��dS)Nz(lambda: int)()rUrVs r
�test_lambda_parenthesesz'UnparseTestCase.test_lambda_parentheses ���� � �!2�3�3�3�3�3r4c�Z�|�d��|�d��dS)Nz
1 < 4 <= 5za is b is c is not drUrVs r
�test_chained_comparisonsz(UnparseTestCase.test_chained_comparisons#s1��� � ��.�.�.�� � �!7�8�8�8�8�8r4c��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d	��|�d
��|�d��|�d��dS)
Nz
def f(): passzdef f(a): passzdef f(b = 2): passzdef f(a, b): passzdef f(a, b = 2): passzdef f(a = 5, b = 2): passzdef f(*, a = 1, b = 2): passzdef f(*, a = 1, b): passzdef f(*, a, b = 2): passz&def f(a, b = None, *, c, **kwds): passz'def f(a=2, *args, c=5, d, **kwds): passzdef f(*args, **kwargs): passrUrVs r
�test_function_argumentsz'UnparseTestCase.test_function_arguments's��� � ��1�1�1�� � �!1�2�2�2�� � �!5�6�6�6�� � �!4�5�5�5�� � �!8�9�9�9�� � �!<�=�=�=�� � �!?�@�@�@�� � �!;�<�<�<�� � �!;�<�<�<�� � �!I�J�J�J�� � �!J�K�K�K�� � �!?�@�@�@�@�@r4c�:�|�t��dSr)r=�relative_importrVs r
�test_relative_importz$UnparseTestCase.test_relative_import5���� � ��1�1�1�1�1r4c�:�|�t��dSr)r=�nonlocal_exrVs r
�
test_nonlocalzUnparseTestCase.test_nonlocal8���� � ��-�-�-�-�-r4c�:�|�t��dSr)r=�
raise_fromrVs r
�test_raise_fromzUnparseTestCase.test_raise_from;rjr4c�0�|�d��dS)Nzb'123'rUrVs r
�
test_byteszUnparseTestCase.test_bytes>s��� � ��*�*�*�*�*r4c���|�d��|�d��|�d��|�d��|�d��dS)Nzdef f(a : int): passzdef f(a: int = 5): passzdef f(*args: [int]): passzdef f(**kwargs: dict): passzdef f() -> None: passrUrVs r
�test_annotationsz UnparseTestCase.test_annotationsAsq��� � �!7�8�8�8�� � �!:�;�;�;�� � �!<�=�=�=�� � �!>�?�?�?�� � �!8�9�9�9�9�9r4c�0�|�d��dS)Nz{'a', 'b', 'c'}rUrVs r
�test_set_literalz UnparseTestCase.test_set_literalHr�r4c	���|�tjtjtjg�������tjd����dS)N)�eltsz{*()})r3rr9r:�SetrVs r
�test_empty_setzUnparseTestCase.test_empty_setKsU������I�c�k�#�'�r�"2�"2�"2�3�3�4�4��I�g���	
�	
�	
�	
�	
r4c�0�|�d��dS)Nz{x for x in range(5)}rUrVs r
�test_set_comprehensionz&UnparseTestCase.test_set_comprehensionQs��� � �!8�9�9�9�9�9r4c�0�|�d��dS)Nz{x: x*x for x in range(10)}rUrVs r
�test_dict_comprehensionz'UnparseTestCase.test_dict_comprehensionTs��� � �!>�?�?�?�?�?r4c�:�|�t��dSr)r=�class_decoratorrVs r
�test_class_decoratorsz%UnparseTestCase.test_class_decoratorsWr�r4c�0�|�d��dS)Nz(class A(metaclass=type, *[], **{}): passrUrVs r
�test_class_definitionz%UnparseTestCase.test_class_definitionZs��� � �!K�L�L�L�L�Lr4c�n�|�t��|�t��dSr)r=�elif1�elif2rVs r
�
test_elifszUnparseTestCase.test_elifs]s0��� � ��'�'�'�� � ��'�'�'�'�'r4c�:�|�t��dSr)r=�try_except_finallyrVs r
�test_try_except_finallyz'UnparseTestCase.test_try_except_finallyas��� � �!3�4�4�4�4�4r4c�:�|�t��dSr)r=�try_except_star_finallyrVs r
�test_try_except_star_finallyz,UnparseTestCase.test_try_except_star_finallyds��� � �!8�9�9�9�9�9r4c��|�d��|�d��|�d��|�d��dS)Nza, *b, c = seqza, (*b, c) = seqza, *b[0], c = seqza, *(b, c) = seqrUrVs r
�test_starred_assignmentz'UnparseTestCase.test_starred_assignmentgs\��� � �!1�2�2�2�� � �!3�4�4�4�� � �!4�5�5�5�� � �!3�4�4�4�4�4r4c�:�|�t��dSr)r=�with_simplerVs r
�test_with_simplez UnparseTestCase.test_with_simplemr�r4c�:�|�t��dSr)r=�with_asrVs r
�test_with_aszUnparseTestCase.test_with_asps��� � ��)�)�)�)�)r4c�:�|�t��dSr)r=�with_two_itemsrVs r
�test_with_two_itemsz#UnparseTestCase.test_with_two_itemsss��� � ��0�0�0�0�0r4c�Z�|�d��|�d��dS)Nz{**{'y': 2}, 'x': 1}z{**{'y': 2}, **{'x': 1}}rUrVs r
�test_dict_unpacking_in_dictz+UnparseTestCase.test_dict_unpacking_in_dictvs2��� � �!<�=�=�=�� � �!@�A�A�A�A�Ar4c��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d	��|�d
��|�d��|�d��|�d
��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��dS)Nza[i]za[i,]za[i, j]za[(*a,)]za[*a]za[b, *a]za[*a, c]za[b, *a, c]�	a[*a, *a]za[b, *a, *a]za[*a, b, *a]za[*a, *a, b]za[b, *a, *a, c]z	a[(a:=b)]za[(a:=b,c)]�a[()]za[i:j]za[:j]za[i:]za[i:j:k]za[:j:k]za[i::k]za[i:j,]z	a[i:j, k]rUrVs r
�test_sliceszUnparseTestCase.test_slices{s���� � ��(�(�(�� � ��)�)�)�� � ��+�+�+�� � ��,�,�,�� � ��)�)�)�� � ��,�,�,�� � ��,�,�,�� � ��/�/�/�� � ��-�-�-�� � ��0�0�0�� � ��0�0�0�� � ��0�0�0�� � �!2�3�3�3�� � ��-�-�-�� � ��/�/�/�� � ��)�)�)�� � ��*�*�*�� � ��)�)�)�� � ��)�)�)�� � ��,�,�,�� � ��+�+�+�� � ��+�+�+�� � ��+�+�+�� � ��-�-�-�-�-r4c�~�|�tjdtjd��������dS)N�X��id)�exc�cause)rBr�Raise�NamerVs r
�test_invalid_raisez"UnparseTestCase.test_invalid_raise�s8�����3�9��S�X��5E�5E�5E�F�F�F�G�G�G�G�Gr4c��|�tjtjd���tjd���g�����dS)N�testr�ru)�values)rBr�	JoinedStrr�rwrVs r
�test_invalid_fstring_valuez*UnparseTestCase.test_invalid_fstring_value�s]������M��H��'�'�'��L�v�.�.�.��
�
�
�	
�	
�	
�	
�	
r4c�|�|�tjtjd��������dS)Nz\\ru)rBr�FormattedValuerwrVs r
�test_invalid_fstring_backslashz.UnparseTestCase.test_invalid_fstring_backslash�s7�����3�-�C�L�v�4N�4N�4N�O�O�O�P�P�P�P�Pr4c�V�|�tjd�����dS)Nru)rBr�	YieldFromrVs r
�test_invalid_yield_fromz'UnparseTestCase.test_invalid_yield_from�s)�����3�=�t�4�4�4�5�5�5�5�5r4c�P�tjdtjd���g���}|�tj|��d��tjdtjd���gd���}|�tj|��d��dS)N�mod�x)�name)�module�nameszfrom mod import x)r�r��level)r�
ImportFrom�aliasrHr:)r-�trees  r
�test_import_from_level_nonez+UnparseTestCase.test_import_from_level_none�s����~�U�3�9�#�3F�3F�3F�2G�H�H�H�������T�*�*�,?�@�@�@��~�U�3�9�#�3F�3F�3F�2G�t�T�T�T�������T�*�*�,?�@�@�@�@�@r4c�F�d}|D]}|�d|�d����dS)N)
zthis ends with double quote"z"this includes a """triple quote"""�
z\r�	z\t�
z\nz	
\r	\t
\nz$""">>> content = """blabla""" <<<"""z	foo\n\x00z' \'\'\'""" ""\'\' \'u🐍⛎𩸽üéş^\\X\\BB⟿z'''rU)r-�
docstrings�	docstrings   r
�test_docstringszUnparseTestCase.test_docstrings�sG��
�
�$�	;�	;�I��$�$�%9�9�%9�%9�%9�:�:�:�:�	;�	;r4c��|�tjdd���d��|�tjdd���d��dS)N)�)rv�kindz(1,))r���z	(1, 2, 3))rIrrwrVs r
�test_constant_tuplesz$UnparseTestCase.test_constant_tuples�s]��� � ���D�t�!D�!D�!D�f�M�M�M�� � ��L�y�t�4�4�4�k�	
�	
�	
�	
�	
r4c�>�dD]}|�|d����dS)N)z	() -> intz(int, int) -> intz=(Callable[complex], More[Complex(call.to_typevar())]) -> None�	func_type)�moderU)r-�
function_types  r
�test_function_typez"UnparseTestCase.test_function_type�s?��
�	F�	F�M�

�$�$�]��$�E�E�E�E�	F�	Fr4c�>�dD]}|�|d����dS)N)z
a = 5 # type:za = 5 # type: intza = 5 # type: int and morez!def x(): # type: () -> None
	passz.def x(y): # type: (int) -> None and more
	passz'async def x(): # type: () -> None
	passz4async def x(y): # type: (int) -> None and more
	passzfor x in y: # type: int
	passz#async for x in y: # type: int
	passzwith x(): # type: int
	passz!async with x(): # type: int
	passT��
type_commentsrU�r-�	statements  r
�test_type_commentsz"UnparseTestCase.test_type_comments�s?��
�
	D�
	D�I�
�$�$�Y�d�$�C�C�C�C�
	D�
	Dr4c�>�dD]}|�|d����dS)N)
za = 5 # type: ignoreza = 5 # type: ignore and morezdef x(): # type: ignore
	passz'def x(y): # type: ignore and more
	passz#async def x(): # type: ignore
	passz-async def x(y): # type: ignore and more
	passz for x in y: # type: ignore
	passz&async for x in y: # type: ignore
	passzwith x(): # type: ignore
	passz$async with x(): # type: ignore
	passTr�rUr�s  r
�test_type_ignorez UnparseTestCase.test_type_ignore�s?��
�	D�	D�I�
�$�$�Y�d�$�C�C�C�C�	D�	Dr4N)2rNrOrPrWrYr]r_rarcrfrirlrnrrryr|r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rQr4r
rSrS�s�������
�
�
�*?�?�?�8�8�8�+�+�+�
0�0�0�,�,�,�+�+�+�-�-�-�6�6�6�1�1�1�-�-�-�
�
�
�2�2�2�(�(�(�4�4�4�9�9�9�A�A�A�2�2�2�.�.�.�-�-�-�+�+�+�:�:�:�4�4�4�
�
�
�:�:�:�@�@�@�2�2�2�M�M�M�(�(�(�5�5�5�:�:�:�5�5�5�.�.�.�*�*�*�1�1�1�B�B�B�
.�.�.�6H�H�H�
�
�
�Q�Q�Q�6�6�6�A�A�A�;�;�;�(
�
�
�F�F�F�D�D�D� 
D�
D�
D�
D�
Dr4rSc�L�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�CosmeticTestCasec��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d	��|�d
��|�d��|�d��|�d
��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��dS)Nz(a := b)zawait xz
x if x else yzlambda x: xz1 + 1z	1 + 2 / 3z(1 + 2) / 3z(1 + 2) * 3 + 4 * (5 + 2)z(1 + 2) * 3 + 4 * (5 + 2) ** 2z~xzx and yz
x and y and zzx and (y and x)z(x and y) and zz(x ** y) ** z ** qzx >> yzx << yzx >> y and x >> zzx + y - z * q ^ t ** kzP * V if P and V else n * R * Tz"lambda P, V, n: P * V == n * R * Tzflag & (other | foo)z
not x == yzx == (not y)zyield xzyield from xzcall((yield x))zreturn x + (yield x)�rIrVs r
�test_simple_expressions_parensz/CosmeticTestCase.test_simple_expressions_parens�sD��� � ��,�,�,�� � ��+�+�+�� � ��1�1�1�� � ��/�/�/�� � ��)�)�)�� � ��-�-�-�� � ��/�/�/�� � �!<�=�=�=�� � �!A�B�B�B�� � ��&�&�&�� � ��+�+�+�� � ��1�1�1�� � �!2�3�3�3�� � �!2�3�3�3�� � �!5�6�6�6�� � ��*�*�*�� � ��*�*�*�� � �!4�5�5�5�� � �!9�:�:�:�� � �!B�C�C�C�� � �!E�F�F�F�� � �!7�8�8�8�� � ��.�.�.�� � ��0�0�0�� � ��+�+�+�� � ��0�0�0�� � �!2�3�3�3�� � �!7�8�8�8�8�8r4c��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d	��|�d
��dS)Nzclass X:
    passzclass X(A):
    passzclass X(A, B, C, D):
    passzclass X(x=y):
    passzclass X(metaclass=z):
    passzclass X(x=y, z=d):
    passzclass X(A, x=y):
    passzclass X(A, **kw):
    passzclass X(*args):
    passz"class X(*args, **kwargs):
    passr�rVs r
�test_class_bases_and_keywordsz.CosmeticTestCase.test_class_bases_and_keywordss���� � �!5�6�6�6�� � �!8�9�9�9�� � �!A�B�B�B�� � �!:�;�;�;�� � �!B�C�C�C�� � �!?�@�@�@�� � �!=�>�>�>�� � �!>�?�?�?�� � �!<�=�=�=�� � �!F�G�G�G�G�Gr4c���|�d��|�d��|�d��|�d��|�d��dS)Nr[r\zf'{x}\n'zf'''{"""
"""}\n'''zf'''{f"""{x}
"""}\n'''r�rVs r
rWzCosmeticTestCase.test_fstringssp��� � �!R�S�S�S�� � �!6�7�7�7�� � ��-�-�-�� � �!=�>�>�>�� � �!A�B�B�B�B�Br4c�Z�d}tD] }|D]}|�|�|������!dS)N)
z"""simple doc string"""z7"""A more complex one
            with some newlines"""z,"""Foo bar baz

            empty newline"""z"""With some 	"""z"""Foo "bar" baz """z"""\r"""z""""""z	"""'''"""z"""''''''"""u""""🐍⛎𩸽üéş^\\X\\BB⟿"""z"""end in single 'quote'"""z'''end in double "quote"'''z#"""almost end in double "quote".""")�docstring_prefixesrI)r-r��prefixr�s    r
r�z CosmeticTestCase.test_docstrings%sa��
�
�&)�	A�	A�F�'�
A�
A�	��(�(�F�)?�I�)?�)?�@�@�@�@�
A�	A�	Ar4c��d}tD]7}|D]2}|�|��}|�|��|�|���3�8dS)N)za = """false"""z("""false""" + """unless its optimized"""z1 + 1
"""false"""z"f"""no, top level but f-fstring""")rr=rM)r-�docstrings_negativer�negative�srcs     r
�test_docstrings_negative_casesz/CosmeticTestCase.test_docstrings_negative_cases=sv��
��)�	3�	3�F�/�
3�
3�� �+��+�+���(�(��-�-�-��-�-�c�2�2�2�2�
3�	3�	3r4c�z�dD]}|�|�d����dD]}|�|�d����dS)N)�+�-�~�1)�notz 1r�)r-rs  r
�test_unary_op_factorz%CosmeticTestCase.test_unary_op_factorOsd��%�	3�	3�F��$�$��\�\�\�2�2�2�2��	4�	4�F��$�$��]�]�]�3�3�3�3�	4�	4r4c�R�|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d	��|�d
��|�d��|�d��|�d
��|�d��dS)Nr�za[1]za[1, 2]za[*a,]za[1, *a]za[*a, 2]za[1, *a, 2]r�za[1, *a, *a]za[*a, 1, *a]za[*a, *a, 1]za[1, *a, *a, 2]z
a[1:2, *a]z
a[*a, 1:2]r�rVs r
r�zCosmeticTestCase.test_slicesUs#��� � ��)�)�)�� � ��(�(�(�� � ��+�+�+�	
� � ��*�*�*�� � ��,�,�,�� � ��,�,�,�� � ��/�/�/�� � ��-�-�-�� � ��0�0�0�� � ��0�0�0�� � ��0�0�0�� � �!2�3�3�3�� � ��.�.�.�� � ��.�.�.�.�.r4c�V�|�d��|�d��|�d��|�d��|�d��|�d��|�d��|�d��dS)	Nzlambda: somethingzfour = lambda: 2 + 2zlambda x: x * 2zsquare = lambda n: n ** 2zlambda x, y: x + yzadd = lambda x, y: x + yz lambda x, y, /, z, q, *, u: Nonezlambda x, *y, **z: Noner�rVs r
�test_lambda_parametersz'CosmeticTestCase.test_lambda_parametershs���� � �!4�5�5�5�� � �!7�8�8�8�� � �!2�3�3�3�� � �!<�=�=�=�� � �!5�6�6�6�� � �!;�<�<�<�� � �!C�D�D�D�� � �!:�;�;�;�;�;r4c���dD]b\}}dD]Z}|�||���5|�|�|�����ddd��n#1swxYwY�[�cdS)N))zsingle assignmentz{target} = foo)zmultiple assignmentz{target} = {target} = bar)zfor loopzfor {target} in foo:
    pass)zasync for loopz#async for {target} in foo:
    pass)r za,za, bza, *b, cza, (b, c), dza, (b, c, d), *eza, (b, *c, d), eza, (b, *c, (d, e), f), gz[a]z[a, b]z
[a, *b, c]z[a, [b, c], d]z[a, [b, c, d], *e]z[a, [b, *c, d], e]z[a, [b, *c, [d, e], f], g]za, [b, c], dz[a, b, (c, d), (e, f)]za, b, [*c], d, e)�source_type�target)r)r8rI�format)r-r�sourcers    r
�test_star_expr_assign_targetz-CosmeticTestCase.test_star_expr_assign_targetrs���$
�	K�	K��K���
K�
K��(�\�\�k�&�\�I�I�K�K��,�,�V�]�]�&�]�-I�-I�J�J�J�K�K�K�K�K�K�K�K�K�K�K����K�K�K�K��)
K�
	K�	Ks�*A�A� Ac�,�|�d��|�d��|�d��|�d��|�d��|�d��|�d��dS)Nz() = []z[] = ()z'() = [a] = c, = [d] = e, f = () = g = hz
a = b = c = dza, b = c, d = e, f = gz[a, b] = [c, d] = [e, f] = gza, b = [c, d] = e, f = gr�rVs r
�%test_star_expr_assign_target_multiplez6CosmeticTestCase.test_star_expr_assign_target_multiple�s���� � ��+�+�+�� � ��+�+�+�� � �!J�K�K�K�� � ��1�1�1�� � �!9�:�:�:�� � �!?�@�@�@�� � �!;�<�<�<�<�<r4N)
rNrOrPr�rrWr�r	rr�rrrrQr4r
r�r��s�������K�9�9�9�<
H�
H�
H�C�C�C�A�A�A�03�3�3�$4�4�4�/�/�/�&<�<�<�K�K�K�<=�=�=�=�=r4r�c�v�eZdZ	eje��jdzZeedzfZhd�Z	dZ
ed���Zd�Z
dS)�DirectoryTestCasez..r�>�test_ast.py�
test_patma.py�test_syntax.py�test_compile.py�test_fstring.py�test_grammar.py�test_asdl_parser.pyNc����j��jSd��jD��}tj�d��sB�fd�|D��}tt
j|d����}t||z��}|�_|S)Nc��g|]H}|�d��D]0}|j�d���|�����1�IS)z*.py�bad)�globr��
startswith�resolve)�.0�	directory�items   r
�
<listcomp>z3DirectoryTestCase.files_to_test.<locals>.<listcomp>�si��
�
�
��!���v�.�.�
�
���9�'�'��.�.�	
��L�L�N�N�
�
�
�
r4�cpuc�0��h|]}|j�jv�|��SrQ)r��run_always_files)r+r-�clss  �r
�	<setcomp>z2DirectoryTestCase.files_to_test.<locals>.<setcomp>�s5���#F�#F�#F�D�#'�9��0D�#D�#D�$(�#D�#D�#Dr4�
)	�_files_to_test�test_directoriesr��support�is_resource_enabled�set�random�sampler)r2�items�tests_to_run_alwayss`  r
�
files_to_testzDirectoryTestCase.files_to_test�s������)��%�%�
�
� �1�
�
�
���|�/�/��6�6�		6�#F�#F�#F�#F�E�#F�#F�#F����
�e�R�0�0�1�1�E���!4�4�5�5�E�#����r4c�B�|���D]�}tjjr$t	d|�������|�|���5t|��}|�|��ddd��n#1swxYwY��dS)NzTesting )r)	r>r�r7�verbose�print�absoluter8rr=)r-r-rs   r
�
test_fileszDirectoryTestCase.test_files�s����&�&�(�(�	1�	1�D��|�#�
4��2������2�2�3�3�3����t��,�,�
1�
1�$�T�*�*���(�(��0�0�0�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1��		1�	1s�"%B�B	�B	)rNrOrP�pathlib�Path�__file__�parent�lib_dirr6r1r5�classmethodr>rCrQr4r
rr�s�������D��g�l�8�$�$�+�d�2�G���6�!1�2��)�)�)���N�����[��<1�1�1�1�1r4r�__main__)�unittest�test.supportr�rDr:rrrrerhr�r�r�r�r�r�r�r�r�r�r�r�TestCaserrSr�rrN�mainrQr4r
�<module>rOs���D�������������
�
�
�
�����
�
�
�
�������
���	���
���	��	��������
��
��
��@.�@.�@.�@.�@.�(�#�@.�@.�@.�DiD�iD�iD�iD�iD�k�iD�iD�iD�X	f=�f=�f=�f=�f=�{�f=�f=�f=�T11�11�11�11�11��11�11�11�h�z����H�M�O�O�O�O�O��r4