o
    HXhb,                     @   s   	 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 de jZ	G dd de jZ
G dd de jZed	krBe   dS dS )
    N)fnmatchfnmatchcase	translatefilterc                   @   sz   e Zd ZdefddZdd Zdd Zdd	 Zd
d Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd ZdS )FnmatchTestCaseTc                 C   s@   |r|  |||d||f  d S | |||d||f  d S )Nzexpected %r to match pattern %rz#expected %r not to match pattern %r)
assertTrueassertFalse)selffilenamepatternZshould_matchfn r   ;/opt/python-3.10.19/usr/lib/python3.10/test/test_fnmatch.pycheck_match   s   zFnmatchTestCase.check_matchc                 C   s   | 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	   checkr   r   r   test_fnmatch   s&   











zFnmatchTestCase.test_fnmatchc                 C   s    | j }|dd |ddd d S )NZ2aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz*a*a*a*a*a*a*a*a*a*aZ3aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFr   r   r   r   r   test_slow_fnmatch1   s   
z!FnmatchTestCase.test_slow_fnmatchc                 C   sD   |  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	   r   r   r   test_mix_bytes_str8   s   z"FnmatchTestCase.test_mix_bytes_strc                 C   sz   | 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   r   r   r   test_fnmatchcase>   s   z FnmatchTestCase.test_fnmatchcasec                 C   s(   |  dd |  dd |  dd d S )Nr   s   te*s   tests   te*s   foo
bars   foo*r   r"   r   r   r   
test_bytesJ   s   zFnmatchTestCase.test_bytesc                 C   sN   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   r   r   r   	test_caseO      
zFnmatchTestCase.test_casec                 C   sN   t jdt jdk}| j}|dd |dd| |dd| |dd d S )Nr   /r%   r&   r*   r	   normsepr   r   r   r   test_sepW   r0   zFnmatchTestCase.test_sepc                 C   sD  t jdt jdk}| j}tjtj tj }|D ]}||d|dv  ||d|dv q|D ]}||d|dv o9| ||d|dvpD|  q/tjD ]}||d|dv oT| ||d|dvp_|  qJ|D ]
}||d	|d
k qd|D ]}||d|dv  ||d|dv  ||d|dk qq|dd |dd |dd |dd d S )Nr)   r   z[az]azz[!az]z[AZ]z[!AZ]ZAZz[aa]r   z[^az]z^azz[[az]z[azz[!]]][z[]z[!z[!]	r+   r,   r-   r   stringascii_lowercasedigitspunctuationascii_uppercase)r	   r.   r   tescasescr   r   r   test_char_set_   s,   



zFnmatchTestCase.test_char_setc                 C   sR  t jdt jdk}t jdt jdk}| j}tjtj tj }|D ]"}||d|dv  ||d|dv ||d|d	v  ||d
|d	v q&|D ]}||d|dv oU| ||d|dvp`|  qKtjD ]}||d|dv op| ||d|dvp{|  qf|D ]
}||d|dk q|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 q|D ]6}||d"d# ||d$d% ||d&|d'v  ||d(|d'v ||d)|dv  |r|dks&||d*|dv  qd S )+Nr)   r   r   r1   z[b-d]Zbcdz[!b-d]z[b-dx-z]Zbcdxyzz	[!b-dx-z]z[B-D]z[!B-D]Z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]Zxyzz	[!d-bx-z]z[d-b^-`]z[d-b[-^]r8   )r	   r.   r3   r   r>   r?   r   r   r   
test_rangez   sP   
zFnmatchTestCase.test_rangec                 C   s   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   r1   z[/]r   Fz[\\]z[\t]t	r*   r2   r   r   r   test_sep_in_char_set   s   



z$FnmatchTestCase.test_sep_in_char_setc                 C   s  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   r1   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-/]br*   r2   r   r   r   test_sep_in_range   s,   

z!FnmatchTestCase.test_sep_in_rangec                 C   s|   t  0 t dt | j}|dd |dd |dd |dd	 |d
d |dd W d    d S 1 s7w   Y  d S )Nerrorr7   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   r   r   r   test_warnings   s   





"zFnmatchTestCase.test_warningsN)__name__
__module____qualname__r   r   r   r   r#   r'   r(   r/   r4   r@   rB   rE   rF   rQ   r   r   r   r   r   
   s    
,r   c                   @   s   e Zd Zdd ZdS )TranslateTestCasec           
      C   s  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 | |d |d  | |d |d   d!|d  }d!|d  }| |d"| d#| d$| 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\d+            gz(?s:(?=(?P<z>.*?a))(?P=z)(?=(?P<z).*a)\Zz
**a**a**a*z
**b**b**b*z*c*c*c*rI   ZabaccadZabxbcabZcbabcaxcZdabccbad)	reassertEqualr   findalllenjoinr   matchr   )
r	   r\   rC   r;   Zg1Zg2Zr1Zr2Zr3Zfatrer   r   r   test_translate   s@   z TranslateTestCase.test_translateN)rR   rS   rT   rb   r   r   r   r   rU      s    rU   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
FilterTestCasec                 C   s8   |  tg ddddg |  tg ddddg d S )	N)PythonZRubyPerlZTclzP*rd   re   )   Pythons   Ruby   Perls   Tcls   P*rf   rg   )r]   r   r"   r   r   r   test_filter  s   zFilterTestCase.test_filterc                 C   s(   |  ttdgd |  ttdgd d S r   )r    r!   r   r"   r   r   r   r#     s   z!FilterTestCase.test_mix_bytes_strc                 C   j   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 d S dg d S )NPp)Test.pyzTest.rbTest.PLz*.p*rl   rm   z*.P*r+   r,   r-   r]   r   )r	   r.   r   r   r   r/        
zFilterTestCase.test_casec                 C   ri   )Nr   r1   )r%   Zusrusr\libzusr/*r%   rp   zusr\*rn   )r	   r3   r   r   r   r4     ro   zFilterTestCase.test_sepN)rR   rS   rT   rh   r#   r/   r4   r   r   r   r   rc     s
    rc   __main__)Zunittestr+   r9   rM   r   r   r   r   ZTestCaser   rU   rc   rR   mainr   r   r   r   <module>   s     S)