U
    M»{jÝ"  ã                   @   s¾   d dl Zd dlmZ d dlmZmZmZmZ d dl	m
Z
mZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ G dd„ deejƒZG d	d
„ d
ƒZG dd„ dƒZG dd„ dƒZdS )é    N)Úassert_warns)Úassert_Úassert_equalÚassert_raisesÚassert_array_equal)Úmasked_arrayÚmasked_valuesÚmaskedÚallequalÚMaskTypeÚgetmaskÚMaskedArrayÚnomaskÚlogÚaddÚhypotÚdivide©Úmr_)Úpicklec                   @   s,   e Zd Zefdd„Zdd„ Zedd„ ƒZdS )ÚMMatrixc                 C   s   t  |¡}tj| ||d�}|S )N)ÚdataÚmask)ÚnpÚmatrixr   Ú__new__)Úclsr   r   ZmatÚ_data© r   úg/var/www/html/bwave/python/venv/lib/python3.8/site-packages/numpy/matrixlib/tests/test_masked_matrix.pyr      s    
zMMatrix.__new__c                 C   s   t j | |¡ t | |¡ d S ©N)r   r   Ú__array_finalize__r   )ÚselfÚobjr   r   r   r!      s    zMMatrix.__array_finalize__c                 C   s   |   t¡}d|_|S )NF)Úviewr   Z_sharedmask)r"   Z_viewr   r   r   Ú_series   s    
zMMatrix._seriesN)Ú__name__Ú
__module__Ú__qualname__r   r   r!   Úpropertyr%   r   r   r   r   r      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 )ÚTestMaskedMatrixc              	   C   s
  t  dddgdddgg¡}t|dddgdddggd�}t|dddgdddggd�}t|ƒ}t|ƒ t|ƒ tt|d ƒt|d ƒkƒ t|d |d kƒ t|d tkƒ t|d	 |d	 ƒ t|ddd …f |ddd …f ƒ t|d d …df |d d …df ƒ t|d d … |d d … ƒ t|dd … |dd … ƒ d
|d	< d
|d	< t||ƒ d|ddd …f< d|ddd …f< t||ƒ t|d< t||ƒ t|ddd …f< t||ƒ |dd d …f |dd d …f< t|d< tt	t
|ƒt  dddgdddgg¡ƒƒ tdddgdddgƒ|dd d …f< tt	t
|ƒd tdddgƒƒƒ tt	t
|d ƒtdddgƒƒƒ tdddgdddgƒ|dd d …f< tt	t
|d ƒtdddgƒƒƒ tt	|d tdddgƒƒƒ t  t  d¡d ¡}t|dƒ}t||ƒ tt	tdddddgtd�|jƒƒ td|jƒ d S )Né   é   é   é   r   ©r   ©r+   r   )r+   r+   )r   r,   é	   éc   )r   r+   é   ç      ð?ç      @©Zdtype)r   r   r   ÚstrÚreprr   Útyper	   r   r
   r   ÚarrayÚaranger   r   r   Z
fill_value)r"   Úx1Zx2Zx3Zx4r   r   r   Útest_matrix_indexing    sP    ""



("  " 

ÿz%TestMaskedMatrix.test_matrix_indexingc                 C   s€   t t ttdƒƒ¡dddddgd d�}tdtjd ƒD ]B}t tj||d�¡}t	|j
|j
ƒ t	||ƒ tt|jtjƒƒ q8d S )Né
   r+   r   r,   r/   )Úprotocol)r   r   r   ÚlistÚranger   ÚHIGHEST_PROTOCOLÚloadsÚdumpsr   Ú_maskr   Ú
isinstancer   )r"   ÚaÚprotoZ	a_pickledr   r   r   Útest_pickling_subbaseclassL   s    (
z+TestMaskedMatrix.test_pickling_subbaseclassc                 C   s‚   t t ddgddgg¡t d¡d�}t|jdd�jd	ƒ t|jdd�jd
ƒ t|jdd�ddggƒ t|jdd�dgdggƒ d S )Nr+   r,   r-   r.   )r,   r,   r/   r   )Zaxis)r+   r,   )r,   r+   g       @r5   g      ø?g      @)r   r   r   Zzerosr   ÚcountÚshapeZmean)r"   Úmr   r   r   Útest_count_mean_with_matrixU   s
    $z,TestMaskedMatrix.test_count_mean_with_matrixc                 C   sx  t t dddgg¡dddgd�}t|jd dƒ t|jd tƒ tt |jdd… |ddd…f k¡ƒ t t dddgg¡dddgd�}t dddgdddgd�|_t t dddgg¡dddgd�}t||ƒ t t dddgg¡dddgd�}|j}|dddg |d d …< t||ƒ d|d< t t t d¡¡dd�}|j}|d d… }t|j	t 
ddgg¡ƒ t|jt 
d	d	gg¡ƒ d S )
Nr+   r,   r-   r   r/   r1   r4   g        F)r   r   r   r   Zflatr	   r   ÚallÚeyer   r:   r   )r"   ÚtestÚcontrolZtestflatrG   ÚbZb01r   r   r   Ú	test_flat_   s$     (  
 
zTestMaskedMatrix.test_flatc                 C   s�  t  dddgdddgddd	gg¡}t  |¡}t jd
ddgdddgd
d
dggt jd�}t||d�}|dk}|dk }t| ¡  ƒ t| ¡ ƒ t| d¡t  ddd
g¡ƒ t| d¡t  ddd
g¡j	ƒ t| d¡t  ddd
g¡ƒ t| d¡t  d
d
d
g¡j	ƒ t| ¡  ƒ t| ¡ ƒ t| d¡t  d
d
dg¡ƒ t| d¡t  dddg¡j	ƒ t| d¡t  d
d
dg¡ƒ t| d¡t  d
d
dg¡j	ƒ d S )Ng¤p=
×£À?g¤p=
×£Ð?gÍÌÌÌÌÌì?gìQ¸…ëÑ?g…ëQ¸Õ?g)\�Âõ(ä?g×£p=
×Ó?g×£p=
×ë?gffffffæ?TFr6   r/   g      à?r   r+   )
r   r:   r   Zbool_r   r   rN   Úanyr   ÚT)r"   ÚxÚXrL   ZmXZmXbigZmXsmallr   r   r   Útest_allany_onmatricesx   s4    þ
þþz'TestMaskedMatrix.test_allany_onmatricesc                 C   sj   t t ddddg¡ddddgd�}| ¡ }t||ƒ tt|tjƒƒ t|d< | ¡ }t|dddggƒ d S )Nr+   r,   r-   r.   r   r/   )r   r   )r   r   r   Ú
compressedr   r   rF   r	   )r"   rG   rR   r   r   r   Útest_compressed’   s    "
z TestMaskedMatrix.test_compressedc                 C   sP   t t dddddg¡dddddggd�}| ¡ }t|jdƒ t|jj|jƒ d S )	Nr+   r,   r-   r.   r3   r   r/   )r+   r3   )r   r   r   Zravelr   rK   rE   )r"   rG   Zaravelr   r   r   Ú
test_ravel›   s    (zTestMaskedMatrix.test_ravelc                 C   sˆ   t tt d¡tj d¡ƒƒ}t |¡}t|dtfdtfgd�}d|j	d< | 
tdftj¡}t||ƒ tt|tjƒƒ tt|tƒ ƒ d S )Nr>   rG   rR   r6   r0   r   r,   )r@   Úzipr   r;   ÚrandomZrandr:   r   Úfloatr   r$   r   r   r   rF   r   )r"   Úiteratorr   rG   rP   r   r   r   Ú	test_view¡   s    


zTestMaskedMatrix.test_viewN)r&   r'   r(   r=   rI   rM   rS   rX   rZ   r[   r`   r   r   r   r   r*      s   ,	
	r*   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestSubclassingc                 C   s2   t jddd�}t|dddddgd�}||f| _d S )Nr3   r^   r6   r   r+   r/   )r   r;   r   r   ©r"   rV   Úmxr   r   r   Úsetup°   s    zTestSubclassing.setupc                 C   s    | j \}}tt|jtjƒƒ d S r    )r   r   rF   r   r   r   rb   r   r   r   Útest_maskedarray_subclassingµ   s    
z,TestSubclassing.test_maskedarray_subclassingc              	   C   sL   | j \}}tjdd��, ttt|ƒtƒƒ tt|ƒt |¡ƒ W 5 Q R X d S )NÚignore)r   )r   r   Zerrstater   rF   r   r   r   rb   r   r   r   Útest_masked_unary_operationsº   s    
z,TestSubclassing.test_masked_unary_operationsc              	   C   s´   | j \}}ttt||ƒtƒƒ ttt||ƒtƒƒ tt||ƒ|| ƒ ttt||ƒjtjƒƒ t	t
ƒ� ttt ||¡tƒƒ W 5 Q R X ttt||ƒtƒƒ ttt||ƒtƒƒ d S r    )r   r   rF   r   r   r   r   r   r   r   ÚDeprecationWarningÚouterr   rb   r   r   r   Útest_masked_binary_operationsÁ   s    

 z-TestSubclassing.test_masked_binary_operationsc                 C   s`   | j \}}t|j  ¡ |jd�}ttt||ƒtƒƒ ttt||ƒtƒƒ tt||ƒt||ƒƒ d S )Nr/   )	r   r   Z	__array__r   r   rF   r   r   r   )r"   rV   rc   Zxmxr   r   r   Útest_masked_binary_operations2Ï   s
    
z.TestSubclassing.test_masked_binary_operations2N)r&   r'   r(   rd   re   rg   rj   rk   r   r   r   r   ra   ­   s
   ra   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestConcatenatorc                 C   s   t tjjdd„ ƒ d S )Nc                   S   s   t d S )Nz
1, 2; 3, 4r   r   r   r   r   Ú<lambda>Û   ó    z6TestConcatenator.test_matrix_builder.<locals>.<lambda>)r   r   ÚmaZMAError)r"   r   r   r   Útest_matrix_builderÚ   s    z$TestConcatenator.test_matrix_builderc                 C   sP   t d }tj tjd ¡}t||ƒ tt|ƒt|ƒƒ tt|jƒt|jƒƒ d S )N)Úrr+   r,   r-   )	r   r   ro   r:   Zr_r   r   r9   r   )r"   ÚactualÚexpectedr   r   r   Útest_matrixÝ   s
    
zTestConcatenator.test_matrixN)r&   r'   r(   rp   rt   r   r   r   r   rl   ×   s   rl   )Únumpyr   Znumpy.testingr   Znumpy.ma.testutilsr   r   r   r   Znumpy.ma.corer   r   r	   r
   r   r   r   r   r   r   r   r   Znumpy.ma.extrasr   Znumpy.compatr   r   r   r*   ra   rl   r   r   r   r   Ú<module>   s   8 *