
    ;eu                         	 d dl Z d dlZd dlZd dlmZ  G d dej                  Zedk    r ej                     dS dS )    N)supportc                   \    e 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 Zd ZdS )GeneralTestc                 ,    t          j                     d S Natexit_clearselfs    (/usr/lib/python3.11/test/_test_atexit.pysetUpzGeneralTest.setUp           c                 ,    t          j                     d S r   r   r   s    r   tearDownzGeneralTest.tearDown   r   r   c                    t          j                    5 }t          j        |g|R   t          j                     |                     |j        j        |           |                     |j        j        |           |                     t          |j        j
                  |           d d d            d S # 1 swxY w Y   d S r   )r   catch_unraisable_exceptionr	   register_run_exitfuncsassertEqual
unraisableobjectexc_typetype	exc_value)r   r   funcargscms        r   assert_raises_unraisablez$GeneralTest.assert_raises_unraisable   s   /11 	FROD(4((((!###R]14888R]3X>>>T"-"9::HEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   BB44B8;B8c                    g fd}fd}t          j        |dd           t          j        |           t          j        |dd           t          j                     |                     dd	d
difddi fddi fg           d S )Nc                  8                         d| |f           d S )Nfunc1appendr   kwargscallss     r   r#   z%GeneralTest.test_order.<locals>.func1   "    LL'4011111r   c                  8                         d| |f           d S )Nfunc2r$   r&   s     r   r+   z%GeneralTest.test_order.<locals>.func2"   r)   r            value)keyr+   )r.   r0    r#   )r,   r-   )r	   r   r   r   )r   r#   r+   r(   s      @r   
test_orderzGeneralTest.test_order   s     	2 	2 	2 	2 	2	2 	2 	2 	2 	2 	q!$$$qg...."D5'*:;"B+"FB/1	2 	2 	2 	2 	2r   c                 F    d }|                      t          |dd           d S )Nc                      d S r   r1   r1   r   r   r   z&GeneralTest.test_badargs.<locals>.func1   s    Dr   r,   r-   r    	TypeError)r   r   s     r   test_badargszGeneralTest.test_badargs0   s3    	 	 	 	%%iq!<<<<<r   c                 B    d }|                      t          |           d S )Nc                      t           r   )r6   r1   r   r   raise_type_errorz0GeneralTest.test_raise.<locals>.raise_type_error8   s    Or   r5   )r   r:   s     r   
test_raisezGeneralTest.test_raise7   s0    	 	 	 	%%i1ABBBBBr   c                 B    d }|                      t          |           d S )Nc                      ddz   d S Nr,   r   r1   r1   r   r   div_zeroz5GeneralTest.test_raise_unnormalized.<locals>.div_zero@   s    EEEEr   )r    ZeroDivisionError)r   r?   s     r   test_raise_unnormalizedz#GeneralTest.test_raise_unnormalized=   s0    	 	 	 	%%&7BBBBBr   c                 P    |                      t          t          j                   d S r   )r    
SystemExitsysexitr   s    r   	test_exitzGeneralTest.test_exitE   s     %%j#(;;;;;r   c                     dgfd}t          d          D ]}t          j        |           t          j                     |                     d         d           d S )Nr   c                  (     dxx         dz  cc<   d S Nr   r,   r1   as   r   incz$GeneralTest.test_stress.<locals>.incJ       aDDDAIDDDDDr      )ranger	   r   r   r   )r   rL   irK   s      @r   test_stresszGeneralTest.test_stressH   s|    C	 	 	 	 	 s 	! 	!AOC    1s#####r   c                     dgfd}t          j        |           t          j                     t          j                     |                     d         d           d S )Nr   c                  (     dxx         dz  cc<   d S rI   r1   rJ   s   r   rL   z#GeneralTest.test_clear.<locals>.incU   rM   r   )r	   r   r
   r   r   )r   rL   rK   s     @r   
test_clearzGeneralTest.test_clearS   so    C	 	 	 	 	 	1q!!!!!r   c                    dgfd}fd}t          d          D ]}t          j        |           t          j        |           t          j        |           t          j                     |                     d         d           d S )Nr   c                  (     dxx         dz  cc<   d S rI   r1   rJ   s   r   rL   z(GeneralTest.test_unregister.<locals>.inc`   rM   r   c                  (     dxx         dz  cc<   d S rI   r1   rJ   s   r   decz(GeneralTest.test_unregister.<locals>.decb   rM   r      )rO   r	   r   
unregisterr   r   )r   rL   rX   rP   rK   s       @r   test_unregisterzGeneralTest.test_unregister^   s    C	 	 	 	 		 	 	 	 	 q 	! 	!AOC    #1r"""""r   c                    g }t          j        |j        d           t          j                     |                     |dg           t          j        |j                   t          j                     |                     |dg           d S )N   )r	   r   r%   r   r   r[   )r   ls     r   test_bound_methodszGeneralTest.test_bound_methodsm   s    !$$$QC   !(###QC     r   c                     fdt          j                   	 t          j                    5 }t          j                     |                     |j        j                   |                     |j        j        t                     |                     t          |j        j                  t                     d d d            n# 1 swxY w Y   t          j                   d S # t          j                   w xY w)Nc                  :    t          j                    ddz   d S r>   )r	   r[   )r   s   r   r   z@GeneralTest.test_atexit_with_unregistered_function.<locals>.funcy   s!    d###aCCCCr   )r	   r   r   r   r   r   r   r   r   r@   r   r   r[   )r   r   r   s     @r   &test_atexit_with_unregistered_functionz2GeneralTest.test_atexit_with_unregistered_functionw   s>   	 	 	 	 	 		$355 S%'''  !5t<<<  !79JKKK  bm&=!>!>@QRRR	S S S S S S S S S S S S S S S d#####Fd####s/   C' BC:C' C

C' C
C' 'C=N)__name__
__module____qualname__r   r   r    r2   r7   r;   rA   rF   rQ   rT   r\   r`   rc   r1   r   r   r   r   
   s            F F F2 2 2,= = =C C CC C C< < <	$ 	$ 	$	" 	" 	"# # #! ! !$ $ $ $ $r   r   __main__)	r	   rD   unittesttestr   TestCaser   rd   mainr1   r   r   <module>rl      s     



       z$ z$ z$ z$ z$(# z$ z$ z$z zHMOOOOO r   