
    k h =                     |   d dl Z d dlZd dlZd dlZd dlmZ d dlmZm	Z	m
Z
mZmZmZmZmZ ej                   ej"                  gZ eed      reej(                  gz  ZdZ	 d dlZdZd Zd Zej4                  j7                  d	eeej<                  ej>                  e ejB                  ejD                  g      ej4                  j7                  d
g d      d               Z#ej4                  j7                  d	eejH                  ejB                  ejD                  ej<                  ej>                  ejJ                  ejL                  ejN                  ejP                  ejR                  ejT                  g      d        Z+ej4                  j7                  d	e      ej4                  j7                  dddg      d               Z,ej4                  j7                  d	ddejB                   ejZ                  ejB                        g      d        Z.ej4                  j7                  dejH                  ejD                  fejD                  fejB                  ej>                  ejN                  fejD                  fejB                  ejH                  fejB                  fg      d        Z/ ed      ddd       Z0 ej6                  dg d      d        Z1 eddd      d        Z2d  Z3 ed!d"d#$       ed%d"d#$      eedfd&              Z4 ed!d'd"d#(       ed%d)d"d#(      eedddfd*              Z5 G d+ d,      Z6y# e$ r Y w xY w)-    N)testing)_supported_float_type_validate_interpolation_orderchange_default_valuechannel_as_last_axischeck_nDdeprecate_funcdeprecate_parameter
DEPRECATED
complex256FTc                     t        ddd      dd       } t        dddd	      dd
       }t        j                  t              5 } | d      dk(  sJ  |d      dk(  sJ 	 d d d        d}t	        d   j
                        |k(  sJ t	        |d   j
                        dk(  sJ t        j                  d      5 } | dd      dk(  sJ  | dd      dk(  sJ | j                  dk(  sJ t        j                  j                  dk  r| j                  dk(  sJ d d d        t              dk(  sJ y # 1 sw Y   xY w# 1 sw Y   &xY w)Narg10.12)	new_valuechanged_versionr      c                     | ||fS Expected docstring arg0r   arg2s      |/home/developers/rajanand/mypropertyqr-fmb-refixing-v2/venv/lib/python3.12/site-packages/skimage/_shared/tests/test_utils.pyfooz&test_change_default_value.<locals>.foo!   s     T4    zCustom warning message)r   r   warning_msgc                     | ||fS r   r   r   s      r   barz&test_change_default_value.<locals>.bar&   s     T4r   )r   r   r   zThe new recommended value for arg1 is -1. Until version 0.12, the default arg1 value is 0. From version 0.12, the arg1 default value will be -1. To avoid this warning, please explicitly set arg1 value.Trecord   )r   r#   r   r   r   r   )r   r   )r   pytestwarnsFutureWarningstrmessagewarningscatch_warnings__name__sysflagsoptimize__doc__len)r   r    r"   expected_msgrecordeds        r   test_change_default_valuer4       sp   &BG  H  ,	  
 
m	$ #1v"""1v"""#
	C  vay  !\111vay  !%==== 
	 	 	- 	71ayI%%%11~*** ||u$$$99!;;"6666	7 x=A5# #	7 	7s   D1;AD=1D:=Ec                      t         j                  j                  d      j                  d      } | ddddf   }t        j                  t
              5  t        |d       d d d        y # 1 sw Y   y xY w)Ni@  )   r6   
      r#   )nprandomreshaper   raises
ValueErrorr   )zxs     r   test_check_nDr@   N   s`    
		 ((4A	"R%B,A	
	# A  s   A))A2dtypeorder)	Nr   r   r   r#               c                    || t         k(  rt        | d       dk(  sJ y y |dk  s|dkD  r/t        j                  t              5  t        | |       d d d        y | t         k(  r8|dk7  r3t        j                  t              5  t        t         |       d d d        y t        | |      |k(  sJ y # 1 sw Y   y xY w# 1 sw Y   y xY w)Nr   rE   )boolr   r   r<   r=   r%   )rA   rB   s     r   !test_validate_interpolation_orderrI   U   s    
 }BG4-,UD9Q>VVUV>	eai^^J' 	8)%7	8 	8	$5A:]]:& 	7)$6	7 	7 -UE:eCCC	8 	8	7 	7s   B+?B7+B47C c                     t        |       }| t        j                  t        j                  fv r|t        j                  k(  sJ y |t        j                  k(  sJ y N)r   r9   float16float32float64)rA   float_dtypes     r   test_supported_float_dtype_realrP   j   sG    $ (.KRZZ((bjj(((bjj(((r   allow_complexc                    |rLt        | |      }| t        j                  k(  r|t        j                  k(  sJ |t        j                  k(  sJ y y t	        j
                  t              5  t        | |       d d d        y # 1 sw Y   y xY w)N)rQ   )r   r9   	complex64
complex128r   r<   r=   )rA   rQ   rO   s      r   "test_supported_float_dtype_complexrU      sy     +EOBLL ",,..."--/// / ^^J' 	F!%}E	F 	F 	Fs   (A??BfrM   c                 @    t        |       t        j                  k(  sJ y rK   )r   r9   rM   )rA   s    r   &test_supported_float_dtype_input_kindsrX      s     '2::555r   zdtypes, expectedc                 (    t        |       }||k(  sJ y rK   )r   )dtypesexpectedrO   s      r   #test_supported_float_dtype_sequencer\      s     (/K("""r   )multichannel_outputchannel_axisc                4    |y |dk(  sJ | j                   d   S )Nr   )shape)r?   r_   s     r   _decorated_channel_axis_sizerb      s'    2772;r   r_   )Nr   r   r#   r   c                 ~    t        j                  d      }t        ||       }| |J y ||j                  |    k(  sJ y )N)r#   rC   rD   r^   )r9   zerosrb   ra   )r_   r?   sizes      r   !test_decorated_channel_axis_shaperh      sE    
 	A'ED||qww|,,,,r   r?   yzYou are on your own.)deprecated_versionremoved_versionhintc                       y)zDummy function used in `test_deprecate_func`.

    The decorated function must be outside the test function, otherwise it
    seems that the warning does not point at the calling location.
    Nr   r   r   r   _deprecated_funcrn      s    r   c                      t        j                  t              5 } t                t	        j
                  |        d d d        t               dk(  sJ | d   j                  j                  d   dk(  sJ y # 1 sw Y   ;xY w)Nr   r   zg`_deprecated_func` is deprecated since version x and will be removed in version y. You are on your own.)	r%   r&   r'   rn   r   assert_stacklevelr1   r)   argsr!   s    r   test_deprecate_funcrr      sy    	m	$ *!!&)* v;!!9!!!$	*  * *s    A44A=old10.10r   start_versionstop_versionold0c                     | |||fS )zExpected docstring.

    Parameters
    ----------
    arg0 : int
        First unchanged parameter.
    arg1 : int, optional
        Second unchanged parameter.
    r   )r   rx   rs   r   s       r   _func_deprecated_paramsrz      s     tT!!r   new0new_namerv   rw   new1c                     | |||||fS )aS  Expected docstring.

    Parameters
    ----------
    arg0 : int
        First unchanged parameter.
    new0 : int, optional
        First new parameter.

        .. versionadded:: 0.10
    new1 : int, optional
        Second new parameter.

        .. versionadded:: 0.10
    arg1 : int, optional
        Second unchanged parameter.
    r   )r   rx   rs   r{   r~   r   s         r   _func_replace_paramsr      s    , tT4--r   c                       e Zd Zej                  j                  e d      d        Zej                  j                  e d      d        Zd Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd Zy)Test_deprecate_parameterzrequires numpydoc)reasonc                     t         j                  dk(  sJ t        j                  j                  dk  rt         j
                  dk(  sJ y y )Nrz   r#   ar  Expected docstring.


    Parameters
    ----------
    arg0 : int
        First unchanged parameter.
    arg1 : int, optional
        Second unchanged parameter.

    Other Parameters
    ----------------
    old0 : DEPRECATED
        `old0` is deprecated.

        .. deprecated:: 0.10
    old1 : DEPRECATED
        `old1` is deprecated.

        .. deprecated:: 0.10
)rz   r,   r-   r.   r/   r0   selfs    r   test_docstring_removed_paramz5Test_deprecate_parameter.test_docstring_removed_param   sO     '//3LLLL99! (// "r   c                     t         j                  dk(  sJ t        j                  j                  dk  rt         j
                  dk(  sJ y y )Nr   r#   a1  Expected docstring.


    Parameters
    ----------
    arg0 : int
        First unchanged parameter.
    new0 : int, optional
        First new parameter.

        .. versionadded:: 0.10
    new1 : int, optional
        Second new parameter.

        .. versionadded:: 0.10
    arg1 : int, optional
        Second unchanged parameter.

    Other Parameters
    ----------------
    old0 : DEPRECATED
        Deprecated in favor of `new1`.

        .. deprecated:: 0.10
    old1 : DEPRECATED
        Deprecated in favor of `new0`.

        .. deprecated:: 0.10
)r   r,   r-   r.   r/   r0   r   s    r   test_docstring_replaced_paramz6Test_deprecate_parameter.test_docstring_replaced_param  sM    #,,0FFFF99! %,, "r   c                    d}t        j                  t        |      5  t        dd      ddt        d fk(  sJ 	 d d d        t        j                  t        |      5  t        ddd      dk(  sJ 	 d d d        t        j                  t        |      5  t        dd      ddt        d fk(  sJ 	 d d d        t        j                  t        |      5  t        dd      dt        dd fk(  sJ 	 d d d        t        j                  d	
      5 }t        dd      dt        t        dfk(  sJ 	 d d d        t              dk(  sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   }xY w# 1 sw Y   KxY w)Nz.*`old[01]` is deprecated since version 0\.10 and will be removed in 0\.12.* see the documentation of .*_func_deprecated_params`.matchr   r#   rC   )r   r#   rC   Nrx   rs   Tr!   r$   r   )r%   r&   r'   rz   r   r*   r+   r1   )r   r   r"   s      r   test_warning_removed_paramz3Test_deprecate_parameter.test_warning_removed_param>  s   O 	 \\-u5 	M*1a0Q:t4LLLL	M\\-u5 	G*1a3FFF	G\\-u5 	*115	:   	 \\-u5 	*115	:   	 $$D1 	XV*115!ZUV9WWWW	X6{a+	M 	M	G 	G	 		 		X 	Xs;   EEEE*E6EEE'*E36E?c                    d}t        j                  t        |      5  t        dd      dt        t        d dd fk(  sJ 	 d d d        t        j                  t        |      5 }t        ddd      dt        t        ddd fk(  sJ 	 d d d        t              dk(  sJ d|d   j                  j                  d   v sJ d|d   j                  j                  d   v sJ t        j                  t        |      5  t        dd	      dt        t        d dd fk(  sJ 	 d d d        t        j                  t        |      5  t        dd
      dt        t        dd d fk(  sJ 	 d d d        t        j                  d      5 }t        ddd      dt        t        ddd fk(  sJ 	 d d d        t              dk(  sJ y # 1 sw Y   {xY w# 1 sw Y   CxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   LxY w)Nz.*`old[0,1]` is deprecated since version 0\.10 and will be removed in 0\.12.* see the documentation of .*_func_replace_params`.r   r   r#   rC   z`old1` is deprecatedr   z`old0` is deprecatedr   r   Tr!   )r{   r~   )
r%   r&   r'   r   r   r1   r)   rq   r*   r+   )r   r   recordsr"   s       r   test_warning_replaced_paramz4Test_deprecate_parameter.test_warning_replaced_paramZ  s+   L 	
 \\-u5 	'1-2   	 \\-u5 	'1a05   	 7|q   %););)@)@)CCCC%););)@)@)CCCC\\-u5 	'27   	 \\-u5 	'27   	 $$D1 	V':?   	 6{ak	 		 		 		 		 	s;    F8"!G7!G<!G<"G*8GGGG'*G3c                     t        dddd      }dd}t        j                  t        d      5   ||       d d d        t        fd	}  ||      d
      d
k(  sJ y # 1 sw Y   &xY w)Noldrt   r   r#   rv   rw   
stacklevelc                 
    | |fS rK   r   r   r   s     r   r   z=Test_deprecate_parameter.test_missing_DEPRECATED.<locals>.foo  s    9r   zExpected .* <DEPRECATED>r   c                     | S rK   r   r   s     r   r    z=Test_deprecate_parameter.test_missing_DEPRECATED.<locals>.bar  s    Kr   r   rK   )r
   r%   r<   RuntimeErrorr   )r   decorater   r    s       r   test_missing_DEPRECATEDz0Test_deprecate_parameter.test_missing_DEPRECATED  sl    &f
	 ]]</IJ 	SM	 % 	 x}Q1$$$	 	s   	AA&c                 0   t        dddd      t        fdd dd       }t        j                  d	
      5 } |d      dk(  sJ  |ddd      dk(  sJ  |dd      dk(  sJ  |dd      dk(  sJ 	 d d d        t	              dk(  sJ y # 1 sw Y   xY w)Nr   new0.190.21r|   r   )r   arg3c                    | ||fS r   r   )r   r   r   r   s       r   r   z;Test_deprecate_parameter.test_new_keyword_only.<locals>.foo  s     d?"r   Tr!   r   )r   r   Nr#   )r   r   r#   )r   )r   r#   N)r   )r
   r   r*   r+   r1   )r   r   r3   s      r   test_new_keyword_onlyz.Test_deprecate_parameter.test_new_keyword_only  s    	 	

 % 	#QT 	#

	# $$D1 	/Xq6\)))qaa(I555qa=L000qq>Y...	/ 8}!!!	/ 	/s   <BBc           	         d}t        j                  t        |      5  t        j                  t        d      5  t        ddd       d d d        d d d        t        j                  t        |      5  t        j                  t        d      5  t        ddd       d d d        d d d        t        j                  t        |      5  t        j                  t        d      5  t        ddddd       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   BxY w# 1 sw Y   y xY w)	N.*`old[0,1]` is deprecatedr   z.* avoid conflicting valuesr   r#   )rx   r~   )rs   r{   )rx   rs   r{   r~   )r%   r&   r'   r<   r=   r   )r   r   s     r   test_conflicting_old_and_newz5Test_deprecate_parameter.test_conflicting_old_and_new  s   -\\-u5 	8z1NO 8$QQQ78	8 \\-u5 	8z1NO 8$QQQ78	8 \\-u5 	Hz1NO H$QQQQQGH	H 	H8 8	8 	8
8 8	8 	8
H H	H 	Hsj   DD	D4D,D D,
E&D87ED	DD D)	%D,,D58E	=EEc                 T   t        j                  t        d      5  t                ddd       t        j                  t
        d      5  t        j                  t        d      5  t        ddd       ddd       ddd       y# 1 sw Y   `xY w# 1 sw Y   xY w# 1 sw Y   yxY w)	z8Check that normal errors for faulty calls are unchanged.z(.* required positional argument\: 'arg0'r   Nr   z&.* multiple values for argument 'old0'r   r#   r   )r%   r<   	TypeErrorr   r&   r'   rz   r   s    r   test_wrong_call_signaturez2Test_deprecate_parameter.test_wrong_call_signature  s    ]]H
 	# !"	#
 \\-/LM 	6!I 6 (1156	6 	6	# 	#6 6	6 	6s/   B
B&B5BBB	BB'c                    t        j                  t        d      5  t        ddd      d        }d d d        t        j                  t        d      5  t        dd	dd
      d        }d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)Nz'old' is not in listr   r   rt   r   ru   c                      y rK   r   )r   s    r   r   z;Test_deprecate_parameter.test_wrong_param_name.<locals>.foo  s    r   z'new' is not in listr   r|   c                      y rK   r   )r   r   r   s      r   r    z;Test_deprecate_parameter.test_wrong_param_name.<locals>.bar  s     r   )r%   r<   r=   r
   )r   r   r    s      r   test_wrong_param_namez.Test_deprecate_parameter.test_wrong_param_name  s    ]]:-CD 	 f6R S	 ]]:-CD 	 V&	 		 		 	s   A3A?3A<?Bc                     t        j                  t              5 }t        ddd       t	        j
                  |       d d d        t              dk(  sJ y # 1 sw Y   xY w)Nr   r#   )rx   rs   )r%   r&   r'   rz   r   rp   r1   )r   r   s     r   test_warning_locationz.Test_deprecate_parameter.test_warning_location  sS    \\-( 	/G#AAA6%%g.	/ 7|q   	/ 	/s   $AA c                 |   t        ddd      t        fd       }t        j                  t        d      5   |dd	       d d d        t        dddd
      t        fd       }t        j
                  t        d      5 } |dd	       t        j                  |       d d d        y # 1 sw Y   gxY w# 1 sw Y   y xY w)Nr   r   r   ru   c                      y rK   r   r   s     r   r   z5Test_deprecate_parameter.test_stacklevel.<locals>.foo  s     r   zSet stacklevel manuallyr   r   r   r#   r   c                      y rK   r   r   s     r   r    z5Test_deprecate_parameter.test_stacklevel.<locals>.bar  s     r   z`old` is deprecated)	r
   r   r%   r<   r   r&   r'   r   rp   )r   r   r    r   s       r   test_stacklevelz(Test_deprecate_parameter.test_stacklevel  s    	 


 % 	


	 ]]</HI 	1I	 
 	

 % 	

	 \\-/DE 	/1I%%g.	/ 	/	 		/ 	/s   
B&>B2&B/2B;N)r,   
__module____qualname__r%   markskipifhave_numpydocr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s    [[M)2EF G< [[M)2EF# G#J 8; z% ",H6!/r   r   )7r-   r*   numpyr9   r%   skimage._sharedr   skimage._shared.utilsr   r   r   r   r   r	   r
   r   rS   rT   complex_dtypeshasattrr   r   numpydocImportErrorr4   r@   r   parametrizerH   intuint8uint16floatrM   rN   rI   rL   uint32uint64int8int16int32int64rP   rU   rA   rX   r\   rb   rh   rn   rr   rz   r   r   r   r   r   <module>r      sQ   
    #	 	 	 ,,.
2|r}}o%N	M
+\ dC299eRZZL "ABD CD" 










		
		
		



")#") .15$-8	F 9 2	F 3	2::xrxx

?S"TU6 V6 
**bjj	!2::.
**bii	)2::6
**bjj	!2::.##
 %048  1 ^%@A
- B
- C6L	 V6GV6G'1
 
" H H
" VfFQWXVfFQWX
Dt. Y Y..L/ L/y  		s   L2 2L;:L;