a :jg,@sdZddlZddlZddlZddlZddlmZddlm Z m Z ddl m Z m Z mZmZddlmZmZmZmZmZmZmZmZmZmZmZddlmZmZmZm 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-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>Gdd d Z?Gd d d Z@Gd d d ZAGdddZBGdddZCGdddZDGdddZEGdddZFGdddZGGdddZHGdddZIGdddZJGd d!d!ZKGd"d#d#ZLGd$d%d%ZMdS)&zTests suite for MaskedArray. Adapted from the original test_ma by Pierre Gerard-Marchant :author: Pierre Gerard-Marchant :contact: pierregm_at_uga_dot_edu :version: $Id: test_extras.py 3473 2007-10-29 15:18:13Z jarrod.millman $ N)normalize_axis_tuple) assert_warnssuppress_warnings)assert_assert_array_equal assert_equalassert_almost_equal) arrayarangemasked MaskedArray masked_array getmaskarrayshapenomaskoneszeroscount)" atleast_1d atleast_2d atleast_3dmr_dotpolyfitcovcorrcoefmedianaverageuniquesetxor1d setdiff1dunion1d intersect1din1dediff1dapply_over_axesapply_along_axis compress_ndcompress_rowcols mask_rowcols clump_maskedclump_unmaskedflatnotmasked_contiguousnotmasked_contiguousnotmasked_edges masked_allmasked_all_likeisindiagflat ndenumeratestackvstackc@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS) TestGenericcCsJtdtd}tddgddgtd}t||tddgddgd}td|d}td d gd d g|d}t||td |d}td d gd d ggd d gd d gg|d}t||td dd dgfg}td|d}tddgddg|d}t||td|d}tddgddg|d}t||td |d}tdggdgg|d}t||dS)Ndtypemaskr:abfnamesformatsrrr;r;r8r8r>r@bar@Zbbr@r;rE)r/floatr rnpr:)selftestcontroldtrRD/usr/local/lib/python3.9/site-packages/numpy/ma/tests/test_extras.pytest_masked_all&s6           zTestGeneric.test_masked_allcCstddtfgdffg}tjd|}tt|dtjjjtt|ddtjjjtt |dddt|ddj dt|ddj j ddS)Nr?cr;r;rErR rMr:objectmar/rtypecorer lenrZ _fill_valuerNZmy_dtype masked_arrrRrRrS"test_masked_all_with_object_nestedDsz.TestGeneric.test_masked_all_with_object_nestedcCsrtdtdffg}tjd|}tt|dtjjjtt |ddt|dj dt|dj j ddS)Nr?rVr;rErRrWr]rRrRrStest_masked_all_with_objectPs z'TestGeneric.test_masked_all_with_objectcCstddgtd}t|}tddgddgtd}t||tddgddgd}td d gd d g|d}t|}td d gd d g|d}t||td dd dgfg}tddgddg|d}t|}t||dS)Nr;r8r9r<r>r?r@rArDrE) rarGrHrJrK)r rLr0rrMr:)rNbaserOrPrQrRrRrStest_masked_all_likeZs  z TestGeneric.test_masked_all_likec CstddD]}td|D]}tj|td}tj||td}td|}|d|@dk|_d}||D]}||j|7}qf|t krt | |q|j|_t | |qq dS)Nr;r8r9r) rangerMr intfullr r=datasumr+r compressed) rNr@ijkjar>sslrRrRrS check_clumpns   zTestGeneric.check_clumpcCsVttd}t|gd<t|}tddtddtddg}t|||tdS)Nrarr;r8 rrsrdrt)r rMr r r*slicerrqrNr>rOrPrRrRrStest_clump_masked~s   zTestGeneric.test_clump_maskedcCsNttd}t|gd<t|}tddtddg}t|||tdS)Nrarrrvrsrdrt)r rMr r r+rwrrqrxrRrRrStest_clump_unmaskeds   zTestGeneric.test_clump_unmaskedcCstd}t|}t|td|jgtjdtd|_t|td|jgt ||dk|dkB|dkB<t|}t|tddtddgt |dd<t|}t|gdS) Nrarr9rvrtrsru) r r,rrwsizerMrboolr=r )rNr>rOrRrRrStest_flatnotmasked_contiguouss z)TestGeneric.test_flatnotmasked_contiguousN) __name__ __module__ __qualname__rTr_r`rcrqryrzr~rRrRrRrSr6$s    r6c @seZdZddZddZddZddZd d Zd d Zd dZ e j dgdddggddgdgfgdgdgdgdgddggdggdgfgddZ d d!ZdS)" TestAveragecCs$tgdgdd}tdt|ddtdt|gddt|gdd d \}}td|t|d kt|dd<tt|ddjd gtgdgdd}|d d }t|ddd f<tt|ddddgtt|d djdd gtddgt|ddt|dd d\}}t|ddgdS)N)?@@)TFFFr=rraxis)rrrrweightsTrreturned@r8r;rrrr)r rrrr r=reshape)rNZottresultwtsrRrRrStest_testAverage1s     zTestAverage.test_testAverage1c CsBgd}gdgdg}tdtjd}tt|dddtt|d|ddttdtjdd tdg}tt|dtjtdd d tt|ddtdd d tt|d dt|ddt|ddd gtt|d|d dtt|d|dgdtt|d dt|ddt|ddd gtd}gd}gdgdg}t d}gd} ttt ||dddttt ||dddttt ||ddj dgttt || dddtt tt ||dddt ||} tt| ddtt| ddgdtt| d dddgtt| d|dgddS)Nrr;r;r;r;rr;rrrrr;rsr9rr@rrrr(@r;rg @)rrrrr$@)rrr;r;rr)rr;r;r;r;r;Tr)rrX@rrg@@)rrrrrr) r rMZfloat64rrr addreducerrr r=r) rNw1w2xym1m2Zm3Zm4Zm5zrRrRrStest_testAverage2sF&    zTestAverage.test_testAverage2c Csftd}tdd}t||g||ggddd\}}tt|t|t|j|jttddddgdd\}}tt|t|ttddd \}}tt|t|ttdtddd \}}tt|t|tdd gdd ggt}t|d d gdd gg}t|dd} t| ddgt|dd} t| ddgt|dd} t| dt|dd} t| ddgdS)Nrsrvr;Trr8r8rvrrrr)rrr8Fr?rrg@?r)r rrrrr rLr ) rNr>r?r1rr2rZa2dZa2dmZa2daZa2dmarRrRrStest_testAverage3s*      zTestAverage.test_testAverage3cCstgddd}tjj|dgdgdggd}tgddd}t||ddd}td gd gd ggdgdgdgg}t||dS) Nr8rvrrvr;FTr)rr{rs)rrkeepdimsrrr)rMr rrYrr r)rNrr?wactualdesiredrRrRrStest_testAverage4s "zTestAverage.test_testAverage4c Cstdddd}tgdddd}tdd}tjj||d}|dddddf}t|d |d }tgd gd d}t||tdd}d |dddddf<d |d<tjj||d}t|d |d }ttj ddggdd}t||tdd}tjj||d}|dddddf}t|d|d }tddgddgd}t||t j t ddt|d|d Wdn1s0Yt j t ddt|d |d Wdn1s0Yt|d|d }t|d |j d }t||dS)N r8rv) rrrrrrrrrrrrrFrrrr;r)@ @"@)FFFTrrr;rr)TFFr;r;r8g@g @zHShape of weights must be consistent with shape of a along specified axis)matchrr;r8)r;r)rMr rr rgrYrr rnanpytestZraises ValueErrorT) rNrrmZymaZsubw0rrZsubw1rRrRrS$test_weight_and_input_dims_differentsN       ..z0TestAverage.test_weight_and_input_dims_differentcCs@ttddg}t|dttgdgdd}t|ddS)Nr;r8r)r;r8rvrFFTTr)rr rrNr>rRrRrStest_onintegers_with_mask1s z%TestAverage.test_onintegers_with_maskc Cstjgdgdgtd}tgdgdg|d}t|}t|}t|j|jt|j|jt|dd}t|jddt|jddd }t|j|jt|j|jt|d d}t|jd dt|jd dd }t|j|jt|j|jtgd gd g} t|| d } tj|| |d }t| j|jt| j|jt|| dd} t|j| ddt|j| ddd }t| j|jt| j|jt|| d d} t|j| d dt|j| d dd }t| j|jt| j|jdS)N)rrrr;rrr;rrrr9)ry?@y@@y@@y@ @)y"@?y@@y@@y@@rrrrr;)rrrrr)rrrrrrrr) rMr r}r rrjrrealimag) rNr=r>avexpectedZav0Z expected0Zav1Z expected1rZwavZwav0Zwav1rRrRrS test_complex8sR       zTestAverage.test_complexzZweights_unmaskedZweights_maskedZ avg_unmaskedZexpected_unmaskedZ avg_maskedZexpected_maskedZ avg_expectedrRrRrStest_masked_weights{sD      zTestAverage.test_masked_weights)rrrrrrrrrrrmark parametrizerrrRrRrRrSrs"" 3, rc@s$eZdZddZddZddZdS)TestConcatenatorcCszttdtgdtd}gd}t||d}t|dd|f}tt|tt|gdt|jt|dd|fdS)Nr;r8rvrr{rsr{)r;rrrrrr) r;r;r;r;r;rrr;r;r;r;r;) rrr rr r isinstancer r=)rNr?rdrUrRrRrStest_1ds zTestConcatenator.test_1dcCs0tjdd}tjdd}ttjddd}ttjddd}t||d}t||d}td||f}t|jdkt|ddddf|t|ddddf|t|j tj d||ft||f}t|jdkt|ddddf|t|ddddf|t|j tj ||fdS)Nr{rr1)r{ra)rar{) rMrandomrandroundr rrrrr=Zr_)rNZa_1Za_2Zm_1Zm_2Zb_1Zb_2rrRrRrStest_2ds    zTestConcatenator.test_2dcCspttjjdf}t|jddgt|jddtddgtjjf}t|jgdt|jddddgdS)Nr;TFr8)FFT)rrMrYr rr=rh)rNrrRrRrStest_masked_constants z%TestConcatenator.test_masked_constantN)rrrrrrrRrRrRrSrs rc@seZdZddZddZdS) TestNotMaskedcCsttdddgdgdgdgdgdgd}t|d}t|d d gt|d }t|d dd gt|d d d gt|d }t|d d dgt|d d dgt|jd}t|d d gt|jd }t|d dd gt|d dd gt|jd}t|d d dgt|d d dgt|d<t|d }t|d dd gt|d dd gt|d}t|d ddgt|d ddgdS)Nr{)rrr;rr)rrrr;r;)r;r;rrr)rrrrr)r;r;r;rrrrrr;r8rvrr;)rvrvrvrr)rrr8rrv)rr8rrr)rrrrr)r;r;r8rr)rr;r8r)rrr8rv)rr8rr)r rMr rr.rrhr rNrhrOrRrRrS test_edgess>        zTestNotMasked.test_edgesc Cs,ttdddgdgdgdgd}t|d}t|tdd dtd d dtd ddgt|d}t|tdd dtdddgtdd dtdddgtdd dtdddgtdd dtdddgtdddgtdddggtdddggt|d }t|tdd dggtdddtdddggdS)Nrrvrt)rrrrr;r;r;r;)r;r;r;r;r;r;r;r;)rrrrrrr;rrrrr;r8rsrd)r rMr rr-rrw)rNr>tmprRrRrStest_contiguouss:          zTestNotMasked.test_contiguousN)rrrrrrRrRrRrSrs"rc@s|eZdZddZddZddZejdgdejd d ge j j d fe j j d fgd dZ ddZddZddZdS)TestCompressFunctionsc Cs(tttdddd}tdt}d|d<t||d}t|}t |gd gd gd ggd gd gdggt|d}t |gdgdgdgdggdgdgdgdggt|d}t |gdgdgdggdgdgdggdgdgdggt|d}t|d}t|d}t ||t ||t ||t|d}t |gd gd gd gd ggd!gd"gd#gd$ggd gd%gd gdggt|d&}t|d'}t|d(}t ||t ||t ||t|d)}t |gdgdgdggdgdgdggt|d*}t ||t|d+}t |gd gd gd ggd!gd#gd$ggd gd gdggt|d,}t|d-}t|d.}t ||t ||t ||t|d/}t |gd gd gd gd ggd gd%gd gdggt|d0}t ||dS)1N<rvrr{rvrr{Tr;r;r;r)rr8rvr)rar ))(*+,)2456)79:;rr)r{rsrdrtru)rarrrr)rrrrr)r)rrr)-./01)r3rrr)r8rrrr;)rrr)r !")#$%&'rVr)rr8)r{rdrtru)rrrr)rr)rrrr)rrrr)r r r r r7r)rr)rrr)rr8)r;r)rrrr8)rr) rMr listrerrastyper}r'r)rNrrr>a2a3Za4rRrRrStest_compress_nds                                   z&TestCompressFunctions.test_compress_ndcCsttdddgdgdgdgd}tt|ddgdd ggtt|d gd gd gtt|d d dgddgdd ggt|jgdgdgdgd}tt|d dgdd ggtt|d gdgd gtt|d d dgddgdd ggt|jgdgdgdgd}tt|d ggtt|d gd gtt|d dgdgd ggt|jgdgdgdgd}tt|jd tt|d jd tt|d jd dS)Nrurvrrrrr{rdrtrr)rsrdrtr;r8rr;rrsrr)r rMr rrr(_datar|rNrrRrRrStest_compress_rowcolss$" "  z+TestCompressFunctions.test_compress_rowcolscCsHttdddgdgdgdgd}tt|jgdgdgdgtt|djgdgdgdgtt|djgdgdgdgt|jgdgd gdgd}tt|jgd gdgd gtt|djgdgdgdgtt|djgd gd gd gt|jgdgd gdgd}tt|jgdgdgd gtt|djgdgdgdgtt|djgd gd gd gt|jgdgd gd gd}tt| t utt|d t utt|d t utt|j tt|dj tt|dj dS) Nrurvrrrrrr;r#)r;r;rr) r rMr rrr)r=r$rallr r%rRrRrStest_mask_rowcolssN            z'TestCompressFunctions.test_mask_rowcolsr)Nrr;func rowcols_axisrr;cCstttdddgdgdgdgd}tt,|||d}t|t||Wdn1sf0YdS)Nrurvrrrr)r rMr rrDeprecationWarningrr))rNrr)r*rresrRrRrS#test_mask_row_cols_axis_deprecations   z9TestCompressFunctions.test_mask_row_cols_axis_deprecationcCs0tdd}gd}t||ddd}t||ddd}t||dd}t|jddgdd ggt||dd}t|jgd gd gd gt||d d}t|t|d |d t||d d}t|t|d |d gd }t||ddd}t||ddd}t||dd}t|jd dgddggt||dd}t|jgdgdgd gt||d d}t|t|d |d t|t||t||d d}t|t|d |d gd}t||ddd}t||ddd}t||}t|jtt||}t|jtt|gdddd}t|gdddd}t||dd}t|jddgd d ggt||d d}t|t|d |d t||dd}t|jgd gd gd gt||d d}t|t|d |d t|gd ddd}t|gdddd}t||dd}t|jd d gddggt||}t|t|d |d t||dd}t|jgdgdgdgt||d d}t|t|d |d t|gd ddd}t|gdddd}t||dd}t|jdd gddggt||d d}t|t|d |d t||dd}t|jgdgd gdgt||d d}t|t|d |d ttdddddd gd d ggd d gd d gggd}ttddddd d gd d ggd d gd dgggd}t||dd}t|jddgddggd d gd dgggd d gd dggd d gd dggggt||d d}t|jd d gd dggd d gd d gggd d gd d ggd d gd d ggggt||dd}t|jdd gd d ggdd gd d gggdd gd d ggddgddggggt||d d}t|jd d gd d ggd d gd d gggd d gd d ggdd gd d ggggttdddddd gd d ggd d gd d gggd}d}t||dd}t|jdd gd d ggd d gd d gggt||d d}t|jdd gd d ggd d gd d gggt||dd}t|jdd gd d ggd d gd d gggt||d d}t|jdd gd d ggd d gd d gggttdddddd gd d ggd d gd d gggd}ttdd dgd}t||dd}t|jddgddggt||d d}t|jdd gd d ggdS)Nr;rd)r;rrrrrrr8rvT)strictrrrFrrrrrr;r)rrrrrr)rrr;rrrrtr) rMr r rrrr=filledr)rNnrr>r?rUrRrRrStest_dots      ((((zTestCompressFunctions.test_dotcCsntd}t|}ttt||tuttt||tuttt||tuttt||tudS)Nrv)rMeyer rrZrr rNr>r?rRrRrStest_dot_returns_maskedarray:s  z2TestCompressFunctions.test_dot_returns_maskedarraycCsDttd}ttd}t|||d}t||ut||dS)Nrv)rvrvout)r rMr3rrrr)rNr>r7r,rRrRrS test_dot_outCs  z"TestCompressFunctions.test_dot_outN)rrrr"r&r(rrrrMrYZ mask_rowsZ mask_colsr-r2r5r8rRrRrRrSrsp   o rc@seZdZddZddZdS)TestApplyAlongAxiscCs@tdddd}dd}t|d|}t|ddgdd ggdS) Nrr8rvcSs|dSNr;rR)r?rRrRrSmyfuncPsz*TestApplyAlongAxis.test_3d..myfuncr;rrdrar rr&rrNr>r;ZxarRrRrStest_3dMs zTestApplyAlongAxis.test_3dcCsFtdddd}d dd}t|d|dd}t|dd gd d ggdS) Nrr8rvrcSs |d|Sr:rR)r?offsetrRrRrSr;Zsz1TestApplyAlongAxis.test_3d_kwargs..myfuncr;)r?r{rtr)rr<r=rRrRrStest_3d_kwargsWs z!TestApplyAlongAxis.test_3d_kwargsN)rrrr>r@rRrRrRrSr9Ks r9c@seZdZddZdS)TestApplyOverAxescCstdddd}ttj|ddg}tdgdgdggg}t||t||dt <ttj|ddg}td gd gdggg}t||dS) Nrr8rvrrr\|rr) r rr%rMrir rr rr})rNr>rOZctrlrRrRrS test_basiccs zTestApplyOverAxes.test_basicN)rrrrDrRrRrRrSrAasrAc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZejjdgddd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Zd2S)3 TestMediancCs4tjjtjtjgtjtjggdd}t|tjdS)Nrr)rMrYrinfrrNrrRrRrS test_pytypeos$zTestMedian.test_pytypecCstjjtjtjtjgtjtjggdd}t|tjtjjtjtjtjgtjtjggdd}t|tjtjjtjjtjtjgtjtjggdddd}t|jdtjjtjjtjtjgtjtjggdddd}t|jddS)NrrTr)rMrYrr rFrr=rGrRrRrStest_infss8       zTestMedian.test_infcCsltd}ttj|dtttj|tutd}ttj|dtttj|tud}ttj|dtttj|tutd dd}ttjj|dd tj|dd ttjj|d d tj|d d ttjj|d d tutd  dd}ttjj|dd tj|dd ttjj|d d tj|d d ttjj|d d tudS) Nrurrtrr{rHrrr;gR@) rMr rrYrrrZr rerr%rRrRrStest_non_maskeds"     zTestMedian.test_non_maskedcCsttddgddgdd}ttj|dttj|jddtttj|t uttd  d d dgd dgdd}ttj|d ttj|jddtttj|t utjj|ddd}t|ddgt|jddtt|t udS)z5test the examples given in the docstring of ma.medianrtrrr;rrrRshape mismatchrar8r{rsrrTrZoverwrite_inputrrr7N) r rMr rrYrrrrZr r)rNrZma_xrRrRrStest_docstring_exampless"*z"TestMedian.test_docstring_examplesc Csd}tdD]}dD]}td||d}tt| |ddg}|D]F\}}ztjj|||dWqBtyt|||||fYqB0qBt|d |gddg}|D]J\}}ztjj|||dWntj j yYq0t|||||fqqq dS) Nz5mask = %s, ndim = %s, axis = %s, overwrite_input = %sr{)FTr;)ndminr=FTrN) rer itertoolsproductrMrYr ExceptionAssertionError exceptionsZ AxisError)rNmsgrPr=rargsrZoverrRrRrStest_axis_argument_errorss"    z$TestMedian.test_axis_argument_errorscCsDtddd}ttj|dtddd}ttj|tjjdS)Nr;FrT)r rrMrYrr r%rRrRrStest_masked_0ds  zTestMedian.test_masked_0dcCsttddd}ttj|tjjttj|jddtt tj|tjj j uttddd}ttj|dttj|jddtt tj|t uttdgdd}ttj|d ttj|jddtt tj|t uttdgd d}ttj|d ttj|jddtt tj|t uttdgd d}ttj|d ttj|jddtt tj|t uttdgd d}ttj|d ttj|jddtt tj|t uttdgdd}ttj|d ttj|jddtt tj|t uttdgdd}ttj|d ttj|jddtt tj|t udS)Nr{TrrRrMFrrr)rr;r;r;r;r)rr;r;rrrrrsrr) r rMr rrYrr rrrZr[ZMaskedConstantr r%rRrRrStest_masked_1ds@zTestMedian.test_masked_1dcCsBttjtgdgddjtjtgdgddjdS)Nrrrr#)rrMrYrr rrNrRrRrStest_1d_shape_consistencysz$TestMedian.test_1d_shape_consistencycCsd\}}ttdd|}t|dd<|dd<ttj||ftd}|dd|dddf<tt|}td|D]$}tj ||||dd|f<qxt t |dddfdt t |dt t |dd t |t t |jdd t |dS) N)errrar9rr;r)r rMZlinspacer emptyrLr r\rershufflerrrr)rNr1prridxrkrRrRrSrs zTestMedian.test_2dcCsttddd}t|dd<|dd<tt|dtttj |t utt|ddgdtttj j|ddt utt|d dgd tttj j|d dt utt|d dj gd dS) Nrrarv-@rr)+@reg/@r;) rrrrarrrrrr) r;r;r;rrrrr;r;r;) r rMr rr rrrrZrYr r=r%rRrRrS test_2d_waxisszTestMedian.test_2d_waxiscCstjdddd}t||ddk<tt|dddgdd gddgd d ggd |_tt|dd d gdd gddggtjdddd}t||ddk<tt|ddd gddgddggdS)Nrrvrr8rrrursrr)rrvr8crarrrr{rtrr)rMrYr rr rrrr%rRrRrSr>s("zTestMedian.test_3dcCsLttddd}t|dd<|dd<tt|ddt|dddS)Nrrarvrdrrr;)r rMr rr rrr%rRrRrS test_neg_axisszTestMedian.test_neg_axiscCsdD]~}tt|}t|dd<|dd<ttd}t||d}|dkr\t|dn t|dt||utt|t uqdS) N)r>@rg?@rvrdrRr6rreg.@) r rMr r rrrrrZr )rNvrr7rHrRrRrS test_out_1ds    zTestMedian.test_out_1dcCsdD]}tt|dd}t|dd<|dd<ttd}t|d|d}|dkrtd gdgd d gdd gdd gd d gdd}n>td gdgdd gdd gdd gd d gdd}t||t||utt |t uqdS)N)rgD@rrjrarrvrdr;)rr7rr)rarrrTFrr)rfg1@g5@g9@) r rMr rr rrrrrZr )rNrkrr7rHerRrRrStest_out,s  zTestMedian.test_outr)Nr;rVr)rdr)argnamesZ argvaluescstjdtd}tjdt|jdddf}|tj}tj|t |<t t |j|d|durtdj }n*t |j t fddtj D}t t|}t|d|d }||usJt|j|dS) N)rvr{rdrr9)rrrVc3s$|]}|vrdnj|VqdS)r;N)r).0rkZ axis_normrrRrS Rsz/TestMedian.test_keepdims_out..T)rrr7)rMrr}rr rrZintprtupler rndimrrer`rr)rNrr=rZ shape_outr7rrRrrrStest_keepdims_out=s $    zTestMedian.test_keepdims_outcCsFddgddgddgg}tj|d}ddg}ttjj|dd|dS)Nrrrrr)rMrYZ masked_equalrr)rNrhr^rrRrRrS$test_single_non_masked_value_on_axisYsz/TestMedian.test_single_non_masked_value_on_axiscCsdtjdtdfD] }tjdtjdggdg}||_tjj|dd}tt |t |tjtjj| dd}tt |t |tjtjj|dd}t t |tt |dtjdgtjj|dd}t t |tt |tjd gtjj|d d}t t |tt |tjd gqtjdtjdggdg}tjj|ddd f<t tjj|ddtjt tjj|dddtjdgt tjj|ddtjd gdS) NFrsr9r;rvrrrr8rr)rMrr}rYr rr=rrisscalarrZravelrrZr r )rNr=dmrHrRrRrStest_nanbs.  zTestMedian.test_nancCstjtd}tjtd}tj|d<tjj|d<ttjj|d|d|tjtd}ttjj|d|d|tjtd }ttjj||d|dS) N)rrvrr8r;rFrr6rvr;rR) rMrYr rrrr rr)rNorrRrRrS test_out_nans  zTestMedian.test_out_nancCstjtjdtd}tjj|ddd<tj|d<ttj|tjttjj|ddtjtjtjdtd ddd}t|j ddk|_ | }tj|d <tj|d <ttj|tjt ttj|tjj|dd}tj|d <tj|d <ttj|d|tjj|dd}tj|d <tj|d <ttj|d|tjj|dd}tj|d<tj|d<ttj|d|dS)Nrr9rvr8rrrr;r)r;r;r8r8rvrr;rvr)rMrYr r rLr rrrrr|r=copyrrxr)rNr>Zaorigr?rRrRrStest_nan_behaviors0          zTestMedian.test_nan_behaviorcCstjgdgdgtjd}tjj||dkd}ttjj|dddttjj|ddjdttjj|d d|d ttj|ddS) N)rvrvr9rvrr;rrFr)rMr Zuint8rYr rrr=rrRrRrStest_ambigous_fills zTestMedian.test_ambigous_fillcCstjtj fD]}t|tjgtjtjgg}tjj|t|d}ttjj|dd|tjgttjj|dd|tjgttj||ttjtj|gtjtj|gg}tjj|t|d}t tjj|dd|t tjj|ddj dt tjj|dd|dt tj||t||g||gg}ttj||ttjj|dd|ttjj|dd|tj|d| dgdtjtjd gd tjtj|ggtj d }tjj|t|d}|dkrttjj|ddd d | dgttj|dn2ttjj|dddd | dgttj|dttjj|dddd|gt ddD]}t ddD]}ttjg||g|gd}tjj|t|d}ttj||ttjj|dd|ttjj|ddtjg||g|qhqZqdS)Nrrrr;Frdir_r{rr9rrrg@g$g"gr^rar8) rMrFr rrYr isnanrrrr=Zfloat32re)rNrFr>rkrlrRrRrS test_specialsL"   "zTestMedian.test_specialcCstjtjgtd}tB}|tttj |tj t |j dj tuWdn1sd0Ytjtjgtdd}tP}|ttddtttj |tj t |j dj tuWdn1s0Ytjtjgtdd}ttjj |dd|ttjj |d d|tjtjtj tdd}tjd d F}tddtttjj |dd|t |dj tuWdn1s0YdS) Nr9rrv)r:rPalwaysr8rr;T)record)rMrYr r rLrrRuntimeWarningrrrrlogcategorywarningsfilterwarningsrcatch_warnings)rNr>rr?rRrRrS test_emptys& 2 2zTestMedian.test_emptycCsXtjtd}tttj|tt tj |d<tttj|tt dS)Nrr8) rMrYr r rrZrrrXrLr)rNr~rRrRrS test_objects zTestMedian.test_objectN)rrrrIrJrLrOrXrYrZr\rrgr>rirlrnrrrrvrwrzrrrrrrrRrRrRrSrEns6&     # +rEc@s4eZdZddZddZddZddZd d Zd S) TestCovcCsttjd|_dSNr)r rMrrrhr[rRrRrS setup_methodszTestCov.setup_methodcCsZ|j}tt|t|ttj|ddt|ddttj|dddt|ddddS)NFrowvarTrbias)rhrrMrr%rRrRrStest_1d_without_missing s  zTestCov.test_1d_without_missingcCsb|jdd}tt|t|ttj|ddt|ddttj|dddt|ddddS)NrvrFrTr)rhrrrMrr%rRrRrStest_2d_without_missings  zTestCov.test_2d_without_missingcCs>|j}t|d<||8}|}tt|t|ttj|ddt|ddttj|dddt|dddzt|ddWntyYn0|dd}tt||dddt||dddttj||dddddt||dddddttj||ddddddt||dddddddS)NrFrTrZ allow_maskedr;)rhr meanrjrrMrr)rNrnxrRrRrStest_1d_with_missings*    ,zTestCov.test_1d_with_missingcCs6|j}t|d<|dd}tt|t}t||j }|| ddddf d}t t |t ||jdd|dt t |ddtj |dd|jd|t|j |}|| d d}t t |d d tj |d d |jdd|dt t |d dd tj |d dd |jd|dS) Nrrvrr;rrTrFrr)rhr rrMZ logical_notrrrfrrrr0rrr)rNrZvalidfracZxfrRrRrStest_2d_with_missing2s8      zTestCov.test_2d_with_missingN)rrrrrrrrrRrRrRrSrs rc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestCorrcoefcCs(ttjd|_ttjd|_dSr)r rMrrrhdata2r[rRrRrSrJszTestCorrcoef.setup_methodcCs|j|j}}t|}t||}t}tdttt|dd| tdt tj|ddt|ddt t|dd|t t||dd|t t|dd|t t||dd|Wdn1s0YdS)NrrZddofbias and ddof have no effectrrv rhrrMrrr simplefilterrr+filterr)rNrrrZ expected2suprRrRrS test_ddofNs    zTestCorrcoef.test_ddofcCs|j|j}}t|}tl}tdttt||ddttt||ddttt|dd| tdt t|dd|Wdn1s0YdS)NrTFrrr;r)rNrrrrrRrRrS test_bias^s   zTestCorrcoef.test_biascCs|j}tt|t|ttj|ddt|ddt<}|tdttj|dddt|dddWdn1s~0YdS)NFrrTr)rhrrMrrrr+rNrrrRrRrSrks   z$TestCorrcoef.test_1d_without_missingcCs|jdd}tt|t|ttj|ddt|ddt<}|tdttj|dddt|dddWdn1s0YdS)NrvrFrrTr)rhrrrMrrrr+rrRrRrSrvs   z$TestCorrcoef.test_2d_without_missingc Cs|j}t|d<||8}|}tt|t|ttj|ddt|ddt<}|t dttj|dddt|dddWdn1s0Yzt|ddWnt yYn0|dd}tt||dddt||dddttj||dddddt||dddddt|}|t dtt||dddt||ddddd tt||dddt||dddd d Wdn1s0YdS) NrFrrTrrr;rr8r) rhr rrjrrMrrrr+r)rNrrrrRrRrSrs<    "  , z!TestCorrcoef.test_1d_with_missingcCs$|j}t|d<|dd}t|}t|}t|ddddf|ddddft}|tdtt|ddddddf|ddddftt|ddddddf|ddddftt|ddddddf|ddddfWdn1s0YdS) Nrrvrrrrr;r) rhr rrrMrrrr+)rNrrOrPrrRrRrSrs"  * z!TestCorrcoef.test_2d_with_missingN) rrrrrrrrrrrRrRrRrSrHs   rc@seZdZddZddZdS)TestPolynomialcCstjd}tjddd}tt||dt||d|t}t|d<|t}t|d<|d<t||dddfdd d \}}}}}tj|d d|d ddf dd d \}} } } } t |||||f|| | | | fD]\} }t| |qt||dddfdd d \}}}}}tj|d d|d ddfdd d \}} } } } t |||||f|| | | | fD]\} }t| |qht||dd d \}}}}}tj|d d|d dddfdd d \}} } } } t |||||f|| | | | fD]\} }t| |qtjdd }| }|d d}|d d}|d d}t||dd |d \}}}}}tj||dd |d \}} } } } t ||t |||||f|| | | | fD]\} }t| |qdS) Nrarrr8rvrrDrrTrgr;)rgr) rMrrrrrviewr r rjziprr)rNrrCRKSDrUrHrmrorr>a_rZwoZxsZyswsrRrRrS test_polyfits>   &"& &0&4&    &zTestPolynomial.test_polyfitcCstjd}tjddd}tj|d<tj|d<|t}|t}t|d<t|d<t||ddd \}}}}}tj|d d|d dddfddd \}} } } } t |||||f|| | | | fD]\} }t | |qdS) Nrarrr8rrrvTrr;) rMrrrrrr r rrr)rNrrrrrrrrUrHrmrorr>rrRrRrStest_polyfit_with_masked_NaNss     4&z,TestPolynomial.test_polyfit_with_masked_NaNsN)rrrrrrRrRrRrSrs'rc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!S)"TestArraySetOpscCsngd}t|ddd}tt|dtt|dtgdgddt|dgd t|d gd dS) Nr;r;r;r8r8rvTZ return_indexZreturn_inverserrrrr;)rrvr{r8)rrrr;r;r8)rrrr rr rrRrRrStest_unique_onlists z"TestArraySetOps.test_unique_onlistcCstgdgdd}t|ddd}t|dtgdgddt|d gd t|d gd d |_tgdgdd d}t|ddd}t|dtgdgddt|d gd t|d gd dS)Nr)rrr;rr;rrTrr)r;r8rvrrrrr;r;)rrvr{r8r8)rrrvr;rvr8rv)rhr= fill_value)r rrrrrRrRrStest_unique_onmaskedarraysz)TestArraySetOps.test_unique_onmaskedarraycCstgddd}t|ddd}t|dtdgdgdt|ddgt|dgdt}t|ddd}t|dttt|ddgt|ddgdS) NrTrrrr;r8r)r rrr rrRrRrStest_unique_allmaskedsz%TestArraySetOps.test_unique_allmaskedcCsdttdgdd}tgdgdd}t|}t||t|d|dt|j|jdS)Nr{r;rrrr;r)r;r;r;r)r;rrr;r)r rMr r r$rr0r=)rNrrPrOrRrRrS test_ediff1ds  zTestArraySetOps.test_ediff1dcCsttdgdd}t|td}tgdgdd}t||t|d|dt|j|jt|gdd}tgd gd d}t||t|d|dt|j|jdS) Nr{rr)to_begin)rr;r;r;r)r;r;rrr;rr)r;r8rvr;r;r;r)rrrr;rrr; r rMr r$r r rr0r=rNrrOrPrRrRrStest_ediff1d_tobegin s   z$TestArraySetOps.test_ediff1d_tobegincCsttdgdd}t|td}tgdgdd}t||t|d|dt|j|jt|gdd}tgd gd d}t||t|d|dt|j|jdS) Nr{rr)to_end)r;r;r;rr)r;rrr;r;rr)r;r;r;rr;r8rv)r;rrr;rrrrrrRrRrStest_ediff1d_toend/s   z"TestArraySetOps.test_ediff1d_toendcCsttdgdd}t|ttd}tgdgdd}t||t|d|dt|j|jt|gdtd}tgd gd d}t||t|d|dt|j|jdS) Nr{rrrr)rr;r;r;rr)r;r;rrr;r;rr)rr;r;r;rr;r8rv)r;r;rrr;rrrrrrRrRrStest_ediff1d_tobegin_toend>s  z*TestArraySetOps.test_ediff1d_tobegin_toendcCstd}t|}tgdgdd}t||tt|tt|d|dt|j |j t|t t d}tgdgdd}tt|tt|d|dt|j |j dS) Nr{r;r;r;r;rrrrrrrrr) rMr r$r rrrr r0r=r rrRrRrStest_ediff1d_ndarrayNs  z$TestArraySetOps.test_ediff1d_ndarraycCsTtgdgdd}tgdgdd}t||}tgdgdd}t||dS)N)r;rvrvrvrr)rvr;r;r;)r;rvrr)r r"r)rNrrrOrPrRrRrStest_intersect1d^s  z TestArraySetOps.test_intersect1dcCs$tgdgdd}tgdgdd}t||}t|tgdtgdgdd}gd}t||}t|tgdgd dtgd }tgd }t||}tt|tt|gd tgd gdd}tgdgd d}t||}tt|tt|gd tgtggdS)Nr;r8r{rdrrrrrr;rr;r8rvrr{rr/)rvrrd)r;r8rvrr{)rvrrdrrr)rsr{rr)r;rtr8rv)rr;rr)rsr{rrt)r rrrrr rrNr>r?rOrRrRrS test_setxor1dfs&      zTestArraySetOps.test_setxor1dcCstdgd}tgd}d|d<t||d}tgdgdd}tdtd }d |d <d |d <d |d <t||}tt|t t ||t|||j |j @}t ||dS)Nrrr;)r;r8rr) rrarrr;rvrrr) rr;rr;rr;rr;r)rhr=r9Trr)rr8rv) rMr rrr r}r1rrr rr=)rNr>r=r?ecrUrrRrRrS test_isins     zTestArraySetOps.test_isincCstgdgdd}tgdgdd}t||}t|gdtgdgdd}tgdgd d}t||}t|gd tgtggdS) Nrrrrr/)TTTFTr{r{r8r;rr;r{rr)TTFTT)r r#rrrrRrRrS test_in1ds  zTestArraySetOps.test_in1dcCstgdgdd}tgdgdd}ttt||t||ddtgdgdd}tgd gd d}ttt||t||ddtgtggdddS) Nrrrrr/T)invertrrr)r rrMrr#rr4rRrRrStest_in1d_inverts  z TestArraySetOps.test_in1d_invertc Cstgdgdd}tgdgdd}t||}tgdgdd}t||tgdgdggd gd gd}tgd gd d}tgd gdd}t||}t||tgtggdS)N)r;r8r{rdr{rr/rr)r;r8rvrr{rdr)rrrrrrr;rrrrrr)rr;r8rvrr{)r r!rr) rNr>r?rOrPrrZezrrRrRrS test_union1ds  $  zTestArraySetOps.test_union1dcCstgdgdd}tgd}t||}t|tgdgddtd}td}tt||tdd gtgtjgd}tt|gjtjdS) N)rsr{rrdrdr;r8r;)rrrrrrrr;r)r8rrvrvr8r;r{)rsrdrrrartru)r r rr rMZuint32r:rrRrRrStest_setdiff1ds  zTestArraySetOps.test_setdiff1dcCs8tgd}tgd}tt||tdgdS)N)r>r?rU)r>r?rorU)rMr rr r4rRrRrStest_setdiff1d_char_arraysz)TestArraySetOps.test_setdiff1d_char_arrayN)rrrrrrrrrrrrrrrrrrrrRrRrRrSrs     rc@seZdZddZddZdS) TestShapeBasecCsntgdgdd}t|}t|jdt|jj|jjt|jdt|jj|jjt|jj|jjdS)Nrr#rrr})r rrrr=rhr4rRrRrStest_atleast_2ds  zTestShapeBase.test_atleast_2dcCstd}t|jdt|jj|jt|jj|jtdd}|D]0}t|jdt|jj|jt|jj|jqBtd}t|jdt|jj|jt|jj|jtdd}|D]0}t|jdt|jj|jt|jj|jqtd}t|jdt|jj|jt|jj|jtdd}|D]2}t|jdt|jj|jt|jj|jq*td}t|jdt|jj|jjdS)NrrVrrEr)rrrr=rhrrr2)rNr?r>rRrRrStest_shape_scalars<          zTestShapeBase.test_shape_scalarN)rrrrrrRrRrRrSrs rc@s$eZdZddZddZddZdS)TestNDEnumeratecCstdd}tj|td}t||d}ttt|tt|ttt|tt|ttt|tt|dddS)Nr)r;rvr8r9rFrj) rMr rZ zeros_liker}r rrr3)rNZordinaryZ empty_maskZ with_maskrRrRrStest_ndenumerate_nomaskeds     z)TestNDEnumerate.test_ndenumerate_nomaskedcCstd}td}td}ttt|gttt|gttt|ddtttddtgttt|gttt|ddtttddtgdS)NrR)drFrrr)r/rrr3rrMZndindexr )rNr>r?rUrRrRrStest_ndenumerate_allmaskedsz*TestNDEnumerate.test_ndenumerate_allmaskedcCsttddgdgdgdgd}gd}ttt||tttt|dd |jt|dd D]\}}t|||qldS) Nrr{r)r;r;rr;rr))rrs))r8rrt)r|ru)rFra)rrFr) r rMr rrrr3r\r|)rNr>itemsZ coordinatevaluerRrRrStest_ndenumerate_mixedmasked%sz,TestNDEnumerate.test_ndenumerate_mixedmaskedN)rrrrrrrRrRrRrSr s  rc@s$eZdZddZddZddZdS) TestStackcCstgdgdd}tgdgdd}t||gdd}t|jdt|j|djt|j|d jt||g}t|j|jt|j|jt||gd d}t|jd t|j|dddfjt|j|ddd fjdS) Nrr#rrurtrdrrrrr;rvr8r r4rrrr=r5rhrNr>r?rUrrRrRrS test_stack_1d4s   zTestStack.test_stack_1dcCstgddd}tgddd}t||gdd}t|jdt|j|djt|j|d jt||g}t|j|jt|j|jt||gd d}t|jd t|j|dddfjt|j|ddd fjdS) NrTrrFrrrr;rrrrRrRrStest_stack_masksFs   zTestStack.test_stack_masksc Csd}tjdd|}tjdd|}tjdd|t}tjdd|t}t||d}t||d}t||gdd}d|} t|j| t |j |dj t |j |dj t||gd d}|d} t|j| t |j |d j t |j |d j d }tjdd|}tjdd|}tjdd|t}tjdd|t}t||d}t||d}t||gdd}d|} t|j| t |j |dj t |j |dj t||gd d}|d} t|j| t |j |d j t |j |d j dS) Nrrrar8rrr7r;r).r).r;)rvr8rr{) rMrrandintrr}r r4rrrr=) rNZshpZd1Zd2rrZa1r rUZc_shprRrRrS test_stack_ndXsD        zTestStack.test_stack_ndN)rrrrrrrRrRrRrSr2sr)N__doc__rrQrnumpyrMZnumpy._core.numericrZ numpy.testingrrZnumpy.ma.testutilsrrrrZ numpy.ma.corer r r r r rrrrrrZnumpy.ma.extrasrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6rrrrr9rArErrrrrrrrRrRrRrSsB 4 ,F4 Ck:i7&