Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_named_expressions.cpython-38.pyc
U

>��gB�@s^ddlZddlZdaGdd�dej�ZGdd�dej�ZGdd�dej�ZedkrZe��dS)	�Nc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)S)*�NamedExpressionInvalidTestc	Cs,d}|�td��t|ii�W5QRXdS)Nzx := 0�invalid syntax��assertRaisesRegex�SyntaxError�exec��self�code�r�:/opt/cppython/lib/python3.8/test/test_named_expressions.py� test_named_expression_invalid_01sz;NamedExpressionInvalidTest.test_named_expression_invalid_01c	Cs,d}|�td��t|ii�W5QRXdS)Nz
x = y := 0rrrrrr� test_named_expression_invalid_02sz;NamedExpressionInvalidTest.test_named_expression_invalid_02c	Cs,d}|�td��t|ii�W5QRXdS)Nz	y := f(x)rrrrrr� test_named_expression_invalid_03sz;NamedExpressionInvalidTest.test_named_expression_invalid_03c	Cs,d}|�td��t|ii�W5QRXdS)Nzy0 = y1 := f(x)rrrrrr� test_named_expression_invalid_04sz;NamedExpressionInvalidTest.test_named_expression_invalid_04c	Cs,d}|�td��t|ii�W5QRXdS)Nz((a, b) := (1, 2))z,cannot use assignment expressions with tuplerrrrr� test_named_expression_invalid_06 sz;NamedExpressionInvalidTest.test_named_expression_invalid_06c	Cs,d}|�td��t|ii�W5QRXdS)Nzdef spam(a = b := 42): passrrrrrr� test_named_expression_invalid_07&sz;NamedExpressionInvalidTest.test_named_expression_invalid_07c	Cs,d}|�td��t|ii�W5QRXdS)Nzdef spam(a: b := 42 = 5): passrrrrrr� test_named_expression_invalid_08,sz;NamedExpressionInvalidTest.test_named_expression_invalid_08c	Cs,d}|�td��t|ii�W5QRXdS)Nzspam(a=b := 'c')rrrrrr� test_named_expression_invalid_092sz;NamedExpressionInvalidTest.test_named_expression_invalid_09c	Cs,d}|�td��t|ii�W5QRXdS)Nzspam(x = y := f(x))rrrrrr� test_named_expression_invalid_108sz;NamedExpressionInvalidTest.test_named_expression_invalid_10c	Cs,d}|�td��t|ii�W5QRXdS)Nzspam(a=1, b := 2)�,positional argument follows keyword argumentrrrrr� test_named_expression_invalid_11>s
�z;NamedExpressionInvalidTest.test_named_expression_invalid_11c	Cs,d}|�td��t|ii�W5QRXdS�Nzspam(a=1, (b := 2))rrrrrr� test_named_expression_invalid_12Es
�z;NamedExpressionInvalidTest.test_named_expression_invalid_12c	Cs,d}|�td��t|ii�W5QRXdSrrrrrr� test_named_expression_invalid_13Ls
�z;NamedExpressionInvalidTest.test_named_expression_invalid_13c	Cs,d}|�td��t|ii�W5QRXdS)Nz(x := lambda: y := 1)rrrrrr� test_named_expression_invalid_14Ssz;NamedExpressionInvalidTest.test_named_expression_invalid_14c	Cs,d}|�td��t|ii�W5QRXdS)Nz(lambda: x := 1)z-cannot use assignment expressions with lambdarrrrr� test_named_expression_invalid_15Ys
�z;NamedExpressionInvalidTest.test_named_expression_invalid_15c	Cs,d}|�td��t|ii�W5QRXdS)Nz + 1 for i in i := [1,2]]rrrrrr� test_named_expression_invalid_16`sz;NamedExpressionInvalidTest.test_named_expression_invalid_16c	Cs,d}|�td��t|ii�W5QRXdS)Nz-[i := 0, j := 1 for i, j in [(1, 2), (3, 4)]]rrrrrr� test_named_expression_invalid_17fsz;NamedExpressionInvalidTest.test_named_expression_invalid_17c	Cs,d}|�td��t|ii�W5QRXdS)NzNclass Foo():
            [(42, 1 + ((( j := i )))) for i in range(5)]
        zKassignment expression within a comprehension cannot be used in a class bodyrrrrr�+test_named_expression_invalid_in_class_bodyls
�zFNamedExpressionInvalidTest.test_named_expression_invalid_in_class_bodycCsndddddddg}|D]R\}}}d|�d	�}|j|d
��*|�t|��t|ii�W5QRXW5QRXqdS)N)zLocal reuse�iz[i := 0 for i in range(5)])zNested reuse�jz0[[(j := 0) for i in range(5)] for j in range(5)])zReuse inner loop targetr!z.[(j := 0) for i in range(5) for j in range(5)])zUnpacking reuser z[i := 0 for i, j in [(0, 1)]])zReuse in loop conditionr z#[i+1 for i in range(5) if (i := 0)])zUnreachable reuser z#[False or (i:=0) for i in range(5)])zUnreachable nested reuser z?[(i, j) for i in range(5) for j in range(5) if True or (i:=10)]zFassignment expression cannot rebind comprehension iteration variable '�'��case��subTestrrr�r	�casesr$�targetr
�msgrrr�Htest_named_expression_invalid_rebinding_comprehension_iteration_variableus�
zcNamedExpressionInvalidTest.test_named_expression_invalid_rebinding_comprehension_iteration_variablecCs�ddg}|D]�\}}}d|�d�}|j|d��t|�t|��t|i�W5QRX|�t|��t|ii�W5QRX|�t|��td|��i�W5QRXW5QRXqdS)N)zInner reuser!z3[i for i in range(5) if (j := 0) for j in range(5)])zInner unpacking reuser!z6[i for i in range(5) if (j := 0) for j, k in [(0, 1)]]zEcomprehension inner loop cannot rebind assignment expression target 'r"r#�lambda: r%r'rrr�@test_named_expression_invalid_rebinding_comprehension_inner_loop�s�z[NamedExpressionInvalidTest.test_named_expression_invalid_rebinding_comprehension_inner_loopcCs�ddddddddd	g	}d
}|D]�\}}|j|d��t|�t|��t|i�W5QRX|�t|��t|ii�W5QRX|�t|��td|��i�W5QRXW5QRXqdS)
N)z	Top levelz[i for i in (i := range(5))])zInside tuplez"[i for i in (2, 3, i := range(5))])zInside listz"[i for i in [2, 3, i := range(5)]])zDifferent namez[i for i in (j := range(5))])zLambda expressionz'[i for i in (lambda:(j := range(5)))()])z
Inner loopz.[i for i in range(5) for j in (i := range(5))])zNested comprehensionz)[i for i in [j for j in (k := range(5))]])zNested comprehension conditionz1[i for i in [j for j in range(5) if (j := True)]])zNested comprehension bodyz,[i for i in [(j := True) for j in range(5)]]zKassignment expression cannot be used in a comprehension iterable expressionr#r,r%)r	r(r*r$r
rrr�?test_named_expression_invalid_comprehension_iterable_expression�s&�zZNamedExpressionInvalidTest.test_named_expression_invalid_comprehension_iterable_expressionN)�__name__�
__module__�__qualname__r
rrrrrrrrrrrrrrrrr+r-r.rrrrrs(	rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!S)"�NamedExpressionAssignmentTestcCsd}|�|d�dS)N�
��assertEqual�r	�arrr�#test_named_expression_assignment_01�szANamedExpressionAssignmentTest.test_named_expression_assignment_01cCsd}|}|�|d�dS�N�r4r6rrr�#test_named_expression_assignment_02�szANamedExpressionAssignmentTest.test_named_expression_assignment_02cCsdd}|�|d�dS)N���r4)r	�totalrrr�#test_named_expression_assignment_03�szANamedExpressionAssignmentTest.test_named_expression_assignment_03cCsd}|�|d�dS)Nr<r=r>�r<r=r>)r<r=r>r4)r	�inforrr�#test_named_expression_assignment_04�szANamedExpressionAssignmentTest.test_named_expression_assignment_04cCsd}df|�|d�dS�Nr<r=r4)r	�xrrr�#test_named_expression_assignment_05�szANamedExpressionAssignmentTest.test_named_expression_assignment_05cCs8d}}}|�|d�|�|d�|�|d�dS)Nrr4)r	rE�y�zrrr�#test_named_expression_assignment_06�szANamedExpressionAssignmentTest.test_named_expression_assignment_06cCsd}|�|d�dS)Nr<r=�r<r=)r<r=r4)r	�locrrr�#test_named_expression_assignment_07�szANamedExpressionAssignmentTest.test_named_expression_assignment_07cCs$d}r|�|d�n
|�d�dS)N�eggs�0variable was not assigned using named expression)r5�fail�r	�spamrrr�#test_named_expression_assignment_08�szANamedExpressionAssignmentTest.test_named_expression_assignment_08cCs"d}r|�|�n
|�d�dS)NTrN)�
assertTruerOrPrrr�#test_named_expression_assignment_09�szANamedExpressionAssignmentTest.test_named_expression_assignment_09cCsd}dkrn
|�d�dS)Nr3rN)rO)r	�matchrrr�#test_named_expression_assignment_10�szANamedExpressionAssignmentTest.test_named_expression_assignment_10cs<dd��dddg}��fdd�|D�}|�|dd	d
g�dS)NcSs|S�Nr�r7rrrrQ�szONamedExpressionAssignmentTest.test_named_expression_assignment_11.<locals>.spamr<r=r>cs*g|]"}�|��dkr|�|�f�qS�rr��.0rE�rQrGrr�
<listcomp>�szUNamedExpressionAssignmentTest.test_named_expression_assignment_11.<locals>.<listcomp>�r<r<��?�r=r=r_�r>r>r_r4�r	Z
input_data�resrr\r�#test_named_expression_assignment_11�s
zANamedExpressionAssignmentTest.test_named_expression_assignment_11csJdd����fdd�tdd�D�}|�|ddgddgd	dgd
dgg�dS)NcSs|SrWrrXrrrrQ�szONamedExpressionAssignmentTest.test_named_expression_assignment_12.<locals>.spamcs g|]}�|��|�g�qSrrrZr\rrr]�szUNamedExpressionAssignmentTest.test_named_expression_assignment_12.<locals>.<listcomp>r<�r_r=r>���ranger5�r	rcrr\r�#test_named_expression_assignment_12�szANamedExpressionAssignmentTest.test_named_expression_assignment_12cCs0tddg}�}|�|d�|�|ddg�dSrD��lenr5)r	�lines�lengthrrr�#test_named_expression_assignment_13�szANamedExpressionAssignmentTest.test_named_expression_assignment_13cCsJd}d}d}||||d}kr:|d|||}q|�|d�dS)z�
        Where all variables are positive integers, and a is at least as large
        as the n'th root of x, this algorithm returns the floor of the n'th
        root of x (and roughly doubling the number of accurate bits per
        iteration):
        �	r=r>r<Nr4)r	r7�nrE�drrr�#test_named_expression_assignment_14�szANamedExpressionAssignmentTest.test_named_expression_assignment_14cCsd}r
q|�|d�dS)NFr4r6rrr�#test_named_expression_assignment_15szANamedExpressionAssignmentTest.test_named_expression_assignment_15c
s@d\�����fdd�td�D�}|�|ddddd	d
d��dS)NrJcs*i|]"}���������qSrr)r[�__�r7�b�crr�
<dictcomp>szUNamedExpressionAssignmentTest.test_named_expression_assignment_16.<locals>.<dictcomp>�r=r>re��
�)r<r=r>rer{r|rg)r	Zfibrrvr�#test_named_expression_assignment_16szANamedExpressionAssignmentTest.test_named_expression_assignment_16N)r/r0r1r8r;r@rCrFrIrLrRrTrVrdrjrorsrtr~rrrrr2�s r2c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3S)4�NamedExpressionScopeTestc	Cs,d}|�td��t|ii�W5QRXdS)Nz!def spam():
    (a := 5)
print(a)zname 'a' is not defined)r�	NameErrorrrrrr�test_named_expression_scope_01sz7NamedExpressionScopeTest.test_named_expression_scope_01cs@d��fdd�td�D�}|�|dddddg�|��d�dS)	Nrcsg|]}�|��qSrr)r[�v�r?rrr] szKNamedExpressionScopeTest.test_named_expression_scope_02.<locals>.<listcomp>rer<r>rzr3rg)r	Zpartial_sumsrr�r�test_named_expression_scope_02sz7NamedExpressionScopeTest.test_named_expression_scope_02cs0t�fdd�dD��}|�|�|��d�dS)Nc3s|]}|�dkVqdS)r<Nr)r[�num�ZlastNumrr�	<genexpr>&szJNamedExpressionScopeTest.test_named_expression_scope_03.<locals>.<genexpr>rAr<)�anyrSr5)r	ZcontainsOnerr�r�test_named_expression_scope_03%s
z7NamedExpressionScopeTest.test_named_expression_scope_03cs2dd����fdd�tdd�D�}|��d�dS)NcSs|SrWrrXrrrrQ,szENamedExpressionScopeTest.test_named_expression_scope_04.<locals>.spamcs g|]}�|��|�g�qSrrrZr\rrr].szKNamedExpressionScopeTest.test_named_expression_scope_04.<locals>.<listcomp>r<rerfrgrirr\r�test_named_expression_scope_04+sz7NamedExpressionScopeTest.test_named_expression_scope_04csHdd��dddg}��fdd�|D�}|�|dd	d
g�|��d�dS)NcSs|SrWrrXrrrrQ3szENamedExpressionScopeTest.test_named_expression_scope_05.<locals>.spamr<r=r>cs*g|]"}�|��dkr|�|�f�qSrYrrZr\rrr]6szKNamedExpressionScopeTest.test_named_expression_scope_05.<locals>.<listcomp>r^r`rar4rbrr\r�test_named_expression_scope_052s

z7NamedExpressionScopeTest.test_named_expression_scope_05csB�fdd�td�D�}|�|dddgdddgg�|��d�dS)Ncs"g|]}�fdd�td�D��qS)csg|]}|��qSrr�r[r �rQrrr]<szVNamedExpressionScopeTest.test_named_expression_scope_06.<locals>.<listcomp>.<listcomp>r>�rh�r[r!r�rrr]<szKNamedExpressionScopeTest.test_named_expression_scope_06.<locals>.<listcomp>r=rr<rgrirr�r�test_named_expression_scope_06;sz7NamedExpressionScopeTest.test_named_expression_scope_06cCs$tddg}�|�|ddg�dSrDrk)r	rmrrr�test_named_expression_scope_07Asz7NamedExpressionScopeTest.test_named_expression_scope_07csXdd��dd������fdd�td�D�}|�|ddg�|��d�|��d	�dS)
NcSs|SrWrrXrrrrQGszENamedExpressionScopeTest.test_named_expression_scope_08.<locals>.spamcSs|dS�Nr=r�rwrrrrMJszENamedExpressionScopeTest.test_named_expression_scope_08.<locals>.eggscs g|]}��|�����qSrr�r[�h�r7rwrMrQrrr]MszKNamedExpressionScopeTest.test_named_expression_scope_08.<locals>.<listcomp>r=rr<rgrirr�r�test_named_expression_scope_08Fsz7NamedExpressionScopeTest.test_named_expression_scope_08csJdd��dd�����fdd�td�D�}|�|ddg�|��d�dS)	NcSs|SrWrrXrrrrQTszENamedExpressionScopeTest.test_named_expression_scope_09.<locals>.spamcSs|dSr�rr�rrrrMWszENamedExpressionScopeTest.test_named_expression_scope_09.<locals>.eggscs g|]}��|�����qSrrr��r7rMrQrrr]ZszKNamedExpressionScopeTest.test_named_expression_scope_09.<locals>.<listcomp>r=rrgrirr�r�test_named_expression_scope_09Ss
z7NamedExpressionScopeTest.test_named_expression_scope_09csP��fdd�td�D�}|�|ddgddgg�|��d�|��ddg�dS)Ncs&g|]}�fdd�td�D���qS)csg|]}d��qS)r<rr�rXrrr]`szVNamedExpressionScopeTest.test_named_expression_scope_10.<locals>.<listcomp>.<listcomp>r=r�r��r7rwrrr]`szKNamedExpressionScopeTest.test_named_expression_scope_10.<locals>.<listcomp>r=r<rgrirr�r�test_named_expression_scope_10_sz7NamedExpressionScopeTest.test_named_expression_scope_10cs<�fdd�td�D�}|�|dddddg�|��d�dS)	Ncsg|]}|��qSrrr��r!rrr]gszKNamedExpressionScopeTest.test_named_expression_scope_11.<locals>.<listcomp>rerr<r=r>rfrgrirr�r�test_named_expression_scope_11fsz7NamedExpressionScopeTest.test_named_expression_scope_11cs@d��fdd�td�D�}|�|dddddg�|��d�dS)	Nrcsg|]}|���qSrrr�r�rrr]nszKNamedExpressionScopeTest.test_named_expression_scope_17.<locals>.<listcomp>rer<r>rzr3rgrirr�r�test_named_expression_scope_17lsz7NamedExpressionScopeTest.test_named_expression_scope_17cCs0dd�}|d}�}|�|d�|�|d�dS)NcSs|SrWrrXrrrrQtszENamedExpressionScopeTest.test_named_expression_scope_18.<locals>.spamr=r4�r	rQrwrcrrr�test_named_expression_scope_18ssz7NamedExpressionScopeTest.test_named_expression_scope_18cCs0dd�}|d}�}|�|d�|�|d�dS)NcSs|SrWrrXrrrrQ}szENamedExpressionScopeTest.test_named_expression_scope_19.<locals>.spamr=r4r�rrr�test_named_expression_scope_19|sz7NamedExpressionScopeTest.test_named_expression_scope_19cCs2dd�}|d}d�}|�|d�|�|d�dS)NcSs|SrWrrXrrrrQ�szENamedExpressionScopeTest.test_named_expression_scope_20.<locals>.spamr=rXr4r�rrr�test_named_expression_scope_20�sz7NamedExpressionScopeTest.test_named_expression_scope_20cCs4dd�}|d}dd�}|�|d�|�|d�dS)NcSs||SrWrr�rrrrQ�szENamedExpressionScopeTest.test_named_expression_scope_21.<locals>.spamr=r<r�r>r4�r	rQrxrcrrr�test_named_expression_scope_21�sz7NamedExpressionScopeTest.test_named_expression_scope_21cCs4dd�}|d}dd�}|�|d�|�|d�dS)NcSs||SrWrr�rrrrQ�szENamedExpressionScopeTest.test_named_expression_scope_22.<locals>.spamr=r<r�r>r4r�rrr�test_named_expression_scope_22�sz7NamedExpressionScopeTest.test_named_expression_scope_22cCs4dd�}|d}dd�}|�|d�|�|d�dS)NcSs||SrWrr�rrrrQ�szENamedExpressionScopeTest.test_named_expression_scope_23.<locals>.spamr=r<)rwr7r>r4r�rrr�test_named_expression_scope_23�sz7NamedExpressionScopeTest.test_named_expression_scope_23cs&d��fdd�}|�|��d�dS)Nr3csd�dSr9rrrXrrrQ�szENamedExpressionScopeTest.test_named_expression_scope_24.<locals>.spamr:r4rPrrXr�test_named_expression_scope_24�sz7NamedExpressionScopeTest.test_named_expression_scope_24cCs(i}d}t||i�|�|dd�dS)Nz4a = 10
def spam():
    global a
    (a := 20)
spam()r7r:)rr5)r	�nsr
rrr�test_named_expression_scope_25�sz7NamedExpressionScopeTest.test_named_expression_scope_25c	Cs�d}d}d}d}dd|��fdd|�d	�fd
d|��fdd|�d	�fdd|��fd
d|�d	�fdd|��fdd|�d	�fg}|D]T\}}|j|d��:i}t||�|�|dd�|�|ddddg�W5QRXq�dS)Nz/[x := i for i in range(3) if (x := i) or not x]z([x := i for i in range(3) if x or not x]z*[x for i in range(3) if (x := i) or not x]zF[j for i in range(3) if x or not x for j in range(3) if (x := i)][:-3]z
Rebind globalzx = 1; result = zRebind nonlocalzresult, x = (lambda x=1: (z, x))()z
Filter globalzFilter nonlocalzBody globalz
Body nonlocalz
Nested globalzNested nonlocalr#rEr=�resultrr<)r&rr5)	r	Z	rebindingZ
filter_refZbody_refZ
nested_refr(r$r
r�rrr�6test_named_expression_variable_reuse_in_comprehensions�s&�

zONamedExpressionScopeTest.test_named_expression_variable_reuse_in_comprehensionscs6t����fdd�}z|���t��W5daXdS)Ncs&�fdd�td�D���t��dS)Ncsg|]}�a�qSr��
GLOBAL_VAR�r[�_��sentinelrrr]�szZNamedExpressionScopeTest.test_named_expression_global_scope.<locals>.f.<locals>.<listcomp>r<)rhr5r�r�r	r�rr�f�szFNamedExpressionScopeTest.test_named_expression_global_scope.<locals>.f)�objectr�r5�r	r�rr�r�"test_named_expression_global_scope�sz;NamedExpressionScopeTest.test_named_expression_global_scopecs*t����fdd�}|���td�dS)Ncs,d���fdd�td�D������dS)Ncsg|]}���qSrrr�)r�r�rrr]�szlNamedExpressionScopeTest.test_named_expression_global_scope_no_global_keyword.<locals>.f.<locals>.<listcomp>r<rgrr�r�rr��szXNamedExpressionScopeTest.test_named_expression_global_scope_no_global_keyword.<locals>.f)r�r5r�r�rr�r�4test_named_expression_global_scope_no_global_keyword�szMNamedExpressionScopeTest.test_named_expression_global_scope_no_global_keywordcst����fdd�}|�dS)Ncs(d���fdd�}|������dS)Ncs��fdd�td�D�dS)Ncsg|]}���qSrrr���nonlocal_varr�rrr]�szgNamedExpressionScopeTest.test_named_expression_nonlocal_scope.<locals>.f.<locals>.g.<locals>.<listcomp>r<r�rr�rr�g�szSNamedExpressionScopeTest.test_named_expression_nonlocal_scope.<locals>.f.<locals>.gr4)r�r��r�rr��szHNamedExpressionScopeTest.test_named_expression_nonlocal_scope.<locals>.f�r�r�rr�r�$test_named_expression_nonlocal_scope�sz=NamedExpressionScopeTest.test_named_expression_nonlocal_scopecst����fdd�}|�dS)Ncs&d}�fdd�}|���|d�dS)Ncs��fdd�td�D�dS)Ncsg|]}���qSrrr�r�rrr]sz{NamedExpressionScopeTest.test_named_expression_nonlocal_scope_no_nonlocal_keyword.<locals>.f.<locals>.g.<locals>.<listcomp>r<r�rr�r�rr��szgNamedExpressionScopeTest.test_named_expression_nonlocal_scope_no_nonlocal_keyword.<locals>.f.<locals>.gr4)r�r�r�rrr��sz\NamedExpressionScopeTest.test_named_expression_nonlocal_scope_no_nonlocal_keyword.<locals>.fr�r�rr�r�8test_named_expression_nonlocal_scope_no_nonlocal_keyword�szQNamedExpressionScopeTest.test_named_expression_nonlocal_scope_no_nonlocal_keywordN)r/r0r1r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrs2	
							
	r�__main__)	�osZunittestr�ZTestCaserr2rr/�mainrrrr�<module>s'hs

F1le Man4ger