
    k h                         d dl Zd dlmZ d dlZd dlmZ d dlmZm	Z	m
Z
mZmZ d dlmZ d ZddZd Z ej$                  d	d
      d        Z ej$                  d	d
      d        Zd ZdD  cg c]  }  e|       D ]  }| |f  c}} Z eej0                  dd dk(  d       ej$                  de      d               Zd Zd Zd Zd Zd Zd Zyc c}} w )    N)unwrap_phase)testing)assert_array_almost_equal_nulpassert_almost_equalassert_array_equalassert_skipif)expected_warningsc                    dt         j                  z  t        j                  |j                         | j                         z
  dt         j                  z  z        z  }t	        ddg      5  t        dt        j                  t        j                  | ||z
  z
                     t        dt        j                  t        j                  | ||z
  z
  | z                     ddd       t         j                  j                  |       rt        t         j                  j                  |             t        | j                  |j                         t        | j                  |j                  k(         t        j                  |       }t        j                  |      }t	        ddg      5  t        dt        j                  t        j                  |||z
  z
                     t        dt        j                  t        j                  |||z
  z
  |z                     ddd       t        | |z   |g|i | y# 1 sw Y   [xY w# 1 sw Y   *xY w)	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          /home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/skimage/restoration/tests/test_unwrap.pyassert_phase_almost_equalr!      s   I!&&(QVVX"5!bee)!DEEE		*,NO
 S 	*BFF266!q5y/3J,KL*BFF2661E	?a:O3P,QR	S
 
uu1##A&'166166*,-ZZ]ZZ].0RS
 		 5rvvbffR2PU:EV>W7X 5rvvrR%Z0B678		 #1u9aA$A&A+S S		 		s   *A4H7'A4I7IIc                 .   t        j                  t        j                  d| z              }|Ot        d       t         j                  j                  | |d      } t         j                  j                  ||d      }t        |d      }t        ||        y )N              ?zTesting a masked imageg      ?)r   r   r   rng)r   angleexpr   r   arrayr   r!   )imager   image_wrappedimage_unwrappeds       r    check_unwrapr,   +   sr    HHRVVBJ/0M&'E=MM"=a8Oou5    c                  V   t        j                  ddt         j                  z  d      } t        |        t	        j
                  t              5  t        | d       d d d        t	        j
                  t              5  t        | dd       d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)Nr   
   d   Tr$   )r   linspacer   r,   r   raises
ValueErrorr   )r)   s    r    test_unwrap_1dr4   5   s    KK2:s+E	
	# "UD!" 

	# )UDa() )" ") )s   B;BBB(check_with_mask)FTc                     d }t         j                  d dd df   \  }}dt         j                  z  |dz  |dz  z   z  }| r0t        j                  |j                  t
              }d|dd	ddf<   t        ||       y )
N      r   皙?皙?dtypeT      r   ogridr   zerosshapeboolr,   )r5   r   xyr)   s        r    test_unwrap_2drF   @   sz    D88BQBGDAqIS1s7*+Exx40QqS!A#Xr-   c                    d }t         j                  d dd dd df   \  }}}dt         j                  z  |dz  |dz  z   |dz  z   z  }| r3t        j                  |j                  t
              }d	|d
dd
dddf<   t        ||       y )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|$GAq!IS1s7*QX56Exx40"QqS!A#qs]r-   c           	      x   d}t        j                  ddt         j                  z  |      }|d   |d<   |j                  t	        t        |       D cg c]  }||k(  r|nd c}            }t        j                  t        j                  d|z              }t	        dg| z        }t	        t        |       D cg c]  }||k(  rdnd c}      }t        dg      5  t        |d      }	d d d        t        d		|   |	|          t        t        |	|   |	|   z
        t         j                  kD         t        |       D cg c]  }||k(  	 }
}t        d
g      5  t        ||
d      }d d d        t        d|   ||          t        ||   ||          y c c}w c c}w # 1 sw Y   xY wc c}w # 1 sw Y   JxY w)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RAI1 <RSTEHHRVVBJ/0Md
#KdD1a4iQ.DEJ 
BC	D I&2=a&H#I	(#K0#J/ '4)*56	
 %%		 ',Dk2192K2	CD	E S#/{PQ#R S	% - ,  -/G
/SC  S EI I  3S Ss*   F7FF>F+F0F(0F9)r   rJ   r   )rJ   r=   z-Doesn't work with python 3.4. See issue #3079)reasonz
ndim, axisc                     t        | |       y N)r\   rR   rS   s     r    test_wrap_aroundra      s     dD!r-   c            	      @   d} t        j                  ddt         j                  z  |       t        j                  ddt         j                  z  |       t        j                  ddt         j                  z  |       g}t        j                  |      }t        j                  | ft
              }dx|d<   |d<   t        t        |            D ]F  }t        j                  |j                  t
              }||j                  d	d      z  }d||d d f<   t         j                  j                  t        j                  t        j                  d
|z              |      }t        |      }||d   z  }t!        |d d df   ||df          t#        t         j                  j%                  |             t'        dg      5  d|j                  z   }|j                  |      }	t        |	      }
|
|
d   z  }
d d d        t!        
d d d d df   ||df          I y # 1 sw Y   (xY w)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: Sxx402&&QT
BHHRVVBJ-?$@tL&}5?400 	'q"u'=uQU|L##O45  456 	>=...E,44U;!-.>!?"4W"==	> 	''9!Q('CU1b5\R)S	> 	>s   94HH	c                  p   t        j                  t              5  t        t	        j
                  g              d d d        t        j                  t              5  t        t	        j
                  d             d d d        t        j                  t              5  t        t	        j
                  d      ddgz         d d d        t        j                  t              5  t        t	        j
                  d      d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   cxY w# 1 sw Y   y xY w)N)rI   rI   rI   rI   )rI   rI   rJ   FFalse)r   r2   r3   r   r   rA    r-   r    test_invalid_inputrr      s    	
	# #RXXb\"#	
	# -RXXl+,-	
	# 4RXXf%qE7{34	
	# 0RXXf%w/0 0# #- -4 40 0s/   DD$D  D,DD D),D5c                      t        j                  dt         j                        } t        | g d      }t	        t        j
                  |dk(               y )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                      t         j                  j                  d      } t        |       }t	        t        j
                  |dk(               y )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                     t         j                  j                  d      } t         j                  j                  | d d  t	        |       }t        t         j                  j                  |             t        t        j                  |j                               t         j                  j                  d      } t         j                  j                  | d d  d| d<   t	        |       }t        t         j                  j                  |             t        t        j                  |j                        dk(         t        |d   dk(         y )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                     t         j                  j                  d      } t         j                  j                  | d d  t	        |       }t        t         j                  j                  |             t        t        j                  |j                               t         j                  j                  d      } t         j                  j                  | d d  d| d<   t	        |       }t        t         j                  j                  |             t        t        j                  |j                        dk(         t        |d   dk(         y )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 &,DTdDT4LDLD RaF": \8," -	
"SB0!!("y Es   -C