a :jgtJ@sdZdZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl Z ddl Z ddlZ ddlmmZddlmmZddlmZddlmZmZmZmZddlmZddl mZdd lmZdd l m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(dd lm)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZe jZeZee jjjd d ddDZddeDZGdddZGdddZGdddZGdddZGdddZGdddZGdddZGdd d ZGd!d"d"ZGd#d$d$ZGd%d&d&ZGd'd(d(ZGd)d*d*ZGd+d,d,ZGd-d.d.ZGd/d0d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Zd=d>Zd?d@Ze jjdAeedBe jjdCeedBe jdDdEdFZdGdHZdIdJZe jjejjdKkdLdMdNdOZdPdQZdRdSZdTdUZdVdWZdS)XznTests suite for MaskedArray & subclassing. :author: Pierre Gerard-Marchant :contact: pierregm_at_uga_dot_edu zPierre GF Gerard-MarchantN)reduce) AxisError) assert_raises assert_warnssuppress_warningsIS_WASM)requires_memory)ndarray)asbytes)assert_assert_array_equal assert_equalassert_almost_equalassert_equal_records fail_if_equalassert_not_equalassert_mask_equal)iMAError MaskErrorMaskType MaskedArrayabsabsoluteaddallallcloseallequalalltrueangleanomarangearccosarccosharctan2arcsinarctanargsortarrayasarraychoose concatenate conjugatecoscoshcountdefault_fill_valuediagdividedoc_noteempty empty_likeequalexp flatten_maskfilled fix_invalidflatten_structured_arrayfromflexgetmask getmaskarraygreater greater_equalidentityinner isMaskedArrayless less_equalloglog10 make_maskmake_mask_descrmask_ormasked masked_array masked_equalmasked_greatermasked_greater_equal masked_inside masked_lessmasked_less_equalmasked_not_equalmasked_outsidemasked_print_option masked_values masked_wheremaxmaximummaximum_fill_valueminminimumminimum_fill_valuemodmultiplymvoidnomask not_equalones ones_likeouterpowerproductputputmaskravelrepeatreshaperesizeshapesinsinhsometruesortsqrtsubtractsumtaketantanh transposewherezeros zeros_likezGsetting an item on a masked array which has a shared mask will not copycCsg|]}t|qS)npdtype.0Zdt_r|r|B/usr/local/lib/python3.9/site-packages/numpy/ma/tests/test_core.py @rz?bhilqBHILQefdgFDcCsg|] }|jqSr|)charrr|r|rrArc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zed1d2Zd3d4Zd5d6Zd7d8Zd9d:Z d;d<Z!d=d>Z"d?d@Z#dAdBZ$dCdDZ%dEdFZ&dGdHZ'dIdJZ(dKdLZ)dMdNZ*dOdPZ+dQdRZ,dSdTZ-edUdVZ.dWdXZ/dYdZZ0d[d\Z1d]d^Z2d_d`Z3dadbZ4dcddZ5dedfZ6dgdhZ7didjZ8dkdlZ9dmdnZ:dodpZ;dqdrZxrz.TestMaskedArray.test_basic1d..cSs||Srr|rr|r|rryrr)rr rBr8anyrrastypeintrmr r}r~rrr.lenr rrrrrrrrrrrsr|r|r test_basic1dls    zTestMaskedArray.test_basic1dc Cs|j\ }}}}}}}}} } dD]} | |_| |_| |_| |_| | _tt| tt|tt|| t|j| t|jtdd| tt|t|tdd|t|| tt |d| t||qdS)N)r)rcSs||Srr|rr|r|rrrz.TestMaskedArray.test_basic2d..cSs||Srr|rr|r|rrrr) rrmr rBr rrr.rr8rr|r|r test_basic2d~s     zTestMaskedArray.test_basic2dc Cs|j\ }}}}}}}}} } tt||ft||ftt||ft||ftt||ft||ftt|||ft|||fdSr)rr r}r*rr|r|rtest_concatenate_basics z&TestMaskedArray.test_concatenate_basicc Cs|j\ }}}}}}}}} } d} | |_|_|_|_t|jt|| t|jt|| t||fd} tt||fd| tt|j|jfd| jtd}t t dddgd}t||f}t |gdt |jgdt||f}t |gd t |jgd dS) NrrrrFTr)rrrr)FFFTrrrr)FTFF) rrmr rr}rkr*_maskrzr'rbr ) rrrrrrrrrrrrZxmymr|r|rtest_concatenate_alongaxiss   z*TestMaskedArray.test_concatenate_alongaxiscCsZttttjdtddtfdtfgd}t |dd|ddg}t ||dS)N rrr~) rKlistzipr}randomrandr floatrr*r)rdatatestr|r|rtest_concatenate_flexiblesz)TestMaskedArray.test_concatenate_flexiblecCsJtgdgddd}t|jdt|jgdgt|jgdgdS)Nrrrrrrr)rndminrr)r'r rmrrrr|r|rtest_creation_ndmins z#TestMaskedArray.test_creation_ndmincCsFtgd}t|d<t|dtd}t|j|jjt|j|jjdS)Nrr)rr~)r'rJrr rmrrrxxr|r|r$test_creation_ndmin_from_maskedarrays  z4TestMaskedArray.test_creation_ndmin_from_maskedarraycCstdtd}t|gd<t|}t|j|jt|}t|j|jt|gddd}t|j|jtgddd}t|jgd tgdd d}t|jgd tgd|jd d }t t |j|jtgd|jdd }t t |j|j tgddd}t|jgd dS) Nr)rrrrrrrrrTTTTFFFFrcopy) r rrJrr rrr'rr r}may_share_memory)rrZdma_1Zdma_2Zdma_3rrr|r|rtest_creation_maskcreations$  z*TestMaskedArray.test_creation_maskcreationcCsNttjjtt"tdtjjgWdn1s@0YdS)Nr)r}r'marJpytestwarns UserWarningrr|r|r*test_masked_singleton_array_creation_warnss z:TestMaskedArray.test_masked_singleton_array_creation_warnscCsttdgdd}t||dddf}t|gdgdgt|jgdgdgt|_t||dddf}t|gdgdgt|jtudS)Nrrrrrrrrrrrrr)rrrrrrrrrr)r'r}r r rr`rr )rrrr|r|r'test_creation_with_list_of_maskedarrayssz7TestMaskedArray.test_creation_with_list_of_maskedarrayscCstjjddgddgd}td}tjj||gdd}t|jddgddggGd d d }tjj|dgddgd}tjt d d  tj|gt dWdn1s0Ytj||g}t|jddgddggdS) NrrTFrrZU21rc@seZdZddZdS)zUTestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_cast..NotBoolcSs tddS)N not a bool!) ValueErrorrr|r|r__bool__sz^TestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_cast..NotBool.__bool__N)__name__ __module__ __qualname__rr|r|r|rNotBoolsrrmatch) r}rrKr r(r rrraisesrbool)rZ masked_strZ normal_intresrZ masked_objr|r|r4test_creation_with_list_of_maskedarrays_no_bool_casts .zDTestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_castcCs0tjdgddgddgddgdd }t|dS) N)Arf0f1ZS4i8r)namesformatsoffsetsr)r}r'rr|r|r'test_creation_from_ndarray_with_padding s  z7TestMaskedArray.test_creation_from_ndarray_with_paddingcCsFtjtdd$tgdgddWdn1s80YdS)Nzunexpected keyword argumentrrrrr)Zmaks)rr TypeErrorrrr|r|rtest_unknown_keyword_parametersz.TestMaskedArray.test_unknown_keyword_parameterc Csj|j\ }}}}}}}}} } d|_d|_t|} t| j|jt| j|jt| j|jt| j|jdS)NT)r fill_value _hardmaskr(r rr) rrrrrrrrrrrZxmmr|r|r test_asarrayszTestMaskedArray.test_asarraycCs2tdj}t|jj t|}t|jjdS)Nrr}eyeTr flags c_contiguousr(rmZnew_mr|r|rtest_asarray_default_orders z*TestMaskedArray.test_asarray_default_ordercCs6tdj}t|jj t|dd}t|jjdS)NrCorderrrr|r|rtest_asarray_enforce_order%s  z*TestMaskedArray.test_asarray_enforce_ordercCsttjddTttjddggdd}t|}t|j|jddgt|jgdWdn1sf0YdS)Nignoreinvalidrrrrrr)rrr) r}errstaterKnanr9r rrr)rrZ data_fixedr|r|rtest_fix_invalid-s z TestMaskedArray.test_fix_invalidcCsHtd}t|d<tttdkt|dtutt|ddddS)Nrr--r)r rJr rr r8rr|r|rtest_maskedelement5s z"TestMaskedArray.test_maskedelementcCsdtdtd}d}||d<t|d|t|d|uddl}|j}||d<t|d|udS)Nrrrrrrrr)r3objectr r datetimenow)rrrr*dtr|r|rtest_set_element_as_object=s  z*TestMaskedArray.test_set_element_as_objectcCstgd}t|gdd}t|gdd}t|}t|t|tt|t|ddtt|dt|dut|d|dkt|dtut|d |d t|d d |d d t|dd|ddt|dd|ddd |d <d |d <t||d |dd <d |dd <t||t|d<t||t|dd <t||||dd<t|d<tt t |tgdt gdgd|dd<tt t |tgdt gdgd|dd<tt t |tgdtt |tgdt d d}t |d}t||tt tgdt|jtd|jtgdt}tgdt}|d}|d}tt|ttt|tt||t|ddjdkdS)N)rrrrrrrrrrFendwithrrrr crrrrrr)rrrrrrrrrrr)rZhellorrr)r}r'rreprr rqr typerJrr<rKr rUrrrr)rm)rx1Zx2Zx3x4s1s2r|r|r test_indexingJsZ            zTestMaskedArray.test_indexingcCstjdd}tdddddgf}tjd}tj|jd<|||<tjj|d<tjjd tj d }tjj gd gd d }||d<||gd<dS)N<)rrrrrrr.rr)gCD prrTFFrrrr) r}rr rkslice masked_allinfrrJfloat32r')rrindexvaluer|r|rtest_setitem_no_warning|s   z'TestMaskedArray.test_setitem_no_warningcCsgd}t|}t|}t||ut|dd}t||utd}t||d}t|jj|jtt||j t|j j|jt|}t|jj|jjkt|j j|j jkt||d}t|jj|jkt|j j|jkt|dt ud|d<t|dt ut|j j|jktt|j dt||d d } t| jj|jkt| j j|jkt| dt ud| d<t| dt ut| j j|jktt| j dt|d |d} tt | j|d jutd } t | d<t| d } tt| | g| tt| gdt| ddd} t| gdt| ddd}t| || jddd}t| || dd}t| || }t|j| jt|j | j tgdgdd}t|}t|jjj |jjj t|j jj |j jj t|dd}t|jjj |jjj t|j jj |j jj dS)NrrrrrTrrrrr1rrrrr)r)rrrrrrrr)rrrraxis)rrrrrrrrrr )rGr r}r r'r rZ__array_interface__rrrrJrr8r~rlr*r<rjrrKctypesr)rnrrZm3r8y1Zy1ay2Zy2aZy3r9Zy4Zy5Zy6Zy7Zy8Zy9rrr|r|r test_copysv            zTestMaskedArray.test_copycCs(tjjddd}|}t|jddS)N+Tr)r}rr'rr r)rrZxcr|r|r test_copy_0dszTestMaskedArray.test_copy_0dcCs0tttjgdtttjddS)Nr)r rBr}rrrr|r|rtest_copy_on_python_builtinssz,TestMaskedArray.test_copy_on_python_builtinscCs@tjgd}tjgd}|j}|jt|gddS)Nrrrr)r}rr'rr )rrrZ a_copy_methodr|r|rtest_copy_immutables z#TestMaskedArray.test_copy_immutablecCsddlm}tgdgdd}||}t|j|jtt|jt|jd|d<t|jgdt|jgd||}t|j|jd |jd<t|jgdt|jgddS) Nr)deepcopyrAFTFrrrrrr F)rrWr'r rridr)rrWrcopiedr|r|r test_deepcopys  zTestMaskedArray.test_deepcopycCstgdgdd}tt|dtttdtttddttttd}Wdn1sh0Yt|ddS)NrArXr[0 -- 2]r&z >5)r'r formatrJr FutureWarning)rrZwith_format_stringr|r|r test_formats (zTestMaskedArray.test_formatcCstgdgdd}tt|dtt|tdtjd}tjj |dd<tt|td tjd }tt|td tgd gd gtj d}tjj |d<tt|tdtdddtt|ddtdtdddtt| t tddS)NrArXrr]z masked_array(data=[0, --, 2], mask=[False, True, False], fill_value=999999)r2z masked_array(data=[0, --, --, ..., 1997, 1998, 1999], mask=[False, True, True, ..., False, False, False], fill_value=999999)z masked_array(data=[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], mask=False, fill_value=999999)rrUrrrz masked_array( data=[[1, 2, 3], [4, --, 6]], mask=[[False, False, False], [False, True, False]], fill_value=?Br|z, dtype=int8)z masked_array(data=[[1, 2, 3]], mask=[[False, False, False]], fill_value=z%, dtype=int8)z masked_array( data=[[1, 2, 3], [4, --, 6]], mask=[[False, False, False], [False, True, False]], fill_value=999999)) r'r rr6textwrapdedentr}rr rJint8rrrrr|r|r test_str_repr s>       zTestMaskedArray.test_str_reprc Cst}tjddzntgdgdd}tt|dtt|dtjd}tjj |d d <tt|d Wtjfi|ntjfi|0dS) Nz1.13)legacyrArXrr]zcmasked_array(data = [0 -- 2], mask = [False True False], fill_value = 999999) rbrrczmasked_array(data = [0 -- -- ..., 1997 1998 1999], mask = [False True True ..., False False False], fill_value = 999999) ) r}Zget_printoptionsZset_printoptionsr'r rr6rr rJ)rZoldoptsrr|r|rtest_str_repr_legacyPs  z$TestMaskedArray.test_str_repr_legacycCsHd}t|}tj|}tjj|dd}t|||t||ddS)NucaféTrr&)r7r}rr'r )ruZutypeZ arr_nomaskZ arr_maskedr|r|rtest_0d_unicodees  zTestMaskedArray.test_0d_unicodec CsttttfD]}td|}d|_gdddf}tdtj dD]z}|D]p}||_ t tj ||d}t |j|jt |j|j|ttfvrt |jdnt |j|dt|j |qJqBq dS) Nr) rrrrrrrrrrTFrrprotocol)rrrr)r rrrangepickleHIGHEST_PROTOCOLrloadsdumpsr rrr )rr~rZmasksprotor a_pickledr|r|r test_picklingos" zTestMaskedArray.test_picklingcCstjddgdtfdtfgdtj}t|ddgd}td tj d D]B}t tj ||d }t |j |j t ||tt|jtjqFdS) N)rr)rrrrrTFFTrrrrq)r}r'rrviewrecarrayrKrsrtrurvrwr rr isinstancer)rrrrxryr|r|rtest_pickling_subbaseclasss  z*TestMaskedArray.test_pickling_subbaseclasscCs`tjj}tdtjdD]B}ttj||d}t|j |j t|j |j t|j |j qdS)Nrrrq) r}rrJrsrtrurvrwr Z _baseclassrr)rZmcrxZ mc_pickledr|r|rtest_pickling_maskedconstants z,TestMaskedArray.test_pickling_maskedconstantcCshtddgddgdtfdtfgd}tdtjd D]0}ttj||d }t|j |j t||q2dS) Nrrrrrrrrrrrr~rrrq) r'rrrsrtrurvrwr r)rrrxryr|r|rtest_pickling_wstructuredsz)TestMaskedArray.test_pickling_wstructuredcCsLtd}d|_|j}tdtjdD]"}ttj||d}t||q$dS)Nr)rrrrrq) r rmrrsrtrurvrwr )rrrrxrr|r|rtest_pickling_keepalignments z+TestMaskedArray.test_pickling_keepalignmentcCsTtgd}tgdgdd}t|djdt|djdt|djddS)Nrrrrr|r)r'r rmrr|r|rtest_single_element_subscripts  z-TestMaskedArray.test_single_element_subscriptc s8tdttdtdttdtdttdgggtdttdggttttddgt}|tdt t ttdgdgdtgdgddttfddttd d t t td Wdn1s0Ytttttd d tt fd ddS)Nrrz$Warning: converting a masked elementrrrcstSr)rr|rr|rrrz/TestMaskedArray.test_topython..rrrrcs tdSNr)rr|rr|rrr) r rr'rrr rfilterrr r}isnanr)rsupr|rr test_topythons 4 zTestMaskedArray.test_topythoncCsVtd}|dd}d|jd<t|ddk|d|}t|j|t|jd|t|t|jd||d |jd <td}t|d <tt |d t tk|d k}tt t |ttd ktt t |tt|j kt ||}t|j|jut|d tut|dtut|dtut|d tut|dtut||dS)Nrdrr rry$@rer.rrrr>r1)r rkflatr r realimagr+rJrr.ryrmrVr~)rrrcr|r|rtest_oddfeatures_1s.      z"TestMaskedArray.test_oddfeatures_1cCstgd}tgd}t|d<t||| }t|gdt|d<t||| }t|gdt|dtut|dtut|dtudS)Nrrrrrrrrrrrrrrrrr)r'rJryr r rrrrr|r|rtest_oddfeatures_2s  z"TestMaskedArray.test_oddfeatures_2cCs:tdgdd}tdg}|j}||||<t|dgdS)NrTrrd)r'rr )ratestbtestidxr|r|rtest_oddfeatures_3s   z"TestMaskedArray.test_oddfeatures_3cCs(tjjddd}t|ddddS)NrOrrr)r}rrCr r8rjr|r|rtest_filled_with_object_dtypesz-TestMaskedArray.test_filled_with_object_dtypecCs|tdgdtfddtfgd}t|d<t|tjtdtdtdfg|jdt|d<t|d tjd g|jddS) Nrrrir|S8frrrrr)r1r) r'rrrJr r8r}r/r~)rZflexir|r|rtest_filled_with_flexible_dtypes   z/TestMaskedArray.test_filled_with_flexible_dtypecCsrdtfdtfg}tddg|d}|}tt|dtdf|d}tt|d d |_tt|d dS) Nrrrrrrrrrr)rrr)rr)rrr_r8r tupler/r)rndtyperrr|r|rtest_filled_with_mvoid s z&TestMaskedArray.test_filled_with_mvoidcCsdtfddtfdtfgfg}tddgddg|d }|d }tjd d g|d }t|||dd }tjddg|djd }t||tjdtdg}t|j jtdddgdfgt|j jtdddgdfgdS)NrBBABBrrerr?rrrrrrrr)rrrrrrr)rz(2,2)i1,(2,2)i1r?)ri1r?)rrr?r?)r?r?)rrr?) rr'r8r}r r~numpyrrzrr)rrrrcontrolZr|r|rtest_filled_with_nested_dtypes*    z-TestMaskedArray.test_filled_with_nested_dtypecCsPttjddgddtjddgdddd}t|jdt|d jddS) NrArUFrr"r)rrZ F_CONTIGUOUSr)r'r}r rr8rjr|r|rtest_filled_with_f_order-s z(TestMaskedArray.test_filled_with_f_ordercCsPtgdtd}d|jd<|}t|jddd|jd<t|jdddS)Nrr???infoz!!!)r'r_optinforr rrrr|r|rtest_optinfo_propagation5s   z(TestMaskedArray.test_optinfo_propagationcCstgd}d|jd<t|jd|dkjdt|jd|dkjdt|jd|dkjdt|jd|dkjdt|jd|dkjdt|jd|djdt|jd|djdt|jd|djdt|jd|djdt|jd|ddjdt|jd|gdjdt|jdt|jdt|jdt|jdt|jdt|ddjdt|jdt|jddS)N)rrrrrGkeyr)rrrTrJ)r'rr r}r6rr{rjr|r|r test_optinfo_forward_propagation>s"  z0TestMaskedArray.test_optinfo_forward_propagationcCstdtfddtfdtfgfg}tddgddg|d }d }tt||td gd gd gd fdgdgdgdfdd}d}tt||dS)Nrrtr)r)rr)r)r@rrrz[(--, (2, --)) (4, (--, 6.0))]r)rrrrF)TFTFFTint, (2,3)float, floatrrr~z)(0, [[--, 0.0, --], [0.0, 0.0, --]], 0.0))r}r~rrr'r rrK)rZ fancydtyperrZt_2d0r|r|rtest_fancy_printoptionsQs*" z'TestMaskedArray.test_fancy_printoptionscCsdtfdtfg}tjddg|d}t|}tjddgddggtd}t||t|j|jtddgdd g|d }t|}tddgddggd d gd d ggtd }t||t|j|jt|j|jdtfdd tfdtfgfg}tddgddg|d }t|}tgdgdggdgdgtd }t||t|j|jt|j|jdtfdtfg}tjdgdgg|d}t|}tjddggddgggtd}t||t|j|jdS)Nrrrer?rrrrrrrrbabb)r)r皙?)r)r皙@rr)rrr)rrrr r)rrr}r'r:r r~r)rrrrrr|r|rtest_flatten_structured_arrayes>    z-TestMaskedArray.test_flatten_structured_arraycCsdtfdtfg}tjdg|dd}t|}tt|ttdgdg|dd}tt|ttddgddg|d}t|jd|jd}tt|tdS) Nrrrrrrrrr) rr}r'r_r rrKrr)rrrrr|r|r test_void0dszTestMaskedArray.test_void0dcCsdtfdtfg}tddgddg|d}|d}tt|tt|d|dfd t|dd |d }tt|tt|dtut|dtut|d d tdd gfgd dgfgdgd}t|dd|ddt|ddtdd gd dgdddS)NrrrrrrrrrerrrTF)r>i2rrrr)rrKr rr_r rJ)rrrrrr|r|rtest_mvoid_getitems*  z"TestMaskedArray.test_mvoid_getitemcCsVdtfdtfg}tddgddg|d}tt|dd d gtt|d td gdS) Nrrrrrrrrrrr)rrKr rrJ)rrrr|r|rtest_mvoid_iters zTestMaskedArray.test_mvoid_iterc Cstddgdtfdtfgd}tt|ddt|dd<tj}tdz2tt|dd tt|dd Wt|n t|0td d gd gd}tt|dd dS)Nrer?rrrrz(1, 1)z-X-z(1, -X-)rr)rrz(1,)) r'rr rrJrT_displayZ set_displayr6)rmxZ ini_displayr|r|rtest_mvoid_prints  z TestMaskedArray.test_mvoid_printcCstgdfggdfggdfdgd}tt|ddktt|ddktdd gd d ggfgd d gd d ggfgdgd}tt|ddktt|ddktdgdgddgd}tt|ddktt|ddktdd gd d ggdfgd d gd d ggd fgddtfgd}tt|ddktt|ddktdgdgddgd}tt|ddktt|ddkdS)NrrX)rfrfrf)r   z)TestMaskedArray.test_mvoid_multidim_printcCstdgdgd}tddg}t||gddgtd}t|d|ut|d|utt|dj|jktt|djd |djd<t|dd kdS) NrTrrFrrrr)rKr)r r}rrr)rZmx1Zmx2rr|r|rtest_object_with_arrays z&TestMaskedArray.test_object_with_arrayN)>rrrrrrrrrrrrrrrrrr rrrrr%r'r-r<rH suppress_copy_mask_on_assignmentrQrSrTrVr\rarkrmrorzrrrrrrrrrrrrrrrrrrrrrrrrr|r|r|rrDsx        2 HF        # $rc @seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Z d=d>Z!d?d@Z"dAdBZ#dCdDZ$e%j&'dEdFdGge%j&'dHdIdJgdKdLZ(e%j&'dEdFdGge%j&'dHdIdJgdMdNZ)e%j&j'dOe*e+dPe%j&j'dQe*e+dPe%j&'dHdIdRgdSdTZ,e%j&'dUe-j.e-j/gdVdWZ0e%j&'dUe-j.e-j1gdXdYZ2e%j&j'dOe*e+dPe%j&j'dQe*e+dPe%j&'dHdIdRgdZd[Z3e%j&j'dOe*e+dPe%j&j'dQe*e+dPe%j&'dHdIdRge%j&'dUe-j4e-j/e-j5e-j1gd\d]Z6e%j&'dUe-j4e-j/e-j5e-j1ge%j&'dHdId^gd_d`Z7dadbZ8dcddZ9dedfZ:dgdhZ;dIS)iTestMaskedArrayArithmeticc Cstddddtddddddddg }tgd }d}gd }gd }t||d }t||d }tgd }t|gdd } t|d|} |d||||||||| | f |_t|_tj ddddS)Nrrrrrrrrrrrrrrrrr1r!) r}r'rrKryrrgeterr err_statusseterrrr|r|rrs&    z&TestMaskedArrayArithmetic.setup_methodcCstjfi|jdSrr}rrrr|r|rteardown_methodsz)TestMaskedArrayArithmetic.teardown_methodc Cs@|j\ }}}}}}}}} } tddgddgg} t| ddgddgg} t| | | | t| | | | t| | | | dD]} || }|| }|| }|| }| | } t| | t||||t||||t||||t||||t||||t||||t||||t||||t||||t||||t||||t||||t|d|dtt|dt|dt||||tt||t||tt||t||tt ||t ||tt ||t ||q~dS)Nrrrr))rr)rr@) rr'rKr rkrr}rrsr^r1)rrrrrrrrrrrZa2dZa2dmrr|r|rtest_basic_arithmetics@      z/TestMaskedArrayArithmetic.test_basic_arithmeticcCstdtd}d|_tdtd}||}t|gdgdgt|jgdgdg||dddf}t|gdgdgt|jgdgdgtdtd}||dddf}t|gd gd gt|jgd gd gdS) Nrrrrr)rrr)rrrrr)rrr)rrrrrY)r rrmr rrrrrr|r|rtest_divide_on_different_shapes5s   z9TestMaskedArrayArithmetic.test_divide_on_different_shapescCs>tdg}tdg}tt||ttt||tdSNr)r}r'r rr)rnarr|r|rtest_mixed_arithmeticGs  z/TestMaskedArrayArithmetic.test_mixed_arithmeticcCsNttj}t|d|dg}tt|dgdttd|gddS)NrrrrYr)r}finfortinyr'r r=)rrrr|r|rtest_limits_arithmeticNs z0TestMaskedArrayArithmetic.test_limits_arithmeticcCs\tddd}tdtdjtd|jt| jtt||jtt||jdS)Nrrr)r'r rrXr[)rrr|r|r test_masked_singleton_arithmeticTs   z:TestMaskedArrayArithmetic.test_masked_singleton_arithmeticcCsdtgdgdd}t|ddktut|ddktut|ddkdt|ddkddS)NrrrrrrrFT)r'r rJr rjr|r|rtest_masked_singleton_equality^s z8TestMaskedArrayArithmetic.test_masked_singleton_equalitycCsttddg}|t}t|j|jt|jddg|dt}t|tu|t}t|j|jt|jddgdS)NrrTr)rKrJr rmrr rr|r|r%test_arithmetic_with_masked_singletonfs   z?TestMaskedArrayArithmetic.test_arithmetic_with_masked_singletoncCs2tdg}|t}t|j|jt|jdgdS)NrT)rKrJr rmrrr|r|r5test_arithmetic_with_masked_singleton_on_1d_singletonrs zOTestMaskedArrayArithmetic.test_arithmetic_with_masked_singleton_on_1d_singletoncCsNtddd}t|jj|jjtdd}t|jdt|jddgdS)Nrrrrrr)r'r r8rMrrmr)rrrr|r|rtest_scalar_arithmeticys    z0TestMaskedArrayArithmetic.test_scalar_arithmeticc CsN|j\ }}}}}}}}} } tt|t|tt|t|tt|t|tt|t|tt|t|tt|t|tt t |t |tt t |t |tt t |t |tt |t |tt|t| tt|t| tt|t| tt||t||tt|t|tt|d|t|d|ttj|d|ddt|d|ddtt||t||tt||t||tt||t||tt||t||tt||t||tt||t||tt|t|dS)N?T)deg)rr r}r,r-rnrorvrwrrrrErFr6r$r!r%r#rrr5rarCr>rDr?r+rr|r|rtest_basic_ufuncss2$,z+TestMaskedArrayArithmetic.test_basic_ufuncscCstdtdtdtddgdtgdgdd}t|}t|jjtjutd||d}t|}t|jjtjutd|t|d}tt |t tddg|tt |t utgd}t|d}tt |t t|jjtjut t|jdd dS) Nrrr)rrrrrrr?rrK)r r.r'r r~r7r}Zintprkrr r<r`rr)rZottrr|r|rtest_count_funcs&      z)TestMaskedArrayArithmetic.test_count_funccCs$tdtgdtdtddS)Nrrrr)r r.rr|r|rtest_count_on_python_builtinssz7TestMaskedArrayArithmetic.test_count_on_python_builtinsc Cs@|j\ }}}}}}}}} } t|} t|} tt| t| tt| t| ttgdgdgdttgdgdgdt d}t dd}t |d<t |d<tt||t t ||||tt||t t ||||tt|dktt|d kt d dd}t |d <ttj|dd ddS) Nr)rrr1rrr)rrr1rrrrrrrK)rr}rir rWrXrrZr[r rJryrCr>r rk) rrrrrrrrrrrZxrZxmrr|r|rtest_minmax_funcs$  z*TestMaskedArrayArithmetic.test_minmax_funccCstd}t||}tt|tt|t||t||}tt|tt|tj||t||}tt|tt|t||t||}tt|tt|tj||dS)Nr?) r}rbr[r rrr rdrX)rrZaminimumZamaximumr|r|rtest_minimummaximum_funcs     z2TestMaskedArrayArithmetic.test_minimummaximum_funccCs.tgdgdd}tj|}t|ddS)Nrrrr)r'r}rXrr rr|r|rtest_minmax_reduces z,TestMaskedArrayArithmetic.test_minmax_reducec Cstjd}ttjddd|d}d|_dD]}tt|}ttj j |}tj dt d}z||d|d }Wnt yYn0tj dtd}||d|d }t||u|d ||d|d }t||uq2dS) NrrrrrrZrWrrrLoutr)r}rrroundr'uniformrmgetattrrrcorer3rrrr fill)rrrfuncnamenpfuncZmafuncnoutresultr|r|rtest_minmax_funcs_with_outputs"    z7TestMaskedArrayArithmetic.test_minmax_funcs_with_outputc CsR|j\ }}}}}}}}}}|jf|_t|dt|dtut|ddtut|ddtut|dt|dtut|ddtut|ddtut|dt|dtut|ddtut|ddtut gddd}t|tut|tut|tudS) Nrrrr4@rTr) rrrmr rWr rJrZptpr')r_rrr|r|rtest_minmax_methodss$ z-TestMaskedArrayArithmetic.test_minmax_methodsc Cs$tddddtddddddddg }d}d}gd }t||d }|d tjtjtjtjtj tj tj g}|D]<}t t|||d  ||t t|||d ||qpt ||t | ||dd D]<}t t|||d  ||t t|||d ||q|ddD]}tgdgd|d }t ||dt | |dttjdtjdtj dggd|d } t | |tj dt | |tjdtjdttjj } t| dgddgd  | ksJt| dgddgd | ks Jq dS)Nrrrrrrrrrrrrr)@xD?y@xD@xDr rry@y@rrr)r}r'rrKrZfloat16rEfloat64Z longdoubleZ complex64Z complex128Z clongdoubler rWrZrDr) rrrZan10rrZ float_dtypesZ float_dtyperrZcmaxr|r|rtest_minmax_dtypessN&   $&z,TestMaskedArrayArithmetic.test_minmax_dtypesc Cs|j\ }}}}}}}}} } ttj|t|ttj|t|tdttdddtdttdddttj|ddt|ddttjt|dddt|ddtt|dt|dttj |ddt |ddtt |dt |dttj t|dddt |ddd} | |_ |_ |_ |_ t | dkrtt ||fdt ||fdttj|dt|dtt|dt|dtt |dt |ddS)NrrrKrr)rr r}rr accumulatertr'r8prodrfrmrr*rr|r|rtest_addsumprodCs$"" z)TestMaskedArrayArithmetic.test_addsumprodcCstdgdgdggdgdgdggd}tddgddgd d gg}||}tddgddgddggd d gd d gd d ggd}t||t|j|jt|j|j||}tddgddgd d ggd d gd d gd d ggd}t||t|j|jt|j|jtdgdgdgg}tddgddgd d ggd d gd d gd d ggd}||}td dgddgddggd d gd d gd d ggd}t||t|j|jt|j|j||}td dgddgddggd d gd d gd d ggd}t||t|j|jt|j|jdS)NrrrFTrrrr@rrrrrrr>r'r rrrrrrrr|r|rtest_binops_d2DXsD$    z)TestMaskedArrayArithmetic.test_binops_d2DcCstdgdgdggdgdgdggd}tddgddgd d gg}||}td d gddgddggd d gddgddggd}t||t|j|jt|j|j||}tddgddgd d ggd d gddgddggd}t||t|j|jt|j|jtdgdgdgg}tddgddgd d ggd d gd d gd dggd}||}td d gd dgd dggd d gd d gd dggd}t||t|j|jt|j|j||}tddgddgddggd d gd d gd dggd}t||t|j|jt|j|jdS)NrrrFTrrrrrrgUUUUUU?rrg?rrr>r!r"r|r|rtest_domained_binops_d2D|sD$    z2TestMaskedArrayArithmetic.test_domained_binops_d2DcCsztgdgddd}|d}t|jgd|d7}t|jgd|d}t|jgd|d}t|jgddS)NrrrrFrshrinkrrYrrKr rrr|r|rtest_noshrinkingsz*TestMaskedArrayArithmetic.test_noshrinkingcCs(tjdg}tt|djjddS)Nrrr|)r}rr'r true_dividerrmrrr|r|rtest_ufunc_nomasksz+TestMaskedArrayArithmetic.test_ufunc_nomaskcCs*tjjgdddd}t|jgddS)N)rr@?Fr'rY)r}rrUr rrjr|r|rtest_noshink_on_creationsz2TestMaskedArrayArithmetic.test_noshink_on_creationc Cs|j\ }}}}}}}}} } tt||t||t||} t| t||t| jt|j|jt||} t| t||t| jtt|j|j|dkdSr)rr r]r}rrI) rrrrrrrrrrrrr|r|rtest_mods  z"TestMaskedArrayArithmetic.test_modcCstd}td}t|dd<|ddd}|ddd}tt|dt|dtt|ddt|ddttt|d t|d t||tt t|d t|d t ||t gd t }t|d<t|gd }t |d d kt |ddkt |ddkdS) Nrrrrrrrrrrr)abcrdefrr)rrrr3) r r}rJrkr rxrurAr8rdr'r)r )rrrrr|r|rtest_TakeTransposeInnerOuters&  z6TestMaskedArrayArithmetic.test_TakeTransposeInnerOutercCstddgddgd}t|jddgt|jddgt|jj|jjjt|jdd gt|jdd gt|jj|jjjdS) Ny?$@y4@@rrrrrrrd)r'r rr8r~rr)rrr|r|rtest_imag_realsz(TestMaskedArrayArithmetic.test_imag_realcCsttjddddd}t|dddf<|d<|d<d}|D]}tt|}t||}tjdtd}| d ||d|d }t ||ut ||d|d tdt d}|d|d }t ||ut |dtuqDdS) Nrrrrrr)rtrvarstdrWrZrmeanrrr r'r}rr rkrJr r3rr r r r)rrZfunclistrrxmmethoutputrr|r|rtest_methods_with_outputs        z2TestMaskedArrayArithmetic.test_methods_with_outputcCsdtfdtfg}tddgddg|d}||k}t|jddgt|jd d gt|jdk||d k}t|jdd gt|jd d gt|jdktddgd dg|d}||k}t|jd dgt|jdd gt|jdk|d |k}t|jd d gt|jdd gt|jdktddgdd g|d}||k}t|jddgt|jd d gt|jdkdtfdd tfd tfgfg}tddgddggddgddgg|d}|d|k}t|jdd gd d ggt|jd d gd dggt|jdkdS)Nrrrer?rrrTFrrrrrrrrrrrrrrrrrr'r rrr rrrrrrr|r|rtest_eq_on_structuredsJ   z/TestMaskedArrayArithmetic.test_eq_on_structuredcCsdtfdtfg}tddgddg|d}||k}t|jddgt|jddgt|jd k||d k}t|jdd gt|jddgt|jd ktddgd dg|d}||k}t|jd dgt|jd dgt|jd k|d |k}t|jd d gt|jd dgt|jd ktddgdd g|d}||k}t|jddgt|jddgt|jd kdtfdd tfd tfgfg}tddgddggddgddgg|d}|d|k}t|jdd gd d ggt|jddgdd ggt|jd kdS)Nrrrer?rrrFTrrrrrrr>r@rrrBrCrDr|r|rtest_ne_on_structured&sJ   z/TestMaskedArrayArithmetic.test_ne_on_structuredcCstgdgddd}||jk}|j|k}tt|tt| |jtd|jjk}t |j|t |j|t |jgdt |j|jdS)N)rer?r)rrrerrr|TTF) r'rr r}rrrrbr~r r )rreqne expected_maskr|r|r%test_eq_ne_structured_with_non_maskedQs    z?TestMaskedArrayArithmetic.test_eq_ne_structured_with_non_maskedc std}tdd|dtdd|dtdd|dtdd|dfD]bt}|d}tjd|d td|d tdd|dtd d|dfD]t}|d}||k}tk|tk|t|k|t|k|t||k|fd d |jD}tt|t d |||k }tk|tk|t|k|t|k|t||k|fd d |jD}tt|t d  |qq>dS)NrrrrrrreZ2i4rrrcsg|]}||kqSr|r|rnamerrr|rryrzITestMaskedArrayArithmetic.test_eq_ne_structured_extra..csg|]}||kqSr|r|rMrOr|rrr) r}r~r_r}rr'rr rrr) rr,ma1r1ma2r2Z eq_expectedZel_by_elZ ne_expectedr|rOrtest_eq_ne_structured_extrabs>               z5TestMaskedArrayArithmetic.test_eq_ne_structured_extrar,SUr NrcCsNtddg|ddg|d}||k}t|jddgt|jddgt|jdk||dk}t|jddgt|jddgt|jdktddg|ddg|d}||k}t|jddgt|jddgt|jdk|d|k}t|jddgt|jddgt|jdk||dk}t|jddgt|jddgt|jdkdS)Nrrrrr~rrTFr'r rrr rrr,r rrrr|r|rtest_eq_for_stringss,   z-TestMaskedArrayArithmetic.test_eq_for_stringscCsNtddg|ddg|d}||k}t|jddgt|jddgt|jdk||dk}t|jddgt|jddgt|jdktddg|ddg|d}||k}t|jddgt|jddgt|jdk|d|k}t|jddgt|jddgt|jdk||dk}t|jddgt|jddgt|jdkdS)NrrrrrWFTrXrYr|r|rtest_ne_for_stringss,   z-TestMaskedArrayArithmetic.test_ne_for_stringsdt1Zidsdt2rcCsNtddg|ddg|d}||k}t|jddgt|jddgt|jdk||dk}t|jddgt|jddgt|jdktddg|ddg|d}||k}t|jddgt|jddgt|jdk|d|k}t|jddgt|jddgt|jdk||dk}t|jddgt|jddgt|jdkdS)NrrrWTFrXrr\r^r rrrr|r|rtest_eq_for_numerics,   z-TestMaskedArrayArithmetic.test_eq_for_numericopcCsbtddgddgd}tddd}|||}t|jj|jkt|jt|jt |jBdS)Nrrrrrr) r'r}r rkr rrmr rzr)rrarrrr|r|rtest_eq_broadcast_with_unmaskeds  z9TestMaskedArrayArithmetic.test_eq_broadcast_with_unmaskedcCsDtgdgdgdg}||d}t|jj t|jtudS)NrrUr>rr1r)r'r rrmr`)rrarrr|r|rtest_comp_no_mask_not_broadcasts z9TestMaskedArrayArithmetic.test_comp_no_mask_not_broadcastcCsNtddg|ddg|d}||k}t|jddgt|jddgt|jdk||dk}t|jddgt|jddgt|jdktddg|ddg|d}||k}t|jddgt|jddgt|jdk|d|k}t|jddgt|jddgt|jdk||dk}t|jddgt|jddgt|jdkdSNrrrWFTrXr_r|r|rtest_ne_for_numerics,   z-TestMaskedArrayArithmetic.test_ne_for_numericcCstddg|ddg|d}|||}t|j||j|jt|jddgt|jdk|||d}t|j||j|jdt|jddgt|jdktddg|ddg|d}|||}t|j||j|jt|jddgt|jdk||d|}t|j||jd|jt|jddgt|jdk|||d}t|j||j|jdt|jddgt|jdkdSre)r'r rrrr r)rrar\r^r rrrr|r|rtest_comparisons_for_numerics,  z6TestMaskedArrayArithmetic.test_comparisons_for_numericzN/AcCsLtgdgd|d}tgdgd|d}t|||j||j|jdS)N)rrcder )rr)rhrr)rKr r)rrar rPrRr|r|rtest_comparisons_strings:sz2TestMaskedArrayArithmetic.test_comparisons_stringscCs(t }|tdtddgddgd}t|dktddgddgdt|jdkddgt|dktddgddgdtddgdd}t|dkddgt|dkddgtddgdd}t|dktddgddt|dktddgddt}t|dktWdn1s0YdS)NzComparison to `None`rrrTFr)rrr`r'r rrJ)rrrr|r|rtest_eq_with_NoneEs  z+TestMaskedArrayArithmetic.test_eq_with_NonecCstd}t|dkdt|dkdt|dkdt|dkdtddd}t|dktt|dktt|dktt|dktdS)NrTrFr)r'r rJrr|r|rtest_eq_with_scalar^s z-TestMaskedArrayArithmetic.test_eq_with_scalarcCstddgddgd}tddgddggtddgddggfD]<}||k}t|jddgddggt|jddgddggq>dS)NrrrrFT)r'r}r rr)rrrrr|r|rtest_eq_different_dimensionsjs  z6TestMaskedArrayArithmetic.test_eq_different_dimensionscCstgdgdd}ttjtjdtddggdd}t|}t||t|j|jt|jgdt|}t||t|j|jt|jgddS)Nrrrrrrrrrrrrrrr)rKr}r$rEr r)rrrrr|r|rtest_numpyarithmeticus   z.TestMaskedArrayArithmetic.test_numpyarithmetic).assign)r~r7) r}rzrr'r~r6r rrr}rrr`)rrrrr|rrtest_assign_dtypes      z+TestMaskedArrayAttributes.test_assign_dtypeN) rrrr{rrrrrrrr|r|r|rrys 7   ryc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%S)&TestFillingValuescCstjjj}|dt}t|d|dt}t|td|dd}t|d|dd}t|tdtt|dttt|dtdS)Nr|S30scamelot!rstuff) r}rr _check_fill_valuerr r/rr )rrfvalr|r|rtest_check_on_scalar8s       z&TestFillingValues.test_check_on_scalarcCsxtjjj}dtfdtfdg}|gd|}tt|tt | gd|d|}tt|tt | t dt dt t dgtj d|d }|||}tt|tt | gdtj dd tfd tfd gd }|||}tt|tt | gdtjd td}d|d<||t}tt|tt | gddtfg}|d|}tt|tt | ddS)Nrr)rr)r)gr)rr???rrrrrr)rrrrmr~6e)r)r}rr rrrr rr r itemr/r r'r))rrrrZfill_valr|r|rtest_check_on_fieldsHs<        z&TestFillingValues.test_check_on_fieldscCstgd}|jddit|td}t|jgdt|jtdt|td}t|jgdt|jtd| t}t|jgdt|jtdt|jdd| dg}t|d j|jt|d j|jdS) N)345commentzupdated!r)rrrrr)rrr) r'rupdaterr rrr/rrrr|r|rtest_fillvalue_conversionws     z+TestFillingValues.test_fillvalue_conversioncCs>td}ttd}ttdj}t||t||dS)Nr)r/r}r'r~r )rrf2Zf3r|r|rtest_default_fill_values  z)TestFillingValues.test_default_fill_valuecCshtdgdtfddtfgd}t|}t|j}tjtdtdtdf|jd}t||t||dS) Nrrrrrrrr)r'rrr/r~r}r )rfieldsrrexpectedr|r|r"test_default_fill_value_structureds   z4TestFillingValues.test_default_fill_value_structuredcCs:tdg}t|}t|dtt|d|ddS)N)vZV7r)r}r~r/r r')rr,rr|r|rtest_default_fill_value_voids z.TestFillingValues.test_default_fill_value_voidcCstgddd}|gd}t|j|jdtfdg}tddtd fg|d }d |_t|jd d gt|djd t|djd d|_t|jdt|djdt|djdtgd}d |_tt |jj tt|jd t|jtd dS)Nrrr)rrrrrr)rr)rrrrrp8@s999r)r1r)r1rr1r)rrr-) rKr _fill_valuerr'rrrr}r(r~)rrZseriesmtyperr|r|rtest_fillvalues$    z TestFillingValues.test_fillvaluecCstdgdtfddtfgd}tP}|td|ddg}tt|jd|dd|dd kWdn1sx0YdS) NrrrrrzNumpy has detected)rfrrr) r'rrrrr`r rr)rrrZ subfieldsr|r|rtest_subarray_fillvalues  z)TestFillingValues.test_subarray_fillvaluecCs8tjjj}dtfddtfg}tjtdtdtdf|d}t|d||dtd fg}tjtdfdtfgd |}t|d||tjd dtfgd |}t|d||t d }tjtdtdtdfd d |}|d|}t||tjd d d |}t|d||t |}t|dj j ddS)Nrrrrrrrrr?r5rzint, float, floatrYr)r}rr rrrr'r/r rr~rKrr)rrrrrMr|r|rtest_fillvalue_exotic_dtypesB        z-TestFillingValues.test_fillvalue_exotic_dtypecCsndD]d}td|}ttd|d}tj||td|}ttd|d}tj||qdS)N) asfsZpsnsusmsrrhDWrYZNaTz logical_and logical_or logical_xorr)err_msg) r umathAttributeError fromnumericrrr rZninr r8rr)rrZufmfargsurmrr|r|rtest_testUfuncRegression s z#TestUfuncs.test_testUfuncRegressioncCsl|jd}tt|dd tt|ddtt|dddddtt|dddtt|t dS)NrrKr) rr rrpr rtrfrrrrjr|r|r test_reduce s  zTestUfuncs.test_reducecCstdddd}t|dk|}t||t|dt|d|dt|dgdt|ddjt|ddjdS)Nr rrrr)rrr>r)r rkrVr rWrZr r)rramaskr|r|r test_minmax szTestUfuncs.test_minmaxcCsltgdgdd}t|}tdddtddggdd}t||t|j|jtt|jt dS) Nrmrrrrrrrrrrr)rKr}rrr rr rr)rrrrr|r|rtest_ndarray_mask s  zTestUfuncs.test_ndarray_maskcstddgddgdtttjdtttjdGfddd}|}t|d kt|d kGd d d }|}t|tutt t |d kt |tut|dkt|d kt|dkdS)Nrrrrrr3cs&eZdZjdZddZddZdS)z.MyClassrcSsdS)NMy mulr|rotherr|r|r__mul__ szDTestUfuncs.test_treatment_of_NotImplemented..MyClass.__mul__cSsdS)NMy rmulr|rr|r|r__rmul__ szETestUfuncs.test_treatment_of_NotImplemented..MyClass.__rmul__N)rrr__array_priority__rrr|rr|rMyClass s rrrc@s,eZdZdZddZddZddZeZdS) z=TestUfuncs.test_treatment_of_NotImplemented..MyClass2dcSsdS)NMe2mulr|rr|r|rr szETestUfuncs.test_treatment_of_NotImplemented..MyClass2.__mul__cSsdS)NMe2rmulr|rr|r|rr szFTestUfuncs.test_treatment_of_NotImplemented..MyClass2.__rmul__cSsdS)NMe2rdivr|rr|r|r__rdiv__ szFTestUfuncs.test_treatment_of_NotImplemented..MyClass2.__rdiv__N)rrrrrrr __rtruediv__r|r|r|rMyClass2 s rrrr) rKrr rtmultruedivr rNotImplementedrr^rd __truediv__)rrmerZme_toor|rr test_treatment_of_NotImplemented s z+TestUfuncs.test_treatment_of_NotImplementedcCstjjdtjgddgd}txtdt|t|d|dkt |t |t |t |t |t|t|dt|dWdn1s0YdS)Nrrrrerrorr)r}rr'r$warningscatch_warningsfilterwarningsr6rrrrErvr$r!r"r1rr+r|r|rtest_no_masked_nan_warnings s    z&TestUfuncs.test_no_masked_nan_warningsN) rrrrrrrrrrrr|r|r|rr s   +rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Zd;d<Z d=S)> TestMaskedArrayInPlaceArithmeticcCstd}td}td}t|d<|||f|_|t|t|tf|_tjdtjd|_dd|jD|_|tj |tj |tj f|_ dS)NrrZ AllIntegerZAllFloatcSsg|]}t|jqSr|r}r~r7rrr|r|rr# rzATestMaskedArrayInPlaceArithmetic.setup_method..) r rJintdatarr floatdatar} typecodes othertypesuint8 uint8datarrrrr|r|rr s    z-TestMaskedArrayInPlaceArithmetic.setup_methodcCs|j\}}}t|d<|d7}t||d|d7}t||d|j\}}}|jjj}|d7}t||jjjkt||ddS)Nrrr)rrJr rrrMr )rrrrrZid1r|r|rtest_inplace_addition_scalar* s   z=TestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalarcCsl|j\}}}|j}tdtjd}t|d<||7}||7}t|||t|||t|jt||jdSNrrr)rrr r}int16rJr rIrrrrrrr|r|rtest_inplace_addition_array9 s z@r)rg?rrr!rr|r|rtest_datafriendly_div s z6TestMaskedArrayInPlaceArithmetic.test_datafriendly_divcCshtgdgdd}|d}t|jgdt|jgd|dC}t|jgdt|jgddS)Nr%r"rr)r;f@r)rr2rr!rr|r|rtest_datafriendly_pow sz6TestMaskedArrayInPlaceArithmetic.test_datafriendly_powcCstddgddgg}tddgddgd}||7}t|ddgddgg|jturht|jddgddggtddgddgg}tddgddgd}||7}t|ddgddggt|jddgddggdS)Nrrrrrrr'r rr`rr|r|rtest_datafriendly_add_arrays s z=TestMaskedArrayInPlaceArithmetic.test_datafriendly_add_arrayscCstddgddgg}tddgddgd}||8}t|ddgddgg|jturht|jddgddggtddgddgg}tddgddgd}||8}t|ddgddggt|jddgddggdS)Nrrrrrr4rr|r|rtest_datafriendly_sub_arrays s z=TestMaskedArrayInPlaceArithmetic.test_datafriendly_sub_arrayscCstddgddgg}tddgddgd}||9}t|ddgddgg|jturht|jddgddggtddgddgg}tddgddgd}||9}t|ddgddggt|jddgddggdS)Nrrrrr4rr|r|rtest_datafriendly_mul_arrays# s z=TestMaskedArrayInPlaceArithmetic.test_datafriendly_mul_arraysc s|jD]txtdfdd|jD\}}}t|d<|d7}t||d|d7}t||dWdq1s0YqdS)Nrc3s|]}|VqdSrrrrr|r 6 rzUTestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar_type..rr)rrrrrrJr rr|r9r!test_inplace_addition_scalar_type1 s     zBTestMaskedArrayInPlaceArithmetic.test_inplace_addition_scalar_typec s|jD]ttdfdd|jD\}}}|j}tdd}t|d<||7}||7}t|||t|||t|jt ||jWdq1s0YqdS)Nrc3s|]}|VqdSrr8rr9r|rr:B rzTTestMaskedArrayInPlaceArithmetic.test_inplace_addition_array_type..rrr rrrrrrr rJr rIr!r|r9r test_inplace_addition_array_type= s    zATestMaskedArrayInPlaceArithmetic.test_inplace_addition_array_typec s|jD]tptdfdd|jD\}}}|d8}t||d|d8}t||dWdq1s0YqdS)Nrc3s|]}|VqdSrr8rr9r|rr:Q rzXTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalar_type..rrrrrrr rr|r9r$test_inplace_subtraction_scalar_typeL s     zETestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_scalar_typec s|jD]ttdfdd|jD\}}}|j}tdd}t|d<||8}||8}t|||t|||t|jt ||jWdq1s0YqdS)Nrc3s|]}|VqdSrr8rr9r|rr:\ rzWTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_array_type..rrrr<r!r|r9r#test_inplace_subtraction_array_typeW s    zDTestMaskedArrayInPlaceArithmetic.test_inplace_subtraction_array_typec s|jD]tptdfdd|jD\}}}|d9}t||d|d9}t||dWdq1s0YqdS)Nrc3s|]}|VqdSrr8rr9r|rr:k rz[TestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalar_type..rr>rr|r9r'test_inplace_multiplication_scalar_typef s     zHTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_scalar_typec s|jD]ttdfdd|jD\}}}|j}tdd}t|d<||9}||9}t|||t|||t|jt ||jWdq1s0YqdS)Nrc3s|]}|VqdSrr8rr9r|rr:v rzZTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_array_type..rrrr<r!r|r9r&test_inplace_multiplication_array_typeq s    zGTestMaskedArrayInPlaceArithmetic.test_inplace_multiplication_array_typec sddtjdD}|jD]ttdfdd|jD\}}}tddd }tddd }t|d <z0|d }|d }t ||t ||Wn.t yd d }|vsJ|Yn0Wdq1s0YqdS) NcSsh|]}t|jqSr|rrrr|r|r rz[TestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_type..Complexrc3s|]}|VqdSrr8rr9r|rr: rz[TestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_type..rrrSupported type  throwing TypeError) r}rrrrrrr rJr r )r unsupportedrrrmsgr|r9r'test_inplace_floor_division_scalar_type s         zHTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_scalar_typec s ddtjdD}|jD]ttdfdd|jD\}}}|j}tdd}t |d <zR||}||}t |||t |||t |jt t ||j|d kWn.t yd d }|vsJ|Yn0Wdq1s0YqdS) NcSsh|]}t|jqSr|rrCr|r|rrD rzZTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_type..rErc3s|]}|VqdSrr8rr9r|rr: rzZTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_type..rrrrrFrG) r}rrrrrrrr rJr rIr )rrHrrrrrrIr|r9r&test_inplace_floor_division_array_type s(      zGTestMaskedArrayInPlaceArithmetic.test_inplace_floor_division_array_typec s|jD]ttV}|tfdd|jD\}}}tddd}tddd}t|d<z|d}t||Wn:tt fy}zt j t |ddWYd}~n d}~00z|d}t||Wn<tt fy}zt j t |ddWYd}~n d}~00t tjrBtt|jddd ntt|jd dd Wdq1sr0YqdS) Nc3s|]}|VqdSrr8rr9r|rr: rzUTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_type..rrrr stacklevelFailed on type=.r)rrrecordrrr rJr DeprecationWarningr rwarnr issubclassr}integerrrE)rrrrrer|r9r!test_inplace_division_scalar_type s(     ( (zBTestMaskedArrayInPlaceArithmetic.test_inplace_division_scalar_typec s|jD]tb}|tfdd|jD\}}}|j}tdd}t|d<z||}t|||Wn:t t fy}zt j t |ddWYd}~n d}~00z<||}t|||t|jtt||j|dkWn<t t fy"}zt j t |ddWYd}~n d}~00ttjrNtt|jd d d ntt|jdd d Wdq1s~0YqdS) Nc3s|]}|VqdSrr8rr9r|rr: rzTTestMaskedArrayInPlaceArithmetic.test_inplace_division_array_type..rrrrrLrrrNrO)rrrPrrrr rJr rQr rrRrrIrSr}rTrrE)rrrrrrrrUr|r9r test_inplace_division_array_type s0     ((zATestMaskedArrayInPlaceArithmetic.test_inplace_division_array_typec Cs|jD]}ttdtgdgd|d}||d}tgdgd|d}t|j|jt|j|j||dC}t|j|jt|j|jWdq1s0YqdS)Nrrr"rrr,)rrrrr'r rr)rrrrZxx_rr|r|rtest_inplace_pow_type s     z6TestMaskedArrayInPlaceArithmetic.test_inplace_pow_typeN)!rrrrrr"r#r%r&r'r(r)r*r+r-r.r0r1r3r5r6r7r;r=r?r@rArBrJrKrVrWrXr|r|r|rr s<         $'rc@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZeddZdd Zd!d"Zd#d$Zd%d&Zejd'd(ejd)d*d+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Z d9d:Z!d;d<Z"d=d>Z#d?d@Z$dAdBZ%dCdDZ&dEdFZ'dGdHZ(dIdJZ)dKdLZ*dMdNZ+dOdPZ,dQdRZ-dSS)TTestMaskedArrayMethodsc Cstgd}|dd}|dddd}tgd}t||d}t|||jd}t|||jd}tgd}t||d} t|||jd} t|||jd} |||||||| | | f |_dSN$g @gGz.@g-!@g!@g&1?ʡE@\( @Q@{G#@Pn@h|?!@!rh@jt@J +@zGa@!rh@ʡE@-@)\(@(\B#@ +@uV @~j@g"~@gK7@ ףp=J#@Gz@Mb@}?5^#@羟/$@!rhm@-#@J +@Mb@ʡ@g-?rrr$rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr$rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr}r'rkrmr rrXXXrrmXmXXrm2xm2Xm2XXr|r|rr s   z#TestMaskedArrayMethods.setup_methodc Cs@tgd}t||jt||jt||jt||jt|ddddd|jdddddt|gd|jgdt| |j t| |j tddgddgg}t| |j t| |j t| ddg|j ddgt||jdS)Nrrrrrrr)r'r rrrargmaxargminr)compressZconjr+diagonalrtrurxrrrr|r|rtest_generic_methods* s (  z+TestMaskedArrayMethods.test_generic_methodscCstjd}|tjdd}tt||tj|d<tt|| tj|d<tt||t|}t|d<tt||ddtt||dd |d9}d|d<tt|dddtttj j gtj d}tt||dS) Nrg:0yE>rrT)rLFr) r}rrr rrDrKrJZiinfoint_rZrr|r|r test_allclose< s    z$TestMaskedArrayMethods.test_allclosecCsDtjgdgdd}t||dds&Jt||tddds@JdS)Nr3zm8[ns]rr)Zatolrr)r}r'rrrjr|r|rtest_allclose_timedeltaT sz.TestMaskedArrayMethods.test_allclose_timedeltacCs2tgdgdgdg}tjgdgdgdgtjd}t||d}|d k}|d k}t| t|t|d gd t|d gd t|d gd t|d gd t| t|t|d gdt|d gdt|d gdt|d gddS)N)gp= ף?gp= ף?g?)gQ?gQ?g)\(?)gףp= ?gףp= ?gffffff?r@rrGrrrrrrr)r}r'rrKr rrr )rrrrZmxbigZmxsmallr|r|r test_allany[ s2     z"TestMaskedArrayMethods.test_allanycCstdtd}tgddd}t|tu|j|dt|t|jdt|tutdtd}t|tu|j|dt| t|jdt|tudS)Nr|rrTrr)r3rr'r rrJrr)rstorerr|r|rtest_allany_odditiesu s        z+TestMaskedArrayMethods.test_allany_odditiesc Cs.|j\ }}}}}}}}} } t|dt|dt|dt| dt|dt|dt|dt| dt|dgdt| dgdt|dgdt| dgd t|d gd t| d gd t|d gd t| d gddS)N#rr)rrrrrr)rrrrrr)rrrrrr)rrrrrrr)rrrrrr)rrrrrr)rrrrrr)rrrrrr)rr rr) rrr}r~rrrrrrrr|r|rtest_argmax_argmin s"z)TestMaskedArrayMethods.test_argmax_argmincCsptgd}tgd}t||d}|dd}t|j|jt|j|ddt|j|jdddS)Nr[rxrrr)r}r'clipr rr)rrrrZclippedr|r|r test_clip s  z TestMaskedArrayMethods.test_clipcCsJtd}tjj|ddgdd}|jdd|dt|jddgddS)Nrrrrrr)r}r rrrr rrr|r|r test_clip_out s z$TestMaskedArrayMethods.test_clip_outcCsztgddd}|dk|dk@}t||ddgt|dd g<||}t|jddgt|jd d gt|jdt||||d k}||}t|jgd t|jgdt|jdt|||tgdgdggdgdgd}||dk}t|jgdt|jgdt gd}|j|dkd d}t|jddgddggt|jd d gd d ggdS)Nri'rr. @rrrrrrrr%r"rrrcr=rr)rrrcr=r)rrrrKrrrr=) rKr rrJrrrrir}r')rr conditionrrr|r|r test_compress s2     z$TestMaskedArrayMethods.test_compresscCsHtgdgdd}|}t||t|d<|}t|gddS)Nr3rrrrrrr)r' compressedr rJrr|r|rtest_compressed s  z&TestMaskedArrayMethods.test_compressedcCsdtfdtfdg}tgd|d}tt|jt|t|}t|j|jt|j|jt t||d}t|j|jt|j|jtgdgdd}t|}t t |j |j  |t}t t |j |j dS Nrrr))rrz1.1)rrz2.2)rrz3.3rrrXr)rrrKr rrrr4rmr3r r}rrr}rdatatyperrr|r|r test_empty s  z!TestMaskedArrayMethods.test_emptycCsdtfdtfdg}tgd|d}tt|jt|tt||d}t|j|jt|j|jt |}t|j|jt|j|jtgdgdd}t |}t t |j |j  |}t t |j |j dSr)rrrKr rrrrzrmr{r r}rrr}rr|r|r test_zeros s z!TestMaskedArrayMethods.test_zeroscCsdtfdtfdg}tgd|d}tt|jt|tt||d}t|j|jt|j|jt |}t|j|jt|j|jtgdgdd}t |}t t |j |j  |}t t |j |j dSr)rrrKr rrrrbrmrcr r}rrr}rr|r|r test_ones s z TestMaskedArrayMethods.test_onescCstd}gd}t|}t||d}t|dtut|dtuddg|ddg<t|dtut|dtut|gd ttdgd d d}gd }||gd t|tgdt|j gd||tgd gdt |gdt|j gdttdgd d d}t||gd t|tgdt|j gdt||tgd gdt |gdt|j gddS)Nrr|rrrrrr)rrrrrrr)rrrr)rrrr) rrrrrrrr>rr1) rrrrrrrrrr)rrrr) rrrrrrrr>rr1) rrrrrrrrrr) r rGr'r rJr rKrgr(rr )rrrNrrrr|r|rtest_put s2 zTestMaskedArrayMethods.test_putcCstd}tddgddgd}|ddg|t|d tut|d d t|dtut|dd t|dtut|d tut|d d dS) NrrrFTrrrrr)rzr'rgr rJr )rrrr|r|rtest_put_nomask? sz&TestMaskedArrayMethods.test_put_nomaskcCsTtd}gd}t|}t|d|ddd}|gdgdt|jgddS) Nrr|rTr)rrrrrr()rrrrr)r rGr'rgr rrr|r|rtest_put_hardmaskM s z(TestMaskedArrayMethods.test_put_hardmaskcCs$tdd}t|gdd}gd}|}t||dt|gd|}t||dt|jgdt|jgdtgd gd d}|}t|||t|jgd t|jgd |}t|||t|jgd t|jgd |}|t|||t|gd dS)Nrr)rrrrrrr)rrrrrrr2)rrr2rrr2)rrrrrr)rrdrrrcr=)rrrrrr)rrrrrr=)rrrrrr)rrrrrr)r r'rrhr rrr)rrrrrZmxxvaluesr|r|r test_putmaskV s.      z#TestMaskedArrayMethods.test_putmaskcCstgdggdgd}|}t|jj|jtddgddgd}|}t|jj|jtgdgddd }t|jgdd |_d |_|}t|jgdt|jgdt|jd t|jd d gdt|jdd gddS)Nr(rrrrrrrrr3rFr&r?rrr)rrrr)r'rir rrmrr)rrZaravelarr|r|r test_ravelt s  z!TestMaskedArrayMethods.test_ravelrZAKCF data_orderZCFcCstjd|d}d|dddf<tjdt|dj}d|dddf<t||d}|jjj|jjjksdJ| ddk szJ| |}| ddk sJt | || |jdS)N)rrrr)rr)r~rFr) r}rbrrr'rrZfncrr8rrir )rrrarrrrZraveledr|r|rtest_ravel_order s  z'TestMaskedArrayMethods.test_ravel_ordercCsTtd}t|d<|dd}t|jdt|jjdt|jdt|jjddS)Nrrrr?r)r rJrkr rmrrr|r|r test_reshape s   z#TestMaskedArrayMethods.test_reshapecCstgdgdtjd}t|}t|jgdt|jgdt|dd}t|jgdt|jgd |t|jgdt|jgdtgdgdtjd}|jddt|jgdt|jgd gd}t|}ttt t  tgd t tj d}t|dd}t|jgd tgd gd tj d}t|dd}t|jgd t|jgdtddgtj d}t|dd}t|tddgtj ddS)Nrrrrrrr3rrrrFr/)rrrrr)rrrr)rrrrrrrrrr)rrrrrrrrrrrrrstablekind) r'r}rrqr rrr rsortedrr`ri)rrsortedxr|r|r test_sort s6     z TestMaskedArrayMethods.test_sortcCs8tgdtjd}tgd}t|dd}t||dS)N)rrrrrrr)rrrrrrrr)r'r}rr&r )rrrZcomputedr|r|rtest_stable_sort s  z'TestMaskedArrayMethods.test_stable_sortc Cstgdgdtjd}ttddtddtddtddd tddd fD]D}t|fi|}|t|fi|}t|j|jt|j|jqLdS) NrrrTr/Frr)rr0) r'r}rdictrqr&r rr)rrkwargsrZ argsortedxr|r|rtest_argsort_matches_sort s  z0TestMaskedArrayMethods.test_argsort_matches_sortcCstgdgdg}|dt|gdgdgtgdgdg}|dt|gdgdgtgdgdggd gd gd }|dt|gdgdgt|jgd gd gtgdgdggd gd gd }|dt|gdgdgt|jgd gd gtgdgdgdggdgdgdggdgdgdggdgdgdgg}t||ddk<|}|d}|d|dt|||}|d}|d|dt|||}|d}|d|dt||dS)N)rrr)rrr1rr2)rrr1r)rrr)rrr1rr"rrYrrcrUrrr2r)rKrqr rrJrr8)rramZanr|r|r test_sort_2d sF  $ $            z#TestMaskedArrayMethods.test_sort_2dcCstgdgddtfdtfgd}tgdgddtfdtfgd}tgdgd dtfdtfgd}t|}t||t|j|jt|d d }t||t|j|jtd td fg}||}t|}t|d d }dS)N)r?rLr?rrrrer)rrrrrrrrrr)rerrr?r?rLr)rrrrrrr)rrerrr?rLr?)rrrrrrrFr/rr)r'rrqr rr}r~r})rrZ mask_lastZ mask_firstrr,r|r|rtest_sort_flexibles2    z)TestMaskedArrayMethods.test_sort_flexiblecCs,tgdgdd}tt|t|dS)N)rrrrr)rrrrrr)r'r r}r&rjr|r|r test_argsort'sz#TestMaskedArrayMethods.test_argsortcCstgdg}t|gdtgdggdgd}t|gdt|jgdtdgg}|}t|dd|d<t|ddtdggdd}|}t|tjjut|j dd|d<t|dddS) Nrrrrr.rT) rKr squeezerr}r'r rrJr)rrrZarr_sqm_arrZm_arr_sqr|r|r test_squeeze,s   z#TestMaskedArrayMethods.test_squeezecCstgd}tgd}t||ddd}|dddd}|dd}t|d |ddd f|dd}t|jd dS) Nr[rxrrrrrrr)rrrr)r}r'rkswapaxesr rm)rrrrrZ mXswappedZ mXXswappedr|r|r test_swapaxesCs  z$TestMaskedArrayMethods.test_swapaxescCsLtgdgd}t|gdtgdgdt|gd|gdt|ddgddggtdd gdd ggddgddggt|dtjjut|dtjjutgd gd ggdgd gd }t|jddgddtddgddggddgddggd tt|ddgddtddgddggddgddggd dS)N)rrdrrr.)rrr)rrrr"rrrrdrrrrrrKrrr=)rKr rur r}rrJr'rr|r|r test_takeZs" $""z TestMaskedArrayMethods.test_takecCs*td}tddddftddddf}t||t|kd}t||dd}tgdgdgd gd gd g}t||t||}tgdgdgd gd gd g}t|d<|d<|d<t||t|j|jtddd}t||}t|d<|d<t||t|j|jdS)N)rr %r1rrrrrmode)rr r)r rr1)rr1r)r1rr)rrr)r1rr)rrrrL)rrrrrrr)r}r'r rrur rJr)rrindicesZmindicesrctrlr|r|rtest_take_masked_indicesls4 ,      z/TestMaskedArrayMethods.test_take_masked_indicescCsTttd}t|ddg<|}t|ddut|ddud|_|}gdgdgdg}t|dgdt|dgdt|d gdt||ttt gd gd gd d t fdt fdgd}t|d<t|gdtddgddgd t fdt fgd}|}t|ddgddgg|d}|}t|ddgdS)Nrrrr)rNrr)rrrr>)rr1N rrr)rrr)rrrrrrrr))rrsone)rrtwo)NNNrrrrrr) r'r}r rJtolistr rmr rrrr)rrZxlistrrrr|r|r test_tolists<   z"TestMaskedArrayMethods.test_tolistcCs~tddgdtfdtfgd}|D]$}|D]}tt|tj q,q d|jd<|D]$}|D]}tt|tj q`qTdS)Nrrrrrr)r'rrr rr}Zgenericr)rrentryrr|r|rtest_tolist_specialcases   z.TestMaskedArrayMethods.test_tolist_specialcasecCsLtd}|}t|d|jt|d|jt|gd<|}t|d|jt|d|jdtfddtfg}tdd t t dd t j dD|d }t|gd<|}t|d|jt|d|jt d }td d t t dt j dt j dD|d }t|gd<|}t|d|jt|d|jdS)Nrrr)rrrrrrrcSsg|]\}}}|||fqSr|r|)rrrrr|r|rrrz6TestMaskedArrayMethods.test_toflex..Z ABCDEFGHIJKLMrrcSsg|]\}}}|||fqSr|r|)rrrffr|r|rrr)r toflexr rrrJrrr'rr}rrr~r)rrrPrr|r|r test_toflexs<       z"TestMaskedArrayMethods.test_toflexcCstgd}t|}t||t|j|jtgdgdd}t|}t||t|j|jtgdgddtfdtfgd}t|}t||t|j|jdS) Nrr"r)rr)rr)rrrrrr)r'r;rr rrrrrr|r|r test_fromflexs       z$TestMaskedArrayMethods.test_fromflexcCsrtgdggdd}tdgdgdgdgdgggdd}t|j|t||tt|jd |d dS) Nr(rIrrrrrrr)rKr rrxrcumsum)rZmarrayrr|r|rtest_arraymethods z'TestMaskedArrayMethods.test_arraymethodcCs4tjjddd}t|jj|jt|jj|jdS)N*Tr)r}rr'r rrrrr|r|rtest_arraymethod_0dsz*TestMaskedArrayMethods.test_arraymethod_0dcCsbtjgdgdg}tjj|d<|j}d|d<tjj|d<t|j|jjt|j|jjdS)NrrUrrr)r}rr'rJrr rr)rrZxtr|r|rtest_transpose_views  z*TestMaskedArrayMethods.test_transpose_viewcCs`tjd}d|d<tjj|d<d|d<|}d|d<t|j|jt|j|jdS)Nr?rrrerdr?r)r}rrzrJrr rr)rrZxdr|r|rtest_diagonal_view s  z)TestMaskedArrayMethods.test_diagonal_viewN).rrrrrrrrrrrrrrrrrrrrrrrrrprqrrrrrrrrrrrrrrrrrrrrr|r|r|rrY sT        %( $   rYc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZedd Zd!d"Zd#d$Zd%d&Zed'd(d)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3S)4TestMaskedArrayMathMethodsc Cstgd}|dd}|dddd}tgd}t||d}t|||jd}t|||jd}tgd}t||d} t|||jd} t|||jd} |||||||| | | f |_dSrZr{r|r|r|rrs   z'TestMaskedArrayMathMethods.setup_methodc Cs|j\ }}}}}}}}} } |d} t| j|dd|d} t| j|dd|d} t| j|dd|d} t| j|dddSNrr)rrr rr8cumprod) rrr}r~rrrrrrrZmXcpr|r|rtest_cumsumprod6s    z*TestMaskedArrayMathMethods.test_cumsumprodcCsttjddddd}t|dddf<|d<|d<dD]}tt|}t||}tjdtd }| d ||d|d }t ||ut ||d|d tdt d }|d|d }t ||uq@dS) Nrrrrrr)rrrrrrr:)rrrrr;r<rr|r|rtest_cumsumprod_with_outputCs       z6TestMaskedArrayMathMethods.test_cumsumprod_with_outputc Cs|j\ }}}}}}}}} } |j\} }t|t|t| t} t|t} t|D]"}t|dd|f| |<q\t| D]}t||| |<qt|d| t|d| dSr) rrmr rr}rrzrrs)rrr}r~rrrrrrrrNrowscolskr|r|rtest_ptpXs      z#TestMaskedArrayMathMethods.test_ptpcCs>tddgddgtd}|d}t|ddt|jddS)Nrrrrrrbx)rKr)r r rrr|r|rtest_add_objectfsz*TestMaskedArrayMathMethods.test_add_objectcCsVtgdgdtd}t|dtgdgdgtd}t|jddgd dS) NrrrrrUrrrKrr>r1)rKr)r rtrjr|r|rtest_sum_objectlsz*TestMaskedArrayMathMethods.test_sum_objectcCsVtgdgdtd}t|dtgdgdgtd}t|jddgd dS) NrrrrrUrrrKrrr )rKr)r rrjr|r|rtest_prod_objectssz+TestMaskedArrayMathMethods.test_prod_objectcCs4tgdtd}t|dt|gddS)Nrrr)rrr)rKr)r r9rrjr|r|rtest_meananom_objectzsz/TestMaskedArrayMathMethods.test_meananom_objectcCsNtgd}t|j|jd|_t|j|jttj|dS)NrT) rKr rrmrr r}rZ is_maskedrjr|r|rtest_anom_shapes  z*TestMaskedArrayMathMethods.test_anom_shapecCsttdddd}t|gdgdgt|jddgd gd gt|jddgd gd ggd gd g|_d}t||dd|gd|dggt|jdd|dd|gd|dggt|jdd|dd|gd|dggdS)Nrr>rr)gr)rr.rrrK)rrr)r.r.r.)rrrr"r rggg?g@rrr.rrrr)rKr}r rkrrrr8)rrZmvalr|r|r test_anoms*  z$TestMaskedArrayMathMethods.test_anomc Cs|j\ }}}}}}}}} } |} t||t||t| j|ddtt||t d ddd} tj | d} t| jddd| jddddS) NrrK rrFr)Zaxis1Zaxis2) rrr tracerrtrrr}r rkrrK)rrr}r~rrrrrrrZmXdiagrrr|r|r test_tracesz%TestMaskedArrayMathMethods.test_tracec Cs|j\ }}}}}}}}} } |d} ||} t| d| | t| jtu|d} ||} t| d| | t| jdt| }|j||dt| ||dd}|d|d}}||} t| d||t| }|j||dt| |dS)Nrrrrr) rr8dotrr rr`r4r)rrr}r~rrrrrrrZfxrZfXrQZmYYZfXXZfYYr|r|rtest_dots&       z#TestMaskedArrayMathMethods.test_dotcCstddgddggddgddggd}tddgddggddgddggd}tddgddgg}|j||dt|dddgdd ggt|jddgddggdS) Nrrrrrrrr)rKrrr8rrr|r|rtest_dot_shape_mismatchs $$z2TestMaskedArrayMathMethods.test_dot_shape_mismatchcCstgddd}tgddd}tt|tjtt|tj||ktdusfJttd ddd}t ddd}tt|jd d t tt|jd d t t |jd |d |ut |jd |d |udS) Nr3rrTrrArrrrKr) r'r r7r9r}rr7rr rkr3rr )rZfoobarr|r|rtest_varmean_nomasks z.TestMaskedArrayMathMethods.test_varmean_nomaskc Cs|j\ }}}}}}}}} } t|jdd|t|jdd|t|jddd|jddt|jddd|jddt|jddj|jddjt|j|j|jdd|jdd} } t|jddd|jddt|jddd|jddtdD]j} t| | || t| | |dd| ftt | | |dd| fq$dS) NrKrrLddofrrrrr rrr7rr8r rmrsr}rrrrr}r~rrrrrrrZmXvar0ZmXvar1rr|r|r test_varstds0 "z&TestMaskedArrayMathMethods.test_varstdcCsNtjdtd}tdtd}ttddd}dD]v}t||}t|tut|dtut|dtu||dt|tut|jd||dtt |q.ttddd}d |d<dD]}t||}t|d d tut|dd d tut|dd d tu||d d t|tut|jd||d d tt |qdS) NrrrTr)r7r8rrr1rr)rr) r}r'rr r r rJr rr)rrZmoutr methodnamemethodr|r|rtest_varstd_specialcasess2           z3TestMaskedArrayMathMethods.test_varstd_specialcasescCstgdgdggdgdgd}|jddd}t|dgdt|jgd|jddd}t|dgdt|jgd|jddd}t|dgdt|jgd dS) Nrr"rrrrYrrr)r'r8r r8rrr|r|rtest_varstd_ddofs$z+TestMaskedArrayMathMethods.test_varstd_ddofcCstdd}t|d<t|}t|gdt|}t|gdt|jgdt|}tgdgdgdggdgdgdgd }t||dS) Nr1r?re)rrrr rY)rrr)rrrr)r rkrJr}r0r rr')rrrrr|r|r test_diags z$TestMaskedArrayMathMethods.test_diagcCstgdgdg}t|dgdt|dddgt|dddgt|dgd t|ddd gt|ddd gt|dgdt|ddd gt|ddd gt|dgdt|dd dgt|dd dgdS) NrrUrrrrrrrxrr)r'r rtrrZrWrjr|r|rtest_axis_methods_nomask+sz3TestMaskedArrayMathMethods.test_axis_methods_nomaskiZb)Z free_bytescCs2ttjddtjdtdd}t|ddS)N)'rirrg@)rKr}rZuint16rzr r9rjr|r|rtest_mean_overflow?sz-TestMaskedArrayMathMethods.test_mean_overflowcCstgd}tjj|dddd}tjj|dddd}tjj||dd}tjj|dd}tjj|dd}ttj||dS)NrrrrrrrrrrrGr)prependrLrKr}r'rrLdiffr r)rrrZa_prepdiff1rdiff2r|r|rtest_diff_with_prependGsz1TestMaskedArrayMathMethods.test_diff_with_prependcCstgd}tjj|dddd}tjj|dddd}tjj||dd}tjj|dd}tjj|dd}ttj||dS)Nrrrrr)appendrLrKr)rrrZa_apprrrr|r|rtest_diff_with_appendTsz0TestMaskedArrayMathMethods.test_diff_with_appendcCsDtjtdd"tjtdWdn1s60YdS)Nz4diff requires input that is at least one dimensionalrr)rrrr}rrr'rr|r|rtest_diff_with_dim_0as z/TestMaskedArrayMathMethods.test_diff_with_dim_0cCs<tjjgddd}tjj|ddd}ttj||dS)Nrrrr)rNrL)r}rrLrr r)rrrr|r|rtest_diff_with_n_0hsz-TestMaskedArrayMathMethods.test_diff_with_n_0N)rrrrrrrrrrrrrrrrrrrr r r r rrrrrrr|r|r|rrs4    "    rc@seZdZddZddZdS)!TestMaskedArrayMathMethodsComplexc Cstgd}|dd}|dddd}tgd}t||d}t|||jd}t|||jd}tgd}t||d} t|||jd} t|||jd} |||||||| | | f |_dS)N)$y @yGz.@y-!@y!@y&1?r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmy"~@yK7@rnrorprqrrrsrtrurvrwy-?rrrrxryrzr{r|r|r|rrqs   z.TestMaskedArrayMathMethodsComplex.setup_methodc CsR|j\ }}}}}}}}} } t|jdd|t|jdd|t|jddj|jddjt|j|j|jdd|jdd} } t|jddd|jddt|jddd|jddtdD]h} t| | || t| | |dd| ftt | | |dd| fqdS) NrKrrrrrrrrrr|r|rrs$ "z-TestMaskedArrayMathMethodsComplex.test_varstdN)rrrrrr|r|r|rros rc@s^eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zejjed!d"d#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Z ej!d7d8d9gd:d;Z"dd?Z$d@dAZ%dBdCZ&dDdEZ'dFdGZ(dHdIZ)dJdKZ*dLdMZ+dNdOZ,dPdQZ-dRS)STestMaskedArrayFunctionscCsttddddtddddddddg }tgd }gd }gd }t||d }t||d }|d ||f|_dS)Nrrrrrrrrrrrrr)r}r'rrKrr)rrrrrrrr|r|rrs&   z%TestMaskedArrayFunctions.setup_methodcCs2ddg}td|}t|ddgt|dddS)NrrF)rVr rr|r|rtest_masked_where_bools z/TestMaskedArrayFunctions.test_masked_where_boolcCsTgd}t|d}t||t|jgdt|d}t||t|jgddS)Nrrr"r)rLr rrRrzr|r|rtest_masked_equal_wlists    z0TestMaskedArrayFunctions.test_masked_equal_wlistcCs2gd}t|d}t|jgdt|jddS)Nrrr")rLr rrrzr|r|rtest_masked_equal_fill_values z5TestMaskedArrayFunctions.test_masked_equal_fill_valuecCstgd}t|d<ttt|d|t|dttt|d|t|dttt|d|t |dttt |d|t |dttt |d|t |dttt|d|t|dttt |d|t |dttgdgdgddS)Nrrrr()r2r2rrr)r'rJr rVr>rMr?rNrCrPrDrQrarRr5rLrr|r|rtest_masked_where_conditions  z4TestMaskedArrayFunctions.test_masked_where_conditioncCs0tdtd}t|jt}t||}t||dS)N)rrrr)rbrrzrmrrVr )rrrZctestr|r|rtest_masked_where_odditiess   z3TestMaskedArrayFunctions.test_masked_where_odditiescCsXtd}tttd|Wdn1s00Yt|d}t|jgddS)Nrr) rrrrrrrrrr)r r IndexErrorrLr rrr|r|r"test_masked_where_shape_constraints  ( z;TestMaskedArrayFunctions.test_masked_where_shape_constraintcCstjdddgd}tjdd&tj|ddk|}Wdn1sJ0Yt|jjj|jjt|dtj tdt ddS) Nr)rzr1)r rJryr r~r rr|r|rtest_where_with_masked_choices$   z6TestMaskedArrayFunctions.test_where_with_masked_choicecCsNtgd}tgd}t|d<t||| }t|gdt|d<t||| }t|gdt|dtut|dtut|dtutdd}t|d<tddd }t|d<tgdgd d }|d}t|||}t|||}t||tt|tut|gd t|td}t|gd t|dt}t|gddS)Nrrrrrrrrrrr)rrrrrc)r2r2r2rr)r2rrr2r2) r'rJryr r r r8r<r`)rrrrrcmrr|r|r test_where_with_masked_conditions4         z9TestMaskedArrayFunctions.test_where_with_masked_conditioncCsTtjdtjd}tjdtjdd}t|dk||j}ttjtj}t||dS)Nrrrr.)r}r rrEryr~Z result_typer )rrrrrr|r|rtest_where_types z(TestMaskedArrayFunctions.test_where_typecCsZtddd}td}tgd||}tgd||}t||t|j|jdS)Nr1rr)r}r rkrzryr r~)rrrr rr|r|rtest_where_broadcasts   z-TestMaskedArrayFunctions.test_where_broadcastcCsvtdtfdtfg}tjgd|d}tjd|d}tgd||}tgd||}t||t|j|jdS)Nrrrrrr)rrdr3)r}r~rr'ryr )rr,rrr rr|r|rtest_where_structureds z.TestMaskedArrayFunctions.test_where_structuredcCsptdtfdtfg}tjgd|d}tgd|t}tgd|}t|j|jt||t|j|jdS)NrrrErr3r) r}r~rr'ryrJrVr r)rr,rrrr|r|rtest_where_structured_maskeds z5TestMaskedArrayFunctions.test_where_structured_maskedcCs`tjdtd}tj|d<tj|d<tjtddtj |Wdn1sR0YdS)Nrrrrz!not supported for the input typesr) r}r r)rDr$rrr rmasked_invalidrjr|r|rtest_masked_invalid_errors  z2TestMaskedArrayFunctions.test_masked_invalid_errorcCsDGddd}tj|}t|jt|t|jgddS)Nc@seZdZdZdddZdS)zCTestMaskedArrayFunctions.test_masked_invalid_pandas..SeriesZnonsenseNcSstdtjtjgSr,)r}r'r$rD)rr~rr|r|r __array__szMTestMaskedArrayFunctions.test_masked_invalid_pandas..Series.__array__)NN)rrrrrJr|r|r|rSeriessrK)FTT)r}rrHr rr'r)rrKrr|r|rtest_masked_invalid_pandassz3TestMaskedArrayFunctions.test_masked_invalid_pandasrTFcCsftjgd}|jtusJtjj||d}|jtus  $z-TestMaskedArrayFunctions.test_make_mask_descrc Csddg}t|}t|jtt|ddgtjddgtd}t|}t|jtt|ddgdtfdtfg}tjddg|d}t|}t|jtt|ddgdtfdtfg}tjddg|d}t||jd}t|j|t||dtfdtfg}dtfdtfg}tjddg|d}t||jd}t|j|t|tjddg|dtjdd dd }tt |tj t||jd}t||t||utjdd dd }t||jd}t||d d g}ttg}d}t |||D]4\} } } tt | | | d} t| t u|| | | fqdS)Nrrrrrrrr|z?,?r|rTFzcopy=%s, shrink=%s, dtype=%s)rr'r~)rGr r~rr}r'rrr rvoid itertoolsrfr`) rrrmdtypeZbdtypeZtest2ZboolsZdtypesZ msgformatZcpyZshrr,rr|r|rtest_make_masksL         z'TestMaskedArrayFunctions.test_make_maskc Cs@dtfdtfg}tjgd|d}t|t}t||tt|}t||t|d}t||tjgd|d}t||}tjgd|d}t||dtfd tfg}tjgd|d}zt||}WntyYn0dtfdd tfd tfgfg}tjd d g|d}tjd dg|d} tjdd g|d} tt|| | dS)Nrr)rrrrrF)rrrr)rrrerrrrrrrrrr)rr}r'rIr`r r) rrrrrrZ othertyper~rZbmaskZcntrlr|r|r test_mask_ors.         z%TestMaskedArrayFunctions.test_mask_orcCstjgdtd}tt||tjddgdtfdtfgd}t|}tjgdtd}t||dtfddtfd tfgfg}d d g}tj||d}t|}tjgd td}t||dS) Nr"rrrrrrrrrdr)rrrrrr)r}r'rr r7)rrrrrbrr|r|rtest_flatten_masks z*TestMaskedArrayFunctions.test_flatten_maskcCsPtgd}t|dd}t|}t||t|d}t||dddS)Nr3Frr?r)r}r'rr rk)rrrrr|r|rtest_on_ndarrays   z(TestMaskedArrayFunctions.test_on_ndarraycCsrtd}d|_tgd}|gd}tjj||dd}t||tj|}tjj||dd}t||dS)Nrr)TFTTrrrK)r}r rmr'rrr )rrZcondrrZmarrr|r|rrs    z&TestMaskedArrayFunctions.test_compresscCstjddg}tj|}tt|tjuGdddtj}tj|dd}tj|}tt||utjdgdgg}t|jdtjdggggg}t|jdGdddt }tj|ggggg}t|jdGd ddt }tj|ggggg}t|d dS) Nrrc@s eZdZdS)z3TestMaskedArrayFunctions.test_compressed..ANrrrr|r|r|rrsrrrc@s eZdZdS)3TestMaskedArrayFunctions.test_compressed..MNrhr|r|r|rr+src@seZdZddZdS)ricSsdS)Nrr|rr|r|rr3sz>TestMaskedArrayFunctions.test_compressed..M.compressedN)rrrrr|r|r|rr2sr) r}rr'rr r7r r rr)rrrrrr|r|rrs"     z(TestMaskedArrayFunctions.test_compressedcCsttdd}tddg}tgdd}tjj||dd}t||tjj||dd}t||ddtjj||d d}t||ddtgd d}tjj||dd d }t||tjj||dd d }t||ddtjj||d d d }t||ddtjddggd }t|tgddddg}tgdd}tjj||d d}t|tgddtjj||dd}t|tgdddS)Nrrr)rrrrr>rrrrZsameZvalid)rrrrr>rF)rpropagate_maskr)rrrr)rrrr)rj)rrrrrT)rrrrr)rLr}r r'rZconvolver )rrrrrr|r|r test_convolve9s0  z&TestMaskedArrayFunctions.test_convolveN).rrrrrrr r!r"r$r%r&r(r)r*r+r-r0r7rrpskipifrr>r?r@rBrCrDrFrGrIrLrqrMr]r^rr_rcrerfrgrrrkr|r|r|rrsP     !    .0  $rc@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ dS)TestMaskedFieldscCsxgd}gd}gd}dtfdtfdg}dtfdtfdtfg}gd}ttt|||||d }t||||d |_dS) Nr()rrrrr)rrthreefourfiverrrrrr)baserddtyperb)rrrr'rrrr)rZilistflistslistrrrbrrqr|r|rr^szTestMaskedFields.setup_methodcCs|jd}|jd}t|_t|jtj|j|dt|_t|jtj |j|dd|_t|jtj|j|dd|_t|jtj |j|dgd|_t|jtj dddD|ddS) NrqrbrFTr|cSsg|]}|||fqSr|r|)rrr|r|rrxrz;TestMaskedFields.test_set_records_masks..) rr`rrrr}rzrmrJrbr')rrqrbr|r|rtest_set_records_maskshs    z'TestMaskedFields.test_set_records_maskscCs|jd}|d|d|d}}}ttdf|d<t|jtt|jgdt|jtt|jtdd d d gt|jd t|jgd dS)Nrqrrrrr)rrrrrrrrrr)pirsthreefourfiverrr r~rrrrrqZbase_aZbase_bZbase_cr|r|rtest_set_record_element{s    z(TestMaskedFields.test_set_record_elementcCs|jd}|d|d|d}}}ttdf|dd<t|jtt|jgdt|jtt|jtttdd gt|jd t|jgd dS) Nrqrrrrr)rrrrrrrr)rvrvrvrwrxryrzr|r|rtest_set_record_slices    z&TestMaskedFields.test_set_record_slicecCsJ|jd}t|d<dD].}t||jgdt||j|j|qdS)zCheck record accessrqr)rrrrnN)rrJr rr)rrqrNr|r|rtest_mask_elements  z"TestMaskedFields.test_mask_elementcCsldtfdtfg}td|d}tt|tjgdddgdt|dd<tt|tjgdddgddS) Nrrrr)rrr)r|b1)rr~)rerere)rrr3r r=r}r'rJ)rrrr|r|rtest_getmaskarrays    z"TestMaskedFields.test_getmaskarraycCstttdtjd}t|}t|dtfdtfgd}d|jd<tjdgddgt d}| t}t || t |j|| td f}t ||t |j| d d dS) Nrrrrrrrrr)rrr}r rrr'rrrr}r rirk)riteratorrr controlmaskrr|r|r test_views     zTestMaskedFields.test_viewcsdtfdtfg}ttttjdtd|dtjttgdgddtfdtfgd_ fdd}|d |d |d dS) Nrrrr) rrrrrrrrrr) rrrrrrrrrrcstt|tt|jj|t|jj|tt|dftt|dfjj|dft|dfjj|dfdS)N.)r r7r_rrrr)rrr|r _test_indexs z2TestMaskedFields.test_getitem.._test_indexrrr) rr'rrr}rrr rr)rrrr|rr test_getitems$ zTestMaskedFields.test_getitemcCs`tdtfdtfg}tjjddg|d}d|dd<t|dtddgd |dd<t|dtdd gtdtfdtfg}tjd d g|d}tjj d |d}d |dd<t|j |tjj d |d}d |dd<t|j |tjd d g|d}tjj d |d}| d |dd<t|j |tjj d |d}| d |dd<t|j |dS)Nrr)rr)rrrrrrrr|)TTrrr) r}r~rrrrr r'rrCrr)rrrrbrrr|r|r test_setitems.         zTestMaskedFields.test_setitemcCs8tjjddd}tjd}||d<t|jgddS)NrTrrrr@)r}rrKr r r)rZmask_0drr|r|rtest_setitem_scalars z$TestMaskedFields.test_setitem_scalarcCs,|jdD]}tt|t|jdq dS)Nrqrr)rr r)rZrecr|r|rtest_element_lensz!TestMaskedFields.test_element_lenN)rrrrrur{r|r}rrrrrrr|r|r|rrm\s   rmc@seZdZddZddZdS)TestMaskedObjectArraycCsltjddg}ttfD]L}td|}td|}||d<||d<t|d|ut|d|utt|dt tt|dt t|dd|ut|dd|utjj |d<t|d|utt|dt tt|dt t |dj dt|dd|ut |dj |t |dj dt |ddj |t |ddj dqdS) Nrrrrr.)r.r|T)r}rr'rr)rrr rrrJr rr)rrr,Za0Za1r|r|rrs, z"TestMaskedObjectArray.test_getitemcCsxtjddg}ttjjgtd|d<t|jdtjjut|dtjjutjj|d<t|dtjjudS)Nrr)r}rr'rJr)r r)rrr|r|rtest_nested_mas  z$TestMaskedObjectArray.test_nested_maN)rrrrrr|r|r|rrsrc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)TestMaskedViewcCsrtttdtjd}t|}t|dtfdtfgd}d|jd<tjdgddgt d}|||f|_ dS) Nrrrrrrrr) rrr}r rrr'rrrr)rrrrrr|r|rr0s   zTestMaskedView.setup_methodcCsB|j\}}}|}tt|tt|j|jt|j|jdSr)rr}r rrr rrrrrrrr|r|rtest_view_to_nothing8s  z#TestMaskedView.test_view_to_nothingcCsN|j\}}}|tj}tt|t t||jt |||j  dSr) rr}r}r r rrr rrr~rrr|r|rtest_view_to_type?s    z TestMaskedView.test_view_to_typecCsB|j\}}}|t}tt|tt||t|j|dSr) rr}rr rrr rirrr|r|rtest_view_to_simple_dtypeFs   z(TestMaskedView.test_view_to_simple_dtypecCs |j\}}}|dtfdtfg}t|jjjdt|d|dt|d|d|ddtfdtfg}tt|t t|jjjdt|d|ddt|d|dd|ddtfdtfg}tt|t t|jjdt|d|ddt|d|dddS)Nrr)rrrrrr) rr}rr rr~rr rrrr|r|rtest_view_to_flexible_dtypeNs z*TestMaskedView.test_view_to_flexible_dtypecCs|j\}}}|tdf}tt|tt||t|j|dd|dtdf}tt|tt||dt|jd|dtdf}tt|tt||ddS)Nrrrr) rr}rr rrr rrkrr|r|rtest_view_to_subdtypebs   z$TestMaskedView.test_view_to_subdtypecCsL|j\}}}|tdftj}t||tt|tjtt|t dS)Nr) rr}rr}r~r r rrrr|r|rtest_view_to_dtype_and_typess   z*TestMaskedView.test_view_to_dtype_and_typeN) rrrrrrrrrrr|r|r|rr.src@seZdZddZddZdS)TestOptionalArgscCstdd}tjdtdd}d|dddddf<tjj||d}dd }d d }d D]}||||||||q^d D]}||||qtddddk}tjj||d}dD]}||||||||qdS)N8@rrrTrrcSs~t|}tj|}t||dddddf||dddfddt||dddddf||dddfdddS)NrrK.rr)r__getattribute__r}rr rrrZnumpy_fZma_fr|r|rtestaxiss   2z4TestOptionalArgs.test_ndarrayfuncs..testaxiscSst|}tj|}t||ddj||ddjt||ddj||ddjt||ddddddf||dddfdddt||ddddddf||dddfddddS) NTkeepdimsFrrLr.rr)rrr}rr rmrr|r|r testkeepdimss    z8TestOptionalArgs.test_ndarrayfuncs..testkeepdims)rtrr9r7r8rrr)rr)r}r rkrzrrr')rrrrrrrr|r|rtest_ndarrayfuncs}s    z"TestOptionalArgs.test_ndarrayfuncscCs<tdd}tjdtdd}d|dddddf<tjj||d}tt|dtt|d d d t d tt|d d dt dtt|dddt dtt|d ddd t dtt|d dddt dtt|dd d t d t t t|dd t t t|dd tjj|t d}tt|dtt|d d dt d tt|d d dt dtt|dddt dttt|dddtt|d dddt dtt|d dddt dtt|dd dt d t t t|dd t t t|dd tttjjdt t ttjd d d dS)NrrrrTrrrrrKr)rrrrrrrr)rrr)rrrrrerr)r}r rkrzrrr'r r.rbrrrr`rrJ)rrrrr|r|r test_counts4zTestOptionalArgs.test_countN)rrrrrr|r|r|rr|s/rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZejjddddZejjddddZdd Zd!d"Zd#S)$TestMaskedConstantcCst|tjjdtjjutgd}|tjj|}t|tjjutt|tjjj t|j |j ttj |tj |j t ddS)Nrrr) r r}rrJr'rr MaskedConstantr rmr<rbr)rrZvectorrr|r|r _do_add_testszTestMaskedConstant._do_add_testcCs|tjdSr)rr}rrr|r|r test_ufuncszTestMaskedConstant.test_ufunccCs|dddS)NcSs||Srr|rrr|r|rrrz2TestMaskedConstant.test_operator..)rrr|r|r test_operatorsz TestMaskedConstant.test_operatorcCs:tjtjj}tt|tjjj t|tjjudSr)r}rr'rJr rr rr+r|r|r test_ctorszTestMaskedConstant.test_ctorcCs8tttjjdtjjtjjj}t t|ddS)NrJ) r r6r}rrJr__new__r rr)rZmasked2r|r|r test_reprszTestMaskedConstant.test_reprc Csddlm}tdtjdD]b}|8}tjtjj||d| dt |}Wdn1sd0Yt |tjjuqdS)Nr)BytesIOrrrq) iorrsrtrudumpr}rrJseekloadr )rrrxrrr|r|r test_pickles  (zTestMaskedConstant.test_picklecCs*ttjjtjjutjtjudSr)r r}rrJrZTrue_rr|r|rrQszTestMaskedConstant.test_copycCs&ddl}t|tjjtjjudSr)rr r}rrJrrr|r|r test__copy szTestMaskedConstant.test__copycCs&ddl}t|tjjtjjudSr)rr rWr}rrJrr|r|rr\sz TestMaskedConstant.test_deepcopycCstjj}ttjjjtj|ddtttj|j ddtttj|j ddtjj tjj }tttj|ddtttj|j ddtttj|j dddS)Nr|rF) r}rrJrr rrtsetitemrrrr}r)rorigr}r|r|rtest_immutablesz!TestMaskedConstant.test_immutablecCs6tdt}tttj|dtjjttttjjdSNr|) r}rzrrrrtrrrJ)rZa_ir|r|rtest_coercion_ints z$TestMaskedConstant.test_coercion_intcCs8tdt}tttj|dtjjt t |ddSr) r}rzrrrrtrrrJr r)rZa_fr|r|rtest_coercion_float$s z&TestMaskedConstant.test_coercion_floatz See gh-9750r8cCs*tdd}tjj|d<t|dddS)Nr|ZU10r&r}rzrrJr )rZa_ur|r|rtest_coercion_unicode)s  z(TestMaskedConstant.test_coercion_unicodecCs*tdd}tjj|d<t|dddS)Nr|ZS10s--r)rZa_br|r|rtest_coercion_bytes/s  z&TestMaskedConstant.test_coercion_bytescCsNGdddttjj}|}t||ut|tjjutt|ddS)Nc@s eZdZdS)z-TestMaskedConstant.test_subclass..SubNrhr|r|r|rSub7rrrJ)r7r}rrJr rr6)rrrr|r|r test_subclass5s z TestMaskedConstant.test_subclasscCs.ttttjjddttttjjdtjdS)Nrmrr~)rrsetattrr}rrJrrr|r|rtest_attributes_readonly>sz+TestMaskedConstant.test_attributes_readonlyN)rrrrrrrrrrQrr\rrrrrpZxfailrrrrr|r|r|rrs$        rc@seZdZddZdS)TestMaskedWhereAliasescCsttdgtd}t|jdgttjtj}t|jdtjtjtj }t|jdtjjgdddd}t|jtjj utjjgdddd}t|jdgddS) NgiTFr3rr/r) rUr}r'r r rrDrr r`)rrr|r|rtest_masked_valuesGs  z)TestMaskedWhereAliases.test_masked_valuesN)rrrrr|r|r|rrCsrcCs4tjjgdgdd}tt|dgdggdS)NrN)rrrrrrr)r}rr'r Zargwhererr|r|rtest_masked_arrayXsrcCstjgd}tjj|dk|dd}t|jgdtjjgdgdd}tjj|dk|dd}t|jgdtjtjd d dd g}tjj|dd}t|jgd dS) Nr3rFrJ)FFTFrr)TFTFrrr)TFFFF)r}rr'rVr rrDrH)rrr|r|rtest_masked_array_no_copy\srcCstjjgddd}tjjgddd}tj||}gd}gd}t|j|t|j|tjd}tjd}tj||}d gd }d gd d gd }t|jd|t|j|tjj||dd}t|jd|t|j|dS)Nrrr)rrr)rrrrrr)FTFFFTr?)rrrrTrFrrK) r}rrLrr rrrCrb)rrrZ expected_datarJr|r|rtest_append_masked_arrayjs"      rcCstjjgddd}tjgdgdgd}tttjj||ddtjj|tjddf|dd}tjd d }tjj |d d g<| d }t |j |j t |j |j dS) NrrrrUrcr>rrKrrrr?)r}rrLrUrrrZnewaxisr rJrkr rr)rrrrr|r|r#test_append_masked_array_along_axiss  rcCsttddkdS)Ny??y@xD)r r/r|r|r|rtest_default_fill_value_complexsrcCs4tgdgdd}tj|d|d}t||udS)Nr%r"rrr)r'r}rr rr|r|rtest_ufunc_with_outputsrc Cstgdgdd}tgdgdd}tgdgdd}tgdgdd}|}t|||}|}tj|||d}|}tj|||fd} t|j|jt|j|jt| j|jt| j|jt|j|jt|j|jd S) z0 Test that masked arrays are immune to gh-10459 rrrrrYr")rrrTrN)r'rr}rr rr) rrrrZout_posZres_posZout_kwZres_kwZout_tupZres_tupr|r|rtest_ufunc_with_out_varieds rcCstdtdfddtfgfg}tgddfgddfggddfgdd fgg|d }tjj|d dd <||}|jjt|jksJ|j jjt|jksJt ||t ||j|jd d ut t |j|jd dtj |j|jdd}t |jjt |j jjtj||dd}|jjt|jks8J|j jjt|jksTJt ||t |tj||dddutj||jddd}t |jjt |j jjdS)Nrrrrrrr)r)rrrFrJ)subokrrT)r~r)r~rr)r~rr)r}r~rrr'rrJrrrr r r7r r f_contiguous)descrrZx_aZx_fZx_a2Zx_f2r|r|rtest_astype_mask_orderings2     rr\r]r^z'ignore::numpy.exceptions.ComplexWarningcCstjjtd|dd}||}t|jdkt|j|kt|jj|kt|jdkt|j|kt|jj|kt||dS)Nrrr) r}rr'rbrr rr~r )r\r^srcdstr|r|rtest_astype_basics rcCsntg}td|}tj|}t|j|jt|j|jtjj||d}t|j|jt|j|jdS)Nrr)r}r~r3rr'r rm)r,rrr|r|rtest_fieldless_voids   rcCs2tjj}tjjd|jd}d|_t|jjddS)Nrrrr|)r}rrJr'rrmr rr|r|r0test_mask_shape_assignment_does_not_break_maskedsrrzHno docstrings present to inspect when PYTHONOPTIMIZE/Py_OptimizeFlag > 1r8cCs(dd}d}ttjj|jd|dS)NcSsdS)zyThis docstring Has multiple lines And notes Notes ----- original note Nr|rr|r|rrs ztest_doc_note..methodzNThis docstring Has multiple lines And notes Notes ----- note original noteZnote)r r}rr r2__doc__)rZ expected_docr|r|r test_doc_notes  rcCsHtjjdgdgtd}t|}|ddt|ddksDJdS)NrrArr this should not appear in sourcer)r}rr'r)rrWrrsourcerWr|r|r test_gh_22556s rcCs|tjjddgdtjd}td}tj||dd}tjj|tj|jtjdd}tjjddtjd}t |t |dS) NrTrrFrrr) r}rrKrr'rrbrmrrrW)rrLrr'r|r|r test_gh_21022$s  rcCstjjddgddgddgdggddgddgddggtd}t|}|ddd gt|ddksjJt|dd ks~Jt|j |j d|j d <|j d dksJdS) Nrdogrrcatrrrrrr) r}rr'r)rrWextendrr rrr|r|rtest_deepcopy_2d_obj0s"    rcCs>tjjddgtd}t|}d|d<t|dt|ddS)Nrr.)r}rr'r)rrWr rr|r|rtest_deepcopy_0d_objAs   r)r __author__sysrrrtrargrt functoolsrrrr}Z numpy.ma.coreZnumpy._core.fromnumericZ_corerZnumpy._core.umathrZnumpy.exceptionsrZ numpy.testingrrrrZnumpy.testing._private.utilsrr Z numpy._utilsr Znumpy.ma.testutilsr r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{rrrrr ZMaskedArrayFutureWarningrrrsrrryrrrrYrrrrmrrrrrrrrrrrrrrprqrrrrrlroptimizerrrrrr|r|r|rs     (>1Ts]5=#0NWp