
    9il                        S r SSKrSSKrSSKrSSKrSSKJr  SSKJrJ	r	J
r
  SSKJr  SSKJr  SSKJr  SSKJr  S	 r\R&                  R)                  \S
S9S 5       r\R&                  R)                  \SS9S 5       rS r " S S5      rg)zTesting decorators module    N)assert_equal)doctest_skip_parserrun_in_parallelassert_stacklevel)testing)is_wasm)expected_warningswarnc                     S n  " S S5      nSnX l         X!l         SqSq[        U 5      n[        U5      nXL d   eXL d   eSn[	        UR                   U5        [	        UR                   U5        SqSqX l         X!l         [        U 5      n[        U5      nXL d   eSn[	        UR                   U5        [	        UR                   U5        BX l         X!l         [
        R                  " [        5         [        U 5        S S S 5        [
        R                  " [        5         [        U5        S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)	Nc                      g N r       b/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/_shared/tests/test_testing.pyftest_skipper.<locals>.f   s    r   c                       \ rS rSrS rSrg)test_skipper.<locals>.c   c                     SU l         g )NzI think, therefore...me)selfs    r   __init__ test_skipper.<locals>.c.__init__   s	    -DGr   r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__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,      s#   . .I II LL	Q	B	Q	B7N77N7H X&X&LLII	Q	B	Q	B7N7H X&X&II			"A 
#			"A 
#	" 
#	"	"	"s   1D4E4
E
EzCannot start threads in WASM)reasonc                    ^ / m[        5       U4S j5       n U " 5         [        T5      S:X  d   e[        SS9U4S j5       nU" 5         [        T5      S:X  d   e[        SS9U4S j5       nU" 5         [        T5      S:X  d   eg )	Nc                  (   > T R                  S 5        g r   appendstates   r   change_state1+test_run_in_parallel.<locals>.change_state1Y       Tr         )num_threadsc                  (   > T R                  S 5        g r   r0   r2   s   r   change_state2+test_run_in_parallel.<locals>.change_state2`   r6   r      c                  (   > T R                  S 5        g r   r0   r2   s   r   change_state3+test_run_in_parallel.<locals>.change_state3g   r6   r      )r   len)r4   r;   r?   r3   s      @r   test_run_in_parallelrC   U   s    E  Ou:??# $ Ou:??# $ Ou:??r   z Cannot run parallel code in WASMc                      [        5       S 5       n [        S/5         U " 5         S S S 5        [        S/S9S 5       nU" 5         g ! , (       d  f       N&= f)Nc                      [        SSS9  g NTest warning for test parallelr7   
stacklevelr
   r   r   r   change_state_warns_fails7test_parallel_warning.<locals>.change_state_warns_failsq       -!<r   rG   )warnings_matchingc                      [        SSS9  g rF   r
   r   r   r   change_state_warns_passes8test_parallel_warning.<locals>.change_state_warns_passesx   rL   r   )r   r	   )rJ   rO   s     r   test_parallel_warningrQ   o   s_    = = 
<=	> " 
? (H'IJ= K=  
?	>s   A
Ac                      [        S/5         [        S 5         [        S5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NzExpected warnings test)r	   r   r   r   r   test_expected_warnings_nooprS      s<    	45	6t$)* % 
7	6$$ 
7	6s   A6A
A	 A
Ac                   h    \ rS rSrS rS r\R                  R                  SSS/5      S 5       r	Sr
g	)
Test_assert_stacklevel   c                 0    [         R                  " U0 UD6  g r   )warningsr   )r   argskwargss      r   raise_warning$Test_assert_stacklevel.raise_warning   s    t&v&r   c                     [         R                  " [        SS9 nU R                  S[        SS9  S S S 5        [	        W5        g ! , (       d  f       N= f)Npassesmatchr7   rH   )pytestwarnsUserWarningr[   r   )r   records     r   test_correct_stacklevel.Test_assert_stacklevel.test_correct_stacklevel   s=    \\+X6&xC 7&! 76s   A
Alevelr8   r=   c                    [         R                  " [        SS9 nU R                  S[        US9  S S S 5        [        R
                  " 5       R                  S-
  nS[        R                  " S[         SU 35      -   n[         R                  " [        US9   [        WSS	9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)
Nwrongr_   rH   r7   z.*z
Expected: :)offset)ra   rb   rc   r[   inspectcurrentframef_linenoreescape__file__r&   AssertionErrorr   )r   rg   rd   line_numberregexs        r   test_wrong_stacklevel,Test_assert_stacklevel.test_wrong_stacklevel   s     \\+W5wF 6 **,559ryy:hZq!FGG]]>7fR0 87 65
 87s   B*B;*
B8;
C	r   N)r   r   r   r    r[   re   ra   markparametrizerv   r!   r   r   r   rU   rU      s5    '" [[Wq!f-1 .1r   rU   )r#   rm   rp   rX   ra   numpy.testingr   skimage._shared.testingr   r   r   skimage._sharedr   "skimage._shared._dependency_checksr   skimage._shared._warningsr	   r   r,   rx   skipifrC   rQ   rS   rU   r   r   r   <module>r      s      	   & 
 $ 6 7 =@ G$BC D2 G$FG  H +1 1r   