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/ma/tests/__pycache__/test_extras.cpython-310.pyc
o

���gj$�@s�dZddlZddlZddlZddlZddlmZddlm	Z	m
Z
ddlmZm
Z
mZmZddlmZmZmZmZmZmZmZmZmZmZmZddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>Gdd	�d	�Z?Gd
d�d�Z@Gdd
�d
�ZAGdd�d�ZBGdd�d�ZCGdd�d�ZDGdd�d�ZEGdd�d�ZFGdd�d�ZGGdd�d�ZHGdd�d�ZIGdd�d�ZJGd d!�d!�ZKGd"d#�d#�ZLGd$d%�d%�ZMdS)&z�Tests suite for MaskedArray.
Adapted from the original test_ma by Pierre Gerard-Marchant

:author: Pierre Gerard-Marchant
:contact: pierregm_at_uga_dot_edu
:version: $Id: test_extras.py 3473 2007-10-29 15:18:13Z jarrod.millman $

�N)�normalize_axis_tuple)�assert_warns�suppress_warnings)�assert_�assert_array_equal�assert_equal�assert_almost_equal)�array�arange�masked�MaskedArray�masked_array�getmaskarray�shape�nomask�ones�zeros�count)"�
atleast_1d�
atleast_2d�
atleast_3d�mr_�dot�polyfit�cov�corrcoef�median�average�unique�setxor1d�	setdiff1d�union1d�intersect1d�in1d�ediff1d�apply_over_axes�apply_along_axis�compress_nd�compress_rowcols�mask_rowcols�clump_masked�clump_unmasked�flatnotmasked_contiguous�notmasked_contiguous�notmasked_edges�
masked_all�masked_all_like�isin�diagflat�ndenumerate�stack�vstackc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�TestGenericcCsJtdtd�}tddgddgtd�}t||�t�ddgddgd��}td|d�}td	d	gd
d
g|d�}t||�td|d�}td	d	gd	d	ggd
d
gd
d
gg|d�}t||�t�ddd
dgfg�}td|d�}tddgddg|d�}t||�td|d�}tddgddg|d�}t||�td
|d�}tdggdgg|d�}t||�dS)N����dtype���maskr:�a�b�f��names�formats�rr�r;r;�r8r8�r>r@��bar@��bbr@�r;rE)r/�floatr	r�npr:)�self�test�control�dt�rS�E/usr/local/lib/python3.10/dist-packages/numpy/ma/tests/test_extras.py�test_masked_all&s6

�
�
�
zTestGeneric.test_masked_allcCs�t�ddtfgdffg�}tj�d|�}tt|d�tjjj�tt|dd�tjjj�tt	|dd�d�t|ddj
d�t|ddjj
d�dS)Nr?�c�r;r;rErS�rNr:�object�mar/r�type�corer�lenr�_fill_value�rO�my_dtype�
masked_arrrSrSrT�"test_masked_all_with_object_nestedDsz.TestGeneric.test_masked_all_with_object_nestedcCsrt�dtdffg�}tj�d|�}tt|d�tjjj�tt	|d�d�t|dj
d�t|djj
d�dS)Nr?rWr;rErSrXr_rSrSrT�test_masked_all_with_objectPsz'TestGeneric.test_masked_all_with_objectcCs�tddgtd�}t|�}tddgddgtd�}t||�t�ddgddgd��}td	d	gd
d
g|d�}t|�}tddgd
d
g|d�}t||�t�ddd
dgfg�}tddgddg|d�}t|�}t||�dS)Nr;r8r9r<r>r?r@rArDrE)�
rdrGrHrJrL)r	rMr0rrNr:)rO�baserPrQrRrSrSrT�test_masked_all_likeZs

�z TestGeneric.test_masked_all_likec	Cs�tdd�D]W}td|�D]N}tj|td�}tj||td�}td|�}|d|@dk|_d}||�D]}||j|��7}q3|t	krMt
|����|�q
|j|_t
|����|�q
qdS)Nr;�r8r9r)�rangerNr
�int�fullr
r=�data�sumr+r�
compressed)	rOr@�i�j�k�jar>�s�slrSrSrT�check_clumpns
��zTestGeneric.check_clumpcCsVtt�d��}t|gd�<t|�}tdd�tdd�tdd�g}t||�|�t�dS)Nrd�rr;r8���	r�rvrgrw)r
rNr
rr*�slicerrt�rOr>rPrQrSrSrT�test_clump_masked~s
zTestGeneric.test_clump_maskedcCsNtt�d��}t|gd�<t|�}tdd�tdd�g}t||�|�t�dS)Nrdruryrvrgrw)r
rNr
rr+rzrrtr{rSrSrT�test_clump_unmasked�s
zTestGeneric.test_clump_unmaskedcCs�td�}t|�}t|td|j�g�tjdtd�|_t|td|j�g�t	||dk|dkB|dkB<t|�}t|tdd�tdd�g�t	|dd�<t|�}t|g�dS)	Nrdrr9ryrw�rvrx)
r
r,rrz�sizerNr�boolr=r)rOr>rPrSrSrT�test_flatnotmasked_contiguous�sz)TestGeneric.test_flatnotmasked_contiguousN)�__name__�
__module__�__qualname__rUrbrcrfrtr|r}r�rSrSrSrTr6$s

r6c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	j
�d
gd�ddggd�dgdgfgd�gd�gdgd�gddggd�ggd�gfg�dd��Zdd�Z
dS) �TestAveragecCs$tgd�gd�d�}tdt|dd��tdt|gd�d��t|gd�d	d
�\}}td|�t|dk�t|dd�<tt|dd�jd	g�tgd�gd�d�}|�dd�}t|dd�d
f<tt|dd�ddg�tt|d
d�jdd	g�tddgt|dd��t|dd	d�\}}t|ddg�dS)N)���?�@�@)TFFF�r=r�r��axis)r�r�r�r���weightsT�r��returned�@r8r;r��r�r�r�)r	rrrrr=�reshape)rO�ott�result�wtsrSrSrT�test_testAverage1�s 
zTestAverage.test_testAverage1cCsBgd�}gd�gd�g}tdtjd�}tt|dd�d�tt|d|d�d�ttdtjd�d	td�g�}tt|d�tj�t�d��d
d�tt|dd�t�d�d
d	�tt|dd�t|dd�t|dd�d	g�tt|d|d
�d�tt|d|d�gd��tt|dd�t|dd�t|dd�d	g�td�}gd�}gd�gd�g}t	d�}gd�}	ttt
||�dd�d�ttt
||�dd�d�ttt
||�dd�jdg�ttt
||	�dd�d�tttt
||�dd��d�t
||�}
tt|
d�d�tt|
dd�gd��tt|
dd�ddg�tt|
d|d�gd��dS)N�rr;r;r;r;r�r;rrrrr;rvr9rr��@)r�r�r�r��(@r;r�g������
@)r�r�r�r�r��$@)rrr;r;rr)rr;r;r;r;r;Tr�)r�r���X@r�r�g@�@)r�r�r�r�r�r�)
r
rN�float_rrr	�add�reducerrr
r=r)rO�w1�w2�x�y�m1�m2�m3�m4�m5�zrSrSrT�test_testAverage2�sF& ���
�zTestAverage.test_testAverage2cCsftd�}td�d}t||g||ggddd�\}}tt|�t|��t|j|j�ttd�dddgdd�\}}tt|�t|��ttd�dd	�\}}tt|�t|��ttd�td�dd
�\}}tt|�t|��tddgddggt�}t|d
d
gdd
gg�}t|dd�}	t|	ddg�t|dd�}
t|
ddg�t|dd�}
t|
d�t|dd�}
t|
ddg�dS)Nrvryr;Tr�)r8r8ryr�r�r�r�)r�r�r8�Fr���?r�r�g������@��?r�)r
rrrrr	rMr
)rOr>r?�r1r��r2r��a2d�a2dm�a2da�a2dmarSrSrT�test_testAverage3�s*
zTestAverage.test_testAverage3cCs�t�gd���dd�}tjj|dgdgdggd�}t�gd���dd�}t||ddd�}td	gd
gdggdgdgdgg�}t||�dS)N�r8ryr�ryr;FTr�)r�r~rv)r�r��keepdimsr�r�r�)rNr	r�rZrr
r)rOr�r?�w�actual�desiredrSrSrT�test_testAverage4�s"zTestAverage.test_testAverage4cCs@ttddg��}t|d�ttgd�gd�d��}t|d�dS)Nr;r8r�)r;r8ryr��FFTTr�)rr	r�rOr>rSrSrT�test_onintegers_with_mask�s
z%TestAverage.test_onintegers_with_maskc
Cs�tjgd�gd�gtd�}tgd�gd�g|d�}t|�}t�|���}t|j|j�t|j|j�t|dd�}t|jdd�t|jdd�d	}t|j|j�t|j|j�t|d
d�}t|jd
d�t|jd
d�d	}t|j|j�t|j|j�t�gd�gd�g�}	t||	d
�}
tj|��|	|d
�}t|
j|j�t|
j|j�t||	dd�}t|j|	dd�t|j|	dd�d	}t|j|j�t|j|j�t||	d
d�}t|j|	d
d�t|j|	d
d�d	}t|j|j�t|j|j�dS)N)rrrr;r�rr;rrrr9)ry�?@y@@y@@y@ @)y"@��?y@@y@@y@@r�rr�r�r;)r�r�r�r�r�)r�r�r�r�r�r��r�r�)	rNr	r�r
rrmr�real�imag)
rOr=r>�av�expected�av0�	expected0�av1�	expected1r��wav�wav0�wav1rSrSrT�test_complexsR
����  
���zTestAverage.test_complexz<x, axis, expected_avg, weights, expected_wavg, expected_wsum�r;r8ryNr�)ryr�r;g�?� @)r;r8r~)r;rv�r)r�r�r�r;ry)r�r�g#@)r�r�r�c
Cs�tjj||dd�}|jt�|�ksJ�t||�tjj|||dd�}|jt�|�ks,J�t||�tjj|||ddd�\}}	|jt�|�ksHJ�t||�|	jt�|�ksWJ�t|	|�dS)NT)r�r�)r�r�r�)r�r�r�r�)rNrZrrr)
rOr�r��expected_avgr��
expected_wavg�
expected_wsum�avg�wavg�wsumrSrSrT�test_basic_keepdims1s


�
zTestAverage.test_basic_keepdimsc	Csftjjt�d��dd�gd�gd�gd�gd�}tgd�dd�}tgd�gd�d�}t|d|dd	�}t�gd
��}t||�t|d|dd	�}t�gd��}t||�tjjgd�gd
�d�}t|dddtjgd�}t|d�tjjgd�gd�gd�ggd�gd�gd�gd�}tjj|dtjdgdd�}tjjdtjtjdggd�d�}t||�t	|j
|j
�dS)Nrxry�r;rr�rrrr�)r~��Frr�)�@g�@g�@)r�g0��N@g0��N@)r�r�r�r�r�r;r�r�)r�r��@r�)g"@r�r�r�)FTTF)TFTT)TFTFr�r��@)rNrZr	r
r�r
rr�nanrr=)	rOr>�weights_unmasked�weights_masked�avg_unmasked�expected_unmasked�
avg_masked�expected_masked�avg_expectedrSrSrT�test_masked_weightsHsD��

�
���
�
zTestAverage.test_masked_weights)r�r�r�r�r�r�r�r�r��pytest�mark�parametrizer�r�rSrSrSrTr��s""	,���
r�c@�$eZdZdd�Zdd�Zdd�ZdS)�TestConcatenatorcCszttdtgd���td�}gd�}t||d�}t|dd|f}tt|t��t|gd��t|jt|dd|f�dS)N�r;r8ryr�r~rvr~)r;rrrrr�r)r;r;r;r;r;rrr;r;r;r;r;)	rrr	rr
r�
isinstancerr=)rOr?�m�drVrSrSrT�test_1dwszTestConcatenator.test_1dcCs0tj�dd�}tj�dd�}t�tj�dd�d�}t�tj�dd�d�}t||d�}t||d�}td||f}t|jdk�t|dd�dd�f|�t|dd�dd�f|�t|j	tj
d||f�t||f}t|jdk�t|dd�dd�f|�t|dd�dd�f|�t|j	tj
||f�dS)Nr~rr��1)r~rd)rdr~)rN�random�rand�roundr
rrrrr=�r_)rO�a_1�a_2�m_1�m_2�b_1�b_2r�rSrSrT�test_2d�s zTestConcatenator.test_2dcCspttjjdf}t|jddg�t|jdd�tddgtjjf}t|jgd��t|jdd�ddg�dS)Nr;TFr8)FFT)rrNrZrrr=rk)rOr�rSrSrT�test_masked_constant�sz%TestConcatenator.test_masked_constantN)r�r�r�r�r�rrSrSrSrTr�tsr�c@�eZdZdd�Zdd�ZdS)�
TestNotMaskedcCs�tt�d��dd�gd�gd�gd�gd�gd�gd�}t|d�}t|d	d
g�t|d	�}t|d	ddg�t|dd
dg�t|d�}t|d	ddg�t|dddg�t|jd�}t|d	d
g�t|jd	�}t|d	ddg�t|dddg�t|jd�}t|d	ddg�t|dddg�t|d<t|d	�}t|d	ddg�t|dddg�t|d�}t|d	ddg�t|dddg�dS)N�r~)rrr;rr)rrrr;r;)r;r;rrr)rrrrr)r;r;r;rrr�r��rr;r8ryr�r;)ryryryr�r�)rrr8rry)r�r8r�r�r�)r�r�r�r�r�������)r;r;r8r�r�)rr;r8r�)rrr8ry)r�r8r�r�)r
rNr
r�r.rrkr�rOrkrPrSrSrT�
test_edges�s>��




zTestNotMasked.test_edgesc
Cs,tt�d��dd�gd�gd�gd�gd�}t|d�}t|tdd	d�td
dd�tddd�g�t|d�}t|tdd
d�tddd�gtdd
d�tddd�gtdd
d�tddd�gtdd
d�tddd�gtddd�gtddd�ggtddd�gg�t|d
�}t|tdd	d�ggtddd�tddd�gg�dS)Nrryrw)rrrrr;r;r;r;)r;r;r;r;r;r;r;r;)rrrrrrr;rr�rr����r;r8rvrg)r
rNr
r�r-rrz)rOr>�tmprSrSrT�test_contiguous�s:��



�
�

�zTestNotMasked.test_contiguousN)r�r�r�r	rrSrSrSrTr�s"rc@s|eZdZdd�Zdd�Zdd�Zej�dgd��ej�d	d
ge	j
jdfe	j
jdfg�d
d���Z
dd�Zdd�Zdd�ZdS)�TestCompressFunctionsc	Cs(t�ttd����ddd�}t�d��t�}d|d<t||d�}t|�}t	|gd	�gd
�gd�ggd�gd
�gd�gg�t|d�}t	|gd�gd�gd�gd�ggd�gd�gd�gd�gg�t|d�}t	|gd�gd�gd�ggd�gd�gd�ggd�gd�gd�gg�t|d�}t|d�}t|d�}t	||�t	||�t	||�t|d�}t	|gd	�gd �gd
�gd�ggd!�gd"�gd#�gd$�ggd�gd%�gd
�gd�gg�t|d&�}t|d'�}t|d(�}t	||�t	||�t	||�t|d)�}t	|gd�gd�gd�ggd�gd�gd�gg�t|d*�}t	||�t|d+�}t	|gd	�gd
�gd�ggd!�gd#�gd$�ggd�gd
�gd�gg�t|d,�}t|d-�}t|d.�}t	||�t	||�t	||�t|d/�}t	|gd	�gd �gd
�gd�ggd�gd%�gd
�gd�gg�t|d0�}t	||�dS)1N�<ryr�r~�ryr�r~T�r;r;r;r�)rr8ryr�)rd��
�)����)�(�*�+�,)�2�4�5�6)�7�9�:�;rr)r~rvrgrwrx)rdr�rrr)rr
rrr)r�)rrr)�-�.�/�0�1)r�3rr r!)r"�8r#r$r%r;)��rrr)�r�� �!�")�#�$�%�&�'rWr)rr8)r~rgrwrx)r.rrr)r�r��)r0r1r2r3)r4r6r7r8)r'r)r*r+r7r)r�rr;)rr�r;r8)rr8)r;r)rr�rr8)rr)
rNr	�listrhr�r�astyper�r'r)rOr�r�r>�a2�a3�a4rSrSrT�test_compress_nd�s�
���

���


����








����







���



����








���
	z&TestCompressFunctions.test_compress_ndcCs�tt�d��dd�gd�gd�gd�gd�}tt|�ddgdd	gg�tt|d
�gd�gd�g�tt|d
�d
dgddgdd	gg�t|jgd�gd�gd�gd�}tt|�d
dgdd	gg�tt|d
�gd�gd�g�tt|d
�d
dgddgdd	gg�t|jgd�gd�gd�gd�}tt|�d	gg�tt|d
�gd�g�tt|d
�dgdgd	gg�t|jgd�gd�gd�gd�}tt|�jd
�tt|d
�jd
�tt|d
�jd
�dS)Nrxryr�r�r�r�r~rgrwrr)rvrgrwr;r8�rr;rrv�rr;r8�rrr;)r	rNr
r�rr(�_datar�rOr�rSrSrT�test_compress_rowcolsXs$�" "  z+TestCompressFunctions.test_compress_rowcolscCsHtt�d��dd�gd�gd�gd�gd�}tt|�jgd�gd�gd�g�tt|d�jgd�gd�gd�g�tt|d�jgd�gd�gd�g�t|jgd�gd	�gd�gd�}tt|�jgd	�gd�gd	�g�tt|d�jgd�gd�gd�g�tt|d�jgd	�gd	�gd	�g�t|jgd�gd	�gd�gd�}tt|�jgd�gd�gd
�g�tt|d�jgd�gd�gd�g�tt|d�jgd
�gd
�gd
�g�t|jgd�gd	�gd�gd�}tt|��	�t
u�tt|d��	�t
u�tt|d��	�t
u�tt|�j�	��tt|d�j�	��tt|d�j�	��dS)Nrxryr�r�r�rrr;rD)r;r;rrF)r	rNr
r�rr)r=rGr�allrrHrSrSrT�test_mask_rowcolslsN�
��� 
��� 
��� z'TestCompressFunctions.test_mask_rowcolsr�)Nrr;�func�rowcols_axisrr;cCsvtt�d��dd�gd�gd�gd�gd�}tt��|||d�}t|t||��Wd�dS1s4wYdS)Nrxryr�r�r�r�)r	rNr
r�r�DeprecationWarningrr))rOr�rLrMr��resrSrSrT�#test_mask_row_cols_axis_deprecation�s�
"�z9TestCompressFunctions.test_mask_row_cols_axis_deprecationcCs0t�dd�}gd�}t||d��dd�}t||d��dd�}t||dd�}t|jddgdd	gg�t||dd�}t|jgd
�gd�gd�g�t||dd�}t|t�|�d	�|�d	���t||dd�}t|t�|�d	�|�d	���gd
�}t||d��dd�}t||d��dd�}t||dd�}t|jd	dgddgg�t||dd�}t|jgd�gd�gd
�g�t||dd�}t|t�|�d	�|�d	���t|t||��t||dd�}t|t�|�d	�|�d	���gd�}t||d��dd�}t||d��dd�}t||�}t|jt�t||�}t|jt�t|gd�d��dd�}t|gd�d��dd�}t||dd�}t|jddgd	d	gg�t||dd�}t|t�|�d	�|�d	���t||dd�}t|jgd�gd�gd�g�t||dd�}t|t�|�d	�|�d	���t|gd
�d��dd�}t|gd�d��dd�}t||dd�}t|jd	d	gddgg�t||�}t|t�|�d	�|�d	���t||dd�}t|jgd�gd�gd�g�t||dd�}t|t�|�d	�|�d	���t|gd
�d��dd�}t|gd�d��dd�}t||dd�}t|jdd	gddgg�t||dd�}t|t�|�d	�|�d	���t||dd�}t|jgd�gd
�gd�g�t||dd�}t|t�|�d	�|�d	���tt�d��ddd�dd	gd	d	ggd	d	gd	d	gggd�}tt�d��ddd�d	d	gd	d	ggd	d	gd	dgggd�}t||dd�}t|jddgddggd	d	gd	dgggd	d	gd	dggd	d	gd	dgggg�t||dd�}t|jd	d	gd	dggd	d	gd	d	gggd	d	gd	d	ggd	d	gd	d	gggg�t||dd�}t|jdd	gd	d	ggdd	gd	d	gggdd	gd	d	ggddgddgggg�t||dd�}t|jd	d	gd	d	ggd	d	gd	d	gggd	d	gd	d	ggdd	gd	d	gggg�tt�d��ddd�dd	gd	d	ggd	d	gd	d	gggd�}d}t||dd�}t|jdd	gd	d	ggd	d	gd	d	ggg�t||dd�}t|jdd	gd	d	ggd	d	gd	d	ggg�t||dd�}t|jdd	gd	d	ggd	d	gd	d	ggg�t||dd�}t|jdd	gd	d	ggd	d	gd	d	ggg�tt�d��ddd�dd	gd	d	ggd	d	gd	d	gggd�}tt�d�d	dgd�}t||dd�}t|jddgddgg�t||dd�}t|jdd	gd	d	gg�dS)Nr;rg)r;rrrrrr�r8ryT)�strictrrr�F�rrrrrr;rF)rrrrrr)rrr;rrrrwr�)	rNr
r
r�rrr=�filledr)rO�nr�r>r?rVrSrSrT�test_dot�s�


�����������((((�zTestCompressFunctions.test_dotcCsnt�d�}t|�}ttt||��tu�ttt||��tu�ttt||��tu�ttt||��tu�dS)Nry)rN�eyer	rr[rr�rOr>r?rSrSrT�test_dot_returns_maskedarrays
z2TestCompressFunctions.test_dot_returns_maskedarraycCsDtt�d��}tt�d��}t|||d�}t||u�t||�dS)Nry)ryry��out)r	rNrVrrrr)rOr>rZrOrSrSrT�test_dot_outs
z"TestCompressFunctions.test_dot_outN)r�r�r�rCrIrKr�r�r�rNrZ�	mask_rows�	mask_colsrPrUrXr[rSrSrSrTr�sp �	o	rc@r)�TestApplyAlongAxiscCs@td��ddd�}dd�}t|d|�}t|ddgdd	gg�dS)
Nr�r8rycSs|dS�Nr;rS)r?rSrSrT�myfuncsz*TestApplyAlongAxis.test_3d.<locals>.myfuncr;r�rgrd�r
r�r&r�rOr>r`�xarSrSrT�test_3dszTestApplyAlongAxis.test_3dcCsFtd��ddd�}ddd�}t|d|dd�}t|dd	gd
dgg�dS)
Nrr8ryrcSs|d|Sr_rS)r?�offsetrSrSrTr`'sz1TestApplyAlongAxis.test_3d_kwargs.<locals>.myfuncr;)rer~rwr�)rrarbrSrSrT�test_3d_kwargs$s
z!TestApplyAlongAxis.test_3d_kwargsN)r�r�r�rdrfrSrSrSrTr^�
r^c@seZdZdd�ZdS)�TestApplyOverAxescCs�td��ddd�}ttj|ddg�}t�dgdgdggg�}t||�t||d�t	�<ttj|ddg�}t�d	gd
gdggg�}t||�dS)Nrr8ryr�rr�\�|r�r)
r
r�r%rNrlr	rrr?r�)rOr>rP�ctrlrSrSrT�
test_basic0s
zTestApplyOverAxes.test_basicN)r�r�r�rlrSrSrSrTrh.srhc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zejjdgd�d�d d!��Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2S)3�
TestMediancCs4tjjtjtjgtjtjggdd�}t|tj�dS)Nrr�)rNrZr�infr�rO�rrSrSrT�test_pytype<s$zTestMedian.test_pytypecCs�tjjtj�tjtjgtjtjgg�dd�}t|tj�tjjtj�tjtjgtjtjgg�dd�}t|tj�tjjtjjtjtjgtjtjggdd�dd�}t|jd�tjjtjjtjtjgtjtjggdd�dd�}t|jd�dS)Nrr�Tr�)rNrZrr
rnrr=rorSrSrT�test_inf@s8
��
��
���
���zTestMedian.test_infcCslt�d�}ttj�|�d�tttj�|��tu�td�}ttj�|�d�tttj�|��tu�d}ttj�|�d�tttj�|��tu�t�d��	dd�}ttjj|dd	�tj|dd	��ttjj|d
d	�tj|d
d	��ttjj|d
d	�tu�t�d��	dd�}ttjj|dd	�tj|dd	��ttjj|d
d	�tj|d
d	��ttjj|d
d	�tu�dS)Nrxr�rwr�r~r��Hrr�r;gR@)
rNr
rrZrrr[rrhr�rHrSrSrT�test_non_maskedRs"
    zTestMedian.test_non_maskedcCstt�d�dgddgdd�}ttj�|�d�ttj�|�jdd�tttj�|��t	u�tt�d	��
d
d�dgddgdd�}ttj�|�d
�ttj�|�jdd�tttj�|��t	u�tjj|ddd�}t|ddg�t|jdd�tt|�t	u�dS)z5test the examples given in the docstring of ma.medianrwrr�r;r�r�rS�shape mismatchrdr8r~rvr�rT�r��overwrite_inputr�r�r7N)r	rNr
rrZrrrr[rr�)rOr��ma_xrSrSrT�test_docstring_examplesgs"*z"TestMedian.test_docstring_examplescCs�d}td�D]p}dD]k}td||d�}t�t||�ddg�}|D] \}}ztjj|||d�Wq!tyAt|||||f��wt�|d|gddg�}|D]#\}}ztjj|||d�Wn
tj	yjYqQwt|||||f��q
qdS)	Nz5mask = %s, ndim = %s, axis = %s, overwrite_input = %sr~)FTr;)�ndminr=FTrv)
rhr	�	itertools�productrNrZr�	Exception�AssertionError�	AxisError)rO�msgrzr=r��argsr��overrSrSrT�test_axis_argument_errorsvs,�����z$TestMedian.test_axis_argument_errorscCsDtddd�}ttj�|�d�tddd�}ttj�|�tjj�dS)Nr;Fr�T)r	rrNrZrrrHrSrSrT�test_masked_0d�szTestMedian.test_masked_0dcCs�tt�d�dd�}ttj�|�tjj�ttj�|�jdd�tt	tj�|��tjj
ju�tt�d�dd�}ttj�|�d�ttj�|�jdd�tt	tj�|��tu�tt�d�gd�d�}ttj�|�d	�ttj�|�jdd�tt	tj�|��tu�tt�d�gd
�d�}ttj�|�d�ttj�|�jdd�tt	tj�|��tu�tt�d�gd�d�}ttj�|�d
�ttj�|�jdd�tt	tj�|��tu�tt�d�gd�d�}ttj�|�d
�ttj�|�jdd�tt	tj�|��tu�tt�d�gd�d�}ttj�|�d	�ttj�|�jdd�tt	tj�|��tu�tt�d�gd�d�}ttj�|�d	�ttj�|�jdd�tt	tj�|��tu�dS)Nr~Tr�rSruFr�r�r�)rr;r;r;r;r�)rr;r;rrr�r�rvr�r�)
r	rNr
rrZrrrrr[r\�MaskedConstantrrHrSrSrT�test_masked_1d�s@zTestMedian.test_masked_1dcCsBttj�tgd�gd�d��jtj�tgd�gd�d��j�dS)Nr�r�r�rD)rrNrZrr	r�rOrSrSrT�test_1d_shape_consistency�s�z$TestMedian.test_1d_shape_consistencycCs�d\}}tt�dd|��}t|dd�<|dd�<ttj||ftd��}|dd�|dd�df<t�t|��}td|�D]}tj	�
|�|||dd�|f<q<tt|dd�df�d�tt|�d�tt|dd	�t�
|��tt|jdd	�t�
|��dS)
N)�er0��r�rd���r9rr;r�)r
rN�linspacer�emptyrMr
r]rhr��shufflerrr�T)rOrT�pr�r��idxrnrSrSrTr��szTestMedian.test_2dcCs�tt�d��dd��}t|dd�<|dd�<tt|�d�tttj	�|��t
u�tt|dd�gd��tttj	j|dd��t
u�tt|d	d�gd
��tttj	j|d	d��t
u�tt|d	d�jgd��dS)Nr0rdry����-@rr�)�+@r�g/@r;)
rrrrdrr
rrrr)
r;r;r;rrrrr;r;r;)r
rNr
r�rrrrr[rZrr=rHrSrSrT�
test_2d_waxis�szTestMedian.test_2d_waxiscCs�tj�d��ddd�}t||ddk<tt|d�ddgdd	gddgd
d	gg�d|_tt|d�dd
gddgddgg�tj�d��ddd�}t||ddk<tt|d�dd
gddgddgg�dS)Nrryr�r8rrrxrvrr)r�ryr8�crdr�rrr~rwr
r)rNrZr
r�rrrrrHrSrSrTrd�s("&zTestMedian.test_3dcCsLtt�d��dd��}t|dd�<|dd�<tt|dd�t|dd��dS)Nr0rdryr�rr�r;)r
rNr
r�rrrrHrSrSrT�
test_neg_axis�szTestMedian.test_neg_axiscCs�dD]?}tt�|��}t|dd�<|dd�<tt�d��}t||d�}|dkr.t|d�nt|d�t||u�tt|�t	u�qdS)	N)r0�>@r�g?@ryr�rSrYr0r�g.@)
r
rNr
rrrrrr[r)rO�vr�rZrprSrSrT�test_out_1d�s
�zTestMedian.test_out_1dcCsdD]}}tt�|��dd��}t|dd�<|dd�<tt�d��}t|d|d�}|dkrMtd	gdgd
�d	gddgddgd
dgdd�}ntd	gdgd�d	gddgddgd
dgdd�}t||�t||u�tt	|�t
u�qdS)N)rgD@r0r�rdrryr�r;)r�rZr0r�)rdrr
rTFr�r�)r�g�1@g�5@g�9@)r
rNr
r�rrrrrr[r)rOr�r�rZrp�erSrSrT�test_out�s ��
�zTestMedian.test_outr�)Nr;rWr;)r�r)�argnames�	argvaluescs�tjdtd�}tj�d�t�|j�dd�df}|�tj�}tj|t	|�<t
t�|j�|d��|dur:d�j}nt
|�j��t	��fdd�t�j�D��}t
t�|��}t�|d|d	�}||usdJ�t|j|�dS)
N)ryr~rgr�r9)r���r�rWc3s&�|]}|�vr
dn�j|VqdS)r;N)r)�.0rn��	axis_normr�rSrT�	<genexpr>s�
�z/TestMedian.test_keepdims_out.<locals>.<genexpr>T)r�r�rZ)rNrr�r�r	rr?�intpr��tupler
r�ndimrrhr�rr)rOr�r=r��	shape_outrZr�rSr�rT�test_keepdims_out
s$�zTestMedian.test_keepdims_outcCsFddgddgddgg}tj�|d�}ddg}ttjj|dd�|�dS)Nr�r�r�rr�)rNrZ�masked_equalrr)rOrkrar�rSrSrT�$test_single_non_masked_value_on_axis&s��z/TestMedian.test_single_non_masked_value_on_axiscCs�dtjdtd�fD]�}tj�dtjdggd�g�}||_tjj|dd�}tt�	|��t
|tj�tjj|��dd�}tt�	|��t
|tj�tjj|dd�}tt
|�t�t
|dtjdg�tjj|dd�}tt
|�t�t
|tjd	g�tjj|d
d�}tt
|�t�t
|tjd	g�q	tj�dtjdggd�g�}tjj|dd�d	f<t
tjj|dd�tj�t
tjj|dd�dtjdg�t
tjj|dd�tjdg�dS)NFrvr9r;ryr�r�rr8rr�)rNrr�rZr	r�r=rr�isscalarr�ravelrr[rr)rOr=�dmrprSrSrT�test_nan/s. zTestMedian.test_nancCs�tj�t�d��}tj�t�d��}tj|d<tjj|d<ttjj|d|d�|�tj�t�d��}ttjj|d|d�|�tj�t�d	��}ttjj||d�|�dS)
N)r��ryr��r8r;rFrrY�ryr;rS)	rNrZr
rrr�rrr)rO�or�rSrSrT�test_out_nanLs
zTestMedian.test_out_nancCs�tj�tjdtd��}tjj|ddd�<tj|d<ttj�|�tj�ttjj|dd�tj�tj�tjdtd��	ddd��}t�|j
�ddk|_|��}tj|d	<tj|d
<ttj�|�tj�t
t�tj�|���tjj|dd�}tj|d<tj|d<ttj�|d�|�tjj|dd�}tj|d
<tj|d<ttj�|d�|�tjj|dd�}tj|d<tj|d<ttj�|d�|�dS)Nrr9ryr8rr�r�r;r�)r;r;r8�r8ryr<�r;ryr=)rNrZr
r
rMrr�rrr�rr=�copyrr�r)rOr>�aorigr?rSrSrT�test_nan_behaviorWs0
 







zTestMedian.test_nan_behaviorcCs�tjgd�gd�gtjd�}tjj||dkd�}ttjj|dd�d�ttjj|dd�jd�ttjj|d	d�|d	�ttj�|�d�dS)
N)ryry�r9ryr�r;r�r�Fr)rNr	�uint8rZr
rrr=r�rSrSrT�test_ambigous_fillzszTestMedian.test_ambigous_fillcCstjtjfD�]v}t�|tjgtjtjgg�}tjj|t�|�d�}ttjj|dd�|tjg�ttjj|dd�|tjg�ttj�|�|�t�tjtj|gtjtj|gg�}tjj|t�|�d�}t	tjj|dd�|�t	tjj|dd�j
d�t	tjj|dd�|d�t	tj�|�|�t�||g||gg�}ttj�|�|�ttjj|dd�|�ttjj|dd�|�tj|d|dgdtjtjd	gd
tjtj|ggtjd�}tjj|t�|�d�}|dk�rttjj|dd�dd
|dg�ttj�|�d�nttjj|dd�dd
|dg�ttj�|�d�ttjj|dd�dd|g�tdd�D]P}tdd�D]G}t�tjg||g|gd�}tjj|t�|�d�}ttj�|�|�ttjj|dd�|�ttjj|dd�tjg||g|��q4�q-qdS)Nr�rr�r;Frgi����r�r~r�r9r�r�r�g@g$�g"�g�r�rdr8)
rNrnr	r�rZr
�isnanrrrr=�float32rh)rOrnr>rnrorSrSrT�test_special�sR"��
  "����zTestMedian.test_specialcCs�tj�tjgtd��}t��!}|�t�ttj�	|�tj
�t|jdj
tu�Wd�n1s2wYtj�tjgtdd��}t��(}|�t�t�ddt�ttj�	|�tj
�t|jdj
tu�Wd�n1sqwYtj�tjgtdd��}ttjj	|dd�|�ttjj	|d	d�|�tj�tjtj
tdd��}tjd
d��$}t�ddt�ttjj	|dd�|�t|dj
tu�Wd�dS1s�wYdS)Nr9rry)r:rz�always�r8r�r;T)�record)rNrZr
r	rMrr��RuntimeWarningrrr�r�log�category�warnings�filterwarningsr�catch_warnings)rOr>r�r?rSrSrT�
test_empty�s,
�
�"�zTestMedian.test_emptycCsXtj�t�d��}tttj�|�t���t	�tj
|d<tttj�|�t���t	�dS)Nr�r8)rNrZr
r
rr[rr?rYrMr�)rOr�rSrSrT�test_object�s
 zTestMedian.test_objectN)r�r�r�rqrrrtryr�r�r�r�r�r�rdr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rSrSrSrTrm;s8&�

	#	+rmc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�TestCovcCsttj�d��|_dS�Nr)r	rNr�r�rkr�rSrSrT�setup_method�szTestCov.setup_methodcCsZ|j}tt�|�t|��ttj|dd�t|dd��ttj|ddd�t|ddd��dS)NF��rowvarT�r��bias)rkrrNrrHrSrSrT�test_1d_without_missing�s�zTestCov.test_1d_without_missingcCsb|j�dd�}tt�|�t|��ttj|dd�t|dd��ttj|ddd�t|ddd��dS)Nryr�Fr�Tr�)rkr�rrNrrHrSrSrT�test_2d_without_missing�s�zTestCov.test_2d_without_missingcCs>|j}t|d<||��8}|��}tt�|�t|��ttj|dd�t|dd��ttj|ddd�t|ddd��zt|dd�Wn	tyJYnw|dd�}tt�||ddd��t||ddd���ttj||ddd�dd�t||ddd�dd��ttj||ddd�ddd�t||ddd�ddd��dS)NrFr�Tr���allow_maskedr;)rkr�meanrmrrNr�
ValueError)rOr��nxrSrSrT�test_1d_with_missing�s,��,��zTestCov.test_1d_with_missingcCs6|j}t|d<|�dd�}t�t|���t�}t�||j	�}||�
d�dd�df�d�}tt
|�t�
|�|jdd|d�tt
|dd�tj
|dd�|jd|�t�|j	|�}||�
d��d�}tt
|d	d
�tj
|d	d
�|jdd|d�tt
|d	dd�tj
|d	dd�|jd|�dS)Nrryr�r;rr�T�r�Fr�r�)rkrr�rN�logical_notrr?rirr�r�rSrrr)rOr��valid�frac�xfrSrSrT�test_2d_with_missing�s8 ��������zTestCov.test_2d_with_missingN)r�r�r�r�r�r�r�r�rSrSrSrTr��sr�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestCorrcoefcCs(ttj�d��|_ttj�d��|_dSr�)r	rNr�r�rk�data2r�rSrSrTr�szTestCorrcoef.setup_methodcCs�|j|j}}t�|�}t�||�}t��P}t�d�ttt|dd�|�	td�t
tj|dd�t|dd��t
t|dd�|�t
t||dd�|�t
t|dd�|�t
t||dd�|�Wd�dS1shwYdS)Nr�r��ddof�bias and ddof have no effectrry�rkr�rNrrr��simplefilterrrN�filterr)rOr�r�r��	expected2�suprSrSrT�	test_ddofs

"�zTestCorrcoef.test_ddofcCs�|j|j}}t�|�}t��7}t�d�ttt||dd�ttt||dd�ttt|dd�|�	td�t
t|dd�|�Wd�dS1sIwYdS)Nr�TFr�r�r;r�)rOr�r�r�r�rSrSrT�	test_bias+s

"�zTestCorrcoef.test_biascCs�|j}tt�|�t|��ttj|dd�t|dd��t��}|�td�ttj|ddd�t|ddd��Wd�dS1s@wYdS)NFr�r�Tr�)rkrrNrrr�rN�rOr�r�rSrSrTr�8s
��"�z$TestCorrcoef.test_1d_without_missingcCs�|j�dd�}tt�|�t|��ttj|dd�t|dd��t��}|�td�ttj|ddd�t|ddd��Wd�dS1sDwYdS)Nryr�Fr�r�Tr�)rkr�rrNrrr�rNr�rSrSrTr�Cs
��"�z$TestCorrcoef.test_2d_without_missingc	Cs�|j}t|d<||��8}|��}tt�|�t|��ttj|dd�t|dd��t��}|�t	d�ttj|ddd�t|ddd��Wd�n1sMwYzt|dd�Wn	t
ycYnw|dd�}tt�||ddd��t||ddd���ttj||ddd�dd�t||ddd�dd��t��?}|�t	d�tt�||ddd��t||ddd�dd	��tt�||ddd��t||ddd�d
d��Wd�dS1s�wYdS)NrFr�r�Tr�r�r;r�r8r�)rkrr�rmrrNrrr�rNr�)rOr�r�r�rSrSrTr�NsB
����,���"�z!TestCorrcoef.test_1d_with_missingcCs$|j}t|d<|�dd�}t|�}t�|�}t|dd�dd�f|dd�dd�f�t��Z}|�td�tt|dd�dd�dd�f|dd�dd�f�tt|dd�dd�dd�f|dd�dd�f�tt|dd�dd�dd�f|dd�dd�f�Wd�dS1s�wYdS)	Nrryr�r�rr�r;r�)	rkrr�rrNrrr�rN)rOr�rPrQr�rSrSrTr�ls$
*���"�z!TestCorrcoef.test_2d_with_missingN)
r�r�r�r�r�r�r�r�r�r�rSrSrSrTr�s
r�c@r)�TestPolynomialcCs�tj�d�}tj�d��dd�}tt||d�t�||d��|�t�}t|d<|�t�}t|d<|d<t||dd�dfdd	d
�\}}}}}tj|dd�|dd�df�	�dd	d
�\}}	}
}}t
|||||f||	|
||f�D]	\}
}t|
|�qpt||dd�dfdd	d
�\}}}}}tj|dd�|dd�dfdd	d
�\}}	}
}}t
|||||f||	|
||f�D]	\}
}t|
|�q�t||dd	d
�\}}}}}tj|dd�|dd�dd�fdd	d
�\}}	}
}}t
|||||f||	|
||f�D]	\}
}t|
|�q�tj�d�d}|��}|dd�}|dd�}|dd�}t||dd	|d�\}}}}}tj||dd	|d�\}}	}
}}t||�t
|||||f||	|
||f�D]
\}
}t|
|��qMdS)
Nrdr.rr8ryrrD�rrT�rjr;)rjr�)
rNr�r�r�rr�viewrrrm�zipr�r)rOr�r��C�R�K�S�DrVrprprrr�r>�a_r��wo�xs�ys�wsrSrSrT�test_polyfit�s@

&"�&&0&4&
&�zTestPolynomial.test_polyfitcCs�tj�d�}tj�d��dd�}tj|d<tj|d<|�t�}|�t�}t|d<t|d<t||ddd	�\}}}}}tj|d
d�|d
d�dd�fddd	�\}}	}
}}t	|||||f||	|
||f�D]	\}
}t
|
|�qbdS)Nrdr.rr8rr�ryTr�r;)rNr�r�r�r�r�rrrr�r)rOr�r�r�r�r�r�r�rVrprprrr�r>r�rSrSrT�test_polyfit_with_masked_NaNs�s



4&�z,TestPolynomial.test_polyfit_with_masked_NaNsN)r�r�r�r�r�rSrSrSrTr��s'r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!S)"�TestArraySetOpscCsngd�}t|ddd�}tt|dt��t|dtgd�gd�d��t|dgd	��t|d
gd��dS)N�r;r;r;r8r8ryT��return_index�return_inverserr�r�r�r;)rryr~r8)rrrr;r;r8)rrr�rrr
rrSrSrT�test_unique_onlist�sz"TestArraySetOps.test_unique_onlistcCs�tgd�gd�d�}t|ddd�}t|dtgd�gd�d��t|d	gd
��t|dgd��d
|_tgd�gd�d
d�}t|ddd�}t|dtgd�gd�d��t|d	gd
��t|dgd��dS)Nr�)rrr;rr;rr�Tr�r)r;r8ryr�rrrr;r;)rryr~r8r8)rrryr;ryr8ry)rkr=�
fill_value)r
rrrrrSrSrT�test_unique_onmaskedarray�s�z)TestArraySetOps.test_unique_onmaskedarraycCs�tgd�dd�}t|ddd�}t|dtdgdgd��t|ddg�t|dgd��t}t|ddd�}t|dtt��t|ddg�t|ddg�dS)	NrTr�r�rr;r8r�)r
rrrrrSrSrT�test_unique_allmasked�sz%TestArraySetOps.test_unique_allmaskedcCsdtt�d�gd�d�}tgd�gd�d�}t|�}t||�t|�d�|�d��t|j|j�dS)Nr~�r;rrrr;r�)r;r;r;r�)r;rrr;r)r
rNr
r	r$rrSr=)rOr�rQrPrSrSrT�test_ediff1d�s
zTestArraySetOps.test_ediff1dcC�tt�d�gd�d�}t|td�}tgd�gd�d�}t||�t|�d�|�d��t|j|j�t|gd�d�}tgd	�gd
�d�}t||�t|�d�|�d��t|j|j�dS)Nr~rr�)�to_begin)rr;r;r;r�)r;r;rrr;rr�)r;r8ryr;r;r;r�)rrrr;rrr;�	r
rNr
r$rr	rrSr=�rOr�rPrQrSrSrT�test_ediff1d_tobegin��

z$TestArraySetOps.test_ediff1d_tobegincCr	)Nr~rr�)�to_end)r;r;r;r�r)r;rrr;r;rr�)r;r;r;r�r;r8ry)r;rrr;rrrrrrSrSrT�test_ediff1d_toend�rz"TestArraySetOps.test_ediff1d_toendcCs�tt�d�gd�d�}t|ttd�}tgd�gd�d�}t||�t|�d�|�d��t|j|j�t|gd�td�}tgd	�gd
�d�}t||�t|�d�|�d��t|j|j�dS)Nr~rr��rr
)rr;r;r;r�r)r;r;rrr;r;rr�)rr;r;r;r�r;r8ry)r;r;rrr;rrrrrrSrSrT�test_ediff1d_tobegin_toends
�
z*TestArraySetOps.test_ediff1d_tobegin_toendcCs�t�d�}t|�}tgd�gd�d�}t||�tt|t��t|�d�|�d��t|j	|j	�t|t
t
d�}tgd�gd�d�}tt|t��t|�d�|�d��t|j	|j	�dS)	Nr~�r;r;r;r;�rrrrr�rrr�r�)rNr
r$r	rrr�rrSr=rrrSrSrT�test_ediff1d_ndarrays

z$TestArraySetOps.test_ediff1d_ndarraycCsTtgd�gd�d�}tgd�gd�d�}t||�}tgd�gd�d�}t||�dS)N)r;ryryryrr�)ryr;r;r;)r;ryrrF)r	r"r)rOr�r�rPrQrSrSrT�test_intersect1d+s

z TestArraySetOps.test_intersect1dcCs$tgd�gd�d�}tgd�gd�d�}t||�}t|tgd���tgd�gd�d�}gd�}t||�}t|tgd�gd	�d��tgd
��}tgd��}t||�}tt|t��t|gd��tgd
�gd�d�}tgd�gd	�d�}t||�}tt|t��t|gd��tgtgg��dS)N�r;r8r~rgr�rrrrr;r��r;r8ryr�r~rrR)ryr�rg)r;r8ryr�r~)ryr�rgrrr�)rvr~r�r�)r;rwr8ry)rr;rr)rvr~r�rw)r	rrrr�rr�rOr>r?rPrSrSrT�
test_setxor1d3s&



zTestArraySetOps.test_setxor1dcCs�t�d��gd��}t�gd��}d|d<t||d�}tgd�gd�d�}tdtd	�}d
|d<d
|d<d
|d
<t||�}tt|t	��t
||�t�|||j�|j@}t
||�dS)Nrr�r;)r;r8rr�)	rrdr.r0r;ryr�rr2)	rr;rr;rr;rr;r)rkr=r9Tr�rF)rr8ry)rNr
r�rr	r�r1rr�rrr=)rOr>r=r?�ecrVr�rSrSrT�	test_isinMs �

zTestArraySetOps.test_isincCs�tgd�gd�d�}tgd�gd�d�}t||�}t|gd��tgd�gd�d�}tgd�gd	�d�}t||�}t|gd
��tgtgg��dS)Nrrr�rrR)TTTFT�r~r~r8r;r�r;r~rrF)TTFTT)r	r#rrrrSrSrT�	test_in1dbs

zTestArraySetOps.test_in1dcCs�tgd�gd�d�}tgd�gd�d�}tt�t||��t||dd��tgd�gd�d�}tgd	�gd
�d�}tt�t||��t||dd��tgtggdd��dS)Nrrr�rrRT)�invertrrrF)r	rrNr!r#rrWrSrSrT�test_in1d_invertps  z TestArraySetOps.test_in1d_invertc	Cs�tgd�gd�d�}tgd�gd�d�}t||�}tgd�gd�d�}t||�tgd�gd�ggd	�gd
�gd�}tgd�gd�d�}tgd
�gd�d�}t||�}t||�tgtgg��dS)N)r;r8r~rgr~rrRr�r)r;r8ryr�r~rgr)rrrrrrr;rErr�rFrr)rr;r8ryr�r~)r	r!rr)	rOr>r?rPrQr�r��ezr�rSrSrT�test_union1d|s

$

zTestArraySetOps.test_union1dcCs�tgd�gd�d�}tgd��}t||�}t|tgd�gd�d��td�}td�}tt||�tdd	g��tgtjgd�}tt|g�jtj�dS)
N)rvr~r�rgrgr;r8r;)rrrrrrrr;r�)r8r�ryryr8r;r~)rvrgrrFrdrwrx)r	r rr
rN�uint32r:rrSrSrT�test_setdiff1d�s
zTestArraySetOps.test_setdiff1dcCs8t�gd��}t�gd��}tt||�t�dg��dS)N)r>r?rV)r>r?rrrV)rNr	rr rWrSrSrT�test_setdiff1d_char_array�sz)TestArraySetOps.test_setdiff1d_char_arrayN)r�r�r�rrrrr
rrrrrrr r"r$r&r'rSrSrSrTr��s"		
r�c@r)�
TestShapeBasecCsntgd�gd�d�}t|�}t|jd�t|jj|jj�t|jd�t|jj|jj�t|jj|jj�dS)NrErDr�r�r�)r
rrrr=rkrWrSrSrT�test_atleast_2d�szTestShapeBase.test_atleast_2dcCs�td�}t|jd�t|jj|j�t|jj|j�tdd�}|D]}t|jd�t|jj|j�t|jj|j�q!td�}t|jd�t|jj|j�t|jj|j�tdd�}|D]}t|jd�t|jj|j�t|jj|j�q[td�}t|jd�t|jj|j�t|jj|j�tdd�}|D]}t|jd�t|jj|j�t|jj|j�q�td�}t|jd�t|jj|jj�dS)Nr�rWr�rEr)rrrr=rkrrr2)rOr?r>rSrSrT�test_shape_scalar�s<


zTestShapeBase.test_shape_scalarN)r�r�r�r)r*rSrSrSrTr(�rgr(c@r�)�TestNDEnumeratecCs�t�d��d�}tj|td�}t||d�}ttt�|��tt|���ttt|��tt|���ttt|��tt|dd���dS)Nr�)r;ryr8r9r�F�rm)	rNr
r��
zeros_liker�r
rr>r3)rO�ordinary�
empty_mask�	with_maskrSrSrT�test_ndenumerate_nomasked�s
�
��z)TestNDEnumerate.test_ndenumerate_nomaskedcCs�td�}td�}td�}ttt|��g�ttt|��g�ttt|dd��ttt�d�dtg���ttt|��g�ttt|dd��ttt�d�dtg���dS)NrS)�dr�Fr,r2r)r/rr>r3r�rN�ndindexr)rOr>r?rVrSrSrT�test_ndenumerate_allmasked�s��z*TestNDEnumerate.test_ndenumerate_allmaskedcCs�tt�d��d�gd�gd�gd�gd�}gd�}ttt|��|�tttt|dd	���|j�t|dd	�D]\}}t|||�q6dS)
Nrr�r)r;r;rr;rr�))r<rv))r8rrw)r�rx)rFrd)r�r�Fr,)	r
rNr
r�rr>r3r]r)rOr>�items�
coordinate�valuerSrSrT�test_ndenumerate_mixedmasked�s���z,TestNDEnumerate.test_ndenumerate_mixedmaskedN)r�r�r�r1r4r8rSrSrSrTr+�sr+c@r�)�	TestStackcCs�tgd�gd�d�}tgd�gd�d�}t||gdd�}t|jd�t|j|dj�t|j|d	j�t||g�}t|j|j�t|j|j�t||gd	d�}t|jd
�t|j|dd�dfj�t|j|dd�d	fj�dS)NrErDr��rxrwrgr�rr�r�r;�ryr8�r
r4rrrr=r5rk�rOr>r?rVr�rSrSrT�
test_stack_1dszTestStack.test_stack_1dcCs�tgd�dd�}tgd�dd�}t||gdd�}t|jd�t|j|dj�t|j|d	j�t||g�}t|j|j�t|j|j�t||gd	d�}t|jd
�t|j|dd�dfj�t|j|dd�d	fj�dS)NrETr�r:Frr�r�r;r;r<r=rSrSrT�test_stack_masksszTestStack.test_stack_masksc
Cs�d}tj�dd|�}tj�dd|�}tj�dd|��t�}tj�dd|��t�}t||d�}t||d�}t||gdd�}d|}	t|j|	�t	|j
|dj
�t	|j
|dj
�t||gd	d�}|d}	t|j|	�t	|j
|d
j
�t	|j
|dj
�d}tj�dd|�}tj�dd|�}tj�dd|��t�}tj�dd|��t�}t||d�}t||d�}t||gdd�}d|}	t|j|	�t	|j
|dj
�t	|j
|dj
�t||gd	d�}|d}	t|j|	�t	|j
|d
j
�t	|j
|dj
�dS)
Nr;rrdr8r�r�r7r;r).r).r;)ryr8r�r~)rNr��randintr?r�r
r4rrrr=)
rO�shp�d1�d2r�r��a1r@rV�c_shprSrSrT�
test_stack_nd%sDzTestStack.test_stack_ndN)r�r�r�r>r?rFrSrSrSrTr9�sr9)N�__doc__r�r{r��numpyrN�numpy.core.numericr�
numpy.testingrr�numpy.ma.testutilsrrrr�
numpy.ma.corer	r
rrr
rrrrrr�numpy.ma.extrasrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r�r�rrr^rhrmr�r�r�r�r(r+r9rSrSrSrT�<module>sB4�
O,F4
Ck:i7&