
    9i                         S SK Jr  S SKJrJr  S SKrS SKJr  S SK	J
r
Jr  S rS rS rS	 rS
 rS rS rS rS rS rS rS rS rS rg)    )testing)assert_array_equalassert_allcloseN)camera)random_noiseimg_as_floatc                  T    [        5       n [        U SS9n[        U[        U SS95        g )N*   )rng)r   r   r   )camtests     d/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/util/tests/test_random_noise.pytest_set_seedr   	   s&    
(C$Dt\#267    c                  J   [        [        5       5      n Sn[        U SSUS9nX:g  n[        X#   [        R
                  " UR                  5       5      5        [        UR                  5       5      U R                  S   U R                  S   -  -  nSn[        X-
  5      U::  d   eg )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    
vx
 CFSbvfEIH I')@A x||~&#))A,1*EFJIv"#y000r   c                  ~    [         R                  R                  SS5      n [        U SSS9n[	        U/ SQ/ SQ/5        g )N      r   r   )r   r   )r   r   r   )r   randomrandr   r   )imagenoisys     r   test_salt_p1r+      s3    IINN1a EVA6Euy)45r   c                      [         R                  R                  SS5      n [        U SSSS9nSn[	        [         R
                  " US:H  5      S-
  5      U::  d   eg)	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/   $   sP    IINN1d#EVCR@EIrzz%1*%+,	999r   c                  <   [        [        5       5      n U S-  S-
  nSn[        U SSUS9nX:g  n[        X4   [        R
                  " UR                  5       5      5        [        UR                  5       5      U R                  S   U R                  S   -  -  nS	n[        X%-
  5      U::  d   eUS
:H  R                  5       n[        USSSS9n[        US
:H  R                  5       U-
  5      U R                  S   U R                  S   -  -  n[        X%-
  5      U::  d   eg )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:   ,   s   
vx
 C)c/KFSbxGI!J I)288JNN4D+EF z~~'(CIIaL399Q<,GHJIv"#y000 #((*J#KRhtT(B.335
BC		!syy|#J v"#y000r   c                     [        [        5       5      n Sn[        U SSUSS9n[        R                  " X:g  US:H  5      n[        R                  " X:g  US:H  5      n[        X#   [        R                  " UR                  5       5      5        [        X$   [        R                  " UR                  5       5      5        [        UR                  5       UR                  5       -   5      U R                  S   U R                  S	   -  -  nS
n[        X-
  5      U::  d   eSUR                  5       UR                  5       -  s=:  a  S:  d   e   eg )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   s   
vx
 CF%tI ~~c.	S0@AH 0)s2BCJ I')@AI)288JNN4D+EF x||~
(889		!syy|#J Iv"#y000 (,,.:>>#33:d:::::r   c                  *   [         R                  " S5      S-   n [        U SSS9nSUR                  5       s=:  a  S:  d   e   e[        U SSS	S
9nSUR	                  5       S-
  s=:  a  S:  d   e   eSUR                  5       s=:  a  S:  d   e   eg )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    88J#%D 248M=$$&...... 2CUCM-$$&,3t33333=$$&......r   c                  J   Sn [         R                  " S5      S-   n[         R                  " S5      S-   nSUS S2SS 24'   SUSS 2S S24'   SUSS 2SS 24'   [        US	XS
S9nSUS S2S S24   R                  5       s=:  a  S:  d   e   eSUS S2SS 24   R                  5       s=:  a  S:  d   e   eSUSS 2S S24   R                  5       s=:  a  S:  d   e   eSUSS 2SS 24   R                  5       s=:  a  S:  d   e   e[         R                  " U5      n[
        R                  " [        5         [        US	XS9  S S S 5        US-  nSUS'   [
        R                  " [        5         [        US	XS9  S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)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88J#%D*%-JJssBCxJrsCRCxJrsBCx :4UM ssCRCx(,,.666666="bc*..08588888=crc*..08588888=bc*..08588888 ]]4(N	
	#T
P 
$cNN4	
	#T
P 
$	#	 
$	# 
$	#s   6F.F
F
F"c                     Sn [         R                  " S5      S-   n[         R                  R                  U 5      nUR	                  SSS5      n[         R
                  " XU-  -   SS5      n[        USSSSS	9n[        XE5        g )
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\      ss    D88J#%D
))


%CJJsIz2EwwtUl*Aq1H9"3DQLH+r   c                     [        5       n [        R                  R                  S5      n[	        U SSS9n[	        U SSSS9nUR                  [        U 5      S-  5      S-  n[        U[        R                  " USS	5      5        [        X45        g )
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      sw    8D
))


#CT	r:IdGJ{{<-34u<HIrwwxc:;J)r   c                     [        5       n [        U 5      S-  S-
  n[        U SSSS9n[        USSSS9nUR                  5       S:X  a  UR	                  5       S:X  d   eUR                  5       S:X  a  UR	                  5       S:X  d   e[        U SSS	S9n[        USSS	S9nUR                  5       S
:  a  UR	                  5       S:X  d   eUR                  5       S:  a  UR	                  5       S:X  d   eg )Nr1   r2   r^   r
   Tr_   r>         Fgffffff?g?r   r   r   maxmin)rG   r6   cam_poissoncam_poisson2s       r   test_clip_poissonrj      s    8Dt$s*S0K t)$GK)$OLOO$;??+<+CDD#%L,<,<,>$,FGG t)%HK)%PLOO$;??+<+CDD$<+;+;+=+EFF+Er   c                     [        5       n [        U 5      S-  S-
  n[        U SSSS9n[        USSSS9nUR                  5       S:X  a  UR	                  5       S:X  d   eUR                  5       S:X  a  UR	                  5       S:X  d   e[        U SSS	S9n[        USSS	S9nUR                  5       S
:  a  UR	                  5       S:  d   eUR                  5       S:  a  UR	                  5       S:  d   eg )Nr1   r2   gaussianr
   Tr_   r>   rd   FgQ?gffffffֿ/$?/$re   )rG   r6   	cam_gauss
cam_gauss2s       r   test_clip_gaussianrq      s    8Dt$s*S0K T
FIk
NJMMOs"C)?@@NN#*..*:d*BCC T
GIk
OJMMOd"5)@AANNu$:>>+;f+DEE+Dr   c                     [        5       n [        U 5      S-  S-
  n[        U SSSS9n[        USSSS9nUR                  5       S:X  a  UR	                  5       S:X  d   eUR                  5       S:X  a  UR	                  5       S:X  d   e[        U SSS	S9n[        USSS	S9nUR                  5       S
:  a  UR	                  5       S:X  d   eUR                  5       S
:  a  UR	                  5       S:  d   eg )Nr1   r2   rV   r
   Tr_   r>   rd   Frm   rn   re   )rG   r6   cam_specklecam_speckle_sigs       r   test_clip_speckleru      s    8Dt$s*S0K t)$GK";YBTROOO$;??+<+CDD!S(/B/B/D/LMM t)%HK";YBUSOOO%KOO,=,DEE!E)0C0C0E0NOO0Nr   c                      [         R                  " S5      n [        R                  " [        5         [        U S5        S S S 5        g ! , (       d  f       g = f)N)rK   rK   perlin)r   r5   r   rP   KeyErrorr   )rG   s    r   test_bad_modery      s2    88HD		!T8$ 
"	!	!s   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      s^    # G   3816:14;0/Q4	,	*G"F"P"%r   