HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/numpy/lib/tests/__pycache__/test_arraypad.cpython-310.pyc
o

���g.��@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(�Zej�d)gd*��d+d,��ZGd-d.�d.�Zej�d)e���d/d0��Zd1d2�Z ej�d)d3d4e!�dd5d6g�d7d8��Z"ej�d)e���d9d:��Z#ej�d)e���d;d<��Z$ej�d=e�ej�d)e���d>d?���Z%dS)@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<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestAsPairscCsht�ddggd�}ddgdggfD]}t|d�}t||�qt�}tt|d�t�||ggd��dS)z Test casting for a single value.��
N��np�arrayrr�object��self�expected�x�result�obj�r'�H/usr/local/lib/python3.10/dist-packages/numpy/lib/tests/test_arraypad.py�test_single_value!s
�zTestAsPairs.test_single_valuecCs�t�ddggd�}ddgddggfD]}t|d�}t||�qt�}ttd|gd�t�d|ggd��ttdgdggd�t�ddgddgg��ttdg|ggd�t�ddg||gg��dS)z-Test proper casting for two different values.r�r�a�Nrr!r'r'r(�test_two_values.s"
���zTestAsPairs.test_two_valuescCs0d}ttdddd�|�ttdddd�|�dS)N)�NNr.r.rF��as_indexT)rr�r"r#r'r'r(�test_with_noneGs��zTestAsPairs.test_with_nonecCs$t�d��d�}tt|d�|�dS)z?Test if `x` already matching desired output are passed through.�)�r,r4N)r�arange�reshaperrr1r'r'r(�test_pass_throughRs
�zTestAsPairs.test_pass_throughc
Cs�ttddgddd�tjddggdtjd��ttddgddd�tjdd	ggdtjd��d
d
gd
ggd
d	gddgd
d	ggd	d
ggdd
ggdddggfD] }tjtdd��t|ddd�Wd�n1sjwYqOdS)z Test results if `as_index=True`.g������@gffffff
@rTr/r��dtypeg�(\��@r*�������r,�	���znegative values��matchN)rrrr�intp�pytest�raises�
ValueError)r"r$r'r'r(�
test_as_indexZs ��(����zTestAsPairs.test_as_indexcCs�tjtdd��tdgggd�Wd�n1swYtjtdd��tddgdd	ggd�Wd�n1s<wYtjtdd��tt�d
�d�Wd�dS1s\wYdS)z"Ensure faulty usage is discovered.zmore dimensions than allowedr?rrNzcould not be broadcastr<r,r*�r,r)rBrCrDrr�ones)r"r'r'r(�test_exceptionsis��"�zTestAsPairs.test_exceptionsN)	�__name__�
__module__�__qualname__r)r-r2r7rErHr'r'r'r(r s
rc@sZeZdZej�de���dd��Zej�dgd��dd��Z	ej�dgd��dd��Z
d	S)
�TestConditionalShortcuts�modecCs>t�d��ddd�}dd�|jD�}t|tj|||d��dS)N�xr*�r4cS�g|]}d�qS)�rrr'��.0�_r'r'r(�
<listcomp>w�zHTestConditionalShortcuts.test_zero_padding_shortcuts.<locals>.<listcomp>�rM�rr5r6�shaper�pad�r"rM�test�pad_amtr'r'r(�test_zero_padding_shortcutstsz4TestConditionalShortcuts.test_zero_padding_shortcuts)rrrrcCsLt�d��ddd�}dd�|jD�}ttj||dd�tj|||d	d
��dS)NrNr*rOr4cSrP)�r<r<r'rRr'r'r(rU}rVzITestConditionalShortcuts.test_shallow_statistic_range.<locals>.<listcomp>rrWr<�rMrrXr[r'r'r(�test_shallow_statistic_rangezs
�z5TestConditionalShortcuts.test_shallow_statistic_rangecCsJt�d��dd�}dd�|jD�}ttj|||d�tj|||dd��dS)N�rOr4cSrP))rrr'rRr'r'r(rU�rVzFTestConditionalShortcuts.test_clip_statistic_range.<locals>.<listcomp>rWr`rXr[r'r'r(�test_clip_statistic_range�s
�z2TestConditionalShortcuts.test_clip_statistic_rangeN)rIrJrKrB�mark�parametrize�
_all_modes�keysr^rarcr'r'r'r(rLss

rLc@seZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zej�dgd��dd��Zej�dgd��ej�dgd ��d!d"���Zd#d$�Zej�d%�ej�d&�ej�dd'd(g�d)d*����Zej�dd+d,g�d-d.��Zd/S)0�
TestStatisticcCs>t�d��d�}tj|dddd�}t�gd��}t||�dS)N�d�f)���r)rF�r)���?rorororororororororororororororororororororororo���?�@�@�@�@�@�@� @�"@�$@�&@�(@�*@�,@�.@�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��rr5�astyperZrr�r"r+�br'r'r(�test_check_mean_stat_length�s�z)TestStatistic.test_check_mean_stat_lengthcC�4t�d�}t�|dd�}t�gd��}t||�dS)Nrirkr)��cr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr<r,rr*rOr4��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�br�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��rr5rZrrr�r'r'r(�test_check_maximum_1��
�z"TestStatistic.test_check_maximum_1cC�8t�d�d}t�|dd�}t�gd��}t||�dS)Nrir<rkr)�riririririririririririririririririririririririririr<r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�rmr�r�r�r�rlr�r�r�r�rbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�riririririririririririririririririririririr1r�r'r'r(�test_check_maximum_2���z"TestStatistic.test_check_maximum_2cC�<t�d�d}tj|dddd�}t�gd��}t||�dS)Nrir<rkrrrn)�rrrrrrrrrrrrrrrrrrrrrrrrrr<r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�rmr�r�r�r�rlr�r�r�r�rbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�riririririririririririririririririririririr1r�r'r'r(�test_check_maximum_stat_length���z,TestStatistic.test_check_maximum_stat_lengthcCr�)Nrirkr��rrrrrrrrrrrrrrrrrrrrrrrrrrr<r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�rmr�r�r�r�rlr�r�r�r�rbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�rrrrrrrrrrrrrrrrrrrrr1r�r'r'r(�test_check_minimum_1�r3z"TestStatistic.test_check_minimum_1cCr4)Nrir,rkr)�r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�rmr�r�r�r�rlr�r�r�r�rbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�ri�er,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r1r�r'r'r(�test_check_minimum_2r6z"TestStatistic.test_check_minimum_2cCr7)Nrir<rkrrrn)�r<r<r<r<r<r<r<r<r<r<r<r<r<r<r<r<r<r<r<r<r<r<r<r<r<r<r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�rmr�r�r�r�rlr�r�r�r�rbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�rir)r)r)r)r)r)r)r)r)r)r)r)r)r)r)r)r)r)r)r)r1r�r'r'r(�test_check_minimum_stat_lengthr9z,TestStatistic.test_check_minimum_stat_lengthcC�:t�d��d�}t�|dd�}t�gd��}t||�dS)Nrirjrkr����H@rArArArArArArArArArArArArArArArArArArArArArArArArprqrrrsrtrurvrwrxryrzr{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�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rArArArArArArArArArArArArArArArArArArArAr�r�r'r'r(�test_check_median2��zTestStatistic.test_check_mediancCs`t�gd�gd�gd�g�}t�|dd�}t�gd�gd�gd�gd	�gd�g�}t||�dS)
N�rr<r*�r*rOr=�r=r�r,r<r)r*r*rOr*r*�rrr<r*r�rOr*rOr=rO�r�r=r�r,r�)rrrZrr�r'r'r(�test_check_median_01Js��	z"TestStatistic.test_check_median_01cCsdt�gd�gd�gd�g�}t�|jdd�j}t�gd�gd�gd�gd	�gd�g�}t||�dS)
NrDrErFr<r)rOr*rOr*rOrGrHrI)rrrZ�Trr�r'r'r(�test_check_median_02Xs��	z"TestStatistic.test_check_median_02cCsNt�d��d�}d|d<d|d<tj|ddd	d
�}t�gd��}t||�dS)Nrirjrrr<r�r/rkr�rrOrn)�rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrprrrrrsrtrurvrwrxryrzr{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�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�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_lengthfs�z+TestStatistic.test_check_median_stat_lengthcCs�gd�g}tj|dddd�}t�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�g
�}t||�dS)N�r*rOr4�rOr�rr,rn)r*r*r*r*r*r*rOr4r4r4r4r4r4r4r4�rrZrrr�r'r'r(�test_check_mean_shape_one�s&
��z'TestStatistic.test_check_mean_shape_onecCr?)Nrirjrkrr@r�r�r'r'r(�test_check_mean_2�rCzTestStatistic.test_check_mean_2rM)rrrrcCsFt�gd��tjgd�tjd�}t�|d|�}t|d|d�dS)z3 Test that appended and prepended values are equal )���r,rT)rg�-���q=rr8r_rrTN)rr�float64rZr)r"rMr+r'r'r(�test_same_prepend_append�s"
z&TestStatistic.test_same_prepend_appendr�r>)r>)rrT))rOr,)r>r))r;�r,cCsZt�d��d�}d}tjt|d��tj|d||d�Wd�dS1s&wYdS)Nrb�r4rO�#index can't contain negative valuesr?r,rn�rr5r6rBrCrDrZ)r"rMr�arrr@r'r'r(�test_check_negative_stat_length�s
"�z-TestStatistic.test_check_negative_stat_lengthcCs�t�d�}t�|d�}tj|dddd�}t�gd�gd�gd�gd�gd	�gd
�gd�gd�gd�gd�gd�g�}t||�dS)
NrbrY�rF�rr,r�rr`)
r4r4r4rOr4r�r�r=r�r�)
r<r<r<rr<r,rr*rr)
r�r�r�rr�r3r�r�r�r�)
r�r�r�r�r�r�r�r�r�r�)
r�r�r�rmr�r�r�r�r�r�)
r�r�r�rlr�r�r�r�r�r��rr5r6rZrrr�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:RuntimeWarningrrcCs>tjddgd|dd�}t�tjddtjtjg�}t||�dS)Nrqrr�r<r,rrn)rrZr�nanr)r"rMr\r#r'r'r(�test_zero_stat_length_valid�sz)TestStatistic.test_zero_stat_length_validrrcCsd}tjt|d��tjddgd|dd�Wd�n1swYtjt|d��tjddgd|dd�Wd�n1sAwYtjt|d��tjddgd|dd�Wd�n1scwYtjt|d��tjddgd|dd�Wd�dS1s�wYdS)	Nz,stat_length of 0 yields no value for paddingr?rqrrrrn)r<rr<)rBrCrDrrZ�r"rMr@r'r'r(�test_zero_stat_length_invalid�s���"�z+TestStatistic.test_zero_stat_length_invalidN)rIrJrKr�r2r5r8r;r=r>rBrJrLrNrRrSrBrdrerVr]rb�filterwarningsrergr'r'r'r(rh�s<
�
�rhc@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�TestConstantcC�8t�d�}tj|dddd�}t�gd��}t||�dS)Nrirkr)rrm�r
)�rrrrrrrrrrrrrrrrrrrrrrrrrrr<r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�rmr�r�r�r�rlr�r�r�r�rbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�rmrmrmrmrmrmrmrmrmrmrmrmrmrmrmrmrmrmrmrmr1r�r'r'r(�test_check_constant��
�z TestConstant.test_check_constantcCr�)Nrirkrr:r1r�r'r'r(�test_check_constant_zerosr3z&TestConstant.test_check_constant_zeroscCslt�d��dd�}tj|dddd�}t�gd�gd	�gd
�gd�gd�gd
�gd�gd�g�}t||�dS)NrbrOr4rcr皙�����?�rMr
)	r<r<r<r<r<r<r<r<r<)	r<rr<r,rr*rOr<r<)	r<r4r�r�r=rr�r<r<)	r<r3r�r�r�r�r�r<r<)	r<r�r�rmr�r�r�r<r<)	r<r�rlr�r�r�r�r<r<�rr5r6rZrr�r"r\r\r#r'r'r(�test_check_constant_float#s 
���z&TestConstant.test_check_constant_floatcCsxt�d��dd�}|�tj�}tj|dddd�}t�gd�gd	�gd
�gd�gd�gd
�gd�gd�g�}t||�dS)NrbrOr4�rcrcrrorp)	rororororororororo)	rorprqrrrsrtruroro)	rorvrwrxryrzr{roro)	ror|r}r~rr�r�roro)	ror�r�r�r�r�r�roro)	ror�r�r�r�r�r�roro�rr5r6r�rUrZrr)r"r\�	arr_floatr\r#r'r'r(�test_check_constant_float27s"
���z'TestConstant.test_check_constant_float2cCs<tjdtd�}tj|dddd�}t�gd��}t||�dS)Nrir8rkr)皙������333333�rk)�rxrxrxrxrxrxrxrxrxrxrxrxrxrxrxrxrxrxrxrxrxrxrxrxrxrr<r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�rmr�r�r�r�rlr�r�r�r�rbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�ryryryryryryryryryryryryryryryryryryryry)rr5rrZrrr�r'r'r(�test_check_constant_float3Lr9z'TestConstant.test_check_constant_float3c
Csft�d��dd�}tj|dddd�}t�gd�gd	�gd
�gd�gd�gd
�gd�g�}t||�dS)NrbrOr4)�r<rXrrrp)
rrrrrrrrrr)
rrrr<r,rr*rOrr)
rrr4r�r�r=rr�rr)
rrr3r�r�r�r�r�rr)
rrr�r�rmr�r�r�rr)
rrr�rlr�r�r�r�rrrqrrr'r'r(�"test_check_constant_odd_pad_amountds
���z/TestConstant.test_check_constant_odd_pad_amountcCs\t�d��dd�}tjj|dddd�}t�gd�gd�gd	�gd
�gd
�g�}t||�dS)Nr*r,)rc�r<rr)rc�rr*rp)rr<r<r*r*r*)rrr<r*r*r*)rr,rr*r*r*)rr,r,r*r*r*)rr5r6�librZrrrrr'r'r(�test_check_constant_pad_2dus���z'TestConstant.test_check_constant_pad_2dcCs�d}tjd|tjd�}tj|dd|��d�}tjd|tjd�}t||�d}tjd|tjd�}tj|dd|��d�}tjd|tjd�}t||�dS)	Nl����rOr8r<rrpr�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_integerscCsrtjdtd�}t�}||d<t�}t�}tj|dd||fd�}tjdtd�}||d<||d<||d<t||�dS)Nr<r8rr)�	pad_widthrMr
r`r,)rrr rZr)r"r\�obj_a�obj_b�obj_cr#r'r'r(�test_check_object_array�s
�z$TestConstant.test_check_object_arraycC�0t�d�}tj|gd�dd�}|jdksJ�dS)N�rrr,��rrXr{rrW�rr*r*�r�zerosrZrY�r"r\r%r'r'r(�test_pad_empty_dimension��
z%TestConstant.test_pad_empty_dimensionN)
rIrJrKrlrnrsrwrzr|r�r�r�r�r'r'r'r(ri�s

ric@sReZdZdd�Zdd�Zejjefd�dd��Z	dd	�Z
ej�d
e�dd��Z
d
S)�TestLinearRampcCsDt�d��d�}tj|dddd�}t�gd��}t||ddd	�dS)
Nrirjrkr)r*rO)r)�rtg���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�?rprqrrrsrtrurvrwrxryrzr{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�r�r�r�r�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#@rug�h㈵��>)�rtol�atol)rr5r�rZrrr�r'r'r(�test_check_simple�s�z TestLinearRamp.test_check_simplecCstt�d��dd��tj�}tj|dddd�}t�gd�gd	�gd
�gd�gd�gd
�gd�gd�g�}t||�dS)Nrmr*rO)r,r,rrQ�rMr)	rprprprprprprprprp)	rprprprorqg�?rrrqrp)	rprprprqrrrsrtrrrp)	rpg@rurvrwrxryg@rp)	rprurzr{r|r}r~rwrp)	rp�@rr�r�r�r��#@rp)	rpg@r�rxg!@ryr�g@rprurrr'r'r(�
test_check_2d�s��	zTestLinearRamp.test_check_2d)�
exceptionscCs�ddlm}t�|dd�|dd�g�}tj|dddd�}t�|dd	�|d
d	�|dd	�|dd	�|d
d	�|dd	�|dd	�g�}t||�dS)Nr)�Fractionr<r,rTrFrr�r3rr4���r;r>)�	fractionsr�rrrZr)r"r�r\�actualr#r'r'r(�test_object_array�s�	z TestLinearRamp.test_object_arraycCsztjt�d��dd�ddd�}t|dd�dfd	�t|dd�d
fd	�t|ddd�fd	�t|d
dd�fd	�dS)z!Ensure that end values are exact.rr,rO)���{rrWNrrprT)rrZrGr6r)r"r+r'r'r(�test_end_values�s
zTestLinearRamp.test_end_valuesr9cCs�tjdg|d�}tj|dddd�}tjgd�|d�}t||�tjdg|d�}tj|dddd�}tjgd�|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.
        rr8rrr�)rr<r,rr,r<r)rr,r<rr<r,rN)rrrZr)r"r9r$r%r#r'r'r(�test_negative_difference�s
z'TestLinearRamp.test_negative_differenceN)rIrJrKr�r�rBrd�xfail�AssertionErrorr�r�re�_numeric_dtypesr�r'r'r'r(r��s
r�c@�DeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestReflectcCr�)Nrirkr)�rlr�r�r�r�rmr�r�r�r�r�r�r�r3r�rr=r�r�r4rOr*rr,r<rr<r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�rmr�r�r�r�rlr�r�r�r�rbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�r0r/r.r-r,r+r*r)r(r'r&r%r$r#r"r!r rrrr1r�r'r'r(r��r3zTestReflect.test_check_simplecCrj)Nrirkr�odd�r
)�i���������������������������������������������������r����r;r:r>rTrr<r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�rmr�r�r�r�rlr�r�r�r�rbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�rir<�f�g�h�i�j�k�l�m�n�o�p�q�r�s�t�u�v�wr1r�r'r'r(�test_check_odd_methodrmz!TestReflect.test_check_odd_methodcCs�gd�gd�g}t�|dd�}t�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�g�}t||�dS)NrO�r4r�r�rPr)r�r4r�r�r�r4r�r�r�r4r�r�r�r4r��rOr*rOr4rOr*rOr4rOr*rOr4rOr*rOrQr�r'r'r(�test_check_large_pad+s(��z TestReflect.test_check_large_padcC�~gd�g}t�|dd�}t�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�g
�}t||�dS)NrOrPrr�rQr�r'r'r(�test_check_shapeBs&
��zTestReflect.test_check_shapecC�.t�gd�dd�}t�gd��}t||�dS)N�r<r,rr,r)rr,r<r,rr,r<rQr�r'r'r(�
test_check_01X�zTestReflect.test_check_01cCr�)Nr�rr)	r,rr,r<r,rr,r<r,rQr�r'r'r(�
test_check_02]r�zTestReflect.test_check_02cCr�)Nr�r*r)r<r,rr,r<r,rr,r<r,rrQr�r'r'r(�
test_check_03br�zTestReflect.test_check_03N)
rIrJrKr�r�r�r�r�r�r�r'r'r'r(r��sr�c@sPeZdZdZej�dee�	�ddh��dd��Z
ej�de�	��dd��Zd	S)
�TestEmptyArrayz<Check how padding behaves on arrays with an empty dimension.rMrrcCs�d}tjt|d��tjgd|d�Wd�n1swYtjt|d��tjt�d�d|d�Wd�n1s>wYtjt|d��tjt�d�d|d�Wd�dS1sawYdS)NzFcan't extend empty axis 0 using modes other than 'constant' or 'empty'r?r*rWr)rr)r{r�)rBrCrDrrZ�ndarrayr�rfr'r'r(r�ks��"�z'TestEmptyArray.test_pad_empty_dimensioncCs(tjt�d�d|d�}|jdksJ�dS)N)r,rr,)r`r�r{rW)r�rr*)rrZrGrY)r"rMr%r'r'r(�test_pad_non_empty_dimensionzsz+TestEmptyArray.test_pad_non_empty_dimensionN)rIrJrK�__doc__rBrdre�sortedrfrgr�r�r'r'r'r(r�hs�

r�c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�
TestSymmetriccCr�)Nrirkr)�r�r�r�r�rmr�r�r�r�r�r�r�r3r�rr=r�r�r4rOr*rr,r<rrr<r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�rmr�r�r�r�rlr�r�r�r�rbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�r�r0r/r.r-r,r+r*r)r(r'r&r%r$r#r"r!r rrr1r�r'r'r(r��r3zTestSymmetric.test_check_simplecCrj)Nrirkrr�r�)�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r;r:r>rTrrr<r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�rmr�r�r�r�rlr�r�r�r�rbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�r�rir<r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r1r�r'r'r(r��rmz#TestSymmetric.test_check_odd_methodcCs�gd�gd�g}t�|dd�}t�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�g�}t||�dS)NrOr�rPr�rOr4r4rOr*r*rOr4r4rOr*r*rOr4r4)r�r�r�r�r4r4r�r�r�r�r4r4r�r�r�rQr�r'r'r(r��s(��z"TestSymmetric.test_check_large_padcCs�gd�gd�g}tj|dddd�}t�gd�gd�gd�gd�gd	�gd	�gd
�gd
�gd�gd�gd�gd�gd
�gd
�g�}t||�dS)NrOr�rPrr�r�)r:r>r>rTrrr<r,r,rr*r*rOr4r4)rTrrr<r,r,rr*r*rOr4r4r�r�r�)r<r,r,rr*r*rOr4r4r�r�r�r=rr)rr*r*rOr4r4r�r�r�r=rrr�r3r3)rOr4r4r�r�r�r=rrr�r3r3r�r�r�)r�r�r�r=rrr�r3r3r�r�r�r�r�r�)r=rrr�r3r3r�r�r�r�r�r�r�r�r�rQr�r'r'r(�test_check_large_pad_odd�s(��z&TestSymmetric.test_check_large_pad_oddcCr�)NrOrPrr�rQr�r'r'r(r��s&
��zTestSymmetric.test_check_shapecCr�)Nr�r,r)r,r<r<r,rrr,rQr�r'r'r(r��r�zTestSymmetric.test_check_01cCr�)Nr�rr)	rr,r<r<r,rrr,r<rQr�r'r'r(r��r�zTestSymmetric.test_check_02cCr�)Nr�r4r)r<r,rrr,r<r<r,rrr,r<r<r,rrQr�r'r'r(r�r�zTestSymmetric.test_check_03N)rIrJrKr�r�r�r�r�r�r�r�r'r'r'r(r��sr�c@r�)�TestWrapcCr�)Nrirkr)�rrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�rr<r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�rmr�r�r�r�rlr�r�r�r�rbr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrrrr	r
rrr
rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r�rr<r,rr*rOr4r�r�r=rr�r3r�r�r�r�r�r�r�r1r�r'r'r(r�r3zTestWrap.test_check_simplecCs�t�d�}t�|d�}t�|dd�}t�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�gd�g�}t||�dS)Nr3r~)rr3r)rr�r�r=rr�r�r=rr�r�r=rr�r�r=rr�r�r=rr�r�r=rr�)r,rrr<r,rrr<r,rrr<r,rrr<r,rrr<r,rrr<r,r)r4r�r*rOr4r�r*rOr4r�r*rOr4r�r*rOr4r�r*rOr4r�r*rOr4r�rar�r'r'r(r�s@
��6zTestWrap.test_check_large_padcCr�)Nr�rr)	r<r,rr<r,rr<r,rrQr�r'r'r(r�[r�zTestWrap.test_check_01cCr�)Nr�r*r)rr<r,rr<r,rr<r,rr<rQr�r'r'r(r�`r�zTestWrap.test_check_02cCs8t�d�}tj|ddd�}t||dd�dd�f�dS)NrM)rrOrrWr�)rrGrZrr�r'r'r(�test_pad_with_zeroes
zTestWrap.test_pad_with_zerocCsxt�d�}tj|ddd�}ttj||||fdd�|�t�d�}tj|ddd�}ttj||||fdd�|�dS)	zy
        Check wrapping on each side individually if the wrapped area is longer
        than the original array.
        rO)r3rrrWrN)rr3r:)rr5rZr�r_r�r'r'r(�test_repeated_wrappingjs
 
$zTestWrap.test_repeated_wrappingc	Csbt�d��dd�}tj|ddgdd�}t�gd�gd�gd�gd�gd�gd�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}�rr<rrW)rr,rr,rr,)r<rr<rr<rNrar�r'r'r(�&test_repeated_wrapping_multiple_originws��z/TestWrap.test_repeated_wrapping_multiple_originN)
rIrJrKr�r�r�r�r�r�r�r'r'r'r(r�s<
r�c@�eZdZdd�Zdd�ZdS)�TestEdgecCsrt�d�}t�|d�}t�|dd�}t�gd�gd�gd�gd�gd�gd�gd�gd�gd�g	�}t||�dS�	Nr3�r*rr^r)rrrrr<r,r,r,)rrrrr*rOrOrO)r4r4r4r4r�r�r�r�)r=r=r=r=rr�r�r�rar�r'r'r(r��s 
��
zTestEdge.test_check_simplecCs�t�gd��}t�|dd�}t�gd��}t||�t�gd�gd�g�}t�|dd�}t�|dd�}t||�t�d��dd	d
�}t�|dd�}t�|dd�}t||�dS)Nr�)rcr)r<r<r,rrrrOrtr�r,rr*)rcrcrc)rrrZrr5r6)r"r+�paddedr#r'r'r(�test_check_width_shape_1_2�s

z#TestEdge.test_check_width_shape_1_2N)rIrJrKr�r�r'r'r'r(r��sr�c@r�)�	TestEmptycCsRt�d��dd�}tj|ddgdd�}|jdksJ�t||d	d
�dd�f�dS)
Nr�r*r4rFr�rrW)r=rr,r:rrT�rr5r6rZrYrr�r'r'r(�test_simple�szTestEmpty.test_simplecCr�)Nr�r�rrWr�r�r�r'r'r(r��r�z"TestEmpty.test_pad_empty_dimensionN)rIrJrKr�r�r'r'r'r(r��sr�c	Csddd�}t�d��dd�}t�|d|�}t�gd�gd�gd�gd�gd�gd�g�}t||�dS)	NcSs&d|d|d�<d||dd�<dS)Nrrr<r')�vectorr��iaxis�kwargsr'r'r(�_padwithtens�sz6test_legacy_vector_functionality.<locals>._padwithtensr4r,r)rrrrrrr)rrrr<r,rr)rrrr*rOrrra)r�r+r�r'r'r(� test_legacy_vector_functionality�s��
r�cCs.tjdgddd�}t�gd��}t||�dS)Nr<r,rrW)rrr<rrrQ)r+r�r'r'r(�test_unicode_mode�r�r�rM)rrrrcCs:tjddd�}d}tjddd�}ttj|||d�|�dS)Nr�)�
fill_valuer^)r=r�rW)rr�rrZ)rMr+r]r�r'r'r(�test_object_input�sr�c@s�eZdZej�dgd��ej�de���dd���Zej�de���dd��Z	ej�dgd��ej�de���d	d
���Z
ej�ddd
de�dfddefedd�dfdg�ej�de���dd���Z
dd�Zej�dgd��ej�de���dd���ZdS)�TestPadWidthr�))r*rOr4r�)r{rXr`)rcr~)rOr4))rr*rO)rr<r,rMcC�Vt�d��d�}d}tjt|d��t�|||�Wd�dS1s$wYdS)NrbrYz(operands could not be broadcast togetherr?r[�r"r�rMr\r@r'r'r(�test_misshaped_pad_width�s
"�z%TestPadWidth.test_misshaped_pad_widthcCsVt�d��d�}d}tjt|d��t�|d|�Wd�dS1s$wYdS)NrbrYzDinput operand has more dimensions than allowed by the axis remappingr?))r`)r*)rO)r�r{rXr[)r"rMr\r@r'r'r(�test_misshaped_pad_width_2�s
"�z'TestPadWidth.test_misshaped_pad_width_2rWcCr)NrbrYrZr?r[rr'r'r(�test_negative_pad_width�s
"�z$TestPadWidth.test_negative_pad_widthzpad_width, dtype)�3N)�wordNr.N)g333333@N))r,rr*r_r<rT)))g�������rr_NcCs�t�d��d�}d}|dur4tjt|d��t�|tj||d�|�Wd�dS1s-wYdStjt|d��t�|||�Wd�n1sMwYtjt|d��t�|t�|�|�Wd�dS1sowYdS)NrbrYz%`pad_width` must be of integral type.r?r8)rr5r6rBrC�	TypeErrorrZr)r"r�r9rMr\r@r'r'r(�
test_bad_type�s"��"�zTestPadWidth.test_bad_typecCsxt�d�}t�|d�}t�|t�d�d�}t�gd�gd�gd�gd�gd�gd�gd�gd�gd�g	�}t||�dSr�rar�r'r'r(�test_pad_width_as_ndarrays 
��
z&TestPadWidth.test_pad_width_as_ndarray)rrQ)rQrQcCs,t�d��dd�}t|tj|||d��dS)Nrbr4rOrW)rr5r6rrZ)r"r�rMr\r'r'r(�test_zero_pad_width*sz TestPadWidth.test_zero_pad_width)rIrJrKrBrdrerfrgrrrr r	r	r
rr'r'r'r(r�s6
��

rc	Cs�t|}i}t��D]}||kr|�|�q
tjgd�d|fi|��|��D]/\}}d�|�}tjt	|d��tjgd�d|fi||i��Wd�n1sQwYq'dS)z1Test behavior of pad's kwargs for the given mode.r�r<z+unsupported keyword arguments for mode '{}'r?N)
rf�values�updaterrZ�items�formatrBrCrD)rM�allowed�not_allowedr��key�valuer@r'r'r(�test_kwargs1s
�
 ���rcCs(t�ddg�}tt�|d�gd��dS)Nr<r,)rrr<r<rr)rrrrZ)r\r'r'r(�test_constant_zero_defaultBsrr<�constTFcCsRd�|�}tjt|d��tjgd�d|d�Wd�dS1s"wYdS)Nzmode '{}' is not supportedr?r�r*rW)rrBrCrDrrZ)rMr@r'r'r(�test_unsupported_modeGs
"�rcCs`t�d��dd�ddd�ddd�f}t�|d|�}|jdks!J�t|dd�dd�f|�dS)Nr�r*r4r,rF)r�r�r:r�)rMr\r%r'r'r(�test_non_contiguous_arrayNs&rcCsPtjddd�}t�|d|�jdsJ�tjddd�}t�|d|�jds&J�dS)	z5Test if C and F order is preserved for all pad modes.)rOr�C)�orderrO�C_CONTIGUOUS�F�F_CONTIGUOUSN)rrGrZ�flags)rMr$r'r'r(�test_memory_layout_persistenceVsrr9cCs0tjd|d�}tj|d|d�}|j|ksJ�dS)N)rr,r<r8r<rW)rr�rZr9)r9rMr\r%r'r'r(�test_dtype_persistence_sr )&r�rB�numpyr�
numpy.testingrrr�numpy.lib.arraypadr�sctypesr�rfrrLrhrir�r�r�r�r�r�r�r�r�rdrer�rrgrrr rrrr r'r'r'r(�<module>st�����Sk4Un'

Q