
    a6d&                        d dl Z 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 ej        ej        gZ eed          reej        gz  ZdZ	 d dlZdZn# e$ r Y nw xY wd Zd Zd	 Zd
 Zej                            deeej         ej!        e"ej#        ej$        g          ej                            dg d          d                         Z%ej                            deej&        ej#        ej$        ej         ej!        ej'        ej(        ej)        ej*        ej+        ej,        g          d             Z-ej                            de          ej                            dddg          d                         Z.ej                            dddej#         ej/        ej#                  g          d             Z0ej                            dej&        ej$        fej$        fej#        ej!        ej)        gej$        fej#        ej&        hej#        fg          d             Z1 ed          ddd            Z2 ej        dg d          d             Z3 e
ddid           d!             Z4d" Z5dS )#    N)testing)check_nDdeprecate_kwarg_validate_interpolation_orderchange_default_value
remove_arg_supported_float_typechannel_as_last_axis
complex256FTc                     t          dd          dd            } t          ddd          dd	            }d
}t          j        t                    5 } | dd          dk    sJ 	 d d d            n# 1 swxY w Y   t	          |d         j                  |k    sJ t          j        t                    5 } | dd          dk    sJ 	 d d d            n# 1 swxY w Y   t	          |d         j                  |k    sJ d}t          j        t                    5 } |dd          dk    sJ 	 d d d            n# 1 swxY w Y   t	          |d         j                  |k    sJ t          j        t                    5 } |dd          dk    sJ 	 d d d            n# 1 swxY w Y   t	          |d         j                  |k    sJ t          j        d          5 } | 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            n# 1 swxY w Y   t          |          dk    sJ d S )Narg10.12)changed_versionr      c                     | ||fS Expected docstring arg0r   arg2s      @lib/python3.11/site-packages/skimage/_shared/tests/test_utils.pyfooz!test_remove_argument.<locals>.foo        T4    z"Some indication on future behavior)r   help_msgc                     | ||fS r   r   r   s      r   barz!test_remove_argument.<locals>.bar"        T4r   zarg1 argument is deprecated and will be removed in version 0.12. To avoid this warning, please do not use the arg1 argument. Please see foo documentation for more details.)r   r   r   r   zarg1 argument is deprecated and will be removed in version 0.12. To avoid this warning, please do not use the arg1 argument. Please see bar documentation for more details. Some indication on future behaviorTrecordr   r   r   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   expected_msgr"   recordeds        r   test_remove_argumentr6      s   ///      0/  =? ? ?     ? ? 
:L
 
m	$	$ &s1ayyI%%%%%& & & & & & & & & & & & & & & vay !!\1111	m	$	$ +s11~~~*****+ + + + + + + + + + + + + + + vay !!\1111:L 
m	$	$ &s1ayyI%%%%%& & & & & & & & & & & & & & & vay !!\1111	m	$	$ +s11~~~*****+ + + + + + + + + + + + + + + vay !!\1111		 	-	-	- 	7s1vv""""s11~~~**** |u$$$$9!!;"66666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 x==As[   A33A7:A77CCCD>>EEF##F'*F'#AII
Ic                     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            n# 1 swxY w Y   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            n# 1 swxY w Y   t          |          dk    sJ d S )Nr   r   )	new_valuer   r   r   c                     | ||fS r   r   r   s      r   r   z&test_change_default_value.<locals>.fooW   r   r   Custom warning message)r9   r   warning_msgc                     | ||fS r   r   r   s      r   r   z&test_change_default_value.<locals>.bar\   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.Tr!   r%   )r   r%   r   r    r   r   r&   )r   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   )r   r   r"   r4   r5   s        r   test_change_default_valuer>   U   sM   &BGGG      HG  &B&>@ @ @     @ @ 
 
m	$	$ #s1vv""""s1vv"""""# # # # # # # # # # # # # # #OL
 vay !!\1111vay !!%===== 
	 	-	-	- 	7s1ayyI%%%%s11~~~**** |u$$$$9!!;"66666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 x==As%   #BB
B%AEE
E
c                     t          ddid          dd            } t          ddidd          dd            }t          j        t                    5 } | d	d
          dk    sJ  |d	d
          dk    sJ 	 d d d            n# 1 swxY w Y   d}t	          |d	         j                  |k    sJ t	          |d         j                  dk    sJ t          j        d          5 } | d	          dk    sJ  | d	d          dk    sJ  | d	d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          dk    sJ | j        dk    sJ t          j
        j        dk     r"t          s| j        dk    sJ n| j        dk    sJ d d d            n# 1 swxY w Y   t          |          d	k    sJ d S )Nold_arg1new_arg1z0.19r   c                     | ||fS r   r   r   rA   r   s      r   r   z!test_deprecate_kwarg.<locals>.foo   s     Xt##r   r;   )deprecated_versionr<   c                     | ||fS r   r   rC   s      r   r   z!test_deprecate_kwarg.<locals>.bar   s    
 Xt##r   r   )r@   )r   r   NzR`old_arg1` is a deprecated argument name for `foo`. Please use `new_arg1` instead.Tr!   r%   )r   r%   N)r   r   r%   )rA   r   )rA   r$   r   r   zExpected docstring


    Other Parameters
    ----------------
    old_arg1 : DEPRECATED
        Deprecated in favor of `new_arg1`.

        .. deprecated:: 0.19
)r   N)r   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   have_numpydocr2   r3   )r   r   r"   msgr5   s        r   test_deprecate_kwargrH   ~   s   j*-v66$ $ $ 76$ j*-(.!9; ; ;$ $ $; ;$ 
m	$	$ 2s1q!!!\1111s1q!!!\111112 2 2 2 2 2 2 2 2 2 2 2 2 2 27Cvay !!S((((vay !!%===== 
	 	-	-	- s1vv%%%%s1ayyL((((s1a||y((((s1qq)))Y6666s1q!!!\1111s11~~~****s1aa   I----|u$$$$9!!  {&>>>>>>{ 	' 	 	 	 	#              8 x==As%   'BBB*C	F??GGc                  
   t           j                            d                              d          } | ddddf         }t          j        t
                    5  t          |d           d d d            d S # 1 swxY w Y   d S )Ni@  )   rJ   
      r%   )nprandomreshaper   raises
ValueErrorr   )zxs     r   test_check_nDrT      s    
	  ((44A	"R%B,A	
	#	#  A                 s   A88A<?A<dtypeorder)	Nr8   r   r   r%               c                    |'| t           k    rt          | d           dk    sn	 d S J d S |dk     s|dk    rDt          j        t                    5  t          | |           d d d            d S # 1 swxY w Y   d S | t           k    rO|dk    rIt          j        t                    5  t          t           |           d d d            d S # 1 swxY w Y   d S t          | |          |k    sJ d S )Nr   r   rY   )boolr   r   rP   rQ   r'   )rU   rV   s     r   !test_validate_interpolation_orderr]      s    } D== .eT::a???&' @?????	eaii^J'' 	8 	8)%777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8	$5A::]:&& 	7 	7)$666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 -UE::eCCCCCCs$   A--A14A1$CCCc                     t          |           }| t          j        t          j        fv r|t          j        k    sJ d S |t          j        k    sJ d S N)r	   rM   float16float32float64)rU   float_dtypes     r   test_supported_float_dtype_realrd      sW     (..KRZ(((bj((((((bj((((((r   allow_complexc                 "   |rIt          | |          }| t          j        k    r|t          j        k    sJ d S |t          j        k    sJ d S t	          j        t                    5  t          | |           d d d            d S # 1 swxY w Y   d S )N)re   )r	   rM   	complex64
complex128r   rP   rQ   )rU   re   rc   s      r   "test_supported_float_dtype_complexri      s      F+EOOOBL  ",......"-//////^J'' 	F 	F!%}EEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	Fs   %BBBfra   c                 D    t          |           t          j        k    sJ d S r_   )r	   rM   ra   )rU   s    r   &test_supported_float_dtype_input_kindsrl      s%     !''2:555555r   zdtypes, expectedc                 4    t          |           }||k    sJ d S r_   )r	   )dtypesexpectedrc   s      r   #test_supported_float_dtype_sequencerp      s(     (//K(""""""r   )multichannel_outputchannel_axisc                4    |d S |dk    sJ | j         d         S )Nr8   )shape)rS   rs   s     r   _decorated_channel_axis_sizerv     s*    t272;r   rs   )Nr   r   r%   r8   c                     t          j        d          }t          ||           }| |J d S ||j        |          k    sJ d S )N)r%   rW   rX   rr   )rM   zerosrv   ru   )rs   rS   sizes      r   !test_decorated_channel_axis_shaper|     sV    
 	A'EEED|||||qw|,,,,,,,r   	old_kwarg	new_kwargzx.y.z)rD   c                     d S r_   r   )r~   s    r   _function_with_deprecated_kwargr     s    Dr   c                     t          j        t                    5 } t          d           t	          j                    j        dz
  }ddd           n# 1 swxY w Y   | d         j        |k    sJ | d         j        t          k    sJ dS )zAssert that warning message issued by deprecate_kwarg points to
    file and line number where decorated function is called.
    T)r}   r   Nr   )
r'   r(   r)   r   inspectcurrentframef_linenolinenofilename__file__)r"   expected_linenos     r   test_deprecate_kwarg_locationr     s     
m	$	$ >'$7777!.009A=> > > > > > > > > > > > > > > !9....!9))))))s   ,AAA)6r/   r,   r   numpyrM   r'   skimage._sharedr   skimage._shared.utilsr   r   r   r   r   r	   r
   rg   rh   complex_dtypeshasattrr   rF   numpydocImportErrorr6   r>   rH   rT   markparametrizer\   intuint8uint16floatra   rb   r]   r`   uint32uint64int8int16int32int64rd   ri   rU   rl   rp   rv   r|   r   r   r   r   r   <module>r      s   



        # # # # # #9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ,.
72| &r}o%N	OOOMM 	 	 	D	7 7 7t& & &R7 7 7t   4bh	#("*bj#B C C"A"A"ABBD D CBC CD$ 	2:rz2:rxBIY28RX7 
) ) 
) .115$-88	F 	F 98 21	F c9bj("(2:*>*>? 6 6 6 
*bj	!2:.
*bi	)2:6
*bj	!2:. # # #
 %00048     10 ^%@%@%@AA
- 
- BA
- +{+HHH	 	 IH	* * * * *s   A A$#A$