%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib64/python3.9/site-packages/numpy/ma/tests/__pycache__/
Upload File :
Create Path :
Current File : //lib64/python3.9/site-packages/numpy/ma/tests/__pycache__/test_subclassing.cpython-39.pyc

a

z[yc�@�@sdZddlZddlmZddlmZmZddlm	Z	ddl
mZmZm
Z
mZmZmZmZmZmZmZmZmZdd�ZGd	d
�d
ej�ZeZGdd�de�ZGd
d�dee�ZeZGdd�d�ZGdd�de�ZGdd�de�Z Gdd�d�Z!Gdd�d�Z"dd�Z#Gdd�d�Z$dS)z�Tests suite for MaskedArray & subclassing.

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

�N)�NDArrayOperatorsMixin)�assert_�
assert_raises)�assert_equal)�array�arange�masked�MaskedArray�masked_array�log�add�hypot�divide�asarray�
asanyarray�nomaskcCst|dt|��|�dS�N)r�len)�a�b�r�E/usr/lib64/python3.9/site-packages/numpy/ma/tests/test_subclassing.py�assert_startswithsrcs@eZdZifdd�Z�fdd�Z�fdd�Z�fdd�Z�ZS)	�SubArraycCst�|��|�}|��|_|Sr)�npr�view�copy�info)�clsZarrr�xrrr�__new__s
zSubArray.__new__cs"t��|�t|di���|_dS�Nr)�super�__array_finalize__�getattrrr)�self�obj��	__class__rrr#szSubArray.__array_finalize__cs(t��|�}|j�dd�d|jd<|S)N�addedr�)r"�__add__r�get�r%�other�resultr'rrr+$szSubArray.__add__cs(t��|�}|j�dd�d|jd<|S)N�iaddedrr*)r"�__iadd__rr,r-r'rrr1)szSubArray.__iadd__)�__name__�
__module__�__qualname__r r#r+r1�
__classcell__rrr'rrsrcs"eZdZdZd�fdd�	Z�ZS)�SubMaskedArrayz<Pure subclass of MaskedArray, keeping some info on subclass.Ncs"t�j|fi|��}||jd<|Sr!)r"r �_optinfo)rr�kwargsr&r'rrr 4s
zSubMaskedArray.__new__)N)r2r3r4�__doc__r r5rrr'rr62sr6c@s&eZdZiefdd�Zedd��ZdS)�	MSubArraycCs&t||�}tj|||d�}|j|_|S)N)�data�mask)rr	r r)rr;rr<Zsubarr�_datarrrr <s
zMSubArray.__new__cCs|�t�}d|_|S)NF)rr	Z_sharedmask)r%Z_viewrrr�_seriesBs
zMSubArray._seriesN)r2r3r4rr �propertyr>rrrrr::sr:c@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�CSAIteratorz�
    Flat iterator object that uses its own setter/getter
    (works around ndarray.flat not propagating subclass setters/getters
    see https://github.com/numpy/numpy/issues/4564)
    roughly following MaskedIterator
    cCs||_|�tj�j|_dSr)�	_originalrr�ndarray�flat�	_dataiter)r%rrrr�__init__WszCSAIterator.__init__cCs|Srr�r%rrr�__iter__[szCSAIterator.__iter__cCs4|j�|�}t|tj�s |��}|�t|j��}|Sr)	rD�__getitem__�
isinstancerrB�	__array__r�typerA)r%Zindx�outrrrrH^s
zCSAIterator.__getitem__cCs|j�|�|j|<dSr)rA�_validate_inputrD)r%�index�valuerrr�__setitem__eszCSAIterator.__setitem__cCst|j����t|j��Sr)�nextrDrJrrKrArFrrr�__next__hszCSAIterator.__next__N)	r2r3r4r9rErGrHrPrRrrrrr@Psr@csheZdZdd�Zdd�Zdd�Z�fdd�Z�fd	d
�Zedd��Z	e	j
d
d��Z	d�fdd�	Z�ZS)�ComplicatedSubArraycCsd|�t��d�S)Nz	myprefix z
 mypostfix)rrrFrrr�__str__nszComplicatedSubArray.__str__cCsd|jj�d|�d�S)N�<� �>)r(r2rFrrr�__repr__qszComplicatedSubArray.__repr__cCst|t�std��|S)Nz!Can only set to MySubArray values)rIrS�
ValueError)r%rOrrrrMus
z#ComplicatedSubArray._validate_inputcst��||�|��dSr)r"rPrM�r%�itemrOr'rrrPzszComplicatedSubArray.__setitem__cs*t��|�}t|tj�s&|���t�}|Sr)r"rHrIrrBrJrrSrZr'rrrHszComplicatedSubArray.__getitem__cCst|�Sr)r@rFrrrrC�szComplicatedSubArray.flatcCs|��}||dd�<dSr)Zravel)r%rO�yrrrrC�sNcs@t��||�}|dur<|dtjur<|j�dd�d|jd<|S)NrZ
multipliedr*)r"�__array_wrap__rZmultiplyrr,)r%r&�contextr'rrr]�sz"ComplicatedSubArray.__array_wrap__)N)
r2r3r4rTrXrMrPrHr?rC�setterr]r5rrr'rrSls

rSc@s4eZdZdZdZdd�Zdd�Zdd�Zd	d
�ZdS)�WrappedArrayz�
    Wrapping a MaskedArray rather than subclassing to test that
    ufunc deferrals are commutative.
    See: https://github.com/numpy/numpy/issues/15200)
    �cKs||_||_dSr)�_array�attrs)r%rrcrrrrE�szWrappedArray.__init__cCs|jj�d|j�d|j�d�S)Nz(
�
z
))r(r2rbrcrFrrrrX�szWrappedArray.__repr__cCst�|j�Sr)rrrbrFrrrrJ�szWrappedArray.__array__cs@|dkr8�fdd�|D�}�j||i|��fi�j��StSdS)N�__call__cs"g|]}t|�j�r|jn|�qSr)rIr(rb)�.0�argrFrr�
<listcomp>�s�z0WrappedArray.__array_ufunc__.<locals>.<listcomp>)r(rc�NotImplemented)r%Zufunc�methodZinputsr8rrFr�__array_ufunc__�s
�zWrappedArray.__array_ufunc__N)	r2r3r4r9Z__array_priority__rErXrJrkrrrrr`�sr`c@steZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�ZdS)�TestSubclassingcCs,tjddd�}t|gd�d�}||f|_dS)N��float)Zdtype)rr*rrr�r<)rr�	msubarrayr;�r%r�mxrrr�setup_method�szTestSubclassing.setup_methodcCsTt�d�}gd�}t|�}t||d�}tt|t��t|j|�tt|jt��dS)Nrm�rrr*rrro)	rrrr
rrIr	rr=)r%r�m�xsubZxmsubrrr�test_data_subclassing�s
z%TestSubclassing.test_data_subclassingcCs|j\}}tt|jt��dSr)r;rrIr=�subarrayrqrrr�test_maskedarray_subclassing�s
z,TestSubclassing.test_maskedarray_subclassingcCs`|j\}}tjdd��6ttt|�t��tt|�t�|��Wd�n1sR0YdS�N�ignore)r)r;r�errstaterrIrrprrqrrr�test_masked_unary_operations�s
z,TestSubclassing.test_masked_unary_operationscCs�|j\}}ttt||�t��ttt||�t��tt||�||�ttt||�jt��ttt�||�t��ttt	||�t��ttt	||�t��dSr)
r;rrIrrprr=rxZouterr
rqrrr�test_masked_binary_operations�s
z-TestSubclassing.test_masked_binary_operationscCs`|j\}}t|j��|jd�}ttt||�t��ttt||�t��tt||�t||��dS)Nro)	r;r
rJr<rrIrrpr)r%rrrZxmxrrr�test_masked_binary_operations2�s

z.TestSubclassing.test_masked_binary_operations2cCszttd�dgdgdd�}tt|��}t|�}|d}tt|t��tt|t��tt|j	t
��t|j	ji�|d}tt|t��tt|t��tt|j	t
��t|j	jddk�|d7}tt|t��tt|t��tt|j	t
��t|j	jddk�|�
gd��t|jgd��|j�
gd	��t|jgd	��t|d
did�}t|�}tt|d
��t|j|j�dS)Nrmrr*�ror)r0)r*rrrr*)rrrrr*�namer)rr)rrr
rxrprrIr	r:r=rrrZ	_set_mask�_maskr>�hasattr)r%rZmyZym�zrv�mxsubrrr�test_attributepropagation�s4z)TestSubclassing.test_attributepropagationcCs
t�d�}gd�}dd�t||�D�}t||d|id�}t|dd�}tt|t��tt|t��t|j	|�t
|�}tt|t��tt|t��t|j	|�t|d	d�}tt|t��t|j|j�t|j	|j	�t|�}tt|t��t|j|j�t|j	|�dS)
NrmrtcSsg|]\}}||f�qSrr)rf�i�jrrrrh
�z=TestSubclassing.test_subclasspreservation.<locals>.<listcomp>rv)r<rF)ZsubokT)
rr�zipr:r
rrIr	rr�rrr)r%rruZxinforvr�rrr�test_subclasspreservations(
z)TestSubclassing.test_subclasspreservationcCs�t�d�}t|�}t|gd�d�}tt|dt��tt|dt��tt|dd�t��tt|dt��tt|djt��t|dtu�tt|djt��tt|dd�jt��tt|jdjt��t|jdtu�tt|jdd�j	t��t
t|jd|d�t
t|jd|d�t
t|jt
dd�|dd��|d|d<|dd�|dd�<t
t|jjd|d�t
t|jjt
dd�|dd��|d|jd<|dd�|jdd�<d	S)
z,test that getter and setter go via baseclassrm�TFTFFror*�r*.r�r�r.N)rrrSr
rrIr;rrC�baserrYrP�slice)r%r�xcsub�mxcsubrrr�test_subclass_items!s.
 z#TestSubclassing.test_subclass_itemscCsjt�d�}t|�}t|�}tt|djt��tt|djt��tt|dt��tt|dt��dS)Nrmr�r�r*r)rrrSr
rrIr;)r%rr�Z
mxcsub_nomaskrrr�test_subclass_nomask_itemsFs
z*TestSubclassing.test_subclass_nomask_itemscCs\t�d�}t|gd�d�}tt|�d�t|�}t|gd�d�}tt|�dtj�d��dS)zOtest that repr uses the name of the subclass
        and 'array' for np.ndarrayrmr�ror
Zmasked_z(data=[--, 1, --, 3, 4]N)rrr
r�reprrr2)r%rrrrvr�rrr�test_subclass_reprQs
�z"TestSubclassing.test_subclass_reprcCspt�d�}t|�}t|gd�d�}tt|�d�t|�}tt|j	dtj
jj�t|gd�d�}tt|�d�dS)z7test str with subclass that has overridden str, setitemrmr�roz
[-- 1 -- 3 4]rz myprefix [-- 1 -- 3 4] mypostfixN)
rrrr
r�strrSrrYrP�maZcoreZmasked_print_option)r%rrvr�r�r�rrr�test_subclass_str\s

�z!TestSubclassing.test_subclass_strcCsvtdgd�d�}tgd�d�}t�||�}td|jv�t|jddk�||}td|jv�t|jddk�dS)N�test)r*��r�rm�)r;)rr*r�r�r�rmr)r6r�subtractrr7)r%Zarr1Zarr2Zdiff1Zdiff2rrr�$test_pure_subclass_info_preservationjsz4TestSubclassing.test_pure_subclass_info_preservationN)r2r3r4rsrwryr}r~rr�r�r�r�r�r�r�rrrrrl�s

!%rlc@s eZdZdZdd�Zdd�ZdS)�ArrayNoInheritancez6Quantity-like class that does not inherit from ndarraycCs||_||_dSr)�	magnitude�units)r%r;r�rrrrEyszArrayNoInheritance.__init__cCst|j|�Sr)r$r�)r%�attrrrr�__getattr__}szArrayNoInheritance.__getattr__N)r2r3r4r9rEr�rrrrr�wsr�cCstjjgd�gd�d�}t|d�}tj�|�}t|j|j�t|j|j�gd�|_t|j|j�t|j�tjj|dd�}t|j|j�t|j|j�gd�|_tgd�|j�t|j�tjj|dd	�}t|j|j�t|jgd��t|j�t|j�dS)
N)r*r�r�)TFTroZmeters)TFFT)rF)Z	keep_mask)	rr�rr�rr;r<rZ
sharedmask)Zdata_maskedZdata_masked_unitsZ	new_arrayrrr�test_array_no_inheritance�s&



r�c@s$eZdZdd�Zdd�Zdd�ZdS)�TestClassWrappingcCs.tjjgd�gd�d�}t|�}||f|_dS)N)r*r�rm)FTFro)rr�r
r`r;�r%ru�wmrrrrs�szTestClassWrapping.setup_methodcCsN|j\}}tjdd��$ttt�|�t��Wd�n1s@0YdSrz)r;rr|rrIrr`r�rrrr}�s
z.TestClassWrapping.test_masked_unary_operationscCs4|j\}}ttt�||�t��ttt�||�t��ttt�||�t��tt�||�||�ttt�||�t��ttt�||�t��ttt�||�t��ttt�||�t��tt�||�|t�||�|�t�	||g�}ttt�||�t��ttt�||�t��tt�||�t�||��dSr)
r;rrIrrr`rr
r�stack)r%rur�Zm2rrrr~�s
"z/TestClassWrapping.test_masked_binary_operationsN)r2r3r4rsr}r~rrrrr��sr�)%r9ZnumpyrZnumpy.lib.mixinsrZ
numpy.testingrrZnumpy.ma.testutilsrZ
numpy.ma.corerrrr	r
rrr
rrrrrrBrrxr6r:rpr@rSr`rlr�r�r�rrrr�<module>s&8+F
 

Zerion Mini Shell 1.0