
    k hl                     $   d Z ddlZddlZddlZddlZddlmZ ddlmZm	Z	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ d	 Zej&                  j)                  ed
      d        Zej&                  j)                  ed      d        Zd Z G d d      Zy)zTesting decorators module    N)assert_equal)doctest_skip_parserrun_in_parallelassert_stacklevel)testing)is_wasm)expected_warningswarnc                     d }  G 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 sJ d}t	        |j                   |       t	        |j                   |       b|| _         ||_         t        j                  t              5  t        |        d d d        t        j                  t              5  t        |       d d d        y # 1 sw Y   7xY w# 1 sw Y   y xY w)	Nc                       y N r       ~/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/skimage/_shared/tests/test_testing.pyfztest_skipper.<locals>.f   s    r   c                       e Zd Zd Zy)test_skipper.<locals>.cc                     d| _         y )NzI think, therefore...)me)selfs    r   __init__z test_skipper.<locals>.c.__init__   s	    -DGr   N)__name__
__module____qualname__r   r   r   r   cr      s    	.r   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expecteds         r   test_skipperr&      sG   . .I AIAI LL	Q	B	Q	B7N77N7H X&X&LLAIAI	Q	B	Q	B7N7H X&X&AIAI			" A			" A   s   6D8#E8EEzCannot start threads in WASM)reasonc                     g t               fd       }  |         t              dk(  sJ t        d      fd       } |        t              dk(  sJ t        d      fd       } |        t              dk(  sJ y )	Nc                  (     j                  d        y r   appendstates   r   change_state1z+test_run_in_parallel.<locals>.change_state1Y       Tr         )num_threadsc                  (     j                  d        y r   r*   r,   s   r   change_state2z+test_run_in_parallel.<locals>.change_state2`   r/   r      c                  (     j                  d        y r   r*   r,   s   r   change_state3z+test_run_in_parallel.<locals>.change_state3g   r/   r      )r   len)r.   r4   r7   r-   s      @r   test_run_in_parallelr:   U   s    E  Ou:??# $ Ou:??# $ Ou:??r   z Cannot run parallel code in WASMc                      t               d        } t        dg      5   |         d d d        t        dg      d        } |        y # 1 sw Y   $xY w)Nc                      t        dd       y NTest warning for test parallelr0   
stacklevelr
   r   r   r   change_state_warns_failsz7test_parallel_warning.<locals>.change_state_warns_failsq       -!<r   r>   )warnings_matchingc                      t        dd       y r=   r
   r   r   r   change_state_warns_passesz8test_parallel_warning.<locals>.change_state_warns_passesx   rB   r   )r   r	   )rA   rE   s     r   test_parallel_warningrF   o   sf    = = 
<=	> # "# (H'IJ= K= # #s   AAc                      t        dg      5  t        d       5  t        d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NzExpected warnings test)r	   r   r   r   r   test_expected_warnings_nooprH      sN    	45	6 +t$ 	+)*	++ +	+ 	++ +s   A6A?	AAc                   `    e Zd Zd Zd Zej                  j                  dddg      d        Zy)Test_assert_stacklevelc                 .    t        j                  |i | y r   )warningsr   )r   argskwargss      r   raise_warningz$Test_assert_stacklevel.raise_warning   s    t&v&r   c                     t        j                  t        d      5 }| j                  dt        d       d d d        t	               y # 1 sw Y   xY w)Npassesmatchr0   r?   )pytestwarnsUserWarningrO   r   )r   records     r   test_correct_stacklevelz.Test_assert_stacklevel.test_correct_stacklevel   sH    \\+X6 	D&xC	D&!	D 	Ds   A		Alevelr1   r5   c                    t        j                  t        d      5 }| j                  dt        |       d d d        t	        j
                         j                  dz
  }dt        j                  dt         d|       z   }t        j                  t        |      5  t        d	       d d d        y # 1 sw Y   ~xY w# 1 sw Y   y xY w)
NwrongrR   r?   r0   z.*z
Expected: :)offset)rT   rU   rV   rO   inspectcurrentframef_linenoreescape__file__r    AssertionErrorr   )r   rY   rW   line_numberregexs        r   test_wrong_stacklevelz,Test_assert_stacklevel.test_wrong_stacklevel   s     \\+W5 	GwF	G **,559ryy:hZq!FGG]]>7 	1fR0	1 	1	G 	G
	1 	1s   B2B>2B;>CN)	r   r   r   rO   rX   rT   markparametrizerh   r   r   r   rJ   rJ      s5    '" [[Wq!f-1 .1r   rJ   )r   r_   rb   rL   rT   numpy.testingr   skimage._shared.testingr   r   r   skimage._sharedr   "skimage._shared._dependency_checksr   skimage._shared._warningsr	   r   r&   ri   skipifr:   rF   rH   rJ   r   r   r   <module>rq      s      	   & 
 $ 6 7 =@ G$BC D2 G$FG  H +1 1r   