a
    ç´«jÛ  ã                   @   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_pairsZuintÚintÚfloatÚcomplexÚconstant_valuesÚ
end_valuesÚstat_lengthÚreflect_typeZ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%   ú\/var/www/html/laksyashrimp/venv/lib/python3.9/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©Z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*   r1   N)r   ÚarangeÚreshaper   r   r.   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  ƒ qž1 sÔ0    Y  qždS )z Test results if `as_index=True`.gÍÌÌÌÌÌ@gffffff
@r   Tr-   r   ©Údtypegö(\�Âõ@r(   éýÿÿÿéüÿÿÿé   r*   é	   éþÿÿÿznegative values©ÚmatchN)r   r   r   r   Z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 s40    Y  t jtdd��& tddgdd	ggdƒ W d  ƒ n1 sx0    Y  t jtdd��  tt d
¡dƒ W d  ƒ n1 s¶0    Y  dS )z"Ensure faulty usage is discovered.zmore dimensions than allowedr<   r   r   Nzcould not be broadcastr9   r*   r(   ©r*   r   )r>   r?   r@   r   r   Úones)r    r%   r%   r&   Útest_exceptionsi   s    .4zTestAsPairs.test_exceptionsN)	Ú__name__Ú
__module__Ú__qualname__r'   r+   r/   r4   rA   rD   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 )Néx   r(   é   r1   c                 S   s   g | ]}d ‘qS )©r   r   r%   ©Ú.0Ú_r%   r%   r&   Ú
<listcomp>w   ó    zHTestConditionalShortcuts.test_zero_padding_shortcuts.<locals>.<listcomp>©rI   ©r   r2   r3   Úshaper   Úpad©r    rI   Ú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 )NrJ   r(   rK   r1   c                 S   s   g | ]}d ‘qS )©r9   r9   r%   rM   r%   r%   r&   rP   }   rQ   zITestConditionalShortcuts.test_shallow_statistic_range.<locals>.<listcomp>r   rR   r9   ©rI   r   rS   rV   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é   rK   r1   c                 S   s   g | ]}d ‘qS ))r   r   r%   rM   r%   r%   r&   rP   „   rQ   zFTestConditionalShortcuts.test_clip_statistic_range.<locals>.<listcomp>rR   r[   rS   rV   r%   r%   r&   Útest_clip_statistic_range�   s
    ÿz2TestConditionalShortcuts.test_clip_statistic_rangeN)rE   rF   rG   r>   ÚmarkÚparametrizeÚ
_all_modesÚkeysrY   r\   r^   r%   r%   r%   r&   rH   s   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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 )Néd   Úf)©é   é   r   )rB   ©r   )‘ç      à?rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   ç        ç      ð?ç       @ç      @ç      @ç      @ç      @ç      @ç       @ç      "@ç      $@ç      &@ç      (@ç      *@ç      ,@ç      .@ç      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   r2   ÚastyperU   r   r   ©r    r)   Úbr%   r%   r&   Útest_check_mean_stat_lengthŠ   s    ÿz)TestStatistic.test_check_mean_stat_lengthc                 C   s4   t  d¡}t  |dd¡}t  g d¢¡}t||ƒ d S )Nrd   rf   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   r9   r*   r   r(   rK   r1   é   é   r:   r   é   r0   é   é   é   é   é   é   é   rh   é   é   é   é   rg   é   é   é   é   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   r2   rU   r   r   rÑ   r%   r%   r&   Útest_check_maximum_1¢   s    
ÿz"TestStatistic.test_check_maximum_1c                 C   s8   t  d¡d }t  |dd¡}t  g d¢¡}t||ƒ d S )Nrd   r9   rf   r   )‘rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   r9   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rh   rß   rà   rá   râ   rg   rã   rä   rå   ræ   r]   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  rÔ   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   r+  rÑ   r%   r%   r&   Útest_check_maximum_2º   s    ÿz"TestStatistic.test_check_maximum_2c                 C   s<   t  d¡d }t j|dddd�}t  g d¢¡}t||ƒ d S )Nrd   r9   rf   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   r9   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rh   rß   rà   rá   râ   rg   rã   rä   rå   ræ   r]   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  rÔ   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   rd   r+  rÑ   r%   r%   r&   Útest_check_maximum_stat_lengthÒ   s    ÿz,TestStatistic.test_check_maximum_stat_lengthc                 C   s4   t  d¡}t  |dd¡}t  g d¢¡}t||ƒ d S )Nrd   rf   r   ©‘r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rh   rß   rà   rá   râ   rg   rã   rä   rå   ræ   r]   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  rÔ   r   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_minimum_1ê   s    
ÿz"TestStatistic.test_check_minimum_1c                 C   s8   t  d¡d }t  |dd¡}t  g d¢¡}t||ƒ d S )Nrd   r*   rf   r   )‘r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rh   rß   rà   rá   râ   rg   rã   rä   rå   ræ   r]   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  rÔ   rd   ée   r*   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_minimum_2  s    ÿz"TestStatistic.test_check_minimum_2c                 C   s<   t  d¡d }t j|dddd�}t  g d¢¡}t||ƒ d S )Nrd   r9   rf   r   r   ri   )‘r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r9   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rh   rß   rà   rá   râ   rg   rã   rä   rå   ræ   r]   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  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&   Útest_check_minimum_stat_length  s    ÿz,TestStatistic.test_check_minimum_stat_lengthc                 C   s:   t  d¡ d¡}t  |dd¡}t  g d¢¡}t||ƒ d S )Nrd   re   rf   r   ©‘ç     ÀH@r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  rk   rl   rm   rn   ro   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Î   r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  r5  rÏ   rÑ   r%   r%   r&   Útest_check_median2  s    ÿ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   r9   r(   ©r(   rK   r:   ©r:   rÖ   r*   r9   r   )r(   r(   rK   r(   r(   ©r   r   r9   r(   r   ©rK   r(   rK   r:   rK   ©rÖ   r:   rÖ   r*   rÖ   )r   r   rU   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 )
Nr7  r8  r9  r9   r   )rK   r(   rK   r(   rK   r:  r;  r<  )r   r   rU   Ú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 )Nrd   re   rm   r9   rË   r)  rf   r   ©r   rK   ri   )‘rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rk   rm   rm   rn   ro   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Ë   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(   rK   r1   ©rK   rÕ   r   r*   ri   )r(   r(   r(   r(   r(   r(   rK   r1   r1   r1   r1   r1   r1   r1   r1   ©r   rU   r   r   rÑ   r%   r%   r&   Útest_check_mean_shape_one€  s&    
òÿz'TestStatistic.test_check_mean_shape_onec                 C   s:   t  d¡ d¡}t  |dd¡}t  g d¢¡}t||ƒ d S )Nrd   re   rf   r   r4  rÏ   rÑ   r%   r%   r&   Útest_check_mean_2–  s    ÿzTestStatistic.test_check_mean_2rI   )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*   rG  )r   gê-�™—q=r   r5   rZ   r   rG  N)r   r   Úfloat64rU   r   )r    rI   r)   r%   r%   r&   Útest_same_prepend_append®  s    
"z&TestStatistic.test_same_prepend_appendr   ©r;   )r;   )r   rG  ))rK   r*   )r;   r   ))r8   ©r*   c                 C   sX   t  d¡ d¡}d}tjt|d��" t j|d||d� W d   ƒ n1 sJ0    Y  d S )Nr]   ©r1   rK   ú#index can't contain negative valuesr<   r*   ri   ©r   r2   r3   r>   r?   r@   rU   )r    rI   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 )Nr]   rL  ©rB   ©r   r*   r   ©r   r[   )
r1   r1   r1   rK   r1   rÕ   rÖ   r:   rÖ   rÖ   )
r9   r9   r9   r   r9   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ß   rh   rß   rà   rá   râ   rá   rá   )
rã   rã   rã   rg   rã   rä   rå   ræ   rå   rå   ©r   r2   r3   rU   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 )Nrl   rm   ©r9   r*   r   ri   )r   rU   r   Únanr   )r    rI   rO  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>0    Y  t jt|d��& tjddgd|dd� W d   ƒ n1 s‚0    Y  t jt|d��& tjddgd|dd� W d   ƒ n1 sÆ0    Y  t jt|d��& tjddgd|dd� W d   ƒ n1 �s0    Y  d S )	Nz,stat_length of 0 yields no value for paddingr<   rl   rm   r   ri   )r9   r   r9   )r>   r?   r@   r   rU   ©r    rI   r=   r%   r%   r&   Útest_zero_stat_length_invalidå  s    444z+TestStatistic.test_zero_stat_length_invalidN)rE   rF   rG   rÓ   r,  r-  r.  r0  r2  r3  r6  r=  r?  rA  rE  rF  r>   r_   r`   rI  rP  rU  ÚfilterwarningsrX  rZ  r%   r%   r%   r&   rc   ‰   s:   
ÿ
ÿrc   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   s8   t  d¡}t j|dddd�}t  g d¢¡}t||ƒ d S )Nrd   rf   r   )r   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   r9   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rh   rß   rà   rá   râ   rg   rã   rä   rå   ræ   r]   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  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   rh   rh   rh   rh   rh   rh   rh   rh   rh   rh   rh   rh   rh   rh   rh   rh   rh   rh   rh   r+  rÑ   r%   r%   r&   Útest_check_constantó  s    
ÿz TestConstant.test_check_constantc                 C   s4   t  d¡}t  |dd¡}t  g d¢¡}t||ƒ d S )Nrd   rf   r   r/  r+  rÑ   r%   r%   r&   Útest_check_constant_zeros  s    
ÿ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 )Nr]   rK   r1   rV  r   çš™™™™™ñ?©rI   r	   )	r9   r9   r9   r9   r9   r9   r9   r9   r9   )	r9   r   r9   r*   r   r(   rK   r9   r9   )	r9   r1   rÕ   rÖ   r:   r   r×   r9   r9   )	r9   r0   rØ   rÙ   rÚ   rÛ   rÜ   r9   r9   )	r9   rÝ   rÞ   rh   rß   rà   rá   r9   r9   )	r9   râ   rg   rã   rä   rå   ræ   r9   r9   ©r   r2   r3   rU   r   r   ©r    rO  rW   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 )Nr]   rK   r1   ©rV  rV  r   r`  ra  )	r`  r`  r`  r`  r`  r`  r`  r`  r`  )	r`  rk   rl   rm   rn   ro   rp   r`  r`  )	r`  rq   rr   rs   rt   ru   rv   r`  r`  )	r`  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   r2   r3   rÐ   rH  rU   r   r   )r    rO  Z	arr_floatrW   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 )Nrd   r5   rf   r   )çš™™™™™ñ¿ç333333ó¿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  r   r9   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rh   rß   rà   rá   râ   rg   rã   rä   rå   ræ   r]   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  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  ri  ri  ri  ri  ri  ri  ri  ri  ri  ri  ri  ri  ri  ri  ri  ri  ri  ri  ri  )r   r2   r   rU   r   r   rÑ   r%   r%   r&   Útest_check_constant_float3L  s    ÿ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 )Nr]   rK   r1   )©r9   rK  r   r   ra  )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r9   r*   r   r(   rK   r   r   )
r   r   r1   rÕ   rÖ   r:   r   r×   r   r   )
r   r   r0   rØ   rÙ   rÚ   rÛ   rÜ   r   r   )
r   r   rÝ   rÞ   rh   rß   rà   rá   r   r   )
r   r   râ   rg   rã   rä   rå   ræ   r   r   rb  rc  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*   )rV  ©r9   r   r   )rV  ©r   r(   ra  )r   r9   r9   r(   r(   r(   )r   r   r9   r(   r(   r(   )r   r*   r   r(   r(   r(   )r   r*   r*   r(   r(   r(   rb  rc  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   ÿÿÿÿ rK   r5   r9   r   ra  rÕ   l   ÿÿÿÿ )r   ÚfullZuint64rU   Úminr   Zint64)r    Z
uint64_maxrO  rW   r!   Z	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 )Nr9   r5   r   r   )Ú	pad_widthrI   r	   rS  r*   )r   r   r   rU   r   )r    rO  Zobj_aZobj_bZobj_cr!   r%   r%   r&   Útest_check_object_array�  s    
ÿz$TestConstant.test_check_object_arrayc                 C   s0   t  d¡}t j|g d¢dd�}|jdks,J ‚d S )N©r   r   r*   ©©r   rK  rk  r   rR   ©r   r(   r(   ©r   ÚzerosrU   rT   ©r    rO  r#   r%   r%   r&   Útest_pad_empty_dimensionŸ  s    
z%TestConstant.test_pad_empty_dimensionN)rE   rF   rG   r^  r_  rd  rg  rj  rl  ro  rr  rt  r|  r%   r%   r%   r&   r\  ò  s   r\  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 )
Nrd   re   rf   r   )r(   rK   )r
   )‘ro   g¸…ëQ¸@gq=
×£p@g)\�Âõ(@gáz®Gá
@gš™™™™™	@gR¸…ëQ@g
×£p=
@gÃõ(\�Â@g{®Gáz@g333333@gìQ¸…ë@g¤p=
×£ @g¸…ëQ¸þ?g)\�Âõ(ü?gš™™™™™ù?g
×£p=
÷?g{®Gázô?gìQ¸…ëñ?g¸…ëQ¸î?gš™™™™™é?g{®Gázä?g¸…ëQ¸Þ?g{®GázÔ?g{®GázÄ?rk   rl   rm   rn   ro   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Î   g33333“W@gffffffV@gš™™™™9U@gÍÌÌÌÌT@g     àR@g33333³Q@gfffff†P@g33333³N@gš™™™™YL@rŸ   gfffff¦G@gÍÌÌÌÌLE@g33333óB@gš™™™™™@@g     €<@gÍÌÌÌÌÌ7@gš™™™™3@gÍÌÌÌÌÌ,@gffffff#@rp   gñhãˆµøä>)ZrtolZatol)r   r2   rÐ   rU   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 )Nrh   r(   rK   )r*   r*   r   rL   ©rI   r
   )	rk   rk   rk   rk   rk   rk   rk   rk   rk   )	rk   rk   rk   rj   rl   g      ø?rm   rl   rk   )	rk   rk   rk   rl   rm   rn   ro   rm   rk   )	rk   g      @rp   rq   rr   rs   rt   g      @rk   )	rk   rp   ru   rv   rw   rx   ry   rr   rk   )	rk   ç      @rz   r{   r|   r}   r~   ç      #@rk   )	rk   g      @r€  rs   g      !@rt   r�  g      @rk   rf  rc  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   )ÚFractionr9   r*   rG  rB   r   r  r0   r   r1   éúÿÿÿr8   r;   )Ú	fractionsr„  r   r   rU   r   )r    r„  rO  Ú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*   rK   )éß   é{   r   rR   Nr   rk   rG  )r   rU   rC   r3   r   )r    r)   r%   r%   r&   Útest_end_valuesß  s
    zTestLinearRamp.test_end_valuesr6   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   r5   r   r   r  )r   r9   r*   r   r*   r9   r   )r   r*   r9   r   r9   r*   r   N)r   r   rU   r   )r    r6   r"   r#   r!   r%   r%   r&   Útest_negative_differenceç  s    
z'TestLinearRamp.test_negative_differenceN)rE   rF   rG   r~  r‚  r>   r_   ZxfailÚAssertionErrorrˆ  r‹  r`   Ú_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   s4   t  d¡}t  |dd¡}t  g d¢¡}t||ƒ d S )Nrd   rf   r   )‘rg   râ   rá   rà   rß   rh   rÞ   rÝ   rÜ   rÛ   rÚ   rÙ   rØ   r0   r×   r   r:   rÖ   rÕ   r1   rK   r(   r   r*   r9   r   r9   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rh   rß   rà   rá   râ   rg   rã   rä   rå   ræ   r]   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  rÔ   r*  r)  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    
ÿzTestReflect.test_check_simplec                 C   s8   t  d¡}t j|dddd�}t  g d¢¡}t||ƒ d S )Nrd   rf   r   Úodd©r   )‘içÿÿÿéèÿÿÿééÿÿÿéêÿÿÿéëÿÿÿéìÿÿÿéíÿÿÿéîÿÿÿéïÿÿÿéðÿÿÿéñÿÿÿéòÿÿÿéóÿÿÿéôÿÿÿéõÿÿÿéöÿÿÿé÷ÿÿÿéøÿÿÿéùÿÿÿr…  éûÿÿÿr8   r7   r;   rG  r   r9   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rh   rß   rà   rá   râ   rg   rã   rä   rå   ræ   r]   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  rÔ   rd   r1  éf   ég   éh   éi   éj   ék   él   ém   én   éo   ép   éq   ér   és   ét   éu   év   éw   r+  rÑ   r%   r%   r&   Útest_check_odd_method  s    
ÿ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 )NrB  ©r1   rÕ   rÖ   rC  r   )rÕ   r1   rÕ   rÖ   rÕ   r1   rÕ   rÖ   rÕ   r1   rÕ   rÖ   rÕ   r1   rÕ   ©rK   r(   rK   r1   rK   r(   rK   r1   rK   r(   rK   r1   rK   r(   rK   rD  rÑ   r%   r%   r&   Útest_check_large_pad+  s(    ñÿz TestReflect.test_check_large_padc                 C   s~   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 )NrB  rC  r   r¹  rD  rÑ   r%   r%   r&   Útest_check_shapeB  s&    
òÿzTestReflect.test_check_shapec                 C   s.   t  g d¢dd¡}t  g d¢¡}t||ƒ d S )N©r9   r*   r   r*   r   )r   r*   r9   r*   r   r*   r9   rD  rÑ   r%   r%   r&   Útest_check_01X  s    zTestReflect.test_check_01c                 C   s.   t  g d¢dd¡}t  g d¢¡}t||ƒ d S )Nr¼  r   r   )	r*   r   r*   r9   r*   r   r*   r9   r*   rD  rÑ   r%   r%   r&   Útest_check_02]  s    zTestReflect.test_check_02c                 C   s.   t  g d¢dd¡}t  g d¢¡}t||ƒ d S )Nr¼  r(   r   )r9   r*   r   r*   r9   r*   r   r*   r9   r*   r   rD  rÑ   r%   r%   r&   Útest_check_03b  s    zTestReflect.test_check_03c                 C   s2   t  g d¢ddgd¡}t  g d¢¡}t||ƒ d S )Nr¼  r9   r   r   )r*   r9   r*   r   r*   r9   r*   r   r*   r9   r*   r   r*   r9   rD  rÑ   r%   r%   r&   Útest_check_04g  s    zTestReflect.test_check_04c                 C   s2   t  g d¢ddgd¡}t  g d¢¡}t||ƒ d S )N©r9   r*   r   r(   rõ   r   r   );r(   r   r*   r9   r*   r   r(   r   r*   r9   r*   r   r(   r   r*   r9   r*   r   r(   r   r*   r9   r*   r   r(   r   r*   r9   r*   r   r(   r   r*   r9   r*   r   r(   r   r*   r9   r*   r   r(   r   r*   r9   r*   r   r(   r   r*   r9   r*   r   r(   r   r*   r9   r*   rD  rÑ   r%   r%   r&   Útest_check_05l  s
    ÿzTestReflect.test_check_05c                 C   s2   t  g d¢ddgd¡}t  g d¢¡}t||ƒ d S )NrÁ  rÚ   r*   r   )r*   r   r(   r(   r   r*   r9   r9   r*   r   r(   r(   r   r*   r9   r9   r*   r   r(   r(   r   rD  rÑ   r%   r%   r&   Útest_check_06w  s
    ÿzTestReflect.test_check_06c                 C   s2   t  g d¢ddgd¡}t  g d¢¡}t||ƒ d S )N)r9   r*   r   r(   rK   r1   rõ   r   r   )6r(   rK   r1   r1   rK   r(   r   r*   r9   r9   r*   r   r(   rK   r1   r1   rK   r(   r   r*   r9   r9   r*   r   r(   rK   r1   r1   rK   r(   r   r*   r9   r9   r*   r   r(   rK   r1   r1   rK   r(   r   r*   r9   r9   r*   r   r(   rK   r1   r1   rK   r(   rD  rÑ   r%   r%   r&   Útest_check_07€  s
    ÿzTestReflect.test_check_07N)rE   rF   rG   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.rI   r   r   c                 C   sÎ   d}t jt|d��  tjg d|d� W d   ƒ n1 s80    Y  t jt|d��& tjt d¡d|d� W d   ƒ n1 s|0    Y  t jt|d��& tjt d¡d|d� W d   ƒ n1 sÀ0    Y  d S )NzFcan't extend empty axis 0 using modes other than 'constant' or 'empty'r<   r(   rR   r   )r   r   )rk  rw  )r>   r?   r@   r   rU   Zndarrayrz  rY  r%   r%   r&   r|  �  s    .4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*   )rS  rw  rk  rR   )rÖ   r   r(   )r   rU   rC   rT   )r    rI   r#   r%   r%   r&   Útest_pad_non_empty_dimensionž  s    z+TestEmptyArray.test_pad_non_empty_dimensionN)rE   rF   rG   Ú__doc__r>   r_   r`   Úsortedra   rb   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   s4   t  d¡}t  |dd¡}t  g d¢¡}t||ƒ d S )Nrd   rf   r   )‘râ   rá   rà   rß   rh   rÞ   rÝ   rÜ   rÛ   rÚ   rÙ   rØ   r0   r×   r   r:   rÖ   rÕ   r1   rK   r(   r   r*   r9   r   r   r9   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rh   rß   rà   rá   râ   rg   rã   rä   rå   ræ   r]   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  rÔ   rÔ   r*  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    
ÿzTestSymmetric.test_check_simplec                 C   s8   t  d¡}t j|dddd�}t  g d¢¡}t||ƒ d S )Nrd   rf   r   r�  r‘  )‘r’  r“  r”  r•  r–  r—  r˜  r™  rš  r›  rœ  r�  rž  rŸ  r   r¡  r¢  r£  r…  r¤  r8   r7   r;   rG  r   r   r9   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rh   rß   rà   rá   râ   rg   rã   rä   rå   ræ   r]   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  rÔ   rÔ   rd   r1  r¥  r¦  r§  r¨  r©  rª  r«  r¬  r­  r®  r¯  r°  r±  r²  r³  r´  rµ  r+  rÑ   r%   r%   r&   r·  ½  s    
ÿ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 )NrB  r¸  rC  r   ©rK   r1   r1   rK   r(   r(   rK   r1   r1   rK   r(   r(   rK   r1   r1   )rÕ   rÖ   rÖ   rÕ   r1   r1   rÕ   rÖ   rÖ   rÕ   r1   r1   rÕ   rÖ   rÖ   rD  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 )NrB  r¸  rC  r   r�  r‘  )r7   r;   r;   rG  r   r   r9   r*   r*   r   r(   r(   rK   r1   r1   )rG  r   r   r9   r*   r*   r   r(   r(   rK   r1   r1   rÕ   rÖ   rÖ   )r9   r*   r*   r   r(   r(   rK   r1   r1   rÕ   rÖ   rÖ   r:   r   r   )r   r(   r(   rK   r1   r1   rÕ   rÖ   rÖ   r:   r   r   r×   r0   r0   )rK   r1   r1   rÕ   rÖ   rÖ   r:   r   r   r×   r0   r0   rØ   rÙ   rÙ   )rÕ   rÖ   rÖ   r:   r   r   r×   r0   r0   rØ   rÙ   rÙ   rÚ   rÛ   rÛ   )r:   r   r   r×   r0   r0   rØ   rÙ   rÙ   rÚ   rÛ   rÛ   rÜ   rÝ   rÝ   rD  rÑ   r%   r%   r&   Útest_check_large_pad_oddí  s(    ñÿz&TestSymmetric.test_check_large_pad_oddc                 C   s~   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 )NrB  rC  r   rÊ  rD  rÑ   r%   r%   r&   r»    s&    
òÿzTestSymmetric.test_check_shapec                 C   s.   t  g d¢dd¡}t  g d¢¡}t||ƒ d S )Nr¼  r*   r   )r*   r9   r9   r*   r   r   r*   rD  rÑ   r%   r%   r&   r½    s    zTestSymmetric.test_check_01c                 C   s.   t  g d¢dd¡}t  g d¢¡}t||ƒ d S )Nr¼  r   r   )	r   r*   r9   r9   r*   r   r   r*   r9   rD  rÑ   r%   r%   r&   r¾    s    zTestSymmetric.test_check_02c                 C   s.   t  g d¢dd¡}t  g d¢¡}t||ƒ d S )Nr¼  r1   r   )r9   r*   r   r   r*   r9   r9   r*   r   r   r*   r9   r9   r*   r   rD  rÑ   r%   r%   r&   r¿  $  s    zTestSymmetric.test_check_03N)rE   rF   rG   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   s4   t  d¡}t  |dd¡}t  g d¢¡}t||ƒ d S )Nrd   rf   r   )‘r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  rÔ   r   r9   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   rh   rß   rà   rá   râ   rg   rã   rä   rå   ræ   r]   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  rÔ   r   r9   r*   r   r(   rK   r1   rÕ   rÖ   r:   r   r×   r0   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rÞ   r+  rÑ   r%   r%   r&   r~  +  s    
ÿ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 )Nr0   rn  )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   r9   r*   r   r   r9   r*   r   r   r9   r*   r   r   r9   r*   r   r   r9   r*   r   r   r9   r*   r   )r1   rÕ   r(   rK   r1   rÕ   r(   rK   r1   rÕ   r(   rK   r1   rÕ   r(   rK   r1   rÕ   r(   rK   r1   rÕ   r(   rK   r1   rÕ   rT  rÑ   r%   r%   r&   rº  C  s@    
Îÿ6zTestWrap.test_check_large_padc                 C   s.   t  g d¢dd¡}t  g d¢¡}t||ƒ d S )Nr¼  r   r   )	r9   r*   r   r9   r*   r   r9   r*   r   rD  rÑ   r%   r%   r&   r½    s    zTestWrap.test_check_01c                 C   s.   t  g d¢dd¡}t  g d¢¡}t||ƒ d S )Nr¼  r(   r   )r   r9   r*   r   r9   r*   r   r9   r*   r   r9   rD  rÑ   r%   r%   r&   r¾  „  s    zTestWrap.test_check_02c                 C   s8   t  d¡}t j|ddd�}t||d d…d d…f ƒ d S )Nr@  )r   rK   r   rR   r¤  )r   rC   rU   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.
        rK   )r0   r   r   rR   r   N)r   r0   r7   )r   r2   rU   r   Z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*   rm  ©r   r9   r   rR   )r   r*   r   r*   r   r*   )r9   r   r9   r   r9   r   NrT  rÑ   r%   r%   r&   Ú&test_repeated_wrapping_multiple_origin›  s    ûÿz/TestWrap.test_repeated_wrapping_multiple_originN)
rE   rF   rG   r~  rº  r½  r¾  rÍ  rÎ  rÐ  r%   r%   r%   r&   rÌ  *  s   <rÌ  c                   @   s   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 ©	Nr0   ©r(   r   rQ  r   )r   r   r   r   r9   r*   r*   r*   )r   r   r   r   r(   rK   rK   rK   )r1   r1   r1   r1   rÕ   rÖ   rÖ   rÖ   )r:   r:   r:   r:   r   r×   r×   r×   rT  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¼  )rV  r   )r9   r9   r*   r   r   r   rB  re  râ   r*   r   r(   )rV  rV  rV  )r   r   rU   r   r2   r3   )r    r)   Úpaddedr!   r%   r%   r&   Útest_check_width_shape_1_2Á  s    

z#TestEdge.test_check_width_shape_1_2N)rE   rF   rG   r~  rÕ  r%   r%   r%   r&   rÑ  ­  s   rÑ  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú	TestEmptyc                 C   sR   t  d¡ dd¡}t j|ddgdd�}|jdks4J ‚t||d	d
…dd…f ƒ d S )Nrâ   r(   r1   rB   rÏ  r   rR   )r:   r   r*   r7   r   rG  ©r   r2   r3   rU   rT   r   r{  r%   r%   r&   Útest_simpleÕ  s    zTestEmpty.test_simplec                 C   s0   t  d¡}t j|g d¢dd�}|jdks,J ‚d S )Nru  rv  r   rR   rx  ry  r{  r%   r%   r&   r|  Û  s    
z"TestEmpty.test_pad_empty_dimensionN)rE   rF   rG   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   r9   r%   )Zvectorrs  ZiaxisÚkwargsr%   r%   r&   Ú_padwithtensâ  s    z6test_legacy_vector_functionality.<locals>._padwithtensr1   r*   r   )r   r   r   r   r   r   r   )r   r   r   r9   r*   r   r   )r   r   r   r(   rK   r   r   rT  )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 )Nr9   r*   r   rR   )r   r   r9   r   r   rD  )r)   rÒ   r%   r%   r&   Útest_unicode_modeõ  s    rÜ  rI   )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Ó  )Z
fill_valuerQ  )r:   rÖ   rR   )r   rp  r   rU   )rI   r)   rX   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 )ÚTestPadWidthrs  ))r(   rK   r1   rÕ   )rk  rK  rS  )rV  rn  )rK   r1   ))r   r(   rK   )r   r9   r*   rI   c                 C   sT   t  d¡ d¡}d}tjt|d�� t  |||¡ W d   ƒ n1 sF0    Y  d S )Nr]   rL  z(operands could not be broadcast togetherr<   rN  ©r    rs  rI   rO  r=   r%   r%   r&   Útest_misshaped_pad_width  s    z%TestPadWidth.test_misshaped_pad_widthc                 C   sT   t  d¡ d¡}d}tjt|d�� t  |d|¡ W d   ƒ n1 sF0    Y  d S )Nr]   rL  zDinput operand has more dimensions than allowed by the axis remappingr<   ))rS  )r(   )rK   )rw  rk  rK  rN  )r    rI   rO  r=   r%   r%   r&   Útest_misshaped_pad_width_2  s    z'TestPadWidth.test_misshaped_pad_width_2rJ  c                 C   sT   t  d¡ d¡}d}tjt|d�� t  |||¡ W d   ƒ n1 sF0    Y  d S )Nr]   rL  rM  r<   rN  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(   rR  r9   rG  )))gÍÌÌÌÌÌ Àr   rR  Nc                 C   sæ   t  d¡ d¡}d}|d urdtjt|d��( t  |t j||d�|¡ W d   ƒ qâ1 sX0    Y  n~tjt|d�� t  |||¡ W d   ƒ n1 s–0    Y  tjt|d��$ t  |t  |¡|¡ W d   ƒ n1 sØ0    Y  d S )Nr]   rL  z%`pad_width` must be of integral type.r<   r5   )r   r2   r3   r>   r?   Ú	TypeErrorrU   r   )r    rs  r6   rI   rO  r=   r%   r%   r&   Útest_bad_type#  s    8,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Ò  rT  rÑ   r%   r%   r&   Útest_pad_width_as_ndarray;  s     
öÿz&TestPadWidth.test_pad_width_as_ndarray)r   rL   )rL   rL   c                 C   s,   t  d¡ dd¡}t|t j|||d�ƒ d S )Nr]   r1   rK   rR   )r   r2   r3   r   rU   )r    rs  rI   rO  r%   r%   r&   Útest_zero_pad_widthN  s    z TestPadWidth.test_zero_pad_width)rE   rF   rG   r>   r_   r`   ra   rb   rà  rá  râ  r   r   ræ  rç  rè  r%   r%   r%   r&   rÞ    s4   
ÿø
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  ƒ qN1 s¢0    Y  qNdS )z1Test behavior of pad's kwargs for the given mode.r¼  r9   z+unsupported keyword arguments for mode '{}'r<   N)
ra   ÚvaluesÚupdater   rU   ÚitemsÚformatr>   r?   r@   )rI   Ú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 )Nr9   r*   )r   r   r9   r9   r   r   )r   r   r   rU   )rO  r%   r%   r&   Útest_constant_zero_defaultf  s    rò  r9   ÚconstTFc                 C   sP   d  | ¡}tjt|d��$ tjg d¢d| d� W d   ƒ n1 sB0    Y  d S )Nzmode '{}' is not supportedr<   r¼  r(   rR   )rì  r>   r?   r@   r   rU   )rI   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sBJ ‚t|dd…dd…f |ƒ d S )Nrâ   r(   r1   r*   rB   )rÕ   rÖ   r7   r×  )rI   rO  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 sLJ ‚dS )	z5Test if C and F order is preserved for all pad modes.)rK   r   ÚC)ÚorderrK   ZC_CONTIGUOUSÚFZF_CONTIGUOUSN)r   rC   rU   Úflags)rI   r"   r%   r%   r&   Útest_memory_layout_persistencez  s    rú  r6   c                 C   s0   t jd| d�}t j|d|d�}|j| ks,J ‚d S )N)r   r*   r9   r5   r9   rR   )r   rz  rU   r6   )r6   rI   rO  r#   r%   r%   r&   Útest_dtype_persistenceƒ  s    rû  )'rÇ  r>   Únumpyr   Znumpy.testingr   r   r   Znumpy.lib._arraypad_implr   Z_coreZsctypesrŽ  ra   r   rH   rc   r\  r}  r�  rÅ  rÉ  rÌ  rÑ  rÖ  rÛ  rÜ  r_   r`   rÝ  rÞ  rb   rñ  rò  r   rô  rõ  rú  rû  r%   r%   r%   r&   Ú<module>   st   

ÿ
þ
ýÿõS  k 4U   '
Q



