o 6a@sdZddlZddlZddlZddlZddlmZmZddl m Z m Z m Z m Z ddlmZmZmZmZmZmZmZmZmZmZmZddlmZmZmZmZmZm 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;GdddZGd ddZ?GdddZ@GdddZAGdddZBGdddZCGdddZDGdddZEGdddZFGdddZGGdd d ZHGd!d"d"ZIdS)#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) 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_likeisindiagflatstackvstackc@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)Ndtypemaskr8abfnamesformatsrrr9r9r6r6r<r>bar>bbr>r9rC)r.floatrrnpr8)selftestcontroldtrQr?rBrC) rbrErFrHrJ)rrKr/rrLr8)rMbaserNrOrPrQrQrRtest_masked_all_likeYs  z TestGeneric.test_masked_all_likec CstddD]W}td|D]N}tj|td}tj||td}td|}|d|@dk|_d}||D] }||j|7}q3|t krMt | |q |j|_t | |q qdS)Nr9r6r7r) rangerLr intfullr r;datasumr*r compressed) rMr>ijkjar<sslrQrQrR check_clumpms   zTestGeneric.check_clumpcCsVttd}t|gd<t|}tddtddtddg}t|||tdS)Nrbrr9r6 rrtreru)r rLr r r)slicerrrrMr<rNrOrQrQrRtest_clump_masked}s   zTestGeneric.test_clump_maskedcCsNttd}t|gd<t|}tddtddg}t|||tdS)Nrbrsrwrtreru)r rLr r r*rxrrrryrQrQrRtest_clump_unmaskeds   zTestGeneric.test_clump_unmaskedcCstd}t|}t|td|jgtjdtd|_t|td|jgt ||dk|dkB|dkB<t|}t|tddtddgt |dd<t|}t|gdS) Nrbrr7rwrurtrv) r r+rrxsizerLrboolr;r )rMr<rNrQrQrRtest_flatnotmasked_contiguouss z)TestGeneric.test_flatnotmasked_contiguousN) __name__ __module__ __qualname__rSr`rardrrrzr{rrQrQrQrRr4#s   r4c@s<eZdZddZddZddZddZd d Zd d Zd S) 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@r6r9rrrr)rrrrr r;reshape)rMottresultwtsrQrQrRtest_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)Nrr9r9r9r9rr9rrrrr9rtr7rr@)rrrr(@r9rg @)rrrrr$@)rrr9r9rr)rr9r9r9r9r9Tr)rrX@rrg@@)rrrrrr) r rLfloat_rrraddreducerrr r;r) rMw1w2xym1m2m3m4m5zrQrQrRtest_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)Nrtrwr9Tr)r6r6rwrrrr)rrr6Fr?rrg@?r)r rrrrrrKr ) rMr<r=r1rr2ra2da2dma2daa2dmarQrQrRtest_testAverage3s*      zTestAverage.test_testAverage3cCs@ttddg}t|dttgdgdd}t|ddS)Nr9r6r)r9r6rwr)FFTTr)rrrrMr<rQrQrRtest_onintegers_with_masks 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)rrrr9rrr9rrrr7)ry?@y@@y@@y@ @)y"@?y@@y@@y@@rrrrr9)rrrrr)rrrrrr)rr) rLrr~r rrkrrealimag) rMr;r<avexpectedav0 expected0av1 expected1rwavwav0wav1rQrQrR test_complexsR       zTestAverage.test_complexcCstjjtdddgdgdgdgd}tgddd}tgdgdd}t|d|dd }tgd }t||t|d|dd }tgd }t||dS) Nrvrwr9rrrrrr)r|Frr)@g@g@)rg0N@g0N@)rLrXrr rr rr)rMr<weights_unmaskedweights_masked avg_unmaskedexpected_unmasked avg_maskedexpected_maskedrQrQrRtest_masked_weights's zTestAverage.test_masked_weightsN) rrrrrrrrrrQrQrQrRrs" ,rc@$eZdZddZddZddZdS)TestConcatenatorcCszttdtgdtd}gd}t||d}t|dd|f}tt|tt|gdt|jt|dd|fdS)Nr9r6rwrr|rtr|)r9rrrrrr) r9r9r9r9r9rrr9r9r9r9r9) rrrrr r isinstancer r;)rMr=mdrTrQrQrRtest_1d<s 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|rb)rbr|) rLrandomrandround_r rrrrr;r_)rMa_1a_2m_1m_2b_1b_2rrQrQrRtest_2dGs    zTestConcatenator.test_2dcCspttjjdf}t|jddgt|jddtddgtjjf}t|jgdt|jddddgdS)Nr9TFr6)FFT)rrLrXr rr;ri)rMactualrQrQrRtest_masked_constant[s z%TestConcatenator.test_masked_constantN)rrrrrrrQrQrQrRr9s rc@eZdZddZddZdS) 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|)rrr9rr)rrrr9r9)r9r9rrr)rrrrr)r9r9r9rrrrrr9r6rwrr9)rwrwrwrr)rrr6rrw)rr6rrr)rrrrr)r9r9r6rr)rr9r6r)rrr6rw)rr6rr)r rLr rr-rrir rMrirNrQrQrR test_edgeshs>        zTestNotMasked.test_edgesc Cs,ttdddgdgdgdgd}t|d}t|tdd dtd d dtd ddgt|d}t|tdd dtdddgtdd dtdddgtdd dtdddgtdd dtdddgtdddgtdddggtdddggt|d }t|tdd dggtdddtdddggdS)Nrrwru)rrrrr9r9r9r9)r9r9r9r9r9r9r9r9)rrrrrrr9rrrrr9r6rtre)r rLr rr,rrx)rMr<tmprQrQrRtest_contiguouss:           zTestNotMasked.test_contiguousN)rrrrrrQrQrQrRres "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<rwrr|rwrr|Tr9r9r9r)rr6rwr)rb ))(*+,)2456)79:;rr)r|rtrerurv)rb rrr)rrrrr)r)rrr)-./01)r3rrr)r8r r r r9)rrr)r !")#$%&'rUr)rr6)r|rerurv)rrrr)rr)rrrr)rrrr)rrrrr5r)r)rr9)rrr9r6)rr6)r9r)rrrr6)rr) rLrlistrfrrastyper~r&r)rMrrr<a2a3a4rQrQrRtest_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)Nrvrwrrrrr|rerurr)rtrerur9r6rr9rrtrr9r6rrr9)rrLr rrr'_datar}rMrrQrQrRtest_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) Nrvrwrrrrrr9r*)r9r9rr,) rrLr rrr(r;r-rallr r.rQrQrRtest_mask_rowcols1sN            z'TestCompressFunctions.test_mask_rowcolsr)Nrr9func rowcols_axisrr9cCsvttdddgdgdgdgd}tt|||d}t|t||WddS1s4wYdS)Nrvrwrrrr)rrLr rrDeprecationWarningrr()rMrr2r3rresrQrQrR#test_mask_row_cols_axis_deprecationQs  "z9TestCompressFunctions.test_mask_row_cols_axis_deprecationcCstdd}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 dS)Nr9re)r9rrrrrrr6rwT)strictrrrFrrrrrr9r,)rrrrrr)rrr9rrr) rLr r rrrr;filledr)rMnrr<r=rTrQrQrRtest_dot]sz      "zTestCompressFunctions.test_dotcCsntd}t|}ttt||tuttt||tuttt||tuttt||tudS)Nrw)rLeyerrrYrr rMr<r=rQrQrRtest_dot_returns_maskedarrays z2TestCompressFunctions.test_dot_returns_maskedarraycCsDttd}ttd}t|||d}t||ut||dS)Nrw)rwrwout)rrLr<rrrr)rMr<r@r5rQrQrR test_dot_outs  z"TestCompressFunctions.test_dot_outN)rrrr)r/r1pytestmark parametrizerLrX mask_rows mask_colsr6r;r>rArQrQrQrRrsp   F rc@r)TestApplyAlongAxiscCs@tdddd}dd}t|d|}t|ddgdd ggdS) Nrr6rwcSs|dSNr9rQ)r=rQrQrRmyfuncsz*TestApplyAlongAxis.test_3d..myfuncr9rrerbr rr%rrMr<rIxarQrQrRtest_3ds zTestApplyAlongAxis.test_3dcCsFtdddd}d dd}t|d|dd}t|dd gd d ggdS) Nrr6rwrcSs |d|SrHrQ)r=offsetrQrQrRrIs z1TestApplyAlongAxis.test_3d_kwargs..myfuncr9)rNr|rur )rrJrKrQrQrRtest_3d_kwargss z!TestApplyAlongAxis.test_3d_kwargsN)rrrrMrOrQrQrQrRrG rGc@seZdZddZdS)TestApplyOverAxescCstdddd}ttj|ddg}tdgdgdggg}t||t||dt <ttj|ddg}td gd gdggg}t||dS) Nrr6rwrrr\|rr) r rr$rLrjrrr r%r~)rMr<rNctrlrQrQrR test_basics zTestApplyOverAxes.test_basicN)rrrrUrQrQrQrRrQs rQc@seZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-S). TestMediancCs4tjjtjtjgtjtjggdd}t|tjdS)Nrr)rLrXrinfrrMrrQrQrR test_pytypes$zTestMedian.test_pytypecCstjjtjtjtjgtjtjggdd}t|tjtjjtjtjtjgtjtjggdd}t|tjtjjtjjtjtjgtjtjggdddd}t|jdtjjtjjtjtjgtjtjggdddd}t|jddS)NrrTr)rLrXrr rWrr;rXrQrQrRtest_infs8       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) Nrvrrug @r|rHrrr9gR@) rLr rrXrrrYr rfrr.rQrQrRtest_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.medianrurrr9rrrQshape mismatchrbr6r|rtrrTroverwrite_inputrrr5N) rrLr rrXrrrrYr r)rMrma_xrQrQrRtest_docstring_exampless"*z"TestMedian.test_docstring_examplesc Csd}tdD]p}dD]k}td||d}tt| |ddg}|D] \}}z tjj|||dWq!tyAt|||||fwt|d |gddg}|D]#\}}z tjj|||dWn tj yjYqQwt|||||fq qdS) Nz5mask = %s, ndim = %s, axis = %s, overwrite_input = %sr|)FTr9)ndminr;FTr_) rfr itertoolsproductrLrXr ExceptionAssertionError AxisError)rMmsgrcr;rargsroverrQrQrRtest_axis_argument_errorss,    z$TestMedian.test_axis_argument_errorscCsDtddd}ttj|dtddd}ttj|tjjdS)Nr9FrT)rrrLrXrr r.rQrQrRtest_masked_0d*s  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|TrrQr^Frrr)rr9r9r9r9r)rr9r9rrrrrtrr) rrLr rrXrr rrrYrZMaskedConstantr r.rQrQrRtest_masked_1d1s@zTestMedian.test_masked_1dcCsBttjtgdgddjtjtgdgddjdS)Nr9r6rwrrr*)rrLrXrrrrMrQrQrRtest_1d_shape_consistencyWsz$TestMedian.test_1d_shape_consistencycCsd\}}ttdd|}t|dd<|dd<ttj||ftd}|dd|dddf<tt|}td|D]}tj ||||dd|f<q@rg?@rwr|rQr?rr}g.@) r rLr r rrrrrYr )rMvrr@rYrQrQrR test_out_1ds    zTestMedian.test_out_1dcCsdD]}}tt|dd}t|dd<|dd<ttd}t|d|d}|dkrMtd gdgd d gdd gdd gd d gdd}ntd gdgdd gdd gdd gd d gdd}t||t||utt |t uqdS)N)rgD@rrrbrrwr|r9)rr@rr)rbrrrTFrr)r~g1@g5@g9@) r rLr rr rrrrrYr )rMrrr@rYerQrQrRtest_outs   zTestMedian.test_outcCsFddgddgddgg}tj|d}ddg}ttjj|dd|dS)Nrrrrr)rLrX masked_equalrr)rMrir_rrQrQrR$test_single_non_masked_value_on_axissz/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 gq tjdtjdggdg}tjj|ddd f<t tjj|ddtjt tjj|dddtjdgt tjj|ddtjd gdS) NFrtr7r9rwrprrr6rr)rLrr~rXrnanr;rrisscalarrravelrrYr r )rMr;dmrYrQrQrRtest_nans.   zTestMedian.test_nancCstjtd}tjtd}tj|d<tjj|d<ttjj|d|d|tjtd}ttjj|d|d|tjtd }ttjj||d|dS) N)r)rwr)r6r9rDrr?rwr9rQ) rLrXr rrrr rr)rMorrQrQrR 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)Nrr7rwr6rrrr9rp)r9r9r6r6rwr"r9rwr#)rLrXr r rKr rrrrr}r;copyrrr)rMr<aorigr=rQrQrRtest_nan_behaviors0          zTestMedian.test_nan_behaviorcCstjgdgdgtjd}tjj||dkd}ttjj|dddttjj|ddjdttjj|d d|d ttj|ddS) N)rwrwr7rwrr9rrFr)rLruint8rXr rrr;rrQrQrRtest_ambigous_fills zTestMedian.test_ambigous_fillcCstjtj fD]v}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|dnttjj|dddd | dgttj|dttjj|dddd|gt ddD]P}t ddD]G}ttjg||g|gd}tjj|t|d}ttj||ttjj|dd|ttjj|ddtjg||g|q4q-qdS)Nrrrr9Freirur|rr7r@rg@g$g"grtrbr6) rLrWrrrXr isnanrrrr;float32rf)rMrWr<rlrmrQrQrR test_specialsR"   "zTestMedian.test_specialcCstjtjgtd}t!}|tttj |tj t |j dj tuWdn1s2wYtjtjgtdd}t(}|ttddtttj |tj t |j dj tuWdn1sqwYtjtjgtdd}ttjj |dd|ttjj |d d|tjtjtj tdd}tjd d $}tddtttjj |dd|t |dj tuWddS1swYdS) Nr7rrw)r8rcalwaysr6rr9T)record)rLrXr rrKrrRuntimeWarningrrrrlogcategorywarningsfilterwarningsrcatch_warnings)rMr<wr=rQrQrR test_empty.s,  "zTestMedian.test_emptycCsXtjtd}tttj|tt tj |d<tttj|tt dS)Nrr6) rLrXr r rrYrr%rWrKr)rMrrQrQrR test_objectKs  zTestMedian.test_objectN)rrrrZr[r]rbrlrmrorrrrrMrrrrrrrrrrrrQrQrQrRrVs.&    # + rVc@s4eZdZddZddZddZddZd d Zd S) TestCovcCsttjd|_dSNr)rrLrrrirqrQrQrRsetupTsz TestCov.setupcCsZ|j}tt|t|ttj|ddt|ddttj|dddt|ddddS)NFrowvarTrbias)rirrLrr.rQrQrRtest_1d_without_missingWs  zTestCov.test_1d_without_missingcCsb|jdd}tt|t|ttj|ddt|ddttj|dddt|ddddS)NrwrFrTr)rirrrLrr.rQrQrRtest_2d_without_missing_s  zTestCov.test_2d_without_missingcCs>|j}t|d<||8}|}tt|t|ttj|ddt|ddttj|dddt|dddzt|ddWn tyJYnw|dd}tt||dddt||dddttj||dddddt||dddddttj||ddddddt||dddddddS)NrFrTr allow_maskedr9)rir meanrkrrLr ValueError)rMrnxrQrQrRtest_1d_with_missinggs,    ,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) Nrrwrr9rrTrFrr)rir rrL logical_notr r%rgrryrr9rrr)rMrvalidfracxfrQrQrRtest_2d_with_missings8      zTestCov.test_2d_with_missingN)rrrrrrrrrQrQrQrRrRs  rc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS) TestCorrcoefcCs(ttjd|_ttjd|_dSr)rrLrrridata2rqrQrQrRrszTestCorrcoef.setupcCs|j|j}}t|}t||}tP}tdttt|dd| tdt tj|ddt|ddt t|dd|t t||dd|t t|dd|t t||dd|WddS1shwYdS)Nrrddofbias and ddof have no effectrrw rirrLrrr simplefilterrr4filterr)rMrrr expected2suprQrQrR test_ddofs    "zTestCorrcoef.test_ddofcCs|j|j}}t|}t7}tdttt||ddttt||ddttt|dd| tdt t|dd|WddS1sIwYdS)NrTFrrr9r)rMrrrrrQrQrR test_biass   "zTestCorrcoef.test_biascCs|j}tt|t|ttj|ddt|ddt}|tdttj|dddt|dddWddS1s@wYdS)NFrrTr)rirrLrrrr4rMrrrQrQrRrs   "z$TestCorrcoef.test_1d_without_missingcCs|jdd}tt|t|ttj|ddt|ddt}|tdttj|dddt|dddWddS1sDwYdS)NrwrFrrTr)rirrrLrrrr4rrQrQrRrs   "z$TestCorrcoef.test_2d_without_missingc Cs|j}t|d<||8}|}tt|t|ttj|ddt|ddt}|t dttj|dddt|dddWdn1sMwYzt|ddWn t ycYnw|dd}tt||dddt||dddttj||dddddt||dddddt?}|t dtt||dddt||ddddd tt||dddt||dddd d WddS1swYdS) NrFrrTrrr9rr6r) rir rrkrrLrrrr4r)rMrrrrQrQrRrsB      , "z!TestCorrcoef.test_1d_with_missingcCs$|j}t|d<|dd}t|}t|}t|ddddf|ddddftZ}|tdtt|ddddddf|ddddftt|ddddddf|ddddftt|ddddddf|ddddfWddS1swYdS) Nrrwrrrrr9r) rir rrrLrrrr4)rMrrNrOrrQrQrRrs$  * "z!TestCorrcoef.test_2d_with_missingN) rrrrrrrrrrrQrQrQrRrs   rc@r)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| |qpt||dddfdd d \}}}}}tj|d d|d ddfdd d \}} } } } t |||||f|| | | | fD] \} }t| |qt||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| |qMdS) Nrbrrr6rwrrBrrTrhr9)rhr) rLrrrrrviewr r rkziprr)rMrrCRKSDrTrYrnrprr<a_rwoxsyswsrQrQrR 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 | |qbdS) Nrbrrr6rrrwTrr9) rLrrrrrr r rrr)rMrrrrrrrrTrYrnrprr<rrQrQrRtest_polyfit_with_masked_NaNs)s     4& z,TestPolynomial.test_polyfit_with_masked_NaNsN)rrrrrrQrQrQrRrs '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) Nr9r9r9r6r6rwT return_indexreturn_inverserrprrr9)rrwr|r6)rrrr9r9r6)rrrr rr rrQrQrRtest_unique_onlist<s 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)rrr9rr9rrTrr)r9r6rwrrrrr9r9)rrwr|r6r6)rrrwr9rwr6rw)rir; fill_value)r rrrrrQrQrRtest_unique_onmaskedarrayEsz)TestArraySetOps.test_unique_onmaskedarraycCstgddd}t|ddd}t|dtdgdgdt|ddgt|dgdt}t|ddd}t|dttt|ddgt|ddgdS) NrTrrrr9r6r)r rrr rrQrQrRtest_unique_allmaskedUsz%TestArraySetOps.test_unique_allmaskedcCsdttdgdd}tgdgdd}t|}t||t|d|dt|j|jdS)Nr|r9rrrr9r)r9r9r9r)r9rrr9r)r rLr rr#rr9r;)rMrrOrNrQrQrR test_ediff1dds  zTestArraySetOps.test_ediff1dcCttdgdd}t|td}tgdgdd}t||t|d|dt|j|jt|gdd}tgd gd d}t||t|d|dt|j|jdS) Nr|rr)to_begin)rr9r9r9r)r9r9rrr9rrp)r9r6rwr9r9r9r)rrrr9rrr9 r rLr r#r rrr9r;rMrrNrOrQrQrRtest_ediff1d_tobeginm   z$TestArraySetOps.test_ediff1d_tobegincCr) Nr|rr)to_end)r9r9r9rr)r9rrr9r9rrp)r9r9r9rr9r6rw)r9rrr9rrrrrrQrQrRtest_ediff1d_toend|rz"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)rr9r9r9rr)r9r9rrr9r9rrp)rr9r9r9rr9r6rw)r9r9rrr9rrrrrrQrQrRtest_ediff1d_tobegin_toends  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|)r9r9r9r9)rrrrrrrrr) rLr r#rrrrr r9r;r rrQrQrRtest_ediff1d_ndarrays  z$TestArraySetOps.test_ediff1d_ndarraycCsTtgdgdd}tgdgdd}t||}tgdgdd}t||dS)N)r9rwrwrwrr)rwr9r9r9)r9rwrr,)rr!r)rMrrrNrOrQrQrRtest_intersect1ds  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)Nr9r6r|rerrrrrr9rr9r6rwrr|rr8)rwrre)r9r6rwrr|)rwrrerrrp)rtr|rr)r9rur6rw)rr9rr)rtr|rru)rrrrrr rrMr<r=rNrQrQrR test_setxor1ds&      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)Nr)r6rwrr9)r9r6rr) rrbrrr9rwr rr) rr9rr9rr9rr9r)rir;r7Trr,)rr6rw) rLr rrrr~r0rrr rr;)rMr<r;r=ecrTrrQrQrR test_isins     zTestArraySetOps.test_isincCstgdgdd}tgdgdd}t||}t|gdtgdgdd}tgdgd d}t||}t|gd tgtggdS) Nrrrrr8)TTTFTr|r|r6r9rr9r|rr,)TTFTT)rr"rrrrQrQrR test_in1ds  zTestArraySetOps.test_in1dcCstgdgdd}tgdgdd}ttt||t||ddtgdgdd}tgd gd d}ttt||t||ddtgtggdddS) Nrrrrr8T)invertrrr,)rrrLrr"rr=rQrQrRtest_in1d_inverts  z TestArraySetOps.test_in1d_invertc Cstgdgdd}tgdgdd}t||}tgdgdd}t||tgdgdggd gd gd}tgd gd d}tgd gdd}t||}t||tgtggdS)N)r9r6r|rer|rr8rr)r9r6rwrr|rer)rrrrrrr9r+rrr,rr)rr9r6rwrr|)rr rr) rMr<r=rNrOrrezrrQrQrR test_union1ds  $  zTestArraySetOps.test_union1dcCstgdgdd}tgd}t||}t|tgdgddtd}td}tt||tdd gtgtjgd}tt|gjtjdS) N)rtr|rrerer9r6r9)rrrrrrrr9r)r6rrwrwr6r9r|)rtrerr,rbrurv)rrrr rLuint32r8rrQrQrRtest_setdiff1ds  zTestArraySetOps.test_setdiff1dcCs8tgd}tgd}tt||tdgdS)N)r<r=rT)r<r=rprT)rLrrrr=rQrQrRtest_setdiff1d_char_arraysz)TestArraySetOps.test_setdiff1d_char_arrayN)rrrrrrrrrrrrrrrrrrrrQrQrQrRr:s"    rc@r) TestShapeBasecCsntgdgdd}t|}t|jdt|jj|jjt|jdt|jj|jjt|jj|jjdS)Nr+r*rrr)r rrrr;rir=rQrQrRtest_atleast_2d$s  zTestShapeBase.test_atleast_2dcCstd}t|jdt|jj|jt|jj|jtdd}|D]}t|jdt|jj|jt|jj|jq!td}t|jdt|jj|jt|jj|jtdd}|D]}t|jdt|jj|jt|jj|jq[td}t|jdt|jj|jt|jj|jtdd}|D]}t|jdt|jj|jt|jj|jqtd}t|jdt|jj|jjdS)NrrUrrCr)rrrr;rirrr1)rMr=r<rQrQrRtest_shape_scalar.s<          zTestShapeBase.test_shape_scalarN)rrrrrrQrQrQrRr"rPrc@r) 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) Nr+r*rrvrurerrrrr9rwr6r r2rrrr;r3rirMr<r=rTrrQrQrR test_stack_1d\s   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) Nr+Trr Frrrr9r r r rQrQrRtest_stack_masksns   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) Nr rrbr6rrr5r9r).r).r9)rwr6rr|) rLrrandintr%r~r r2rrrr;) rMshpd1d2rra1r&rTc_shprQrQrR test_stack_ndsD        zTestStack.test_stack_ndN)rrrr rrrQrQrQrRrZs r)J__doc__rrdrBnumpyrL numpy.testingrrnumpy.ma.testutilsrrrr numpy.ma.corerr r r r r rrrrrnumpy.ma.extrasrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4rrrrrGrQrVrrrrrrrQrQrQrRs<4 ,F  }Ck:i8