
    9i                         S SK rS SKJr  S SKrS SKJr  S SKJrJ	r	J
r
JrJr  S SKJr  S rSS jrS r\R$                  " S	S
5      S 5       r\R$                  " S	S
5      S 5       rS rS V Vs/ s H  n \" U 5        H  oU4PM     M     snn r\" \R0                  SS S:H  SS9\R$                  " S\5      S 5       5       rS rS rS rS rS rS rgs  snn f )    N)unwrap_phase)testing)assert_array_almost_equal_nulpassert_almost_equalassert_array_equalassert_skipif)expected_warningsc                    S[         R                  -  [         R                  " UR                  5       U R                  5       -
  S[         R                  -  -  5      -  n[	        SS/5         [        S[         R                  " [         R                  " XU-
  -
  5      5      5        [        S[         R                  " [         R                  " XU-
  -
  U -  5      5      5        SSS5        [         R                  R                  U 5      (       Ga!  [        [         R                  R                  U5      5        [        U R                  UR                  5        [        U R                  UR                  :H  5        [         R                  " U 5      n[         R                  " U5      n[	        SS/5         [        S[         R                  " [         R                  " XVU-
  -
  5      5      5        [        S[         R                  " [         R                  " XVU-
  -
  U-  5      5      5        SSS5        [        X-   U/UQ70 UD6  g! , (       d  f       GNh= f! , (       d  f       N3= f)	z=An assert_almost_equal insensitive to phase shifts of n*2*pi.   zinvalid value encountered|\A\Zzdivide by zero encountered|\A\Zzassert_phase_allclose, abszassert_phase_allclose, relNz#assert_phase_allclose, no mask, absz#assert_phase_allclose, no mask, rel)nppiroundmeanr
   printmaxabsmaisMaskedArrayr   r   mask
fill_valueasarrayr   )abargskwargsshiftaubus          e/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/restoration/tests/test_unwrap.pyassert_phase_almost_equalr!      s   I!&&(QVVX"5!bee)!DEEE		*,NO
 	*BFF266!5y/3J,KL*BFF2661E	?a:O3P,QR	

 
uu1##A&'166166*,-ZZ]ZZ].0RS
 5rvvbffRPU:EV>W7X 5rvvr%Z0B678
 #19aA$A&A+
 

 
s   +A6I1A6I
I
I"c                    [         R                  " [         R                  " SU -  5      5      nUbG  [        S5        [         R                  R                  XSS9n [         R                  R                  X!SS9n[        USS9n[        X05        g )N              ?zTesting a masked imageg      ?)r   r   r   rng)r   angleexpr   r   arrayr   r!   )imager   image_wrappedimage_unwrappeds       r    check_unwrapr,   +   sl    HHRVVBJ/0M&'E=MM"=a8Oo5    c                  j   [         R                  " SS[         R                  -  S5      n [        U 5        [        R
                  " [        5         [        U S5        S S S 5        [        R
                  " [        5         [        U SSS9  S S S 5        g ! , (       d  f       N== f! , (       d  f       g = f)Nr   
   d   Tr$   )r   linspacer   r,   r   raises
ValueErrorr   )r)   s    r    test_unwrap_1dr4   5   ss    KK2:s+E	
	#UD! 
$ 

	#UDa( 
$	# 
$	# 
$	#s   B>B$
B!$
B2check_with_mask)FTc                     S n[         R                  S S2S S24   u  p#S[         R                  -  US-  US-  -   -  nU (       a.  [         R                  " UR                  [
        S9nSUSS	2SS24'   [        XA5        g )
N      r   皙?皙?dtypeT      r   ogridr   zerosshapeboolr,   )r5   r   xyr)   s        r    test_unwrap_2drF   @   sv    D88BQBGDAIS1s7*+Exx40QqS!A#Xr-   c                    S n[         R                  S S2S S2S S24   u  p#nS[         R                  -  US-  US-  -   US-  -   -  nU (       a1  [         R                  " UR                  [
        S9nS	US
S2S
S2SS24'   [        XQ5        g )Nr7      r8   r   r9   r:   g?r;   Tr=   r>         r?   )r5   r   rD   rE   zr)   s         r    test_unwrap_3drL   K   s    Dhhrr3B3|$GA!IS1s7*QX56Exx40"QqS!A#qs]r-   c           	         Sn[         R                  " SS[         R                  -  U5      nUS   US'   UR                  [	        [        U 5       Vs/ s H  oDU:X  a  UOSPM     sn5      5      n[         R                  " [         R                  " SU-  5      5      n[	        S/U -  5      n[	        [        U 5       Vs/ s H  oDU:X  a  SOSPM     sn5      n[        S/5         [        USS9n	S S S 5        [        S	W	U   X   5        [        [        X   X   -
  5      [         R                  :  5        [        U 5       Vs/ s H  oDU:H  PM	     n
n[        S
/5         [        XjSS9nS S S 5        [        SWU   X   5        [        X   X   5        g s  snf s  snf ! , (       d  f       N= fs  snf ! , (       d  f       NQ= f)Nr0   r   rH   rI   r#   z#Image has a length 1 dimension|\A\Zr$   zendpoints without wrap_around:z$Image has a length 1 dimension.|\A\Zzendpoints with wrap_around:)r   r1   r   reshapetupleranger&   r'   r
   r   r   r   r   r   )ndimaxiselementsrampnr)   r*   index_first
index_lastimage_unwrap_no_wrap_aroundwrap_aroundimage_unwrap_wrap_arounds               r    check_wrap_aroundr\   V   s   H;;q"ruu*h/DAwDHLLeDkRkI1 <kRSTEHHRVVBJ/0Md
#KdD14iQ.DEJ 
BC	D&2=a&H# 
E	(#K0#/ '4)56	
 %%		 ',Dk2k9kK2	CD	E#/PQ#R  
F	% - ,  -/G/SC  S E 
E	D  3	E	Es*   F=F#FF.F3
F+3
G)r   rJ   r   )rJ   r=   z-Doesn't work with python 3.4. See issue #3079)reasonz
ndim, axisc                     [        X5        g N)r\   rR   rS   s     r    test_wrap_aroundra      s     d!r-   c            	      @   Sn [         R                  " SS[         R                  -  U 5      [         R                  " SS[         R                  -  U 5      [         R                  " SS[         R                  -  U 5      /n[         R                  " U5      n[         R                  " U 4[
        S9nS=US'   US'   [        [        U5      5       GH>  n[         R                  " UR                  [
        S9nXSR                  S	S5      -  nSXTS S 24'   [         R                  R                  [         R                  " [         R                  " S
U-  5      5      US9n[        U5      nXwS   -  n[!        US S 2S4   X$S4   5        [#        [         R                  R%                  U5      5        ['        S/5         SUR                  -   nUR                  U5      n	[        U	5      n
XS   -  n
S S S 5        [!        W
S S 2S S 2S4   X$S4   5        GMA     g ! , (       d  f       N.= f)Nr0   r   r=   r7   r>   r;   FrN   rI   r#   )r   r   r   zlength 1 dimension)rI   r   r   r   )r   r1   r   vstackonesrC   rQ   lenrA   rB   rO   r   r(   r&   r'   r   r   r   r   r
   )lengthrampsr)   mask_1dir   r*   r+   rB   image_wrapped_3dimage_unwrapped_3ds              r    	test_maskrn      s   F
Aq255y&)
Aq255y&)
Aq255y&)E
 IIeEggvit,G$$GAJ3u:xx402&&T
BHHRVVBJ-?$@tL&}5400 	'q"u'=uU|L##O45  456=...E,44U;!-.>!?W"== 7 	''9!Q('CUb5\R)  76s   43H
H	c                     [         R                  " [        5         [        [        R
                  " / 5      5        S S S 5        [         R                  " [        5         [        [        R
                  " S5      5        S S S 5        [         R                  " [        5         [        [        R
                  " S5      SS/-  5        S S S 5        [         R                  " [        5         [        [        R
                  " S5      S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nt= f! , (       d  f       g = f)N)rI   rI   rI   rI   )rI   rI   rJ   FFalse)r   r2   r3   r   r   rA    r-   r    test_invalid_inputrr      s    	
	#RXXb\" 
$	
	#RXXl+, 
$	
	#RXXf%qE7{3 
$	
	#RXXf%w/ 
$	# 
$	#	#	#	#	#	#	#s/    D D!%D2&!E
D!
D/2
E 
Ec                      [         R                  " S[         R                  S9n [        U / SQS9n[	        [         R
                  " US:H  5      5        g )N)      (   r;   )FTF)rZ   r   )r   rA   float32r   r   allr)   unwraps     r    !test_unwrap_3d_middle_wrap_aroundr{      s:     HH\4E%-ABFBFF6Q; r-   c                      [         R                  R                  S5      n [        U 5      n[	        [         R
                  " US:H  5      5        g )Nr/   r/   r   )r   r   rA   r   r   rx   ry   s     r    test_unwrap_2d_compressed_maskr~      s5     EEKK!E% FBFF6Q; r-   c                     [         R                  R                  S5      n [         R                  R                  U S S & [	        U 5      n[        [         R                  R                  U5      5        [        [         R                  " UR                  5      5        [         R                  R                  S5      n [         R                  R                  U S S & SU S'   [	        U 5      n[        [         R                  R                  U5      5        [        [         R                  " UR                  5      S:H  5        [        US   S:H  5        g )Nr}   r   rc   c   
r   r   rA   maskedr   r   r   rx   r   sumry   s     r    test_unwrap_2d_all_maskedr      s     EEKK!Euu||E!H% FBEE'(BFF6;;  EEKK!Euu||E!HE$K% FBEE'(BFF6;;2%&F4LAr-   c                     [         R                  R                  S5      n [         R                  R                  U S S & [	        U 5      n[        [         R                  R                  U5      5        [        [         R                  " UR                  5      5        [         R                  R                  S5      n [         R                  R                  U S S & SU S'   [	        U 5      n[        [         R                  R                  U5      5        [        [         R                  " UR                  5      S:H  5        [        US   S:H  5        g )N)r/   r/   r/   r   rd   i  r   ry   s     r    test_unwrap_3d_all_maskedr      s    EEKK%Euu||E!H% FBEE'(BFF6;;  EEKK%Euu||E!HE'N% FBEE'(BFF6;;3&'F7Oq !r-   r_   ) numpyr   skimage.restorationr   sysskimage._sharedr   skimage._shared.testingr   r   r   r   r	   skimage._shared._warningsr
   r!   r,   r4   parametrizerF   rL   r\   rQ   dim_axisversion_infora   rn   rr   r{   r~   r   r   r`   s   00r    <module>r      s    , 
 #  8B66) 	&6 7 	&6 7(V &,DVTd4LLVD RaF": 	\8," -	
"SB0!!("y Es   .C