o
    V=ºiZÙ  ã                   @   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
d ej
d  ej
d  e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                   @   ó<   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&   úcC:\Users\psant\Downloads\PAF backend\school\venv\Lib\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+   r2   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  ƒ qO1 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   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 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   )r?   r@   rA   r   r   Úones)r!   r&   r&   r'   Útest_exceptionsi   s   ÿÿ"ÿzTestAsPairs.test_exceptionsN)	Ú__name__Ú
__module__Ú__qualname__r(   r,   r0   r5   rB   rE   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)   é   r2   c                 S   ó   g | ]}d ‘qS )©r   r   r&   ©Ú.0Ú_r&   r&   r'   Ú
<listcomp>w   ó    zHTestConditionalShortcuts.test_zero_padding_shortcuts.<locals>.<listcomp>©rJ   ©r   r3   r4   Úshaper   Úpad©r!   rJ   Ú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 )NrK   r)   rL   r2   c                 S   rM   )©r:   r:   r&   rO   r&   r&   r'   rR   }   rS   zITestConditionalShortcuts.test_shallow_statistic_range.<locals>.<listcomp>r   rT   r:   ©rJ   r   rU   rX   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é   rL   r2   c                 S   rM   ))r   r   r&   rO   r&   r&   r'   rR   „   rS   zFTestConditionalShortcuts.test_clip_statistic_range.<locals>.<listcomp>rT   r]   rU   rX   r&   r&   r'   Útest_clip_statistic_range�   s
   ÿz2TestConditionalShortcuts.test_clip_statistic_rangeN)rF   rG   rH   r?   ÚmarkÚparametrizeÚ
_all_modesÚkeysr[   r^   r`   r&   r&   r&   r'   rI   s   s    

rI   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   )rC   ©r   )‘ç      à?rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   rl   ç        ç      ð?ç       @ç      @ç      @ç      @ç      @ç      @ç       @ç      "@ç      $@ç      &@ç      (@ç      *@ç      ,@ç      .@ç      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   r3   ÚastyperW   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 )Nrf   rh   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)   rL   r2   é   é   r;   r   é   r1   é   é   é   é   é   é   é   rj   é   é   é   é   ri   é   é   é   é   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   r3   rW   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 )Nrf   r:   rh   r   )‘rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   r:   r+   r   r)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rj   râ   rã   rä   rå   ri   ræ   rç   rè   ré   r_   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r×   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   r.  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 )Nrf   r:   rh   r   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)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rj   râ   rã   rä   rå   ri   ræ   rç   rè   ré   r_   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r×   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   rf   r.  rÓ   r&   r&   r'   Útest_check_maximum_stat_lengthÒ   ó   ÿz,TestStatistic.test_check_maximum_stat_lengthc                 C   rÖ   )Nrf   rh   r   ©‘r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r:   r+   r   r)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rj   râ   rã   rä   rå   ri   ræ   rç   rè   ré   r_   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r×   r   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ê   r0  z"TestStatistic.test_check_minimum_1c                 C   r1  )Nrf   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+   r   r)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rj   râ   rã   rä   rå   ri   ræ   rç   rè   ré   r_   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r×   rf   é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  r3  z"TestStatistic.test_check_minimum_2c                 C   r4  )Nrf   r:   rh   r   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)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rj   râ   rã   rä   rå   ri   ræ   rç   rè   ré   r_   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  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'   Útest_check_minimum_stat_length  r6  z,TestStatistic.test_check_minimum_stat_lengthc                 C   ó:   t  d¡ d¡}t  |dd¡}t  g d¢¡}t||ƒ d S )Nrf   rg   rh   r   ©‘ç     ÀH@r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  r>  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&   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)   rL   r;   ©r;   rÙ   r+   r:   r   )r)   r)   rL   r)   r)   ©r   r   r:   r)   r   ©rL   r)   rL   r;   rL   ©rÙ   r;   rÙ   r+   rÙ   )r   r   rW   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 )
NrA  rB  rC  r:   r   )rL   r)   rL   r)   rL   rD  rE  rF  )r   r   rW   Ú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 )Nrf   rg   ro   r:   rÍ   r,  rh   r   ©r   rL   rk   )‘ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   rm   ro   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&   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)   rL   r2   ©rL   rØ   r   r+   rk   )r)   r)   r)   r)   r)   r)   rL   r2   r2   r2   r2   r2   r2   r2   r2   ©r   rW   r   r   rÓ   r&   r&   r'   Útest_check_mean_shape_one€  s&   
òÿz'TestStatistic.test_check_mean_shape_onec                 C   r<  )Nrf   rg   rh   r   r=  rÑ   rÓ   r&   r&   r'   Útest_check_mean_2–  r@  zTestStatistic.test_check_mean_2rJ   )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+   rQ  )r   gê-�™—q=r   r6   r\   r   rQ  N)r   r   Úfloat64rW   r   )r!   rJ   r*   r&   r&   r'   Útest_same_prepend_append®  s   "
z&TestStatistic.test_same_prepend_appendr   ©r<   )r<   )r   rQ  ))rL   r+   )r<   r   ))r9   ©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 )Nr_   ©r2   rL   ú#index can't contain negative valuesr=   r+   rk   ©r   r3   r4   r?   r@   rA   rW   )r!   rJ   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_   rV  ©rC   ©r   r+   r   ©r   r]   )
r2   r2   r2   rL   r2   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Û   )
rÞ   rÞ   rÞ   rÝ   rÞ   rß   rà   rá   rà   rà   )
râ   râ   râ   rj   râ   rã   rä   rå   rä   rä   )
ræ   ræ   ræ   ri   ræ   rç   rè   ré   rè   rè   ©r   r3   r4   rW   r   r   rÓ   r&   r&   r'   Útest_simple_stat_lengthÆ  s$   
ôÿz%TestStatistic.test_simple_stat_lengthz)ignore:Mean of empty slice:RuntimeWarningzJignore:invalid value encountered in (divide|double_scalars):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 )Nrn   ro   ©r:   r+   r   rk   )r   rW   r   Únanr   )r!   rJ   rY  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 s†w   Y  d S )	Nz,stat_length of 0 yields no value for paddingr=   rn   ro   r   rk   )r:   r   r:   )r?   r@   rA   r   rW   ©r!   rJ   r>   r&   r&   r'   Útest_zero_stat_length_invalidæ  s   ÿÿÿ"ÿz+TestStatistic.test_zero_stat_length_invalidN)rF   rG   rH   rÕ   r/  r2  r5  r8  r:  r;  r?  rG  rI  rK  rO  rP  r?   ra   rb   rS  rZ  r_  Úfilterwarningsrb  rd  r&   r&   r&   r'   re   ‰   s<    
ÿ
ÿre   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 )Nrf   rh   r   )r   rj   ©r	   )‘r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r:   r+   r   r)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rj   râ   rã   rä   rå   ri   ræ   rç   rè   ré   r_   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r×   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   rj   r.  rÓ   r&   r&   r'   Útest_check_constantô  ó   
ÿz TestConstant.test_check_constantc                 C   rÖ   )Nrf   rh   r   r7  r.  rÓ   r&   r&   r'   Útest_check_constant_zeros  r0  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_   rL   r2   r`  r   çš™™™™™ñ?©rJ   r	   )	r:   r:   r:   r:   r:   r:   r:   r:   r:   )	r:   r   r:   r+   r   r)   rL   r:   r:   )	r:   r2   rØ   rÙ   r;   r   rÚ   r:   r:   )	r:   r1   rÛ   rÜ   rÝ   rÞ   rß   r:   r:   )	r:   rà   rá   rj   râ   rã   rä   r:   r:   )	r:   rå   ri   ræ   rç   rè   ré   r:   r:   ©r   r3   r4   rW   r   r   ©r!   rY  rY   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_   rL   r2   ©r`  r`  r   rl  rm  )	rl  rl  rl  rl  rl  rl  rl  rl  rl  )	rl  rm   rn   ro   rp   rq   rr   rl  rl  )	rl  rs   rt   ru   rv   rw   rx   rl  rl  )	rl  ry   rz   r{   r|   r}   r~   rl  rl  )	rl  r   r€   r�   r‚   rƒ   r„   rl  rl  )	rl  r…   r†   r‡   rˆ   r‰   rŠ   rl  rl  ©r   r3   r4   rÒ   rR  rW   r   r   )r!   rY  Z	arr_floatrY   r"   r&   r&   r'   Útest_check_constant_float28  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 )Nrf   r6   rh   r   )çš™™™™™ñ¿ç333333ó¿rh  )‘rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  rt  r   r:   r+   r   r)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rj   râ   rã   rä   rå   ri   ræ   rç   rè   ré   r_   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r×   ru  ru  ru  ru  ru  ru  ru  ru  ru  ru  ru  ru  ru  ru  ru  ru  ru  ru  ru  ru  )r   r3   r   rW   r   r   rÓ   r&   r&   r'   Útest_check_constant_float3M  r6  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_   rL   r2   )©r:   rU  r   r   rm  )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r:   r+   r   r)   rL   r   r   )
r   r   r2   rØ   rÙ   r;   r   rÚ   r   r   )
r   r   r1   rÛ   rÜ   rÝ   rÞ   rß   r   r   )
r   r   rà   rá   rj   râ   rã   rä   r   r   )
r   r   rå   ri   ræ   rç   rè   ré   r   r   rn  ro  r&   r&   r'   Ú"test_check_constant_odd_pad_amounte  s   
ÿøÿz/TestConstant.test_check_constant_odd_pad_amountc                 C   s\   t  d¡ dd¡}t jj|dddd�}t  g d¢g d¢g d	¢g d
¢g d
¢g¡}t||ƒ d S )Nr)   r+   )r`  )r:   r   r   )r`  ©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   r3   r4   ÚlibrW   r   r   ro  r&   r&   r'   Útest_check_constant_pad_2dv  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   ÿÿÿÿ rL   r6   r:   r   rm  rØ   l   ÿÿÿÿ )r   ÚfullZuint64rW   Úminr   Zint64)r!   Z
uint64_maxrY  rY   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 )Nr:   r6   r   r   )Ú	pad_widthrJ   r	   r]  r+   )r   r   r   rW   r   )r!   rY  Zobj_aZobj_bZ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   rU  rw  r   rT   ©r   r)   r)   ©r   ÚzerosrW   rV   ©r!   rY  r$   r&   r&   r'   Útest_pad_empty_dimension   ó   
z%TestConstant.test_pad_empty_dimensionN)rF   rG   rH   ri  rk  rp  rs  rv  rx  r{  r~  r€  r‰  r&   r&   r&   r'   rf  ó  s    rf  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 )
Nrf   rg   rh   r   )r)   rL   )r
   )‘rq   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Ä?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Ð   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#@rr   gñhãˆµøä>)ZrtolZatol)r   r3   rÒ   rW   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 )Nrj   r)   rL   )r+   r+   r   rN   ©rJ   r
   )	rm   rm   rm   rm   rm   rm   rm   rm   rm   )	rm   rm   rm   rl   rn   g      ø?ro   rn   rm   )	rm   rm   rm   rn   ro   rp   rq   ro   rm   )	rm   g      @rr   rs   rt   ru   rv   g      @rm   )	rm   rr   rw   rx   ry   rz   r{   rt   rm   )	rm   ç      @r|   r}   r~   r   r€   ç      #@rm   )	rm   g      @rŽ  ru   g      !@rv   r�  g      @rm   rr  ro  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+   rQ  rC   r   r�  r1   r   r2   éúÿÿÿr9   r<   )Z	fractionsr’  r   r   rW   r   )r!   r’  rY  Ú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+   rL   )éß   é{   r   rT   Nr   rm   rQ  )r   rW   rD   r4   r   )r!   r*   r&   r&   r'   Útest_end_valuesà  s
   zTestLinearRamp.test_end_valuesr7   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   r6   r   r   r�  )r   r:   r+   r   r+   r:   r   )r   r+   r:   r   r:   r+   r   N)r   r   rW   r   )r!   r7   r#   r$   r"   r&   r&   r'   Útest_negative_differenceè  s   
z'TestLinearRamp.test_negative_differenceN)rF   rG   rH   rŒ  r�  r?   ra   ZxfailÚAssertionErrorr•  r˜  rb   Ú_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S )ÚTestReflectc                 C   rÖ   )Nrf   rh   r   )‘ri   rå   rä   rã   râ   rj   rá   rà   rß   rÞ   rÝ   rÜ   rÛ   r1   rÚ   r   r;   rÙ   rØ   r2   rL   r)   r   r+   r:   r   r:   r+   r   r)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rj   râ   rã   rä   rå   ri   ræ   rç   rè   ré   r_   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r×   r-  r,  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  zTestReflect.test_check_simplec                 C   rg  )Nrf   rh   r   Úodd©r   )‘içÿÿÿéèÿÿÿééÿÿÿéêÿÿÿéëÿÿÿéìÿÿÿéíÿÿÿéîÿÿÿéïÿÿÿéðÿÿÿéñÿÿÿéòÿÿÿéóÿÿÿéôÿÿÿéõÿÿÿéöÿÿÿé÷ÿÿÿéøÿÿÿéùÿÿÿr“  éûÿÿÿr9   r8   r<   rQ  r   r:   r+   r   r)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rj   râ   rã   rä   rå   ri   ræ   rç   rè   ré   r_   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r×   rf   r9  é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  rj  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 )NrL  ©r2   rØ   rÙ   rM  r   )rØ   r2   rØ   rÙ   rØ   r2   rØ   rÙ   rØ   r2   rØ   rÙ   rØ   r2   rØ   ©rL   r)   rL   r2   rL   r)   rL   r2   rL   r)   rL   r2   rL   r)   rL   rN  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 )NrL  rM  r   rÆ  rN  rÓ   r&   r&   r'   Útest_check_shapeC  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:   rN  rÓ   r&   r&   r'   Útest_check_01Y  ó   zTestReflect.test_check_01c                 C   rÊ  )NrË  r   r   )	r+   r   r+   r:   r+   r   r+   r:   r+   rN  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   rN  rÓ   r&   r&   r'   Útest_check_03c  rÍ  zTestReflect.test_check_03N)
rF   rG   rH   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.rJ   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)   rT   r   )r   r   )rw  r„  )r?   r@   rA   r   rW   Zndarrayr‡  rc  r&   r&   r'   r‰  l  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„  rw  rT   )rÙ   r   r)   )r   rW   rD   rV   )r!   rJ   r$   r&   r&   r'   Útest_pad_non_empty_dimension{  s   z+TestEmptyArray.test_pad_non_empty_dimensionN)rF   rG   rH   Ú__doc__r?   ra   rb   Úsortedrc   rd   r‰  rÑ  r&   r&   r&   r'   rÐ  i  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Ö   )Nrf   rh   r   )‘rå   rä   rã   râ   rj   rá   rà   rß   rÞ   rÝ   rÜ   rÛ   r1   rÚ   r   r;   rÙ   rØ   r2   rL   r)   r   r+   r:   r   r   r:   r+   r   r)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rj   râ   rã   rä   rå   ri   ræ   rç   rè   ré   r_   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r×   r×   r-  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  zTestSymmetric.test_check_simplec                 C   rg  )Nrf   rh   r   r�  rž  )‘rŸ  r   r¡  r¢  r£  r¤  r¥  r¦  r§  r¨  r©  rª  r«  r¬  r­  r®  r¯  r°  r“  r±  r9   r8   r<   rQ  r   r   r:   r+   r   r)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rj   râ   rã   rä   rå   ri   ræ   rç   rè   ré   r_   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r×   r×   rf   r9  r²  r³  r´  rµ  r¶  r·  r¸  r¹  rº  r»  r¼  r½  r¾  r¿  rÀ  rÁ  rÂ  r.  rÓ   r&   r&   r'   rÄ  š  rj  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 )NrL  rÅ  rM  r   ©rL   r2   r2   rL   r)   r)   rL   r2   r2   rL   r)   r)   rL   r2   r2   )rØ   rÙ   rÙ   rØ   r2   r2   rØ   rÙ   rÙ   rØ   r2   r2   rØ   rÙ   rÙ   rN  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 )NrL  rÅ  rM  r   r�  rž  )r8   r<   r<   rQ  r   r   r:   r+   r+   r   r)   r)   rL   r2   r2   )rQ  r   r   r:   r+   r+   r   r)   r)   rL   r2   r2   rØ   rÙ   rÙ   )r:   r+   r+   r   r)   r)   rL   r2   r2   rØ   rÙ   rÙ   r;   r   r   )r   r)   r)   rL   r2   r2   rØ   rÙ   rÙ   r;   r   r   rÚ   r1   r1   )rL   r2   r2   rØ   rÙ   rÙ   r;   r   r   rÚ   r1   r1   rÛ   rÜ   rÜ   )rØ   rÙ   rÙ   r;   r   r   rÚ   r1   r1   rÛ   rÜ   rÜ   rÝ   rÞ   rÞ   )r;   r   r   rÚ   r1   r1   rÛ   rÜ   rÜ   rÝ   rÞ   rÞ   rß   rà   rà   rN  rÓ   r&   r&   r'   Útest_check_large_pad_oddÊ  s(   ñÿz&TestSymmetric.test_check_large_pad_oddc                 C   rÈ  )NrL  rM  r   rÕ  rN  rÓ   r&   r&   r'   rÉ  á  s&   
òÿzTestSymmetric.test_check_shapec                 C   rÊ  )NrË  r+   r   )r+   r:   r:   r+   r   r   r+   rN  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:   rN  rÓ   r&   r&   r'   rÎ  ü  rÍ  zTestSymmetric.test_check_02c                 C   rÊ  )NrË  r2   r   )r:   r+   r   r   r+   r:   r:   r+   r   r   r+   r:   r:   r+   r   rN  rÓ   r&   r&   r'   rÏ    rÍ  zTestSymmetric.test_check_03N)rF   rG   rH   rŒ  rÄ  rÇ  rÖ  rÉ  rÌ  rÎ  rÏ  r&   r&   r&   r'   rÔ  �  s    rÔ  c                   @   r   )ÚTestWrapc                 C   rÖ   )Nrf   rh   r   )‘r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r×   r   r:   r+   r   r)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   rj   râ   rã   rä   rå   ri   ræ   rç   rè   ré   r_   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r×   r   r:   r+   r   r)   rL   r2   rØ   rÙ   r;   r   rÚ   r1   rÛ   rÜ   rÝ   rÞ   rß   rà   rá   r.  rÓ   r&   r&   r'   rŒ    r0  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 )Nr1   ry  )r   r1   r   )r   rÚ   rÙ   r;   r   rÚ   rÙ   r;   r   rÚ   rÙ   r;   r   rÚ   rÙ   r;   r   rÚ   rÙ   r;   r   rÚ   rÙ   r;   r   rÚ   )r+   r   r   r:   r+   r   r   r:   r+   r   r   r:   r+   r   r   r:   r+   r   r   r:   r+   r   r   r:   r+   r   )r2   rØ   r)   rL   r2   rØ   r)   rL   r2   rØ   r)   rL   r2   rØ   r)   rL   r2   rØ   r)   rL   r2   rØ   r)   rL   r2   rØ   r^  rÓ   r&   r&   r'   rÇ     s@   
Îÿ6zTestWrap.test_check_large_padc                 C   rÊ  )NrË  r   r   )	r:   r+   r   r:   r+   r   r:   r+   r   rN  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:   rN  rÓ   r&   r&   r'   rÎ  a  rÍ  zTestWrap.test_check_02c                 C   s8   t  d¡}t j|ddd�}t||d d…d d…f ƒ d S )NrJ  )r   rL   r   rT   r±  )r   rD   rW   r   rÓ   r&   r&   r'   Útest_pad_with_zerof  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.
        rL   )r1   r   r   rT   r   N)r   r1   r8   )r   r3   rW   r   Zr_rÓ   r&   r&   r'   Útest_repeated_wrappingk  s   
 
$zTestWrap.test_repeated_wrappingN)	rF   rG   rH   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 ©	Nr1   ©r)   r   r[  r   )r   r   r   r   r:   r+   r+   r+   )r   r   r   r   r)   rL   rL   rL   )r2   r2   r2   r2   rØ   rÙ   rÙ   rÙ   )r;   r;   r;   r;   r   rÚ   rÚ   rÚ   r^  rÓ   r&   r&   r'   rŒ  z  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Ë  )r`  r   )r:   r:   r+   r   r   r   rL  rq  rå   r+   r   r)   )r`  r`  r`  )r   r   rW   r   r3   r4   )r!   r*   Úpaddedr"   r&   r&   r'   Útest_check_width_shape_1_2�  s   

z#TestEdge.test_check_width_shape_1_2N)rF   rG   rH   rŒ  rß  r&   r&   r&   r'   rÛ  y  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)   r2   rC   )r   r:   r   rT   )r;   r   r+   r8   r   rQ  ©r   r3   r4   rW   rV   r   rˆ  r&   r&   r'   Útest_simple¡  s   zTestEmpty.test_simplec                 C   r�  )Nr‚  rƒ  r   rT   r…  r†  rˆ  r&   r&   r'   r‰  §  rŠ  z"TestEmpty.test_pad_empty_dimensionN)rF   rG   rH   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&   )Zvectorr  ZiaxisÚkwargsr&   r&   r'   Ú_padwithtens®  s   z6test_legacy_vector_functionality.<locals>._padwithtensr2   r+   r   )r   r   r   r   r   r   r   )r   r   r   r:   r+   r   r   )r   r   r   r)   rL   r   r   r^  )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   rT   )r   r   r:   r   r   rN  )r*   rÔ   r&   r&   r'   Útest_unicode_modeÁ  rÍ  ræ  rJ   )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_valuer[  )r;   rÙ   rT   )r   r|  r   rW   )rJ   r*   rZ   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)   rL   r2   rØ   )rw  rU  r]  )r`  ry  )rL   r2   ))r   r)   rL   )r   r:   r+   rJ   c                 C   óV   t  d¡ d¡}d}tjt|d�� t  |||¡ W d   ƒ d S 1 s$w   Y  d S )Nr_   rV  z(operands could not be broadcast togetherr=   rX  ©r!   r  rJ   rY  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 )Nr_   rV  zDinput operand has more dimensions than allowed by the axis remappingr=   ))r]  )r)   )rL   )r„  rw  rU  rX  )r!   rJ   rY  r>   r&   r&   r'   Útest_misshaped_pad_width_2Þ  s
   "ÿz'TestPadWidth.test_misshaped_pad_width_2rT  c                 C   ré  )Nr_   rV  rW  r=   rX  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:   rQ  )))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 )Nr_   rV  z%`pad_width` must be of integral type.r=   r6   )r   r3   r4   r?   r@   Ú	TypeErrorrW   r   )r!   r  r7   rJ   rY  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Ü  r^  rÓ   r&   r&   r'   Útest_pad_width_as_ndarray  s    
öÿz&TestPadWidth.test_pad_width_as_ndarray)r   rN   )rN   rN   c                 C   s,   t  d¡ dd¡}t|t j|||d�ƒ d S )Nr_   r2   rL   rT   )r   r3   r4   r   rW   )r!   r  rJ   rY  r&   r&   r'   Útest_zero_pad_width  s   z TestPadWidth.test_zero_pad_width)rF   rG   rH   r?   ra   rb   rc   rd   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  ƒ q'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)
rc   ÚvaluesÚupdater   rW   ÚitemsÚformatr?   r@   rA   )rJ   ÚallowedÚnot_allowedrã  ÚkeyÚvaluer>   r&   r&   r'   Útest_kwargs!  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   rW   )rY  r&   r&   r'   Útest_constant_zero_default2  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)   rT   )r÷  r?   r@   rA   r   rW   )rJ   r>   r&   r&   r'   Útest_unsupported_mode7  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)   r2   r+   rC   )rØ   rÙ   r8   rá  )rJ   rY  r$   r&   r&   r'   Útest_non_contiguous_array>  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.)rL   r   ÚC)ÚorderrL   ZC_CONTIGUOUSÚFZF_CONTIGUOUSN)r   rD   rW   Úflags)rJ   r#   r&   r&   r'   Útest_memory_layout_persistenceF  s   r  r7   c                 C   s0   t jd| d�}t j|d|d�}|j| ksJ ‚d S )N)r   r+   r:   r6   r:   rT   )r   r‡  rW   r7   )r7   rJ   rY  r$   r&   r&   r'   Útest_dtype_persistenceO  s   r  )&rÒ  r?   Znumpyr   Znumpy.testingr   r   r   Znumpy.lib.arraypadr   Zsctypesr›  rc   r   rI   re   rf  r‹  rœ  rÐ  rÔ  r×  rÛ  rà  rå  ræ  ra   rb   rç  rè  rd   rü  rý  r   rÿ  r   r  r  r&   r&   r&   r'   Ú<module>   sr    ÿþýÿõS  l 4Un r'
Q



