a
    
d                     @   sh   d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ dd Zd	d
 Zdd Zdd ZdS )z Testing decorators module
    )assert_equal)doctest_skip_parserrun_in_parallel)testing)expected_warningswarnc                  C   s6  dd } G dd d}d}|| _ ||_ dadat| }t|}| |u sJJ ||u sVJ d}t|j | t|j | dada|| _ ||_ t| }t|}| |u sJ d	}t|j | t|j | b|| _ ||_ tt t|  W d    n1 s0    Y  tt t| W d    n1 s(0    Y  d S )
Nc                   S   s   d S N r
   r
   r
   k/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/skimage/_shared/tests/test_testing.pyf   s    ztest_skipper.<locals>.fc                   @   s   e Zd Zdd ZdS )ztest_skipper.<locals>.cc                 S   s
   d| _ d S )NzI think, therefore...)me)selfr
   r
   r   __init__   s    z test_skipper.<locals>.c.__init__N)__name__
__module____qualname__r   r
   r
   r
   r   c   s   r   z Header

            >>> something # skip if not HAVE_AMODULE
            >>> something + else
            >>> a = 1 # skip if not HAVE_BMODULE
            >>> something2   # skip if HAVE_AMODULE
        FTz Header

            >>> something # doctest: +SKIP
            >>> something + else
            >>> a = 1
            >>> something2
        z Header

            >>> something
            >>> something + else
            >>> a = 1 # doctest: +SKIP
            >>> something2   # doctest: +SKIP
        )__doc__ZHAVE_AMODULEZHAVE_BMODULEr   r   r   Zraises	NameError)r   r   	docstringf2c2expectedr
   r
   r   test_skipper   sD    &r   c                     s   g  t   fdd} |   t dks,J t dd fdd}|  t dksXJ t dd fd	d
}|  t dksJ d S )Nc                      s     d  d S r	   appendr
   stater
   r   change_state1S   s    z+test_run_in_parallel.<locals>.change_state1      )Znum_threadsc                      s     d  d S r	   r   r
   r   r
   r   change_state2Y   s    z+test_run_in_parallel.<locals>.change_state2   c                      s     d  d S r	   r   r
   r   r
   r   change_state3_   s    z+test_run_in_parallel.<locals>.change_state3   )r   len)r   r"   r$   r
   r   r   test_run_in_parallelP   s    r'   c                  C   s\   t  dd } tdg |   W d    n1 s40    Y  t dgddd }|  d S )Nc                   S   s   t ddd d S NTest warning for test parallelr    )
stacklevelr   r
   r
   r
   r   change_state_warns_failsg   s    z7test_parallel_warning.<locals>.change_state_warns_failsr)   )Zwarnings_matchingc                   S   s   t ddd d S r(   r   r
   r
   r
   r   change_state_warns_passesn   s    z8test_parallel_warning.<locals>.change_state_warns_passes)r   r   )r+   r,   r
   r
   r   test_parallel_warningf   s    
$

r-   c                	   C   s^   t dg@ t d  td W d    n1 s20    Y  W d    n1 sP0    Y  d S )NzExpected warnings test)r   r   r
   r
   r
   r   test_expected_warnings_noopu   s    
r.   N)r   Znumpy.testingr   Zskimage._shared.testingr   r   Zskimage._sharedr   Zskimage._shared._warningsr   warningsr   r   r'   r-   r.   r
   r
   r
   r   <module>   s   D