HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/idlelib/idle_test/__pycache__/test_pyparse.cpython-311.pyc
�

��Vc�M���dZddlmZddlZddlmZGd�dej��ZGd�dej��Ze	d	krej
d
���dSdS)zTest pyparse, coverage 96%.�)�pyparseN)�
namedtuplec��eZdZd�Zd�ZdS)�ParseMapTestc�p�d�dD��}tj|��}|�|td��td����|�|td��td����|�|dtd����dS)Nc�H�i|]}t|��t|���� S�)�ord)�.0�cs  �2D:\Python311\Lib\idlelib\idle_test\test_pyparse.py�
<dictcomp>z.ParseMapTest.test_parsemap.<locals>.<dictcomp>s&��7�7�7��S��V�V�S��V�V�7�7�7�z 	

�	�a�xi�)r�ParseMap�assertEqualr
)�self�	keepwhite�mappings   r
�
test_parsemapzParseMapTest.test_parsemap
s���7�7�Y�7�7�7�	��"�9�-�-�������T���+�S��Y�Y�7�7�7������S���*�C��H�H�5�5�5��������C���1�1�1�1�1rc��tjdd��}|�d�tj��d��dS)N�z	 a([{b}])b"c'd
zxxx(((x)))x"x'x
)r�Parserr�	translate�trans)r�parsers  r
�
test_transzParseMapTest.test_transsK�����1�%�%�����.�8�8���G�G�-�	/�	/�	/�	/�	/rN)�__name__�
__module__�__qualname__rrr	rr
rrs2������2�2�2�/�/�/�/�/rrc��eZdZed���Zed���Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�ZdS)�PyParseTestc�<�tjdd���|_dS)Nr)�indentwidth�tabwidth)rrr��clss r
�
setUpClasszPyParseTest.setUpClasss���^��A�>�>�>��
�
�
rc�
�|`dS�N)rr(s r
�
tearDownClasszPyParseTest.tearDownClasss���J�J�Jrc��|�|jjd��|�|jjd��dS)Nr)rrr&r')rs r
�	test_initzPyParseTest.test_init"s>�������0�!�4�4�4������-�q�1�1�1�1�1rc�n�|j}|j}|j}|�t��5|d��ddd��n#1swxYwYd}|D]]}|�|���5||��||j|��||jd��ddd��n#1swxYwY�^dS)Nr)��a
��stringr)rr�set_code�assertRaises�AssertionError�subTest�code�study_level)r�eq�p�setcode�testsr4s      r
�
test_set_codezPyParseTest.test_set_code&sQ��
�
���K���*���
�
�~�
.�
.�	�	��G�C�L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����	%�	%�F����V��,�,�
%�
%���������1�6�6�"�"�"���1�=�!�$�$�$�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%����
%�
%�
%�
%��	%�	%s#�A�A�A�/.B)�)B-	�0B-	c���|j}|j}|j}|j}d�}|d��|||��d��|d��|||��d��|d��d\}�|�t
��5|��ddd��n#1swxYwY|�t
��5|d��ddd��n#1swxYwY|�|d��	����|||�����||�fd
��	�����||�fd��	��|��||�fd��	��d��|d
��|||�����||�fd��	�����||�fd��	��|��||�fd��	�����dS)Nc��dS)NFr	��indexs r
�char_in_string_falsezDPyParseTest.test_find_good_parse_start.<locals>.char_in_string_false=s���rzdef spam():
rzclass spam(  
�k"""This is a module docstring"""
class C:
    def __init__(self, a,
                 b=True):
        pass
)�!�*Fc��dS)NTr	rBs r
�<lambda>z8PyParseTest.test_find_good_parse_start.<locals>.<lambda>[s���r)�is_char_in_stringc���|�kSr,r	�rC�poss �r
rIz8PyParseTest.test_find_good_parse_start.<locals>.<lambda>c�������rc���|�kSr,r	rLs �r
rIz8PyParseTest.test_find_good_parse_start.<locals>.<lambda>f�����#��rc���|�kSr,r	rLs �r
rIz8PyParseTest.test_find_good_parse_start.<locals>.<lambda>irNrzZ"""This is a module docstring"""
class C:
    def __init__(self, a, b=True):
        pass
c���|�kSr,r	rLs �r
rIz8PyParseTest.test_find_good_parse_start.<locals>.<lambda>srNrc���|�kSr,r	rLs �r
rIz8PyParseTest.test_find_good_parse_start.<locals>.<lambda>trPrc���|�kSr,r	rLs �r
rIz8PyParseTest.test_find_good_parse_start.<locals>.<lambda>wrNr)rrr5�find_good_parse_startr6�	TypeError�assertIsNone)rr;r<r=�startrD�pos0rMs       @r
�test_find_good_parse_startz&PyParseTest.test_find_good_parse_start8s���
�
���K���*���'��5�5�5�	��� � � �
��5�5�%�&�&��*�*�*�	��&�'�'�'�
��5�5�%�&�&��*�*�*�	��!�	�	�	��	��c��
�
�y�
)�
)�	�	��E�G�G�G�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�y�
)�
)�	�	��E�%�L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
	
���%�%�2D�2D�E�E�E�F�F�F�	��5�5�%�&�&��,�,�,�	��5�5�#<�#<�#<�#<�=�=�=�s�C�C�C�	��5�5�#=�#=�#=�#=�>�>�>��E�E�E�	��5�5�#<�#<�#<�#<�=�=�=�t�D�D�D�	��!�	�	�	�
	��5�5�%�&�&��,�,�,�
��5�5�#<�#<�#<�#<�=�=�=�s�C�C�C�
��5�5�#=�#=�#=�#=�>�>�>��E�E�E�	��5�5�#<�#<�#<�#<�=�=�=�s�C�C�C�C�Cs$�B"�"B&�)B&�C�C#�&C#c��d}d}|j}|�|��|�t��5|�d��ddd��n#1swxYwY|�d��|�|j|��|�|��|�|j||d���dS)NrErG�r)rr5r6r7�set_lorr9)rr9rMr<s    r
�test_set_lozPyParseTest.test_set_loys��!�	
����K��	�
�
�4�����
�
�~�
.�
.�	�	�
�H�H�Q�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
�������������&�&�&�	
����
�
�
�������c�d�d��,�,�,�,�,s�A�A!�$A!c�2�|j}|j}|j}|j}t	d��\}}}}}	tdgd���}
|
ddg|��|
dddg|��|
dddg|��|
d	ddg|��|
d
ddg|��|
dddg|��|
dddg|��|
d
ddg|��|
dddg|��|
dddg|��|
dgd�|��|
dddg|��|
dddg|	��|
dddg|��|
dddg|��|
dgd�|��|
dgd�|	��|
dgd�|	��|
dddg|��|
dddg|	��|
dddg|��f}|D]�}|�|j���5||j��|��||jd��||j	|j	��||j
|j
��ddd��n#1swxYwY��|�|����dS)Nr\�TestInfo)r4�	goodlines�continuationr1rz$"""This is a complete docstring."""
�z$'''This is a complete docstring.'''
z""""This is a continued docstring.
z"'''This is a continued docstring.
z""""Closing quote does not match."
z"""Bracket in docstring [
z#'''Incomplete two line docstring.

�z"This is a complete string."
z"This is an incomplete string.
z'This is more incomplete.

)rrcrdz# Comment\
z"("""Complete string in bracket"""
z("""Open string in bracket
�a = (1 + 2) - 5 *\
�0
   def function1(self, a,
                 b):
)rrc��
   def function1(self, a,\
�
   def function1(self, a,
�())
�)(
�{)(]
r3)rrr5�_study1�rangerr8r4r:rarbrW)
rr;r<r=�study�NONE�	BACKSLASH�FIRST�NEXT�BRACKETr`r>�tests
             r
�test_study1zPyParseTest.test_study1�s'��
�
���K���*���	��27��(�(�/��y�%��w��j�+;�+;�+;�<�<��
�H�R�!��d�#�#��H�<�q�!�f�d�K�K��H�<�q�!�f�d�K�K��H�:�Q��F�E�J�J��H�:�Q��F�E�J�J��H�:�Q��F�E�J�J��H�2�Q��F�E�B�B��H�<�q�!�f�d�K�K��H�5��1�v�t�D�D��H�7�!�Q���F�F��H�4�i�i�i��F�F��H�_�q�!�f�d�3�3��H�:�Q��F�G�L�L��H�3�a��V�U�C�C��H�,�q�!�f�i�@�@��H�J��Y�Y��
&�
&��H�6�	�	�	�7�K�K��H�4�i�i�i��I�I��H�W�q�!�f�d�+�+��H�V�a��V�W�-�-��H�X��1�v�t�,�,�7��<�	6�	6�D����T�[��1�1�
6�
6�����$�$�$��������1�=�!�$�$�$���1�;���/�/�/���1�>�4�#4�5�5�5�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6�
6����
6�
6�
6�
6��	
���%�%�'�'�"�"�"�"�"s�
AG.�.G2	�5G2	c��|j}|j}|j}|j}t	d��\}}}}}	tdddg��}
|
d|��|
d|��|
d|��|
d|��|
d	|	��f}|D]^}|�|j�
��5||j��||��|j��ddd��n#1swxYwY�_dS)Nr\r`r4rbr1z%"""This is a continuation docstring.
z-'''This is a multiline-continued docstring.

rerhr3)	rrr5�get_continuation_typernrr8r4rb)
rr;r<r=�gettyperprqrrrsrtr`r>rus
             r
�test_get_continuation_typez&PyParseTest.test_get_continuation_type�sT��
�
���K���*���)��27��(�(�/��y�%��w��j�8�^�*D�E�E���H�R�����H�=�u�E�E��H�F��M�M��H�,�i�8�8��H�6��@�@����	1�	1�D����T�[��1�1�
1�
1�����$�$�$���7�7�9�9�d�/�0�0�0�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1��	1�	1s�*C�C	�C	c��|j}|j}|j}|j}t	dgd���}|dddddd��|dddddd	��|d
ddddd��|d
ddddd��|dddddd��|dddddd��|dddddd��|dddddd��|dddddd��|d dd!dd"d#��|d$dd%d&dd'��|d(dd)d*dd+��|d,dd-d.dd/��|d0dd%d1dd��|d2ddddd��f}|D]�}|�|j�3��5||j��|��||jd4��||j|j	��||j
|j��||j|j��||j
|j��||j|j��ddd��n#1swxYwY��|�|����dS)5Nr`)r4rX�end�lastch�openbracket�
bracketingr1r��rrz0'''This is a multiline continuation docstring.

�0�')r��rrc)r�rz # Comment\
�)r��rcrc)r�rz #Comment\
re��*)r��rrc)�rrfrc�:)�rcr��rc)�.rrh��,r�)r�r�ri�z3
   def function1(self, a,  # End of line comment.
�3)r�r�)r�rd)r�rcz7  a = ["first item",
  # Comment line
    "next item",
�7�)r�)r�rc)�rd)r�rc)�rd)�&rc)rGrd)�5rcrjr�))r�r��rdr�rgrrkrg�()r�r�r�rlr\�]�r�r�r��rdrc�rrz:\a
z\a�
r3rd)rrr5�_study2rr8r4r:�
stmt_startrX�stmt_endr|r}�lastopenbracketposr~�stmt_bracketingrrW)rr;r<r=ror`r>rus        r
�test_study2zPyParseTest.test_study2�sX��
�
���K���*���	���j�+H�+H�+H�I�I��
�H�R��A�r�4��3�3��H�I���C��'@�
B�
B��H�%���B��&?�
A�
A�
�H�_���2�t�Y�
0�
0�
�H�,���C��'@�
B�
B�
�H�J���C��'A�
C�
C�
�H�6���C��%6�
8�
8�
�H�4���C��%6�
8�
8�
�H�L���C��%H�
J�
J�
�H�Q���C��%I�
J�
J�
�H�W���3��&F�
H�
H��H�V�Q��3��+C�D�D��H�X���3��&N�
P�
P�
�H�X�q�!�U�D�)�<�<��H�T�1�a��T�9�5�5�I%��N�		7�		7�D����T�[��1�1�
7�
7�����$�$�$��������1�=�!�$�$�$���1�<���,�,�,���1�:�t�x�(�(�(���1�8�T�[�)�)�)���1�'��)9�:�:�:���1�$�d�o�6�6�6�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7��	
���%�%�'�'�"�"�"�"�"s�1BG�G	�G	c�f�|j}|j}|j}|j}t	dddg��}|dd��|dd��|dd��|d	d
��|dd��|dd��|d
d��|dd��f}|d��|�t��5|��ddd��n#1swxYwY|D]^}|�|j���5||j��||��|j	��ddd��n#1swxYwY�_dS)Nr`r4�linesz[x for x in a]
rcz[x
for x in a
rdz[x\
for x in a\
z[x
for x in a
]
rgz%
"""Docstring comment L1"""
L2
L3
L4
z%
"""Docstring comment L1
L2"""
L3
L4
z&
"""Docstring comment L1\
L2\
L3\
L4\
rz+

"""Docstring comment L1\
L2\
L3\
L4\
"""
r\r1r3)
rrr5�get_num_lines_in_stmtrr6�
IndexErrorr8r4r�)rr;r<r=�getlinesr`r>rus        r
�test_get_num_lines_in_stmtz&PyParseTest.test_get_num_lines_in_stmts���
�
���K���*���*���j�8�W�*=�>�>���H�'��+�+��H�'��+�+��H�+�Q�/�/��H�*�A�.�.��H�A�1�E�E��H�A�1�E�E��H�F��J�J��H�M�q�Q�Q�	��	������
�
�
�z�
*�
*�	�	��H�J�J�J�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��	+�	+�D����T�[��1�1�
+�
+�����$�$�$���8�8�:�:�t�z�*�*�*�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��	+�	+s$�.C�C	�C	�/*D%�%D)	�,D)	c�B�|j}|j}|j}|j}t	dddg��}|dd��|dd��|dd��|d	d
��|dd
��|dd
��|d
d��|dd��|dd��|dd��|dd��f}|d��|�t��5|��ddd��n#1swxYwY|D]+}||j��||��|j���,dS)Nr`r4�spaceszdef function1(self, a,
�z
    def function1(self, a,
�z
	def function1(self, a,
z
    def function1(
�z
	def function1(
z
    def function1(  
z2[
"first item",
  # Comment line
    "next item",
rz4[
  "first item",
  # Comment line
    "next item",
rdz1["first item",
  # Comment line
    "next item",
rcz(
rz(a
zdef function1(self, a, b):
)	rrr5�compute_bracket_indentrr6r7r4r�)rr;r<r=�indentr`r>rus        r
�test_compute_bracket_indentz'PyParseTest.test_compute_bracket_indent1s���
�
���K���*���)���j�8�X�*>�?�?���H�/��4�4��H�5�r�:�:��H�3�R�8�8��H�-�q�1�1��H�+�Q�/�/��H�/��3�3��H�M�q�Q�Q��H�O�QR�S�S��H�K�Q�O�O��H�U�A����H�V�Q�����"	��.�/�/�/�
�
�
�~�
.�
.�	�	��F�H�H�H�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��	&�	&�D��G�D�K� � � ��B�v�v�x�x���%�%�%�%�	&�	&s�C&�&C*�-C*c�P�|j}|j}|j}|j}d}|D]w}|�|���5||��|�t��5|��ddd��n#1swxYwYddd��n#1swxYwY�xtdd��}|dd��|dd��|dd	��|d
d��|dd��|d
d��|dd��|dd��|dd��|dd��|dd��|dd��|dd��|dd��f}|D]^}	|�|	j���5||	j��||��|	j	��ddd��n#1swxYwY�_dS)N)zdef function1(self, a, b\
z    """ (\
za = #\
r3r`)r4r�rerza = 1 + 2 - 5 *\
z    a = 1 + 2 - 5 *\
r�z  a = "spam"\
r�z
  a = \
"a"\
z  a = #\
"a"\
r\za == \
rdza != \
z\
z    \
z	\
za\
rgz{}\
z(1 + 2) - 5 *\
)
rrr5�compute_backslash_indentr8r6r7rr4r�)
rr;r<r=r��errorsr4r`r>rus
          r
�test_compute_backslash_indentz)PyParseTest.test_compute_backslash_indentQs���
�
���K���*���+�����	�	�F����V��,�,�
�
��������&�&�~�6�6����F�H�H�H�������������������
�
�
�
�
�
�
�
�
�
�
����
�
�
�
��
�j�*>�?�?����1�1�5�5���/��3�3���3�Q�7�7���,�a�0�0���-�q�1�1���.��2�2���+�q�)�)���+�q�)�)���&�!�$�$���*�a�(�(���(�A�&�&���'�1�%�%���(�A�&�&���-�q�1�1��� �	*�	*�D����T�[��1�1�
*�
*�����$�$�$���6�6�8�8�T�[�)�)�)�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*��	*�	*sG�&B
�A6�*B
�6A:�:B
�=A:�>B
�
B	�B	�$*F�F	�!F	c
���|j}|j}|j}|j}t	dddg��}|dd��|dd��|dd��|dd	��|d
d	��|dd	��|dd	��f}|D]^}|�|j�
��5||j��||��|j��ddd��n#1swxYwY�_dS)Nr`r4r�r1�	def a():
z
	def a():
rz
    def a():
z    z    def a(
z
	
    def a(
z	
    # Comment.
r3)rrr5�get_base_indent_stringrr8r4r�)rr;r<r=�
baseindentr`r>rus        r
�test_get_base_indent_stringz'PyParseTest.test_get_base_indent_stringxsZ��
�
���K���*���-�
��j�8�X�*>�?�?����"�b�!�!���,��+�+���.�$�/�/���*�F�3�3���.�&�1�1���,�f�5�5���0�&�9�9�
���	.�	.�D����T�[��1�1�
.�
.�����$�$�$���:�:�<�<���-�-�-�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.�
.����
.�
.�
.�
.��	.�	.s�*C�C	�C	c�F�|j}|j}|j}|j}|j}tdddg��}|d|��|d|��|d|��|d|��|d|��|d	|��|d
|��|d|��|d|��|d
|��|d|��|d|��f}|D]b}|�|j���5||j��|�|����ddd��n#1swxYwY�cdS)Nr`r4�assert_r�rfz:
za:
z):
z(:
z":
ri�!def function1(self, a):
    pass
z
# A comment:
z"""A docstring:
r3)	�
assertTrue�assertFalserr5�is_block_openerrr8r4r�)	r�yes�nor<r=�openerr`r>rus	         r
�test_is_block_openerz PyParseTest.test_is_block_opener�s����o��
�
���K���*���"���j�8�Y�*?�@�@���H�\�3�'�'��H�J�C�P�P��H�U�C� � ��H�V�S�!�!��H�V�S�!�!��H�V�S�!�!��H�V�R� � ��H�4�b�9�9��H�:�B�?�?��H�%�r�*�*��H�(�"�-�-��H�(�"�-�-�
���	'�	'�D����T�[��1�1�
'�
'�����$�$�$����V�V�X�X�&�&�&�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'����
'�
'�
'�
'��	'�	's�.D�D	�D	c�\�|j}|j}|j}|j}|j}tdddg��}|d|��|d|��|d|��|d|��|d|��|d	|��|d
|��|d|��|d|��|d
|��|d|��|d|��|d|��f
}|D]b}|�|j���5||j��|�|����ddd��n#1swxYwY�cdS)Nr`r4r�zreturn
z	break
z  continue
z     raise
z	pass    
zpass	
z	return #
zraised
z
returning
z	# return
z	"""break
z
"continue
r�r3)	r�r�rr5�is_block_closerrr8r4r�)	rr�r�r<r=�closerr`r>rus	         r
�test_is_block_closerz PyParseTest.test_is_block_closer�s����o��
�
���K���*���"���j�8�Y�*?�@�@���H�Z��%�%��H�[�#�&�&��H�^�S�)�)��H�^�S�)�)��H�\�3�'�'��H�Z��%�%��H�\�3�'�'��H�Z��$�$��H�]�B�'�'��H�\�2�&�&��H�\�2�&�&��H�]�B�'�'��H�:�C�@�@��� �	'�	'�D����T�[��1�1�
'�
'�����$�$�$����V�V�X�X�&�&�&�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'����
'�
'�
'�
'��	'�	's�&.D � D$	�'D$	c
��|j}|j}|j}|j}t	dddg��}|dd��|dd��|dd��|d	d
��|dd��|d
d��|dd��|dd��|dd��|dd��f
}|D]^}|�|j���5||j��||��|j��ddd��n#1swxYwY�_dS)Nr`r4�bracketr1r�r2z()()
r�z(
)()
)r�r�r��rgrc�r\rz()
()
)r�r�r�z()(
)
)r�r�r�r�r�z(())
)r�r��rcrdr�r�z(
())
)r�r�)rdrdr�r�rlz(((())
)r�r�r�)rdrg)rgr)r\rg)r�rdr3)rrr5�get_last_stmt_bracketingrr8r4r�)rr;r<r=rr`r>rus        r
�test_get_last_stmt_bracketingz)PyParseTest.test_get_last_stmt_bracketing�s���
�
���K���*���/�
��j�8�Y�*?�@�@���H�R��#�#��H�U�I�&�&��H�X�G�H�H��H�Z�!I�J�J��H�Z�!9�:�:��H�Z�!I�J�J��H�X�G�H�H��H�Z�!I�J�J��H�X�G�H�H��H�Z�M�
O�
O�
���	/�	/�D����T�[��1�1�
/�
/�����$�$�$���:�:�<�<���.�.�.�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/�
/����
/�
/�
/�
/��	/�	/s�>*C4�4C8	�;C8	N)r r!r"�classmethodr*r-r/r?rZr^rvrzr�r�r�r�r�r�r�r�r	rr
r$r$s"�������?�?��[�?�����[��2�2�2�%�%�%�$?D�?D�?D�B-�-�-�00#�0#�0#�d1�1�1�*;#�;#�;#�z+�+�+�8&�&�&�@%*�%*�%*�N.�.�.�*'�'�'�8'�'�'�:/�/�/�/�/rr$�__main__rd)�	verbosity)�__doc__�idlelibr�unittest�collectionsr�TestCaserr$r �mainr	rr
�<module>r�s���������������"�"�"�"�"�"�
/�
/�
/�
/�
/�8�$�
/�
/�
/� G/�G/�G/�G/�G/�(�#�G/�G/�G/�T�z����H�M�A��������r