
    Ng"                         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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_)picklec                   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        d/var/www/html/ai-engine/env/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         )   r9   r8   r7   r   r   )r   r7   r   r   r7   r   )r7   r7   )r   r8   r   r7   r8   	   c   )r   r7   )r7   r7   r            ?      @)r   r   r   r7   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
   )r7   r   r7   r   r   r8   r<   r7   )protocol)r   r   r   listranger   HIGHEST_PROTOCOLloadsdumpsr   _maskr   
isinstancer!   )r'   aproto	a_pickleds       r"   test_pickling_subbaseclassz+TestMaskedMatrix.test_pickling_subbaseclassL   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 )Nr7   r8   r9   r:   )r8   r8   r<   r   )axis)r7   r8   )r8   r7   g       @rB   g      ?g      @)r   r   r   zerosr   countshapemean)r'   ms     r"   test_count_mean_with_matrixz,TestMaskedMatrix.test_count_mean_with_matrixU   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 )Nr6   )r   r   r7   r<   r7   r8   r   )r9   r8   r7   r;   )r8   r7   r   r>   rA   g        F)r   r   r   r   flatr
   r   alleyer   rH   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)TTFrC   r<   g      ?r   )FFTr7   )TTT)
r   rH   r   bool_r   r   rh   anyr   T)r'   xXrd   mXmXbigmXsmalls          r"   test_allany_onmatricesz'TestMaskedMatrix.test_allany_onmatricesx   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)r7   r8   r9   r:   )r   r   r   r   r<   )r   r   )r8   r9   r:   )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)r7   r8   r9   r:   r@   r   r7   r   r   r   r<   )r7   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 )NrQ   rZ   rm   rC   r=   r   r8   )rS   zipr   rI   randomrandrH   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/   r0   rO   r]   re   ro   ry   r|   r   r   r2   r#   r"   r4   r4      s        *) *) *)X< < <5 5 5; ; ;2G G G4% % %2 2 2	3 	3 	3 	3 	3r#   r4   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   rC   r~   r<   )r   rI   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/   r0   r   r   r   r   r   r2   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   r2   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)rr7   r8   r9   )	r   r   r   rH   r_r   r   rG   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/   r0   r   r   r2   r#   r"   r   r      s5        @ @ @
= 
= 
= 
= 
=r#   r   )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   numpy.compatr   r   r   r4   r   r   r2   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#   