o
    h                      @   s  d Z ddlZddlZddlmZmZmZ ddlm	Z	 ej
jd ej
jd  ej
jd  ej
jd  Zd	dii d
diddiddiddiddiddiddii i dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd  d ZG d!d" d"ZG d#d$ d$Zd%d& Zd'd( Zejd)g d*d+d, ZG d-d. d.Zejd)e d/d0 Z d1d2 Z!ejd)d3d4e" dd5d6gd7d8 Z#ejd)e d9d: Z$ejd)e d;d< Z%ejd=eejd)e d>d? Z&dS )@z(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                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestAsPairsc                 C   sh   t ddggd }ddgdggfD ]}t|d}t|| qt }tt|dt ||ggd  dS )z Test casting for a single value.   
   Nnparrayr   r   objectselfexpectedxresultobj r'   q/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/numpy/lib/tests/test_arraypad.pytest_single_value!   s   
zTestAsPairs.test_single_valuec                 C   s   t ddggd }ddgddggfD ]}t|d}t|| qt }ttd|gdt d|ggd  ttdgdggdt ddgddgg ttdg|ggdt ddg||gg dS )z-Test proper casting for two different values.r      r   a   Nr   r!   r'   r'   r(   test_two_values.   s"   
zTestAsPairs.test_two_valuesc                 C   s0   d}t td ddd| t td ddd| d S )N)NNr.   r.   r   Fas_indexT)r   r   r"   r#   r'   r'   r(   test_with_noneG   s   zTestAsPairs.test_with_nonec                 C   s$   t dd}tt|d| dS )z?Test if `x` already matching desired output are passed through.   )   r,   r4   N)r   arangereshaper   r   r1   r'   r'   r(   test_pass_throughR   s
   zTestAsPairs.test_pass_throughc              
   C   s   t tddgdddtjddggd tjd t tddgdddtjdd	ggd tjd d
d
gd
ggd
d	gddgd
d	ggd	d
ggddggd ddgg fD ] }tjtdd t|ddd W d   n1 sjw   Y  qOdS )z Test results if `as_index=True`.g@gffffff
@r   Tr/   r   dtypeg(\@r*      r,   	   znegative valuesmatchN)r   r   r   r   intppytestraises
ValueError)r"   r$   r'   r'   r(   test_as_indexZ   s    (zTestAsPairs.test_as_indexc                 C   s   t jtdd tdgggd W d   n1 sw   Y  t jtdd tddgdd	ggd W d   n1 s<w   Y  t jtdd ttd
d W d   dS 1 s\w   Y  dS )z"Ensure faulty usage is discovered.zmore dimensions than allowedr?   r   r   Nzcould not be broadcastr<   r,   r*   r,   r   )rB   rC   rD   r   r   ones)r"   r'   r'   r(   test_exceptionsi   s   "zTestAsPairs.test_exceptionsN)	__name__
__module____qualname__r)   r-   r2   r7   rE   rH   r'   r'   r'   r(   r       s    r   c                   @   sZ   e Zd Zejde dd Zejdg ddd Z	ejdg ddd Z
d	S )
TestConditionalShortcutsmodec                 C   s>   t dddd}dd |jD }t|t j|||d d S )Nx   r*      r4   c                 S      g | ]}d qS )r   r   r'   .0_r'   r'   r(   
<listcomp>w       zHTestConditionalShortcuts.test_zero_padding_shortcuts.<locals>.<listcomp>rM   r   r5   r6   shaper   padr"   rM   testpad_amtr'   r'   r(   test_zero_padding_shortcutst   s   z4TestConditionalShortcuts.test_zero_padding_shortcuts)r   r   r   r   c                 C   sL   t dddd}dd |jD }tt j||ddt j|||d	d
 d S )NrN   r*   rO   r4   c                 S   rP   )r<   r<   r'   rR   r'   r'   r(   rU   }   rV   zITestConditionalShortcuts.test_shallow_statistic_range.<locals>.<listcomp>r   rW   r<   rM   r   rX   r[   r'   r'   r(   test_shallow_statistic_rangez   s
   z5TestConditionalShortcuts.test_shallow_statistic_rangec                 C   sJ   t ddd}dd |jD }tt j|||dt j|||dd d S )N   rO   r4   c                 S   rP   ))r   r   r'   rR   r'   r'   r(   rU      rV   zFTestConditionalShortcuts.test_clip_statistic_range.<locals>.<listcomp>rW   r`   rX   r[   r'   r'   r(   test_clip_statistic_range   s
   z2TestConditionalShortcuts.test_clip_statistic_rangeN)rI   rJ   rK   rB   markparametrize
_all_modeskeysr^   ra   rc   r'   r'   r'   r(   rL   s   s    

rL   c                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zejdg ddd Zejdg dejdg d d!d" Zd#d$ Zejd%ejd&ejdd'd(gd)d* Zejdd+d,gd-d. Zd/S )0TestStatisticc                 C   s>   t dd}t j|dddd}t g d}t|| d S )Nd   f)      r   )rF   r   )      ?ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro                 ?       @      @      @      @      @      @       @      "@      $@      &@      (@      *@      ,@      .@      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   r5   astyperZ   r   r   r"   r+   br'   r'   r(   test_check_mean_stat_length   s   z)TestStatistic.test_check_mean_stat_lengthc                 C   4   t d}t |dd}t g d}t|| d S )Nri   rk   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   r<   r,   r   r*   rO   r4         r=   r      r3                        rm               rl               rb          !   "   #   $   %   &   '   (   )   *   +   ,   -   .   /   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   r5   rZ   r   r   r   r'   r'   r(   test_check_maximum_1      
z"TestStatistic.test_check_maximum_1c                 C   8   t dd }t |dd}t g d}t|| d S )Nri   r<   rk   r   )ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   r<   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   rm   r   r   r   r   rl   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   r1  r   r'   r'   r(   test_check_maximum_2      z"TestStatistic.test_check_maximum_2c                 C   <   t dd }t j|dddd}t g d}t|| d S )Nri   r<   rk   r   r   rn   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   rm   r   r   r   r   rl   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   r1  r   r'   r'   r(   test_check_maximum_stat_length      z,TestStatistic.test_check_maximum_stat_lengthc                 C   r   )Nri   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   rm   r   r   r   r   rl   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1  r   r'   r'   r(   test_check_minimum_1   r3  z"TestStatistic.test_check_minimum_1c                 C   r4  )Nri   r,   rk   r   )r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   rm   r   r   r   r   rl   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r   ri   e   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r1  r   r'   r'   r(   test_check_minimum_2  r6  z"TestStatistic.test_check_minimum_2c                 C   r7  )Nri   r<   rk   r   r   rn   )r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   rm   r   r   r   r   rl   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r   ri   r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r1  r   r'   r'   r(   test_check_minimum_stat_length  r9  z,TestStatistic.test_check_minimum_stat_lengthc                 C   :   t dd}t |dd}t g d}t|| d S )Nri   rj   rk   r        H@rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  r   r   r'   r'   r(   test_check_median2     zTestStatistic.test_check_medianc                 C   s`   t g dg dg dg}t |dd}t g dg dg dg d	g dg}t|| d S )
Nr   r<   r*   r*   rO   r=   r=   r   r,   r<   r   )r*   r*   rO   r*   r*   r   r   r<   r*   r   rO   r*   rO   r=   rO   r   r=   r   r,   r   )r   r   rZ   r   r   r'   r'   r(   test_check_median_01J  s   	z"TestStatistic.test_check_median_01c                 C   sd   t g dg dg dg}t |jddj}t g dg dg dg d	g dg}t|| d S )
NrD  rE  rF  r<   r   )rO   r*   rO   r*   rO   rG  rH  rI  )r   r   rZ   Tr   r   r'   r'   r(   test_check_median_02X  s   	z"TestStatistic.test_check_median_02c                 C   sN   t dd}d|d< d|d< t j|ddd	d
}t g d}t|| d S )Nri   rj   rr   r<   r   r/  rk   r   r   rO   rn   )rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rp   rr   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r'   r'   r(   test_check_median_stat_lengthf  s   z+TestStatistic.test_check_median_stat_lengthc                 C   s   g dg}t j|dddd}t g dg dg dg dg dg dg dg dg dg dg dg dg dg}t|| d S )Nr*   rO   r4   rO   r   r   r,   rn   )r*   r*   r*   r*   r*   r*   rO   r4   r4   r4   r4   r4   r4   r4   r4   r   rZ   r   r   r   r'   r'   r(   test_check_mean_shape_one  s&   
z'TestStatistic.test_check_mean_shape_onec                 C   r?  )Nri   rj   rk   r   r@  r   r   r'   r'   r(   test_check_mean_2  rC  zTestStatistic.test_check_mean_2rM   )r   r   r   r   c                 C   sF   t g dt jg dt jd }t |d|}t|d |d  dS )z3 Test that appended and prepended values are equal )r,   rT  )r   g-q=r   r8   r_   r   rT  N)r   r   float64rZ   r   )r"   rM   r+   r'   r'   r(   test_same_prepend_append  s   "
z&TestStatistic.test_same_prepend_appendr   r>   )r>   )r   rT  ))rO   r,   )r>   r   ))r;   r,   c                 C   sZ   t dd}d}tjt|d t j|d||d W d    d S 1 s&w   Y  d S )Nrb   r4   rO   #index can't contain negative valuesr?   r,   rn   r   r5   r6   rB   rC   rD   rZ   )r"   rM   r   arrr@   r'   r'   r(   test_check_negative_stat_length  s
   "z-TestStatistic.test_check_negative_stat_lengthc                 C   s   t d}t |d}t j|dddd}t g dg dg dg dg d	g d
g dg dg dg dg dg}t|| d S )Nrb   rY  rF   r   r,   r   r   r`   )
r4   r4   r4   rO   r4   r   r   r=   r   r   )
r<   r<   r<   r   r<   r,   r   r*   r   r   )
r   r   r   r   r   r3   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   rm   r   r   r   r   r   r   )
r   r   r   rl   r   r   r   r   r   r   r   r5   r6   rZ   r   r   r   r'   r'   r(   test_simple_stat_length  s$   
z%TestStatistic.test_simple_stat_lengthz)ignore:Mean of empty slice:RuntimeWarningzCignore:invalid value encountered in( scalar)? divide:RuntimeWarningr   r   c                 C   s>   t jddgd|dd}t t jddt jt jg}t|| d S )Nrq   rr   r<   r,   r   rn   )r   rZ   r   nanr   )r"   rM   r\  r#   r'   r'   r(   test_zero_stat_length_valid  s   z)TestStatistic.test_zero_stat_length_validr   r   c                 C   s  d}t jt|d tjddgd|dd W d    n1 sw   Y  t jt|d tjddgd|dd W d    n1 sAw   Y  t jt|d tjddgd|dd W d    n1 scw   Y  t jt|d tjddgd|dd W d    d S 1 sw   Y  d S )	Nz,stat_length of 0 yields no value for paddingr?   rq   rr   r   rn   )r<   r   r<   )rB   rC   rD   r   rZ   r"   rM   r@   r'   r'   r(   test_zero_stat_length_invalid  s   "z+TestStatistic.test_zero_stat_length_invalidN)rI   rJ   rK   r   r2  r5  r8  r;  r=  r>  rB  rJ  rL  rN  rR  rS  rB   rd   re   rV  r]  rb  filterwarningsre  rg  r'   r'   r'   r(   rh      s<    

rh   c                   @   s\   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd ZdS )TestConstantc                 C   8   t d}t j|dddd}t g d}t|| d S )Nri   rk   r   )r   rm   r
   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   rm   r   r   r   r   rl   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   r1  r   r'   r'   r(   test_check_constant     
z TestConstant.test_check_constantc                 C   r   )Nri   rk   r   r:  r1  r   r'   r'   r(   test_check_constant_zeros  r3  z&TestConstant.test_check_constant_zerosc                 C   sl   t ddd}t j|dddd}t g dg d	g d
g dg dg dg dg dg}t|| d S )Nrb   rO   r4   rc  r   皙?rM   r
   )	r<   r<   r<   r<   r<   r<   r<   r<   r<   )	r<   r   r<   r,   r   r*   rO   r<   r<   )	r<   r4   r   r   r=   r   r   r<   r<   )	r<   r3   r   r   r   r   r   r<   r<   )	r<   r   r   rm   r   r   r   r<   r<   )	r<   r   rl   r   r   r   r   r<   r<   r   r5   r6   rZ   r   r   r"   r\  r\   r#   r'   r'   r(   test_check_constant_float#  s    
z&TestConstant.test_check_constant_floatc                 C   sx   t ddd}|t j}t j|dddd}t g dg d	g d
g dg dg dg dg dg}t|| d S )Nrb   rO   r4   rc  rc  r   ro  rp  )	ro  ro  ro  ro  ro  ro  ro  ro  ro  )	ro  rp   rq   rr   rs   rt   ru   ro  ro  )	ro  rv   rw   rx   ry   rz   r{   ro  ro  )	ro  r|   r}   r~   r   r   r   ro  ro  )	ro  r   r   r   r   r   r   ro  ro  )	ro  r   r   r   r   r   r   ro  ro  r   r5   r6   r   rU  rZ   r   r   )r"   r\  	arr_floatr\   r#   r'   r'   r(   test_check_constant_float27  s"   
z'TestConstant.test_check_constant_float2c                 C   s<   t jdtd}t j|dddd}t g d}t|| d S )Nri   r8   rk   r   )皙333333rk  )rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  r   r<   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   rm   r   r   r   r   rl   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r   ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  )r   r5   r   rZ   r   r   r   r'   r'   r(   test_check_constant_float3L  r9  z'TestConstant.test_check_constant_float3c              
   C   sf   t ddd}t j|dddd}t g dg d	g d
g dg dg dg dg}t|| d S )Nrb   rO   r4   )r<   rX  r   r   rp  )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r<   r,   r   r*   rO   r   r   )
r   r   r4   r   r   r=   r   r   r   r   )
r   r   r3   r   r   r   r   r   r   r   )
r   r   r   r   rm   r   r   r   r   r   )
r   r   r   rl   r   r   r   r   r   r   rq  rr  r'   r'   r(   "test_check_constant_odd_pad_amountd  s   
z/TestConstant.test_check_constant_odd_pad_amountc                 C   sZ   t ddd}t j|dddd}t g dg dg d	g d
g d
g}t|| d S )Nr*   r,   )rc  r<   r   r   )rc  r   r*   rp  )r   r<   r<   r*   r*   r*   )r   r   r<   r*   r*   r*   )r   r,   r   r*   r*   r*   )r   r,   r,   r*   r*   r*   rq  rr  r'   r'   r(   test_check_constant_pad_2du  s   
z'TestConstant.test_check_constant_pad_2dc                 C   s   d}t jd|t jd}t j|dd| d}t jd|t jd}t|| d}t jd|t jd}t j|dd| d}t jd|t jd}t|| d S )	Nl    rO   r8   r<   r   rp  r   l    )r   fulluint64rZ   minr   int64)r"   
uint64_maxr\  r\   r#   	int64_maxr'   r'   r(   test_check_large_integers  s   
z&TestConstant.test_check_large_integersc                 C   sr   t jdtd}t }||d< t }t }t j|dd||fd}t jdtd}||d< ||d< ||d< t|| d S )Nr<   r8   r   r   )	pad_widthrM   r
   r`  r,   )r   r   r    rZ   r   )r"   r\  obj_aobj_bobj_cr#   r'   r'   r(   test_check_object_array  s   
z$TestConstant.test_check_object_arrayc                 C   0   t d}t j|g ddd}|jdksJ d S )Nr   r   r,   r   rX  r{  r   rW   r   r*   r*   r   zerosrZ   rY   r"   r\  r%   r'   r'   r(   test_pad_empty_dimension     
z%TestConstant.test_pad_empty_dimensionN)rI   rJ   rK   rl  rn  rs  rw  rz  r|  r  r  r  r  r'   r'   r'   r(   ri    s    ri  c                   @   sR   e Zd Zdd Zdd Zejjefddd Z	dd	 Z
ejd
edd ZdS )TestLinearRampc                 C   sD   t dd}t j|dddd}t g d}t||ddd	 d S )
Nri   rj   rk   r   )r*   rO   )r   )rt   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?rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   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#@ru   gh㈵>)rtolatol)r   r5   r   rZ   r   r   r   r'   r'   r(   test_check_simple  s   z TestLinearRamp.test_check_simplec                 C   st   t dddt j}t j|dddd}t g dg d	g d
g dg dg dg dg dg}t|| d S )Nrm   r*   rO   )r,   r,   r   rQ   rM   r   )	rp   rp   rp   rp   rp   rp   rp   rp   rp   )	rp   rp   rp   ro   rq   g      ?rr   rq   rp   )	rp   rp   rp   rq   rr   rs   rt   rr   rp   )	rp   g      @ru   rv   rw   rx   ry   g      @rp   )	rp   ru   rz   r{   r|   r}   r~   rw   rp   )	rp         @r   r   r   r   r         #@rp   )	rp   g      @r  rx   g      !@ry   r  g      @rp   ru  rr  r'   r'   r(   test_check_2d  s   	zTestLinearRamp.test_check_2d)
exceptionsc                 C   s   ddl m} t|dd|ddg}tj|dddd}t|dd	|d
d	|dd	|dd	|dd	|dd	|dd	g}t|| d S )Nr   )Fractionr<   r,   rT  rF   r   r  r3   r   r4   r;   r>   )	fractionsr  r   r   rZ   r   )r"   r  r\  actualr#   r'   r'   r(   test_object_array  s   	z TestLinearRamp.test_object_arrayc                 C   sz   t jt dddddd}t|dddf d	 t|ddd
f d	 t|dddf d	 t|d
ddf d	 dS )z!Ensure that end values are exact.r   r,   rO   )   {   r   rW   Nr   rp   rT  )r   rZ   rG   r6   r   )r"   r+   r'   r'   r(   test_end_values  s
   zTestLinearRamp.test_end_valuesr9   c                 C   s   t jdg|d}t j|dddd}t jg d|d}t|| t jdg|d}t j|dddd}t jg d|d}t|| dS )	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   r8   r   r   r  )r   r<   r,   r   r,   r<   r   )r   r,   r<   r   r<   r,   r   N)r   r   rZ   r   )r"   r9   r$   r%   r#   r'   r'   r(   test_negative_difference  s   
z'TestLinearRamp.test_negative_differenceN)rI   rJ   rK   r  r  rB   rd   xfailAssertionErrorr  r  re   _numeric_dtypesr  r'   r'   r'   r(   r    s    
r  c                   @   sd   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd ZdS )TestReflectc                 C   r   )Nri   rk   r   )rl   r   r   r   r   rm   r   r   r   r   r   r   r   r3   r   r   r=   r   r   r4   rO   r*   r   r,   r<   r   r<   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   rm   r   r   r   r   rl   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r   r0  r/  r.  r-  r,  r+  r*  r)  r(  r'  r&  r%  r$  r#  r"  r!  r   r  r  r  r1  r   r'   r'   r(   r    r3  zTestReflect.test_check_simplec                 C   rj  )Nri   rk   r   oddr   )ir  r;   r:   r>   rT  r   r<   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   rm   r   r   r   r   rl   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r   ri   r<  f   g   h   i   j   k   l   m   n   o   p   q   r   s   t   u   v   w   r1  r   r'   r'   r(   test_check_odd_method  rm  z!TestReflect.test_check_odd_methodc                 C   s   g dg dg}t |dd}t g dg dg dg dg dg dg dg dg dg dg dg dg dg dg}t|| d S )NrO  r4   r   r   rP  r   )r   r4   r   r   r   r4   r   r   r   r4   r   r   r   r4   r   rO   r*   rO   r4   rO   r*   rO   r4   rO   r*   rO   r4   rO   r*   rO   rQ  r   r'   r'   r(   test_check_large_pad+  s(   z TestReflect.test_check_large_padc                 C   ~   g dg}t |dd}t g dg dg dg dg dg dg dg dg dg dg dg dg dg}t|| d S )NrO  rP  r   r  rQ  r   r'   r'   r(   test_check_shapeB  s&   
zTestReflect.test_check_shapec                 C   .   t g ddd}t g d}t|| d S )Nr<   r,   r   r,   r   )r   r,   r<   r,   r   r,   r<   rQ  r   r'   r'   r(   test_check_01X     zTestReflect.test_check_01c                 C   r  )Nr  r   r   )	r,   r   r,   r<   r,   r   r,   r<   r,   rQ  r   r'   r'   r(   test_check_02]  r  zTestReflect.test_check_02c                 C   r  )Nr  r*   r   )r<   r,   r   r,   r<   r,   r   r,   r<   r,   r   rQ  r   r'   r'   r(   test_check_03b  r  zTestReflect.test_check_03c                 C   2   t g dddgd}t g d}t|| d S )Nr  r<   r   r   )r,   r<   r,   r   r,   r<   r,   r   r,   r<   r,   r   r,   r<   rQ  r   r'   r'   r(   test_check_04g  s   zTestReflect.test_check_04c                 C   r  )Nr<   r,   r   r*   r   r   r   );r*   r   r,   r<   r,   r   r*   r   r,   r<   r,   r   r*   r   r,   r<   r,   r   r*   r   r,   r<   r,   r   r*   r   r,   r<   r,   r   r*   r   r,   r<   r,   r   r*   r   r,   r<   r,   r   r*   r   r,   r<   r,   r   r*   r   r,   r<   r,   r   r*   r   r,   r<   r,   rQ  r   r'   r'   r(   test_check_05l  
   zTestReflect.test_check_05c                 C   r  )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   rQ  r   r'   r'   r(   test_check_06w  s
   zTestReflect.test_check_06c                 C   r  )N)r<   r,   r   r*   rO   r4   r   r   r   )6r*   rO   r4   r4   rO   r*   r   r,   r<   r<   r,   r   r*   rO   r4   r4   rO   r*   r   r,   r<   r<   r,   r   r*   rO   r4   r4   rO   r*   r   r,   r<   r<   r,   r   r*   rO   r4   r4   rO   r*   r   r,   r<   r<   r,   r   r*   rO   r4   r4   rO   r*   rQ  r   r'   r'   r(   test_check_07  r  zTestReflect.test_check_07N)rI   rJ   rK   r  r  r  r  r  r  r  r  r  r  r  r'   r'   r'   r(   r    s    	r  c                   @   sP   e Zd ZdZejdee	 ddh dd Z
ejde	 dd Zd	S )
TestEmptyArrayz<Check how padding behaves on arrays with an empty dimension.rM   r   r   c                 C   s   d}t jt|d tjg d|d W d    n1 sw   Y  t jt|d tjtdd|d W d    n1 s>w   Y  t jt|d tjtdd|d W d    d S 1 saw   Y  d S )NzFcan't extend empty axis 0 using modes other than 'constant' or 'empty'r?   r*   rW   r   )r   r   )r{  r  )rB   rC   rD   r   rZ   ndarrayr  rf  r'   r'   r(   r    s   "z'TestEmptyArray.test_pad_empty_dimensionc                 C   s(   t jt dd|d}|jdksJ d S )N)r,   r   r,   )r`  r  r{  rW   )r   r   r*   )r   rZ   rG   rY   )r"   rM   r%   r'   r'   r(   test_pad_non_empty_dimension  s   z+TestEmptyArray.test_pad_non_empty_dimensionN)rI   rJ   rK   __doc__rB   rd   re   sortedrf   rg   r  r  r'   r'   r'   r(   r    s    

r  c                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )TestSymmetricc                 C   r   )Nri   rk   r   )r   r   r   r   rm   r   r   r   r   r   r   r   r3   r   r   r=   r   r   r4   rO   r*   r   r,   r<   r   r   r<   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   rm   r   r   r   r   rl   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r   r   r0  r/  r.  r-  r,  r+  r*  r)  r(  r'  r&  r%  r$  r#  r"  r!  r   r  r  r1  r   r'   r'   r(   r    r3  zTestSymmetric.test_check_simplec                 C   rj  )Nri   rk   r   r  r  )r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r;   r:   r>   rT  r   r   r<   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   rm   r   r   r   r   rl   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r   r   ri   r<  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r1  r   r'   r'   r(   r    rm  z#TestSymmetric.test_check_odd_methodc                 C   s   g dg dg}t |dd}t g dg dg dg dg dg dg dg dg dg dg dg dg dg dg}t|| d S )NrO  r  rP  r   rO   r4   r4   rO   r*   r*   rO   r4   r4   rO   r*   r*   rO   r4   r4   )r   r   r   r   r4   r4   r   r   r   r   r4   r4   r   r   r   rQ  r   r'   r'   r(   r    s(   z"TestSymmetric.test_check_large_padc                 C   s   g dg dg}t j|dddd}t g dg dg dg dg d	g d	g d
g d
g dg dg dg dg dg dg}t|| d S )NrO  r  rP  r   r  r  )r:   r>   r>   rT  r   r   r<   r,   r,   r   r*   r*   rO   r4   r4   )rT  r   r   r<   r,   r,   r   r*   r*   rO   r4   r4   r   r   r   )r<   r,   r,   r   r*   r*   rO   r4   r4   r   r   r   r=   r   r   )r   r*   r*   rO   r4   r4   r   r   r   r=   r   r   r   r3   r3   )rO   r4   r4   r   r   r   r=   r   r   r   r3   r3   r   r   r   )r   r   r   r=   r   r   r   r3   r3   r   r   r   r   r   r   )r=   r   r   r   r3   r3   r   r   r   r   r   r   r   r   r   rQ  r   r'   r'   r(   test_check_large_pad_odd  s(   z&TestSymmetric.test_check_large_pad_oddc                 C   r  )NrO  rP  r   r  rQ  r   r'   r'   r(   r    s&   
zTestSymmetric.test_check_shapec                 C   r  )Nr  r,   r   )r,   r<   r<   r,   r   r   r,   rQ  r   r'   r'   r(   r    r  zTestSymmetric.test_check_01c                 C   r  )Nr  r   r   )	r   r,   r<   r<   r,   r   r   r,   r<   rQ  r   r'   r'   r(   r    r  zTestSymmetric.test_check_02c                 C   r  )Nr  r4   r   )r<   r,   r   r   r,   r<   r<   r,   r   r   r,   r<   r<   r,   r   rQ  r   r'   r'   r(   r  $  r  zTestSymmetric.test_check_03N)rI   rJ   rK   r  r  r  r  r  r  r  r  r'   r'   r'   r(   r    s    r  c                   @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )TestWrapc                 C   r   )Nri   rk   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  r   r   r<   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   rm   r   r   r   r   rl   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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  r   r   r<   r,   r   r*   rO   r4   r   r   r=   r   r   r3   r   r   r   r   r   r   r   r1  r   r'   r'   r(   r  +  r3  zTestWrap.test_check_simplec                 C   s   t d}t |d}t |dd}t g dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg dg}t|| d S )Nr3   r~  )r   r3   r   )r   r   r   r=   r   r   r   r=   r   r   r   r=   r   r   r   r=   r   r   r   r=   r   r   r   r=   r   r   )r,   r   r   r<   r,   r   r   r<   r,   r   r   r<   r,   r   r   r<   r,   r   r   r<   r,   r   r   r<   r,   r   )r4   r   r*   rO   r4   r   r*   rO   r4   r   r*   rO   r4   r   r*   rO   r4   r   r*   rO   r4   r   r*   rO   r4   r   ra  r   r'   r'   r(   r  C  s@   
6zTestWrap.test_check_large_padc                 C   r  )Nr  r   r   )	r<   r,   r   r<   r,   r   r<   r,   r   rQ  r   r'   r'   r(   r    r  zTestWrap.test_check_01c                 C   r  )Nr  r*   r   )r   r<   r,   r   r<   r,   r   r<   r,   r   r<   rQ  r   r'   r'   r(   r    r  zTestWrap.test_check_02c                 C   s8   t d}t j|ddd}t||d dd df  d S )NrM  )r   rO   r   rW   r  )r   rG   rZ   r   r   r'   r'   r(   test_pad_with_zero  s   
zTestWrap.test_pad_with_zeroc                 C   sx   t d}t j|ddd}tt j||||f dd | t d}t j|ddd}tt j||||f dd | dS )	zy
        Check wrapping on each side individually if the wrapped area is longer
        than the original array.
        rO   )r3   r   r   rW   r   N)r   r3   r:   )r   r5   rZ   r   r_r   r'   r'   r(   test_repeated_wrapping  s   
 
$zTestWrap.test_repeated_wrappingc              	   C   sb   t ddd}t j|ddgdd}t g dg dg dg dg dg dg}t|| d	S )
z
        Assert that 'wrap' pads only with multiples of the original area if
        the pad width is larger than the original array.
        r*   r,   r}  r   r<   r   rW   )r   r,   r   r,   r   r,   )r<   r   r<   r   r<   r   Nra  r   r'   r'   r(   &test_repeated_wrapping_multiple_origin  s   z/TestWrap.test_repeated_wrapping_multiple_originN)
rI   rJ   rK   r  r  r  r  r  r  r  r'   r'   r'   r(   r  *  s    <r  c                   @      e Zd Zdd Zdd ZdS )TestEdgec                 C   sr   t d}t |d}t |dd}t g dg dg dg dg dg dg dg dg dg	}t|| d S 	Nr3   r*   r   r^  r   )r   r   r   r   r<   r,   r,   r,   )r   r   r   r   r*   rO   rO   rO   )r4   r4   r4   r4   r   r   r   r   )r=   r=   r=   r=   r   r   r   r   ra  r   r'   r'   r(   r    s    
zTestEdge.test_check_simplec                 C   s   t g d}t |dd}t g d}t|| t g dg dg}t |dd}t |dd}t|| t ddd	d
}t |dd}t |dd}t|| d S )Nr  )rc  r   )r<   r<   r,   r   r   r   rO  rt  r   r,   r   r*   )rc  rc  rc  )r   r   rZ   r   r5   r6   )r"   r+   paddedr#   r'   r'   r(   test_check_width_shape_1_2  s   

z#TestEdge.test_check_width_shape_1_2N)rI   rJ   rK   r  r  r'   r'   r'   r(   r    s    r  c                   @   r  )	TestEmptyc                 C   sR   t ddd}t j|ddgdd}|jdksJ t||d	d
ddf  d S )Nr   r*   r4   rF   r  r   rW   )r=   r   r,   r:   r   rT  r   r5   r6   rZ   rY   r   r  r'   r'   r(   test_simple  s   zTestEmpty.test_simplec                 C   r  )Nr  r  r   rW   r  r  r  r'   r'   r(   r    r  z"TestEmpty.test_pad_empty_dimensionN)rI   rJ   rK   r  r  r'   r'   r'   r(   r    s    r  c               	   C   sd   dd } t ddd}t |d| }t g dg dg dg dg dg dg}t|| d S )	Nc                 S   s&   d| d |d < d| |d  d < d S )Nr   r   r<   r'   )vectorr  iaxiskwargsr'   r'   r(   _padwithtens  s   z6test_legacy_vector_functionality.<locals>._padwithtensr4   r,   r   )r   r   r   r   r   r   r   )r   r   r   r<   r,   r   r   )r   r   r   r*   rO   r   r   ra  )r   r+   r   r'   r'   r(    test_legacy_vector_functionality  s   
r  c                  C   s.   t jdgddd} t g d}t| | d S )Nr<   r,   r   rW   )r   r   r<   r   r   rQ  )r+   r   r'   r'   r(   test_unicode_mode  r  r  rM   )r   r   r   r   c                 C   s:   t jdd d}d}t jdd d}tt j||| d| d S )Nr  )
fill_valuer^  )r=   r   rW   )r   r  r   rZ   )rM   r+   r]   r   r'   r'   r(   test_object_input  s   r  c                   @   s   e Zd Zejdg dejde dd Zejde dd Z	ejdg dejde d	d
 Z
ejdddde dfddefedddfdgejde dd Zdd Zejdg dejde dd ZdS )TestPadWidthr  ))r*   rO   r4   r   )r{  rX  r`  )rc  r~  )rO   r4   ))r   r*   rO   )r   r<   r,   rM   c                 C   V   t dd}d}tjt|d t ||| W d    d S 1 s$w   Y  d S )Nrb   rY  z(operands could not be broadcast togetherr?   r[  r"   r  rM   r\  r@   r'   r'   r(   test_misshaped_pad_width  s
   "z%TestPadWidth.test_misshaped_pad_widthc                 C   sV   t dd}d}tjt|d t |d| W d    d S 1 s$w   Y  d S )Nrb   rY  zDinput operand has more dimensions than allowed by the axis remappingr?   ))r`  )r*   )rO   )r  r{  rX  r[  )r"   rM   r\  r@   r'   r'   r(   test_misshaped_pad_width_2  s
   "z'TestPadWidth.test_misshaped_pad_width_2rW  c                 C   r  )Nrb   rY  rZ  r?   r[  r  r'   r'   r(   test_negative_pad_width  s
   "z$TestPadWidth.test_negative_pad_widthzpad_width, dtype)3N)wordNr.   N)g333333@N))r,   r   r*   r_  r<   rT  )))g r   r_  Nc                 C   s   t dd}d}|d ur4tjt|d t |t j||d| W d    d S 1 s-w   Y  d S tjt|d t ||| W d    n1 sMw   Y  tjt|d t |t || W d    d S 1 sow   Y  d S )Nrb   rY  z%`pad_width` must be of integral type.r?   r8   )r   r5   r6   rB   rC   	TypeErrorrZ   r   )r"   r  r9   rM   r\  r@   r'   r'   r(   test_bad_type#  s   ""zTestPadWidth.test_bad_typec                 C   sx   t d}t |d}t |t dd}t g dg dg dg dg dg dg dg dg dg	}t|| d S r  ra  r   r'   r'   r(   test_pad_width_as_ndarray;  s    
z&TestPadWidth.test_pad_width_as_ndarray)r   rQ   )rQ   rQ   c                 C   s,   t ddd}t|t j|||d d S )Nrb   r4   rO   rW   )r   r5   r6   r   rZ   )r"   r  rM   r\  r'   r'   r(   test_zero_pad_widthN  s   z TestPadWidth.test_zero_pad_width)rI   rJ   rK   rB   rd   re   rf   rg   r  r	  r
  r    r	   r  r  r  r'   r'   r'   r(   r    s6    

r  c              	   C   s   t |  }i }t  D ]}||kr|| q
tjg dd| fi | | D ]/\}}d| }tjt	|d tjg dd| fi ||i W d   n1 sQw   Y  q'dS )z1Test behavior of pad's kwargs for the given mode.r  r<   z+unsupported keyword arguments for mode '{}'r?   N)
rf   valuesupdater   rZ   itemsformatrB   rC   rD   )rM   allowednot_allowedr  keyvaluer@   r'   r'   r(   test_kwargsU  s   

 r  c                  C   s(   t ddg} tt | dg d d S )Nr<   r,   )r   r   r<   r<   r   r   )r   r   r   rZ   )r\  r'   r'   r(   test_constant_zero_defaultf  s   r  r<   constTFc                 C   sR   d | }tjt|d tjg dd| d W d    d S 1 s"w   Y  d S )Nzmode '{}' is not supportedr?   r  r*   rW   )r  rB   rC   rD   r   rZ   )rM   r@   r'   r'   r(   test_unsupported_modek  s   
"r  c                 C   s`   t dddd d dd d df }t |d| }|jdks!J t|ddddf | d S )Nr   r*   r4   r,   rF   )r   r   r:   r  )rM   r\  r%   r'   r'   r(   test_non_contiguous_arrayr  s   &r  c                 C   sP   t jddd}t |d| jd sJ t jddd}t |d| jd s&J dS )	z5Test if C and F order is preserved for all pad modes.)rO   r   C)orderrO   C_CONTIGUOUSFF_CONTIGUOUSN)r   rG   rZ   flags)rM   r$   r'   r'   r(   test_memory_layout_persistencez  s   r$  r9   c                 C   s0   t jd| d}t j|d|d}|j| ksJ d S )N)r   r,   r<   r8   r<   rW   )r   r  rZ   r9   )r9   rM   r\  r%   r'   r'   r(   test_dtype_persistence  s   r%  )'r  rB   numpyr   numpy.testingr   r   r   numpy.lib._arraypad_implr   _coresctypesr  rf   r   rL   rh   ri  r  r  r  r  r  r  r  r  r  rd   re   r  r  rg   r  r  r    r  r  r$  r%  r'   r'   r'   r(   <module>   sv    



S  k 4U   '
Q



