U
    ¸mœdóÓ  ã                   @   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)d*d+d,d-g¡d.d/„ ƒZG d0d1„ d1ƒZej d)e ¡ ¡d2d3„ ƒZd4d5„ Z ej d)d6d7e!ƒ dd8d9g¡d:d;„ ƒZ"ej d)e ¡ ¡d<d=„ ƒZ#ej d)e ¡ ¡d>d?„ ƒZ$ej d@e¡ej d)e ¡ ¡dAdB„ ƒƒZ%dS )Cz(Tests for the array padding functions.

é    N)Úassert_array_equalÚassert_allcloseÚassert_equal)Ú	_as_pairsZuintÚintÚfloatÚcomplexÚconstant_valuesÚ
end_valuesÚstat_lengthÚreflect_typeZeven)ÚconstantÚedgeÚlinear_rampÚmaximumÚmeanÚmedianÚminimumÚreflectÚ	symmetricÚwrapÚemptyc                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestAsPairsc                 C   sh   t  ddggd ¡}ddgdggfD ]}t|dƒ}t||ƒ q$tƒ }tt|dƒt  ||ggd ¡ƒ dS )z Test casting for a single value.é   é
   N©ÚnpÚarrayr   r   Úobject©ÚselfÚexpectedÚxÚresultÚobj© r%   úV/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/numpy/lib/tests/test_arraypad.pyÚtest_single_value!   s    
þzTestAsPairs.test_single_valuec                 C   sÂ   t  ddggd ¡}ddgddggfD ]}t|dƒ}t||ƒ q&tƒ }ttd|gdƒt  d|ggd ¡ƒ ttdgdggdƒt  ddgddgg¡ƒ ttdg|ggdƒt  ddg||gg¡ƒ dS )z-Test proper casting for two different values.r   é   r   Úaé   Nr   r   r%   r%   r&   Útest_two_values.   s"    
þþþzTestAsPairs.test_two_valuesc                 C   s0   d}t td ddd�|ƒ t td ddd�|ƒ d S )N)©NNr,   r,   r   F©Zas_indexT)r   r   ©r    r!   r%   r%   r&   Útest_with_noneG   s    þþzTestAsPairs.test_with_nonec                 C   s$   t  d¡ d¡}tt|dƒ|ƒ dS )z?Test if `x` already matching desired output are passed through.é   )é   r*   r1   N)r   ÚarangeÚreshaper   r   r.   r%   r%   r&   Útest_pass_throughR   s
    þzTestAsPairs.test_pass_throughc              
   C   sÐ   t tddgddd�tjddggd tjd�ƒ t tddgddd�tjdd	ggd tjd�ƒ d
d
gd
ggd
d	gddgd
d	ggd	d
ggddggd ddgg fD ],}tjtdd�� t|ddd� W 5 Q R X qždS )z Test results if `as_index=True`.gÍÌÌÌÌÌ@gffffff
@r   Tr-   r   ©Údtypegö(\�Âõ@r(   éýÿÿÿéüÿÿÿé   r*   é	   éþÿÿÿznegative values©ÚmatchN)r   r   r   r   ZintpÚpytestÚraisesÚ
ValueError)r    r"   r%   r%   r&   Útest_as_indexZ   s    þþ(ÿzTestAsPairs.test_as_indexc              	   C   sˆ   t jtdd�� tdgggdƒ W 5 Q R X t jtdd�� tddgddggdƒ W 5 Q R X t jtdd�� tt d	¡dƒ W 5 Q R X d
S )z"Ensure faulty usage is discovered.zmore dimensions than allowedr<   r   r   zcould not be broadcastr9   r*   r(   ©r*   r   N)r>   r?   r@   r   r   Úones)r    r%   r%   r&   Útest_exceptionsi   s     zTestAsPairs.test_exceptionsN)	Ú__name__Ú
__module__Ú__qualname__r'   r+   r/   r4   rA   rD   r%   r%   r%   r&   r       s   r   c                   @   sb   e Zd Zej de ¡ ¡dd„ ƒZej dddddg¡dd	„ ƒZ	ej dddddg¡d
d„ ƒZ
dS )ÚTestConditionalShortcutsÚmodec                 C   s>   t  d¡ ddd¡}dd„ |jD ƒ}t|t j|||d�ƒ d S )Néx   r(   é   r1   c                 S   s   g | ]}d ‘qS )©r   r   r%   ©Ú.0Ú_r%   r%   r&   Ú
<listcomp>w   s     zHTestConditionalShortcuts.test_zero_padding_shortcuts.<locals>.<listcomp>©rI   ©r   r2   r3   Úshaper   Úpad©r    rI   ÚtestÚpad_amtr%   r%   r&   Útest_zero_padding_shortcutst   s    z4TestConditionalShortcuts.test_zero_padding_shortcutsr   r   r   r   c                 C   sL   t  d¡ ddd¡}dd„ |jD ƒ}tt j||dd�t j|||d	d
�ƒ d S )NrJ   r(   rK   r1   c                 S   s   g | ]}d ‘qS )©r9   r9   r%   rM   r%   r%   r&   rP   }   s     zITestConditionalShortcuts.test_shallow_statistic_range.<locals>.<listcomp>r   rQ   r9   ©rI   r   rR   rU   r%   r%   r&   Útest_shallow_statistic_rangez   s
    ÿz5TestConditionalShortcuts.test_shallow_statistic_rangec                 C   sJ   t  d¡ dd¡}dd„ |jD ƒ}tt j|||d�t j|||dd�ƒ d S )Né   rK   r1   c                 S   s   g | ]}d ‘qS ))r   r   r%   rM   r%   r%   r&   rP   „   s     zFTestConditionalShortcuts.test_clip_statistic_range.<locals>.<listcomp>rQ   rZ   rR   rU   r%   r%   r&   Útest_clip_statistic_range�   s
    ÿz2TestConditionalShortcuts.test_clip_statistic_rangeN)rE   rF   rG   r>   ÚmarkÚparametrizeÚ
_all_modesÚkeysrX   r[   r]   r%   r%   r%   r&   rH   s   s   

rH   c                	   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej dddddg¡d d!„ ƒZej dddddg¡ej d"d#d$d%d&d'g¡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¡d0d1„ ƒZd2S )3ÚTestStatisticc              “   C   s\  t  d¡ d¡}t j|dddd�}t  ddddddddddddddddddddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjdjg‘¡}t||ƒ d S )lNéd   Úf)©é   é   r   )rB   ©r   ç      à?ç        ç      ð?ç       @ç      @ç      @ç      @ç      @ç      @ç       @ç      "@ç      $@ç      &@ç      (@ç      *@ç      ,@ç      .@ç      0@ç      1@ç      2@ç      3@ç      4@ç      5@ç      6@ç      7@ç      8@ç      9@ç      :@ç      ;@ç      <@ç      =@ç      >@ç      ?@ç      @@ç     €@@ç      A@ç     €A@ç      B@ç     €B@ç      C@ç     €C@ç      D@ç     €D@ç      E@ç     €E@ç      F@ç     €F@ç      G@ç     €G@ç      H@ç     €H@ç      I@ç     €I@ç      J@ç     €J@ç      K@ç     €K@ç      L@ç     €L@ç      M@ç     €M@ç      N@ç     €N@ç      O@ç     €O@ç      P@ç     @P@ç     €P@ç     ÀP@ç      Q@ç     @Q@ç     €Q@ç     ÀQ@ç      R@ç     @R@ç     €R@ç     ÀR@ç      S@ç     @S@ç     €S@ç     ÀS@ç      T@ç     @T@ç     €T@ç     ÀT@ç      U@ç     @U@ç     €U@ç     ÀU@ç      V@ç     @V@ç     €V@ç     ÀV@ç      W@ç     @W@ç     €W@ç     ÀW@ç      X@ç     @X@ç     €X@ç     ÀX@©r   r2   ÚastyperT   r   r   ©r    r)   Úbr%   r%   r&   Útest_check_mean_stat_lengthŠ   s                                                                                                                            ðÿz)TestStatistic.test_check_mean_stat_lengthc              “   C   sR  t  d¡}t  |dd¡}t  dddddddddddddddddddddddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdddddddddddddddddddddg‘¡}t||ƒ d S )hNrc   re   r   éc   r   r9   r*   r   r(   rK   r1   é   é   r:   r   é   r0   é   é   é   é   é   é   é   rg   é   é   é   é   rf   é   é   é   é   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   r2   rT   r   r   rÐ   r%   r%   r&   Útest_check_maximum_1¢   s   
                                                                                                                         ðÿz"TestStatistic.test_check_maximum_1c              “   C   sV  t  d¡d }t  |dd¡}t  ddddddddddddddddddddddddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdddddddddddddddddddddg‘¡}t||ƒ d S )gNrc   r9   re   r   r*   r   r(   rK   r1   rÔ   rÕ   r:   r   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   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ù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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_maximum_2º   s                                                                                                                            ðÿz"TestStatistic.test_check_maximum_2c              “   C   sZ  t  d¡d }t j|dddd�}t  ddddddddddddddddddddddddddddd	d
ddddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdddddddddddddddddddddg‘¡}t||ƒ d S )hNrc   r9   re   r   r   rh   r*   r   r(   rK   r1   rÔ   rÕ   r:   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   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ù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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_maximum_stat_lengthÒ   s                                                                                                                            ðÿz,TestStatistic.test_check_maximum_stat_lengthc              “   C   sR  t  d¡}t  |dd¡}t  ddddddddddddddddddddddddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgddddddddddddddddddddg‘¡}t||ƒ d S )hNrc   re   r   r   r9   r*   r   r(   rK   r1   rÔ   rÕ   r:   r   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   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ù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  rÓ   r*  rÐ   r%   r%   r&   Útest_check_minimum_1ê   s   
                                                                                                                         ðÿz"TestStatistic.test_check_minimum_1c              “   C   sV  t  d¡d }t  |dd¡}t  ddddddddddddddddddddddddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddeddfddddddddddddddddddddg‘¡}t||ƒ d S )gNrc   r*   re   r   r   r(   rK   r1   rÔ   rÕ   r:   r   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   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ù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  rÓ   ée   r*  rÐ   r%   r%   r&   Útest_check_minimum_2  s                                                                                                                            ðÿz"TestStatistic.test_check_minimum_2c              “   C   sZ  t  d¡d }t j|dddd�}t  ddddddddddddddddddddddddddddd	d
ddddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdd_d_d_d_d_d_d_d_d_d_d_d_d_d_d_d_d_d_d_d_g‘¡}t||ƒ d S )hNrc   r9   re   r   r   rh   r*   r   r(   rK   r1   rÔ   rÕ   r:   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   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ù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  rÓ   r*  rÐ   r%   r%   r&   Útest_check_minimum_stat_length  s                                                                                                                            ðÿz,TestStatistic.test_check_minimum_stat_lengthc              “   C   sX  t  d¡ d¡}t  |dd¡}t  ddddddddddddddddddddddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdiddddddddddddddddddddg‘¡}t||ƒ d S )jNrc   rd   re   r   ç     ÀH@rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÐ   r%   r%   r&   Útest_check_median2  s                                                                                                                            ðÿzTestStatistic.test_check_medianc                 C   s„   t  dddgdddgdddgg¡}t  |dd¡}t  dddddgdddddgdddddgdddddgdddddgg¡}t||ƒ d S ©	Nr   r9   r(   rK   r:   rÕ   r*   r   )r   r   rT   r   rÐ   r%   r%   r&   Útest_check_median_01J  s    "úÿ	z"TestStatistic.test_check_median_01c                 C   sˆ   t  dddgdddgdddgg¡}t  |jdd¡j}t  dddddgdddddgdddddgdddddgdddddgg¡}t||ƒ d S r4  )r   r   rT   ÚTr   rÐ   r%   r%   r&   Útest_check_median_02X  s    "úÿ	z"TestStatistic.test_check_median_02c              “   C   sl  t  d¡ d¡}d|d< d|d< t j|ddd	d
�}t  ddddddddddddddddddddddddddddddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdddidjddddddddddddddddddddg‘¡}t||ƒ d S )kNrc   rd   rl   r9   rÊ   r(  re   r   ©r   rK   rh   rj   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&   Útest_check_median_stat_lengthf  s                                                                                                                             ðÿz+TestStatistic.test_check_median_stat_lengthc                 C   sÖ  dddgg}t j|dddd�}t  dddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg¡}t||ƒ d S )Nr(   rK   r1   ©rK   rÔ   r   r*   rh   ©r   rT   r   r   rÐ   r%   r%   r&   Útest_check_mean_shape_one€  s&                 òÿz'TestStatistic.test_check_mean_shape_onec              “   C   sX  t  d¡ d¡}t  |dd¡}t  ddddddddddddddddddddddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdiddddddddddddddddddddg‘¡}t||ƒ d S )jNrc   rd   re   r   r2  rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   r—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   r­   r®   r¯   r°   r±   r²   r³   r´   rµ   r¶   r·   r¸   r¹   rº   r»   r¼   r½   r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   rÅ   rÆ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rÐ   r%   r%   r&   Útest_check_mean_2–  s                                                                                                                            ðÿzTestStatistic.test_check_mean_2rI   r   r   r   r   c                 C   sJ   t  dddg¡t jdddgt jd� }t  |d|¡}t|d |d ƒ dS )z3 Test that appended and prepended values are equal éÿÿÿÿr*   r   gê-�™—q=r5   rY   N)r   r   Úfloat64rT   r   )r    rI   r)   r%   r%   r&   Útest_same_prepend_append®  s    
&z&TestStatistic.test_same_prepend_appendr   r;   ©r;   ©r   r>  ©)rK   r*   )r;   r   ©)r8   ©r*   c              	   C   sD   t  d¡ d¡}d}tjt|d�� t j|d||d� W 5 Q R X d S )Nr\   ©r1   rK   ú#index can't contain negative valuesr<   r*   rh   ©r   r2   r3   r>   r?   r@   rT   )r    rI   r   Úarrr=   r%   r%   r&   Útest_check_negative_stat_length¼  s    z-TestStatistic.test_check_negative_stat_lengthc                 C   s2  t  d¡}t  |d¡}t j|dddd�}t  dddddd	d
dd
d
g
dddddd	d
dd
d
g
ddddddddddg
dddddd	d
dd
d
g
ddddddddddg
ddddddddddg
ddddddddddg
d d d d!d d"d#d$d#d#g
ddddddddddg
ddddddddddg
ddddddddddg
g¡}t||ƒ d S )%Nr\   rF  ©rB   ©r   r*   r   ©r   rZ   r1   rK   rÔ   rÕ   r:   r9   r   r*   r   r(   rÖ   r   r0   r×   rØ   rÚ   rÙ   rÛ   rÜ   rÝ   rÞ   rg   rß   rà   rá   râ   rf   rã   rä   rå   ©r   r2   r3   rT   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:RuntimeWarningc                 C   s>   t jddgd|dd�}t  t jddt jt jg¡}t||ƒ d S )Nrk   rl   ©r9   r*   r   rh   )r   rT   r   Únanr   )r    rI   rI  r!   r%   r%   r&   Útest_zero_stat_length_validÛ  s    z)TestStatistic.test_zero_stat_length_validc              	   C   sÈ   d}t jt|d�� tjddgd|dd� W 5 Q R X t jt|d�� tjddgd|dd� W 5 Q R X t jt|d�� tjddgd|dd� W 5 Q R X t jt|d�� tjddgd|dd� W 5 Q R X d S )	Nz,stat_length of 0 yields no value for paddingr<   rk   rl   r   rh   )r9   r   r9   )r>   r?   r@   r   rT   ©r    rI   r=   r%   r%   r&   Útest_zero_stat_length_invalidå  s       z+TestStatistic.test_zero_stat_length_invalidN)rE   rF   rG   rÒ   r+  r,  r-  r.  r0  r1  r3  r5  r7  r9  r<  r=  r>   r^   r_   r@  rJ  rO  ÚfilterwarningsrR  rT  r%   r%   r%   r&   rb   ‰   sF   ü
 ÿ
ÿrb   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   sV  t  d¡}t j|dddd�}t  dddddddddddddddddddddddddddd	d
ddddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdiddddddddddddddddddddg‘¡}t||ƒ d S )jNrc   re   r   )r   rg   ©r	   r   r   r9   r*   r   r(   rK   r1   rÔ   rÕ   r:   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   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ù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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_constantó  s   
                                                                                                                         ðÿz TestConstant.test_check_constantc              “   C   sR  t  d¡}t  |dd¡}t  ddddddddddddddddddddddddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgddddddddddddddddddddg‘¡}t||ƒ d S )hNrc   re   r   r   r9   r*   r   r(   rK   r1   rÔ   rÕ   r:   r   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   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ù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  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_constant_zeros  s   
                                                                                                                         ðÿz&TestConstant.test_check_constant_zerosc                 C   sÜ   t  d¡ dd¡}t j|dddd�}t  dddddddddg	dd	dd
dddddg	dddddddddg	dddddddddg	dddddddddg	dddd d!d"d#ddg	dddddddddg	dddddddddg	g¡}t||ƒ d S )$Nr\   rK   r1   rP  r   çš™™™™™ñ?©rI   r	   r9   r   r*   r   r(   rÔ   rÕ   r:   r   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   rÞ   rß   rà   rá   rf   râ   rã   rä   rå   ©r   r2   r3   rT   r   r   ©r    rI  rV   r!   r%   r%   r&   Útest_check_constant_float#  s     
ÿ÷ÿz&TestConstant.test_check_constant_floatc                 C   sè   t  d¡ dd¡}| t j¡}t j|dddd�}t  dddddddddg	ddd	d
dddddg	dddddddddg	dddddddddg	dddddddddg	dd d!d"d#d$d%ddg	dddddddddg	dddddddddg	g¡}t||ƒ d S )&Nr\   rK   r1   ©rP  rP  r   rZ  r[  rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   ©r   r2   r3   rÏ   r?  rT   r   r   )r    rI  Z	arr_floatrV   r!   r%   r%   r&   Útest_check_constant_float27  s"    
ÿ÷ÿz'TestConstant.test_check_constant_float2c              “   C   sZ  t jdtd�}t j|dddd�}t  ddddddddddddddddddddddddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldldldldldldldldldldldldldldldldldldldlg‘¡}t||ƒ d S )mNrc   r5   re   r   )çš™™™™™ñ¿ç333333ó¿rW  rb  r   r9   r*   r   r(   rK   r1   rÔ   rÕ   r:   r   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   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ù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  rÓ   rc  )r   r2   r   rT   r   r   rÐ   r%   r%   r&   Útest_check_constant_float3L  s                                                                                                                            ðÿz'TestConstant.test_check_constant_float3c                 C   sÖ   t  d¡ dd¡}t j|dddd�}t  ddddddddddg
dddd	d
dddddg
ddddddddddg
ddddddddddg
ddddddddddg
dddddd d!d"ddg
ddddddddddg
g¡}t||ƒ d S )#Nr\   rK   r1   )©r9   rE  r   r   r[  r   r9   r*   r(   rÔ   rÕ   r:   r   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   rÞ   rß   rà   rá   rf   râ   rã   rä   rå   r\  r]  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  ddddddgdd	ddddgddddddgddddddgddddddgg¡}t||ƒ d S )
Nr(   r*   )rP  )r9   r   r   )rP  ©r   r(   r[  r   r9   r   )r   r2   r3   ÚlibrT   r   r   r]  r%   r%   r&   Útest_check_constant_pad_2du  s    ÿüÿz'TestConstant.test_check_constant_pad_2dc                 C   s”   d}t jd|t jd�}t j|dd| ¡ d�}t jd|t jd�}t||ƒ d}t jd|t jd�}t j|dd| ¡ d�}t jd|t jd�}t||ƒ d S )	Nl   ÿÿÿÿ rK   r5   r9   r   r[  rÔ   l   ÿÿÿÿ )r   ÚfullZuint64rT   Úminr   Zint64)r    Z
uint64_maxrI  rV   r!   Z	int64_maxr%   r%   r&   Útest_check_large_integers‚  s    
z&TestConstant.test_check_large_integersc                 C   sr   t jdtd�}tƒ }||d< tƒ }tƒ }t j|dd||fd�}t jdtd�}||d< ||d< ||d< t||ƒ d S )Nr9   r5   r   r   )Ú	pad_widthrI   r	   rM  r*   )r   r   r   rT   r   )r    rI  Zobj_aZobj_bZobj_cr!   r%   r%   r&   Útest_check_object_array�  s    
ÿz$TestConstant.test_check_object_arrayc                 C   s2   t  d¡}t j|dddgdd�}|jdks.t‚d S )N©r   r   r*   ©r   rE  re  r   rQ   ©r   r(   r(   ©r   ÚzerosrT   rS   ÚAssertionError©r    rI  r#   r%   r%   r&   Útest_pad_empty_dimensionŸ  s    
z%TestConstant.test_pad_empty_dimensionN)rE   rF   rG   rX  rY  r^  ra  rd  rf  ri  rl  rn  rv  r%   r%   r%   r&   rV  ò  s   rV  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   sb  t  d¡ d¡}t j|dddd�}t  ddd	d
dddddddddddddddddddddd d!d"d#dd$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€d�d‚dƒd„d…d†d‡dˆd‰dŠd‹dSdŒd�dŽd�d�d‘d’d“d”d$g‘¡}t||d•d•d–� d S )—Nrc   rd   re   r   )r(   rK   )r
   rn   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Ä?rj   rk   rl   rm   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Í   g33333“W@gffffffV@gš™™™™9U@gÍÌÌÌÌT@g     àR@g33333³Q@gfffff†P@g33333³N@gš™™™™YL@gfffff¦G@gÍÌÌÌÌLE@g33333óB@gš™™™™™@@g     €<@gÍÌÌÌÌÌ7@gš™™™™3@gÍÌÌÌÌÌ,@gffffff#@gñhãˆµøä>)ZrtolZatol)r   r2   rÏ   rT   r   r   rÐ   r%   r%   r&   Útest_check_simple¦  s                                                                                                                            ðÿz TestLinearRamp.test_check_simplec                 C   sä   t  d¡ dd¡ t j¡}t j|dddd�}t  dddddddddg	dddd	d
ddd
dg	dddd
dddddg	dddddddddg	dddddddddg	ddddddd d!dg	dd"ddd#dd!d$dg	dddddddddg	g¡}t||ƒ d S )%Nrg   r(   rK   )r*   r*   r   rL   ©rI   r
   rj   ri   rk   g      ø?rl   rm   rn   g      @ro   rp   rq   rr   rs   g      @rt   ru   rv   rw   rx   g      @ry   rz   r{   r|   r}   g      #@g      @g      !@g      @r`  r]  r%   r%   r&   Útest_check_2d¾  s    ùÿ	zTestLinearRamp.test_check_2d)Ú
exceptionsc                 C   sˆ   ddl m} t |ddƒ|ddƒg¡}tj|dddd�}t |dd	ƒ|d
d	ƒ|dd	ƒ|dd	ƒ|dd	ƒ|dd	ƒ|dd	ƒg¡}t||ƒ d S )Nr   )ÚFractionr9   r*   r>  rB   r   ry  r0   r   r1   éúÿÿÿr8   r;   )Ú	fractionsr|  r   r   rT   r   )r    r|  rI  Úactualr!   r%   r%   r&   Útest_object_arrayÌ  s    ù	z TestLinearRamp.test_object_arrayc                 C   sz   t jt  d¡ dd¡ddd�}t|dd…df d	ƒ t|dd…d
f d	ƒ t|ddd…f d	ƒ t|d
dd…f d	ƒ dS )z!Ensure that end values are exact.r   r*   rK   )éß   é{   r   rQ   Nr   rj   r>  )r   rT   rC   r3   r   )r    r)   r%   r%   r&   Útest_end_valuesß  s
    zTestLinearRamp.test_end_valuesr6   c                 C   s”   t jdg|d�}t j|dddd�}t jdddddddg|d�}t||ƒ t jdg|d�}t j|dddd�}t jdddddddg|d�}t||ƒ dS )	a<  
        Check correct behavior of unsigned dtypes if there is a negative
        difference between the edge to pad and `end_values`. Check both cases
        to be independent of implementation. Test behavior for all other dtypes
        in case dtype casting interferes with complex dtypes. See gh-14191.
        r   r5   r   r   ry  r9   r*   N)r   r   rT   r   )r    r6   r"   r#   r!   r%   r%   r&   Útest_negative_differenceç  s    
z'TestLinearRamp.test_negative_differenceN)rE   rF   rG   rx  rz  r>   r^   Zxfailrt  r€  rƒ  r_   Ú_numeric_dtypesr„  r%   r%   r%   r&   rw  ¥  s   
rw  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   sR  t  d¡}t  |dd¡}t  dddddd	d
dddddddddddddddddddddddddddddddddddddd
d	dddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdfdedddcdbdad`d_d^d]d\d[dZdYdXdWdVdUdTdSg‘¡}t||ƒ d S )hNrc   re   r   rf   rá   rà   rß   rÞ   rg   rÝ   rÜ   rÛ   rÚ   rÙ   rØ   r×   r0   rÖ   r   r:   rÕ   rÔ   r1   rK   r(   r   r*   r9   r   râ   rã   rä   rå   r\   ræ   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  rÓ   r*  rÐ   r%   r%   r&   rx  û  s   
                                                                                                                         ðÿzTestReflect.test_check_simplec              “   C   sV  t  d¡}t j|dddd�}t  dddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€d�d‚ddƒd„d…d†d‡dˆd‰dŠd‹dŒd�dŽd�d�d‘d’d“d”d•g‘¡}t||ƒ d S )–Nrc   re   r   Úodd©r   içÿÿÿéèÿÿÿééÿÿÿéêÿÿÿéëÿÿÿéìÿÿÿéíÿÿÿéîÿÿÿéïÿÿÿéðÿÿÿéñÿÿÿéòÿÿÿéóÿÿÿéôÿÿÿéõÿÿÿéöÿÿÿé÷ÿÿÿéøÿÿÿéùÿÿÿr}  éûÿÿÿr8   r7   r;   r>  r   r9   r*   r   r(   rK   r1   rÔ   rÕ   r:   r   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   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ù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  rÓ   r/  éf   ég   éh   éi   éj   ék   él   ém   én   éo   ép   éq   ér   és   ét   éu   év   éw   r*  rÐ   r%   r%   r&   Útest_check_odd_method  s   
                                                                                                                         ðÿz!TestReflect.test_check_odd_methodc                 C   sú  dddgdddgg}t  |dd¡}t  dddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg¡}t||ƒ d S )Nr(   rK   r1   rÔ   rÕ   r:  r   r;  rÐ   r%   r%   r&   Útest_check_large_pad+  s(                  ñÿz TestReflect.test_check_large_padc                 C   sÒ  dddgg}t  |dd¡}t  dddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg¡}t||ƒ d S )Nr(   rK   r1   r:  r   r;  rÐ   r%   r%   r&   Útest_check_shapeB  s&                 òÿzTestReflect.test_check_shapec              	   C   s:   t  dddgdd¡}t  dddddddg¡}t||ƒ d S ©Nr9   r*   r   r   r;  rÐ   r%   r%   r&   Útest_check_01X  s    zTestReflect.test_check_01c                 C   s>   t  dddgdd¡}t  dddddddddg	¡}t||ƒ d S r±  r;  rÐ   r%   r%   r&   Útest_check_02]  s    zTestReflect.test_check_02c                 C   sB   t  dddgdd¡}t  dddddddddddg¡}t||ƒ d S )Nr9   r*   r   r(   r   r;  rÐ   r%   r%   r&   Útest_check_03b  s     zTestReflect.test_check_03N)
rE   rF   rG   rx  r®  r¯  r°  r²  r³  r´  r%   r%   r%   r&   r†  ú  s   r†  c                   @   sP   e Zd ZdZej dee 	¡ ddh ƒ¡dd„ ƒZ
ej de 	¡ ¡dd„ ƒZd	S )
ÚTestEmptyArrayz<Check how padding behaves on arrays with an empty dimension.rI   r   r   c              	   C   s’   d}t jt|d�� tjg d|d� W 5 Q R X t jt|d�� tjt d¡d|d� W 5 Q R X t jt|d�� tjt d¡d|d� W 5 Q R X d S )NzFcan't extend empty axis 0 using modes other than 'constant' or 'empty'r<   r(   rQ   r   )r   r   )re  rp  )r>   r?   r@   r   rT   Zndarrayrs  rS  r%   r%   r&   rv  k  s     z'TestEmptyArray.test_pad_empty_dimensionc                 C   s(   t jt  d¡d|d�}|jdks$t‚d S )N)r*   r   r*   )rM  rp  re  rQ   )rÕ   r   r(   )r   rT   rC   rS   rt  )r    rI   r#   r%   r%   r&   Útest_pad_non_empty_dimensionz  s    z+TestEmptyArray.test_pad_non_empty_dimensionN)rE   rF   rG   Ú__doc__r>   r^   r_   Úsortedr`   ra   rv  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   sR  t  d¡}t  |dd¡}t  dddddd	d
ddddddddddddddddddddddddddddddddddddd
d	ddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdgdfdedddcdbdad`d_d^d]d\d[dZdYdXdWdVdUdTg‘¡}t||ƒ d S )hNrc   re   r   rá   rà   rß   rÞ   rg   rÝ   rÜ   rÛ   rÚ   rÙ   rØ   r×   r0   rÖ   r   r:   rÕ   rÔ   r1   rK   r(   r   r*   r9   r   rf   râ   rã   rä   rå   r\   ræ   rç   rè   ré   rê   rë   rì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  rÓ   r*  rÐ   r%   r%   r&   rx  �  s   
                                                                                                                         ðÿzTestSymmetric.test_check_simplec              “   C   sV  t  d¡}t j|dddd�}t  dddd	d
ddddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€d�d�dd‚dƒd„d…d†d‡dˆd‰dŠd‹dŒd�dŽd�d�d‘d’d“g‘¡}t||ƒ d S )”Nrc   re   r   r‡  rˆ  r‰  rŠ  r‹  rŒ  r�  rŽ  r�  r�  r‘  r’  r“  r”  r•  r–  r—  r˜  r™  rš  r}  r›  r8   r7   r;   r>  r   r9   r*   r   r(   rK   r1   rÔ   rÕ   r:   r   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   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ù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  rÓ   r/  rœ  r�  rž  rŸ  r   r¡  r¢  r£  r¤  r¥  r¦  r§  r¨  r©  rª  r«  r¬  r*  rÐ   r%   r%   r&   r®  ™  s   
                                                                                                                         ðÿz#TestSymmetric.test_check_odd_methodc                 C   sú  dddgdddgg}t  |dd¡}t  dddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg¡}t||ƒ d S )Nr(   rK   r1   rÔ   rÕ   r:  r   r;  rÐ   r%   r%   r&   r¯  ±  s(                  ñÿz"TestSymmetric.test_check_large_padc                 C   sþ  dddgdddgg}t j|dddd	�}t  d
ddddddddddddddgd
ddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg¡}t||ƒ d S )Nr(   rK   r1   rÔ   rÕ   r:  r   r‡  rˆ  r7   r;   r>  r   r9   r*   r   r:   r   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   r;  rÐ   r%   r%   r&   Útest_check_large_pad_oddÉ  s(                  ñÿz&TestSymmetric.test_check_large_pad_oddc                 C   sÒ  dddgg}t  |dd¡}t  dddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg¡}t||ƒ d S )Nr(   rK   r1   r:  r   r;  rÐ   r%   r%   r&   r°  à  s&                 òÿzTestSymmetric.test_check_shapec              	   C   s:   t  dddgdd¡}t  dddddddg¡}t||ƒ d S ©Nr9   r*   r   r   r;  rÐ   r%   r%   r&   r²  ö  s    zTestSymmetric.test_check_01c                 C   s>   t  dddgdd¡}t  dddddddddg	¡}t||ƒ d S r»  r;  rÐ   r%   r%   r&   r³  û  s    zTestSymmetric.test_check_02c                 C   sJ   t  dddgdd¡}t  dddddddddddddddg¡}t||ƒ d S )Nr9   r*   r   r1   r   r;  rÐ   r%   r%   r&   r´     s    (zTestSymmetric.test_check_03N)rE   rF   rG   rx  r®  r¯  rº  r°  r²  r³  r´  r%   r%   r%   r&   r¹  €  s   r¹  c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚTestWrapc              “   C   sR  t  d¡}t  |dd¡}t  dddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0g‘¡}t||ƒ d S )hNrc   re   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  rÓ   r   r9   r*   r   r(   rK   r1   rÔ   rÕ   r:   r   rÖ   r0   r×   rØ   rÙ   rÚ   rÛ   rÜ   rÝ   rg   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ù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r*  rÐ   r%   r%   r&   rx    s   
                                                                                                                         ðÿzTestWrap.test_check_simplec              4   C   s‚  t  d¡}t  |d¡}t  |dd¡}t  ddddddddddddddddddddddddddgd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
gddddddddddddddddddddddddddgddddddddddddddddddddddddddgd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
gddddddddddddddddddddddddddgddddddddddddddddddddddddddgd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
gddddddddddddddddddddddddddgddddddddddddddddddddddddddgd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
gddddddddddddddddddddddddddgddddddddddddddddddddddddddgd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
gddddddddddddddddddddddddddgddddddddddddddddddddddddddgd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
gddddddddddddddddddddddddddgddddddddddddddddddddddddddgd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
gddddddddddddddddddddddddddgddddddddddddddddddddddddddgd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
ddd	d
gddddddddddddddddddddddddddgddddddddddddddddddddddddddgg¡}t||ƒ d S )Nr0   rg  )r   r0   r   r   rÖ   rÕ   r:   r*   r   r   r9   r1   rÔ   r(   rK   rN  rÐ   r%   r%   r&   r¯    s4   
"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿ"        ÿÎÿ6zTestWrap.test_check_large_padc                 C   s>   t  dddgdd¡}t  dddddddddg	¡}t||ƒ d S )Nr9   r*   r   r   r;  rÐ   r%   r%   r&   r²  [  s    zTestWrap.test_check_01c                 C   sB   t  dddgdd¡}t  dddddddddddg¡}t||ƒ d S )Nr9   r*   r   r(   r   r;  rÐ   r%   r%   r&   r³  `  s     zTestWrap.test_check_02c                 C   s8   t  d¡}t j|ddd�}t||d d…d d…f ƒ d S )Nr8  )r   rK   r   rQ   r›  )r   rC   rT   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.
        rK   )r0   r   r   rQ   r   N)r   r0   r7   )r   r2   rT   r   Zr_rÐ   r%   r%   r&   Útest_repeated_wrappingj  s    
 
zTestWrap.test_repeated_wrappingN)	rE   rF   rG   rx  r¯  r²  r³  r½  r¾  r%   r%   r%   r&   r¼    s   <r¼  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestEdgec                 C   sÞ   t  d¡}t  |d¡}t  |dd¡}t  ddddddddgddddddddgddddddddgddddd	d
d
d
gddddddddgddddddddgddddddddgddddddddgddddddddgg	¡}t||ƒ d S ©Nr0   ©r(   r   rK  r   r   r9   r*   r   r(   rK   r1   rÔ   rÕ   r:   r   rÖ   rN  rÐ   r%   r%   r&   rx  y  s     
öÿzTestEdge.test_check_simplec                 C   s¼   t  dddg¡}t  |dd¡}t  ddddddg¡}t||ƒ t  dddgdddgg¡}t  |dd¡}t  |d	d¡}t||ƒ t  d
¡ ddd¡}t  |dd¡}t  |dd¡}t||ƒ d S )Nr9   r*   r   )rP  r   r(   rK   r1   r_  rá   )rP  rP  rP  )r   r   rT   r   r2   r3   )r    r)   Úpaddedr!   r%   r%   r&   Útest_check_width_shape_1_2Œ  s    

z#TestEdge.test_check_width_shape_1_2N)rE   rF   rG   rx  rÃ  r%   r%   r%   r&   r¿  x  s   r¿  c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú	TestEmptyc                 C   sR   t  d¡ dd¡}t j|ddgdd�}|jdks4t‚t||d	d
…dd…f ƒ d S )Nrá   r(   r1   rB   )r   r9   r   rQ   )r:   r   r*   r7   r   r>  ©r   r2   r3   rT   rS   rt  r   ru  r%   r%   r&   Útest_simple   s    zTestEmpty.test_simplec                 C   s2   t  d¡}t j|dddgdd�}|jdks.t‚d S )Nro  rp  rE  re  r   rQ   rq  rr  ru  r%   r%   r&   rv  ¦  s    
z"TestEmpty.test_pad_empty_dimensionN)rE   rF   rG   rÆ  rv  r%   r%   r%   r&   rÄ  Ÿ  s   rÄ  c                  C   s    dd„ } t  d¡ dd¡}t  |d| ¡}t  dddddddgdddddddgdddddddgdddd	d
ddgdddddddgdddddddgg¡}t||ƒ d S )Nc                 S   s&   d| d |d …< d| |d  d …< d S )Nr   r   r9   r%   )Zvectorrm  ZiaxisÚkwargsr%   r%   r&   Ú_padwithtens­  s    z6test_legacy_vector_functionality.<locals>._padwithtensr1   r*   r   r   r   r9   r(   rK   rN  )rÈ  r)   rÑ   r%   r%   r&   Ú test_legacy_vector_functionality¬  s    ùÿ
rÉ  c                  C   s4   t jdgddd�} t  dddddg¡}t| |ƒ d S )Nr9   r*   r   rQ   r   r;  )r)   rÑ   r%   r%   r&   Útest_unicode_modeÀ  s    rÊ  rI   r   r   r   r   c                 C   s:   t jdd d�}d}t jdd d�}tt j||| d�|ƒ d S )NrÁ  )Z
fill_valuerK  )r:   rÕ   rQ   )r   rj  r   rT   )rI   r)   rW   rÑ   r%   r%   r&   Útest_object_inputÆ  s    rË  c                   @   s
  e Zd Zej dddddg¡ej de ¡ ¡dd„ ƒƒZej de ¡ ¡d	d
„ ƒZ	ej ddddddg¡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d d!d"g¡ej de ¡ ¡d#d$„ ƒƒZdS )%ÚTestPadWidthrm  )r(   rK   r1   rÔ   )re  rE  rM  )rP  rg  )rK   r1   ))r   r(   rK   )r   r9   r*   rI   c              	   C   s@   t  d¡ d¡}d}tjt|d�� t  |||¡ W 5 Q R X d S )Nr\   rF  z(operands could not be broadcast togetherr<   rH  ©r    rm  rI   rI  r=   r%   r%   r&   Útest_misshaped_pad_widthÐ  s    z%TestPadWidth.test_misshaped_pad_widthc              	   C   s@   t  d¡ d¡}d}tjt|d�� t  |d|¡ W 5 Q R X d S )Nr\   rF  zDinput operand has more dimensions than allowed by the axis remappingr<   ))rM  )r(   )rK   )rp  re  rE  rH  )r    rI   rI  r=   r%   r%   r&   Útest_misshaped_pad_width_2Ý  s    z'TestPadWidth.test_misshaped_pad_width_2r;   rA  rB  rC  rD  c              	   C   s@   t  d¡ d¡}d}tjt|d�� t  |||¡ W 5 Q R X d S )Nr\   rF  rG  r<   rH  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(   rL  r9   r>  )))gÍÌÌÌÌÌ Àr   rL  Nc              	   C   sª   t  d¡ d¡}d}|d k	rPtjt|d�� t  |t j||d�|¡ W 5 Q R X nVtjt|d�� t  |||¡ W 5 Q R X tjt|d�� t  |t  |¡|¡ W 5 Q R X d S )Nr\   rF  z%`pad_width` must be of integral type.r<   r5   )r   r2   r3   r>   r?   Ú	TypeErrorrT   r   )r    rm  r6   rI   rI  r=   r%   r%   r&   Útest_bad_typeî  s    $zTestPadWidth.test_bad_typec                 C   sä   t  d¡}t  |d¡}t  |t  d¡d¡}t  ddddddddgddddddddgddddddddgddddd	d
d
d
gddddddddgddddddddgddddddddgddddddddgddddddddgg	¡}t||ƒ d S rÀ  rN  rÐ   r%   r%   r&   Útest_pad_width_as_ndarray  s     
öÿz&TestPadWidth.test_pad_width_as_ndarrayr   rL   )rL   rL   c                 C   s,   t  d¡ dd¡}t|t j|||d�ƒ d S )Nr\   r1   rK   rQ   )r   r2   r3   r   rT   )r    rm  rI   rI  r%   r%   r&   Útest_zero_pad_width  s    z TestPadWidth.test_zero_pad_width)rE   rF   rG   r>   r^   r_   r`   ra   rÎ  rÏ  rÐ  r   r   rÔ  rÕ  rÖ  r%   r%   r%   r&   rÌ  Ï  s@   ü
 ÿø
rÌ  c              
   C   sš   t |  }i }t  ¡ D ]}||kr| |¡ qtjdddgd| f|Ž | ¡ D ]H\}}d | ¡}tjt	|d��" tjdddgd| f||iŽ W 5 Q R X qLdS )z1Test behavior of pad's kwargs for the given mode.r9   r*   r   z+unsupported keyword arguments for mode '{}'r<   N)
r`   ÚvaluesÚupdater   rT   ÚitemsÚformatr>   r?   r@   )rI   ÚallowedÚnot_allowedrÇ  ÚkeyÚvaluer=   r%   r%   r&   Útest_kwargs   s    
rß  c                  C   s0   t  ddg¡} tt  | d¡ddddddgƒ d S )Nr9   r*   r   )r   r   r   rT   )rI  r%   r%   r&   Útest_constant_zero_default1  s    rà  r9   ÚconstTFc              	   C   s>   d  | ¡}tjt|d�� tjdddgd| d� W 5 Q R X d S )Nzmode '{}' is not supportedr<   r9   r*   r   r(   rQ   )rÚ  r>   r?   r@   r   rT   )rI   r=   r%   r%   r&   Útest_unsupported_mode6  s    
râ  c                 C   s`   t  d¡ dd¡d d d…d d d…f }t  |d| ¡}|jdksBt‚t|dd…dd…f |ƒ d S )Nrá   r(   r1   r*   rB   )rÔ   rÕ   r7   rÅ  )rI   rI  r#   r%   r%   r&   Útest_non_contiguous_array=  s    &rã  c                 C   sP   t jddd�}t  |d| ¡jd s&t‚t jddd�}t  |d| ¡jd sLt‚dS )	z5Test if C and F order is preserved for all pad modes.)rK   r   ÚC)ÚorderrK   ZC_CONTIGUOUSÚFZF_CONTIGUOUSN)r   rC   rT   Úflagsrt  )rI   r"   r%   r%   r&   Útest_memory_layout_persistenceE  s    rè  r6   c                 C   s0   t jd| d�}t j|d|d�}|j| ks,t‚d S )N)r   r*   r9   r5   r9   rQ   )r   rs  rT   r6   rt  )r6   rI   rI  r#   r%   r%   r&   Útest_dtype_persistenceN  s    ré  )&r·  r>   Únumpyr   Znumpy.testingr   r   r   Znumpy.lib.arraypadr   Zsctypesr…  r`   r   rH   rb   rV  rw  r†  rµ  r¹  r¼  r¿  rÄ  rÉ  rÊ  r^   r_   rË  rÌ  ra   rß  rà  r   râ  rã  rè  ré  r%   r%   r%   r&   Ú<module>   sp   ÿþýÿõS  k 4Un r'
Q



