o
    Ô­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
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_pairsÚuintÚintÚfloatÚcomplexÚconstant_valuesÚ
end_valuesÚstat_lengthÚreflect_typeÚeven)ÚconstantÚedgeÚlinear_rampÚmaximumÚmeanÚmedianÚminimumÚreflectÚ	symmetricÚwrapÚemptyc                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestAsPairsc                 C   sh   t  ddggd ¡}ddgdggfD ]}t|dƒ}t||ƒ qtƒ }tt|dƒt  ||ggd ¡ƒ dS )z Test casting for a single value.é   é
   N©ÚnpÚarrayr   r   Úobject©ÚselfÚexpectedÚxÚresultÚobj© r'   úZ/var/www/html/CropPilot/venv/lib/python3.10/site-packages/numpy/lib/tests/test_arraypad.pyÚtest_single_value!   s   
þzTestAsPairs.test_single_valuec                 C   sÂ   t  ddggd ¡}ddgddggfD ]}t|dƒ}t||ƒ qtƒ }ttd|gdƒt  d|ggd ¡ƒ ttdgdggdƒt  ddgddgg¡ƒ ttdg|ggdƒt  ddg||gg¡ƒ dS )z-Test proper casting for two different values.r   é   r   Úaé   Nr   r!   r'   r'   r(   Útest_two_values.   s"   
þþþzTestAsPairs.test_two_valuesc                 C   s0   d}t td ddd�|ƒ t td ddd�|ƒ d S )N)©NNr.   r.   r   F©Úas_indexT)r   r   ©r"   r#   r'   r'   r(   Útest_with_noneG   s   þþzTestAsPairs.test_with_nonec                 C   s$   t  d¡ d¡}tt|dƒ|ƒ dS )z?Test if `x` already matching desired output are passed through.é   )é   r,   r4   N)r   ÚarangeÚreshaper   r   r1   r'   r'   r(   Útest_pass_throughR   s
   þzTestAsPairs.test_pass_throughc              
   C   sä   t tddgddd�tjddggd tjd�ƒ t tddgddd�tjdd	ggd tjd�ƒ d
d
gd
ggd
d	gddgd
d	ggd	d
ggddggd ddgg fD ] }tjtdd�� t|ddd� W d  ƒ n1 sjw   Y  qOdS )z Test results if `as_index=True`.gÍÌÌÌÌÌ@gffffff
@r   Tr/   r   ©Údtypegö(\�Âõ@r*   éýÿÿÿéüÿÿÿé   r,   é	   éþÿÿÿznegative values©ÚmatchN)r   r   r   r   ÚintpÚpytestÚraisesÚ
ValueError)r"   r$   r'   r'   r(   Útest_as_indexZ   s    þþ(ÿÿ€þzTestAsPairs.test_as_indexc                 C   sÆ   t jtdd�� tdgggdƒ W d  ƒ n1 sw   Y  t jtdd�� tddgdd	ggdƒ W d  ƒ n1 s<w   Y  t jtdd�� tt d
¡dƒ W d  ƒ dS 1 s\w   Y  dS )z"Ensure faulty usage is discovered.zmore dimensions than allowedr?   r   r   Nzcould not be broadcastr<   r,   r*   ©r,   r   )rB   rC   rD   r   r   Úones)r"   r'   r'   r(   Útest_exceptionsi   s   ÿÿ"ÿzTestAsPairs.test_exceptionsN)	Ú__name__Ú
__module__Ú__qualname__r)   r-   r2   r7   rE   rH   r'   r'   r'   r(   r       s    r   c                   @   sZ   e Zd Zej de ¡ ¡dd„ ƒZej dg d¢¡dd„ ƒZ	ej dg d¢¡dd„ ƒZ
d	S )
ÚTestConditionalShortcutsÚmodec                 C   s>   t  d¡ ddd¡}dd„ |jD ƒ}t|t j|||d�ƒ d S )Néx   r*   é   r4   c                 S   ó   g | ]}d ‘qS )©r   r   r'   ©Ú.0Ú_r'   r'   r(   Ú
<listcomp>w   ó    zHTestConditionalShortcuts.test_zero_padding_shortcuts.<locals>.<listcomp>©rM   ©r   r5   r6   Úshaper   Úpad©r"   rM   ÚtestÚpad_amtr'   r'   r(   Útest_zero_padding_shortcutst   s   z4TestConditionalShortcuts.test_zero_padding_shortcuts)r   r   r   r   c                 C   sL   t  d¡ ddd¡}dd„ |jD ƒ}tt j||dd�t j|||d	d
�ƒ d S )NrN   r*   rO   r4   c                 S   rP   )©r<   r<   r'   rR   r'   r'   r(   rU   }   rV   zITestConditionalShortcuts.test_shallow_statistic_range.<locals>.<listcomp>r   rW   r<   ©rM   r   rX   r[   r'   r'   r(   Útest_shallow_statistic_rangez   s
   ÿz5TestConditionalShortcuts.test_shallow_statistic_rangec                 C   sJ   t  d¡ dd¡}dd„ |jD ƒ}tt j|||d�t j|||dd�ƒ d S )Né   rO   r4   c                 S   rP   ))r   r   r'   rR   r'   r'   r(   rU   „   rV   zFTestConditionalShortcuts.test_clip_statistic_range.<locals>.<listcomp>rW   r`   rX   r[   r'   r'   r(   Útest_clip_statistic_range�   s
   ÿz2TestConditionalShortcuts.test_clip_statistic_rangeN)rI   rJ   rK   rB   ÚmarkÚparametrizeÚ
_all_modesÚkeysr^   ra   rc   r'   r'   r'   r(   rL   s   s    

rL   c                   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZej dg d¢¡ej dg d ¢¡d!d"„ ƒƒZd#d$„ Zej d%¡ej d&¡ej dd'd(g¡d)d*„ ƒƒƒZej dd+d,g¡d-d.„ ƒZd/S )0ÚTestStatisticc                 C   s>   t  d¡ d¡}t j|dddd�}t  g d¢¡}t||ƒ d S )Néd   Úf)©é   é   r   )rF   ©r   )‘ç      à?ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ro   ç        ç      ð?ç       @ç      @ç      @ç      @ç      @ç      @ç       @ç      "@ç      $@ç      &@ç      (@ç      *@ç      ,@ç      .@ç      0@ç      1@ç      2@ç      3@ç      4@ç      5@ç      6@ç      7@ç      8@ç      9@ç      :@ç      ;@ç      <@ç      =@ç      >@ç      ?@ç      @@ç     €@@ç      A@ç     €A@ç      B@ç     €B@ç      C@ç     €C@ç      D@ç     €D@ç      E@ç     €E@ç      F@ç     €F@ç      G@ç     €G@ç      H@ç     €H@ç      I@ç     €I@ç      J@ç     €J@ç      K@ç     €K@ç      L@ç     €L@ç      M@ç     €M@ç      N@ç     €N@ç      O@ç     €O@ç      P@ç     @P@ç     €P@ç     ÀP@ç      Q@ç     @Q@ç     €Q@ç     ÀQ@ç      R@ç     @R@ç     €R@ç     ÀR@ç      S@ç     @S@ç     €S@ç     ÀS@ç      T@ç     @T@ç     €T@ç     ÀT@ç      U@ç     @U@ç     €U@ç     ÀU@ç      V@ç     @V@ç     €V@ç     ÀV@ç      W@ç     @W@ç     €W@ç     ÀW@ç      X@ç     @X@ç     €X@ç     ÀX@rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   rÒ   ©r   r5   ÚastyperZ   r   r   ©r"   r+   Úbr'   r'   r(   Útest_check_mean_stat_lengthŠ   s   ÿz)TestStatistic.test_check_mean_stat_lengthc                 C   ó4   t  d¡}t  |dd¡}t  g d¢¡}t||ƒ d S )Nri   rk   r   )‘éc   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   r   r<   r,   r   r*   rO   r4   é   é   r=   r   é   r3   é   é   é   é   é   é   é   rm   é   é   é   é   rl   é   é   é   é   rb   é   é    é!   é"   é#   é$   é%   é&   é'   é(   é)   é*   é+   é,   é-   é.   é/   é0   é1   é2   é3   é4   é5   é6   é7   é8   é9   é:   é;   é<   é=   é>   é?   é@   éA   éB   éC   éD   éE   éF   éG   éH   éI   éJ   éK   éL   éM   éN   éO   éP   éQ   éR   éS   éT   éU   éV   éW   éX   éY   éZ   é[   é\   é]   é^   é_   é`   éa   éb   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   rÚ   ©r   r5   rZ   r   r   rÖ   r'   r'   r(   Útest_check_maximum_1¢   ó   
ÿz"TestStatistic.test_check_maximum_1c                 C   ó8   t  d¡d }t  |dd¡}t  g d¢¡}t||ƒ d S )Nri   r<   rk   r   )‘ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   r<   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   rm   rå   ræ   rç   rè   rl   ré   rê   rë   rì   rb   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   r1  rÖ   r'   r'   r(   Útest_check_maximum_2º   ó   ÿz"TestStatistic.test_check_maximum_2c                 C   ó<   t  d¡d }t j|dddd�}t  g d¢¡}t||ƒ d S )Nri   r<   rk   r   r   rn   )‘r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   rm   rå   ræ   rç   rè   rl   ré   rê   rë   rì   rb   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   ri   r1  rÖ   r'   r'   r(   Útest_check_maximum_stat_lengthÒ   ó   ÿz,TestStatistic.test_check_maximum_stat_lengthc                 C   rÙ   )Nri   rk   r   ©‘r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   rm   rå   ræ   rç   rè   rl   ré   rê   rë   rì   rb   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r1  rÖ   r'   r'   r(   Útest_check_minimum_1ê   r3  z"TestStatistic.test_check_minimum_1c                 C   r4  )Nri   r,   rk   r   )‘r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   rm   rå   ræ   rç   rè   rl   ré   rê   rë   rì   rb   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   ri   ée   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r,   r1  rÖ   r'   r'   r(   Útest_check_minimum_2  r6  z"TestStatistic.test_check_minimum_2c                 C   r7  )Nri   r<   rk   r   r   rn   )‘r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r<   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   rm   rå   ræ   rç   rè   rl   ré   rê   rë   rì   rb   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   ri   r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r)  r1  rÖ   r'   r'   r(   Útest_check_minimum_stat_length  r9  z,TestStatistic.test_check_minimum_stat_lengthc                 C   ó:   t  d¡ d¡}t  |dd¡}t  g d¢¡}t||ƒ d S )Nri   rj   rk   r   ©‘ç     ÀH@rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   rÓ   rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rA  rÔ   rÖ   r'   r'   r(   Útest_check_median2  ó   ÿzTestStatistic.test_check_medianc                 C   s`   t  g d¢g d¢g d¢g¡}t  |dd¡}t  g d¢g d¢g d¢g d	¢g d¢g¡}t||ƒ d S )
N©r   r<   r*   ©r*   rO   r=   ©r=   rÜ   r,   r<   r   )r*   r*   rO   r*   r*   ©r   r   r<   r*   r   ©rO   r*   rO   r=   rO   ©rÜ   r=   rÜ   r,   rÜ   )r   r   rZ   r   rÖ   r'   r'   r(   Útest_check_median_01J  s   úÿ	z"TestStatistic.test_check_median_01c                 C   sd   t  g d¢g d¢g d¢g¡}t  |jdd¡j}t  g d¢g d¢g d¢g d	¢g d¢g¡}t||ƒ d S )
NrD  rE  rF  r<   r   )rO   r*   rO   r*   rO   rG  rH  rI  )r   r   rZ   ÚTr   rÖ   r'   r'   r(   Útest_check_median_02X  s   úÿ	z"TestStatistic.test_check_median_02c                 C   sN   t  d¡ d¡}d|d< d|d< t j|ddd	d
�}t  g d¢¡}t||ƒ d S )Nri   rj   rr   r<   rÐ   r/  rk   r   ©r   rO   rn   )‘rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rr   rp   rr   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÏ   rÐ   rÐ   rÒ   rÓ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÐ   rÔ   rÖ   r'   r'   r(   Útest_check_median_stat_lengthf  s   ÿz+TestStatistic.test_check_median_stat_lengthc                 C   s‚   g d¢g}t j|dddd�}t  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )N©r*   rO   r4   ©rO   rÛ   r   r,   rn   )r*   r*   r*   r*   r*   r*   rO   r4   r4   r4   r4   r4   r4   r4   r4   ©r   rZ   r   r   rÖ   r'   r'   r(   Útest_check_mean_shape_one€  s&   
òÿz'TestStatistic.test_check_mean_shape_onec                 C   r?  )Nri   rj   rk   r   r@  rÔ   rÖ   r'   r'   r(   Útest_check_mean_2–  rC  zTestStatistic.test_check_mean_2rM   )r   r   r   r   c                 C   sF   t  g d¢¡t jg d¢t jd� }t  |d|¡}t|d |d ƒ dS )z3 Test that appended and prepended values are equal )éÿÿÿÿr,   rT  )r   gê-�™—q=r   r8   r_   r   rT  N)r   r   Úfloat64rZ   r   )r"   rM   r+   r'   r'   r(   Útest_same_prepend_append®  s   "
z&TestStatistic.test_same_prepend_appendr   ©r>   )r>   )r   rT  ))rO   r,   )r>   r   ))r;   ©r,   c                 C   sZ   t  d¡ d¡}d}tjt|d�� t j|d||d� W d   ƒ d S 1 s&w   Y  d S )Nrb   ©r4   rO   ú#index can't contain negative valuesr?   r,   rn   ©r   r5   r6   rB   rC   rD   rZ   )r"   rM   r   Úarrr@   r'   r'   r(   Útest_check_negative_stat_length¼  s
   "ÿz-TestStatistic.test_check_negative_stat_lengthc                 C   s‚   t  d¡}t  |d¡}t j|dddd�}t  g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )Nrb   rY  ©rF   ©r   r,   r   ©r   r`   )
r4   r4   r4   rO   r4   rÛ   rÜ   r=   rÜ   rÜ   )
r<   r<   r<   r   r<   r,   r   r*   r   r   )
rÝ   rÝ   rÝ   r   rÝ   r3   rÞ   rß   rÞ   rÞ   )
rá   rá   rá   rà   rá   râ   rã   rä   rã   rã   )
rå   rå   rå   rm   rå   ræ   rç   rè   rç   rç   )
ré   ré   ré   rl   ré   rê   rë   rì   rë   rë   ©r   r5   r6   rZ   r   r   rÖ   r'   r'   r(   Útest_simple_stat_lengthÆ  s$   
ôÿz%TestStatistic.test_simple_stat_lengthz)ignore:Mean of empty slice:RuntimeWarningzCignore:invalid value encountered in( scalar)? divide:RuntimeWarningr   r   c                 C   s>   t jddgd|dd�}t  t jddt jt jg¡}t||ƒ d S )Nrq   rr   ©r<   r,   r   rn   )r   rZ   r   Únanr   )r"   rM   r\  r#   r'   r'   r(   Útest_zero_stat_length_validÛ  s   z)TestStatistic.test_zero_stat_length_validr   r   c                 C   s  d}t jt|d�� tjddgd|dd� W d   ƒ n1 sw   Y  t jt|d�� tjddgd|dd� W d   ƒ n1 sAw   Y  t jt|d�� tjddgd|dd� W d   ƒ n1 scw   Y  t jt|d�� tjddgd|dd� W d   ƒ d S 1 s†w   Y  d S )	Nz,stat_length of 0 yields no value for paddingr?   rq   rr   r   rn   )r<   r   r<   )rB   rC   rD   r   rZ   ©r"   rM   r@   r'   r'   r(   Útest_zero_stat_length_invalidå  s   ÿÿÿ"ÿz+TestStatistic.test_zero_stat_length_invalidN)rI   rJ   rK   rØ   r2  r5  r8  r;  r=  r>  rB  rJ  rL  rN  rR  rS  rB   rd   re   rV  r]  rb  Úfilterwarningsre  rg  r'   r'   r'   r(   rh   ‰   s<    
ÿ
ÿrh   c                   @   s\   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ ZdS )ÚTestConstantc                 C   ó8   t  d¡}t j|dddd�}t  g d¢¡}t||ƒ d S )Nri   rk   r   )r   rm   ©r
   )‘r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r<   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   rm   rå   ræ   rç   rè   rl   ré   rê   rë   rì   rb   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   rm   r1  rÖ   r'   r'   r(   Útest_check_constantó  ó   
ÿz TestConstant.test_check_constantc                 C   rÙ   )Nri   rk   r   r:  r1  rÖ   r'   r'   r(   Útest_check_constant_zeros  r3  z&TestConstant.test_check_constant_zerosc                 C   sl   t  d¡ dd¡}t j|dddd�}t  g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )Nrb   rO   r4   rc  r   çš™™™™™ñ?©rM   r
   )	r<   r<   r<   r<   r<   r<   r<   r<   r<   )	r<   r   r<   r,   r   r*   rO   r<   r<   )	r<   r4   rÛ   rÜ   r=   r   rÝ   r<   r<   )	r<   r3   rÞ   rß   rà   rá   râ   r<   r<   )	r<   rã   rä   rm   rå   ræ   rç   r<   r<   )	r<   rè   rl   ré   rê   rë   rì   r<   r<   ©r   r5   r6   rZ   r   r   ©r"   r\  r\   r#   r'   r'   r(   Útest_check_constant_float#  s    
ÿ÷ÿz&TestConstant.test_check_constant_floatc                 C   sx   t  d¡ dd¡}| t j¡}t j|dddd�}t  g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )Nrb   rO   r4   ©rc  rc  r   ro  rp  )	ro  ro  ro  ro  ro  ro  ro  ro  ro  )	ro  rp   rq   rr   rs   rt   ru   ro  ro  )	ro  rv   rw   rx   ry   rz   r{   ro  ro  )	ro  r|   r}   r~   r   r€   r�   ro  ro  )	ro  r‚   rƒ   r„   r…   r†   r‡   ro  ro  )	ro  rˆ   r‰   rŠ   r‹   rŒ   r�   ro  ro  ©r   r5   r6   rÕ   rU  rZ   r   r   )r"   r\  Ú	arr_floatr\   r#   r'   r'   r(   Útest_check_constant_float27  s"   
ÿ÷ÿz'TestConstant.test_check_constant_float2c                 C   s<   t jdtd�}t j|dddd�}t  g d¢¡}t||ƒ d S )Nri   r8   rk   r   )çš™™™™™ñ¿ç333333ó¿rk  )‘rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  rx  r   r<   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   rm   rå   ræ   rç   rè   rl   ré   rê   rë   rì   rb   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  ry  )r   r5   r   rZ   r   r   rÖ   r'   r'   r(   Útest_check_constant_float3L  r9  z'TestConstant.test_check_constant_float3c              
   C   sf   t  d¡ dd¡}t j|dddd�}t  g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )Nrb   rO   r4   )©r<   rX  r   r   rp  )
r   r   r   r   r   r   r   r   r   r   )
r   r   r   r<   r,   r   r*   rO   r   r   )
r   r   r4   rÛ   rÜ   r=   r   rÝ   r   r   )
r   r   r3   rÞ   rß   rà   rá   râ   r   r   )
r   r   rã   rä   rm   rå   ræ   rç   r   r   )
r   r   rè   rl   ré   rê   rë   rì   r   r   rq  rr  r'   r'   r(   Ú"test_check_constant_odd_pad_amountd  s   
ÿøÿz/TestConstant.test_check_constant_odd_pad_amountc                 C   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,   )rc  ©r<   r   r   )rc  ©r   r*   rp  )r   r<   r<   r*   r*   r*   )r   r   r<   r*   r*   r*   )r   r,   r   r*   r*   r*   )r   r,   r,   r*   r*   r*   )r   r5   r6   ÚlibrZ   r   r   rr  r'   r'   r(   Útest_check_constant_pad_2du  s   ÿüÿz'TestConstant.test_check_constant_pad_2dc                 C   s”   d}t jd|t jd�}t j|dd| ¡ d�}t jd|t jd�}t||ƒ d}t jd|t jd�}t j|dd| ¡ d�}t jd|t jd�}t||ƒ d S )	Nl   ÿÿÿÿ rO   r8   r<   r   rp  rÛ   l   ÿÿÿÿ )r   ÚfullÚuint64rZ   Úminr   Úint64)r"   Ú
uint64_maxr\  r\   r#   Ú	int64_maxr'   r'   r(   Útest_check_large_integers‚  s   
z&TestConstant.test_check_large_integersc                 C   sr   t jdtd�}tƒ }||d< tƒ }tƒ }t j|dd||fd�}t jdtd�}||d< ||d< ||d< t||ƒ d S )Nr<   r8   r   r   )Ú	pad_widthrM   r
   r`  r,   )r   r   r    rZ   r   )r"   r\  Úobj_aÚobj_bÚobj_cr#   r'   r'   r(   Útest_check_object_array�  s   
ÿz$TestConstant.test_check_object_arrayc                 C   ó0   t  d¡}t j|g d¢dd�}|jdksJ ‚d S )N©r   r   r,   ©©r   rX  r{  r   rW   ©r   r*   r*   ©r   ÚzerosrZ   rY   ©r"   r\  r%   r'   r'   r(   Útest_pad_empty_dimensionŸ  ó   
z%TestConstant.test_pad_empty_dimensionN)rI   rJ   rK   rl  rn  rs  rw  rz  r|  r€  r‡  rŒ  r•  r'   r'   r'   r(   ri  ò  s    ri  c                   @   sR   e Zd Zdd„ Zdd„ Zejjefd�dd„ ƒZ	dd	„ Z
ej d
e¡dd„ ƒZdS )ÚTestLinearRampc                 C   sD   t  d¡ d¡}t j|dddd�}t  g d¢¡}t||ddd	� d S )
Nri   rj   rk   r   )r*   rO   )r   )‘rt   g¸…ëQ¸@gq=
×£p@g)\�Âõ(@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Ä?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Ó   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#@ru   gñhãˆµøä>)ÚrtolÚatol)r   r5   rÕ   rZ   r   r   rÖ   r'   r'   r(   Útest_check_simple¦  s   ÿz TestLinearRamp.test_check_simplec                 C   st   t  d¡ dd¡ t j¡}t j|dddd�}t  g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )Nrm   r*   rO   )r,   r,   r   rQ   ©rM   r   )	rp   rp   rp   rp   rp   rp   rp   rp   rp   )	rp   rp   rp   ro   rq   g      ø?rr   rq   rp   )	rp   rp   rp   rq   rr   rs   rt   rr   rp   )	rp   g      @ru   rv   rw   rx   ry   g      @rp   )	rp   ru   rz   r{   r|   r}   r~   rw   rp   )	rp   ç      @r   r€   r�   r‚   rƒ   ç      #@rp   )	rp   g      @rœ  rx   g      !@ry   r�  g      @rp   ru  rr  r'   r'   r(   Útest_check_2d¾  s   ùÿ	zTestLinearRamp.test_check_2d)Ú
exceptionsc                 C   sˆ   ddl m} t |ddƒ|ddƒg¡}tj|dddd�}t |dd	ƒ|d
d	ƒ|dd	ƒ|dd	ƒ|dd	ƒ|dd	ƒ|dd	ƒg¡}t||ƒ d S )Nr   )ÚFractionr<   r,   rT  rF   r   r›  r3   r   r4   éúÿÿÿr;   r>   )Ú	fractionsr   r   r   rZ   r   )r"   r   r\  Úactualr#   r'   r'   r(   Útest_object_arrayÌ  s   ù	z TestLinearRamp.test_object_arrayc                 C   sz   t jt  d¡ dd¡ddd�}t|dd…df d	ƒ t|dd…d
f d	ƒ t|ddd…f d	ƒ t|d
dd…f d	ƒ dS )z!Ensure that end values are exact.r   r,   rO   )éß   é{   r   rW   Nr   rp   rT  )r   rZ   rG   r6   r   )r"   r+   r'   r'   r(   Útest_end_valuesß  s
   zTestLinearRamp.test_end_valuesr9   c                 C   s€   t jdg|d�}t j|dddd�}t jg d¢|d�}t||ƒ t jdg|d�}t j|dddd�}t jg d¢|d�}t||ƒ dS )	a<  
        Check correct behavior of unsigned dtypes if there is a negative
        difference between the edge to pad and `end_values`. Check both cases
        to be independent of implementation. Test behavior for all other dtypes
        in case dtype casting interferes with complex dtypes. See gh-14191.
        r   r8   r   r   r›  )r   r<   r,   r   r,   r<   r   )r   r,   r<   r   r<   r,   r   N)r   r   rZ   r   )r"   r9   r$   r%   r#   r'   r'   r(   Útest_negative_differenceç  s   
z'TestLinearRamp.test_negative_differenceN)rI   rJ   rK   rš  rž  rB   rd   ÚxfailÚAssertionErrorr¤  r§  re   Ú_numeric_dtypesr¨  r'   r'   r'   r(   r—  ¥  s    
r—  c                   @   óD   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Ù   )Nri   rk   r   )‘rl   rè   rç   ræ   rå   rm   rä   rã   râ   rá   rà   rß   rÞ   r3   rÝ   r   r=   rÜ   rÛ   r4   rO   r*   r   r,   r<   r   r<   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   rm   rå   ræ   rç   rè   rl   ré   rê   rë   rì   rb   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   r0  r/  r.  r-  r,  r+  r*  r)  r(  r'  r&  r%  r$  r#  r"  r!  r   r  r  r  r1  rÖ   r'   r'   r(   rš  û  r3  zTestReflect.test_check_simplec                 C   rj  )Nri   rk   r   Úodd©r   )‘içÿÿÿéèÿÿÿééÿÿÿéêÿÿÿéëÿÿÿéìÿÿÿéíÿÿÿéîÿÿÿéïÿÿÿéðÿÿÿéñÿÿÿéòÿÿÿéóÿÿÿéôÿÿÿéõÿÿÿéöÿÿÿé÷ÿÿÿéøÿÿÿéùÿÿÿr¡  éûÿÿÿr;   r:   r>   rT  r   r<   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   rm   rå   ræ   rç   rè   rl   ré   rê   rë   rì   rb   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   ri   r<  éf   ég   éh   éi   éj   ék   él   ém   én   éo   ép   éq   ér   és   ét   éu   év   éw   r1  rÖ   r'   r'   r(   Útest_check_odd_method  rm  z!TestReflect.test_check_odd_methodc                 C   sŠ   g d¢g d¢g}t  |dd¡}t  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )NrO  ©r4   rÛ   rÜ   rP  r   )rÛ   r4   rÛ   rÜ   rÛ   r4   rÛ   rÜ   rÛ   r4   rÛ   rÜ   rÛ   r4   rÛ   ©rO   r*   rO   r4   rO   r*   rO   r4   rO   r*   rO   r4   rO   r*   rO   rQ  rÖ   r'   r'   r(   Útest_check_large_pad+  s(   ñÿz TestReflect.test_check_large_padc                 C   ó~   g d¢g}t  |dd¡}t  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )NrO  rP  r   r×  rQ  rÖ   r'   r'   r(   Útest_check_shapeB  s&   
òÿzTestReflect.test_check_shapec                 C   ó.   t  g d¢dd¡}t  g d¢¡}t||ƒ d S )N©r<   r,   r   r,   r   )r   r,   r<   r,   r   r,   r<   rQ  rÖ   r'   r'   r(   Útest_check_01X  ó   zTestReflect.test_check_01c                 C   rÛ  )NrÜ  r   r   )	r,   r   r,   r<   r,   r   r,   r<   r,   rQ  rÖ   r'   r'   r(   Útest_check_02]  rÞ  zTestReflect.test_check_02c                 C   rÛ  )NrÜ  r*   r   )r<   r,   r   r,   r<   r,   r   r,   r<   r,   r   rQ  rÖ   r'   r'   r(   Útest_check_03b  rÞ  zTestReflect.test_check_03N)
rI   rJ   rK   rš  rÕ  rØ  rÚ  rÝ  rß  rà  r'   r'   r'   r(   r­  ú  s    r­  c                   @   sP   e Zd ZdZej dee 	¡ ddh ƒ¡dd„ ƒZ
ej de 	¡ ¡dd„ ƒZd	S )
ÚTestEmptyArrayz<Check how padding behaves on arrays with an empty dimension.rM   r   r   c                 C   sÐ   d}t jt|d�� tjg d|d� W d   ƒ n1 sw   Y  t jt|d�� tjt d¡d|d� W d   ƒ n1 s>w   Y  t jt|d�� tjt d¡d|d� W d   ƒ d S 1 saw   Y  d S )NzFcan't extend empty axis 0 using modes other than 'constant' or 'empty'r?   r*   rW   r   )r   r   )r{  r�  )rB   rC   rD   r   rZ   Úndarrayr“  rf  r'   r'   r(   r•  k  s   ÿÿ"ÿz'TestEmptyArray.test_pad_empty_dimensionc                 C   s(   t jt  d¡d|d�}|jdksJ ‚d S )N)r,   r   r,   )r`  r�  r{  rW   )rÜ   r   r*   )r   rZ   rG   rY   )r"   rM   r%   r'   r'   r(   Útest_pad_non_empty_dimensionz  s   z+TestEmptyArray.test_pad_non_empty_dimensionN)rI   rJ   rK   Ú__doc__rB   rd   re   Úsortedrf   rg   r•  rã  r'   r'   r'   r(   rá  h  s    ý

rá  c                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚTestSymmetricc                 C   rÙ   )Nri   rk   r   )‘rè   rç   ræ   rå   rm   rä   rã   râ   rá   rà   rß   rÞ   r3   rÝ   r   r=   rÜ   rÛ   r4   rO   r*   r   r,   r<   r   r   r<   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   rm   rå   ræ   rç   rè   rl   ré   rê   rë   rì   rb   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   rÚ   r0  r/  r.  r-  r,  r+  r*  r)  r(  r'  r&  r%  r$  r#  r"  r!  r   r  r  r1  rÖ   r'   r'   r(   rš  �  r3  zTestSymmetric.test_check_simplec                 C   rj  )Nri   rk   r   r®  r¯  )‘r°  r±  r²  r³  r´  rµ  r¶  r·  r¸  r¹  rº  r»  r¼  r½  r¾  r¿  rÀ  rÁ  r¡  rÂ  r;   r:   r>   rT  r   r   r<   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   rm   rå   ræ   rç   rè   rl   ré   rê   rë   rì   rb   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   rÚ   ri   r<  rÃ  rÄ  rÅ  rÆ  rÇ  rÈ  rÉ  rÊ  rË  rÌ  rÍ  rÎ  rÏ  rÐ  rÑ  rÒ  rÓ  r1  rÖ   r'   r'   r(   rÕ  ™  rm  z#TestSymmetric.test_check_odd_methodc                 C   sŠ   g d¢g d¢g}t  |dd¡}t  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )NrO  rÖ  rP  r   ©rO   r4   r4   rO   r*   r*   rO   r4   r4   rO   r*   r*   rO   r4   r4   )rÛ   rÜ   rÜ   rÛ   r4   r4   rÛ   rÜ   rÜ   rÛ   r4   r4   rÛ   rÜ   rÜ   rQ  rÖ   r'   r'   r(   rØ  ±  s(   ñÿz"TestSymmetric.test_check_large_padc                 C   sŽ   g d¢g d¢g}t j|dddd�}t  g d¢g d¢g d¢g d¢g d	¢g d	¢g d
¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )NrO  rÖ  rP  r   r®  r¯  )r:   r>   r>   rT  r   r   r<   r,   r,   r   r*   r*   rO   r4   r4   )rT  r   r   r<   r,   r,   r   r*   r*   rO   r4   r4   rÛ   rÜ   rÜ   )r<   r,   r,   r   r*   r*   rO   r4   r4   rÛ   rÜ   rÜ   r=   r   r   )r   r*   r*   rO   r4   r4   rÛ   rÜ   rÜ   r=   r   r   rÝ   r3   r3   )rO   r4   r4   rÛ   rÜ   rÜ   r=   r   r   rÝ   r3   r3   rÞ   rß   rß   )rÛ   rÜ   rÜ   r=   r   r   rÝ   r3   r3   rÞ   rß   rß   rà   rá   rá   )r=   r   r   rÝ   r3   r3   rÞ   rß   rß   rà   rá   rá   râ   rã   rã   rQ  rÖ   r'   r'   r(   Útest_check_large_pad_oddÉ  s(   ñÿz&TestSymmetric.test_check_large_pad_oddc                 C   rÙ  )NrO  rP  r   rç  rQ  rÖ   r'   r'   r(   rÚ  à  s&   
òÿzTestSymmetric.test_check_shapec                 C   rÛ  )NrÜ  r,   r   )r,   r<   r<   r,   r   r   r,   rQ  rÖ   r'   r'   r(   rÝ  ö  rÞ  zTestSymmetric.test_check_01c                 C   rÛ  )NrÜ  r   r   )	r   r,   r<   r<   r,   r   r   r,   r<   rQ  rÖ   r'   r'   r(   rß  û  rÞ  zTestSymmetric.test_check_02c                 C   rÛ  )NrÜ  r4   r   )r<   r,   r   r   r,   r<   r<   r,   r   r   r,   r<   r<   r,   r   rQ  rÖ   r'   r'   r(   rà     rÞ  zTestSymmetric.test_check_03N)rI   rJ   rK   rš  rÕ  rØ  rè  rÚ  rÝ  rß  rà  r'   r'   r'   r(   ræ  €  s    ræ  c                   @   r¬  )ÚTestWrapc                 C   rÙ   )Nri   rk   r   )‘r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   r   r<   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   rm   rå   ræ   rç   rè   rl   ré   rê   rë   rì   rb   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  rÚ   r   r<   r,   r   r*   rO   r4   rÛ   rÜ   r=   r   rÝ   r3   rÞ   rß   rà   rá   râ   rã   rä   r1  rÖ   r'   r'   r(   rš    r3  zTestWrap.test_check_simplec                 C   sÒ   t  d¡}t  |d¡}t  |dd¡}t  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )Nr3   r~  )r   r3   r   )r   rÝ   rÜ   r=   r   rÝ   rÜ   r=   r   rÝ   rÜ   r=   r   rÝ   rÜ   r=   r   rÝ   rÜ   r=   r   rÝ   rÜ   r=   r   rÝ   )r,   r   r   r<   r,   r   r   r<   r,   r   r   r<   r,   r   r   r<   r,   r   r   r<   r,   r   r   r<   r,   r   )r4   rÛ   r*   rO   r4   rÛ   r*   rO   r4   rÛ   r*   rO   r4   rÛ   r*   rO   r4   rÛ   r*   rO   r4   rÛ   r*   rO   r4   rÛ   ra  rÖ   r'   r'   r(   rØ    s@   
Îÿ6zTestWrap.test_check_large_padc                 C   rÛ  )NrÜ  r   r   )	r<   r,   r   r<   r,   r   r<   r,   r   rQ  rÖ   r'   r'   r(   rÝ  [  rÞ  zTestWrap.test_check_01c                 C   rÛ  )NrÜ  r*   r   )r   r<   r,   r   r<   r,   r   r<   r,   r   r<   rQ  rÖ   r'   r'   r(   rß  `  rÞ  zTestWrap.test_check_02c                 C   s8   t  d¡}t j|ddd�}t||d d…d d…f ƒ d S )NrM  )r   rO   r   rW   rÂ  )r   rG   rZ   r   rÖ   r'   r'   r(   Útest_pad_with_zeroe  s   
zTestWrap.test_pad_with_zeroc                 C   sx   t  d¡}t j|ddd�}tt j||||f dd… |ƒ t  d¡}t j|ddd�}tt j||||f dd… |ƒ dS )	zy
        Check wrapping on each side individually if the wrapped area is longer
        than the original array.
        rO   )r3   r   r   rW   r   N)r   r3   r:   )r   r5   rZ   r   Úr_rÖ   r'   r'   r(   Útest_repeated_wrappingj  s   
 
$zTestWrap.test_repeated_wrappingc              	   C   sb   t  d¡ dd¡}t j|ddgdd�}t  g d¢g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d	S )
zŽ
        Assert that 'wrap' pads only with multiples of the original area if
        the pad width is larger than the original array.
        r*   r,   r}  ©r   r<   r   rW   )r   r,   r   r,   r   r,   )r<   r   r<   r   r<   r   Nra  rÖ   r'   r'   r(   Ú&test_repeated_wrapping_multiple_originw  s   ûÿz/TestWrap.test_repeated_wrapping_multiple_originN)
rI   rJ   rK   rš  rØ  rÝ  rß  rê  rì  rî  r'   r'   r'   r(   ré    s    <ré  c                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚTestEdgec                 C   sr   t  d¡}t  |d¡}t  |dd¡}t  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	¡}t||ƒ d S ©	Nr3   ©r*   r   r^  r   )r   r   r   r   r<   r,   r,   r,   )r   r   r   r   r*   rO   rO   rO   )r4   r4   r4   r4   rÛ   rÜ   rÜ   rÜ   )r=   r=   r=   r=   r   rÝ   rÝ   rÝ   ra  rÖ   r'   r'   r(   rš  Š  s    
öÿzTestEdge.test_check_simplec                 C   s®   t  g d¢¡}t  |dd¡}t  g d¢¡}t||ƒ t  g d¢g d¢g¡}t  |dd¡}t  |dd¡}t||ƒ t  d¡ dd	d
¡}t  |dd¡}t  |dd¡}t||ƒ d S )NrÜ  )rc  r   )r<   r<   r,   r   r   r   rO  rt  rè   r,   r   r*   )rc  rc  rc  )r   r   rZ   r   r5   r6   )r"   r+   Úpaddedr#   r'   r'   r(   Útest_check_width_shape_1_2�  s   

z#TestEdge.test_check_width_shape_1_2N)rI   rJ   rK   rš  rô  r'   r'   r'   r(   rð  ‰  s    rð  c                   @   rï  )Ú	TestEmptyc                 C   sR   t  d¡ dd¡}t j|ddgdd�}|jdksJ ‚t||d	d
…dd…f ƒ d S )Nrè   r*   r4   rF   rí  r   rW   )r=   r   r,   r:   r   rT  ©r   r5   r6   rZ   rY   r   r”  r'   r'   r(   Útest_simple±  s   zTestEmpty.test_simplec                 C   r�  )NrŽ  r�  r   rW   r‘  r’  r”  r'   r'   r(   r•  ·  r–  z"TestEmpty.test_pad_empty_dimensionN)rI   rJ   rK   r÷  r•  r'   r'   r'   r(   rõ  °  s    rõ  c               	   C   sd   dd„ } t  d¡ dd¡}t  |d| ¡}t  g d¢g d¢g d¢g d¢g d¢g d¢g¡}t||ƒ d S )	Nc                 S   s&   d| d |d …< d| |d  d …< d S )Nr   r   r<   r'   )Úvectorrˆ  ÚiaxisÚkwargsr'   r'   r(   Ú_padwithtens¾  s   z6test_legacy_vector_functionality.<locals>._padwithtensr4   r,   r   )r   r   r   r   r   r   r   )r   r   r   r<   r,   r   r   )r   r   r   r*   rO   r   r   ra  )rû  r+   r×   r'   r'   r(   Ú test_legacy_vector_functionality½  s   ùÿ
rü  c                  C   s.   t jdgddd�} t  g d¢¡}t| |ƒ d S )Nr<   r,   r   rW   )r   r   r<   r   r   rQ  )r+   r×   r'   r'   r(   Útest_unicode_modeÑ  rÞ  rý  rM   )r   r   r   r   c                 C   s:   t jdd d�}d}t jdd d�}tt j||| d�|ƒ d S )Nrò  )Ú
fill_valuer^  )r=   rÜ   rW   )r   r�  r   rZ   )rM   r+   r]   r×   r'   r'   r(   Útest_object_input×  s   rÿ  c                   @   sþ   e Zd Zej dg d¢¡ej de ¡ ¡dd„ ƒƒZej de ¡ ¡dd„ ƒZ	ej dg d¢¡ej de ¡ ¡d	d
„ ƒƒZ
ej ddddeƒ dfddefeddƒdfdg¡ej de ¡ ¡dd„ ƒƒZdd„ Zej dg d¢¡ej de ¡ ¡dd„ ƒƒZdS )ÚTestPadWidthrˆ  ))r*   rO   r4   rÛ   )r{  rX  r`  )rc  r~  )rO   r4   ))r   r*   rO   )r   r<   r,   rM   c                 C   óV   t  d¡ d¡}d}tjt|d�� t  |||¡ W d   ƒ d S 1 s$w   Y  d S )Nrb   rY  z(operands could not be broadcast togetherr?   r[  ©r"   rˆ  rM   r\  r@   r'   r'   r(   Útest_misshaped_pad_widthá  s
   "ÿz%TestPadWidth.test_misshaped_pad_widthc                 C   sV   t  d¡ d¡}d}tjt|d�� t  |d|¡ W d   ƒ d S 1 s$w   Y  d S )Nrb   rY  zDinput operand has more dimensions than allowed by the axis remappingr?   ))r`  )r*   )rO   )r�  r{  rX  r[  )r"   rM   r\  r@   r'   r'   r(   Útest_misshaped_pad_width_2î  s
   "ÿz'TestPadWidth.test_misshaped_pad_width_2rW  c                 C   r  )Nrb   rY  rZ  r?   r[  r  r'   r'   r(   Útest_negative_pad_widthö  s
   "ÿz$TestPadWidth.test_negative_pad_widthzpad_width, dtype)Ú3N)ÚwordNr.   N)g333333@N))r,   r   r*   r_  r<   rT  )))gÍÌÌÌÌÌ Àr   r_  Nc                 C   sì   t  d¡ d¡}d}|d ur4tjt|d�� t  |t j||d�|¡ W d   ƒ d S 1 s-w   Y  d S tjt|d�� t  |||¡ W d   ƒ n1 sMw   Y  tjt|d�� t  |t  |¡|¡ W d   ƒ d S 1 sow   Y  d S )Nrb   rY  z%`pad_width` must be of integral type.r?   r8   )r   r5   r6   rB   rC   Ú	TypeErrorrZ   r   )r"   rˆ  r9   rM   r\  r@   r'   r'   r(   Útest_bad_typeÿ  s   "ÿÿ"ÿzTestPadWidth.test_bad_typec                 C   sx   t  d¡}t  |d¡}t  |t  d¡d¡}t  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	¡}t||ƒ d S rñ  ra  rÖ   r'   r'   r(   Útest_pad_width_as_ndarray  s    
öÿz&TestPadWidth.test_pad_width_as_ndarray)r   rQ   )rQ   rQ   c                 C   s,   t  d¡ dd¡}t|t j|||d�ƒ d S )Nrb   r4   rO   rW   )r   r5   r6   r   rZ   )r"   rˆ  rM   r\  r'   r'   r(   Útest_zero_pad_width*  s   z TestPadWidth.test_zero_pad_width)rI   rJ   rK   rB   rd   re   rf   rg   r  r  r  r    r	   r	  r
  r  r'   r'   r'   r(   r   à  s6    
ÿø
r   c              	   C   s²   t |  }i }t  ¡ D ]}||kr| |¡ q
tjg d¢d| fi |¤Ž | ¡ D ]/\}}d | ¡}tjt	|d�� tjg d¢d| fi ||i¤Ž W d  ƒ n1 sQw   Y  q'dS )z1Test behavior of pad's kwargs for the given mode.rÜ  r<   z+unsupported keyword arguments for mode '{}'r?   N)
rf   ÚvaluesÚupdater   rZ   ÚitemsÚformatrB   rC   rD   )rM   ÚallowedÚnot_allowedrú  ÚkeyÚvaluer@   r'   r'   r(   Útest_kwargs1  s   
€
 ÿ€þr  c                  C   s(   t  ddg¡} tt  | d¡g d¢ƒ d S )Nr<   r,   )r   r   r<   r<   r   r   )r   r   r   rZ   )r\  r'   r'   r(   Útest_constant_zero_defaultB  s   r  r<   ÚconstTFc                 C   sR   d  | ¡}tjt|d�� tjg d¢d| d� W d   ƒ d S 1 s"w   Y  d S )Nzmode '{}' is not supportedr?   rÜ  r*   rW   )r  rB   rC   rD   r   rZ   )rM   r@   r'   r'   r(   Útest_unsupported_modeG  s   
"ÿr  c                 C   s`   t  d¡ dd¡d d d…d d d…f }t  |d| ¡}|jdks!J ‚t|dd…dd…f |ƒ d S )Nrè   r*   r4   r,   rF   )rÛ   rÜ   r:   rö  )rM   r\  r%   r'   r'   r(   Útest_non_contiguous_arrayN  s   &r  c                 C   sP   t jddd�}t  |d| ¡jd sJ ‚t jddd�}t  |d| ¡jd s&J ‚dS )	z5Test if C and F order is preserved for all pad modes.)rO   r   ÚC)ÚorderrO   ÚC_CONTIGUOUSÚFÚF_CONTIGUOUSN)r   rG   rZ   Úflags)rM   r$   r'   r'   r(   Útest_memory_layout_persistenceV  s   r  r9   c                 C   s0   t jd| d�}t j|d|d�}|j| ksJ ‚d S )N)r   r,   r<   r8   r<   rW   )r   r“  rZ   r9   )r9   rM   r\  r%   r'   r'   r(   Útest_dtype_persistence_  s   r   )&rä  rB   Únumpyr   Únumpy.testingr   r   r   Únumpy.lib.arraypadr   Úsctypesr«  rf   r   rL   rh   ri  r—  r­  rá  ræ  ré  rð  rõ  rü  rý  rd   re   rÿ  r   rg   r  r  r    r  r  r  r   r'   r'   r'   r(   Ú<module>   st    ÿþýÿõS  k 4Un  '
Q



