o
    h                     @   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 s%J ||u s+J d}t|j | t|j | dada|| _ ||_ t| }t|}| |u sQJ d	}t|j | t|j | b|| _ ||_ tt t|  W d    n1 szw   Y  tt t| W d    d S 1 sw   Y  d S )
Nc                   S   s   d S N r
   r
   r
   ]/var/www/html/scripts/venv/lib/python3.10/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__HAVE_AMODULEHAVE_BMODULEr   r   r   raises	NameError)r   r   	docstringf2c2expectedr
   r
   r   test_skipper   sH   

"r   c                     s   g  t   fdd} |   t dksJ t dd fdd}|  t dks,J t dd fd	d
}|  t dksBJ d S )Nc                           d  d S r	   appendr
   stater
   r   change_state1S      z+test_run_in_parallel.<locals>.change_state1      )num_threadsc                      r   r	   r   r
   r!   r
   r   change_state2Y   r$   z+test_run_in_parallel.<locals>.change_state2   c                      r   r	   r   r
   r!   r
   r   change_state3_   r$   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 sw   Y  t dgddd }|  d S )Nc                   S      t ddd d S NTest warning for test parallelr%   )
stacklevelr   r
   r
   r
   r   change_state_warns_failsg      z7test_parallel_warning.<locals>.change_state_warns_failsr0   )warnings_matchingc                   S   r.   r/   r   r
   r
   r
   r   change_state_warns_passesn   r3   z8test_parallel_warning.<locals>.change_state_warns_passes)r   r   )r2   r5   r
   r
   r   test_parallel_warningf   s   



r6   c                	   C   sp   t dg) t d  td W d    n1 sw   Y  W d    d S W d    d S 1 s1w   Y  d S )NzExpected warnings test)r   r   r
   r
   r
   r   test_expected_warnings_noopu   s   

"r7   N)r   numpy.testingr   skimage._shared.testingr   r   skimage._sharedr   skimage._shared._warningsr   warningsr   r   r-   r6   r7   r
   r
   r
   r   <module>   s    D