
    dafU                        d dl Z d dlmZ d dlZd dlZd dlZ G d dej                        Z G d dej                        Z G d dej                        Z	d	Z
d
ZdZdZdZdZdZdZ G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Z G d dej                        Zd Zd Zedk(  r ej4                          yy)    N)findfilec                       e Zd Zd Zd Zd Zy)TestWithAsciic                 $   t        j                  d dd      }| j                  |j                         dd       | j	                  t        |j                               ddg       | j	                  |j                  t                      t        j                  d dd      }| j                  |j                         dd       | j	                  t        |j                               g d	       | j	                  |j                  t                      y )
Ndbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbeabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbgףp=
?   places)insertr   r   r      )equalr   d   r   e   ebbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb))r   r   2   r   r   )r   r   r   r   3   )r   r   r   r   r   )	difflibSequenceMatcherassertAlmostEqualratioassertEquallistget_opcodesbpopularsetselfsms     ,/root/Python-3.12.4/Lib/test/test_difflib.pytest_one_insertzTestWithAscii.test_one_insert	   s    $$T9oFrxxz5;bnn./&)+	, 	ce,$$T96OPrxxz5;bnn./-	. 	ce,    c                     t        j                  d dd      }| j                  |j                         dd       | j	                  t        |j                               g d       y )NQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbg+?r	   r
   ))r   r   (   r   r&   )deleter&   )   r&   r&   )r   r(   Q   r&   P   )r   r   r   r   r   r   r   r   s     r    test_one_deletezTestWithAscii.test_one_delete   sT    $$T+DFYZrxxz5;bnn./+	,r"   c                 X   t        j                  d dd      }| j                  |j                  t	                      t        j                  d dd      }| j                  |j                  dh       t        j                  d dd      }| j                  |j                  dd	h       y )
Nc                     | dk(  S N  xs    r    <lambda>z*TestWithAscii.test_bjunk.<locals>.<lambda>!   
    a3h r"   r%   Taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb)isjunkabc                     | dk(  S r.   r0   r1   s    r    r3   z*TestWithAscii.test_bjunk.<locals>.<lambda>%   r4   r"   zhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb                    r/   c                 
    | dv S )N)r/   r8   r0   r1   s    r    r3   z*TestWithAscii.test_bjunk.<locals>.<lambda>)   s
    a:o r"   r8   )r   r   r   bjunkr   r   s     r    
test_bjunkzTestWithAscii.test_bjunk    s    $$,>%)<>35)$$,>%)GIC5)$$,E%)GIC:.r"   N)__name__
__module____qualname__r!   r+   r<   r0   r"   r    r   r      s    -,/r"   r   c                       e Zd ZdZd Zy)TestAutojunkz-Tests for the autojunk parameter added in 2.7c                 v   d}d}t        j                  d ||      }| j                  |j                         dd       | j	                  |j
                  dh       t        j                  d ||d      }| j                  |j                         d	d       | j	                  |j
                  t                      y )
Nbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbr   r	   r
   r8   F)autojunkgQ?)r   r   r   r   r   r   r   )r   seq1seq2r   s       r    #test_one_insert_homogenous_sequencez0TestAutojunk.test_one_insert_homogenous_sequence0   s     $$T46rxxz1Q7se, $$T4Frxxz6!<ce,r"   N)r=   r>   r?   __doc__rH   r0   r"   r    rA   rA   .   s
    7-r"   rA   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)
TestSFbugsc                     t        j                  d g g       }| j                  |j                         d       | j                  |j	                         d       | j                  |j                         d       y )Nr   )r   r   r   r   quick_ratioreal_quick_ratio)r   ss     r    test_ratio_for_null_seqnz#TestSFbugs.test_ratio_for_null_seqnA   s[    ##D"b1A&!,++-q1r"   c                     t        j                  d g g       j                         }| j                  t        t
        |       t        j                  g g       }| j                  t        t
        |       y N)r   r   get_grouped_opcodesassertRaisesStopIterationnextunified_diff)r   	group_gendiff_gens      r    test_comparing_empty_listsz%TestSFbugs.test_comparing_empty_listsH   sU    ++D"b9MMO	-y9''B/-x8r"   c                 ,   t        j                  d dd      }|j                         }|j                         }| j                  |d   j                  d       | j                  |d   j                  d       | j                  |d   j                  d       y )Nabxcdabcdr      r   )r   r   get_matching_blocksr   size)r   rO   firstseconds       r    test_matching_blocks_cachez%TestSFbugs.test_matching_blocks_cacheO   sz    ##D'6:%%'&&(+++r"   c                 
   t        t        j                         j                  dgdg            }| j	                  d|d          | j	                  d|d          | j	                  d|d          | j	                  d	|d
          y )Nz	I am a buggyz		I am a bugz- 	I am a buggyr   z? 	          --
r   z+ 		I am a bugr^   z? +
r	   r   r   Differcomparer   r   diffs     r    test_added_tab_hintzTestSFbugs.test_added_tab_hintX   s{    GNN$,,.>-?AQ@RST+T!W5-tAw7+T!W5$q'*r"   c                     t        t        j                         j                  dgdg            }| j	                  d|d          | j	                  d|d          | j	                  d|d          y )	Nz	 	 	^z	 	 	^
z- 	 	 	^r   z	+ 	 	 	^
r   z
? 	 	 	 +
r^   re   rh   s     r    %test_hint_indented_properly_with_tabsz0TestSFbugs.test_hint_indented_properly_with_tabs`   sa    GNN$,,k]]OLMQ0$q'2)473r"   c           	      j    | j                  t        t        j                  dgdgd            dg       y )N23r   ))r   z -2)r   z +3T)r   r   r   _mdiff)r   s    r    test_mdiff_catch_stop_iterationz*TestSFbugs.test_mdiff_catch_stop_iterationf   s/    ua019:	
r"   N)	r=   r>   r?   rP   rZ   rc   rj   rl   rq   r0   r"   r    rK   rK   @   s     29,+4
r"   rK   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
zline 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 endzline 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                   *    e Zd Zd Zd Zd Zd Zd Zy)TestSFpatchesc           !         t         dz   dz  }t        dz   dz  }d|z   }d|z   }|j                         }|j                         }|j                         }|j                         }t        j                         }t        j                         }t
        }t        }t        j                         }	t        j                  d      }
t        j                  d      }|	j                  ||dd	d
d      }dj                  d|	j                  ||dd	d      d|	j                  ||dd	d      d|	j                  ||dd	dd      d|	j                  ||dd	dd      d|	j                  ||dd	d      d|	j                  ||dd	d
      d|	j                  g g dd	d      d|	j                  g g dd	d
      d|
j                  ||      d|	j                  ||      d|j                  |j                         |j                         dd      d|j                  |j                         |j                               d|j                  |j                  d      |j                  d            g      }|j                  dd |z        }t        t        d!      d"#      5 }| j                  ||j!                                d d d        y # 1 sw Y   y xY w)$Nz(123
123
123
123
123
123
123
123
123
123
r	   z(456
456
456
456
456
456
456
456
456
456
r^   )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>r   z<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>ztest_difflib_expect.htmlzutf-8)encoding)patch914575_from1patch914575_to1
splitlinespatch914575_from2patch914575_to2patch914575_from3patch914575_to3r   HtmlDiff	make_filejoin
make_tablereplaceopenr   r   read)r   f1at1af1bt1bf2t2f3t3ijkfulltablesactualfps                   r    test_html_diffzTestSFpatches.test_html_diff   s   !J.1+Q.33nnnnnnnn))+'')Q'+{{3s6$ua{HG\\#c&d\;F\\#c&d\;,\\#c&dA\F,\\#c&dA\F$\\#c&d\;!\\#c&e\<%\\"RtD\9"\\"RtE\:!\\"R '\\"R :\\"--/"--/$PQ\R2\\"--/"--/:6\\"---bmmD.AB5: i&(@A (56I 	0RVRWWY/	0 	0 	0s   !J99Kc                 .   t        j                         }t        |dz        D cg c]  }|dz  xr dxs d|z   }}t        |dz        D cg c]  }|dz  xr dxs d|z   }}t        j                  d ||      j                          y c c}w c c}w )Nr^   zK:%dzV:A:%dzV:B:%d)sysgetrecursionlimitranger   r   r   )r   limitr   oldnews        r    test_recursion_limitz"TestSFpatches.test_recursion_limit   s    %%'9>uQwHA!*(a/HH9>uQwHA!*(a/HHc3/;;= IHs   BBc                     t        j                         }|j                  t        j	                         t
        j	                               }| j                  d|       y )Nz"content="text/html; charset=utf-8"r   r   r   r   r   r   assertInr   	html_diffoutputs      r    test_make_file_default_charsetz,TestSFpatches.test_make_file_default_charset   sH    $$&	$$%6%A%A%C%4%?%?%AC:FCr"   c                     t        j                         }|j                  t        j	                         t
        j	                         d      }| j                  d|       y )Nz
iso-8859-1charsetz'content="text/html; charset=iso-8859-1"r   r   s      r    test_make_file_iso88591_charsetz-TestSFpatches.test_make_file_iso88591_charset  sQ    $$&	$$%6%A%A%C%4%?%?%A-9 % ; 	?Hr"   c                     t        j                         }|j                  t        j	                         t
        j	                         d      }| j                  d|       | j                  d|       y )Nzus-asciir   z%content="text/html; charset=us-ascii"z&#305;mpl&#305;c&#305;t)r   r   r   patch914575_nonascii_from1r   patch914575_nonascii_to1r   r   s      r    2test_make_file_usascii_charset_with_nonascii_inputz@TestSFpatches.test_make_file_usascii_charset_with_nonascii_input  s`    $$&	$$%?%J%J%L%=%H%H%J-7 % 9 	=vF/8r"   N)r=   r>   r?   r   r   r   r   r   r0   r"   r    rs   rs      s    70r>DI9r"   rs   c                   $    e Zd Zd Zd Zd Zd Zy)TestOutputFormatc                     g d}t        j                  |ddi}| j                  t        |      dd ddg       t        j                  |ddi}| j                  t        |      dd dd	g       y )
N)onetwoOriginalCurrentz2005-01-26 23:30:50z2010-04-02 10:20:52lineterm r   r^   z --- 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r   rW   r   r   context_diffr   argsudcds       r    test_tab_delimiterz#TestOutputFormat.test_tab_delimiter  s    :!!45"5b!A>=)? 	@ !!45"5b!A>=)? 	@r"   c                     g d}t        j                  |ddi}| j                  t        |      dd ddg       t        j                  |ddi}| j                  t        |      dd dd	g       y )
N)r   r   r   r   r   r   r   r^   z--- Originalz+++ Currentz*** Originalz--- Currentr   r   s       r    &test_no_trailing_tab_on_empty_filedatez7TestOutputFormat.test_no_trailing_tab_on_empty_filedate!  so    4!!45"5b!A(GH!!45"5b!A(GHr"   c                 "   d}t         j                  }| j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d	       | j                   |d
d
      d       y )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	   z3,0   4rz   z4,2r~   z4,3r   z0,0)r   _format_range_unifiedr   r   specfmts      r    test_range_format_unifiedz*TestOutputFormat.test_range_format_unified)  s     ++Qq5)Qq3'Qq5)Qq5)Qq5)r"   c                 "   d}t         j                  }| j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d	       | j                   |d
d
      d       y )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	   ro   r   r   rz   z4,5r~   z4,6r   0)r   _format_range_contextr   r   s      r    test_range_format_contextz*TestOutputFormat.test_range_format_context:  s     ++Qq3'Qq3'Qq5)Qq5)Qq3'r"   N)r=   r>   r?   r   r   r   r   r0   r"   r    r   r     s    
@I*"(r"   r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)		TestBytesc                 \    t        |      }|D ]  }| j                  |t        d|z          y )Nz.all lines of diff should be bytes, but got: %r)r   assertIsInstancebytes)r   ri   lines      r    checkzTestBytes.checkV  s8    Dz 	ID!!e@4GI	Ir"   c                 T   ddg}ddg}t         j                  }t         j                  }| j                  } |t        j                  |||              |t        j                  |||              |t        j                  |||dd              |t        j                  |||dd              |t        j                  |||dddd              |t        j                  |||dddd              |t        j                  |||              |t        j                  |||              |t        j                  |||dd              |t        j                  |||dd              |t        j                  |||dddd              |t        j                  |||dddd             y )N   hellos   andrs   andré   a   bs   2005s   2013)r   rW   r   r   
diff_bytes)r   r7   r8   unifiedr{   r   s         r    test_byte_contentzTestBytes.test_byte_content]  s   {#'&&&&

g  !Q/0g  !Q/0 	g  !Qd;<g  !Qd;< 	g  !QdGWMNg  !QdGWMN 	g  !Q/0g  !Q/0g  !Qd;<g  !Qd;<g  !QdGWMNg  !QdGWMNr"   c                 (    d}d}dg}dg} j                   }t        j                  }t        j                  } |t        j                  |||||              |t        j                  |||||              fd}g d}	t        j                  |||||d      }
 ||	|
       d	}d
} |t        j                  |||||||              |t        j                  |||||||             g d}	t        j                  |||||||d      }
 ||	|
       y )Ns   odz.txts	   łodz.txts   odz is a city in Poland.s   Łodz is a city in Poland.c                     t        |      }j                  t        |       t        |             t        | |      D ]  \  }}j                  ||        y rR   )r   r   lenzip)expectr   er7   r   s       r    
assertDiffz1TestBytes.test_byte_filenames.<locals>.assertDiff  sP     &\FS[#f+6FF+ '1  A&'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-19r   r   r   )r   r   rW   r   r   )r   fnafnbr7   r8   r   r   r{   r   r   r   dateadatebs   `            r    test_byte_filenameszTestBytes.test_byte_filenamesy  s$     --01

&&&&g  !QS9:g  !QS9:	'
 ##GQ3cJ66" g  !QS%GHg  !QS%GH	
 ##GQ3UE-0266"r"   c                    dg}dg}t         j                  }t         j                  }d}| j                  ||||       | j                  ||||       | j                  ||||       | j                  ||||       d}| j                  |t         j                  |||       | j                  |t         j                  |||       | j                  |t         j                  |||       | j                  |t         j                  |||       y )Nr   helloz2lines to compare must be str, not bytes (b'hello')z.all arguments must be bytes, not str ('hello'))r   rW   r   _assert_type_errorr   )r   r7   r8   r   r{   r   s         r    test_mixed_types_contentz"TestBytes.test_mixed_types_content  s    JI&&&&EA6A6A6A6A(:(:GQJ(:(:GQJ(:(:GQJ(:(:GQJr"   c                 `    dg}dg}d}d}| j                  dt        j                  ||||       y )Nzhello
zohell
s   ol.txts	   ola9.txtz-all arguments must be str, not: b'ol\xe9.txt')r   r   rW   )r   r7   r8   r   r   s        r    test_mixed_types_filenamesz$TestBytes.test_mixed_types_filenames  s>     KK<  !QS	2r"   c                     dg}dg}d}d}| j                  dt        j                  t        j                  ||dd||	       dg}d	g}t	        t        j                  ||d
d||             y )Ns   foo
s   bar
u   1 févu   3 févu/   all arguments must be bytes, not str ('1 fév')r   r   zfoo
zbar
r7   r8   )r   r   r   rW   r   )r   r7   r8   r   r   s        r    test_mixed_types_datesz TestBytes.test_mixed_types_dates  sv    JJ= 4 4q$eU	, IIW!!!QS%?@r"   c                     | j                  t              5 }t         ||        d d d        | j                  |t	        j
                               y # 1 sw Y   /xY wrR   )rT   	TypeErrorr   r   str	exception)r   msg	generatorr   ctxs        r    r   zTestBytes._assert_type_error  sM    y) 	#SD!"	#c#--01	# 	#s   AAN)
r=   r>   r?   r   r   r   r   r   r   r   r0   r"   r    r   r   S  s*    IO83#jK(
2A 2r"   r   c                   *    e Zd Zd Zd Zd Zd Zd Zy)TestJunkAPIsc                 n    dD ]0  }| j                  t        j                  |      t        |             2 y )N)#z  z #z# z # r   )
assertTruer   IS_LINE_JUNKreprr   r   s     r    test_is_line_junk_truez#TestJunkAPIs.test_is_line_junk_true  s0    6 	DDOOG006T
C	Dr"   c                 n    dD ]0  }| j                  t        j                  |      t        |             2 y )N)##z ##z## zabc zabc #zMr. Moose is up!)assertFalser   r  r  r  s     r    test_is_line_junk_falsez$TestJunkAPIs.test_is_line_junk_false  s2    M 	EDW11$7dD	Er"   c                 \    ddz  dz   }| j                  t        j                  |             y )N	i@B r	  )r
  r   r  )r   
evil_inputs     r    test_is_line_junk_REDOSz$TestJunkAPIs.test_is_line_junk_REDOS  s)    Wn,
--j9:r"   c                 n    dD ]0  }| j                  t        j                  |      t        |             2 y )N)r/   r  )r  r   IS_CHARACTER_JUNKr  r   chars     r    test_is_character_junk_truez(TestJunkAPIs.test_is_character_junk_true  s0     	IDOOG55d;T$ZH	Ir"   c                 n    dD ]0  }| j                  t        j                  |      t        |             2 y )N)r7   r  r}   )r
  r   r  r  r  s     r    test_is_character_junk_falsez)TestJunkAPIs.test_is_character_junk_false  s2    6 	JDW66t<d4jI	Jr"   N)r=   r>   r?   r  r  r  r  r  r0   r"   r    r   r     s    DE;IJr"   r   c                       e Zd Zd Zd Zd Zy)TestFindLongestc           
          t        fdt        dt        |      |z
  dz
        D cg c]  }||||z   dz     c}D              S c c}w )Nc              3   &   K   | ]  }|v  
 y wrR   r0   ).0b_partr7   s     r    	<genexpr>z6TestFindLongest.longer_match_exists.<locals>.<genexpr>  s      G66Q; Gs   r   r   )anyr   r   )r   r7   r8   nr   s    `   r    longer_match_existsz#TestFindLongest.longer_match_exists  sP     G,1!SVaZ!^,DEqAaA	NEG G 	GEs   A
c                    d}d}t        j                  ||      }|j                         }| j                  |j                  d       | j                  |j
                  d       | j                  |j                  d       | j                  ||j                  |j                  |j                  z    ||j
                  |j
                  |j                  z           | j                  | j                  |||j                               |j                  dd      }| j                  |j                  d	       | j                  |j
                  d
       | j                  |j                  d       | j                  ||j                  |j                  |j                  z    ||j
                  |j
                  |j                  z           | j                  | j                  |dd  |dd  |j                               |j                  dd      }| j                  |j                  d       | j                  |j
                  d       | j                  |j                  d       | j                  ||j                  |j                  |j                  z    ||j
                  |j
                  |j                  z           | j                  | j                  ||dd |j                               y )Nzfoo barzfoo baz barr7   r8   r   r~   r^   r   )aloblor	      rz   r   )bhir'  )	r   r   find_longest_matchr   r7   r8   r`   r
  r#  r   r7   r8   r   matchs        r    test_default_argsz!TestFindLongest.test_default_args  sH   $$qA.%%'!$!$Q'577EGGejj$89577EGGejj$89	;11!Q

CD%%!%3!$!$Q'577EGGejj$89577EGGejj$89	;11!AB%12

KL%%!%3!$!$Q'577EGGejj$89577EGGejj$89	;11!QqVUZZHIr"   c                 :   d}d}t        j                  ||      }|j                  dt        |      dt        |            }| j	                  |j
                  d       | j	                  |j                  d       | j	                  |j                  d       | j	                  ||j
                  |j
                  |j                  z    ||j                  |j                  |j                  z           | j                  | j                  |||j                               y )Ndabcdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddabcddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddr%  r   c   rz   )
r   r   r*  r   r   r7   r8   r`   r
  r#  r+  s        r    %test_longest_match_with_popular_charsz5TestFindLongest.test_longest_match_with_popular_chars  s    %$$qA.%%aQCF;!$"%Q'577EGGejj$89577EGGejj$89	;11!Q

CDr"   N)r=   r>   r?   r#  r-  r2  r0   r"   r    r  r    s    GJ8
Er"   r  c                  .    dt         j                  _        y )Nr   )r   r   _default_prefixr0   r"   r    setUpModuler5  &  s    '(G$r"   c                 V    |j                  t        j                  t                     |S rR   )addTestdoctestDocTestSuiter   )loadertestspatterns      r    
load_testsr=  *  s    	MM'&&w/0Lr"   __main__)r   test.supportr   unittestr8  r   TestCaser   rA   rK   r   r   r   r   r   r   r   r   rs   r   r   r   r  r5  r=  r=   mainr0   r"   r    <module>rC     s    !   
#/H%% #/L-8$$ -$+
"" +
\     ""U9H%% U9p<(x(( <(~N2!! N2`J8$$ J*+Eh'' +E\)
 zHMMO r"   