o
    g/                     @   sP   	 d dl Z d dlZd dlZd dlmZ G dd dejZedkr&e  dS dS )    N)supportc                   @   sl   e Z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 )GeneralTestc                 C      t   d S Natexit_clearself r   G/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/test/_test_atexit.pysetUp      zGeneralTest.setUpc                 C   r   r   r   r	   r   r   r   tearDown   r   zGeneralTest.tearDownc                 G   s|   t  0}tj|g|R   t  | |jj| | |jj| | t	|jj
| W d    d S 1 s7w   Y  d S r   )r   Zcatch_unraisable_exceptionr   register_run_exitfuncsassertEqualZ
unraisableobjectexc_typetype	exc_value)r
   r   funcargscmr   r   r   assert_raises_unraisable   s   
"z$GeneralTest.assert_raises_unraisablec                    sx   g   fdd} fdd}t |dd t | t j|ddd	 t   |  d
dddifd
di fddi fg d S )Nc                          d| |f d S )Nfunc1appendr   kwargsZcallsr   r   r         z%GeneralTest.test_order.<locals>.func1c                     r   )Nfunc2r   r   r!   r   r   r#   "   r"   z%GeneralTest.test_order.<locals>.func2         value)keyr#   )r&   r(   r   r   )r$   r%   )r   r   r   r   )r
   r   r#   r   r!   r   
test_order   s   
zGeneralTest.test_orderc                 C   s   dd }|  t|dd d S )Nc                   S   s   d S r   r   r   r   r   r   r   1      z&GeneralTest.test_badargs.<locals>.funcr$   r%   r   	TypeError)r
   r   r   r   r   test_badargs0   s   zGeneralTest.test_badargsc                 C      dd }|  t| d S )Nc                   S   s   t r   )r,   r   r   r   r   raise_type_error8   r*   z0GeneralTest.test_raise.<locals>.raise_type_errorr+   )r
   r/   r   r   r   
test_raise7   s   zGeneralTest.test_raisec                 C   r.   )Nc                   S   s   dd  d S )Nr$   r   r   r   r   r   r   div_zero@   r   z5GeneralTest.test_raise_unnormalized.<locals>.div_zero)r   ZeroDivisionError)r
   r1   r   r   r   test_raise_unnormalized=   s   z#GeneralTest.test_raise_unnormalizedc                 C   s   |  ttj d S r   )r   
SystemExitsysexitr	   r   r   r   	test_exitE   s   zGeneralTest.test_exitc                    sF   dg  fdd}t dD ]}t| qt  |  d d d S )Nr   c                          d  d7  < d S Nr   r$   r   r   ar   r   incJ   r"   z$GeneralTest.test_stress.<locals>.inc   )ranger   r   r   r   )r
   r<   ir   r:   r   test_stressH   s   zGeneralTest.test_stressc                    s@   dg  fdd}t | t   t   |  d d d S )Nr   c                      r8   r9   r   r   r:   r   r   r<   U   r"   z#GeneralTest.test_clear.<locals>.inc)r   r   r   r   r   )r
   r<   r   r:   r   
test_clearS   s   
zGeneralTest.test_clearc                    sf   dg  fdd} fdd}t dD ]}t| qt| t| t  |  d d d S )Nr   c                      r8   r9   r   r   r:   r   r   r<   `   r"   z(GeneralTest.test_unregister.<locals>.incc                      s    d  d8  < d S r9   r   r   r:   r   r   decb   r"   z(GeneralTest.test_unregister.<locals>.dec   )r>   r   r   
unregisterr   r   )r
   r<   rB   r?   r   r:   r   test_unregister^   s   

zGeneralTest.test_unregisterc                 C   sN   g }t |jd t   | |dg t |j t   | |dg d S )N   )r   r   r   r   r   rE   )r
   lr   r   r   test_bound_methodsm   s   zGeneralTest.test_bound_methodsN)__name__
__module____qualname__r   r   r   r)   r-   r0   r3   r7   r@   rA   rF   rI   r   r   r   r   r   
   s    	r   __main__)	r   r5   Zunittesttestr   ZTestCaser   rJ   mainr   r   r   r   <module>   s    n