
    ;e*                         d Z ddlZddlZddlZddlZddlmZmZmZmZ  G d dej	                  Z
 G d dej	                  Z G d d	ej	                  Zed
k    r ej                     dS dS )z"Test cases for the fnmatch module.    N)fnmatchfnmatchcase	translatefilterc                   b    e Zd Zdef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S )FnmatchTestCaseTc                     |r(|                       |||          d|d|           d S |                      |||          d|d|           d S )Nz	expected z to match pattern z not to match pattern )
assertTrueassertFalse)selffilenamepatternshould_matchfns        (/usr/lib/python3.11/test/test_fnmatch.pycheck_matchzFnmatchTestCase.check_match   s     	0OOBBx111$HHgg/0 0 0 0 0 RR'222$HHgg/0 0 0 0 0    c                    | j         } |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d            |ddd
            |dd            |dd            |ddd
            |dd           d S )Nabcz?*?z???*z*???z???*zab[cd]zab[!de]zab[de]Faz??b\[\]z[!\]zfoo
barzfoo*zfoo
bar
z
foo
r   r   checks     r   test_fnmatchzFnmatchTestCase.test_fnmatch   sb    eUeUeVeVeUeSeXeYeXu%%%c4c3 	dFc7dGU### 	j&!!!lF###gvu%%%dCr   c                 F    | j         } |dd            |ddd           d S )N2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz*a*a*a*a*a*a*a*a*a*a3aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFr   r   s     r   test_slow_fnmatchz!FnmatchTestCase.test_slow_fnmatch1   s:     h./// 	n4e<<<<<r   c                    |                      t          t          dd           |                      t          t          dd           |                      t          t          dd           |                      t          t          dd           d S Ntest   *   testr   )assertRaises	TypeErrorr   r   r   s    r   test_mix_bytes_strz"FnmatchTestCase.test_mix_bytes_str8   sp    )Wfd;;;)Wgs;;;)[&$???)['3?????r   c                 D   | j         } |dddt                      |dddt                      |dddt                      |dddt                      |dddt                      |dddt                      |dddt                      |dddt                     d S )Nr   TAbCFusr/binusr\bin)r   r   r   s     r   test_fnmatchcasez FnmatchTestCase.test_fnmatchcase>   s     eUD+...eUE;///eUE;///eUD+...iD+666j)UK888iUK888j*dK88888r   c                     |                      dd           |                      dd           |                      dd           d S )Nr(   s   te*s   tests   te*s   foo
bars   foo*r   r+   s    r   
test_byteszFnmatchTestCase.test_bytesJ   sJ    &)))j111g.....r   c                     t           j                            d          t           j                            d          k    }| j        } |dd            |dd|            |dd|            |dd           d S )NABCr   r.   ospathnormcaser   )r   
ignorecaser   s      r   	test_casezFnmatchTestCase.test_caseO   s    W%%e,,0@0@0G0GG
 eUeUJ'''eUJ'''eUr   c                     t           j                            d          t           j                            d          k    }| j        } |dd            |dd|            |dd|            |dd           d S )Nr   /r/   r0   r6   r   normsepr   s      r   test_sepzFnmatchTestCase.test_sepW   s    '""4((BG,<,<S,A,AA i###j)W---iW---j*%%%%%r   c                    t           j                            d          t           j                            d          k    }| j        }t          j        t          j        z   t          j        z   }|D ] } ||d|dv             ||d|dv           !|D ]%} ||d|dv o|            ||d|dvp|            &t          j        D ]%} ||d|dv o|            ||d|dvp|            &|D ]} ||d	|d
k               |D ]1} ||d|dv             ||d|dv             ||d|dk               2 |dd            |dd            |dd            |dd           d S )Nr5   r   z[az]azz[!az]z[AZ]z[!AZ]AZz[aa]r   z[^az]z^azz[[az]z[azz[!]]][z[]z[!z[!]	r7   r8   r9   r   stringascii_lowercasedigitspunctuationascii_uppercase)r   r:   r   tescasescs        r   test_char_setzFnmatchTestCase.test_char_set_   s   W%%e,,0@0@0G0GG
 )FM9F<NN 	- 	-AE!VQ$Y'''E!Watm,,,, 	A 	AAE!Va4i7Z888E!Wq}?Z@@@@' 	A 	AAE!Va4i7Z888E!Wq}?Z@@@@ 	' 	'AE!VQ#X&&&& 	( 	(AE!Wa5j)))E!Wa5j)))E!Wa3h''''c3dDdDeUr   c                    t           j                            d          t           j                            d          k    }t           j                            d          t           j                            d          k    }| j        }t          j        t          j        z   t          j        z   }|D ]>} ||d|dv             ||d|dv            ||d|d	v             ||d
|d	v           ?|D ]%} ||d|dv o|            ||d|dvp|            &t          j        D ]%} ||d|dv o|            ||d|dvp|            &|D ]} ||d|dk               |D ]} ||d|dv            ||d|dv            ||d|dv            |r|dk    s ||d|dv             ||d|dv             ||d|dv             ||d|dv            ||d|dv             ||d|dv            ||d|d v             ||d!|d v           |D ]`} ||d"d#            ||d$d%            ||d&|d'v             ||d(|d'v            ||d)|dv            |r|dk    s ||d*|dv            ad S )+Nr5   r   r   r=   z[b-d]bcdz[!b-d]z[b-dx-z]bcdxyzz	[!b-dx-z]z[B-D]z[!B-D]BCDz[b-b]r   z[!-#]z-#z[!--.]z-.z[^-`]z^_`z[[-^]z[\]^z[\-^]z\]^z[b-]z-bz[!b-]z[-b]z[!-b]z[-]-z[!-]z[d-b]Fz[!d-b]Tz[d-bx-z]xyzz	[!d-bx-z]z[d-b^-`]z[d-b[-^]rF   )r   r:   r?   r   rL   rM   s         r   
test_rangezFnmatchTestCase.test_rangez   s   W%%e,,0@0@0G0GG
'""4((BG,<,<S,A,AA )FM9F<NN 	5 	5AE!Wa5j)))E!Xq~...E!Zh///E![!8"34444 	C 	CAE!WqEz9z:::E!XAz>BBBB' 	C 	CAE!WqEz9z:::E!XAz>BBBB 	( 	(AE!Wa3h'''' 	+ 	+AE!Watm,,,E!Xq}---E!Wa5j))) 0Sa!w,///a1;///E!VQ$Y'''E!Watm,,,E!VQ$Y'''E!Watm,,,E!UAH%%%E!VQc\**** 	3 	3AE!We$$$E!Xt$$$E!Ze,,,E![!5.111E!Ze,,, 3SaQ'\222	3 	3r   c                    t           j                            d          t           j                            d          k    }| j        } |dd            |dd            |dd|            |dd|            |ddd            |ddd            |dd            |dd|            |dd            |d	dd           d S )
Nr   r=   z[/]r   Fz[\\]z[\t]t	r6   r>   s      r   test_sep_in_char_setz$FnmatchTestCase.test_sep_in_char_set   s    '""4((BG,<,<S,A,AA c6dFc67###dFG$$$eVU###gvu%%%dGc7G$$$c7dGU#####r   c                    t           j                            d          t           j                            d          k    }| j        } |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            |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 S )Nr   r=   za/bza[.-0]bza\bFza[Z-^]bza[/-0]bza[\-0]bza[.-/]bza[.-\]bza[\-^]bza[/-^]bza[Z-\]bza[Z-/]br6   r>   s      r   test_sep_in_rangez!FnmatchTestCase.test_sep_in_range   s   '""4((BG,<,<S,A,AA eYG,,,fi'''fiW---eY&&&eYG,,,fi'''iE***j)U+++eYfi)))iE***j)U+++fj!!!eZ)))j*e,,,iU+++fjg+...eZ'''j*e,,,iU+++++r   c                 0   t          j                    5  t          j        dt                     | j        } |dd            |dd            |dd            |dd	            |d
d            |dd           d d d            d S # 1 swxY w Y   d S )NerrorrE   z[[]&z[a&&b]|z[a||b]~z[a~~b],z[a-z+--A-Z].z[a-z--/A-Z])warningscatch_warningssimplefilterWarningr   r   s     r   test_warningszFnmatchTestCase.test_warnings   s    $&& 	& 	&!'7333$EE#uE#x   E#x   E#x   E#}%%%E#}%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s   A*BBBN)__name__
__module____qualname__r   r   r   r#   r,   r1   r3   r;   r@   rN   rU   rY   r[   rg    r   r   r   r   
   s        :>7 0 0 0 0  6= = =@ @ @
9 
9 
9/ / /
  & & &  6*3 *3 *3X$ $ $, , ,8	& 	& 	& 	& 	&r   r   c                       e Zd Zd ZdS )TranslateTestCasec                    dd l }|                     t          d          d           |                     t          d          d           |                     t          d          d           |                     t          d          d	           |                     t          d
          d           |                     t          d          d           |                     t          d          d           |                     t          d          d           |                     t          d          d           |                     t          d          d           |                     t          d          d           |                     t          d          d           |                     t          d          d           t          d          }|                     |d           t          d          }t          d          }t          d          }d                     |||g          }|                     |                    |d!                     |                     |                    |d"                     |                     |                    |d#                     |                     |                    |d$                     d S )%Nr   r   z	(?s:.*)\Z?z(?s:.)\Zza?b*z(?s:a.b.*)\Zz[abc]z(?s:[abc])\Zz[]]z
(?s:[]])\Zz[!x]z(?s:[^x])\Zz[^x]z(?s:[\^x])\Zz[xz
(?s:\[x)\Zz*.txtz(?s:.*\.txt)\Zz	*********z
A*********z
(?s:A.*)\Zz
*********Az
(?s:.*A)\ZzA*********?[?]?z(?s:A.*.[?].)\Zz
**a*a****az(?s:(?>.*?a)(?>.*?a).*a)\Zz
**a**a**a*z
**b**b**b*z*c*c*c*r_   abaccadabxbcabcbabcaxcdabccbad)reassertEqualr   joinr
   matchr   )r   rt   rW   r1r2r3fatres          r   test_translatez TranslateTestCase.test_translate   sz   			366635556**O<<<7++_===5))=9996**N;;;6**O<<<4-8887++->???;//>>><00-@@@<00-@@@#4557IJJJl##9::: |$$|$$y!!"b"&&	22333	22333
33444%4455555r   N)rh   ri   rj   r|   rk   r   r   rm   rm      s#        6 6 6 6 6r   rm   c                   &    e Zd Zd Zd Zd Zd ZdS )FilterTestCasec                     |                      t          g dd          ddg           |                      t          g dd          ddg           d S )	N)PythonRubyPerlTclzP*r   r   )   Pythons   Ruby   Perls   Tcls   P*r   r   )ru   r   r+   s    r   test_filterzFilterTestCase.test_filter   sr     A A A4HH"F+	- 	- 	- E E EuMM#W-	/ 	/ 	/ 	/ 	/r   c                     |                      t          t          dgd           |                      t          t          dgd           d S r%   )r)   r*   r   r+   s    r   r,   z!FilterTestCase.test_mix_bytes_str  s@    )VfXt<<<)VgY<<<<<r   c                 :   t           j                            d          t           j                            d          k    }|                     t	          g dd          |rddgndg           |                     t	          g dd          |rddgndg           d S )NPp)Test.pyzTest.rbTest.PLz*.p*r   r   z*.P*r7   r8   r9   ru   r   )r   r:   s     r   r;   zFilterTestCase.test_case	  s    W%%c**bg.>.>s.C.CC
 A A A6JJ3=N)Y//I;	P 	P 	P A A A6JJ3=N)Y//I;	P 	P 	P 	P 	Pr   c                 :   t           j                            d          t           j                            d          k    }|                     t	          g dd          |rddgndg           |                     t	          g dd          |rddgndg           d S )Nr   r=   )r/   usrusr\libzusr/*r/   r   zusr\*r   )r   r?   s     r   r@   zFilterTestCase.test_sep  s    '""4((BG,<,<S,A,AA > > >HH4;L)Z00)	N 	N 	N > > >II4;M)Z00*	O 	O 	O 	O 	Or   N)rh   ri   rj   r   r,   r;   r@   rk   r   r   r~   r~      sX        / / /= = =P P PO O O O Or   r~   __main__)__doc__unittestr7   rG   rc   r   r   r   r   TestCaser   rm   r~   rh   mainrk   r   r   <module>r      s   ( (  				   ; ; ; ; ; ; ; ; ; ; ; ;O& O& O& O& O&h' O& O& O&d6 6 6 6 6) 6 6 6BO O O O OX& O O O6 zHMOOOOO r   