a
    ç´«jÒ"  ã                   @   sº   d dl Z 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 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_c                   @   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   ÚmatÚ_data© r   úg/var/www/html/laksyashrimp/venv/lib/python3.9/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  g d¢g d¢g¡}t|g d¢g d¢gd�}t|g d¢g d¢gd�}t|ƒ}t|ƒ t|ƒ tt|d ƒt|d ƒu ƒ t|d |d kƒ t|d tu ƒ 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  g d¢g d¢g¡ƒƒ tg d¢g d¢ƒ|d
d d …f< tt	t
|ƒd
 tg d¢ƒƒƒ tt	t
|d
 ƒtg d¢ƒƒƒ tg d¢g d¢ƒ|d
d d …f< tt	t
|d
 ƒtg d¢ƒƒƒ tt	|d
 tg d¢ƒƒƒ t  t  d¡d ¡}t|dƒ}t||ƒ tt	tg d¢td�|jƒƒ td|jƒ d S )N©é   é   é   )é   r.   r-   ©r,   r   r   )r   r,   r   ©r   ©r,   r   )r,   r,   )r   r-   r   r,   r-   é	   éc   )r   r,   )r,   r,   r   é   ç      ð?ç      @)r   r   r   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   sz   t t ttdƒƒ¡g d¢d d�}tdtjd ƒD ]B}t tj||d�¡}t	|j
|j
ƒ t	||ƒ tt|jtjƒƒ q2d S )Né
   )r,   r   r,   r   r   r-   r1   r,   )Úprotocol)r   r   r   ÚlistÚrangeÚpickleÚHIGHEST_PROTOCOLÚloadsÚdumpsr   Ú_maskr   Ú
isinstancer   )r"   ÚaÚprotoZ	a_pickledr   r   r   Útest_pickling_subbaseclassM   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-   r1   r   )Zaxis)r,   r-   )r-   r,   g       @r7   g      ø?g      @)r   r   r   Zzerosr   ÚcountÚshapeÚmean)r"   Úmr   r   r   Útest_count_mean_with_matrixV   s
    $z,TestMaskedMatrix.test_count_mean_with_matrixc                 C   sb  t t g d¢g¡g d¢d�}t|jd dƒ t|jd tƒ tt |jdd… |ddd…f k¡ƒ t t g d¢g¡g d¢d�}t g d¢g d¢d�|_t t g d¢g¡g d¢d�}t||ƒ t t g d¢g¡g d¢d�}|j}|g d	¢ |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,   r1   r,   r-   r   )r.   r-   r,   r0   )r-   r,   r   r3   r6   g        F)r   r   r   r   Zflatr	   r   ÚallÚeyer   r<   r   )r"   ÚtestÚcontrolZtestflatrJ   ÚbZb01r   r   r   Ú	test_flat`   s$    (

zTestMaskedMatrix.test_flatc                 C   st  t  g d¢g d¢g d¢g¡}t  |¡}t jg d¢g d¢g d¢gt jd�}t||d�}|d	k}|d	k }t| ¡  ƒ t| ¡ ƒ t| d
¡t  g d¢¡ƒ t| d¡t  g d¢¡j	ƒ t| d
¡t  g d¢¡ƒ t| d¡t  g d¢¡j	ƒ t| ¡  ƒ t| ¡ ƒ t| d
¡t  g d¢¡ƒ t| d¡t  g d¢¡j	ƒ t| d
¡t  g d¢¡ƒ t| d¡t  g d¢¡j	ƒ d S )N)g¤p=
×£À?g¤p=
×£Ð?gÍÌÌÌÌÌì?)gìQ¸…ëÑ?g…ëQ¸Õ?g)\�Âõ(ä?)g×£p=
×Ó?g×£p=
×ë?gffffffæ?)TFF)FFF)TTFr8   r1   g      à?r   )FFTr,   )TTT)
r   r<   r   Úboolr   r   rR   Úanyr   ÚT)r"   ÚxÚXrP   ZmXZmXbigZmXsmallr   r   r   Útest_allany_onmatricesy   s4    
þ

þþz'TestMaskedMatrix.test_allany_onmatricesc                 C   s`   t t g d¢¡g d¢d�}| ¡ }t||ƒ tt|tjƒƒ t|d< | ¡ }t|g d¢gƒ d S )N)r,   r-   r.   r/   )r   r   r   r   r1   )r   r   )r-   r.   r/   )r   r   r   Ú
compressedr   r   rI   r	   )r"   rJ   rV   r   r   r   Útest_compressed“   s    
z TestMaskedMatrix.test_compressedc                 C   sD   t t g d¢¡g d¢gd�}| ¡ }t|jdƒ t|jj|jƒ d S )N)r,   r-   r.   r/   r5   ©r   r,   r   r   r   r1   )r,   r5   )r   r   r   Zravelr   rN   rH   )r"   rJ   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@   rJ   rV   r8   r2   r   r-   )rB   Úzipr   r=   ÚrandomZrandr<   r   Úfloatr   r$   r   r   r   rI   r   )r"   Úiteratorr   rJ   rT   r   r   r   Ú	test_view¢   s    


zTestMaskedMatrix.test_viewN)r&   r'   r(   r?   rL   rQ   rW   r]   r_   ra   rf   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   s,   t jddd�}t|g d¢d�}||f| _d S )Nr5   rd   r8   r`   r1   )r   r=   r   r   ©r"   r[   Úmxr   r   r   Úsetup_method±   s    zTestSubclassing.setup_methodc                 C   s    | j \}}tt|jtjƒƒ d S r    )r   r   rI   r   r   r   rh   r   r   r   Útest_maskedarray_subclassing¶   s    
z,TestSubclassing.test_maskedarray_subclassingc                 C   s`   | j \}}tjdd��6 ttt|ƒtƒƒ tt|ƒt |¡ƒ W d   ƒ n1 sR0    Y  d S )NÚignore)r   )r   r   Zerrstater   rI   r   r   r   rh   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 d   ƒ n1 s’0    Y  ttt||ƒtƒƒ ttt||ƒtƒƒ d S r    )r   r   rI   r   r   r   r   r   r   r   ÚDeprecationWarningÚouterr   rh   r   r   r   Útest_masked_binary_operationsÂ   s    

4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 )Nr1   )	r   r   Z	__array__r   r   rI   r   r   r   )r"   r[   ri   Zxmxr   r   r   Útest_masked_binary_operations2Ð   s
    
z.TestSubclassing.test_masked_binary_operations2N)r&   r'   r(   rj   rk   rm   rp   rq   r   r   r   r   rg   ®   s
   rg   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   ru   r<   Zr_r   r   r;   r   )r"   ÚactualÚexpectedr   r   r   Útest_matrixÞ   s
    
zTestConcatenator.test_matrixN)r&   r'   r(   rv   rz   r   r   r   r   rr   Ø   s   rr   )rD   Ú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   r   r   r*   rg   rr   r   r   r   r   Ú<module>   s   8 *