
    9io                        S SK r S SKrS SKrS SK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  \
R                  " 5       r\S   r\R$                  R'                  S/ SQ5      S	 5       rS
 rS rS r\R$                  R'                  S/ SQ5      S 5       rS rS r\R$                  R'                  S/ SQ5      S 5       rS rS rS r\R$                  R'                  S/ SQ5      S 5       rS r S r!\R$                  R'                  S/ SQ5      S 5       r"S r#\R$                  R'                  S/ SQ5      \R$                  R'                  S\RH                  \RJ                  /5      S 5       5       r&g)    N)assert_almost_equalassert_array_equalassert_equal)data)_supported_float_type)pyramids).r   channel_axis)r      c                    [         R                  " 5       nUR                  u  p#n[        R                  " USU S9n[
        R                  " USU S9n[        R                  " XPS5      n[        UR                  US-  US-  U45        g Nr   sourcedestination   	downscaler	   )r   	astronautshapenpmoveaxisr   pyramid_reducer   )r	   imagerowscolsdimout_outs          e/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/skimage/transform/tests/test_pyramids.pytest_pyramid_reduce_rgbr       sn    NNEkkODKKblCE""5ALQD
++d"
-Csyy4!8TAXs";<    c                     [         R                  u  p[        R                  " [         SS S9n[	        UR                  U S-  US-  45        [        [        R                  " U5      SSS9  [        R                  " [         SS SS9n[        [        R                  " U5      [        R                  " [         5      -  SSS9  g )Nr   r         ?decimalT)r   r	   preserve_range
image_grayr   r   r   r   r   r   ptpr   r   out1out2s       r   test_pyramid_reduce_grayr-      s    !!JD"":NDtzzD1HdQh#78tc15""ad4D trvvj'993Jr!   c                  |   [         R                  u  p[        R                  " [         5      n[	        UR                  U S-  US-  45        [        [        R                  " U5      SSS9  [        R                  " [         SS9n[        [        R                  " U5      [        R                  " [         5      -  SSS9  g )Nr   r#   r$   T)r&   r'   r*   s       r   !test_pyramid_reduce_gray_defaultsr/   &   s    !!JD"":.DtzzD1HdQh#78tc15"":dCDtrvvj'993Jr!   c                      S Hr  n [         R                  R                  " SU -  6 n[        R                  " USS S9n[         R
                  " UR                  5      S-  n[        UR                  U5        Mt     g Nr
   r         )   r   r   )r   randomrandnr   r   asarrayr   r   ndimimgr   expected_shapes       r   test_pyramid_reduce_ndr=   /   s[    iioot-%%cQTJCII.2399n5	 r!   )r   r
   r   r   c                     [         R                  " 5       nUR                  u  p#n[        R                  " USU S9n[
        R                  " USU S9nUS-  US-  /nUR                  XR                  -  U5        [        UR                  U5        g )Nr   r   r   upscaler	   )
r   r   r   r   r   r   pyramid_expandinsertr:   r   )r	   r   r   r   r   r   r<   s          r   test_pyramid_expand_rgbrE   7   sx    NNEkkODKKblCE

!
!%
NCQhq)N,3S9syy.1r!   c                      [         R                  u  p[        R                  " [         SS9n[	        UR                  U S-  US-  45        g )Nr   )rB   )r(   r   r   rC   r   )r   r   r   s      r   test_pyramid_expand_grayrG   B   s<    !!JD

!
!*a
8Csyy4!8TAX"67r!   c                      S Hr  n [         R                  R                  " SU -  6 n[        R                  " USS S9n[         R
                  " UR                  5      S-  n[        UR                  U5        Mt     g )Nr2   )r4   r   rA   )r   r6   r7   r   rC   r8   r   r   r9   s       r   test_pyramid_expand_ndrI   H   s[    iioot-%%c14HCII.2399n5	 r!   c                 ^   [         R                  " 5       nUR                  u  p#n[        R                  " USU S9n[
        R                  " USU S9n[        U5       HN  u  pgUSU-  -  USU-  -  /nUR                  XR                  -  U5        UR                  [        U5      :X  a  MN   e   g r   )r   r   r   r   r   r   pyramid_gaussian	enumeraterD   r:   tuple	r	   r   r   r   r   pyramidlayerr   layer_shapes	            r   test_build_gaussian_pyramid_rgbrR   P   s    NNEkkODKKblCE''VG(
ahq%x8<**4c:yyE+.... )r!   c                      [         R                  u  p[        R                  " [         SS S9n[	        U5       H+  u  p4U SU-  -  USU-  -  4n[        UR                  U5        M-     g )Nr   r   r(   r   r   rK   rL   r   r   r   rO   rP   r   rQ   s         r    test_build_gaussian_pyramid_grayrV   \   s\    !!JD''
adSG(
ahq%x8399k2 )r!   c                      [         R                  u  p[        R                  " [         5      n[	        U5       H+  u  p4U SU-  -  USU-  -  4n[        UR                  U5        M-     g Nr   rT   rU   s         r   )test_build_gaussian_pyramid_gray_defaultsrY   d   sX    !!JD''
3G(
ahq%x8399k2 )r!   c                  &   S H  n [         R                  R                  " SU -  6 n[         R                  " UR                  5      n[
        R                  " USS S9n[        U5       H#  u  pEUSU-  -  n[        UR                  U5        M%     M     g r1   )	r   r6   r7   r8   r   r   rK   rL   r   r:   r;   original_shaperO   rP   r   rQ   s          r   test_build_gaussian_pyramid_ndr]   l   su    iioot-CII.++C14P#G,JE(1e83Ksyy+6 -	 r!   c                 ^   [         R                  " 5       nUR                  u  p#n[        R                  " USU S9n[
        R                  " USU S9n[        U5       HN  u  pgUSU-  -  USU-  -  /nUR                  XR                  -  U5        UR                  [        U5      :X  a  MN   e   g r   )r   r   r   r   r   r   pyramid_laplacianrL   rD   r:   rM   rN   s	            r    test_build_laplacian_pyramid_rgbr`   v   s    NNEkkODKKblCE((!,WG(
ahq%x8<**4c:yyE+.... )r!   c                      [         R                  u  p[        R                  " [         5      n[	        U5       H+  u  p4U SU-  -  USU-  -  4n[        UR                  U5        M-     g rX   )r(   r   r   r_   rL   r   rU   s         r   %test_build_laplacian_pyramid_defaultsrb      sX    !!JD((4G(
ahq%x8399k2 )r!   c                  &   S H  n [         R                  R                  " SU -  6 n[         R                  " UR                  5      n[
        R                  " USS S9n[        U5       H#  u  pEUSU-  -  n[        UR                  U5        M%     M     g )Nr2   )   r   r   )	r   r6   r7   r8   r   r   r_   rL   r   r[   s          r   test_build_laplacian_pyramid_ndre      su    iioout|,CII.,,SADQ#G,JE(1e83Ksyy+6 -	 r!   c                    S GH=  nU c  SnUnO<Sn[        U5      S-   nSn[        U5      nUR                  X-  U5        [        U5      n[        R
                  " U5      n[        R                  " XaU S9n[        R                  " [        R                  " [        U5      U5      5      n[        U5       Hs  u  pU c  U
R                  nOFU
R                  U    W:X  d   e[        U
R                  5      nUR                  U 5        [        U5      nX:  d  Mb  [        U5      S:  a  Ms   e   [        UW	5        WS:X  a  GM>   e   g )N)r   r3         )    r5   r
   rg   r   )r
   r
   )lenlistrD   rM   r   onesr   r_   mathceillogmaxrL   r   popr   )r	   r   r   shape_without_channelsr:   
n_channelsr;   rO   	max_layerrP   r   out_shape_without_channelss               r   !test_laplacian_pyramid_max_layersrv      s7   !	E%*"%,"-.2DJ/0ELL,j9%LEggen,,<
 IIdhhs+A'BINO	#G,JE#-0YY*yy.*<<<-1#))_**..|<-23M-N* 56::: - 	Y& *V333C "r!   c                  ,   [         R                  " [        5         [        R                  " S5        S S S 5        [         R                  " [        5         [        R                  " S5        S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)NgGz?r>   )pytestraises
ValueErrorr   _check_factor r!   r   test_check_factorr}      sS    	z	"t$ 
#	z	"r" 
#	" 
#	"	"	"s   A4B4
B
Bdtype)float16float32float64uint8int64pyramid_funcc                    [         R                  " 5          [         R                  " S[        SS9  [        R
                  R                  SS5      R                  U5      nS S S 5        U " W5      n[        U5      n[        R                  " U Vs/ s H  oUR                  U:H  PM     sn5      (       d   eg ! , (       d  f       N\= fs  snf )Nignorez!invalid value encountered in cast)actioncategorymessageri   r5   )warningscatch_warningsfilterwarningsRuntimeWarningr   r6   r7   astyper   allr~   )r   r~   r;   rO   float_dtypeims         r   test_pyramid_dtype_supportr      s    
 
	 	 	" 	#7	

 iioob!$++E2 
# 3G'.K66W=Wr88{*W=>>>> 
#	" >s   A
B6C6
C)'rm   r   rx   numpyr   numpy.testingr   r   r   skimager   skimage._shared.utilsr   skimage.transformr   r   r   r(   markparametrizer    r-   r/   r=   rE   rG   rI   rR   rV   rY   r]   r`   rb   re   rv   r}   rK   r_   r   r|   r!   r   <module>r      s       O O  7 & 	6]
 4= 5=KK6 )>?2 @286 )>?/ @/337 )>?/ @/37 )>?"4 @"4J# "UVX..0J0JK? W?r!   