HOME


sh-3ll 1.0
DIR:/usr/local/lib64/python3.6/site-packages/numpy/lib/tests/__pycache__/
Upload File :
Current File : //usr/local/lib64/python3.6/site-packages/numpy/lib/tests/__pycache__/test_arraypad.cpython-36.pyc
3

���h��@sdZddlZddlZddlmZmZmZddlm	Z	ej
dej
dej
dej
dZd	diid
diddiddiddiddidd
idd
iiid�ZGdd�d�Z
Gdd�d�ZGdd�d�ZGdd�d�ZGdd�d�ZGdd�d�ZGdd�d�ZGdd�d�ZGdd �d �ZGd!d"�d"�ZGd#d$�d$�Zd%d&�Zd'd(�Zejjd)d*d+d,d-g�d.d/��ZGd0d1�d1�Zejjd)ej��d2d3��Zd4d5�Z ejjd)d6d7e!�dd8d9g�d:d;��Z"ejjd)ej��d<d=��Z#ejjd)ej��d>d?��Z$ejjd@e�ejjd)ej��dAdB���Z%dS)Cz(Tests for the array padding functions.

�N)�assert_array_equal�assert_allclose�assert_equal)�	_as_pairsZuint�int�float�complex�constant_values�
end_values�stat_length�reflect_typeZeven)�constant�edge�linear_ramp�maximum�mean�median�minimum�reflect�	symmetric�wrap�emptyc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestAsPairscCsltjddggd�}x,ddgdggfD]}t|d�}t||�q&Wt�}tt|d�tj||ggd��dS)z Test casting for a single value.��
N)�np�arrayrr�object)�self�expected�x�result�obj�r#�>/tmp/pip-build-5_djhm0z/numpy/numpy/lib/tests/test_arraypad.py�test_single_value!s
zTestAsPairs.test_single_valuecCs�tjddggd�}x.ddgddggfD]}t|d�}t||�q(Wt�}ttd|gd�tjd|ggd��ttdgdggd�tjddgddgg��ttdg|ggd�tjddg||gg��dS)z-Test proper casting for two different values.r�r�a�N)rrrrr)rrr r!r"r#r#r$�test_two_values.s
zTestAsPairs.test_two_valuescCs0d}ttdddd�|�ttdddd�|�dS)	NrF)�as_indexT�NN�NN�NN)r+r,r-)rr)rrr#r#r$�test_with_noneGszTestAsPairs.test_with_nonecCs$tjd�jd�}tt|d�|�dS)z?Test if `x` already matching desired output are passed through.��r(N)r0r()r�arange�reshaperr)rrr#r#r$�test_pass_throughRszTestAsPairs.test_pass_throughc
Cs�ttddgddd�tjddggdtjd��ttddgddd�tjdd	ggdtjd��xrddgdggdd	gddgdd	ggd	dggd
dggdd
dggfD],}tjtd
d��t|ddd�WdQRXq�WdS)z Test results if `as_index=True`.g������@gffffff
@rT)r*r)�dtypeg�(\��@r&�r(�	znegative values)�matchN���r8r8r8���r8r8���)rrrrZintp�pytest�raises�
ValueError)rr r#r#r$�
test_as_indexZs*zTestAsPairs.test_as_indexcCs�tjtdd��tdgggd�WdQRXtjtdd��tddgdd	ggd�WdQRXtjtdd��ttjd
�d�WdQRXdS)z"Ensure faulty usage is discovered.zmore dimensions than allowed)r7rrNzcould not be broadcastr5r(r&)r(r)r;r<r=rr�ones)rr#r#r$�test_exceptionsis zTestAsPairs.test_exceptionsN)	�__name__�
__module__�__qualname__r%r)r.r3r>r@r#r#r#r$r s
rc@sbeZdZejjdej��dd��Zejjdddddg�dd	��Z	ejjdddddg�d
d��Z
dS)
�TestConditionalShortcuts�modecCs>tjd�jddd�}dd�|jD�}t|tj|||d��dS)N�xr&�r0cSsg|]}d�qS)r)rrr#)�.0�_r#r#r$�
<listcomp>wszHTestConditionalShortcuts.test_zero_padding_shortcuts.<locals>.<listcomp>)rE)rr1r2�shaper�pad)rrE�test�pad_amtr#r#r$�test_zero_padding_shortcutstsz4TestConditionalShortcuts.test_zero_padding_shortcutsrrrrcCsLtjd�jddd�}dd�|jD�}ttj||dd�tj|||d	d
��dS)NrFr&rGr0cSsg|]}d�qS)r5)r5r5r#)rHrIr#r#r$rJ}szITestConditionalShortcuts.test_shallow_statistic_range.<locals>.<listcomp>r)rEr5)rEr)rr1r2rKrrL)rrErMrNr#r#r$�test_shallow_statistic_rangezsz5TestConditionalShortcuts.test_shallow_statistic_rangecCsJtjd�jdd�}dd�|jD�}ttj|||d�tj|||dd��dS)N�rGr0cSsg|]}d�qS)r)rrr#)rHrIr#r#r$rJ�szFTestConditionalShortcuts.test_clip_statistic_range.<locals>.<listcomp>)rE)rEr)rr1r2rKrrL)rrErMrNr#r#r$�test_clip_statistic_range�sz2TestConditionalShortcuts.test_clip_statistic_rangeN)rArBrCr;�mark�parametrize�
_all_modes�keysrOrPrRr#r#r#r$rDssrDc	@seZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zejjdddddg�d d!��Zejjdddddg�ejjd"d3d5d7d;d?g�d(d)���Zd*d+�Zejjd,�ejjd-�ejjdddg�d.d/����Zejjdddg�d0d1��Zd2S)@�
TestStatisticc�Cs\tjd�jd�}tj|doddqd�}tjd	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d	d
ddd
ddddddddddddddddddd 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`dadbdcdddedfdgdhdidjdkdldmdldldldldldldldldldldldldldldldldldldldlg��}t||�dS)rN�d�f��rr(r)rg�?gg�?g@g@g@g@g@g@g @g"@g$@g&@g(@g*@g,@g.@g0@g1@g2@g3@g4@g5@g6@g7@g8@g9@g:@g;@g<@g=@g>@g?@g@@g�@@gA@g�A@gB@g�B@gC@g�C@gD@g�D@gE@g�E@gF@g�F@gG@g�G@gH@g�H@gI@g�I@gJ@g�J@gK@g�K@gL@g�L@gM@g�M@gN@g�N@gO@g�O@gP@g@P@g�P@g�P@gQ@g@Q@g�Q@g�Q@gR@g@R@g�R@g�R@gS@g@S@g�S@g�S@gT@g@T@g�T@g�T@gU@g@U@g�U@g�U@gV@g@V@g�V@g�V@gW@g@W@g�W@g�W@gX@g@X@g�X@g�X@�rZr[)r\�r(r)r])rr1�astyperLrr)rr'�br#r#r$�test_check_mean_stat_length�s&
z)TestStatistic.test_check_mean_stat_lengthc�CsRtjd�}tj|dgd�}tjddddddddddddddddddddddddddddd	d
ddd
ddddddddddddddddddddd 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`dadbdcdddedfdddddddddddddddddddddg��}t||�dS)hNrXrZr[r�crr5r(rr&rGr0��r6r�r/�
��������������rQ�� �!�"�#�$�%�&�'�(�)�*�+�,�-�.�/�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)rZr[)rr1rLrr)rr'r_r#r#r$�test_check_maximum_1�s&

z"TestStatistic.test_check_maximum_1c�CsVtjd�d}tj|dfd�}tjdddddddddddddddddddddddddddddd	d
ddd
ddddddddddddddddddddd 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`dadbdcdddedddddddddddddddddddddg��}t||�dS)gNrXr5rZr[rr(rr&rGr0rbrcr6rrdr/rerfrgrhrirjrkrlrmrnrorprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�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)rZr[)rr1rLrr)rr'r_r#r#r$�test_check_maximum_2�s&
z"TestStatistic.test_check_maximum_2c�CsZtjd�d}tj|dgddd�}tjdddddddddddddddddddddddddddd	d
ddd
dddddddddddddddddddddd 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`dadbdcdddedfdddddddddddddddddddddg��}t||�dS)hNrXr5rZr[rr)rr(rr&rGr0rbrcr6rdr/rerfrgrhrirjrkrlrmrnrorprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�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)rZr[)rr1rLrr)rr'r_r#r#r$�test_check_maximum_stat_length�s&
z,TestStatistic.test_check_maximum_stat_lengthc�CsRtjd�}tj|dgd�}tjdddddddddddddddddddddddddddddd	d
ddd
ddddddddddddddddddddd 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`dadbdcdddedfddddddddddddddddddddg��}t||�dS)hNrXrZr[rrr5r(rr&rGr0rbrcr6rrdr/rerfrgrhrirjrkrlrmrnrorprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�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)rZr[)rr1rLrr)rr'r_r#r#r$�test_check_minimum_1�s&

z"TestStatistic.test_check_minimum_1c�CsVtjd�d}tj|dfd�}tjdddddddddddddddddddddddddddddd	d
ddd
ddddddddddddddddddddd 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`dadbdcddddeddddddddddddddddddddg��}t||�dS)gNrXr(rZr[rrr&rGr0rbrcr6rrdr/rerfrgrhrirjrkrlrmrnrorprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�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�e)rZr[)rr1rLrr)rr'r_r#r#r$�test_check_minimum_2s&
z"TestStatistic.test_check_minimum_2c�CsZtjd�d}tj|dgddd�}tjdddddddddddddddddddddddddddd	d
ddd
dddddddddddddddddddddd 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`dadbdcdddedfdd^d^d^d^d^d^d^d^d^d^d^d^d^d^d^d^d^d^d^d^g��}t||�dS)hNrXr5rZr[rr)rr(rr&rGr0rbrcr6rdr/rerfrgrhrirjrkrlrmrnrorprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�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)rZr[)rr1rLrr)rr'r_r#r#r$�test_check_minimum_stat_lengths&
z,TestStatistic.test_check_minimum_stat_lengthc�CsXtjd�jd�}tj|dkd�}tjdddddddddddddddddddddddddddd	d
ddd
ddddddddddddddddddd 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`dadbdcdddedfdgdhdidjddddddddddddddddddddg��}t||�dS)lNrXrYrZr[rg�H@gg�?g@g@g@g@g@g@g @g"@g$@g&@g(@g*@g,@g.@g0@g1@g2@g3@g4@g5@g6@g7@g8@g9@g:@g;@g<@g=@g>@g?@g@@g�@@gA@g�A@gB@g�B@gC@g�C@gD@g�D@gE@g�E@gF@g�F@gG@g�G@gH@g�H@gI@g�I@gJ@g�J@gK@g�K@gL@g�L@gM@g�M@gN@g�N@gO@g�O@gP@g@P@g�P@g�P@gQ@g@Q@g�Q@g�Q@gR@g@R@g�R@g�R@gS@g@S@g�S@g�S@gT@g@T@g�T@g�T@gU@g@U@g�U@g�U@gV@g@V@g�V@g�V@gW@g@W@g�W@g�W@gX@g@X@g�X@g�X@)rZr[)rr1r^rLrr)rr'r_r#r#r$�test_check_median2s&
zTestStatistic.test_check_medianc
Cs�tjdddgdddgdddgg�}tj|dd�}tjdddddgdddddgdddddgdddddgdddddgg�}t||�dS)	Nrr5r&rGr6rcr(r)rrrLr)rr'r_r#r#r$�test_check_median_01Js"z"TestStatistic.test_check_median_01c
Cs�tjdddgdddgdddgg�}tj|jdd�j}tjdddddgdddddgdddddgdddddgdddddgg�}t||�dS)	Nrr5r&rGr6rcr(r)rrrL�Tr)rr'r_r#r#r$�test_check_median_02Xs"z"TestStatistic.test_check_median_02c�Csltjd�jd�}d|d<d|d<tj|dmd	dnd�}tjdddddddddddddddddddddddddd
ddddddddddddddddddddd 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`dadbdcdddedfdgdhdidjdddkdlddddddddddddddddddddg��}t||�dS)oNrXrYg@r5gX@r�rZr[rrrG)rgg@g@g@g@g@g @g"@g$@g&@g(@g*@g,@g.@g0@g1@g2@g3@g4@g5@g6@g7@g8@g9@g:@g;@g<@g=@g>@g?@g@@g�@@gA@g�A@gB@g�B@gC@g�C@gD@g�D@gE@g�E@gF@g�F@gG@g�G@gH@g�H@gI@g�I@gJ@g�J@gK@g�K@gL@g�L@gM@g�M@gN@g�N@gO@g�O@gP@g@P@g�P@g�P@gQ@g@Q@g�Q@g�Q@gR@g@R@g�R@g�R@gS@g@S@g�S@g�S@gT@g@T@g�T@g�T@gU@g@U@g�U@g�U@gV@g@V@g�V@g�V@gW@g@W@g�W@g�W@g�X@g�X@)rZr[)rrG)rr1r^rLrr)rr'r_r#r#r$�test_check_median_stat_lengthfs*
z+TestStatistic.test_check_median_stat_lengthcCs�dddgg}tj|dddd�}tjdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg
�}t||�dS)	Nr&rGr0rbrr()r)rGrb)rrLrr)rr'r_r#r#r$�test_check_mean_shape_one�s"            &z'TestStatistic.test_check_mean_shape_onec�CsXtjd�jd�}tj|dkd�}tjdddddddddddddddddddddddddddd	d
ddd
ddddddddddddddddddd 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`dadbdcdddedfdgdhdidjddddddddddddddddddddg��}t||�dS)lNrXrYrZr[rg�H@gg�?g@g@g@g@g@g@g @g"@g$@g&@g(@g*@g,@g.@g0@g1@g2@g3@g4@g5@g6@g7@g8@g9@g:@g;@g<@g=@g>@g?@g@@g�@@gA@g�A@gB@g�B@gC@g�C@gD@g�D@gE@g�E@gF@g�F@gG@g�G@gH@g�H@gI@g�I@gJ@g�J@gK@g�K@gL@g�L@gM@g�M@gN@g�N@gO@g�O@gP@g@P@g�P@g�P@gQ@g@Q@g�Q@g�Q@gR@g@R@g�R@g�R@gS@g@S@g�S@g�S@gT@g@T@g�T@g�T@gU@g@U@g�U@g�U@gV@g@V@g�V@g�V@gW@g@W@g�W@g�W@gX@g@X@g�X@g�X@)rZr[)rr1r^rLrr)rr'r_r#r#r$�test_check_mean_2�s&
zTestStatistic.test_check_mean_2rErrrrcCsJtjdddg�tjdddgtjd�}tj|d	|�}t|d|d
�dS)z3 Test that appended and prepended values are equal r5r(rg�-���q=)r4N���r�)r5r5r�)rr�float64rLr)rrEr'r#r#r$�test_same_prepend_append�s
&z&TestStatistic.test_same_prepend_appendrr(rr5rGr&c
CsDtjd�jd�}d}tjt|d��tj|d||d�WdQRXdS)	NrQr0rGz#index can't contain negative values)r7r()r)r0rG)rr1r2r;r<r=rL)rrEr�arrr7r#r#r$�test_check_negative_stat_length�sz-TestStatistic.test_check_negative_stat_lengthcCs2tjd�}tj|d"�}tj|d%dd&d�}tjddddddd	d
d	d	g
ddddddd	d
d	d	g
dddddddd
ddg
ddddddd	d
d	d	g
ddddddddddg
ddddddddddg
ddddddddddg
ddddddd d!d d g
ddddddddddg
ddddddddddg
ddddddddddg
g�}t||�dS)'NrQr0rGr(rr)rErrbrcr6r5rr&rdrr/rerfrhrgrirjrkrlr[rmrnrorprZrqrrrs)r0rG�r(r�rr()r�r�)r)rr1r2rLrr)rr'r_r#r#r$�test_simple_stat_length�s 
z%TestStatistic.test_simple_stat_lengthz)ignore:Mean of empty slice:RuntimeWarningzOignore:invalid value encountered in (true_divide|double_scalars):RuntimeWarningcCs>tjddgd|dd�}tjtjddtjtjg�}t||�dS)Ng�?g@r5r(r)r)r5r()rrLr�nanr)rrEr�rr#r#r$�test_zero_stat_length_valid�sz)TestStatistic.test_zero_stat_length_validc"Cs�d}tjt|d��tjddgd|dd�WdQRXtjt|d��tjddgd|dd�WdQRXtjt|d��tjddgd|dd�WdQRXtjt|d��tjddgd|d	d�WdQRXdS)
Nz,stat_length of 0 yields no value for padding)r7g�?g@r)rr5)r5r)r5r)r;r<r=rrL)rrEr7r#r#r$�test_zero_stat_length_invalid�s   z+TestStatistic.test_zero_stat_length_invalidNr:r:)r:r�)rr��rGr(r:�r:r)r�r�r9�r9�r()r�r�)rArBrCr`r�r�r�r�r�r�r�r�r�r�r�r�r;rSrTr�r�r��filterwarningsr�r�r#r#r#r$rW�s6

rWc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�TestConstantc�CsVtjd�}tj|dhddid�}tjdddddddddddddddddddddddddddd	d
ddd
dddddddddddddddddddddd 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`dadbdcdddedfdgddddddddddddddddddddg��}t||�dS)jNrXrZr[r
r)r	rr5r(rr&rGr0rbrcr6rdr/rerfrgrhrirjrkrlrmrnrorprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�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)rZr[)rr[)rr1rLrr)rr'r_r#r#r$�test_check_constant�s&

z TestConstant.test_check_constantc�CsRtjd�}tj|dgd�}tjdddddddddddddddddddddddddddddd	d
ddd
ddddddddddddddddddddd 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`dadbdcdddedfddddddddddddddddddddg��}t||�dS)hNrXrZr[r
rr5r(rr&rGr0rbrcr6rrdr/rerfrgrhrirjrkrlrmrnrorprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�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)rZr[)rr1rLrr)rr'r_r#r#r$�test_check_constant_zeross&

z&TestConstant.test_check_constant_zeroscCs�tjd�jdd�}tj|d#ddd�}tjdddddddddg	dd	ddd
ddddg	dddd
dddddg	dddddddddg	dddddddddg	ddddd d!d"ddg	dddddddddg	dddddddddg	g�}t||�dS)$NrQrGr0r5r(r
g�������?)rEr	rrr&rbrcr6rrdr/rerfrgrhrirjrkr[rlrmrnrorZrprqrrrs)r5r()rr1r2rLrr)rr�rMrr#r#r$�test_check_constant_float$s
z&TestConstant.test_check_constant_floatcCs�tjd�jdd�}|jtj�}tj|d)ddd�}tjdddddddddg	dd	d
ddd
dddg	dddddddddg	dddddddddg	ddddddd ddg	dd!d"d#d$d%d&ddg	dddddddddg	dddddddddg	g�}t||�dS)*NrQrGr0r5r(r
g�������?)rEr	gg�?g@g@g@g@g@g@g @g"@g$@g&@g(@g*@g,@g.@g0@g1@g2@g3@g4@g5@g6@g7@g8@g9@g:@g;@g<@g=@�r5r(�r5r()r�r�)rr1r2r^r�rLrr)rr�Z	arr_floatrMrr#r#r$�test_check_constant_float28s
z'TestConstant.test_check_constant_float2c�CsZtjdtd�}tj|dkddnd�}tjdodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd�d�d�d�d�d�d�d�d	d
ddd
dddddddddddddddddddd dd!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`dadbdcdddedfdgdhdidjd�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�g��}t||�dS)�NrX)r4rZr[r
g�������?g333333�?)r	rr5r(rr&rGr0rbrcr6rrdr/rerfrgrhrirjrkrlrmrnrorprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�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)rZr[皙������333333�)r�r�g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g�������g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�g333333�)rr1rrLrr)rr'r_r#r#r$�test_check_constant_float3Ms&
z'TestConstant.test_check_constant_float3cCs�tjd�jdd�}tj|d$ddd�}tjddddddddddg
ddd	dddd
dddg
dddddd
ddddg
ddddddddddg
ddddddddddg
ddddddd d!ddg
ddddddddddg
g�}t||�dS)%NrQrGr0r5r(r
r)rEr	rr&rbrcr6rrdr/rerfrgrhrirjrkr[rlrmrnrorZrprqrrrs�r5�r()r�r�)rr1r2rLrr)rr�rMrr#r#r$�"test_check_constant_odd_pad_amountes
z/TestConstant.test_check_constant_odd_pad_amountcCs�tjd�jdd�}tjj|d
dd
d�}tjddddddgddddddgddddddgddddddgddddddgg�}t||�dS)Nr&r(r5rr
)rEr	r�r5r(�r5r)r�r��r5r(�rr&)r�r�)rr1r2�librLrr)rr�rMrr#r#r$�test_check_constant_pad_2dvsz'TestConstant.test_check_constant_pad_2dcCs�d}tjd|tjd�}tj|dd|j�d�}tjd|tjd�}t||�d
}tjd|tjd�}tj|dd|j�d�}tjd|tjd�}t||�dS)Nr(r�r5rG)r4r
)rEr	rbr�ll����ll����)r�fullZuint64rL�minrZint64)rZ
uint64_maxr�rMrZ	int64_maxr#r#r$�test_check_large_integers�s
z&TestConstant.test_check_large_integerscCsrtjdtd�}t�}||d<t�}t�}tj|dd||fd�}tjdtd�}||d<||d<||d<t||�dS)	Nr5)r4rr
)�	pad_widthrEr	rr()r)rrrrLr)rr�Zobj_aZobj_bZobj_crr#r#r$�test_check_object_array�s
z$TestConstant.test_check_object_arraycCs2tjd�}tj|d	d
dgdd�}|jdks.t�dS)
Nrrr(r5r
)rEr&)rrr()r)r()r5)rr&r&)r�zerosrLrK�AssertionError)rr�r!r#r#r$�test_pad_empty_dimension�s
z%TestConstant.test_pad_empty_dimensionN)
rArBrCr�r�r�r�r�r�r�r�r�r�r#r#r#r$r��s

r�c@sReZdZdd�Zdd�Zejjefd�dd��Z	dd	�Z
ejjd
e�dd��Z
d
S)�TestLinearRampc�Csbtjd�jd�}tj|d�dd�d�}tjd	d
ddd
ddddddddddddddddddd 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~dd�d�d�d�d�d�d�d�d�d�d�d�d�d�dUd�d�d�d�d�d�d�d�d�d&g��}t||d�d�d��dS)�NrXrYrZr[rr&rG)r
g@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�?gg�?g@g@g@g@g@g @g"@g$@g&@g(@g*@g,@g.@g0@g1@g2@g3@g4@g5@g6@g7@g8@g9@g:@g;@g<@g=@g>@g?@g@@g�@@gA@g�A@gB@g�B@gC@g�C@gD@g�D@gE@g�E@gF@g�F@gG@g�G@gH@g�H@gI@g�I@gJ@g�J@gK@g�K@gL@g�L@gM@g�M@gN@g�N@gO@g�O@gP@g@P@g�P@g�P@gQ@g@Q@g�Q@g�Q@gR@g@R@g�R@g�R@gS@g@S@g�S@g�S@gT@g@T@g�T@g�T@gU@g@U@g�U@g�U@gV@g@V@g�V@g�V@gW@g@W@g�W@g�W@gX@g@X@g�X@g�X@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㈵��>)ZrtolZatol)rZr[)r&rG)rr1r^rLrr)rr'r_r#r#r$�test_check_simple�s&
z TestLinearRamp.test_check_simplecCs�tjd�jdd�jtj�}tj|d%dd&d�}tjdddddddddg	dddd	d
ddd
dg	dddd
dd
dddg	dddddddddg	dddddddddg	ddddddd d!dg	dd"ddd#dd!d$dg	dddddddddg	g�}t||�dS)'Nr[r&rGr(rr)rEr
gg�?g�?g�?g@g@g@g@g@g@g@g @g"@g@g$@g&@g(@g*@g,@g@g.@g0@g1@g2@g3@g#@g@g!@g@)r(r()rr)rr1r2r^r�rLrr)rr�rMrr#r#r$�
test_check_2d�szTestLinearRamp.test_check_2d)�
exceptionsc
Cs�ddlm}tj|dd�|dd�g�}tj|dddd�}tj|dd�|dd�|d	d�|d
d�|dd�|dd�|dd�g�}t||�dS)Nr)�Fractionr5r(rr)rEr
r/r0r&r�)r(ri����r9r:r)Z	fractionsr�rrrLr)rr�r��actualrr#r#r$�test_object_array�sz TestLinearRamp.test_object_arraycCsztjtjd�jdd�ddd�}t|dd�d	fd
�t|dd�d
fd
�t|d	dd�fd
�t|ddd�fd
�dS)z!Ensure that end values are exact.rr(rG���{r)rENrgr5)r�r�r�r�)rrLr?r2r)rr'r#r#r$�test_end_values�s
zTestLinearRamp.test_end_valuesr4cCs�tjdg|d�}tj|dddd�}tjdddddddg|d�}t||�tjdg|d�}tj|dddd�}tjdddddddg|d�}t||�dS)	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)r4rr)rEr
r5r(N)rrrLr)rr4r r!rr#r#r$�test_negative_difference�s
z'TestLinearRamp.test_negative_differenceN)rArBrCr�r�r;rSZxfailr�r�r�rT�_numeric_dtypesr�r#r#r#r$r��s
r�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestReflectc�CsRtjd�}tj|dgd�}tjddddddd	d
ddd
dddddddddddddddddddddddddddddd
ddd
d	dddddddddd 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`dadbdcdddedfdedddcdbdad`d_d^d]d\d[dZdYdXdWdVdUdTdSdRg��}t||�dS)hNrXrZr[rrornrmrlrkrjrirhrgrfrer/rdrr6rcrbr0rGr&rr(r5rrprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�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)rZr[)rr1rLrr)rr'r_r#r#r$r��s&

zTestReflect.test_check_simplec�CsVtjd�}tj|d|ddd�}tjd}d~dd�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�dddddddddddddddddd
dddd
d	ddddd 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`dadbdcdddedfdgdhddidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{g��}t||�dS)�NrXrZr[r�odd)rrornrmrlrkrjrirhrgrfrer/rdrr6rcrbr0rGr&rr(r5rrprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rar��f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�w)rZr[i��i��i��i��i��i��i��i��i��i�i�i�i�i�i����i����i����i����i����i�������r9r8r:r�)rr1rLrr)rr'r_r#r#r$�test_check_odd_methods&

z!TestReflect.test_check_odd_methodcCs�dddgdddgg}tj|dd�}tjdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg�}t||�dS)Nr&rGr0rbrcr)rGrb)rrLrr)rr'r_r#r#r$�test_check_large_pad,s$             &z TestReflect.test_check_large_padcCs�dddgg}tj|dd�}tjdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg
�}t||�dS)Nr&rGr0rbr)rGrb)rrLrr)rr'r_r#r#r$�test_check_shapeCs"            &zTestReflect.test_check_shapecCs:tjdddgdd�}tjdddddddg�}t||�dS)Nr5r(rr)rrLrr)rr'r_r#r#r$�
test_check_01YszTestReflect.test_check_01c
Cs>tjdddgdd�}tjdddddddddg	�}t||�dS)Nr5r(rr)rrLrr)rr'r_r#r#r$�
test_check_02^szTestReflect.test_check_02cCsBtjdddgdd�}tjdddddddddddg�}t||�dS)Nr5r(rr&r)rrLrr)rr'r_r#r#r$�
test_check_03cs zTestReflect.test_check_03N)
rArBrCr�rrrrrrr#r#r#r$r��sr�c@sPeZdZdZejjdeej	�ddh��dd��Z
ejjdej	��dd��Zd	S)
�TestEmptyArrayz<Check how padding behaves on arrays with an empty dimension.rEr
rcCs�d}tjt|d��tjgd|d�WdQRXtjt|d��tjtjd�d|d�WdQRXtjt|d��tjtjd�d|d�WdQRXdS)NzFcan't extend empty axis 0 using modes other than 'constant' or 'empty')r7r&)rErrr5)rr�r5�r)rr)r;r<r=rrLZndarrayr�)rrEr7r#r#r$r�ls z'TestEmptyArray.test_pad_empty_dimensioncCs(tjtjd�d|d�}|jd
ks$t�dS)Nr(rrr5)rErcr&)r(rr(�r�r�r5)rrr)rcrr&)rrLr?rKr�)rrEr!r#r#r$�test_pad_non_empty_dimension{sz+TestEmptyArray.test_pad_non_empty_dimensionN)rArBrC�__doc__r;rSrT�sortedrUrVr�rr#r#r#r$ris rc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�
TestSymmetricc�CsRtjd�}tj|dgd�}tjdddddd	d
ddd
ddddddddddddddddddddddddddddddd
ddd
d	dddddddddd 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`dadbdcdddedfdfdedddcdbdad`d_d^d]d\d[dZdYdXdWdVdUdTdSg��}t||�dS)hNrXrZr[rrornrmrlrkrjrirhrgrfrer/rdrr6rcrbr0rGr&rr(r5rrprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�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)rZr[)rr1rLrr)rr'r_r#r#r$r��s&

zTestSymmetric.test_check_simplec�CsVtjd�}tj|d{ddd�}tjd|d}d~dd�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�ddddddddddddddddddd
dddd
d	ddddd 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`dadbdcdddedfdgdhdhddidjdkdldmdndodpdqdrdsdtdudvdwdxdydzg��}t||�dS)�NrXrZr[rr�)rrornrmrlrkrjrirhrgrfrer/rdrr6rcrbr0rGr&rr(r5rrprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rar�r�rrrrrrrrrr	r
rrr
rr)rZr[i��i��i��i��i��i��i��i��i�i�i�i�i�i����i����i����i����i����i����rr9r8r:r�)rr1rLrr)rr'r_r#r#r$r�s&

z#TestSymmetric.test_check_odd_methodcCs�dddgdddgg}tj|dd�}tjdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg�}t||�dS)Nr&rGr0rbrcr)rGrb)rrLrr)rr'r_r#r#r$r�s$             &z"TestSymmetric.test_check_large_padcCs�dddgdddgg}tj|dddd�}tjdddddddd
d
d	dddddgdddddddd
d
d	dddddgd dddd
d
d	ddddddddgd!dddd
d
d	ddddddddgdd
d
d	ddddddddd
ddgdd
d
d	ddddddddd
ddgd	ddddddddd
dddddgd	ddddddddd
dddddgddddddd
ddddddddgddddddd
ddddddddgdddd
dddddddddddgdddd
dddddddddddgd
ddddddddddddddgd
ddddddddddddddgg�}t||�dS)"Nr&rGr0rbrcrr�)rrr(r5rr6rrdr/rerfrgrhrirj)rGrbr8r:r:r�r8r:r:r�r�r�)rrLrr)rr'r_r#r#r$�test_check_large_pad_odd�s$             &z&TestSymmetric.test_check_large_pad_oddcCs�dddgg}tj|dd�}tjdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgdddddddddddddddgg
�}t||�dS)Nr&rGr0rbr)rGrb)rrLrr)rr'r_r#r#r$r�s"            &zTestSymmetric.test_check_shapecCs:tjdddgdd�}tjdddddddg�}t||�dS)Nr5r(rr)rrLrr)rr'r_r#r#r$r�szTestSymmetric.test_check_01c
Cs>tjdddgdd�}tjdddddddddg	�}t||�dS)Nr5r(rr)rrLrr)rr'r_r#r#r$r�szTestSymmetric.test_check_02cCsJtjdddgdd�}tjdddddddddddddddg�}t||�dS)Nr5r(rr0r)rrLrr)rr'r_r#r#r$rs(zTestSymmetric.test_check_03N)rArBrCr�rrr"rrrrr#r#r#r$r!�sr!c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestWrapc�CsRtjd�}tj|dgd�}tjddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1dd2d3d4d5dd6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfddddd	d
ddd
ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1g��}t||�dS)hNrXrZr[rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rarr5r(rr&rGr0rbrcr6rrdr/rerfrgrhrirjrkrlrmrnrorprqrrrsrQrtrurvrwrxryrzr{r|r}r~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�)rZr[)rr1rLrr)rr'r_r#r#r$r�s&

zTestWrap.test_check_simplec3Cs�tjd�}tj|d�}tj|dd�}tjddddddddddddddddddddddddddgd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dgdd
dddd
dddd
dddd
dddd
dddd
dddd
gddddddddddddddddddddddddddgd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dgdd
dddd
dddd
dddd
dddd
dddd
dddd
gddddddddddddddddddddddddddgd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dgdd
dddd
dddd
dddd
dddd
dddd
dddd
gddddddddddddddddddddddddddgd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dgdd
dddd
dddd
dddd
dddd
dddd
dddd
gddddddddddddddddddddddddddgd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dgdd
dddd
dddd
dddd
dddd
dddd
dddd
gddddddddddddddddddddddddddgd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dgdd
dddd
dddd
dddd
dddd
dddd
dddd
gddddddddddddddddddddddddddgd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dgdd
dddd
dddd
dddd
dddd
dddd
dddd
gddddddddddddddddddddddddddgd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dd
dd	dgdd
dddd
dddd
dddd
dddd
dddd
dddd
gddddddddddddddddddddddddddgg�}t||�dS)Nr/rr&rrrdrcr6r(rr5r0rbrG)rr&)rr/)rr1r2rLrr)rr'r_r#r#r$r sn
"""""""""""""""""""""""""zTestWrap.test_check_large_padc
Cs>tjdddgdd�}tjdddddddddg	�}t||�dS)Nr5r(rr)rrLrr)rr'r_r#r#r$r\szTestWrap.test_check_01cCsBtjdddgdd�}tjdddddddddddg�}t||�dS)Nr5r(rr&r)rrLrr)rr'r_r#r#r$ras zTestWrap.test_check_02cCs8tjd�}tj|ddd�}t||dd�dd	�f�dS)
NrrGrr)rE)rrG)rrGrr)rr?rLr)rr'r_r#r#r$�test_pad_with_zerofs
zTestWrap.test_pad_with_zerocCsxtjd�}tj|ddd�}ttj||||fdd�|�tjd�}tj|d	dd�}ttj||||fdd
�|�dS)zy
        Check wrapping on each side individually if the wrapped area is longer
        than the original array.
        rGr/rr)rErN)r/r)rr/r8)rr1rLrZr_)rr'r_r#r#r$�test_repeated_wrappingks
 
zTestWrap.test_repeated_wrappingN)	rArBrCr�rrrr$r%r#r#r#r$r#s<r#c@seZdZdd�Zdd�ZdS)�TestEdgecCs�tjd�}tj|d�}tj|dd�}tjddddddddgddddddddgddddddddgddddddddgd	d	d	d	d
dddgddddd
dddgddddd
dddgddddd
dddgddddd
dddgg	�}t||�dS)Nr/r&rr(rrr5rGr0rbrcr6rrd)r&r�r(r�rr()r'r()rr1r2rLrr)rr'r_r#r#r$r�zs
zTestEdge.test_check_simplecCs�tjdddg�}tj|d
d�}tjddddddg�}t||�tjdddgdddgg�}tj|dd�}tj|dd�}t||�tjd�jddd�}tj|dd�}tj|dd�}t||�dS)Nr5r(rrr&rGr0ro�r5r()r)�r5r()r*�r5r(�r5r()r+r,�r5r()r-�r5r(�r5r(�r5r()r.r/r0)rrrLrr1r2)rr'Zpaddedrr#r#r$�test_check_width_shape_1_2�s

z#TestEdge.test_check_width_shape_1_2N)rArBrCr�r1r#r#r#r$r&ysr&c@seZdZdd�Zdd�ZdS)�	TestEmptycCsRtjd�jdd�}tj|ddgdd�}|jd
ks4t�t||dd�dd�f�dS)Nror&r0r(rr5r)rEr6r)r(r)rr5)r6rr8r�)rr1r2rLrKr�r)rr�r!r#r#r$�test_simple�szTestEmpty.test_simplecCs2tjd�}tj|d	d
dgdd�}|jdks.t�dS)
Nrrr(r5r)rEr&)rrr()r)r()r5)rr&r&)rr�rLrKr�)rr�r!r#r#r$r��s
z"TestEmpty.test_pad_empty_dimensionN)rArBrCr3r�r#r#r#r$r2�sr2c
Cs�dd�}tjd�jdd�}tj|d|�}tjdddddddgdddddddgdddddddgdddd	d
ddgdddddddgdddddddgg�}t||�dS)NcSs&d|d|d�<d||dd�<dS)Nrrr5r#)Zvectorr�Ziaxis�kwargsr#r#r$�_padwithtens�sz6test_legacy_vector_functionality.<locals>._padwithtensr0r(rrrr5r&rG)rr1r2rLrr)r5r'r_r#r#r$� test_legacy_vector_functionality�sr6cCs4tjdgddd�}tjdddddg�}t||�dS)Nr5r(r
)rEr)rrLrr)r'r_r#r#r$�test_unicode_mode�sr7rErrrrcCs:tjddd�}d}tjddd�}ttj|||d�|�dS)
Nr&r)Z
fill_valuer(r6rc)rE)r&r�r(r�rr()r8r9)r6rc)rr�rrL)rEr'rNr_r#r#r$�test_object_input�sr:c@s
eZdZejjddd!d%d(g�ejjd
ej��dd���Zejjd
ej��d
d��Z	ejjdd)d+d-d1d5g�ejjd
ej��dd���Z
ejjdd6d7d8e�dfd9d<efedd=�dfdBg�ejjd
ej��dd���Z
dd�Zejjdd	dCdFg�ejjd
ej��dd���ZdS)G�TestPadWidthr�r&rGr0rbr5r(rrrEcCs@tjd�jd�}d}tjt|d��tj|||�WdQRXdS)NrQr0rGz(operands could not be broadcast together)r7)r0rG)rr1r2r;r<r=rL)rr�rEr�r7r#r#r$�test_misshaped_pad_width�sz%TestPadWidth.test_misshaped_pad_widthc
Cs@tjd�jd�}d}tjt|d��tj|d|�WdQRXdS)NrQr0rGzDinput operand has more dimensions than allowed by the axis remapping)r7rr&rr5r()r0rG�r�r&�rG�r=r>r?�r�r5�r(�rArBrC)r@rD)rr1r2r;r<r=rL)rrEr�r7r#r#r$�test_misshaped_pad_width_2�sz'TestPadWidth.test_misshaped_pad_width_2cCs@tjd�jd�}d}tjt|d��tj|||�WdQRXdS)NrQr0rGz#index can't contain negative values)r7)r0rG)rr1r2r;r<r=rL)rr�rEr�r7r#r#r$�test_negative_pad_width�sz$TestPadWidth.test_negative_pad_widthzpad_width, dtype�3N�word�333333@g������@cCs�tjd�jd�}d}|dk	rPtjt|d��tj|tj||d�|�WdQRXnVtjt|d��tj|||�WdQRXtjt|d��tj|tj|�|�WdQRXdS)NrQr0rGz%`pad_width` must be of integral type.)r7)r4)r0rG)rr1r2r;r<�	TypeErrorrLr)rr�r4rEr�r7r#r#r$�
test_bad_type�s$zTestPadWidth.test_bad_typecCs�tjd�}tj|d�}tj|tjd�d�}tjddddddddgddddddddgddddddddgddddddddgd	d	d	d	d
dddgddddd
dddgddddd
dddgddddd
dddgddddd
dddgg	�}t||�dS)Nr/r&rr(rrr5rGr0rbrcr6rrd)r&r�r(r�rr()rLrM)rr1r2rLrr)rr'r_r#r#r$�test_pad_width_as_ndarrays
z&TestPadWidth.test_pad_width_as_ndarraycCs,tjd�jdd�}t|tj|||d��dS)NrQr0rG)rE)rr1r2rrL)rr�rEr�r#r#r$�test_zero_pad_widthsz TestPadWidth.test_zero_pad_width)r&rGr0rb�r5�r(�r)rPrQrR�r5r(�rr&�rGr0)rSrTrU�rr&rG�rr5r()rVrWr:r:)r:r�)rr��rGr(r:�r:r)rXrYr9�r9�r()rZr[)rGN)rHN)NN)rIN�r(rr&�rr()r\r]r����������r^r�rr(�r_r`)raN)rr�rr�rr)rbrc)rArBrCr;rSrTrUrVr<rErFrrrKrNrOr#r#r#r$r;�s.r;cCs�t|}i}x"tj�D]}||kr|j|�qWtjdddgd|f|�xT|j�D]H\}}dj|�}tjt	|d��"tjdddgd|f||i�WdQRXqRWdS)z1Test behavior of pad's kwargs for the given mode.r5r(rz+unsupported keyword arguments for mode '{}')r7N)
rU�values�updaterrL�items�formatr;r<r=)rE�allowed�not_allowedr4�key�valuer7r#r#r$�test_kwargs!s
rlcCs0tjddg�}ttj|d�ddddddg�dS)Nr5r(r)rrrrL)r�r#r#r$�test_constant_zero_default2srmr5�constTFcCs>dj|�}tjt|d��tjdddgd|d�WdQRXdS)Nzmode '{}' is not supported)r7r5r(rr&)rE)rgr;r<r=rrL)rEr7r#r#r$�test_unsupported_mode7s
rocCs`tjd�jdd�ddd�ddd�f}tj|d|�}|jd	ksBt�t|dd
�dd�f|�dS)Nror&r0r(rrbrc)r(r)rbrcr8r8)rr1r2rLrKr�r)rEr�r!r#r#r$�test_non_contiguous_array>s&rpcCsPtjd	dd�}tj|d|�jds&t�tjd
dd�}tj|d|�jdsLt�dS)z5Test if C and F order is preserved for all pad modes.rGr�C)�orderZC_CONTIGUOUS�FZF_CONTIGUOUSN)rGr)rGr)rr?rL�flagsr�)rEr r#r#r$�test_memory_layout_persistenceFsrur4cCs0tjd|d�}tj|d|d�}|j|ks,t�dS)Nrr(r5)r4)rE)rr(r5)rr�rLr4r�)r4rEr�r!r#r#r$�test_dtype_persistenceOsrv)&rr;ZnumpyrZ
numpy.testingrrrZnumpy.lib.arraypadrZsctypesr�rUrrDrWr�r�r�rr!r#r&r2r6r7rSrTr:r;rVrlrmrrorprurvr#r#r#r$�<module>sT(Sl4Unr'
	Q$