o 6a@sBdZdZddlZddlZddlZddlZddlZddlZddlm Z ddl Z ddl Z ddl mmZddlmmZddlmZmZmZddl mZddlmZddlmZmZmZmZmZmZm Z m!Z!dd 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-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~mZmZmZmZmZmZmZmZmZmZdd lmZe jZeZee jjjd d d dDZdd eDZGdddZGdddZGdddZGdddZGdddZGdddZGdddZGdddZGd d!d!ZGd"d#d#ZGd$d%d%ZGd&d'd'ZGd(d)d)ZGd*d+d+ZGd,d-d-ZGd.d/d/Zd0d1Zd2d3Zd4d5Zd6d7Zd8d9Zd:d;Zdd?Zejjd@eedAejjdBeedAejdCdDdEZdFdGZdHdIZejjejjdJkdKdLdMdNZdS)OznTests suite for MaskedArray & subclassing. :author: Pierre Gerard-Marchant :contact: pierregm_at_uga_dot_edu zPierre GF Gerard-MarchantN)reduce) assert_raises assert_warnssuppress_warnings)ndarray)asbytes)assert_assert_array_equal assert_equalassert_almost_equalassert_equal_records fail_if_equalassert_not_equalassert_mask_equal)gMAError 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_equalonesouterpowerproductputputmaskravelrepeatreshaperesizeshapesinsinhsometruesortsqrtsubtractsumtaketantanh transposewherezeros)picklezGsetting an item on a masked array which has a shared mask will not copycCsg|]}t|qS)npdtype.0dt_rxrx:/usr/lib/python3/dist-packages/numpy/ma/tests/test_core.py >rz?bhilqBHILQefdgFDcCsg|]}|jqSrx)charr{rxrxr~r?sc@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.Zed/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Z d;d<Z!d=d>Z"d?d@Z#dAdBZ$dCdDZ%dEdFZ&dGdHZ'dIdJZ(dKdLZ)dMdNZ*dOdPZ+dQdRZ,edSdTZ-dUdVZ.dWdXZ/dYdZZ0d[d\Z1d]d^Z2d_d`Z3dadbZ4dcddZ5dedfZ6dgdhZ7didjZ8dkdlZ9dmdnZ:dodpZ;dqdrZvz.TestMaskedArray.test_basic1d..cS||Srrxrrxrxr~rwrr)rrr?r5anyr rastypeintrir ryrzrrr+lenr rrrrrrrrrrrsrxrxr~ test_basic1djs    zTestMaskedArray.test_basic1dc Cs|j\ }}}}}}}}} } dD]X} | |_| |_| |_| |_| | _tt| tt|tt|| t|j| t|jtdd| tt|t|tdd|t|| tt |d| t||qdS)N)r)rcSrrrxrrxrxr~rrz.TestMaskedArray.test_basic2d..cSrrrxrrxrxr~rrr) rrirr?r rrr+rr5rrxrxr~ test_basic2d|s"     zTestMaskedArray.test_basic2dc Cs|j\ }}}}}}}}} } tt||ft||ftt||ft||ftt||ft||ftt|||ft|||fdSr)rr ryr'rrxrxr~test_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) rrir rryrgr'_maskrvr$r_r ) rrrrrrrrrrrrxmymrxrxr~test_concatenate_alongaxiss   z*TestMaskedArray.test_concatenate_alongaxiscCsZttttjdtddtfdtfgd}t |dd|ddg}t ||dS)N rrrz) rHlistzipryrandomrandrfloatrr'r )rdatatestrxrxr~test_concatenate_flexiblesz)TestMaskedArray.test_concatenate_flexiblecCsJtgdgddd}t|jdt|jgdgt|jgdgdS)Nrrrrrrr)rndminrr)r$r rirrrrxrxr~test_creation_ndmins z#TestMaskedArray.test_creation_ndmincCsFtgd}t|d<t|dtd}t|j|jjt|j|jjdS)Nrr)rrz)r$rGrr rirrrxxrxrxr~$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 dS) Nr)rrrrrrrrrTTTTFFFFrcopy) rrrGrr rr r$rrrymay_share_memory)rrdma_1dma_2dma_3rrrxrxr~test_creation_maskcreations  z*TestMaskedArray.test_creation_maskcreationcCsPttjjtttdtjjgWddS1s!wYdS)Nr)ryr$marGpytestwarns UserWarningrrxrxr~*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$ryrr rr]rr)rrrrxrxr~'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 dWdn1sUwYtj||g}t|jddgddggdS) NrrTFrrU21rc@eZdZddZdS)zUTestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_cast..NotBoolcSstd)N not a bool!) ValueErrorrrxrxr~__bool__sz^TestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_cast..NotBool.__bool__N)__name__ __module__ __qualname__rrxrxrxr~NotBool rrmatch) ryrrHrr%r rrraisesrbool)r masked_str normal_intresr masked_objrxrxr~4test_creation_with_list_of_maskedarrays_no_bool_casts zDTestMaskedArray.test_creation_with_list_of_maskedarrays_no_bool_castcCs0tjdgddgddgddgdd }t|dS) N)Arf0f1S4i8r)namesformatsoffsetsr)ryr$rrxrxr~'test_creation_from_ndarray_with_paddings  z7TestMaskedArray.test_creation_from_ndarray_with_paddingcCsHtjtddtgdgddWddS1swYdS)Nzunexpected keyword argumentrrrrr)maks)rr TypeErrorrrrxrxr~test_unknown_keyword_parameter s"z.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) rrrrrrrrrrrxmmrxrxr~ test_asarrayszTestMaskedArray.test_asarraycCs2tdj}t|jj t|}t|jjdS)NrryeyeTrflags c_contiguousr%rmnew_mrxrxr~test_asarray_default_orders z*TestMaskedArray.test_asarray_default_ordercCs6tdj}t|jj t|dd}t|jjdS)NrCorderrr$rxrxr~test_asarray_enforce_order!s  z*TestMaskedArray.test_asarray_enforce_ordercCsvtjdd+ttjddggdd}t|}t|j|jddgt|jgdWddS1s4wYdS)Nignore)invalidrrrrrr)rrr) ryerrstaterHnanr6r rrr)rr data_fixedrxrxr~test_fix_invalid)s "z TestMaskedArray.test_fix_invalidcCsHtd}t|d<tttdkt|dtutt|ddddS)Nrr--r)rrGrrr r5rrxrxr~test_maskedelement1s z"TestMaskedArray.test_maskedelementcCsdtdtd}d}||d<t|d|t|d|uddl}|j}||d<t|d|udS)Nrrrrrrrr)r0objectr rdatetimenow)rrrr7dtrxrxr~test_set_element_as_object9s  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)rhellorrr)ryr$rreprr rmrtyperGrr9rHrrRrrrr6ri)rx1x2x3x4s1s2rxrxr~ test_indexingFsZ            zTestMaskedArray.test_indexingcCsgd}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)NrrrrrTrrrrr>rrrrr)r)rrrrrrrr)rrrraxis)rrrrrrrrrr)rDrryrr$r r__array_interface__rrrrGrr5rzrhr'r9rfrrHctypesr)rnr%rm3rFy1y1ay2y2ay3rIy4y5y6y7y8y9rrrxrxr~ test_copyxsv            zTestMaskedArray.test_copycCs(tjjddd}|}t|jddS)N+Tr)ryrr$rr r)rrxcrxrxr~ test_copy_0dszTestMaskedArray.test_copy_0dcCs0tttjgdtttjddS)Nr)rr?ryrrrrxrxr~test_copy_on_python_builtinssz,TestMaskedArray.test_copy_on_python_builtinscCs@tjgd}tjgd}|j}|jt|gddS)Nrrrr)ryrr$rr )rrr a_copy_methodrxrxr~test_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)deepcopyrrrFTFrrrrrrF)rrhr$r rridr)rrhrcopiedrxrxr~ test_deepcopys  zTestMaskedArray.test_deepcopycCstgdgdd}tt|dtttdtttddtt ttd}Wdn1s4wYt|ddS)Nrirjr[0 -- 2]r3z >5)r$r formatrGr FutureWarning)rrwith_format_stringrxrxr~ test_formats  zTestMaskedArray.test_formatcCstgdgdd}tt|dtt|tdtjd}tjj |dd<tt|td tjd }tt|td tgd gd gtj d}tjj |d<tt|tdtt|ddtdtt| t tddS)Nrirjrroz 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)rrerrrz masked_array( data=[[1, 2, 3], [4, --, 6]], mask=[[False, False, False], [False, True, False]], fill_value=999999, dtype=int8)z masked_array(data=[[1, 2, 3]], mask=[[False, False, False]], fill_value=999999, dtype=int8)z masked_array( data=[[1, 2, 3], [4, --, 6]], mask=[[False, False, False], [False, True, False]], fill_value=999999)) r$r rrDtextwrapdedentryrrrGint8rrrrrxrxr~ test_str_reprs>     zTestMaskedArray.test_str_reprc Cst}tjddz8tgdgdd}tt|dtt|dtjd}tjj |d d <tt|d Wtjd i|dStjd i|w) Nz1.13)legacyrirjrrozcmasked_array(data = [0 -- 2], mask = [False True False], fill_value = 999999) rurrvzmasked_array(data = [0 -- -- ..., 1997 1998 1999], mask = [False True True ..., False False False], fill_value = 999999) rx) ryget_printoptionsset_printoptionsr$r rrDrrrG)roldoptsrrxrxr~test_str_repr_legacy:s  &z$TestMaskedArray.test_str_repr_legacycCsHd}t|}tj|}tjj|dd}t|||t||ddS)NucaféTrr3)rEryrr$r )ruutype arr_nomask arr_maskedrxrxr~test_0d_unicodeOs  zTestMaskedArray.test_0d_unicodec CsttttfD]Y}td|}d|_gdddf}tdtj dD]=}|D]8}||_ t tj ||d}t |j|jt |j|j|ttfvrOt |jdnt |j|dt|j |q%q!qdS) Nr) rrrrrrrrrrTFrrprotocol)rrrr6rrrrangerwHIGHEST_PROTOCOLrloadsdumpsr rrr )rrzrmasksprotor a_pickledrxrxr~ test_picklingYs( zTestMaskedArray.test_picklingcCstjddgdtfdtfgdtj}t|ddgd}td tj d D]!}t tj ||d }t |j |j t ||tt|jtjq#dS) N)rr)rrrrrTFFTrrrr)ryr$rrviewrecarrayrHrrwrrrr rr isinstancer)rrrrrrxrxr~test_pickling_subbaseclassos  z*TestMaskedArray.test_pickling_subbaseclasscCs`tjj}tdtjdD]!}ttj||d}t|j |j t|j |j t|j |j q dS)Nrrr) ryrrGrrwrrrr _baseclassrr)rmcr mc_pickledrxrxr~test_pickling_maskedconstantzsz,TestMaskedArray.test_pickling_maskedconstantcCshtddgddgdtfdtfgd}tdtjd D]}ttj||d }t|j |j t||qdS) Nrrrrrrrrrrrrzrrr) r$rrrrwrrrr r)rrrrrxrxr~test_pickling_wstructureds z)TestMaskedArray.test_pickling_wstructuredcCsLtd}d|_|j}tdtjdD]}ttj||d}t||qdS)Nr)rrrrr) rrir!rrwrrrr )rrrrrrxrxr~test_pickling_keepalignments z+TestMaskedArray.test_pickling_keepalignmentcCsTtgd}tgdgdd}t|djdt|djdt|djddS)Nrrrrrxr)r$r rirrxrxr~test_single_element_subscripts z-TestMaskedArray.test_single_element_subscriptc s8tdttdtdttdtdttdgggtdttdggttttddgtD}|tdt t ttdgdgdtgdgddttfddttd d t t td Wdn1s}wYtttttd d tt fd ddS)Nrrz$Warning: converting a masked elementrrrcstSr)rrxrrxr~rrz/TestMaskedArray.test_topython..rrrrcs tdSNr)rrxrrxr~r ) r rr$rrrrfilterrrryisnanr)rsuprxrr~ test_topythons   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)Nrwrr rry$@rer.rrrr>)rrgflatrr realimagr(rGrr+rurirSrz)rrrcrxrxr~test_oddfeatures_1s.      z"TestMaskedArray.test_oddfeatures_1cCstgd}tgd}t|d<t||| }t|gdt|d<t||| }t|gdt|dtut|dtut|dtudS)Nrrrrrrrrrrrrrrrrr)r$rGrur rrrrrrxrxr~test_oddfeatures_2s  z"TestMaskedArray.test_oddfeatures_2cCs:tdgdd}tdg}|j}||||<t|dgdS)NrTrrw)r$rr )ratestbtestidxrxrxr~test_oddfeatures_3s   z"TestMaskedArray.test_oddfeatures_3cCs(tjjddd}t|ddddS)NrOrrr)ryr masked_allr r5r|rxrxr~test_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$rrrGr r5ryr,rz)rflexirxrxr~test_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\r5r tupler,r)rndtyperrrxrxr~test_filled_with_mvoids z&TestMaskedArray.test_filled_with_mvoidcCsdtfddtfdtfgfg}tddgddg|d }|d }tjd d g|d }t|||dd }tjddg|djd }t||tjdtdg}t|j jtdddgdfgt|j jtdddgdfgdS)Nr BBABBrrxrrrrrrrrrrr)rrrrrrr)r z(2,2)i1,(2,2)i1r)r i1r)rrrr)r ?r)rrr) rr$r5ryr rznumpyrrvrr)rrrrcontrolZrxrxr~test_filled_with_nested_dtypes*    z-TestMaskedArray.test_filled_with_nested_dtypecCsPttjddgddtjddgdddd}t|jdt|d jddS) NrireFr)r.r)rr* F_CONTIGUOUSr)r$ryrr"r5r|rxrxr~test_filled_with_f_orders z(TestMaskedArray.test_filled_with_f_ordercCsPtgdtd}d|jd<|}t|jddd|jd<t|jdddS)Nrr???infoz!!!)r$r_optinforr rrrrxrxr~test_optinfo_propagations   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)rrrrvaluekeyr)rrrTrN)r$rr ryr3r zeros_liker|rxrxr~ 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, floatrrrzz)(0, [[--, 0.0, --], [0.0, 0.0, --]], 0.0))ryrzrrr$r rrH)r fancydtyperrt_2d0rxrxr~test_fancy_printoptions;s*" 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)Nrrrxrrrrrrrrrbabb)r)r皙?)r)r皙@rr)rrr)rrrrr)rrryr$r7r rzr)rrrrrrxrxr~test_flatten_structured_arrayOs>    z-TestMaskedArray.test_flatten_structured_arraycCsdtfdtfg}tjdg|dd}t|}tt|ttdgdg|dd}tt|ttddgddg|d}t|jd|jd}tt|tdS) Nrrrrrrrrr) rryr$r\rrrHrr)rrrrrxrxr~ test_void0drszTestMaskedArray.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)NrrrrrrrrrxrrrTF)r >i2rrr r)rrHrrr\r rG)rrrrr rxrxr~test_mvoid_getitems*   z"TestMaskedArray.test_mvoid_getitemcCsVdtfdtfg}tddgddg|d}tt|dd d gtt|d td gdS) Nrrrrrrrrrrr)rrHr rrG)rrrrxrxr~test_mvoid_iters zTestMaskedArray.test_mvoid_iterc Cstddgdtfdtfgd}tt|ddt|dd<tj}tdztt|dd tt|dd Wt|nt|wtd d gd gd}tt|dd dS)Nrxrrrrrz(1, 1)z-X-z(1, -X-)rr)rrz(1,)) r$rr rrGrQ_display set_displayrD)rmx ini_displayrxrxr~test_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)Nrrj)?Brr)r   z)TestMaskedArray.test_mvoid_multidim_printcCstdgdgd}tddg}t||gddgtd}t|d|ut|d|utt|dj|jktt|djd |djd<t|dd kdS) NrTrrFrrrr)rHr6rryrrr)rmx1mx2rrxrxr~test_object_with_arrays z&TestMaskedArray.test_object_with_arrayN)=rrrrrrrrrrrrrrrrr rrrr'r+r2r4r:rL suppress_copy_mask_on_assignmentr`rcrdrgrnrtr}rrrrrrrrrrrrrrrrrrrrrrrrrr rrxrxrxr~rBsx        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#e$j%&dCdDdEge$j%&dFdGdHgdIdJZ'e$j%&dCdDdEge$j%&dFdGdHgdKdLZ(e$j%j&dMe)e*dNe$j%j&dOe)e*dNe$j%&dFdGdPgdQdRZ+e$j%j&dMe)e*dNe$j%j&dOe)e*dNe$j%&dFdGdPgdSdTZ,dUdVZ-dWdXZ.dYdZZ/d[d\Z0dGS)]TestMaskedArrayArithmeticc Cstddddtddddddddg }tgd }d}gd }gd }t||d }t||d }tgd }t|gdd } t|d|} |d||||||||| | f |_t|_tj ddddS)Nrrrrrrrrrrrrrrrr,r.r-) ryr$rrHrurrgeterr err_statusseterrrrxrxr~rs&    zTestMaskedArrayArithmetic.setupcCtjdi|jdSNrxryrrrrxrxr~teardownz"TestMaskedArrayArithmetic.teardownc 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$rHr rgrryrror[r.)rrrrrrrrrrra2da2dmrrxrxr~test_basic_arithmeticsB     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)rrrrrk)rrrir rrrrrrxrxr~test_divide_on_different_shapess   z9TestMaskedArrayArithmetic.test_divide_on_different_shapescCs>tdg}tdg}tt||ttt||tdSNr)ryr$rrr)rnarrxrxr~test_mixed_arithmetic1s  z/TestMaskedArrayArithmetic.test_mixed_arithmeticcCsNttj}t|d|dg}tt|dgdttd|gddS)Nrrrrkr)ryfinfortinyr$r r:)rr'rrxrxr~test_limits_arithmetic8s z0TestMaskedArrayArithmetic.test_limits_arithmeticcCs\tddd}tdtdjtd|jt| jtt||jtt||jdS)Nrrr)r$rrrUrX)rrrxrxr~ test_masked_singleton_arithmetic>s  z:TestMaskedArrayArithmetic.test_masked_singleton_arithmeticcCsdtgdgdd}t|ddktut|ddktut|ddkdt|ddkddS)NrrrrrrrFT)r$rrGr r|rxrxr~test_masked_singleton_equalityHs z8TestMaskedArrayArithmetic.test_masked_singleton_equalitycCsttddg}|t}t|j|jt|jddg|dt}t|tu|t}t|j|jt|jddgdS)NrrTr)rHrGr rirrrrxrxr~%test_arithmetic_with_masked_singletonPs   z?TestMaskedArrayArithmetic.test_arithmetic_with_masked_singletoncCs2tdg}|t}t|j|jt|jdgdS)NrT)rHrGr rirrrxrxr~5test_arithmetic_with_masked_singleton_on_1d_singleton\s zOTestMaskedArrayArithmetic.test_arithmetic_with_masked_singleton_on_1d_singletoncCsNtddd}t|jj|jjtdd}t|jdt|jddgdS)Nrrrrrr)r$r r5rRrrir)rrrrxrxr~test_scalar_arithmeticcs   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 ryr)r*rjrkrrrsrnrrBrCr3r!rr"r rrr2r^r@r;rAr<r(rrxrxr~test_basic_ufuncsks2$,z+TestMaskedArrayArithmetic.test_basic_ufuncscCs tdtdtdtddgdtgdgdd}t|}t|jjtjutd||d}t|}t|jjtjutd|t|d}tt |t tddg|tt |t utgd}t|d}tt |t t|jjtjut tj|jdd dS) Nrrr)rrrrrrrrrO)r r+r$rrzrEryintprgrrr9r]r AxisError)rottr rxrxr~test_count_funcs&      z)TestMaskedArrayArithmetic.test_count_funccCs$tdtgdtdtddS)Nrrrr)r r+rrxrxr~test_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)rrr>rrr)rrr>rrrrrrrO)rryrer rTrUrrWrXrrGrur@r;rrg) rrrrrrrrrrrxrxmrrxrxr~test_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) ryr_rXrrrr r`rU)rraminimumamaximumrxrxr~test_minimummaximum_funcs     z2TestMaskedArrayArithmetic.test_minimummaximum_funccCs.tgdgdd}tj|}t|ddS)Nrrrr)r$ryrUrr rrxrxr~test_minmax_reduces z,TestMaskedArrayArithmetic.test_minmax_reducec Cstjd}ttjddd|d}d|_dD]N}tt|}ttj j |}tj dt d}z ||d|d }Wn t y@Ynwtj dtd}||d|d }t||u|d ||d|d }t||uqdS) NrrrrrrWrTrrrPoutr)ryrrroundr$uniformrigetattrrrcorer0rrrrfill)rrrfuncnamenpfuncmafuncnoutresultrxrxr~test_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) rrrir rTrrGrWptpr$)r_rrrxrxr~test_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 ||q8t ||t | ||dd D]}t t|||d  ||t t|||d ||qk|ddD]}}tgdgd|d }t ||dt | |dttjdtjdtj dggd|d } t | |tj dt | |tjdtjdttjj } t| dgddgd  | ksJt| dgddgd | ks JqdS)Nrrrrrrrrrrrrr)@xD?y@xD@xDrrTrSy@y@r/rr)ryr$rrHrhalfsingledouble longdoublecfloatcdouble clongdoubler rTrWinfr&float64) rrran10rr float_dtypes float_dtyperrcmaxrxrxr~test_minmax_dtypessP&   $$$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 |ddSdS)NrrrOrr) rr ryrr accumulaterpr$r5rbrirr'rrxrxr~test_addsumprod-s&""  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@rrrrrrrr$r rrrrrrrrxrxr~test_binops_d2DBD$    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)NrrrFTrrrrrergUUUUUU?rrg?rrrrgrhrxrxr~test_domained_binops_d2Dfrjz2TestMaskedArrayArithmetic.test_domained_binops_d2DcCsztgdgddd}|d}t|jgd|d7}t|jgd|d}t|jgd|d}t|jgddS)NrrrrFrshrinkrrkrrHr rrrxrxr~test_noshrinkingsz*TestMaskedArrayArithmetic.test_noshrinkingcCs(tjdg}tt|djjddS)Nrrrx)ryrr$r true_dividerrirr%rxrxr~test_ufunc_nomasksz+TestMaskedArrayArithmetic.test_ufunc_nomaskcCs*tjjgdddd}t|jgddS)N)rr@?Frnrk)ryrrRr rr|rxrxr~test_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 rZryrrF) rrrrrrrrrrrrrxrxr~test_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)rrrrz) rryrGrgr rtrqr>r5r`r$r6r)rrrrrxrxr~test_TakeTransposeInnerOuters&  z6TestMaskedArrayArithmetic.test_TakeTransposeInnerOutercCstddgddgd}t|jddgt|jddgt|jj|jjjt|jdd gt|jdd gt|jj|jjjdS) Ny?$@y4@@rrrrrrrw)r$r rr5rzrr)rrrxrxr~test_imag_realsz(TestMaskedArrayArithmetic.test_imag_realcCsttjddddd}t|dddf<|d<|d<d}|D]H}tt|}t||}tjdtd}| d ||d|d }t ||ut ||d|d tdt d}|d|d }t ||ut |dtuq"dS) Nrrrrrr)rpprodvarstdrTrWrOmeanrrrA r$ryrrDrgrGrEr0rrGrr r)rrfunclistrHrIxmmethoutputrLrxrxr~test_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)Nr rrxrrrrTFrrrrrrrrrrrrrrrrrr$r rrrrrrrrrrxrxr~test_eq_on_structuredJ   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)Nr rrxrrrrFTrrrrrrrrrrrrrrxrxr~test_ne_on_structuredrz/TestMaskedArrayArithmetic.test_ne_on_structuredc std}tdd|dtdd|dtdd|dtdd|dfD]t}|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  |qDqdS)Nrrrrrrrx2i4rrrcsg|] }||kqSrxrxr|namerrrxr~rRzITestMaskedArrayArithmetic.test_eq_ne_structured_extra..csg|] }||kqSrxrxrrrxr~rZr) ryrzr\rrr$rr rrr) rr9ma1r1ma2r2 eq_expectedel_by_el ne_expectedrxrr~test_eq_ne_structured_extra;sB               z5TestMaskedArrayArithmetic.test_eq_ne_structured_extrar9SUrGNr cCsNtddg|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)NrrrrrzrrTFr$r rrrrrr9rGrrrrxrxr~test_eq_for_strings],   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)NrrrrrFTrrrxrxr~test_ne_for_strings}rz-TestMaskedArrayArithmetic.test_ne_for_stringsdt1idsdt2rcCsNtddg|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)NrrrTFrrrrrGrrrrxrxr~test_eq_for_numeric,   z-TestMaskedArrayArithmetic.test_eq_for_numericcCsNtddg|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)NrrrFTrrrxrxr~test_ne_for_numericrz-TestMaskedArrayArithmetic.test_ne_for_numericcCs&t}|tdtddgddgd}t|dktddgddgdt|jdkddgt|dktddgddgdtddgdd}t|dkddgt|dkddgtddgdd}t|dktddgddt|dktddgddt}t|dktWddS1swYdS)NzComparison to `None`rrrTFr)rrrrr$r rrG)rrrrxrxr~test_eq_with_Nones "z+TestMaskedArrayArithmetic.test_eq_with_NonecCstd}t|dkdt|dkdt|dkdt|dkdtddd}t|dktt|dktt|dktt|dktdS)NrTrFr)r$r rGrrxrxr~test_eq_with_scalars z-TestMaskedArrayArithmetic.test_eq_with_scalarcCstddgddgd}tddgddggtddgddggfD]}||k}t|jddgddggt|jddgddggqdS)NrrrrFT)r$ryr rr)rrrrrxrxr~test_eq_different_dimensionss  z6TestMaskedArrayArithmetic.test_eq_different_dimensionscCstgdgdd}ttjtjdtddggdd}t|}t||t|j|jt|jgdt|}t||t|j|jt|jgddS)Nrrrrrrrrrrrrrrr)rHryr0rBr r)rrrrrxrxr~test_numpyarithmeticss   z/TestMaskedArrayArithmetic.test_numpyarithmetics)1rrrrrrr"r%r(r)r+r,r-r.r1r5r6r:r=r>rMrQrbrdrirkrprsrwrxr|r}rrrrrmark parametrizerrnum_dtsnum_idsrrrrrrrxrxrxr~rsh#  *$$  ++"   rc@LeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)TestMaskedArrayAttributescCstgdgdd}t|}t|j|jt|gddd}t|jgdt|gddd}t|jgdt|gdd}t|jgddS) NrrrrF)r keep_maskTr*rorrrrxrxr~ test_keepmask"sz'TestMaskedArrayAttributes.test_keepmaskcCstd}gd}t|}t||dd}t||ddd}ddg|d d g<ddg|d d g<t|jgd t|jgd t|jgd t|jt|j gd|d d <gd|d d <t|jgdt|jgdt|jtt |d<t |d<t|jgdt|jgdd |dd<d |dd<t|jgdt|jgdt|jgdt|jt| td|dd<t|jgdt|jt| t ||dk<t|jgdt|j gdd|t |d kd<t|jgdt|j gdtd dgdd ggd dgddggdd}d|d<t|jd dgdd ggt|j d dgddggd|d<t|jd dgddggt|j d dgddggd|t |dkd<t|jd dgddggt|j d dgddggdS)NrrrrrrTr hard_maskFrrrr(rr)rrrrr)rrrrrrArrw)rrrwrr)rrrwrrr)rrrrrr)rrrrr)rrrrrrrr)rrrrrrr)rrDr$r rrrrr]rG soften_mask harden_maskrr5)rrrSr%xhxsrxrxr~ test_hardmask/s`        &z'TestMaskedArrayAttributes.test_hardmaskcCsRtd}gd}t|}t||dd}d|dd<d|dd<t|jgd dS) NrrTrrrrr)rrrrr)rrDr$r rrrrSr%rrxrxr~test_hardmask_againfs  z-TestMaskedArrayAttributes.test_hardmask_againcCstgdgdd}|}t||d|d<t||t|tgdgdd|}d|d<t||t|tgdgdddS)Nrrrrrrrrk)r$rr rrrxrxr~test_hardmask_oncemore_yayps   z4TestMaskedArrayAttributes.test_hardmask_oncemore_yaycCsVtd}t|d<d|d<t|jttd}d|_t|d<d|d<t|jtddS)NrrF)rrGr rr] _smallmaskrvr|rxrxr~test_smallmask~s z(TestMaskedArrayAttributes.test_smallmaskcCsptgdgdd}|}t||t|jttjdgdtfdtfg}| }|t|j|jdS)Nrrkrrrr) r$ shrink_maskr rr]ryrrrrrrxrxr~test_shrink_masks  z*TestMaskedArrayAttributes.test_shrink_maskcCsLtgdgdgdtfdtfdgd}t|dd<t|dd<t|d d <t|d <|j}t|d |d t|d|dt|d|d t|dd|d t|d|dt|d|dt|d|dt|dd|dt|d|d d }d }|D]}t||||f|d7}||jdkrd }|d7}qdS)N))rrone)rrtwo)rffffff @thr))r皙@fou)r@fiv)rgffffff@sixrrrrrrrr)rrrrrrrrrrxrrr)r$rrrGrr ri)rrxflatrjrrxrxr~ test_flats:   z#TestMaskedArrayAttributes.test_flatcstjdddtj}td|_t|t|jtdfdd}tt|j dtjj d}t|jtdtjdddtj}td|_t|jtdt|j tjj dS)Nrzf4,i4rf4cstj}td|_dS)Nf8)ryrr$rz)r%rrxr~assigns z;TestMaskedArrayAttributes.test_assign_dtype..assign)rzrE) ryrvrr$rzrDr rrrrrr])rr%rrrxrr~test_assign_dtypes      z+TestMaskedArrayAttributes.test_assign_dtypeN) rrrrrrrrrrrrxrxrxr~r s 7   rc@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) ryrrF_check_fill_valuerr r,rr)rrfvalrxrxr~test_check_on_scalars       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???rrrrr r)r(rrrirz6e)r)ryrrFrrrrrrr itemr,rr$r6)rrrrfill_valrxrxr~test_check_on_fieldss<        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,rrrrxrxr~test_fillvalue_conversions     z+TestFillingValues.test_fillvalue_conversioncCs>td}ttd}ttdj}t||t||dS)Nr)r,ryr$rzr )rrf2f3rxrxr~test_default_fill_value)s  z)TestFillingValues.test_default_fill_valuecCshtdgdtfddtfgd}t|}t|j}tjtdtdtdf|jd}t||t||dS) Nrrrrrrrr)r$rrr,rzryr )rfieldsrrexpectedrxrxr~"test_default_fill_value_structured1s   z4TestFillingValues.test_default_fill_value_structuredcCs:tdg}t|}t|dtt|d|ddS)N)vV7r)ryrzr,r r$)rr9rrxrxr~test_default_fill_value_void=s &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)rrrrr8@s999r)r>r)r>rr>r)rrrt) rHr _fill_valuerr$rrrryr%rz)rrseriesmtyperrxrxr~test_fillvalueBs$    z TestFillingValues.test_fillvaluecCstdgdtfddtfgd}t)}|td|ddg}tt|jd|dd|dd kWddS1s=wYdS) NrrrrrzNumpy has detected)rrrr) r$rrrrrrr rr)rrr subfieldsrxrxr~test_subarray_fillvalueZs  "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)Nrrrrrrrr rrCrzint, float, floatrkr)ryrrFrrrr$r,r rrzrHrr)rrrrrMrxrxr~test_fillvalue_exotic_dtypeesB        z-TestFillingValues.test_fillvalue_exotic_dtypecCsndD]2}td|}ttd|d}tj||td|}ttd|d}tj||qdS)N) asfspsnsusmsrr%hDWr YNaTz.MyClassrcSdS)NMy mulrxrotherrxrxr~__mul__u zDTestUfuncs.test_treatment_of_NotImplemented..MyClass.__mul__cSrT)NMy rmulrxrVrxrxr~__rmul__x rYzETestUfuncs.test_treatment_of_NotImplemented..MyClass.__rmul__N)rrr__array_priority__rXr[rxrrxr~MyClassr s  r]rUrZc@s,eZdZdZddZddZddZeZdS) z=TestUfuncs.test_treatment_of_NotImplemented..MyClass2dcSrT)NMe2mulrxrVrxrxr~rX rYzETestUfuncs.test_treatment_of_NotImplemented..MyClass2.__mul__cSrT)NMe2rmulrxrVrxrxr~r[ rYzFTestUfuncs.test_treatment_of_NotImplemented..MyClass2.__rmul__cSrT)NMe2rdivrxrVrxrxr~__rdiv__ rYzFTestUfuncs.test_treatment_of_NotImplemented..MyClass2.__rdiv__N)rrrr\rXr[rb __rtruediv__rxrxrxr~MyClass2 s rdr`r_ra) rHrroperatormultruedivrrXNotImplementedrr[r` __truediv__)rr]merdme_toorxrr~ test_treatment_of_NotImplementedk s z+TestUfuncs.test_treatment_of_NotImplementedcCstjjdtjgddgd}t=tdt|t|d|dkt |t |t |t |t |t|t|dt|dWddS1sQwYdS)Nrrrrerrorr)ryrr$r0warningscatch_warningsfilterwarningsr3rrnrBrrr!rrr.rrrrxrxr~test_no_masked_nan_warnings s     "z&TestUfuncs.test_no_masked_nan_warningsN) rrrrrrMrNrQrSrlrqrxrxrxr~r4" s   +r4c@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)>!TestMaskedArrayInPlaceArithmeticscCstd}td}td}t|d<|||f|_|t|t|tf|_tjdtjd|_dd|jD|_|tj |tj |tj f|_ dS)Nrr AllIntegerAllFloatcSsg|]}t|jqSrx)ryrzrEr|rPrxrxr~r sz;TestMaskedArrayInPlaceArithmetics.setup..) rrGintdatarr floatdatary typecodes othertypesuint8 uint8datarrrrrxrxr~r s     z'TestMaskedArrayInPlaceArithmetics.setupcCs|j\}}}t|d<|d7}t||d|d7}t||d|j\}}}|jjj}|d7}t||jjjkt||ddS)Nrrr)rvrGr rwrrRr)rrrrrPid1rxrxr~test_inplace_addition_scalar s   z>TestMaskedArrayInPlaceArithmetics.test_inplace_addition_scalarcCsl|j\}}}|j}tdtjd}t|d<||7}||7}t|||t|||t|jt||jdSNrrr)rvrrryint16rGr rFrrrrr%rrxrxr~test_inplace_addition_array s z=TestMaskedArrayInPlaceArithmetics.test_inplace_addition_arraycCs<|j\}}}|d8}t||d|d8}t||ddSr#)rvr r|rxrxr~test_inplace_subtraction_scalar zATestMaskedArrayInPlaceArithmetics.test_inplace_subtraction_scalarcCsj|j\}}}|j}tdtd}t|d<||8}||8}t|||t|||t|jt||jdSrrwrrrrGr rFrrxrxr~test_inplace_subtraction_array   z@TestMaskedArrayInPlaceArithmetics.test_inplace_subtraction_arraycCs<|j\}}}|d9}t||d|d9}t||ddS)Nrr)rwr r|rxrxr~"test_inplace_multiplication_scalar rzDTestMaskedArrayInPlaceArithmetics.test_inplace_multiplication_scalarcCsj|j\}}}|j}tdtd}t|d<||9}||9}t|||t|||t|jt||jdSrrrrxrxr~!test_inplace_multiplication_array rzCTestMaskedArrayInPlaceArithmetics.test_inplace_multiplication_arraycCsT|j\}}}tdd}tdd}t|d<|d}t|||d}t||dS)Nrr)rvrrGr r|rxrxr~ test_inplace_division_scalar_int s    zBTestMaskedArrayInPlaceArithmetics.test_inplace_division_scalar_intcCs@|j\}}}|d}t||d|td}t|tddS)Nrr)r)rwr rr_r|rxrxr~"test_inplace_division_scalar_float s  zDTestMaskedArrayInPlaceArithmetics.test_inplace_division_scalar_floatcCst|j\}}}|j}tdtd}t|d<||}||}t|||t|||t|jtt||j|dkdS)Nrrrrrrrxrxr~!test_inplace_division_array_float s  "zCTestMaskedArrayInPlaceArithmetics.test_inplace_division_array_floatcCsddddtddddddddg }gd }gd }gd }t||d }t||d }||}t|jgd t|jddddt ddddddddg |}||}t|jgd t|jddddt ddddddddg dS)Nrrrrrrrrrrrr) rrrrrrrrrrrrr)rrHr rrr)rrrrrrrrrxrxr~test_inplace_division_misc& s"     z@r)rg?rrrgrrxrxr~test_datafriendly_div~ rz7TestMaskedArrayInPlaceArithmetics.test_datafriendly_divcCshtgdgdd}|d}t|jgdt|jgd|dC}t|jgdt|jgddS)Nrlr.rr)r;f@r)rrrrgrrxrxr~test_datafriendly_pow sz7TestMaskedArrayInPlaceArithmetics.test_datafriendly_powcCstddgddgg}tddgddgd}||7}t|ddgddgg|jtur4t|jddgddggtddgddgg}tddgddgd}||7}t|ddgddggt|jddgddggdS)Nrrrrrrr$r rr]rrxrxr~test_datafriendly_add_arrays  z>TestMaskedArrayInPlaceArithmetics.test_datafriendly_add_arrayscCstddgddgg}tddgddgd}||8}t|ddgddgg|jtur4t|jddgddggtddgddgg}tddgddgd}||8}t|ddgddggt|jddgddggdS)Nrrrrrrrrxrxr~test_datafriendly_sub_arrays rz>TestMaskedArrayInPlaceArithmetics.test_datafriendly_sub_arrayscCstddgddgg}tddgddgd}||9}t|ddgddgg|jtur4t|jddgddggtddgddgg}tddgddgd}||9}t|ddgddggt|jddgddggdS)Nrrrrrrrxrxr~test_datafriendly_mul_arrays rz>TestMaskedArrayInPlaceArithmetics.test_datafriendly_mul_arraysc s|jD]XtjddH}tdfdd|jD\}}}t|d<|d7}t||d|d7}t||dtt|dd d Wdn1sVwYqdS) NTrecordalwaysc3|]}|VqdSrrrurrxr~ zVTestMaskedArrayInPlaceArithmetics.test_inplace_addition_scalar_type..rrrFailed on type=.)ryrnrorpr{rGr rrwrrrrxrr~!test_inplace_addition_scalar_type s    zCTestMaskedArrayInPlaceArithmetics.test_inplace_addition_scalar_typec s|jD]ctjddS}tdfdd|jD\}}}|j}tdd}t|d<||7}||7}t|||t|||t|jt ||jtt |d d d Wdn1sawYqdS) NTrrc3rrrrurrxr~r rzUTestMaskedArrayInPlaceArithmetics.test_inplace_addition_array_type..rrrrrr ryrnrorpr{rrrGr rFrrrrrrr%rrxrr~ test_inplace_addition_array_type   zBTestMaskedArrayInPlaceArithmetics.test_inplace_addition_array_typec s|jD]TtjddD}tdfdd|jD\}}}|d8}t||d|d8}t||dtt|ddd Wdn1sRwYqdS) NTrrc3rrrrurrxr~r rzYTestMaskedArrayInPlaceArithmetics.test_inplace_subtraction_scalar_type..rrrrryrnrorpr{r rrrxrr~$test_inplace_subtraction_scalar_type     zFTestMaskedArrayInPlaceArithmetics.test_inplace_subtraction_scalar_typec s|jD]ctjddS}tdfdd|jD\}}}|j}tdd}t|d<||8}||8}t|||t|||t|jt ||jtt |d d d Wdn1sawYqdS) NTrrc3rrrrurrxr~r rzXTestMaskedArrayInPlaceArithmetics.test_inplace_subtraction_array_type..rrrrrrrrrxrr~#test_inplace_subtraction_array_type rzETestMaskedArrayInPlaceArithmetics.test_inplace_subtraction_array_typec s|jD]TtjddD}tdfdd|jD\}}}|d9}t||d|d9}t||dtt|ddd Wdn1sRwYqdS) NTrrc3rrrrurrxr~r rz\TestMaskedArrayInPlaceArithmetics.test_inplace_multiplication_scalar_type..rrrrrrrxrr~'test_inplace_multiplication_scalar_type rzITestMaskedArrayInPlaceArithmetics.test_inplace_multiplication_scalar_typec s|jD]ctjddS}tdfdd|jD\}}}|j}tdd}t|d<||9}||9}t|||t|||t|jt ||jtt |d d d Wdn1sawYqdS) NTrrc3rrrrurrxr~r rz[TestMaskedArrayInPlaceArithmetics.test_inplace_multiplication_array_type..rrrrrrrrrxrr~&test_inplace_multiplication_array_type rzHTestMaskedArrayInPlaceArithmetics.test_inplace_multiplication_array_typec s|jD]btjddR}tdfdd|jD\}}}tddd}tddd}t|d<|d}|d}t||t||tt|d d Wdn1s`wYqdS) NTrrc3rrrrurrxr~r+ rz\TestMaskedArrayInPlaceArithmetics.test_inplace_floor_division_scalar_type..rrrrzFailed on type=%s.) ryrnrorpr{rrGr rrrxrr~'test_inplace_floor_division_scalar_type& s      zITestMaskedArrayInPlaceArithmetics.test_inplace_floor_division_scalar_typec s|jD]jtjddZ}tdfdd|jD\}}}|j}tdd}t|d<||}||}t|||t|||t|jt t ||j|d ktt |d d d Wdn1shwYqdS) NTrrc3rrrrurrxr~r; rz[TestMaskedArrayInPlaceArithmetics.test_inplace_floor_division_array_type..rrrrrrrrrxrr~&test_inplace_floor_division_array_type6 s&   zHTestMaskedArrayInPlaceArithmetics.test_inplace_floor_division_array_typec sx|jD]t}|tfdd|jD\}}}tddd}tddd}t|d<z |d}t||Wntt fy]}zt j t |ddWYd}~nd}~wwz |d}t||Wntt fy}zt j t |ddWYd}~nd}~wwt tjrtt|jddd n tt|jd dd Wdn1swYqdS) Nc3rrrrurrxr~rP rzVTestMaskedArrayInPlaceArithmetics.test_inplace_division_scalar_type..rrrr stacklevelrrr)ryrrrr{rrGr DeprecationWarningrrnwarnr issubclassryintegerrrB)rrrrrerxrr~!test_inplace_division_scalar_typeJ s8     zCTestMaskedArrayInPlaceArithmetics.test_inplace_division_scalar_typec s|jD]t}|tfdd|jD\}}}|j}tdd}t|d<z ||}t|||Wnt t fyR}zt j t |ddWYd}~nd}~wwz||}t|||t|jtt||j|dkWnt t fy}zt j t |ddWYd}~nd}~wwttjrtt|jd d d n tt|jdd d Wdn1swYqdS) Nc3rrrrurrxr~rs rzUTestMaskedArrayInPlaceArithmetics.test_inplace_division_array_type..rrrrrrrrr)ryrrrr{rrrGr rrrnrrrFrryrrrB)rrrrrr%rrrxrr~ test_inplace_division_array_typen s@     zBTestMaskedArrayInPlaceArithmetics.test_inplace_division_array_typec Cs|jD]g}tjddW}tdtgdgd|d}||d}tgdgd|d}t|j|jt|j|j||dC}t|j|jt|j|jtt|d d |d Wdn1sewYqdS) NTrrrr.rrrrrr) ryrnrorpr$r rrr)rrrrrxx_rrxrxr~test_inplace_pow_type s    z7TestMaskedArrayInPlaceArithmetics.test_inplace_pow_typeN)!rrrrr~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrxrxrxr~rr s>        $ 'rrc@s0eZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZeddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Z d;d<Z!d=d>Z"d?d@Z#dAdBZ$dCdDZ%dEdFZ&dGdHZ'dIS)JTestMaskedArrayMethodsc Ctgd}|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$rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrryr$rgrir rrXXXr%rmXmXXrm2xm2Xm2XXrxrxr~r    zTestMaskedArrayMethods.setupc 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&compressconjr(diagonalrprqrtrrr%rxrxr~test_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)rIFr) ryrrrrr\rHrGiinfoint_rWrrxrxr~ test_allclose s   z$TestMaskedArrayMethods.test_allclosecCsDtjgdgdd}t||ddsJt||tddds JdS)Nr@zm8[ns]rr)atolrr)ryr$rrr|rxrxr~test_allclose_timedelta 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?TFFr)TTFrrrrrrr)ryr$bool_rHrrrr )rrr%rmxbigmxsmallrxrxr~ test_allany s2     z"TestMaskedArrayMethods.test_allanycCstdtd}tgddd}t|tu|j|dt|t|jdt|tutdtd}t|tu|j|dt| t|jdt|tudS)NrxrrTrrB)r0rr$rrrGrr)rstorer rxrxr~test_allany_oddities 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) rrrrr%rrrrrrrxrxr~test_argmax_argmin' s"z)TestMaskedArrayMethods.test_argmax_argmincCsptgd}tgd}t||d}|dd}t|j|jt|j|ddt|j|jdddS)Nrrrrr)ryr$clipr rr)rrr%rclippedrxrxr~ test_clip> s  z TestMaskedArrayMethods.test_clipcCsJtd}tjj|ddgdd}|jdd|dt|jddgddS)Nrrrrrr)ryrrrrr rrrxrxr~ test_clip_outO 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'rru @rrrrrrrrlr.rrrv<rr)rrrvr r)rrrrOrrrr ) rHr rrGrrrreryr$)rr conditionrrrxrxr~ test_compressV s2     z$TestMaskedArrayMethods.test_compresscCsHtgdgdd}|}t||t|d<|}t|gddS)Nr@rrrrrrr)r$ compressedr rGrrxrxr~test_compressedu 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.3rrrjr)rrrHr rrrr1rir0rryrrr)rdatatyperrrxrxr~ test_empty~ s  z!TestMaskedArrayMethods.test_emptycCstd}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)Nrrrrrrrr)rrrrrrr)rrrr)rrrr) rrrrrrrrrr>) rrrrrrrrrr)rrrr) rrrrrrrrrr>) rrrrrrrrrr) rrDr$rrGr rHrcr%rr )rrrSr%rrrxrxr~test_put s2 zTestMaskedArrayMethods.test_putcCstd}tddgddgd}|ddg|t|d tut|d d t|dtut|dd t|dtut|d tut|d d dS) NrrrFTrrrrr)rvr$rcrrGr )rrrrxrxr~test_put_nomask sz&TestMaskedArrayMethods.test_put_nomaskcCsTtd}gd}t|}t|d|ddd}|gdgdt|jgddS) NrrrTr)rrrrrr5)rrrrr)rrDr$rcr rrrxrxr~test_put_hardmask 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)rrrrrrr?)rrr?rrr?)rrrrrr)rrwrrrvr )rrrrrr)rrrrrr )rrrrrr)rrrrrr)rr$rrdr rrr)rrrrrmxxvaluesrxrxr~ test_putmask s.      z#TestMaskedArrayMethods.test_putmaskcCstgdggdgd}|}t|jj|jtddgddgd}|}t|jj|jtgdgddd }t|jgdd |_d |_|}t|jgdt|jgdt|jd t|jd d gdt|jdd gddS)Nr5rrrrrrrrr@rFrmirr(r)r)rrrr)r$rer rrirr)rraravelarrxrxr~ test_ravel s  z!TestMaskedArrayMethods.test_ravelcCsTtd}t|d<|dd}t|jdt|jjdt|jdt|jjddS)Nrrrrr@)rrGrgr rirrrxrxr~ test_reshape s   z#TestMaskedArrayMethods.test_reshapecCsptgdgdtjd}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|jgddS)Nrrrrrrr@rrrrFr<)rrrrr)rrrr)r!rrrrrrrrr)rrr!rrrrrrr) r$ryrzrmr rrrrsortedrr]r{)rrsortedxrxrxr~ test_sort s0    z TestMaskedArrayMethods.test_sortcCs8tgdtjd}tgd}t|dd}t||dS)N)rrrrrrr)rrrrrrstable)kind)r$ryrzr#r )rrrcomputedrxrxr~test_stable_sort) s  z'TestMaskedArrayMethods.test_stable_sortc Cstgdgdtjd}ttddtddtddtddd tddd fD]"}t|fi|}|t|fi|}t|j|jt|j|jq&dS) NrrrTr<Frr)rr=) r$ryrzdictrmr#r rr)rrkwargsr% argsortedxrxrxr~test_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)rrr>rry)rrr>r)rrr)rrr>rr.rrkrrrr>rerrr?r)rHrmr rrGrr5)rramanrxrxr~ 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)rrrrrrrxr)rrrrrrrr rr)rxrr3rrrr)rrrrrrr)rrxrr3rrr)rrrrrrrFr<rr)r$rrmr rryrzr)rr mask_last mask_firstrr9rxrxr~test_sort_flexiblee s2    z)TestMaskedArrayMethods.test_sort_flexiblecCs,tgdgdd}tt|t|dS)N)rrrrr)rrrrrr)r$r ryr#r|rxrxr~ 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) rHr squeezerryr$rrrGr)rrarrarr_sqm_arrm_arr_sqrxrxr~ test_squeeze s   z#TestMaskedArrayMethods.test_squeezecCstgd}tgd}t||ddd}|dddd}|dd}t|d |ddd f|dd}t|jd dS) Nrrrrrrrrr)rrrr)ryr$rgswapaxesr ri)rrr%rr mXswapped mXXswappedrxrxr~ test_swapaxes s  z$TestMaskedArrayMethods.test_swapaxescCsLtgdgd}t|gdtgdgdt|gd|gdt|ddgddggtdd gdd ggddgddggt|dtjjut|dtjjutgd gd ggdgd gd }t|jddgddtddgddggddgddggd tt|ddgddtddgddggddgddggd dS)N)rrwrrr;)rrr)rrrr.rrrrwrr rrrrOrrr )rHr rqrryrrGr$rrxrxr~ test_take s" $""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)rrf%r>r rrrrmode)rrfrC)rfrCr>)rCr>r )r>r r )r r r )r>r r)r rrr)rrrrrrr)ryr$rrrqr rGr)rrindicesmindicesrctrlrxrxr~test_take_masked_indices s4 ,      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)Nrrr!r)rNrr)rrrr)rr>N rrr)rrr)rrrrrrrr))rrsone)rrtwo)NNNrrrrrr) r$ryrrGtolistrrir rrrr)rrxlistrIrrrxrxr~ test_tolist s<   z"TestMaskedArrayMethods.test_tolistcCs~tddgdtfdtfgd}|D]}|D] }tt|tj qqd|jd<|D]}|D] }tt|tj q0q*dS)Nrr rrrr)r$rrMrrrygenericr)rrentryrrxrxr~test_tolist_specialcase s   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)rrrrrrrcSg|] \}}}|||fqSrxrx)r|rrrrxrxr~r'rz6TestMaskedArrayMethods.test_toflex.. ABCDEFGHIJKLMrrcSrSrxrx)r|rrffrxrxr~r1r)rtoflexr rrrGrrr$rryrrrzr )rrrrrxrxr~ 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)rrrr rr)r$r8rVr rrrrrrxrxr~ test_fromflex:s       z$TestMaskedArrayMethods.test_fromflexcCsrtgdggdd}tdgdgdgdgdgggdd}t|j|t||tt|jd |d dS) Nr5rMrrrrrrr)rHr r!rtrcumsum)rmarrayrrxrxr~test_arraymethodLs z'TestMaskedArrayMethods.test_arraymethodcCs4tjjddd}t|jj|jt|jj|jdS)N*Tr)ryrr$r r!rrrrxrxr~test_arraymethod_0dVsz*TestMaskedArrayMethods.test_arraymethod_0dcCsbtjgdgdg}tjj|d<|j}d|d<tjj|d<t|j|jjt|j|jjdS)Nrrerrr)ryrr$rGr!r rr)rrxtrxrxr~test_transpose_view\s  z*TestMaskedArrayMethods.test_transpose_viewcCs`tjd}d|d<tjj|d<d|d<|}d|d<t|j|jt|j|jdS)Nrrrrxrwrr)ryrrvrGrr rr)rrxdrxrxr~test_diagonal_viewgs  z)TestMaskedArrayMethods.test_diagonal_viewN)(rrrrrrrrrrrrrrrrrrrrrrr&r*r.r2r6r7r=rArBrJrOrRrWrXr[r]r_rarxrxrxr~r sL     !( $   rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZeddZddZdd Zd!d"Zd#S)$TestMaskedArrayMathMethodsc Crrrrrxrxr~rtrz TestMaskedArrayMathMethods.setupc Cs|j\ }}}}}}}}} } |d} t| j|dd|d} t| j|dd|d} t| j|dd|d} t| j|dddSNrr)rrYr rr5cumprod) rrrrr%rrrrrrmXcprxrxr~test_cumsumprods    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)rYrdrrrrAr)rrrHrIrrrLrxrxr~test_cumsumprod_with_outputs       z6TestMaskedArrayMathMethods.test_cumsumprod_with_outputc Cs|j\ }}}}}}}}} } |j\} }t||t| t} t|t} t|D]}|dd|f| |<q-t| D] }||| |<qBt|d| t|d| dSrc) rrir rOrryrvrr)rrrrr%rrrrrrrSrowscolskrxrxr~test_ptps     z#TestMaskedArrayMathMethods.test_ptpcCs>tddgddgtd}|d}t|ddt|jddS)Nrrrrrrbx)rHr6r rrrrxrxr~test_add_objectsz*TestMaskedArrayMathMethods.test_add_objectcCVtgdgdtd}t|dtgdgdgtd}t|jddgd dS) NrrrrrerrrOrrr>)rHr6r rpr|rxrxr~test_sum_objectz*TestMaskedArrayMathMethods.test_sum_objectcCrn) NrrrrrerrrOrrrf)rHr6r r~r|rxrxr~test_prod_objectrqz+TestMaskedArrayMathMethods.test_prod_objectcCs4tgdtd}t|dt|gddS)Nrrr)rrr)rHr6r rrr|rxrxr~test_meananom_objectsz/TestMaskedArrayMathMethods.test_meananom_objectc Cs|j\ }}}}}}}}} } |} t||t||t| j|ddtt||t d ddd} tj | d} t| jddd| jddddS) NrrO rrFr)axis1axis2) rrr tracerrpr rryrrgrrH)rrrrr%rrrrrrmXdiagr9r;rxrxr~ test_traces"z%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!) rr5dotr rrr]r1r>)rrrrr%rrrrrrfxrfXrmYYfXXfYYrxrxr~test_dots&       z#TestMaskedArrayMathMethods.test_dotcCstddgddggddgddggd}tddgddggddgddggd}tddgddgg}|j||dt|dddgdd ggt|jddgddggdS) Nrrrrrrrr)rHr{r r5rr!rxrxr~test_dot_shape_mismatchs $$z2TestMaskedArrayMathMethods.test_dot_shape_mismatchcCstgddd}tgddd}tt|tjtt|tj||ktdus3Jttd ddd}t ddd}tt|jd d t tt|jd d t t |jd |d |ut |jd |d |udS) Nr@rrTrrrrrrOrA) r$r rErryr]rrrrgr0rr)rfoobarrxrxr~test_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]4} t| | || t| | |dd| ftt | | |dd| fqdS) NrOrrPddofrrrrr rr rrrr rirryrnrrrrr%rrrrrrmXvar0mXvar1rjrxrxr~ test_varstds2 "z&TestMaskedArrayMathMethods.test_varstdcCsNtjdtd}tdtd}ttddd}dD];}t||}t|tut|dtut|dtu||dt|tut|jd||dtt |qttddd}d |d<dD]C}t||}t|d d tut|dd d tut|dd d tu||d d t|tut|jd||d d tt |qadS) NrrrTr)rrrrr>rr)rBr) ryr$rrrErrGr rr)rrKmoutr methodnamemethodrxrxr~test_varstd_specialcases4s4           z3TestMaskedArrayMathMethods.test_varstd_specialcasescCstgdgdggdgdgd}|jddd}t|dgdt|jgd|jddd}t|dgdt|jgd|jddd}t|dgdt|jgd dS) Nr*r.rrrrkrrr)r$rr r5rrrxrxr~test_varstd_ddofWs$z+TestMaskedArrayMathMethods.test_varstd_ddofcCstdd}t|d<t|}t|gdt|}t|gdt|jgdt|}tgdgdgdggdgdgdgd }t||dS) Nr>rrx)rrrrrk)rrr)rrrr)rrgrGryr-r rr$)rrrBrrxrxr~ test_diagcs z$TestMaskedArrayMathMethods.test_diagcCstgdgdg}t|dgdt|dddgt|dddgt|dgd t|ddd gt|ddd gt|dgdt|ddd gt|ddd gt|dgdt|dd dgt|dd dgdS) Nrrerrorrrrrrxrr)r$r rpr~rWrTr|rxrxr~test_axis_methods_nomaskqsz3TestMaskedArrayMathMethods.test_axis_methods_nomaskN)rrrrrfrgrkrmrprsrtrzrrrrrrrrrrxrxrxr~rbrs&    " rbc@eZdZddZddZdS)!TestMaskedArrayMathMethodsComplexc Cr)N)$y @yGz.@y-!@y!@y&1?rrrrrrrrrrrrrrrrrry"~@yK7@rrrrrrrrrry-?rrrrrrrrrxrxr~rrz'TestMaskedArrayMathMethodsComplex.setupc CsR|j\ }}}}}}}}} } t|jdd|t|jdd|t|jddj|jddjt|j|j|jdd|jdd} } t|jddd|jddt|jddd|jddtdD]4} t| | || t| | |dd| ftt | | |dd| fqrdS) NrOrrrrrrrrrrxrxr~rs& "z-TestMaskedArrayMathMethodsComplex.test_varstdN)rrrrrrxrxrxr~rs rc@s$eZdZddZddZddZddZd 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$dEdFZ%dGS)HTestMaskedArrayFunctionscCsttddddtddddddddg }tgd }gd }gd }t||d }t||d }|d ||f|_dS)Nrrrrrrrrrrrrr)ryr$rrHrr)rrrrrrrrxrxr~rs&   zTestMaskedArrayFunctions.setupcCs2ddg}td|}t|ddgt|dddS)NrrF)rSr rrxrxr~test_masked_where_bools z/TestMaskedArrayFunctions.test_masked_where_boolcCsTgd}t|d}t||t|jgdt|d}t||t|jgddS)Nrrr.r*)rIr rrOrrxrxr~test_masked_equal_wlists    z0TestMaskedArrayFunctions.test_masked_equal_wlistcCs2gd}t|d}t|jgdt|jddS)Nrrr.)rIr rrrrxrxr~test_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)Nrrr#r5)r?r?rrr)r$rGr rSr;rJr<rKr@rMrArNr^rOr2rIrrxrxr~test_masked_where_conditions z4TestMaskedArrayFunctions.test_masked_where_conditioncCs0tdtd}t|jt}t||}t||dS)N)rrrr)r_rrvrirrSr )rrrctestrxrxr~test_masked_where_odditiess   z3TestMaskedArrayFunctions.test_masked_where_odditiescCsXtd}tt td|Wdn1swYt|d}t|jgddS)Nrr) rrrrrrrrrr)rr IndexErrorrIr rrrxrxr~"test_masked_where_shape_constraints    z;TestMaskedArrayFunctions.test_masked_where_shape_constraintcCsdtjdddgd}tj|ddk|}t|jjj|jjt|dtjtdt ddS)Nr)r z)rrGrurrzr rrxrxr~test_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)rrrrrv)r?r?r?rr)r?rrr?r?) r$rGrur rrr5r9r])rrrrrcmrrxrxr~ test_where_with_masked_conditions4         z9TestMaskedArrayFunctions.test_where_with_masked_conditioncCsXtjdtjd}tjdtjdd}t|dk||j}ttjtjgg}t||dS)Nrrrru)ryrr0float32rurzfind_common_typer )rrrrrrxrxr~test_where_types z(TestMaskedArrayFunctions.test_where_typecCsZtddd}td}tgd||}tgd||}t||t|j|jdS)Nr>rr)ryrrgrvrur rz)rrrrFrrxrxr~test_where_broadcasts   z-TestMaskedArrayFunctions.test_where_broadcastcCsvtdtfdtfg}tjgd|d}tjd|d}tgd||}tgd||}t||t|j|jdS)Nrrrrrr)rrwr)ryrzrr$rur )rr9rrrFrrxrxr~test_where_structureds z.TestMaskedArrayFunctions.test_where_structuredcCsptdtfdtfg}tjgd|d}tgd|t}tgd|}t|j|jt||t|j|jdS)Nrrrrrr) ryrzrr$rurGrSr r)rr9rrrrxrxr~test_where_structured_masked s z5TestMaskedArrayFunctions.test_where_structured_maskedcCs(gdgdgdgdg}tgd|}t|tgdtgd|dd }t|tgdtgd|d d }t|tgd tgdgd d }t||d d }t|tgdt|jgd t|gdgdgdgdgd }gd}t||d d }t|tgdt|jgd dS)NrrrrrrKrrOrwr rrru!rrrrrwrrr)rrrrrrDwrap)rwrrrrrrrr)r?rrr?r rrrrrr)r&r r$r)rchoiceschosenindices_rxrxr~ test_chooses(   z$TestMaskedArrayFunctions.test_choosecCsgdgdgdgdg}tdtd}tgd||d}t|tgd t||utdtd}tgdgd d }t||d |d }t|tgdt|jgd t|gdgdgdgdgd }gd}tdtdt}t||d |d }t|tgddS)Nrrrrrrrrrrrr)rErB)r?rrr?r rrr)rrrr) r0rr&r r$rrrr)rrrrrrxrxr~test_choose_with_out-s&      z-TestMaskedArrayFunctions.test_choose_with_outcCstd}t|d<|d}t|jdt|jd|dd}t|jdt|jd|jddd}t|jdt|jd|jdddd}t|jdt|jdt|d }tt|t t|jd t|d tut|jddS) Nrr)rrr(rrrr))rrr) rrGrgr rirr"ryrr)rrrrrxrxr~rCs&        z%TestMaskedArrayFunctions.test_reshapec Csdtfdtfg}t|}t|dtfdtfgt|t|utdf}t|}t|tdft|t|ut}t|}t|ttt|t|udtfddtfdtfgfg}t|}tddddgfg}t||t|t|udtdffg}t|}t|tdtdffgt|t|ud tfg}t|}t|td tfgt|t|utdtd fg}t|}tdtfd|fg}t|}t|tdtfddtd fgfgt|jdd |udS) Nrrrrr)rr)rr)rr)r rrr) rrEr rrryrzrr)rntyperr base_type base_mtypesub_typerxrxr~test_make_mask_descr]s>  $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]\} } } tt | | | d} t| t u|| | | fqdS)Nrrrrrrrrz?,?rxrTFzcopy=%s, shrink=%s, dtype=%s)rrnrz)rDr rzrryr$rrrrvoid itertoolsrbr]) rrrmdtypebdtypetest2boolsdtypes msgformatcpyshrr9r rxrxr~test_make_masksN         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||}Wn tylYnwdtfdd tfd tfgfg}tjd d g|d}tjd dg|d} tjdd g|d} tt|| | dS)Nrr)rrrrrF)rrrr)rrrxrr rrrrrrrr)rryr$rFr]r r) rrrrrWr othertyperzrPbmaskcntrlrxrxr~ test_mask_ors0         z%TestMaskedArrayFunctions.test_mask_orcCstjgdtd}tt||tjddgdtfdtfgd}t|}tjgdtd}t||dtfddtfd tfgfg}d d g}tj||d}t|}tjgd td}t||dS) Nr.rrrrrr rrrr)rrrrrr)ryr$rr r4)rrrrrrrxrxr~test_flatten_masks z*TestMaskedArrayFunctions.test_flatten_maskcCsPtgd}t|dd}t|}t||t|d}t||dddS)Nr@Frrr)ryr$rr rg)rrr%rrxrxr~test_on_ndarrays   z(TestMaskedArrayFunctions.test_on_ndarraycCsrtd}d|_tgd}|gd}tjj||dd}t||tj|}tjj||dd}t||dS)NrrF)TFTTrrrO)ryrrir$rrr )rr9condrrmarrrxrxr~rs    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@ eZdZdS)z3TestMaskedArrayFunctions.test_compressed..ANrrrrxrxrxr~r  r rr-c@r)3TestMaskedArrayFunctions.test_compressed..MNrrxrxrxr~r rr c@r)rcSrT)Nr\rxrrxrxr~r rYz>TestMaskedArrayFunctions.test_compressed..M.compressedN)rrrrrxrxrxr~r rr\) ryrr$rrrErr rr)rrrr r rxrxr~rs"     z(TestMaskedArrayFunctions.test_compressedcCsttdd}tddg}tj||}t|tgddtjj||dd}t|tgddtjddggd }t|tgd dddg}tgd d}tjj||dd}t|tgd dtjj||d d}t|tgdddS)Nrrr)rrrrrrrF)propagate_mask)rrrrrrr)rrrr)rrrr)rrrrrT)rrrrr)rIryrr$rconvolver )rrrrrxrxr~ test_convolve&sz&TestMaskedArrayFunctions.test_convolveN)&rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrxrxrxr~rsH       .0  $rc@sdeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ dS)TestMaskedFieldscCsxgd}gd}gd}dtfdtfdg}dtfdtfdtfg}gd}ttt|||||d }t||||d |_dS) Nr5)rrrrr)rrthreefourfiverrrrr"r)baserddtyper)rrrr$rrr+r)rilistflistslistrrrrrxrxr~r<szTestMaskedFields.setupcCs|jd}|jd}t|_t|jtj|j|dt|_t|jtj |j|dd|_t|jtj|j|dd|_t|jtj |j|dgd|_t|jtj dddD|ddS) NrrrFTrcSsg|]}|||fqSrxrx)r|rrxrxr~rVrz;TestMaskedFields.test_set_records_masks..) rr]rr rryrvrirGr_r$)rrrrxrxr~test_set_records_masksFs   z'TestMaskedFields.test_set_records_maskscCs|jd}|d|d|d}}}ttdf|d<t|jtt|jgdt|jtt|jtdd d d gt|jd t|jgd dS)Nrrrrrr)rrrrrrrrrr)pirLsthreefourfiverrr rzrrrrrbase_abase_bbase_crxrxr~test_set_record_elementYs    z(TestMaskedFields.test_set_record_elementcCs|jd}|d|d|d}}}ttdf|dd<t|jtt|jgdt|jtt|jtttdd gt|jd t|jgd dS) Nrrrrrr)rrrrrrrr)rrrrrrrrxrxr~test_set_record_sliceis    z&TestMaskedFields.test_set_record_slicecCsJ|jd}t|d<dD]}t||jgdt||j|j|q dS)zCheck record accessrr)rrrrN)rrGr rr)rrrSrxrxr~test_mask_elementxs z"TestMaskedFields.test_mask_elementcCsldtfdtfg}td|d}tt|tjgdddgdt|dd<tt|tjgdddgddS) Nrrrr)rrr)r|b1)rr)rxrxrx)rrr0r r:ryr$rG)rrrrxrxr~test_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)rrryrrrr$rrrrr rerg)riteratorrr controlmaskrrxrxr~ 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 rEr\r rrr)rrrxr~ _test_indexs "z2TestMaskedFields.test_getitem.._test_indexrrr!) rr$rrryrrrrr)rrrrxrr~ 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) ryrzrrrrr r$rrrr)rrrrrrrxrxr~ test_setitems.         zTestMaskedFields.test_setitemcCs8tjjddd}tjd}||d<t|jgddS)NrTrrrr)ryrrHrr r)rmask_0dr9rxrxr~test_setitem_scalars z$TestMaskedFields.test_setitem_scalarcCs,|jdD]}tt|t|jdqdS)Nrr)rr r)rrecrxrxr~test_element_lensz!TestMaskedFields.test_element_lenN)rrrrrr r rrrrrrrrxrxrxr~r:s    rc@r)TestMaskedObjectArraycCsjtjddg}ttfD]}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 dq dS) Nrrrrr.)r.rxT)ryrr$rr6r rrrrrGr rr)rr9r9a0a1rxrxr~rs.  z"TestMaskedObjectArray.test_getitemcCsxtjddg}ttjjgtd|d<t|jdtjjut|dtjjutjj|d<t|dtjjudS)Nrr)ryrr$rGr6rr)rr9rxrxr~test_nested_mas  z$TestMaskedObjectArray.test_nested_maN)rrrrr rxrxrxr~rs rc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)TestMaskedViewcCsrtttdtjd}t|}t|dtfdtfgd}d|jd<tjdgddgt d}|||f|_ dS) Nrrrrrrrr) rrryrrrr$rrrr)rrrrrrxrxr~rs   zTestMaskedView.setupcCsB|j\}}}|}tt|tt|j|jt|j|jdSr)rrrrrr rrrrrrrrxrxr~test_view_to_nothings z#TestMaskedView.test_view_to_nothingcCsN|j\}}}|tj}tt|t t||jt |||j  dSr) rrryrrrrr rr rzr8r"rxrxr~test_view_to_types   z TestMaskedView.test_view_to_typecCsB|j\}}}|t}tt|tt||t|j|dSr) rrrrrrr rerr"rxrxr~test_view_to_simple_dtype$s  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)Nr r)r rrrrr) rrrr rrzrrrrr"rxrxr~test_view_to_flexible_dtype,s z*TestMaskedView.test_view_to_flexible_dtypecCs|j\}}}|tdf}tt|tt||t|j|dd|dtdf}tt|tt||dt|jd|dtdf}tt|tt||ddS)Nrrrr) rrrrrrr rrgr"rxrxr~test_view_to_subdtype@s   z$TestMaskedView.test_view_to_subdtypecCsL|j\}}}|tdftj}t||tt|tjtt|t dS)Nr) rrrryrr rrrr"rxrxr~test_view_to_dtype_and_typeQs  z*TestMaskedView.test_view_to_dtype_and_typeN) rrrrr#r$r%r&r'r(rxrxrxr~r! s r!c@r)TestOptionalArgscCstdd}tjdtdd}d|dddddf<tjj||d}dd }d d }d D]}||||||||q/d D]}||||q@tddddk}tjj||d}dD]}||||||||q_dS)N8@rrrTrrcSs~t|}tj|}t||dddddf||dddfddt||dddddf||dddfdddS)NrrO.rr)r__getattribute__ryrr rrrnumpy_fma_frxrxr~testaxisds  2z4TestOptionalArgs.test_ndarrayfuncs..testaxiscSst|}tj|}t||ddj||ddjt||ddj||ddjt||ddddddf||dddfdddt||ddddddf||dddfddddS) NTkeepdimsFrrPr1.rr)rr+ryrr rir,rxrxr~ testkeepdimsms    z8TestOptionalArgs.test_ndarrayfuncs..testkeepdims)rpr~rrrr?rr)rr)ryrrgrvrrr$)rrr%rr/r3rrxrxr~test_ndarrayfuncs[s"   z"TestOptionalArgs.test_ndarrayfuncscCsBtdd}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 tj 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 tj t|dd tttjjdt tj ttjd d d dS)Nr*rrrTrrrrrOr)rrrrr@r0rr2)rrr)rrrr!rxrr)ryrrgrvrrr$r r+r_rrr3r]rrG)rrr%rrxrxr~ test_counts4zTestOptionalArgs.test_countN)rrrr4r5rxrxrxr~r)Zs /r)c@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) rryrrGr$rrFMaskedConstantr rir9r_r)rrvectorrLrxrxr~ _do_add_tests"zTestMaskedConstant._do_add_testcCs|tjdSr)r9ryrrrxrxr~ test_ufuncszTestMaskedConstant.test_ufunccCs|dddS)NcSrrrxrrrxrxr~rrz2TestMaskedConstant.test_operator..)r9rrxrxr~ test_operatorsz TestMaskedConstant.test_operatorcCs:tjtjj}tt|tjjj t|tjjudSr)ryrr$rGrrrFr7rrrxrxr~ test_ctorszTestMaskedConstant.test_ctorcCs8tttjjdtjjtjjj}t t|ddS)NrG) r rDryrrGr__new__rFr7r)rmasked2rxrxr~ test_reprszTestMaskedConstant.test_reprc Csddlm}tdtjdD]1}|}tjtjj||d| dt |}Wdn1s2wYt |tjjuqdS)Nr)BytesIOrrr) iorArrwrdumpryrrGseekloadr)rrArrr rxrxr~ test_pickles   zTestMaskedConstant.test_picklecCs*ttjjtjjutjtjudSr)r ryrrGrTrue_rrxrxr~r`szTestMaskedConstant.test_copycCs&ddl}t|tjjtjjudSr)rrryrrGrrrxrxr~ test__copyzTestMaskedConstant.test__copycCs&ddl}t|tjjtjjudSr)rrrhryrrGrHrxrxr~rnrJz TestMaskedConstant.test_deepcopycCstjj}ttjjjtj|ddtttj|j ddtttj|j ddtjj tjj }tttj|ddtttj|j ddtttj|j dddS)NrxrF) ryrrGrrFrresetitemrrrrr)rorigrrxrxr~test_immutablesz!TestMaskedConstant.test_immutablecCs6tdt}tttj|dtjjttttjjdSr) ryrvrrrrerKrrG)ra_irxrxr~test_coercion_ints z$TestMaskedConstant.test_coercion_intcCs8tdt}tttj|dtjjt t |ddSr) ryrvrrrrerKrrGrr)ra_frxrxr~test_coercion_floats z&TestMaskedConstant.test_coercion_floatz See gh-9750reasoncC*tdd}tjj|d<t|dddS)NrxU10r3ryrvrrGr )ra_urxrxr~test_coercion_unicode  z(TestMaskedConstant.test_coercion_unicodecCrT)NrxS10s--rV)ra_brxrxr~test_coercion_bytes rYz&TestMaskedConstant.test_coercion_bytescCsNGdddttjj}|}t||ut|tjjutt|ddS)Nc@r)z-TestMaskedConstant.test_subclass..SubNrrxrxrxr~Subrr]rG)rEryrrGrrrD)rr]rrxrxr~ test_subclasss z TestMaskedConstant.test_subclasscCs.ttttjjddttttjjdtjdS)Nrirrz)rrEsetattrryrrGr/rrxrxr~test_attributes_readonlysz+TestMaskedConstant.test_attributes_readonlyN)rrrr9r:r<r=r@rFr`rIrnrMrOrQrrxfailrXr\r^r`rxrxrxr~r6s&        r6c@r)TestMaskedWhereAliasescCsttdgtd}t|jdgttjtj}t|jdtjtjtj }t|jdtjjgdddd}t|jtjj utjjgdddd}t|jdgddS) NgiTFr@rrvr) rRryr$rr rr\rrr])rr rxrxr~test_masked_values%s  z)TestMaskedWhereAliases.test_masked_valuesN)rrrrcrxrxrxr~rb!s rbcCs4tjjgdgdd}tt|dgdggdS)Nr)rrrrrrr)ryrr$r argwhererrxrxr~test_masked_array6srecCsxtjgd}tjj|dk|dd}t|jgdtjjgdgdd}tjj|dk|dd}t|jgddS) Nr@rFrN)FFTFrr)TFTF)ryrr$rSr r)rrPrxrxr~test_masked_array_no_copy:s rfcCstjjgddd}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)rrrrTrFrRrO) ryrrIappendr rrrr_)rrrL expected_data expected_maskrxrxr~test_append_masked_arrayDs"      rkcCstjjgddd}tjgdgdgd}tttjj||ddtjj|tjddf|dd}tjd d }tjj |d d g<| d }t |j |j t |j |j dS) Nrrrgrer/rrrOrrrr)ryrrIrRrrrhnewaxisrrGrgr rr)rrrLrrxrxr~#test_append_masked_array_along_axis\s  rmcCsttddkdS)Ny??y@xD)rr,rxrxrxr~test_default_fill_value_complexjsrncCs4tgdgdd}tj|d|d}t||udS)Nrlr.rrr)r$ryrrrrxrxr~test_ufunc_with_outputosroc 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 rrrrrkr.)rKr rrN)r$rryrr rr) rrrBrout_posres_posout_kwres_kwout_tupres_tuprxrxr~test_ufunc_with_out_variedws rvcCsdtdfddtfgfg}tgddfgddfggddfgdd fgg|d }tjj|d dd <||}|jjt|jksCJ|j jjt|jksPJt ||t ||j|jd d ut t |j|jd dtj |j|jdd}t |jjt |j jjtj||dd}|jjt|jksJ|j jjt|jksJt ||t |tj||d ddutj||jddd}t |jjt |j jjdS)Nrrrrrr'r()r)rrrFrN)subokrr)T)rzrw)rzrrw)rzr*rw)rrr$ryrrGrrzrrr rrErr" f_contiguous)descrrx_ax_fx_a2x_f2rxrxr~test_astype_mask_orderings2     r~rrrzignore::numpy.ComplexWarningcCstjjtd|dd}||}t|jdkt|j|kt|jj|kt|jdkt|j|kt|jj|kt||dS)Nrrr) ryrr$r_rrrrzr )rrsrcdstrxrxr~test_astype_basics rcCsntg}td|}tj|}t|j|jt|j|jtjj||d}t|j|jt|j|jdS)Nrr)ryrzr0rr$r ri)r9rrrxrxr~test_fieldless_voids   rcCs2tjj}tjjd|jd}d|_t|jjddS)Nrrrrx)ryrrGr$rrir r;rxrxr~0test_mask_shape_assignment_does_not_break_maskedsrrzHno docstrings present to inspect when PYTHONOPTIMIZE/Py_OptimizeFlag > 1rRcCs(dd}d}ttjj|jd|dS)NcSrT)zyThis docstring Has multiple lines And notes Notes ----- original note Nrxrrxrxr~rs ztest_doc_note..methodzNThis docstring Has multiple lines And notes Notes ----- note original notenote)r ryrrFr/__doc__)r expected_docrxrxr~ test_doc_notes  r)r __author__sysrnrerryr functoolsrrry numpy.ma.corenumpy.core.fromnumericrFrFnumpy.core.umathrD numpy.testingrrrr numpy.compatrnumpy.ma.testutilsrr r r 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`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrrrrMaskedArrayFutureWarningrrrrrrr4rrrrbrrrrr!r)r6rbrerfrkrmrnrorvr~rrrprrrskipifr"optimizerrxrxrxr~s   ( *A1TyO5#0NWp