
    k ho                        d dl Z d dlZd dlZd dlZd dlmZmZmZ d dl	m
Z
 d dlmZ d dlmZ  e
j                         Zed   Zej$                  j'                  dg d      d	        Zd
 Zd Zd Zej$                  j'                  dg d      d        Zd Zd Zej$                  j'                  dg d      d        Zd Zd Zd Zej$                  j'                  dg d      d        Zd Z d Z!ej$                  j'                  dg d      d        Z"d Z#ej$                  j'                  dg d      ej$                  j'                  dejH                  ejJ                  g      d               Z&y)    N)assert_almost_equalassert_array_equalassert_equal)data)_supported_float_type)pyramids).r   channel_axis)r      c                    t        j                         }|j                  \  }}}t        j                  |d|       }t        j                  |d|       }t        j                  || d      }t        |j                  |dz  |dz  |f       y Nr   sourcedestination   	downscaler	   )r   	astronautshapenpmoveaxisr   pyramid_reducer   )r	   imagerowscolsdimout_outs          /home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/skimage/transform/tests/test_pyramids.pytest_pyramid_reduce_rgbr       sr    NNEkkOD$KKblCE""5ALQD
++dL"
-Csyy4!8TAXs";<    c                     t         j                  \  } }t        j                  t         dd       }t	        |j                  | dz  |dz  f       t        t        j                  |      dd       t        j                  t         dd d      }t        t        j                  |      t        j                  t               z  dd       y )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                     t         j                  \  } }t        j                  t               }t	        |j                  | dz  |dz  f       t        t        j                  |      dd       t        j                  t         d      }t        t        j                  |      t        j                  t               z  dd       y )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                      dD ]q  } t        j                  j                  d| z   }t        j                  |dd       }t        j
                  |j                        dz  }t        |j                  |       s y Nr
   r         )   r   r   )r   randomrandnr   r   asarrayr   r   ndimimgr   expected_shapes       r   test_pyramid_reduce_ndr=   /   s`     6iioot-%%cQTJCII.2399n5	6r!   )r   r
   r   r   c                 *   t        j                         }|j                  \  }}}t        j                  |d|       }t        j                  |d|       }|dz  |dz  g}|j                  | |j                  z  |       t        |j                  |       y )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   s|    NNEkkOD$KKblCE

!
!%
NCQhq)N,3S9syy.1r!   c                      t         j                  \  } }t        j                  t         d      }t	        |j                  | dz  |dz  f       y )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                      dD ]q  } t        j                  j                  d| z   }t        j                  |dd       }t        j
                  |j                        dz  }t        |j                  |       s y )Nr2   )r4   r   rA   )r   r6   r7   r   rC   r8   r   r   r9   s       r   test_pyramid_expand_ndrI   H   s`     6iioot-%%c14HCII.2399n5	6r!   c                 d   t        j                         }|j                  \  }}}t        j                  |d|       }t        j                  |d|       }t        |      D ]N  \  }}|d|z  z  |d|z  z  g}|j                  | |j                  z  |       |j                  t        |      k(  rNJ  y 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( /
sahq%x8<%**4c:yyE+..../r!   c                      t         j                  \  } }t        j                  t         dd       }t	        |      D ]+  \  }}| d|z  z  |d|z  z  f}t        |j                  |       - y )Nr   r   r(   r   r   rK   rL   r   r   r   rO   rP   r   rQ   s         r    test_build_gaussian_pyramid_grayrV   \   se    !!JD$''
adSG( 3
sahq%x8399k23r!   c                      t         j                  \  } }t        j                  t               }t	        |      D ]+  \  }}| d|z  z  |d|z  z  f}t        |j                  |       - y Nr   rT   rU   s         r   )test_build_gaussian_pyramid_gray_defaultsrY   d   sa    !!JD$''
3G( 3
sahq%x8399k23r!   c                      dD ]  } t        j                  j                  d| z   }t        j                  |j                        }t        j                  |dd       }t        |      D ]#  \  }}|d|z  z  }t        |j                  |       %  y 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   s     7iioot-CII.++C14P#G, 	7JE3(1e83Ksyy+6	7	7r!   c                 d   t        j                         }|j                  \  }}}t        j                  |d|       }t        j                  |d|       }t        |      D ]N  \  }}|d|z  z  |d|z  z  g}|j                  | |j                  z  |       |j                  t        |      k(  rNJ  y 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( /
sahq%x8<%**4c:yyE+..../r!   c                      t         j                  \  } }t        j                  t               }t	        |      D ]+  \  }}| d|z  z  |d|z  z  f}t        |j                  |       - y rX   )r(   r   r   r_   rL   r   rU   s         r   %test_build_laplacian_pyramid_defaultsrb      sa    !!JD$((4G( 3
sahq%x8399k23r!   c                      dD ]  } t        j                  j                  d| z   }t        j                  |j                        }t        j                  |dd       }t        |      D ]#  \  }}|d|z  z  }t        |j                  |       %  y )Nr2   )   r   r   )	r   r6   r7   r8   r   r   r_   rL   r   r[   s          r   test_build_laplacian_pyramid_ndre      s     7iioout|,CII.,,SADQ#G, 	7JE3(1e83Ksyy+6	7	7r!   c                 |   dD ]6  }| d}|}n=d}t        |      dz   }d}t        |      }|j                  | |z  |       t        |      }t	        j
                  |      }t        j                  |||       }t        j                  t        j                  t        |      |            }t        |      D ]o  \  }	}
| |
j                  }nE|
j                  |    k(  sJ t        |
j                        }|j                  |        t        |      }|	|k  s`t        |      dkD  roJ  t        |	       dk(  r7J  y )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      sI   ! !4	E%*"%,"-.2DJ/0ELL,j9%LEggen,,9<
 IIdhhs+A'BINO	#G, 	;JE3#-0YY*yy.*<<<-1#))_**..|<-23M-N*y 56:::	; 	Y& *V333C!4r!   c                     t        j                  t              5  t        j                  d       d d d        t        j                  t              5  t        j                  d       d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)NgGz?r>   )pytestraises
ValueErrorr   _check_factor r!   r   test_check_factorr}      se    	z	" %t$%	z	" #r"# #% %# #s   A0A<0A9<Bdtype)float16float32float64uint8int64pyramid_funcc                    t        j                         5  t        j                  dt        d       t        j
                  j                  dd      j                  |      }d d d         |       }t        |      }t	        j                  |D cg c]  }|j                  |k(   c}      sJ y # 1 sw Y   OxY wc c}w )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    
 
	 	 	" 3 	#7	

 iioob!$++E23 3G'.K66W=r288{*=>>>3 3 >s   AB/B;/B8)'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!   