o 6a"@sddlZddlmZddlmZmZmZmZddl m Z m Z m Z m Z mZmZmZmZmZmZmZmZddlmZddlmZGdddeejZGd d d ZGd d d ZGd ddZdS)N) assert_warns)assert_ assert_equal assert_raisesassert_array_equal) masked_array masked_valuesmaskedallequalMaskTypegetmask MaskedArraynomasklogaddhypotdividemr_)picklec@s,eZdZefddZddZeddZdS)MMatrixcCst|}tj|||d}|S)N)datamask)npmatrixr __new__)clsrrmat_datarJ/usr/lib/python3/dist-packages/numpy/matrixlib/tests/test_masked_matrix.pyrs zMMatrix.__new__cCstj||t||dSN)rr__array_finalize__r )selfobjrrr r"s zMMatrix.__array_finalize__cCs|t}d|_|S)NF)viewr _sharedmask)r#_viewrrr _seriess zMMatrix._seriesN)__name__ __module__ __qualname__rrr"propertyr(rrrr r s  rc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)TestMaskedMatrixcCstgdgdg}t|gdgdgd}t|gdgdgd}t|}t|t|tt|dt|dut|d|dkt|dtut|d|dt|d d df|d d dft|ddd f|ddd ft|dd|ddt|d d|d dd |d<d |d<t||d |d d df<d |d d df<t||t|d<t||t|d d df<t|||d ddf|d ddf<t|d<tt t |t gdgdgtgdgd|d ddf<tt t |d tgdtt t |d tgdtgdgd|d ddf<tt t |d tgdtt |d tgdtt dd}t |d}t||tt tgdtd|jtd|jdS)N)r1r0r/rr)rr/rrr/r)r/r/)rr0rr/r0 c)rr/)r/r/r?@)rrrr/rdtype)rrrstrreprrtyper rr r arrayarangerr r fill_value)r#x1x2x3x4rrr test_matrix_indexing sP""    $  z%TestMaskedMatrix.test_matrix_indexingcCszttttdgddd}tdtjdD]!}ttj||d}t |j |j t ||t t |j tjqdS)N )r/rr/rrr0r4r/)protocol)rrrlistrangerHIGHEST_PROTOCOLloadsdumpsr_maskr isinstancer)r#aproto a_pickledrrr test_pickling_subbaseclassLs" z+TestMaskedMatrix.test_pickling_subbaseclasscCsttddgddggtdd}t|jddjd t|jddjd t|jddd d ggt|jddd gdggdS)Nr/r0r1r2)r0r0r4r)axis)r/r0)r0r/g@r:g?g @)rrrzerosrcountshapemean)r#mrrr test_count_mean_with_matrixUs $z,TestMaskedMatrix.test_count_mean_with_matrixcCsbttgdggdd}t|jddt|jdttt|jdd|dddfkttgdggdd}tgdgdd|_ttgdggdd}t||ttgdggdd}|j}|gd |dd<t||d |d<tttddd}|j}|dd}t|j t d d ggt|j t d d ggdS)Nr.)rrr/r4r/r0r)r1r0r/r3)r0r/rr6r9gF) rrrrflatr ralleyerr@r)r#testcontroltestflatrQbb01rrr test_flat_s$(   zTestMaskedMatrix.test_flatcCsttgdgdgdg}t|}tjgdgdgdgtjd}t||d}|d k}|d k}t| t|t|d tgd t|d tgd j t|d tgd t|d tgd j t| t|t|d tgdt|d tgdj t|d tgdt|d tgdj dS)N)gp= ף?gp= ף?g?)gQ?gQ?g)\(?)gףp= ?gףp= ?gffffff?)TFF)FFF)TTFr;r4g?r)FFTr/)TTT) rr@rbool_rrr]anyrT)r#xXrZmXmXbigmXsmallrrr test_allany_onmatricesxs4       z'TestMaskedMatrix.test_allany_onmatricescCs`ttgdgdd}|}t||tt|tjt|d<|}t|gdgdS)N)r/r0r1r2)rrrrr4)rr)r0r1r2)rrr compressedrrrPr )r#rQrbrrr test_compresseds z TestMaskedMatrix.test_compressedcCsDttgdgdgd}|}t|jdt|jj|jdS)N)r/r0r1r2r8rr/rrrr4)r/r8)rrrravelrrXrO)r#rQaravelrrr test_ravels zTestMaskedMatrix.test_ravelcCstttdtjd}t|}t|dtfdtfgd}d|j d<| tdftj }t ||t t|tj t t|t dS)NrHrQrbr;r5rr0)rJziprrArandomrandr@rfloatrr%rrrrPr )r#iteratorrrQr_rrr test_views   zTestMaskedMatrix.test_viewN) r)r*r+rGrTr[rdrmrorsryrrrr r-s,   r-c@s4eZdZddZddZddZddZd d Zd S) TestSubclassingcCs,tjddd}t|gdd}||f|_dS)Nr8rwr;rpr4)rrArrr#rhmxrrr setupszTestSubclassing.setupcCs |j\}}tt|jtjdSr!)rrrPrrrr{rrr test_maskedarray_subclassings z,TestSubclassing.test_maskedarray_subclassingcCsb|j\}}tjddttt|ttt|t|WddS1s*wYdS)Nignore)r)rrerrstaterrPrrrr{rrr test_masked_unary_operationss "z,TestSubclassing.test_masked_unary_operationscCs|j\}}ttt||tttt||ttt||||ttt||jtjt t ttt ||tWdn1sIwYttt ||tttt ||tdSr!) rrrPrrrrrrrDeprecationWarningouterrr{rrr test_masked_binary_operationss  z-TestSubclassing.test_masked_binary_operationscCs`|j\}}t|j|jd}ttt||tttt||ttt||t||dS)Nr4) rr __array__rrrPrrr)r#rhr|xmxrrr test_masked_binary_operations2s z.TestSubclassing.test_masked_binary_operations2N)r)r*r+r}r~rrrrrrr rzs  rzc@seZdZddZddZdS)TestConcatenatorcCsttjjdddS)NcSstdS)Nz 1, 2; 3, 4rrrrr sz6TestConcatenator.test_matrix_builder..)rrmaMAError)r#rrr test_matrix_buildersz$TestConcatenator.test_matrix_buildercCsPtd}tjtjd}t||tt|t|tt|jt|jdS)N)rr/r0r1) rrrr@r_rrr?r)r#actualexpectedrrr test_matrixs  zTestConcatenator.test_matrixN)r)r*r+rrrrrr rs r)numpyr numpy.testingrnumpy.ma.testutilsrrrr numpy.ma.corerrr r r r r rrrrrnumpy.ma.extrasr numpy.compatrrrr-rzrrrrr s 8  *