403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Python313/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Python313/Lib/test/__pycache__/test_difflib.cpython-313.pyc
�

��iK^��0�SSKrSSKJr SSKrSSKrSSKr"SS\R5r"SS\R5r"SS\R5r	S	r
S
rSrSr
S
rSrSrSr"SS\R5r"SS\R5r"SS\R5r"SS\R5r"SS\R5r"SS\R5r"SS\R5rSrS r\S!:Xa\R8"5 gg)"�N)�findfilec�,�\rSrSrSrSrSrSrSrg)�
TestWithAscii�c��[R"SSS5nURUR5SSS9 UR	[UR
55SS/5 UR	UR[55 [R"SSS5nURUR5SSS9 UR	[UR
55/S	Q5 UR	UR[55 g)
N�dbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb�eabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbgףp=
��?���places��insertrrr���equalr�dr�e�ebbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb))rr�2rr)rrrr�3)rrrrr)	�difflib�SequenceMatcher�assertAlmostEqual�ratio�assertEqual�list�get_opcodes�bpopular�set��self�sms  �&C:\Python313\\Lib\test\test_difflib.py�test_one_insert�TestWithAscii.test_one_insert	s���
�
$�
$�T�9�o�
F�����r�x�x�z�5���;�����b�n�n�.�/�&�)�
+�	,�	
������c�e�,�
�
$�
$�T�9�6O�
P�����r�x�x�z�5���;�����b�n�n�.�/�
-�	.�	
������c�e�,�c���[R"SSS5nURUR5SSS9 UR	[UR
55/SQ5 g)N�Qaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb�Paaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbg+����?r
r))rr�(rr*)�deleter*�)r*r*)rr,�Qr*�P)rrrrrrrr s  r#�test_one_delete�TestWithAscii.test_one_deletesT��
�
$�
$�T�+D�FY�
Z�����r�x�x�z�5���;�����b�n�n�.�/�
+�	,r&c��[R"SSS5nUR5nURUSS/5 UR	X!R55 g)Nrr	r
r)rrrr�assertIs)r!r"�opcodes   r#�test_opcode_caching�!TestWithAscii.test_opcode_caching sR��
�
$�
$�T�9�o�
F�����!������&�)�
+�	,�
	
�
�
�f�n�n�.�/r&c�L�[R"SSSS9nURUR[	55 [R"SSSS9nURURS15 [R"SSSS9nURURSS	15 g)
Nc��US:H$�N� ���xs r#�<lambda>�*TestWithAscii.test_bjunk.<locals>.<lambda>+���a�3�hr&r)�Taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)�isjunk�a�bc��US:H$r8r:r;s r#r=r>/r?r&zhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                    r9c��US;$)N)r9rCr:r;s r#r=r>3s��a�:�or&rC)rrr�bjunkrr s  r#�
test_bjunk�TestWithAscii.test_bjunk*s���
�
$�
$�,>�%�)<�>��������3�5�)�
�
$�
$�,>�%�)G�I��������C�5�)�
�
$�
$�,E�%�)G�I��������C��:�.r&r:N)	�__name__�
__module__�__qualname__�__firstlineno__r$r/r4rG�__static_attributes__r:r&r#rrs��
-�,�0�/r&rc��\rSrSrSrSrSrg)�TestAutojunk�8z-Tests for the autojunk parameter added in 2.7c�d�SnSn[R"SX5nURUR5SSS9 UR	UR
S15 [R"SXSS9nURUR5S	SS9 UR	UR
[
55 g)
N��bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb��abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbrr
rrCF)�autojunkg�Q����?)rrrrrrr)r!�seq1�seq2r"s    r#�#test_one_insert_homogenous_sequence�0TestAutojunk.test_one_insert_homogenous_sequence:s�������
�
$�
$�T�4�
6�����r�x�x�z�1�Q��7�������s�e�,��
$�
$�T�4��
F�����r�x�x�z�6�!��<�������c�e�,r&r:N)rIrJrKrL�__doc__rWrMr:r&r#rOrO8s
��7�
-r&rOc�8�\rSrSrSrSrSrSrSrSr	Sr
g	)
�
TestSFbugs�Jc���[R"S//5nURUR5S5 URUR	5S5 URUR5S5 g)Nr)rrrr�quick_ratio�real_quick_ratio)r!�ss  r#�test_ratio_for_null_seqn�#TestSFbugs.test_ratio_for_null_seqnKs[���#�#�D�"�b�1���������A�&��������!�,�����+�+�-�q�1r&c���[R"S//5R5nUR[[
U5 [R"//5nUR[[
U5 g�N)rr�get_grouped_opcodes�assertRaises�
StopIteration�next�unified_diff)r!�	group_gen�diff_gens   r#�test_comparing_empty_lists�%TestSFbugs.test_comparing_empty_listsRsU���+�+�D�"�b�9�M�M�O�	����-��y�9��'�'��B�/�����-��x�8r&c�.�[R"SSS5nUR5nUR5nURUSRS5 URUSRS5 URUSRS5 g)N�abxcd�abcdr�r)rr�get_matching_blocksr�size)r!r`�first�seconds    r#�test_matching_blocks_cache�%TestSFbugs.test_matching_blocks_cacheYsz���#�#�D�'�6�:���%�%�'���&�&�(�����������+����������+����������+r&c��[[R"5RS/S/55nUR	SUS5 UR	SUS5 UR	SUS5 UR	S	US
5 g)Nz
	I am a buggyz		I am a bugz- 	I am a buggyrz? 	          --
rz+ 		I am a bugrqz? +
r
�rr�Differ�comparer�r!�diffs  r#�test_added_tab_hint�TestSFbugs.test_added_tab_hintbs{���G�N�N�$�,�,�.>�-?�AQ�@R�S�T�����+�T�!�W�5����-�t�A�w�7����+�T�!�W�5�����$�q�'�*r&c���[[R"5RS/S/55nUR	SUS5 UR	SUS5 UR	SUS5 g)	Nz	 	 	^z	 	 	^
z- 	 	 	^rz	+ 	 	 	^
rz
? 	 	 	 +
rqryr|s  r#�%test_hint_indented_properly_with_tabs�0TestSFbugs.test_hint_indented_properly_with_tabsjsa���G�N�N�$�,�,�k�]�]�O�L�M�������Q��0�����$�q�'�2����)�4��7�3r&c	�l�UR[[R"S/S/S55S/5 g)N�2�3r))rz-2)rz+3T)rrr�_mdiff�r!s r#�test_mdiff_catch_stop_iteration�*TestSFbugs.test_mdiff_catch_stop_iterationps/������������u�a�0�1�
9�:�	
r&r:N)rIrJrKrLrarlrvr~r�r�rMr:r&r#r[r[Js ��2�9�,�+�4�
r&r[z�
   1. Beautiful is beTTer than ugly.
   2. Explicit is better than implicit.
   3. Simple is better than complex.
   4. Complex is better than complicated.
z�
   1. Beautiful is better than ugly.
   3.   Simple is better than complex.
   4. Complicated is better than complex.
   5. Flat is better than nested.
u�
   1. Beautiful is beTTer than ugly.
   2. Explicit is better than ımplıcıt.
   3. Simple is better than complex.
   4. Complex is better than complicated.
u�
   1. Beautiful is better than ügly.
   3.   Sımple is better than complex.
   4. Complicated is better than cömplex.
   5. Flat is better than nested.
z�
		Line 1: preceded by from:[tt] to:[ssss]
  		Line 2: preceded by from:[sstt] to:[sssst]
  	 	Line 3: preceded by from:[sstst] to:[ssssss]
Line 4:  	has from:[sst] to:[sss] after :
Line 5: has from:[t] to:[ss] at end	
z�
    Line 1: preceded by from:[tt] to:[ssss]
    	Line 2: preceded by from:[sstt] to:[sssst]
      Line 3: preceded by from:[sstst] to:[ssssss]
Line 4:   has from:[sst] to:[sss] after :
Line 5: has from:[t] to:[ss] at end
z�line 0
1234567890123456789012345689012345
line 1
line 2
line 3
line 4   changed
line 5   changed
line 6   changed
line 7
line 8  subtracted
line 9
1234567890123456789012345689012345
short line
just fits in!!
just fits in two lines yup!!
the endz�line 0
1234567890123456789012345689012345
line 1
line 2    added
line 3
line 4   chanGEd
line 5a  chanGed
line 6a  changEd
line 7
line 8
line 9
1234567890
another long line that needs to be wrapped
just fitS in!!
just fits in two lineS yup!!
the endc�>�\rSrSrSrSrSrSrSrSr	Sr
S	rg
)�
TestSFpatches��c!�8�[S-S-n[S-S-nSU-nSU-nUR5nUR5nUR5nUR5n[R5n[R5n[
n[n[R"5n	[R"SS9n
[R"SS9nU	RXSS	S
SS9nS
RSU	RXSS	SS9SU	RX4SS	SS9SU	RXSS	SSS9SU	RXSS	SSS9SU	RXSS	SS9SU	RXSS	S
S9SU	R//SS	SS9SU	R//SS	S
S9SU
RXV5SU	RXV5SURUR5UR5SSS9SURUR5UR55SURURS5URS55/5n
URSS U
-5n[[S!5S"S#9nURX�R!55 SSS5 g!,(df   g=f)$Nz(123
123
123
123
123
123
123
123
123
123
r
z(456
456
456
456
456
456
456
456
456
456
rq)�tabsize�)�
wrapcolumn�from�toF�)�context�numlines�
z8<h2>Context (first diff within numlines=5(default))</h2>T)r�z7<h2>Context (first diff after numlines=5(default))</h2>z<h2>Context (numlines=6)</h2>�z<h2>Context (numlines=0)</h2>rz<h2>Same Context</h2>z<h2>Same Full</h2>z<h2>Empty Context</h2>z<h2>Empty Full</h2>z<h2>tabsize=2</h2>z<h2>tabsize=default</h2>z+<h2>Context (wrapcolumn=14,numlines=0)</h2>z#<h2>wrapcolumn=14,splitlines()</h2>z'<h2>wrapcolumn=14,splitlines(True)</h2>z</body>z
%s
</body>ztest_difflib_expect.htmlzutf-8)�encoding)�patch914575_from1�patch914575_to1�
splitlines�patch914575_from2�patch914575_to2�patch914575_from3�patch914575_to3r�HtmlDiff�	make_file�join�
make_table�replace�openrr�read)r!�f1a�t1a�f1b�t1b�f2�t2�f3�t3�i�j�k�full�tables�actual�fps                r#�test_html_diff�TestSFpatches.test_html_diff�sq��!�J�.��1����+�Q�.���3����3����n�n����n�n����n�n����n�n���
�
)�
)�
+��
�
'�
'�
)��
��
����������Q�'������+���{�{�3�6�$�u�a�{�H�����
G�
�\�\�#�&��d�\�
;�
F�
�\�\�#�&��d�\�
;�
,�
�\�\�#�&��d�A�\�
F�
,�
�\�\�#�&��d�A�\�
F�
$�
�\�\�#�&��d�\�
;�
!�
�\�\�#�&��e�\�
<�
%�
�\�\�"�R��t�D�\�
9�
"�
�\�\�"�R��t�E�\�
:�
!�
�\�\�"�
 �
'�
�\�\�"�
 �
:�
�\�\�"�-�-�/�"�-�-�/�$�PQ�\�
R�
2�
�\�\�"�-�-�/�"�-�-�/�
:�
6�
�\�\�"�-�-��-�b�m�m�D�.A�
B�5
���:���i��&�(@�A���(�5�6��
I�R����V�W�W�Y�/�J�
I�
I�s�" J�
Jc�`�[R"5n[US-5Vs/sHo"S-=(a S=(d SU-PM nn[US-5Vs/sHo"S-=(a S=(d SU-PM nn[R"SX45R5 gs snfs snf)NrqzK:%dzV:A:%dzV:B:%d)�sys�getrecursionlimit�rangerrr)r!�limitr��old�news     r#�test_recursion_limit�"TestSFpatches.test_recursion_limits����%�%�'��9>�u�Q�w��H��A�!����*�(�a�/���H�9>�u�Q�w��H��A�!����*�(�a�/���H�����c�/�;�;�=��I��Hs�#B&�#B+c��[R"5nUR[R	5[
R	55nUR
SU5 g)Nz"content="text/html; charset=utf-8"�rr�r�r�r�r��assertIn�r!�	html_diff�outputs   r#�test_make_file_default_charset�,TestSFpatches.test_make_file_default_charsetsH���$�$�&�	��$�$�%6�%A�%A�%C�%4�%?�%?�%A�C���
�
�:�F�Cr&c��[R"5nUR[R	5[
R	5SS9nUR
SU5 g)Nz
iso-8859-1��charsetz'content="text/html; charset=iso-8859-1"r�r�s   r#�test_make_file_iso88591_charset�-TestSFpatches.test_make_file_iso88591_charsetsQ���$�$�&�	��$�$�%6�%A�%A�%C�%4�%?�%?�%A�-9�%�;��	
�
�
�?��Hr&c���[R"5nUR[R	5[
R	5SS9nUR
SU5 UR
SU5 g)Nzus-asciir�z%content="text/html; charset=us-ascii"z&#305;mpl&#305;c&#305;t)rr�r��patch914575_nonascii_from1r��patch914575_nonascii_to1r�r�s   r#�2test_make_file_usascii_charset_with_nonascii_input�@TestSFpatches.test_make_file_usascii_charset_with_nonascii_inputs`���$�$�&�	��$�$�%?�%J�%J�%L�%=�%H�%H�%J�-7�%�9��	
�
�
�=�v�F��
�
�/��8r&c��[R"5RSS5nUR[	U5/SQ5 g)N�bb�abb)z+ a�  br��rrzr{rr�r!�ms  r#r$�TestSFpatches.test_one_inserts0���N�N��$�$�W�m�<������a��"7�8r&c��[R"5RSS5nUR[	U5/SQ5 g)Nr�r�)z- ar�r�r�r�s  r#r/�TestSFpatches.test_one_delete"s0���N�N��$�$�]�G�<������a��"7�8r&r:N)rIrJrKrLr�r�r�r�r�r$r/rMr:r&r#r�r��s(��70�r>�D�I�9�9�9r&r�c�,�\rSrSrSrSrSrSrSrg)�TestOutputFormati'c���/SQn[R"USS06nUR[U5SSSS/5 [R"USS06nUR[U5SSSS	/5 g)
N)�one�two�Original�Currentz2005-01-26 23:30:50z2010-04-02 10:20:52�lineterm�rrqz --- Original	2005-01-26 23:30:50z+++ Current	2010-04-02 10:20:52z *** Original	2005-01-26 23:30:50z--- Current	2010-04-02 10:20:52�rrirr�context_diff�r!�args�ud�cds    r#�test_tab_delimiter�#TestOutputFormat.test_tab_delimiter(s���:��
�
!�
!�4�
5�"�
5������b��!�A��>�=�)?�	@��
!�
!�4�
5�"�
5������b��!�A��>�=�)?�	@r&c���/SQn[R"USS06nUR[U5SSSS/5 [R"USS06nUR[U5SSSS	/5 g)
N)r�r�r�r�r�r�rrqz--- Originalz+++ Currentz*** Originalz--- Currentr�r�s    r#�&test_no_trailing_tab_on_empty_filedate�7TestOutputFormat.test_no_trailing_tab_on_empty_filedate4so��4��
�
!�
!�4�
5�"�
5������b��!�A����(G�H�
�
!�
!�4�
5�"�
5������b��!�A����(G�Hr&c�"�Sn[RnURU"SS5S5 URU"SS5S5 URU"SS5S5 URU"SS5S	5 URU"S
S
5S5 g)Na�           Each <range> field shall be of the form:
             %1d", <beginning line number>  if the range contains exactly one line,
           and:
            "%1d,%1d", <beginning line number>, <number of lines> otherwise.
           If a range is empty, its beginning line number shall be the number of
           the line just before the range, or 0 if the empty range starts the file.
        r
z3,0��4r�z4,2r�z4,3rz0,0)r�_format_range_unifiedr�r!�spec�fmts   r#�test_range_format_unified�*TestOutputFormat.test_range_format_unified<s������+�+������Q�q��5�)�����Q�q��3�'�����Q�q��5�)�����Q�q��5�)�����Q�q��5�)r&c�"�Sn[RnURU"SS5S5 URU"SS5S5 URU"SS5S5 URU"SS5S	5 URU"S
S
5S5 g)Na           The range of lines in file1 shall be written in the following format
           if the range contains two or more lines:
               "*** %d,%d ****
", <beginning line number>, <ending line number>
           and the following format otherwise:
               "*** %d ****
", <ending line number>
           The ending line number of an empty range shall be the number of the preceding line,
           or 0 if the range is at the start of the file.

           Next, the range of lines in file2 shall be written in the following format
           if the range contains two or more lines:
               "--- %d,%d ----
", <beginning line number>, <ending line number>
           and the following format otherwise:
               "--- %d ----
", <ending line number>
        r
r�r�r�r�z4,5r�z4,6r�0)r�_format_range_contextrr�s   r#�test_range_format_context�*TestOutputFormat.test_range_format_contextMs������+�+������Q�q��3�'�����Q�q��3�'�����Q�q��5�)�����Q�q��5�)�����Q�q��3�'r&r:N)	rIrJrKrLr�r�r�r�rMr:r&r#r�r�'s��
@�I�*�"(r&r�c�>�\rSrSrSrSrSrSrSrSr	Sr
S	rg
)�	TestBytesifc�`�[U5nUHnURU[SU-5 M g)Nz.all lines of diff should be bytes, but got: %r)r�assertIsInstance�bytes)r!r}�lines   r#�check�TestBytes.checkis1���D�z���D��!�!��e�@�4�G�
I�r&c�T�SS/nSS/n[Rn[RnURnU"[R"X1U55 U"[R"X1U55 U"[R"X1USS55 U"[R"X1USS55 U"[R"X1USSSS55 U"[R"X1USSSS55 U"[R"XAU55 U"[R"XAU55 U"[R"XAUSS55 U"[R"XAUSS55 U"[R"XAUSSSS55 U"[R"XAUSSSS55 g)N�hellosandr�sandré�a�bs2005s2013)rrir�r�
diff_bytes)r!rBrC�unifiedr�rs      r#�test_byte_content�TestBytes.test_byte_contentpsg��
�{�#��
��'���&�&���&�&���
�
��
�g� � ��Q�/�0�
�g� � ��Q�/�0�	�g� � ��Q��d�;�<�
�g� � ��Q��d�;�<�	�g� � ��Q��d�G�W�M�N�
�g� � ��Q��d�G�W�M�N�	�g� � ��Q�/�0�
�g� � ��Q�/�0�
�g� � ��Q��d�;�<�
�g� � ��Q��d�;�<�
�g� � ��Q��d�G�W�M�N�
�g� � ��Q��d�G�W�M�Nr&c�^�SnSnS/nS/nTRn[Rn[RnU"[R"XcXAU55 U"[R"XsXAU55 U4Sjn/SQn	[R"XcXAUSS9n
U"X�5 S	nS
nU"[R"XcXAX+U55 U"[R"XsXAX+U55 /SQn	[R"XcXAX+USS9n
U"X�5 g)Ns�odz.txts	łodz.txts�odz is a city in Poland.sŁodz is a city in Poland.c�>�[U5nTR[U5[U55 [X5Hup#TRX#5 M grd)rr�len�zip)�expectr��erBr!s    �r#�
assertDiff�1TestBytes.test_byte_filenames.<locals>.assertDiff�sE����&�\�F����S��[�#�f�+�6��F�+���� � ��&�,r&)s--- �odz.txts
+++ łodz.txt�@@ -1 +1 @@�-�odz is a city in Poland.�+Łodz is a city in Poland.r&)r�s
2005-03-18s
2005-03-19)s--- �odz.txt	2005-03-18s+++ łodz.txt	2005-03-19rrr)rrrir�r)
r!�fna�fnbrBrCrrr�rrr��datea�datebs
`            r#�test_byte_filenames�TestBytes.test_byte_filenames�s����� ��-�-��
0�1���
�
���&�&���&�&��
�g� � ��Q�S�9�:�
�g� � ��Q�S�9�:�	'�
���#�#�G���c�J���6�"�����
�g� � ��Q�S��G�H�
�g� � ��Q�S��G�H�	
���#�#�G���E�-0�2���6�"r&c��S/nS/n[Rn[RnSnURXSX5 URXSX!5 URXTX5 URXTX!5 SnURU[RX1U5 URU[RX2U5 URU[RXAU5 URU[RXBU5 g)Nr�helloz2lines to compare must be str, not bytes (b'hello')z.all arguments must be bytes, not str ('hello'))rrir��_assert_type_errorr)r!rBrCrr�rs      r#�test_mixed_types_content�"TestBytes.test_mixed_types_content�s���
�J��
�I���&�&���&�&��E�������6������6������6������6�A�������(:�(:�G��J������(:�(:�G��J������(:�(:�G��J������(:�(:�G��Jr&c�\�S/nS/nSnSnURS[RXX45 g)Nzhello
zohell
sol�.txts	ol�a9.txtz-all arguments must be str, not: b'ol\xe9.txt')r"rri)r!rBrCrrs     r#�test_mixed_types_filenames�$TestBytes.test_mixed_types_filenames�s:���K��
�K���������<�� � �!��	2r&c���S/nS/nSnSnURS[R[RXSSX45	 S/nS	/n[	[R"XS
SX455 g)Nsfoo
sbar
u1 févu3 févu/all arguments must be bytes, not str ('1 fév')r	r
zfoo
zbar
rBrC)r"rrrir)r!rBrCrrs     r#�test_mixed_types_dates� TestBytes.test_mixed_types_dates�sn��
�J��
�J���������=����� 4� 4�
�$��e�	,��I��
�I���W�
!�
!�!��S�%�
?�@r&c���UR[5n[U"U65 SSS5 URU[	WR
55 g!,(df   N4=frd)rf�	TypeErrorrr�str�	exception)r!�msg�	generatorr��ctxs     r#r"�TestBytes._assert_type_error�sF��
�
�
�y�
)�S���D�!�"�*�����c�#�-�-�0�1�*�
)�s�A�
A!r:N)rIrJrKrLrr
rr#r&r)r"rMr:r&r#rrfs*��I�O�83#�jK�(
2�A� 2r&rc�2�\rSrSrSrSrSrSrSrSr	g)	�TestJunkAPIsi�c�t�SH2nUR[R"U5[U55 M4 g)N)�#z  z #z# z # r�)�
assertTruer�IS_LINE_JUNK�repr�r!rs  r#�test_is_line_junk_true�#TestJunkAPIs.test_is_line_junk_true�s)��6�D��O�O�G�0�0��6��T�
�C�7r&c�t�SH2nUR[R"U5[U55 M4 g)N)�##z ##z## zabc zabc #zMr. Moose is up!)�assertFalserr8r9r:s  r#�test_is_line_junk_false�$TestJunkAPIs.test_is_line_junk_false�s,��M�D����W�1�1�$�7��d��D�Nr&c�^�SS-S-nUR[R"U55 g)N�	i@Br>)r?rr8)r!�
evil_inputs  r#�test_is_line_junk_REDOS�$TestJunkAPIs.test_is_line_junk_REDOS�s)���W�n��,�
�����-�-�j�9�:r&c�t�SH2nUR[R"U5[U55 M4 g)N)r9rC)r7r�IS_CHARACTER_JUNKr9�r!�chars  r#�test_is_character_junk_true�(TestJunkAPIs.test_is_character_junk_trues)���D��O�O�G�5�5�d�;�T�$�Z�H� r&c�t�SH2nUR[R"U5[U55 M4 g)N)rBr6r���
�)r?rrHr9rIs  r#�test_is_character_junk_false�)TestJunkAPIs.test_is_character_junk_falses+��6�D����W�6�6�t�<�d�4�j�I�7r&r:N)
rIrJrKrLr;r@rErKrQrMr:r&r#r4r4�s��D�E�;�I�Jr&r4c�&�\rSrSrSrSrSrSrg)�TestFindLongestic
�^�[U4Sj[S[U5U-
S-
5Vs/sHoBXDU-S-PM sn55$s snf)Nc3�,># �UH	oT;v� M g7frdr:)�.0�b_partrBs  �r#�	<genexpr>�6TestFindLongest.longer_match_exists.<locals>.<genexpr>
s����G�E�$*�Q�;�E�s�rr)�anyr�r)r!rBrC�nr�s `   r#�longer_match_exists�#TestFindLongest.longer_match_existssR����G�,1�!�S��V�a�Z�!�^�,D�E�,D�q�a�A���	�N�,D�E�G�G�	G��Es�A
c��SnSn[R"XS9nUR5nURURS5 URUR
S5 URURS5 URXRURUR-X$R
UR
UR-5 URURXUR55 URSSS9nURURS	5 URUR
S
5 URURS5 URXRURUR-X$R
UR
UR-5 URURUSSUSSUR55 URSSS
9nURURS5 URUR
S5 URURS5 URXRURUR-X$R
UR
UR-5 URURXSSUR55 g)Nzfoo barzfoo baz bar�rBrCrr�rqr�)�alo�blor
�r�r)�bhirb)	rr�find_longest_matchrrBrCrsr?r]�r!rBrCr"�matchs     r#�test_default_args�!TestFindLongest.test_default_argss6������
�
$�
$�q�
.���%�%�'��������!�$�������!�$�������Q�'�����7�7�E�G�G�e�j�j�$8�9��7�7�E�G�G�e�j�j�$8�9�	;�����1�1�!��
�
�C�D��%�%�!��%�3��������!�$�������!�$�������Q�'�����7�7�E�G�G�e�j�j�$8�9��7�7�E�G�G�e�j�j�$8�9�	;�����1�1�!�A�B�%��1�2���
�
�K�L��%�%�!��%�3��������!�$�������!�$�������Q�'�����7�7�E�G�G�e�j�j�$8�9��7�7�E�G�G�e�j�j�$8�9�	;�����1�1�!�q��V�U�Z�Z�H�Ir&c�.�SnSn[R"XS9nURS[U5S[U55nUR	UR
S5 UR	URS5 UR	URS5 UR	XR
UR
UR-X$RURUR-5 URURXUR55 g)N�dabcd��ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddabcddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddr`r�cr�)
rrrerrrBrCrsr?r]rfs     r#�%test_longest_match_with_popular_chars�5TestFindLongest.test_longest_match_with_popular_chars,s�����%��
�
$�
$�q�
.���%�%�a��Q���C��F�;��������!�$�������"�%�������Q�'�����7�7�E�G�G�e�j�j�$8�9��7�7�E�G�G�e�j�j�$8�9�	;�����1�1�!��
�
�C�Dr&r:N)rIrJrKrLr]rhrnrMr:r&r#rTrTs��G�J�8
Er&rTc��\rSrSrSrSrg)�TestCloseMatchesi9c�4�UR[[RSS/SS9 UR[[RSS/SS9 UR[[RSS/SS9 UR[[RSS/SS9 g)	N�spam�eggr)r\���g�������?)�cutoffg��������)rf�
ValueErrorr�get_close_matchesr�s r#�test_invalid_inputs�$TestCloseMatches.test_invalid_inputs<s������*�g�&?�&?��%��TU��V����*�g�&?�&?��%��TV��W����*�g�&?�&?��%��Y\��]����*�g�&?�&?��%��Y]��^r&r:N)rIrJrKrLryrMr:r&r#rqrq9s��_r&rqc��\rSrSrSrSrg)�TestRestoreiCc�X�UR[5 SR[R"/S55 SSS5 UR[5 SR[R"/S55 SSS5 g!,(df   NS=f!,(df   g=f)Nr�rr
)rfrwr�r�restorer�s r#�test_invalid_input�TestRestore.test_invalid_inputFsi��
�
�
�z�
*��G�G�G�O�O�B��*�+�+�
�
�
�z�
*��G�G�G�O�O�B��*�+�+�
*�+�
*��
*�
*�s�'B
�'B�

B�
B)r:N)rIrJrKrLrrMr:r&r#r|r|Cs��,r&r|c�.�S[Rlg)Nr)rr��_default_prefixr:r&r#�setUpModuler�Ms��'(�G���$r&c�X�UR[R"[55 U$rd)�addTest�doctest�DocTestSuiter)�loader�tests�patterns   r#�
load_testsr�Qs��	�M�M�'�&�&�w�/�0��Lr&�__main__)r�test.supportr�unittestr�r��TestCaserrOr[r�r�r�r�r�r�r�r�r�r�rr4rTrqr|r�r�rI�mainr:r&r#�<module>r�s7���!���
�-/�H�%�%�-/�`-�8�$�$�-�$+
��"�"�+
�\��������������"��"^9�H�%�%�^9�B<(�x�(�(�<(�~N2��!�!�N2�`J�8�$�$�J�*+E�h�'�'�+E�\_�x�(�(�_�,�(�#�#�,�)��
�z���M�M�O�r&

Youez - 2016 - github.com/yon3zu
LinuXploit