
    G/Ph"                         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eej                  Z G d d	          Z G d
 d          Z G 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                   4    e Zd ZefdZd Zed             ZdS )MMatrixc                 \    t          j        |          }t          j        | ||          }|S )N)datamask)npmatrixr   __new__)clsr   r   mat_datas        h/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numpy/matrixlib/tests/test_masked_matrix.pyr   zMMatrix.__new__   s+    ioo#Cc===    c                 p    t           j                            | |           t          j        | |           d S N)r   r   __array_finalize__r   )selfobjs     r!   r%   zMMatrix.__array_finalize__   s2    
	$$T3///&tS111r"   c                 H    |                      t                    }d|_        |S )NF)viewr   _sharedmask)r&   _views     r!   _serieszMMatrix._series   s     		+&&!r"   N)__name__
__module____qualname__r   r   r%   propertyr,    r"   r!   r   r      sU         &    
  
   X  r"   r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestMaskedMatrixc           
      8   t          j        g dg dg          }t          |g dg dg          }t          |g dg dg          }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          j        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          j        t          j        d          dz            }t          |d          }t          ||           t          t          t          g dt                    |j                             t          d|j                   d S )N         )   r8   r7   r6   r   r   )r   r6   r   r   r6   r   )r6   r6   )r   r7   r   r6   r7   	   c   )r   r6   )r6   r6   r            ?      @)r   r   r   r6   r   dtype)r   r   r   strreprr   typer
   r   r   r   arrayaranger	   r   r   
fill_value)r&   x1x2x3x4s        r!   test_matrix_indexingz%TestMaskedMatrix.test_matrix_indexing!   s   Y			999-.."IIIyyy#9:::"IIIyyy#9:::"BRRX$r$x..01114BtH$%%%4F"###RXr$x(((R122Y1abb5	***R1Xr!!!Q$x(((RUBqqqE"""RVRV$$$44R1abb5	1abb5	R4R1abb5	Rad81aaa44bh			999/E&F&FGGHHH			999551aaa4Qiii)@)@AABBBAiii)@)@AABBB			999551aaa4Aiii)@)@AABBBAYYY 7 788999Yry||c)**2s##RoooXFFF" " 	# 	# 	#S"-(((((r"   c           	         t          t          j        t          t	          d                              g ddz            }t	          dt
          j        dz             D ]}t          j        t          j        ||                    }t          |j
        |j
                   t          ||           t          t          |j        t          j                             d S )N
   )r6   r   r6   r   r   r7   r;   r6   )protocol)r   r   r   listrangepickleHIGHEST_PROTOCOLloadsdumpsr   _maskr   
isinstancer    )r&   aproto	a_pickleds       r!   test_pickling_subbaseclassz+TestMaskedMatrix.test_pickling_subbaseclassM   s    4b		??33///A:MNNN1f59:: 	< 	<EV\!e%D%D%DEEI!'222A&&&Jy	::;;;;		< 	<r"   c                    t          t          j        ddgddgg          t          j        d                    }t	          |                    d          j        d	           t	          |                    d          j        d
           t	          |                    d          ddgg           t	          |                    d          dgdgg           d S )Nr6   r7   r8   r9   )r7   r7   r;   r   )axis)r6   r7   )r7   r6   g       @rA   g      ?g      @)r   r   r   zerosr   countshapemean)r&   ms     r!   test_count_mean_with_matrixz,TestMaskedMatrix.test_count_mean_with_matrixV   s    QFQF#34428F;K;KLLLQWW!W__*F333QWW!W__*F333 	QVVV^^r2hZ000QVVV^^secU^44444r"   c           	         t          t          j        g dg          g d          }t          |j        d         d           t          |j        d         t
                     t          t          j        |j        dd         |dddf         k                         t          t          j        g dg          g d          }t          g dg d          |_        t          t          j        g dg          g d          }t          ||           t          t          j        g dg          g d          }|j        }|g d	         |d d <   t          ||           d
|d<   t          t          j        t          j        d                    d          }|j        }|d d         }t          |j	        t          j
        ddgg                     t          |j        t          j
        ddgg                     d S )Nr5   )r   r   r6   r;   r6   r7   r   )r8   r7   r6   r:   )r7   r6   r   r=   r@   g        F)r   r   r   r   flatr
   r   alleyer   rG   r   )r&   testcontroltestflatrZ   bb01s          r!   	test_flatzTestMaskedMatrix.test_flat`   s    BIyyyk22CCCTYq\1%%%TYq\6***ty1~a1f566777BIyyyk22CCC ;;;	ry)))55IIIFFFT7###BIyyyk22CCC9yyy)T7###26!99--A666FeSXrx"b
33444SXrx%(899:::::r"   c                    t          j        g dg dg dg          }t          j        |          }t          j        g dg dg dgt           j                  }t	          ||          }|d	k    }|d	k     }t          |                                            t          |                                           t          |                    d
          t          j        g d                     t          |                    d          t          j        g d          j	                   t          |                    d
          t          j        g d                     t          |                    d          t          j        g d          j	                   t          |                                            t          |                                           t          |                    d
          t          j        g d                     t          |                    d          t          j        g d          j	                   t          |                    d
          t          j        g d                     t          |                    d          t          j        g d          j	                   d S )N)gp=
ף?gp=
ף?g?)gQ?gQ?g)\(?)gףp=
?gףp=
?gffffff?)TFF)FFF)TTFrB   r;   g      ?r   )FFTr6   )TTT)
r   rG   r   boolr   r   rh   anyr   T)r&   xXrd   mXmXbigmXsmalls          r!   test_allany_onmatricesz'TestMaskedMatrix.test_allany_onmatricesy   sj   H(((((((((* + + IaLLH***+++)))+24'; ; ; !!$$$c8EIIKK   		UYYq\\29-A-A-A#B#BCCCUYYq\\29-A-A-A#B#B#DEEEUYYq\\29-A-A-A#B#BCCCUYYq\\29-?-?-?#@#@#BCCCGKKMM!"""W[[^^RY/B/B/B%C%CDDDW[[^^RY/D/D/D%E%E%GHHHW[[^^RY/B/B/B%C%CDDDW[[^^RY/B/B/B%C%C%EFFFFFr"   c                 L   t          t          j        g d          g d          }|                                }t	          ||           t          t          |t          j                             t          |d<   |                                }t	          |g dg           d S )N)r6   r7   r8   r9   )r   r   r   r   r;   )r   r   )r7   r8   r9   )r   r   r   
compressedr   r   rY   r
   )r&   rZ   rm   s      r!   test_compressedz TestMaskedMatrix.test_compressed   s    <<<00|||DDDLLNNQ
1bi(()))$LLNNQ$$$$$r"   c                     t          t          j        g d          g dg          }|                                }t	          |j        d           t	          |j        j        |j                   d S )N)r6   r7   r8   r9   r?   r   r6   r   r   r   r;   )r6   r?   )r   r   r   ravelr   rb   rX   )r&   rZ   aravels      r!   
test_ravelzTestMaskedMatrix.test_ravel   se    ???33???:KLLLV\6***V\'11111r"   c                    t          t          t          j        d          t          j                            d                              }t          j        |          }t          |dt          fdt          fg          }d|j	        d<   |
                    t          dft          j                  }t          ||           t          t          |t          j                             t          t          |t                                d S )NrP   rZ   rm   rB   r<   r   r7   )rR   zipr   rH   randomrandrG   r   floatr   r)   r   r   r   rY   r   )r&   iteratorr   rZ   rj   s        r!   	test_viewzTestMaskedMatrix.test_view   s    BIbMM29>>"+=+=>>??x!!3,e)EFFFq	vvuaj"),,T4   
4++,,,Jt[11122222r"   N)r-   r.   r/   rN   r]   re   ro   ry   r|   r   r   r1   r"   r!   r3   r3       s        *) *) *)X< < <5 5 5; ; ;2G G G4% % %2 2 2	3 	3 	3 	3 	3r"   r3   c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestSubclassingc                 j    t          j        dd          }t          |g d          }||f| _        d S )Nr?   r   rB   r~   r;   )r   rH   r   r   r&   rt   mxs      r!   setup_methodzTestSubclassing.setup_method   s;    Iaw'''Q___---G			r"   c                 r    | j         \  }}t          t          |j        t          j                             d S r$   )r   r   rY   r    r   r   r   s      r!   test_maskedarray_subclassingz,TestSubclassing.test_maskedarray_subclassing   s/    )B
28RY//00000r"   c                 2   | j         \  }}t          j        d          5  t          t	          t          |          t                               t          t          |          t          j        |                     d d d            d S # 1 swxY w Y   d S )Nignore)r   )r   r   errstater   rY   r   r   r   r   s      r!   test_masked_unary_operationsz,TestSubclassing.test_masked_unary_operations   s    )B[))) 	, 	,Js2ww00111Q+++	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   ABBBc           	         | j         \  }}t          t          t          ||          t                               t          t          t          ||          t                               t          t          ||          ||z              t          t          t          ||          j        t          j                             t          t                    5  t          t          t          j        ||          t                               d d d            n# 1 swxY w Y   t          t          t          ||          t                               t          t          t          ||          t                               d S r$   )r   r   rY   r   r   r   r    r   r   r   DeprecationWarningouterr   r   s      r!   test_masked_binary_operationsz-TestSubclassing.test_masked_binary_operations   s\   )B
3r2;;00111
3r1::w//000SQZZA&&&
3r2;;,bi88999,-- 	< 	<JsyR00'::;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<
5R=='22333
5Q<<1122222s   6DD #D c                    | j         \  }}t          |j                                         |j                  }t	          t          t          ||          t                               t	          t          t          ||          t                               t          t          ||          t          ||                     d S )Nr;   )	r   r   	__array__r   r   rY   r   r   r   )r&   rt   r   xmxs       r!   test_masked_binary_operations2z.TestSubclassing.test_masked_binary_operations2   s    )B27,,..RW===
6"b>>733444
6"a=='22333VB^^VC%5%566666r"   N)r-   r.   r/   r   r   r   r   r   r1   r"   r!   r   r      s_          
1 1 1
, , ,3 3 37 7 7 7 7r"   r   c                       e Zd Zd Zd ZdS )TestConcatenatorc                 F    t          t          j        j        d            d S )Nc                      t           d         S )Nz
1, 2; 3, 4r   r1   r"   r!   <lambda>z6TestConcatenator.test_matrix_builder.<locals>.<lambda>   s    S-> r"   )r   r   maMAError)r&   s    r!   test_matrix_builderz$TestConcatenator.test_matrix_builder   s     bem%>%>?????r"   c                 Z   t           d         }t          j                            t          j        d                   }t          ||           t          t          |          t          |                     t          t          |j                  t          |j                             d S )N)rr6   r7   r8   )	r   r   r   rG   r_r   r   rF   r   )r&   actualexpecteds      r!   test_matrixzTestConcatenator.test_matrix   s     \"5;;ru\23368,,, 	T&\\4>>222T&+&&X](;(;<<<<<r"   N)r-   r.   r/   r   r   r1   r"   r!   r   r      s5        @ @ @
= 
= 
= 
= 
=r"   r   )rT   numpyr   numpy.testingr   numpy.ma.testutilsr   r   r   r   numpy.ma.corer   r	   r
   r   r   r   r   r   r   r   r   r   numpy.ma.extrasr   r   r   r3   r   r   r1   r"   r!   <module>r      s        & & & & & &4 4 4 4 4 4 4 4 4 4 4 44 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4           k29   &K3 K3 K3 K3 K3 K3 K3 K3\(7 (7 (7 (7 (7 (7 (7 (7T= = = = = = = = = =r"   