
    Kh                         S r SSKrSSKrSSKJrJrJr  SSKJ	r	  \R                  R                  S   \R                  R                  S   -   \R                  R                  S   -   \R                  R                  S   -   rS	S00 S
S0SS0SS0SS0SS0SS0SS00 0 S.r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S 5      r " S! S"5      r " S# S$5      rS% rS& r\R6                  R9                  S'/ S(Q5      S) 5       r " S* S+5      r\R6                  R9                  S'\R?                  5       5      S, 5       r S- r!\R6                  R9                  S'S.S/\"" 5       SS0S1/5      S2 5       r#\R6                  R9                  S'\R?                  5       5      S3 5       r$\R6                  R9                  S'\R?                  5       5      S4 5       r%\R6                  R9                  S5\5      \R6                  R9                  S'\R?                  5       5      S6 5       5       r&g)7z(Tests for the array padding functions.

    N)assert_array_equalassert_allcloseassert_equal)	_as_pairsuintintfloatcomplexconstant_values
end_valuesstat_lengthreflect_typeeven)constantedgelinear_rampmaximummeanmedianminimumreflect	symmetricwrapemptyc                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestAsPairs    c                     [         R                  " SS//S-  5      nSS/S//4 H  n[        US5      n[        X15        M     [	        5       n[        [        US5      [         R                  " XD//S-  5      5        g)z Test casting for a single value.   
   Nnparrayr   r   objectselfexpectedxresultobjs        O/var/www/html/env/lib/python3.13/site-packages/numpy/lib/tests/test_arraypad.pytest_single_valueTestAsPairs.test_single_value!   st    88aVHrM*aSA3%Aq"%F* ! hc2HHsj\B&'	
    c                    [         R                  " SS//S-  5      nSS/SS//4 H  n[        US5      n[        X15        M     [	        5       n[        [        SU/S5      [         R                  " SU//S-  5      5        [        [        S/S//S5      [         R                  " SS/SS//5      5        [        [        S/U//S5      [         R                  " SS/XD//5      5        g)z-Test proper casting for two different values.r      r    a   Nr!   r%   s        r+   test_two_valuesTestAsPairs.test_two_values.   s     88aVHrM*a&Aq6(#Aq"%F* $ hsCj"%HHsCj\B&'	
 	sQCj!$HHq!fq!f%&	

 	usena(HHsCj3*-.	
r.   c                 \    Sn[        [        S SSS9U5        [        [        S SSS9U5        g )N)NNr6   r6   r   Fas_indexT)r   r   r&   r'   s     r+   test_with_noneTestAsPairs.test_with_noneG   s7    =dA.	
 	dA-	
r.   c                 z    [         R                  " S5      R                  S5      n[        [	        US5      U5        g)z?Test if `x` already matching desired output are passed through.   )   r2   r>   N)r"   arangereshaper   r   r9   s     r+   test_pass_throughTestAsPairs.test_pass_throughR   s/    99R=((0h"	
r.   c           
         [        [        SS/SSS9[        R                  " SS//S-  [        R                  S95        [        [        SS/SSS9[        R                  " SS	//S-  [        R                  S95        S
S
/S
//S
S	/SS/S
S	//S	S
//SS//S-  SS//-   4 H0  n[
        R                  " [        SS9   [        USSS9  SSS5        M2     g! , (       d  f       MD  = f)z Test results if `as_index=True`.g@gffffff
@r    Tr7   r   dtypeg(\@r0      r2   	   znegative valuesmatchN)r   r   r"   r#   intppytestraises
ValueError)r&   r(   s     r+   test_as_indexTestAsPairs.test_as_indexZ   s    sCj"t4HHq!fX]"''2	
 	sDk25HHq!fX]"''2	
 rdbTFRGaWAwi1b'q6(Q,1b'*,Az1BC!R$/ DC,CCs   <C
C$	c                    [         R                  " [        SS9   [        S///S5        SSS5        [         R                  " [        SS9   [        SS/SS	//S5        SSS5        [         R                  " [        SS9   [        [        R
                  " S
5      S5        SSS5        g! , (       d  f       N= f! , (       d  f       Nb= f! , (       d  f       g= f)z"Ensure faulty usage is discovered.zmore dimensions than allowedrK   r   r    Nzcould not be broadcastrH   r2   r0   r2   r   )rN   rO   rP   r   r"   ones)r&   s    r+   test_exceptionsTestAsPairs.test_exceptionsi   s    ]]:-KLugr" M]]:-EF1v1v&* G]]:-EFbggfoq) GF	 MLFFFFs#   B)B:?!C)
B7:
C
C N)__name__
__module____qualname____firstlineno__r,   r3   r:   rA   rQ   rV   __static_attributes__rX   r.   r+   r   r       s     

2	

0*r.   r   c                      \ rS rSr\R
                  R                  S\R                  5       5      S 5       r	\R
                  R                  S/ SQ5      S 5       r
\R
                  R                  S/ SQ5      S 5       rSrg)	TestConditionalShortcutss   modec           	          [         R                  " S5      R                  SSS5      nUR                   Vs/ s H  nSPM     nn[	        U[         R
                  " X$US95        g s  snf )Nx   r0      r>   r   r   ra   r"   r?   r@   shaper   padr&   ra   test_pad_amts        r+   test_zero_padding_shortcuts4TestConditionalShortcuts.test_zero_padding_shortcutst   sP    yy~%%aA.#'::.:a6:.4D!AB /s   A$)r   r   r   r   c           
          [         R                  " S5      R                  SSS5      nUR                   Vs/ s H  nSPM     nn[	        [         R
                  " X$SS9[         R
                  " X$USS	95        g s  snf )
Nrc   r0   rd   r>   rH   rH   r   rf   rH   ra   r   rg   rj   s        r+   test_shallow_statistic_range5TestConditionalShortcuts.test_shallow_statistic_rangez   sa    yy~%%aA.#'::.:a6:.266$f=66$dJ	L /s   A8c           
          [         R                  " S5      R                  SS5      nUR                   Vs/ s H  nSPM     nn[	        [         R
                  " X$US9[         R
                  " X$USS95        g s  snf )N   rd   r>   )r   r   rf   rr   rg   rj   s        r+   test_clip_statistic_range2TestConditionalShortcuts.test_clip_statistic_range   s_    yy}$$Q*#'::.:a6:.266$d;66$dK	M /s   A7rX   N)rY   rZ   r[   r\   rN   markparametrize
_all_modeskeysrn   rs   rw   r]   rX   r.   r+   r_   r_   s   s    [[VZ__%67C 8C
 [[V%NOL PL [[V%NOM PMr.   r_   c                   B   \ 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S r\R$                  R'                  S/ SQ5      S 5       r\R$                  R'                  S/ SQ5      \R$                  R'                  S/ SQ5      S 5       5       rS r\R$                  R/                  S5      \R$                  R/                  S5      \R$                  R'                  SSS/5      S 5       5       5       r\R$                  R'                  SSS/5      S 5       rSrg) TestStatistic   c                     [         R                  " S5      R                  S5      n[         R                  " USSSS9n[         R                  " / SQ5      n[        X5        g )Nd   f)      r   )rT   r   )      ?r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r                 ?       @      @      @      @      @      @       @      "@      $@      &@      (@      *@      ,@      .@      0@      1@      2@      3@      4@      5@      6@      7@      8@      9@      :@      ;@      <@      =@      >@      ?@      @@     @@      A@     A@      B@     B@      C@     C@      D@     D@      E@     E@      F@     F@      G@     G@      H@     H@      I@     I@      J@     J@      K@     K@      L@     L@      M@     M@      N@     N@      O@     O@      P@     @P@     P@     P@      Q@     @Q@     Q@     Q@      R@     @R@     R@     R@      S@     @S@     S@     S@      T@     @T@     T@     T@      U@     @U@     U@     U@      V@     @V@     V@     V@      W@     @W@     W@     W@      X@     @X@     X@     X@r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r?   astyperi   r#   r   r&   r1   bs      r+   test_check_mean_stat_length)TestStatistic.test_check_mean_stat_length   sK    IIcN!!#&FF1lF
CHH& 	1 r.   c                     [         R                  " S5      n[         R                  " USS5      n[         R                  " / SQ5      n[	        X5        g )Nr   r   r   )c   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rH   r2   r   r0   rd   r>         rI   r       r=                        r               r               rv      r   !   "   #   $   %   &   '   (   )   *   +   ,   -   .   /   0   1   2   3   4   5   6   7   8   9   :   ;   <   =   >   ?   @   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   [   \   ]   ^   _   `   a   b   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r?   ri   r#   r   r   s      r+   test_check_maximum_1"TestStatistic.test_check_maximum_1   >    IIcNFF1h	*HH5& 	1 r.   c                     [         R                  " S5      S-   n[         R                  " USS5      n[         R                  " / SQ5      n[	        X5        g )Nr   rH   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rH   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  rv   r  r   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rI  r   s      r+   test_check_maximum_2"TestStatistic.test_check_maximum_2   sC    IIcNQFF1h	*HH?& 	1 r.   c                     [         R                  " S5      S-   n[         R                  " USSSS9n[         R                  " / SQ5      n[	        X5        g )Nr   rH   r   r   r    r   )r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    rH   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  rv   r  r   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rI  r   s      r+   test_check_maximum_stat_length,TestStatistic.test_check_maximum_stat_length   sE    IIcNQFF1h	r:HH?& 	1 r.   c                     [         R                  " S5      n[         R                  " USS5      n[         R                  " / SQ5      n[	        X5        g )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rH   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  rv   r  r   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rI  r   s      r+   test_check_minimum_1"TestStatistic.test_check_minimum_1   s>    IIcNFF1h	*HH+& 	1 r.   c                     [         R                  " S5      S-   n[         R                  " USS5      n[         R                  " / SQ5      n[	        X5        g )Nr   r2   r   r   )r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  rv   r  r   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   r   e   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   r2   rI  r   s      r+   test_check_minimum_2"TestStatistic.test_check_minimum_2  sC    IIcNQFF1h	*HH+& 	1 r.   c                     [         R                  " S5      S-   n[         R                  " USSSS9n[         R                  " / SQ5      n[	        X5        g )Nr   rH   r   r   r    r   )rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   rH   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  rv   r  r   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   r   rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rI  r   s      r+   test_check_minimum_stat_length,TestStatistic.test_check_minimum_stat_length  sE    IIcNQFF1h	r:HH5& 	1 r.   c                     [         R                  " S5      R                  S5      n[         R                  " USS5      n[         R                  " / SQ5      n[        X5        g )Nr   r   r   r        H@r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r`  r   r   s      r+   test_check_medianTestStatistic.test_check_median2  sJ    IIcN!!#&FF1h)HHI& 	1 r.   c                     [         R                  " / SQ/ SQ/ SQ/5      n[         R                  " USS5      n[         R                  " / SQ/ SQ/ SQ/ S	Q/ SQ/5      n[        X5        g )
Nr   rH   r0   r0   rd   rI   rI   r   r2   rH   r   )r0   r0   rd   r0   r0   r   r   rH   r0   r   rd   r0   rd   rI   rd   r   rI   r   r2   r   )r"   r#   ri   r   r   s      r+   test_check_median_01"TestStatistic.test_check_median_01J  sU    HHiI67FF1a"HH 	1 r.   c                     [         R                  " / SQ/ SQ/ SQ/5      n[         R                  " UR                  SS5      R                  n[         R                  " / SQ/ SQ/ SQ/ S	Q/ SQ/5      n[	        X5        g )
Nrd  re  rf  rH   r   )rd   r0   rd   r0   rd   rg  rh  ri  )r"   r#   ri   Tr   r   s      r+   test_check_median_02"TestStatistic.test_check_median_02X  s_    HHiI67FF1338$&&HH 	1 r.   c                     [         R                  " S5      R                  S5      nSUS'   SUS'   [         R                  " USSS	S
9n[         R                  " / SQ5      n[        X5        g )Nr   r   r   rH   r   rG  r   r   r   rd   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s      r+   test_check_median_stat_length+TestStatistic.test_check_median_stat_lengthf  s]    IIcN!!#&!"FF1hf=HH?& 	1 r.   c                     / SQ/n[         R                  " USSSS9n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X5        g )Nr0   rd   r>   rd   r   r   r2   r   )r0   r0   r0   r0   r0   r0   rd   r>   r>   r>   r>   r>   r>   r>   r>   r"   ri   r#   r   r   s      r+   test_check_mean_shape_one'TestStatistic.test_check_mean_shape_one  sa    KFF1ff!4HH:::::::::::::<" 	1 r.   c                     [         R                  " S5      R                  S5      n[         R                  " USS5      n[         R                  " / SQ5      n[        X5        g )Nr   r   r   r   r_  r   r   s      r+   test_check_mean_2TestStatistic.test_check_mean_2  sJ    IIcN!!#&FF1h'HHI& 	1 r.   ra   )r   r   r   r   c                     [         R                  " / SQ5      [         R                  " / SQ[         R                  S9-   n[         R                  " USU5      n[	        US   US   5        g)z2Test that appended and prepended values are equal )r2   r~  )r   g-q=r   rD   rq   r   r~  N)r"   r#   float64ri   r   )r&   ra   r1   s      r+   test_same_prepend_append&TestStatistic.test_same_prepend_append  sJ     HH[!BHH]"**$MMFF1fd#QqT1R5!r.   r   rJ   )rJ   )r   r~  ))rd   r2   )rJ   r   ))rG   r2   c                     [         R                  " S5      R                  S5      nSn[        R                  " [
        US9   [         R                  " USXS9  S S S 5        g ! , (       d  f       g = f)Nrv   r>   rd   #index can't contain negative valuesrK   r2   r   r"   r?   r@   rN   rO   rP   ri   )r&   ra   r   arrrL   s        r+   test_check_negative_stat_length-TestStatistic.test_check_negative_stat_length  sK    
 iim##F+5]]:U3FF349 433s   A!!
A/c                    [         R                  " S5      n[         R                  " US5      n[         R                  " USSSS9n[         R                  " / SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X5        g )Nrv   r  rT   r   r2   r   r   rr   )
r>   r>   r>   rd   r>   r   r   rI   r   r   )
rH   rH   rH   r   rH   r2   r   r0   r   r   )
r   r   r   r    r   r=   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r  r   r   )
r  r  r  r   r  r  r  r  r  r  r"   r?   r@   ri   r#   r   r   s      r+   test_simple_stat_length%TestStatistic.test_simple_stat_length  sr    IIbMJJq&!FF1&VFHH++++55555557 	1 r.   z)ignore:Mean of empty slice:RuntimeWarningzCignore:invalid value encountered in( scalar)? divide:RuntimeWarningr   r   c                     [         R                  " SS/SUSS9n[         R                  " [         R                  SS[         R                  [         R                  /5      n[	        X#5        g )Nr   r   rH   r2   r   r   )r"   ri   r#   nanr   )r&   ra   r  r'   s       r+   test_zero_stat_length_valid)TestStatistic.test_zero_stat_length_valid  sI     ffb"Xvt;88RVVRRVVRVV<=S#r.   r   r   c                 h   Sn[         R                  " [        US9   [        R                  " SS/SUSS9  S S S 5        [         R                  " [        US9   [        R                  " SS/SUSS9  S S S 5        [         R                  " [        US9   [        R                  " SS/SUSS9  S S S 5        [         R                  " [        US9   [        R                  " SS/SUSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       g = f)	Nz,stat_length of 0 yields no value for paddingrK   r   r   r   r   )rH   r   rH   )rN   rO   rP   r"   ri   r&   ra   rL   s      r+   test_zero_stat_length_invalid+TestStatistic.test_zero_stat_length_invalid  s    >]]:U3FFB8Q!4 4]]:U3FFB8Q&9 4]]:U3FFB8Q!4 4]]:U3FFB8Q&9 43 43333333s/   C0DDD#0
C>
D
D #
D1rX   N)rY   rZ   r[   r\   r   rJ  rN  rQ  rU  rY  r\  ra  rj  rn  rr  rx  r{  rN   ry   rz   r  r  r  filterwarningsr  r  r]   rX   r.   r+   r~   r~      s?   !0!0!0!0!0!0!0!0!!!4!,!0 [[V & "" [[V%MN[[M: O:!* [[ KL[[M [[Vfh%78$ 9 M
$
 [[Vi%;<	: =	:r.   r~   c                   P    \ 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)TestConstanti  c                     [         R                  " S5      n[         R                  " USSSS9n[         R                  " / SQ5      n[	        X5        g )Nr   r   r   )r    r   r   )r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r    r   rH   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  rv   r  r   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rI  r   s      r+   test_check_constant TestConstant.test_check_constant  s@    IIcNFF1h
HEHH5& 	1 r.   c                     [         R                  " S5      n[         R                  " USS5      n[         R                  " / SQ5      n[	        X5        g )Nr   r   r   rT  rI  r   s      r+   test_check_constant_zeros&TestConstant.test_check_constant_zeros  s>    IIcNFF1h
+HH5& 	1 r.   c                     [         R                  " S5      R                  SS5      n[         R                  " USSSS9n[         R                  " / SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X#5        g )Nrv   rd   r>   r  r   皙?ra   r   )	rH   rH   rH   rH   rH   rH   rH   rH   rH   )	rH   r   rH   r2   r   r0   rd   rH   rH   )	rH   r>   r   r   rI   r    r   rH   rH   )	rH   r=   r   r   r   r   r   rH   rH   )	rH   r   r   r   r   r   r   rH   rH   )	rH   r  r   r  r  r  r  rH   rH   r"   r?   r@   ri   r#   r   r&   r  rk   r'   s       r+   test_check_constant_float&TestConstant.test_check_constant_float#  sj     iim##Aq)vvc6
#&(8811111111	3 	'r.   c                 .   [         R                  " S5      R                  SS5      nUR                  [         R                  5      n[         R
                  " USSSS9n[         R                  " / SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X45        g )Nrv   rd   r>   r  r  r   r  r  )	r  r  r  r  r  r  r  r  r  )	r  r   r   r   r   r   r   r  r  )	r  r   r   r   r   r   r   r  r  )	r  r   r   r   r   r   r   r  r  )	r  r   r   r   r   r   r   r  r  )	r  r   r   r   r   r   r   r  r  r"   r?   r@   r   r  ri   r#   r   )r&   r  	arr_floatrk   r'   s        r+   test_check_constant_float2'TestConstant.test_check_constant_float27  s~     iim##Aq)JJrzz*	vvi!1
#&(88LLLLLLLL	N 	'r.   c                     [         R                  " S[        S9n[         R                  " USSSS9n[         R                  " / SQ5      n[        X5        g )Nr   rD   r   r   )皙333333r  )r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   rH   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  rv   r  r   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )r"   r?   r	   ri   r#   r   r   s      r+   test_check_constant_float3'TestConstant.test_check_constant_float3L  sD    IIc'FF1h
LIHHI& 	r.   c           
          [         R                  " S5      R                  SS5      n[         R                  " USSSS9n[         R                  " / SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/5      n[        X#5        g )Nrv   rd   r>   )rH   r  r   r   r  )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   rH   r2   r   r0   rd   r   r   )
r   r   r>   r   r   rI   r    r   r   r   )
r   r   r=   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r  r   r  r  r  r  r   r   r  r  s       r+   "test_check_constant_odd_pad_amount/TestConstant.test_check_constant_odd_pad_amountd  se    iim##Aq)vvc<j#$&8855555557
 	'r.   c                     [         R                  " S5      R                  SS5      n[         R                  " USSSS9n[         R                  " / SQ/ SQ/ S	Q/ S
Q/ S
Q/5      n[        X#5        g )Nr0   r2   )r  rH   r   r   )r  r   r0   r  )r   rH   rH   r0   r0   r0   )r   r   rH   r0   r0   r0   )r   r2   r   r0   r0   r0   )r   r2   r2   r0   r0   r0   r  r  s       r+   test_check_constant_pad_2d'TestConstant.test_check_constant_pad_2du  s`    iil""1a(vvc+**:<88	!
 	'r.   c                    Sn[         R                  " SU[         R                  S9n[         R                  " USSUR	                  5       S9n[         R                  " SU[         R                  S9n[        X45        Sn[         R                  " SU[         R                  S9n[         R                  " USSUR	                  5       S9n[         R                  " SU[         R                  S9n[        X45        g )	Nl    rd   rD   rH   r   r  r   l    )r"   fulluint64ri   minr   int64)r&   
uint64_maxr  rk   r'   	int64_maxs         r+   test_check_large_integers&TestConstant.test_check_large_integers  s     
gga2995vvc1:swwyI771j		:4*	gga"((3vvc1:swwyI771irxx84*r.   c                 
   [         R                  " S[        S9n[        5       nX!S'   [        5       n[        5       n[         R                  " USSX44S9n[         R                  " S[        S9nX5S'   X%S'   XES'   [	        X5        g )NrH   rD   r   r   )	pad_widthra   r   r  r2   )r"   r   r$   ri   r   )r&   r  obj_aobj_bobj_cr'   s         r+   test_check_object_array$TestConstant.test_check_object_array  sv    hhq'AffSAJ&+^5 88D/3)r.   c                     [         R                  " S5      n[         R                  " U/ SQSS9nUR                  S:X  d   eg )Nr   r   r2   r   r  r  r   rf   r   r0   r0   r"   zerosri   rh   r&   r  r)   s      r+   test_pad_empty_dimension%TestConstant.test_pad_empty_dimension  s5    hhy!/jA||y(((r.   rX   N)rY   rZ   r[   r\   r  r  r  r  r  r  r  r  r  r  r]   rX   r.   r+   r  r    s4    !0!0(((*0("(+* )r.   r  c                       \ rS rSrS rS r\R                  R                  \	4S9S 5       r
S r\R                  R                  S\5      S 5       rS	rg
)TestLinearRampi  c                     [         R                  " S5      R                  S5      n[         R                  " USSSS9n[         R                  " / SQ5      n[        XSSS	9  g )
Nr   r   r   r   )r0   rd   )r   )r   gQ@gq=
ףp@g)\(@gzG
@g	@gRQ@g
ףp=
@g(\@g{Gz@g333333@gQ@gp=
ף @gQ?g)\(?g?g
ףp=
?g{Gz?gQ?gQ?g?g{Gz?gQ?g{Gz?g{Gz?r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   g33333W@gffffffV@g9U@gT@g     R@g33333Q@gfffffP@g33333N@gYL@r   gfffffG@gLE@g33333B@g@@g     <@g7@g3@g,@gffffff#@r   gh㈵>)rtolatol)r"   r?   r   ri   r#   r   r   s      r+   test_check_simple TestLinearRamp.test_check_simple  sP    IIcN!!#&FF1h&AHHF& 	4d3r.   c                 *   [         R                  " S5      R                  SS5      R                  [         R                  5      n[         R
                  " USSSS9n[         R                  " / SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X#5        g )Nr   r0   rd   )r2   r2   r   re   ra   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   g      ?r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   g      @r   r   r   r   r   g      @r   )	r   r   r   r   r   r   r   r   r   )	r         @r   r   r   r   r         #@r   )	r   g      @r  r   g      !@r   r  g      @r   r  r  s       r+   test_check_2dTestLinearRamp.test_check_2d  sv    iim##Aq)00<vvc6&I88BBBBBBBBDE 	'r.   )
exceptionsc                 <   SSK Jn  [        R                  " U" SS5      U" SS5      /5      n[        R                  " USSSS9n[        R                  " U" SS	5      U" S
S	5      U" SS	5      U" SS	5      U" SS	5      U" SS	5      U" SS	5      /5      n[        X45        g )Nr   )FractionrH   r2   r~  rT   r   r  r=   r   r>   rG   rJ   )	fractionsr  r"   r#   ri   r   )r&   r  r  actualr'   s        r+   test_object_array TestLinearRamp.test_object_array  s    &hhAQ89V-AF 88aaaRRRR
  	V&r.   c                    [         R                  " [         R                  " S5      R                  SS5      SSS9n[	        USS2S4   S	5        [	        USS2S
4   S	5        [	        USSS24   S	5        [	        US
SS24   S	5        g)z!Ensure that end values are exact.r    r2   rd   )   {   r   rf   Nr   r   r~  )r"   ri   rU   r@   r   )r&   r1   s     r+   test_end_valuesTestLinearRamp.test_end_values  sq    FF2772;&&q!,j}MQq!tWb!Qq"uXr"Qq!tWb!Qr1uXr"r.   rE   c                 @   [         R                  " S/US9n[         R                  " USSSS9n[         R                  " / SQUS9n[        X45        [         R                  " S/US9n[         R                  " USSSS9n[         R                  " / SQUS9n[        X45        g)	a  
Check correct behavior of unsigned dtypes if there is a negative
difference between the edge to pad and `end_values`. Check both cases
to be independent of implementation. Test behavior for all other dtypes
in case dtype casting interferes with complex dtypes. See gh-14191.
r   rD   r   r   r  )r   rH   r2   r   r2   rH   r   )r   r2   rH   r   rH   r2   r   N)r"   r#   ri   r   )r&   rE   r(   r)   r'   s        r+   test_negative_difference'TestLinearRamp.test_negative_difference  s     HHaS&1=Q?881?V&HHaS&1=Q?881?V&r.   rX   N)rY   rZ   r[   r\   r  r  rN   ry   xfailAssertionErrorr  r  rz   _numeric_dtypesr  r]   rX   r.   r+   r  r    s_    40( [[>"34' 5'$# [[Wo6' 7'r.   r  c                   V    \ 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)TestReflecti  c                     [         R                  " S5      n[         R                  " USS5      n[         R                  " / SQ5      n[	        X5        g )Nr   r   r   )r   r  r   r   r   r   r   r   r   r   r   r   r   r=   r   r    rI   r   r   r>   rd   r0   r   r2   rH   r   rH   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  rv   r  r   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   rH  rG  rF  rE  rD  rC  rB  rA  r@  r?  r>  r=  r<  r;  r:  r9  r8  r7  r6  r5  rI  r   s      r+   r  TestReflect.test_check_simple  rL  r.   c                     [         R                  " S5      n[         R                  " USSSS9n[         R                  " / SQ5      n[	        X5        g )Nr   r   r   oddr   )ir  rG   rF   rJ   r~  r   rH   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  rv   r  r   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   r   rX  f   g   h   i   j   k   l   m   n   o   p   q   r   r`   t   u   v   w   rI  r   s      r+   test_check_odd_method!TestReflect.test_check_odd_method  s@    IIcNFF1h	>HH?& 	1 r.   c                     / SQ/ SQ/n[         R                  " USS5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X5        g )Nru  r>   r   r   rv  r   )r   r>   r   r   r   r>   r   r   r   r>   r   r   r   r>   r   rd   r0   rd   r>   rd   r0   rd   r>   rd   r0   rd   r>   rd   r0   rd   rw  r   s      r+   test_check_large_pad TestReflect.test_check_large_pad+  se    	"FF1fi(HH::::::::::::::<$ 	1 r.   c                     / SQ/n[         R                  " USS5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X5        g )Nru  rv  r   r)  rw  r   s      r+   test_check_shapeTestReflect.test_check_shapeB  s_    KFF1fi(HH:::::::::::::<" 	1 r.   c                 ~    [         R                  " / SQSS5      n[         R                  " / SQ5      n[        X5        g )NrH   r2   r   r2   r   )r   r2   rH   r2   r   r2   rH   rw  r   s      r+   test_check_01TestReflect.test_check_01X  s+    FF9a+HH*+1 r.   c                 ~    [         R                  " / SQSS5      n[         R                  " / SQ5      n[        X5        g )Nr0  r   r   )	r2   r   r2   rH   r2   r   r2   rH   r2   rw  r   s      r+   test_check_02TestReflect.test_check_02]  s+    FF9a+HH011 r.   c                 ~    [         R                  " / SQSS5      n[         R                  " / SQ5      n[        X5        g )Nr0  r0   r   )rH   r2   r   r2   rH   r2   r   r2   rH   r2   r   rw  r   s      r+   test_check_03TestReflect.test_check_03b  s+    FF9a+HH671 r.   c                     [         R                  " / SQSS/S5      n[         R                  " / SQ5      n[        X5        g )Nr0  rH   r    r   )r2   rH   r2   r   r2   rH   r2   r   r2   rH   r2   r   r2   rH   rw  r   s      r+   test_check_04TestReflect.test_check_04g  s/    FF9q"gy1HH?@1 r.   c                     [         R                  " / SQSS/S5      n[         R                  " / SQ5      n[        X5        g )NrH   r2   r   r0   r  r    r   );r0   r   r2   rH   r2   r   r0   r   r2   rH   r2   r   r0   r   r2   rH   r2   r   r0   r   r2   rH   r2   r   r0   r   r2   rH   r2   r   r0   r   r2   rH   r2   r   r0   r   r2   rH   r2   r   r0   r   r2   rH   r2   r   r0   r   r2   rH   r2   r   r0   r   r2   rH   r2   rw  r   s      r+   test_check_05TestReflect.test_check_05l  s5    FF<"b95HH() 	1 r.   c                     [         R                  " / SQSS/S5      n[         R                  " / SQ5      n[        X5        g )Nr=  r   r2   r   )r2   r   r0   r0   r   r2   rH   rH   r2   r   r0   r0   r   r2   rH   rH   r2   r   r0   r0   r   rw  r   s      r+   test_check_06TestReflect.test_check_06w  s5    FF<"a+6HH

 	1 r.   c                     [         R                  " / SQSS/S5      n[         R                  " / SQ5      n[        X5        g )N)rH   r2   r   r0   rd   r>   r  r   r   )6r0   rd   r>   r>   rd   r0   r   r2   rH   rH   r2   r   r0   rd   r>   r>   rd   r0   r   r2   rH   rH   r2   r   r0   rd   r>   r>   rd   r0   r   r2   rH   rH   r2   r   r0   rd   r>   r>   rd   r0   r   r2   rH   rH   r2   r   r0   rd   r>   r>   rd   r0   rw  r   s      r+   test_check_07TestReflect.test_check_07  s6    FF%Aw<HH 	1 r.   rX   N)rY   rZ   r[   r\   r  r%  r*  r-  r1  r4  r7  r:  r>  rA  rD  r]   rX   r.   r+   r  r    s9    !0!0!.!,!
!
!
!
	!!	!r.   r  c                       \ rS rSrSr\R                  R                  S\" \	R                  5       SS1-
  5      5      S 5       r\R                  R                  S\	R                  5       5      S 5       rSrg	)
TestEmptyArrayi  z<Check how padding behaves on arrays with an empty dimension.ra   r   r   c                    Sn[         R                  " [        US9   [        R                  " / SUS9  S S S 5        [         R                  " [        US9   [        R                  " [        R
                  " S5      SUS9  S S S 5        [         R                  " [        US9   [        R                  " [        R                  " S5      SUS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       Nl= f! , (       d  f       g = f)NzFcan't extend empty axis 0 using modes other than 'constant' or 'empty'rK   r0   rf   r   )r   r   )r  r  )rN   rO   rP   r"   ri   ndarrayr  r  s      r+   r  'TestEmptyArray.test_pad_empty_dimension  s    ]]:U3FF2qt$ 4]]:U3FF2::a=!$/ 4]]:U3FF288F#\= 43	 433333s#   C+C% +C6
C"%
C36
Dc                 |    [         R                  " [         R                  " S5      SUS9nUR                  S:X  d   eg )N)r2   r   r2   )r  r  r  rf   )r   r   r0   )r"   ri   rU   rh   )r&   ra   r)   s      r+   test_pad_non_empty_dimension+TestEmptyArray.test_pad_non_empty_dimension  s0    	*,>TJ||y(((r.   rX   N)rY   rZ   r[   r\   __doc__rN   ry   rz   sortedr{   r|   r  rL  r]   rX   r.   r+   rG  rG    so    F[[ 	z(J+@@A
>
> [[VZ__%67) 8)r.   rG  c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestSymmetrici  c                     [         R                  " S5      n[         R                  " USS5      n[         R                  " / SQ5      n[	        X5        g )Nr   r   r   )r  r   r   r   r   r   r   r   r   r   r   r   r=   r   r    rI   r   r   r>   rd   r0   r   r2   rH   r   r   rH   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  rv   r  r   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   r   rH  rG  rF  rE  rD  rC  rB  rA  r@  r?  r>  r=  r<  r;  r:  r9  r8  r7  r6  rI  r   s      r+   r  TestSymmetric.test_check_simple  s>    IIcNFF1h,HH5& 	1 r.   c                     [         R                  " S5      n[         R                  " USSSS9n[         R                  " / SQ5      n[	        X5        g )Nr   r   r   r  r   )r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  rG   rF   rJ   r~  r   r   rH   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  rv   r  r   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   r   r   rX  r  r  r  r  r  r  r  r  r  r  r  r  r   r`   r!  r"  r#  rI  r   s      r+   r%  #TestSymmetric.test_check_odd_method  s@    IIcNFF1h%@HH?& 	1 r.   c                     / SQ/ SQ/n[         R                  " USS5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X5        g )Nru  r(  rv  r   rd   r>   r>   rd   r0   r0   rd   r>   r>   rd   r0   r0   rd   r>   r>   )r   r   r   r   r>   r>   r   r   r   r   r>   r>   r   r   r   rw  r   s      r+   r*  "TestSymmetric.test_check_large_pad  se    	"FF1fk*HH::::::::::::::<& 	1 r.   c                     / SQ/ SQ/n[         R                  " USSSS9n[         R                  " / SQ/ SQ/ SQ/ SQ/ S	Q/ S	Q/ S
Q/ S
Q/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X5        g )Nru  r(  rv  r   r  r   )rF   rJ   rJ   r~  r   r   rH   r2   r2   r   r0   r0   rd   r>   r>   )r~  r   r   rH   r2   r2   r   r0   r0   rd   r>   r>   r   r   r   )rH   r2   r2   r   r0   r0   rd   r>   r>   r   r   r   rI   r    r    )r   r0   r0   rd   r>   r>   r   r   r   rI   r    r    r   r=   r=   )rd   r>   r>   r   r   r   rI   r    r    r   r=   r=   r   r   r   )r   r   r   rI   r    r    r   r=   r=   r   r   r   r   r   r   )rI   r    r    r   r=   r=   r   r   r   r   r   r   r   r   r   rw  r   s      r+   test_check_large_pad_odd&TestSymmetric.test_check_large_pad_odd  sh    	"FF1fk>HHIIIIIIIIIIIIIIK$ 	1 r.   c                     / SQ/n[         R                  " USS5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X5        g )Nru  rv  r   rW  rw  r   s      r+   r-  TestSymmetric.test_check_shape  s_    KFF1fk*HH:::::::::::::<" 	1 r.   c                 ~    [         R                  " / SQSS5      n[         R                  " / SQ5      n[        X5        g )Nr0  r2   r   )r2   rH   rH   r2   r   r   r2   rw  r   s      r+   r1  TestSymmetric.test_check_01  s+    FF9a-HH*+1 r.   c                 ~    [         R                  " / SQSS5      n[         R                  " / SQ5      n[        X5        g )Nr0  r   r   )	r   r2   rH   rH   r2   r   r   r2   rH   rw  r   s      r+   r4  TestSymmetric.test_check_02  s+    FF9a-HH011 r.   c                 ~    [         R                  " / SQSS5      n[         R                  " / SQ5      n[        X5        g )Nr0  r>   r   )rH   r2   r   r   r2   rH   rH   r2   r   r   r2   rH   rH   r2   r   rw  r   s      r+   r7  TestSymmetric.test_check_03$  s+    FF9a-HHBC1 r.   rX   N)rY   rZ   r[   r\   r  r%  r*  rZ  r-  r1  r4  r7  r]   rX   r.   r+   rQ  rQ    s*    !0!0!0!.!,!
!
!r.   rQ  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestWrapi*  c                     [         R                  " S5      n[         R                  " USS5      n[         R                  " / SQ5      n[	        X5        g )Nr   r   r   )r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   r   rH   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r  rv   r  r   r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  r   r   rH   r2   r   r0   rd   r>   r   r   rI   r    r   r=   r   r   r   r   r   r   r   rI  r   s      r+   r  TestWrap.test_check_simple+  s>    IIcNFF1h'HH5& 	1 r.   c                 f   [         R                  " S5      n[         R                  " US5      n[         R                  " USS5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X5        g )Nr=   r  )r    r=   r   )r    r   r   rI   r    r   r   rI   r    r   r   rI   r    r   r   rI   r    r   r   rI   r    r   r   rI   r    r   )r2   r   r   rH   r2   r   r   rH   r2   r   r   rH   r2   r   r   rH   r2   r   r   rH   r2   r   r   rH   r2   r   )r>   r   r0   rd   r>   r   r0   rd   r>   r   r0   rd   r>   r   r0   rd   r>   r   r0   rd   r>   r   r0   rd   r>   r   r  r   s      r+   r*  TestWrap.test_check_large_padC  s    IIbMJJq&!FF1h'HH.)).)).)).)).)).)).)).)).e3/5l 	1 r.   c                 ~    [         R                  " / SQSS5      n[         R                  " / SQ5      n[        X5        g )Nr0  r   r   )	rH   r2   r   rH   r2   r   rH   r2   r   rw  r   s      r+   r1  TestWrap.test_check_01  s+    FF9a(HH011 r.   c                 ~    [         R                  " / SQSS5      n[         R                  " / SQ5      n[        X5        g )Nr0  r0   r   )r   rH   r2   r   rH   r2   r   rH   r2   r   rH   rw  r   s      r+   r4  TestWrap.test_check_02  s+    FF9a(HH671 r.   c                     [         R                  " S5      n[         R                  " USSS9n[        XS S2S S24   5        g )Nrq  )r   rd   r   rf   r  )r"   rU   ri   r   r   s      r+   test_pad_with_zeroTestWrap.test_pad_with_zero  s9    GGFOFF1f6*1SbSk*r.   c                 <   [         R                  " S5      n[         R                  " USSS9n[        [         R                  XX4   SS U5        [         R                  " S5      n[         R                  " USSS9n[        [         R                  XX4   SS U5        g)	za
Check wrapping on each side individually if the wrapped area is longer
than the original array.
rd   )r=   r   r   rf   r   N)r   r=   rF   )r"   r?   ri   r   r_r   s      r+   test_repeated_wrappingTestWrap.test_repeated_wrapping  s~    
 IIaLFF1gF+255q,QR0!4IIaLFF1gF+255q,Sb115r.   c           	          [         R                  " S5      R                  SS5      n[         R                  " USS/SS9n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X5        g	)
zv
Assert that 'wrap' pads only with multiples of the original area if
the pad width is larger than the original array.
r0   r2   r  r   rH   r   rf   )r   r2   r   r2   r   r2   )rH   r   rH   r   rH   r   Nr  r   s      r+   &test_repeated_wrapping_multiple_origin/TestWrap.test_repeated_wrapping_multiple_origin  sd    
 IIaL  A&FF1vv&V4HH!
 	1 r.   rX   N)rY   rZ   r[   r\   r  r*  r1  r4  ro  rs  rw  r]   rX   r.   r+   re  re  *  s&    !0:!x!
!
+
6!r.   re  c                        \ rS rSrS rS rSrg)TestEdgei  c                    [         R                  " S5      n[         R                  " US5      n[         R                  " USS5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/	5      n[        X5        g 	Nr=   r0   r   r  r   )r   r   r   r   rH   r2   r2   r2   )r   r   r   r   r0   rd   rd   rd   )r>   r>   r>   r>   r   r   r   r   )rI   rI   rI   rI   r    r   r   r   r  r   s      r+   r  TestEdge.test_check_simple  sj    IIbMJJq&!FF1&/HH%%%%%))))
+ 	1 r.   c                    [         R                  " / SQ5      n[         R                  " USS5      n[         R                  " / SQ5      n[        X#5        [         R                  " / SQ/ SQ/5      n[         R                  " USS5      n[         R                  " USS5      n[        X#5        [         R                  " S5      R                  SS	S
5      n[         R                  " USS5      n[         R                  " USS5      n[        X#5        g )Nr0  )r  r   )rH   rH   r2   r   r   r   ru  r  r  r2   r   r0   )r  r  r  )r"   r#   ri   r   r?   r@   )r&   r1   paddedr'   s       r+   test_check_width_shape_1_2#TestEdge.test_check_width_shape_1_2  s     HHY9f-88./6,HHi+,9f-66!-v66,IIbM!!!Q*9f-66!5v>6,r.   rX   N)rY   rZ   r[   r\   r  r  r]   rX   r.   r+   rz  rz    s    !&-r.   rz  c                        \ rS rSrS rS rSrg)	TestEmptyi  c                     [         R                  " S5      R                  SS5      n[         R                  " USS/SS9nUR                  S:X  d   e[        XS	S
2SS24   5        g )Nr  r0   r>   rT   rv  r   rf   )rI   r    r2   rF   r   r~  r"   r?   r@   ri   rh   r   r  s      r+   test_simpleTestEmpty.test_simple  s^    iim##Aq)ff-G<||w&&&S2qt,-r.   c                     [         R                  " S5      n[         R                  " U/ SQSS9nUR                  S:X  d   eg )Nr  r  r   rf   r  r  r  s      r+   r  "TestEmpty.test_pad_empty_dimension  s5    hhy!/g>||y(((r.   rX   N)rY   rZ   r[   r\   r  r  r]   rX   r.   r+   r  r    s    .)r.   r  c            	          S n [         R                  " S5      R                  SS5      n[         R                  " USU 5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/5      n[        X5        g )Nc                 $    SU S US   & SXS   * S & g )Nr    r   rH   rX   )vectorr  iaxiskwargss       r+   _padwithtens6test_legacy_vector_functionality.<locals>._padwithtens  s"     "}	!!#!}~r.   r>   r2   r   )r    r    r    r    r    r    r    )r    r    r   rH   r2   r    r    )r    r    r   r0   rd   r    r    r  )r  r1   r   s      r+    test_legacy_vector_functionalityr    sd    $ 			!Q"A
q!\"A
	%	%	%	%	%	%	'		
A qr.   c                  x    [         R                  " S/SSS9n [         R                  " / SQ5      n[        X5        g )NrH   r2   r   rf   )r   r   rH   r   r   rw  )r1   r   s     r+   test_unicode_moder    s,    
sAJ'A
!Aqr.   ra   )r   r   r   r   c                     [         R                  " SS S9nSn[         R                  " SS S9n[        [         R                  " XU S9U5        g )Nr}  )
fill_valuer  )rI   r   rf   )r"   r  r   ri   )ra   r1   rm   r   s       r+   test_object_inputr    s>     	4(AG
4(Arvvat4a8r.   c                   2   \ rS rSr\R
                  R                  S/ SQ5      \R
                  R                  S\R                  5       5      S 5       5       r	\R
                  R                  S\R                  5       5      S 5       r
\R
                  R                  S/ SQ5      \R
                  R                  S\R                  5       5      S 5       5       r\R
                  R                  S	S
SS\" 5       S4SS\4\" SS5      S4S/5      \R
                  R                  S\R                  5       5      S 5       5       rS r\R
                  R                  S/ SQ5      \R
                  R                  S\R                  5       5      S 5       5       rSrg)TestPadWidthi  r  ))r0   rd   r>   r   )r  r  r  )r  r  )rd   r>   ))r   r0   rd   )r   rH   r2   ra   c                     [         R                  " S5      R                  S5      nSn[        R                  " [
        US9   [         R                  " X1U5        S S S 5        g ! , (       d  f       g = f)Nrv   r  z(operands could not be broadcast togetherrK   r  r&   r  ra   r  rL   s        r+   test_misshaped_pad_width%TestPadWidth.test_misshaped_pad_width  sI     iim##F+:]]:U3FF34( 433   A""
A0c                     [         R                  " S5      R                  S5      nSn[        R                  " [
        US9   [         R                  " USU5        S S S 5        g ! , (       d  f       g = f)Nrv   r  zDinput operand has more dimensions than allowed by the axis remappingrK   ))r  )r0   )rd   )r  r  r  r  )r&   ra   r  rL   s       r+   test_misshaped_pad_width_2'TestPadWidth.test_misshaped_pad_width_2  sL    iim##F+]]:U3FF3@$G 433s   A##
A1r  c                     [         R                  " S5      R                  S5      nSn[        R                  " [
        US9   [         R                  " X1U5        S S S 5        g ! , (       d  f       g = f)Nrv   r  r  rK   r  r  s        r+   test_negative_pad_width$TestPadWidth.test_negative_pad_width  sI     iim##F+5]]:U3FF34( 433r  zpad_width, dtype)3N)wordNr6   N)g333333@N))r2   r   r0   r  rH   r~  )))g r   r  Nc           	      f   [         R                  " S5      R                  S5      nSnUbM  [        R                  " [
        US9   [         R                  " U[         R                  " XS9U5        S S S 5        g [        R                  " [
        US9   [         R                  " XAU5        S S S 5        [        R                  " [
        US9   [         R                  " U[         R                  " U5      U5        S S S 5        g ! , (       d  f       g = f! , (       d  f       Nn= f! , (       d  f       g = f)Nrv   r  z%`pad_width` must be of integral type.rK   rD   )r"   r?   r@   rN   rO   	TypeErrorri   r#   )r&   r  rE   ra   r  rL   s         r+   test_bad_typeTestPadWidth.test_bad_type#  s     iim##F+7y6sBHHY<dC 76 y6st, 7y6sBHHY/6 76 76 7666s$   +D D
-D" 
D
D"
D0c                 .   [         R                  " S5      n[         R                  " US5      n[         R                  " U[         R                  " S5      S5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/	5      n[        X5        g r|  r  r   s      r+   test_pad_width_as_ndarray&TestPadWidth.test_pad_width_as_ndarray;  ss    IIbMJJq&!FF1bhh/0&9HH000000000
2 	1 r.   )r   re   )re   re   c           	          [         R                  " S5      R                  SS5      n[        U[         R                  " X1US95        g )Nrv   r>   rd   rf   )r"   r?   r@   r   ri   )r&   r  ra   r  s       r+   test_zero_pad_width TestPadWidth.test_zero_pad_widthN  s3     iim##Aq)3sD ABr.   rX   )rY   rZ   r[   r\   rN   ry   rz   r{   r|   r  r  r  r$   r
   r  r  r  r]   rX   r.   r+   r  r    s   [[[ +  [[VZ__%67) 8) [[VZ__%67H 8H [[KM[[VZ__%67) 8M) [[/	4	f%	B#	2 	 [[VZ__%677 8	7!& [[[*GH[[VZ__%67C 8 ICr.   r  c                    [         U    n0 n[         R                  5        H  nX1:w  d  M
  UR                  U5        M     [        R                  " / SQSU 40 UD6  UR                  5        HT  u  pESR                  U 5      n[        R                  " [        US9   [        R                  " / SQSU 40 XE0D6  SSS5        MV     g! , (       d  f       Mh  = f)z1Test behavior of pad's kwargs for the given mode.r0  rH   z+unsupported keyword arguments for mode '{}'rK   N)
r{   valuesupdater"   ri   itemsformatrN   rO   rP   )ra   allowednot_allowedr  keyvaluerL   s          r+   test_kwargsr  U  s     GK##%v& & FF9a))!'')
=DDTJ]]:U3FF9a6#6 43 *33s   C
C	c                  z    [         R                  " SS/5      n [        [         R                  " U S5      / SQ5        g )NrH   r2   )r   r   rH   rH   r   r   )r"   r#   r   ri   )r  s    r+   test_constant_zero_defaultr  f  s)    
((Aq6
Crvvc1~'9:r.   rH   constTFc                     SR                  U 5      n[        R                  " [        US9   [        R
                  " / SQSU S9  S S S 5        g ! , (       d  f       g = f)Nzmode '{}' is not supportedrK   r0  r0   rf   )r  rN   rO   rP   r"   ri   )ra   rL   s     r+   test_unsupported_moder  k  s<    '..t4E	z	/
y!$' 
0	/	/s   A
Ac                     [         R                  " S5      R                  SS5      S S S2S S S24   n[         R                  " USU 5      nUR                  S:X  d   e[        USS2SS24   U5        g )Nr  r0   r>   r2   rT   )r   r   rF   r  )ra   r  r)   s      r+   test_non_contiguous_arrayr  r  sl    
))B-

1
%cc3Q3h
/CVVC&F<<6!!!"ad
#S)r.   c                    [         R                  " SSS9n[         R                  " USU 5      R                  S   (       d   e[         R                  " SSS9n[         R                  " USU 5      R                  S   (       d   eg)	z5Test if C and F order is preserved for all pad modes.)rd   r    C)orderrd   C_CONTIGUOUSFF_CONTIGUOUSN)r"   rU   ri   flags)ra   r(   s     r+   test_memory_layout_persistencer  z  sf     	s#A66!Q##N333
s#A66!Q##N333r.   rE   c                 ~    [         R                  " SU S9n[         R                  " USUS9nUR                  U :X  d   eg )N)r   r2   rH   rD   rH   rf   )r"   r  ri   rE   )rE   ra   r  r)   s       r+   test_dtype_persistencer    s8     ((9E
*CVVC&F<<5   r.   )'rN  rN   numpyr"   numpy.testingr   r   r   numpy.lib._arraypad_implr   _coresctypesr  r{   r   r_   r~   r  r  r  rG  rQ  re  rz  r  r  r  ry   rz   r  r  r|   r  r  r$   r  r  r  r  rX   r.   r+   <module>r     s     K K . HHVhhuhhw  	hhy!"  #A& !$t$D!d#t$' &)
P* P*fM M,f: f:Rp) p)fR' R'jO! O!d) )0C! C!L@! @!F$- $-N
) 
)( !IJ9 K9NC NCb !237 47 ;
 !WfhdE!JK( L( !23* 4* !234 44 /2!23! 4 3!r.   