
    1-Ph                         d dl mZ d dlmZmZ d dlZd dlmZ d dl	m
Z
mZ d Zd Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )    )testing)assert_array_equalassert_allcloseN)camera)random_noiseimg_as_floatc                      t                      } t          | d          }t          |t          | d                     d S )N*   )rng)r   r   r   )camtests     d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/skimage/util/tests/test_random_noise.pytest_set_seedr   	   s@    
((C$$$Dt\#266677777    c                     t          t                                } d}t          | dd|          }| |k    }t          ||         t	          j        |                                                     t          |                                          | j        d         | j        d         z  z  }d}t          ||z
            |k    sJ d S )N333333?r
   saltr   modeamountr      {Gz?)
r   r   r   r   nponessumfloatshapeabs)r   r   	cam_noisysaltmask
proportion	tolerances         r   	test_saltr#      s    
vxx
 
 CFSbvfEEEIiH Ih')@)@AAA x||~~&&#)A,1*EFJIv
"##y000000r   c                      t           j                            dd          } t          | dd          }t	          |g dg dg           d S )N      r   r   )r   r   )r   r   r   )r   randomrandr   r   )imagenoisys     r   test_salt_p1r+      sN    INN1a  EVA666Euyyy)))455555r   c                      t           j                            dd          } t          | ddd          }d}t	          t          j        |dk              dz
            |k    sJ dS )	zBEnsure images where size of a given dimension is 1 work correctly.r   i  r   皙?r
   )r   r   r   g?N)r   r'   r(   r   r   average)r)   r*   r"   s      r   test_singleton_dimr/   $   sd    INN1d##EVCR@@@EIrz%1*%%+,,	999999r   c                     t          t                                } | dz  dz
  }d}t          | dd|          }| |k    }t          ||         t	          j        |                                                     t          |                                          | j        d         | j        d         z  z  }d	}t          ||z
            |k    sJ |d
k                                    }t          |ddd          }t          |d
k                                    |z
            | j        d         | j        d         z  z  }t          ||z
            |k    sJ d S )N       @      ?r   r
   pepperr   r   r   r   )
r   r   r   r   r   zerosr   r   r   r   )	r   data_signedr   r   
peppermaskr!   r"   
orig_zeroscam_noisy_signeds	            r   test_pepperr:   ,   sT   
vxx
 
 C)c/KFSbxGGGI	!J Ij)28JNN4D4D+E+EFFF z~~''((CIaL39Q<,GHJIv
"##y0000 #((**J#KRhtTTT(B.3355
BCC	!sy|#J v
"##y000000r   c                     t          t                                } d}t          | dd|d          }t          j        | |k    |dk              }t          j        | |k    |dk              }t          ||         t          j        |                                                     t          ||         t          j        |                                                     t          |                                |                                z             | j
        d         | j
        d	         z  z  }d
}t          ||z
            |k    sJ d|                                |                                z  cxk     rdk     sn J d S )Nr   r
   zs&p      ?)r   r   r   salt_vs_pepperr2           r   r   r   g
ףp=
?gffffff?)r   r   r   r   logical_andr   r   r   r5   r   r   r   )r   r   r   r    r7   r!   r"   s          r   test_salt_and_pepperr@   F   si   
vxx
 
 CF%t  I ~cY.	S0@AAHy 0)s2BCCJ Ih')@)@AAAIj)28JNN4D4D+E+EFFF x||~~
(8(8899	!sy|#J Iv
"##y0000 (,,..:>>#3#33::::d::::::::r   c                  V   t          j        d          dz   } t          | dd          }d|                                cxk     rdk     sn J t          | ddd	
          }d|                                dz
  cxk     rdk     sn J d|                                cxk     rdk     sn J d S )N   rC         ?r
   r   )r   vargMb?g~jt?g333333?gQ?)r   meanrE   gQ?g{Gz?g;On?)r   r5   r   rE   rF   )datadata_gaussians     r   test_gaussianrI   ^   s    8J#%D 24888M=$$&&.......... 2CUCCCM-$$&&,3333t333333=$$&&............r   c                     d} t          j        d          dz   }t          j        d          dz   }d|d ddd f<   d|dd d df<   d|dd dd f<   t          |d	| |d
          }d|d dd df                                         cxk     rdk     sn J d|d ddd f                                         cxk     rdk     sn J d|dd d df                                         cxk     rdk     sn J d|dd dd f                                         cxk     rdk     sn J t          j        |          }t          j        t                    5  t          |d	| |           d d d            n# 1 swxY w Y   |dz  }d|d<   t          j        t                    5  t          |d	| |           d d d            d S # 1 swxY w Y   d S )Ni\  rB   rD   gMbP?r-   @   r<   g?localvarF)r   r   
local_varsclipr>   gMb`?gRQ?gzG?g\(\?gRQ?g{Gz?gQ?)r   r   rM   r4   )r   r   )r   r5   r   rE   
zeros_liker   raises
ValueError)seedrG   rM   rH   bad_local_varss        r   test_localvarrT   h   s   D8J#%D*%%-JJssBCCxJrssCRCxJrssBCCx :4JU  M ssCRCx(,,..6666666666="bcc*..0088885888888=crc*..0088885888888=bcc*..0088885888888 ]4((N	
	#	# Q QT
PPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q QcNN4	
	#	# Q QT
PPPPQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Qs$   E//E36E3F>>GGc                  $   d} t          j        d          dz   }t           j                            |           }|                    ddd          }t          j        |||z  z   dd          }t          |dddd	          }t          ||           d S )
Nr
   rB   r-   g
cQ?r   r   speckleg{Gz?)r   r   rF   rE   )r   r5   r'   default_rngnormalrN   r   r   )rR   rG   r   noiseexpecteddata_speckles         r   test_speckler\      s    D8J#%D
)


%
%CJJsIz22EwtdUl*Aq11H9"3DQQQLHl+++++r   c                  b   t                      } t          j                            d          }t	          | dd          }t	          | ddd          }|                    t          |           dz            dz  }t          |t          j        |dd	                     t          ||           d S )
Nr
   poisson)r   r   Fr   r   rN      g      p@r>   r2   )	r   r   r'   rW   r   r^   r   r   rN   )rG   r   r   
cam_noisy2rZ   s        r   test_poissonrb      s    88D
)


#
#CT	r:::IdGGGJ{{<--344u<HIrwxc::;;;J)))))r   c                  t   t                      } t          |           dz  dz
  }t          | ddd          }t          |ddd          }|                                dk    r|                                dk    sJ |                                dk    r|                                dk    sJ t          | ddd	          }t          |ddd	          }|                                d
k    r|                                dk    sJ |                                dk    r|                                dk    sJ d S )Nr1   r2   r^   r
   Tr_   r>         Fgffffff?g?r   r   r   maxmin)rG   r6   cam_poissoncam_poisson2s       r   test_clip_poissonrj      sH   88Dt$$s*S0K t)$GGGK)$OOOLOO$$;??+<+<+C+C+C+C#%%L,<,<,>,>$,F,F,F,F t)%HHHK)%PPPLOO$$;??+<+<+C+C+C+C$$<+;+;+=+=+E+E+E+E+E+Er   c                  t   t                      } t          |           dz  dz
  }t          | ddd          }t          |ddd          }|                                dk    r|                                dk    sJ |                                dk    r|                                dk    sJ t          | ddd	          }t          |ddd	          }|                                d
k    r|                                dk     sJ |                                dk    r|                                dk     sJ d S )Nr1   r2   gaussianr
   Tr_   r>   rd   FgQ?gffffffֿ/$?/$re   )rG   r6   	cam_gauss
cam_gauss2s       r   test_clip_gaussianrq      s8   88Dt$$s*S0K T
FFFIk
NNNJMMOOs""C)?)?)?)?NN##*..*:*:d*B*B*B*B T
GGGIk
OOOJMMOOd""5)@)@)@)@NNu$$:>>+;+;f+D+D+D+D+D+Dr   c                  t   t                      } t          |           dz  dz
  }t          | ddd          }t          |ddd          }|                                dk    r|                                dk    sJ |                                dk    r|                                dk    sJ t          | ddd	          }t          |ddd	          }|                                d
k    r|                                dk    sJ |                                d
k    r|                                dk     sJ d S )Nr1   r2   rV   r
   Tr_   r>   rd   Frm   rn   re   )rG   r6   cam_specklecam_speckle_sigs       r   test_clip_speckleru      sH   88Dt$$s*S0K t)$GGGK";YBTRRROOO$$;??+<+<+C+C+C+C!!S((/B/B/D/D/L/L/L/L t)%HHHK";YBUSSSOOO%%KOO,=,=,D,D,D,D!!E))0C0C0E0E0N0N0N0N0N0Nr   c                      t          j        d          } t          j        t                    5  t          | d           d d d            d S # 1 swxY w Y   d S )N)rK   rK   perlin)r   r5   r   rP   KeyErrorr   )rG   s    r   test_bad_modery      s    8HD		!	! % %T8$$$% % % % % % % % % % % % % % % % % %s   AAA)skimage._sharedr   skimage._shared.testingr   r   numpyr   skimage.datar   skimage.utilr   r   r   r#   r+   r/   r:   r@   rI   rT   r\   rb   rj   rq   ru   ry    r   r   <module>r      sM   # # # # # # G G G G G G G G           3 3 3 3 3 3 3 38 8 81 1 16 6 6: : :1 1 14; ; ;0/ / /Q Q Q4	, 	, 	,	* 	* 	*G G G"F F F"P P P"% % % % %r   