o 6a ~@sddlmZddlZddlmmZddlmmZddl m Z m Z m Z ddl mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm 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>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXddlYmZZZej[Z[dddZ\Gd d d Z]Gd d d Z^Gd ddZ_ddZ`dS))reduceN)assert_ assert_raises assert_equal)KMaskType MaskedArrayabsoluteaddallallcloseallequalalltruearangearccosarcsinarctanarctan2arrayaveragechoose concatenate conjugatecoscoshcountdivideequalexpfilledgetmaskgreater greater_equalinner isMaskedArrayless less_equalloglog10 make_maskmasked masked_array masked_equalmasked_greatermasked_greater_equal masked_inside masked_lessmasked_less_equalmasked_not_equalmasked_outsidemasked_print_option masked_values masked_wheremaximumminimummultiplynomasknonzero not_equalonesouterproductputravelrepeatresizeshapesinsinhsometruesortsqrtsubtractsumtaketantanh transposewherezeros)picklecCs,t||}|std|d|d||S)NzNot eq: z ----)r print)vwmsgresultrY;z)TestMa.test_testBasic1d..cS||SrrYrrYrYrZr<rrk) rorr#rrCdtypesizerrlenr[rrprYrYrZtest_testBasic1d3s   zTestMa.test_testBasic1dc CsdD]p}|j\ }}}}}}}} } } }||_||_||_||_|| _tt| tt|tt||t|j|t|jtdd|tt|t|tdd|tt || tt t |d| tt ||| qdS)N))cSr~rrYrrYrYrZrOrz)TestMa.test_testBasic2d..cSrrrYrrYrYrZrQrrk) rorCrr#rrrrrr[rr}) rqr|rrrsrtrurvrwrxryrzr{rYrYrZtest_testBasic2dAs(   zTestMa.test_testBasic2dc Cs*|j\ }}}}}}}}} } } tddgddgg} t| ddgddgg} tt| | | | tt| | | | tt| | | | dD]K} || }|| }|| }|| }| | } tt| | tt||||tt||||tt||||tjdddtt||||Wdn1swYtt||||tt||||tt||||tjdddtt||||Wdn1swYtt||||tt||||tt||||tt||||tt|d|dttt|dt|dtt||||ttt ||t ||ttt ||t ||ttt ||t ||tjdddttt ||t ||Wdn 1swYqFdS) Nrfrrr)) r)rrignorerinvalid@) rorr*rr[reshaperlerrstateabsr rIr8r)rqrrrsrtrurvrwrxryrzr{r|a2da2dmrYrYrZtest_testArithmeticWsP      zTestMa.test_testArithmeticcCs>tdg}tdg}tt||ttt||tdS)Nrf)rlrr isinstancer)rqnamarYrYrZtest_testMixedArithmetic}s  zTestMa.test_testMixedArithmeticc Cs |j\ }}}}}}}}} } } ttt|t|ttt|t|ttt|t|ttt|t|ttt|t|ttt |t |tj ddd2ttt t |t |ttt t |t |tttt |t|Wdn1swYttt|t|ttt|t| ttt|t| ttt|t| ttt||t||ttt|t|ttt||t||ttt||t||ttt||t||ttt||t||ttt||t||ttt||t||ttt|t|ttt||ft||fttt||ft||fttt||ft||fttt|||ft|||fdS)Nrr)rorr[rlrrrDrErLrMrrHrr&r'rrrrrrrr;r$r r%r!rrrprYrYrZtest_testUfuncs1s:   (zTestMa.test_testUfuncs1cCstgdgdd}tt|jjtjutdt|tdtdttdtddgd| d}tt|jjtjutt t|dtj tt|jjtjuttdt|tt t|dt uttddgt|ddS) Nrdr]r^rcrfrrrrgrrfr)rrr)rrrrtyperlintprr[rrndarrayrr9)rqottrYrYrZtest_xtestCounts zTestMa.test_xtestCountc Csb|j\ }}}}}}}}} } } t|} t|} ttt| t| ttt| t | dSr) rorlr@rr[maxr6rminr7)rqrrrsrtrurvrwrxryrzr{r|xrxmrrYrYrZtest_testMinMaxs  zTestMa.test_testMinMaxc Cs|j\ }}}}}}}}} } } tttj|t|tttj|t|ttdttdddttdttdddtttj|ddt|ddtttjt |dddt|ddttt|dt|dtttj |ddt |ddttt |dt |dtttj t |dddt |ddt | dkrttt ||fdt ||fdtttj|dt|dttt|dt|dttt |dt |ddSdS)Nrraxisrf) rorr[rlr r accumulaterJrrr>rrrprYrYrZtest_testAddSumProds* &      zTestMa.test_testAddSumProdcCstgd}t|gdd}t|gdd}t|}t|t|ttt|t|ddtt|dt|dut|d|dkt|dtutt|d|dtt|dd |dd tt|dd|ddtt|dd|ddd |d<d |d<tt||d |dd <d |dd <tt||t|d<tt||t|dd <tt||||dd<t|d<tt t |tgd t gdgd|dd<tt t |tgdt gdgd|dd<tt t |tgdtt |tgdt d d}t |d}tt||tt tgdt|jttd|jtgdt}tgdt}|d}|d}tt|ttt|tt||t|ddjdkdS)N)rfrrrrrg)rrfrrfr) fill_valuerfr crrj)rfrrr)rrfrfrr]rc)rrrrfr)rfhellorr)r)rlrstrreprrr[rGrr)r rr*rr4rrhrobjectrrC)rqx1x2x3x4s1s2rYrYrZ test_testCIsZ      zTestMa.test_testCIcCsgd}t|}t|}t||ut|dd}t||utd}t||d}t|j|utt||jt|j|ut|dd}t|jj|jjkt||dd}t|j|ut|dt ud |d<t|dt ut|j|utt|j dt||d d} t| j|ut| dt ud | d<t| dt ut| j|utt| j dt|d |d} tt | j |d j utd } t | d<t | d } ttt| | g| ttt| gdt| ddd} tt| gdt| ddd}tt| |dS)N)rrrfrrT)copyrrgrrhrrrrfr]r))rrrfrrrrfr)rrrrr)rrrfrfrrrr)r(rrlrr_datar _mask__array_interface__r)rhrrrBr[rrrA)rqnmrvm3ry1y1ay2y2ay3ry4y5y6rYrYrZtest_testCopySizesP       zTestMa.test_testCopySizecCstd}gd}t|}|}t||d}t|dtut|dtuddg|ddg<t|j|ut|dtut|dtutt|gd t||d d }|gd gd t|j|ut|dtut|dtutt|gddS)Nr)rrrrfrfrgrr (rf)rrrrTr)rrfr)rd)rrrrr) rr(rrrr)rr[r?)rqrorrrvrrrYrYrZ test_testPut5s$ zTestMa.test_testPutcCsVtd}t|gdd}tddgddgd}t|dtut|d tu||dd <t|dtut|d tutt|gd td}t|gdd}|dd }tddgddgd}t|dtut|d tu||dd<t|dtut|dtutt|ddgt|dtut|d tutt|gd dS) Nr)rrrrrrgrrrfrrrr)rrfrrr)rrrr)r[)rqrorrryrsrYrYrZ test_testPut2Ks,   zTestMa.test_testPut2c Cs\|j\ }}}}}}}}} } } gd} t| d} t|| | ttt|| dd| kdS)N) rfrrrrrrfrrrfrrfrr)rorlr:r?rr rK)rqrrrsrtrurvrwrxryrzr{r|rirYrYrZtest_testMaPutes  zTestMa.test_testMaPutc Cs*td}|dd}d|jd<t|ddk|d|}tt|j|tt|jd|tt|t|jd||d |jd <td}t|d <tt |d t tk|d k}tt t |ttd ktt t |tt|j kt ||t}t|j |j ut|d tut|dtut|dtut|d tut|dtutt||t |t|}t|j |j ut|d tut|dtut|dtut|d tut|dtut||}t|j |j ut|d tut|dtut|dtut|d tut|dtutt||tgd}tgd}t|d<t ||| }tt|gdt|d <t ||| }tt|gdt|d tut|dtut|dtutttt|d|t|dtttt|d|t|dtttt|d|t|dtttt|d|t|dtttt|d|t|dtttt|d|t|dtttt|d|t|dtttttddd gdtttttddd gdttttttdgdddd j gdttttttdgdddd j gdttttttdgdddj gdttttgdgdddj gdtttgdgd gd!t!d"t"j#d#}t$|j t%}t||}tt||t&|| |f}tt|gdt|d tut|dtut|dtutd$}t|d<td$d}t|d<tgd%gd&d}|'d}t |||}t |||} tt|| tt(| t)utt| gd't |td}tt|gd(t |dt}tt|gd)dS)*Nrrr)rfry$@rerd.rrrr)r]r^rcr_r`)rfrfrfrrr)r]r^rdrerf)rrrr)rrfrrr)rfrrrrrg)rfrfrfrfr)rrfrrr)rfrfrrrf)rfrrfrr)rrrfrrf)rfrrfrrf)rfrfrrr)rfrrrr)rrrrr)rrr)rr)rfrfrfrrr)rfrrrrr)rrfrr2)rrrrfrfrf)rrfrfrrr)*rrflatrr[realimagrr)rrrOrCrr5rr r,r!r-r$r/r%r0r;r1rr+r.listranger2rhr<rlfloat32rPrrrrr9) rqrrrycatestbtestctestrscmrzrYrYrZtest_testOddFeaturesls                ""        zTestMa.test_testOddFeaturescCstttgdgdgdtttgdgdgdtd}tdd}t|d<t|d<ttt||tt||||ttt||tt||||tt |dktt |d kdS) N)rfrr)rrr)rfrr)rrrrrrrr) rr[r7r6rr)rOr$r r)rqrrrsrYrYrZtest_testMinMax2s   ""zTestMa.test_testMinMax2cCstd}td}t|dd<|ddd}|ddd}ttt|dt|dttt|ddt|ddtttt |d t |d t||ttt t |d t |d t ||t gd t }t|d<t|gd }t|d d kt|ddkt|ddkdS) Nrrrrr)rrrfrfr)abcrfdefrr)rrrr) rrlr)rrr[rNrKr"rr=rr)rqrrrstrYrYrZ test_testTakeTransposeInnerOuters&   z'TestMa.test_testTakeTransposeInnerOutercCstd}td}td}t|d<|d7}tt||d|d7}tt||dtd}td}t|d<|d8}tt||d|d8}tt||dtdd}tdd}t|d<|d9}tt||d|d9}tt||dtdd}td}t|d<|d}tt|||d}tt||tdd}tdd}t|d<|d}tt||d|td}tt|tdtdtj}td}t|d<|d7}tt||ddS)Nrrrfr]r^)r)rr)rr[r<astyperlr)rqrsrrrwrYrYrZtest_testInplacesR      zTestMa.test_testInplacecCsbtd}t|ddd<|dd}tdtjdD]}tj||d}t|}tt ||qdS)Nrrrrrrf)protocol) rr)rrrQHIGHEST_PROTOCOLdumpsloadsrr[)rqrrprotor|rsrYrYrZtest_testPickle$s  zTestMa.test_testPicklecCsHtd}t|d<tttdkt|dtutt|ddddS)Nrrfz--r)rr)rrrr)rqxxrYrYrZtest_testMasked.s zTestMa.test_testMaskedcCs8tgdgdd}ttdt|ddttdt|gddt|gdd d \}}ttd|t|d kt|dd<tt|ddtutgdgdd}|d d }t|ddd f<ttt|ddddgtt|d ddtuttddgt|ddt|dd d\}}tt|ddgdS)Nrrrgr^rr)r]r]r^r]weightsTrreturnedr_rrfrdrrr])rrr[rr)r)rqrrXwtsrYrYrZtest_testAverage16s    zTestMa.test_testAverage1cCsgd}gdgdg}td}ttt|dddttt|d|ddttddtdg}ttt|dtjtdd d ttt|ddtdd dttt|d dt|ddt|dddgttt|d|d d ttt|d|dgdttt|d dt|ddt|dddgtd}gd}gdgdg}t d}gd} tttt ||dddtttt ||dddttt ||ddt ut tt || dddt t tt ||dddt ||} ttt| dd ttt| ddgdttt| d dddgttt| d|dgdtd} tdd} t| | g| | ggd dd\} }t t| t|t | j|jtt dddd gdd\}}t t|t|tt ddd\}}t t|t|tt dt ddd\}}tt|t|ktd dgddggt}t |ddgd dgg}t|dd}tt|dd gt|dd}tt|dd gt|dd}tt|d t|d d}tt|d!d"gdS)#N)rrfrfrfrfr)rfrrrrrfrrrr)rrr^rcg(@rfrg @)rdr]r^rcr_rb)rrrfrfrr)rrfrfrfrfrfrd)rdr]X@rr_g@r`)rdr]rrr_rbrTr)rrr)rrr)rrrrrir]g@g?r_)rrr rrrlr rrPr<r*r)rrrCfloatr[)rqw1w2rrrsrurvrm4m5ryabr1r2rra2daa2dmarYrYrZtest_testAverage2Isx $      zTestMa.test_testAverage2cCstdttdtdttdtdttdgggtdttdggttttddgttttddgttttddgddgddS)Nrfr]rrg)rintrrr TypeError ValueErrorboolrqrYrYrZtest_testToPythons zTestMa.test_testToPythoncCstddd}tjddtdtdjWdn1s wYtd|jt| jt| jtt||jtt||jt|j|j jutddd}t||j kt t |t t dS)Nrrfrgrr) rrlrrrhr6r7rrrrrr3)rqrwrrrYrYrZtest_testScalarArithmetics    z TestMa.test_testScalarArithmeticc Csptgd}tt||jtt||jtt||jtt||jtt|ddddd|jdddddtt| gd|j gdtt| |j tt| |j tddgddgg}tt| |j tt| |j tt|ddg|jddgtt||jdS)Nrfrrrrfrrrrfrrf)rrr[anyrr argmaxargminrcompressconjrdiagonalrJrKrN)rqrrrYrYrZtest_testArrayMethodss $$zTestMa.test_testArrayMethodscCstgd}t|jddS)Nrrf)rrndimrqrrYrYrZtest_testArrayAttributess zTestMa.test_testArrayAttributescCstddttjD dS)NcSs&g|]}|ttvr|ds|qS)_)dirr startswith).0rrYrYrZ s  z'TestMa.test_testAPI..)rr$rlrrrYrYrZ test_testAPIszTestMa.test_testAPIcCsTtgd}tgdgdd}t|djdt|djdt|djddS)NrrrgrrYrf)rrrC)rqrr rYrYrZtest_testSingleElementSubscripts z&TestMa.test_testSingleElementSubscriptN)__name__ __module__ __qualname__r}rrrrrrrrrrrrrrrrrrrrrrrrr"r(r)rYrYrYrZr\"s:& 23e 2 :  r\c@s4eZdZddZddZddZddZd d Zd S) TestUfuncscCsZtdddtdgdddgdgddtdddtdgdddgdgddf|_dS)Nr]rrrrfrrg)rrmrorrYrYrZr}s(( zTestUfuncs.setupc Csgd}dD]m}ztt|}Wntytt|}Ynwttj|}|jd|j}t$||vr;tj dd|dvrEtj dd||}||}Wdn1sWwYt t | d| d|t t |j|jqdS)N) rHarctanhrrarccoshr.r&r'r true_divide floor_divide remainderfmod)*rHr&r'rrrDrrLrrrrErrMarcsinhr/r.rfabsnegativefloorceil logical_notr rIr8rr0r1r2r3hypotrrr;r%r!r$r logical_and logical_or logical_xorr)r)r.r&r'rr)getattrumathAttributeError fromnumericrlrroninrseterrrr[reqmaskrh)rqf_invalid_ignorefufmfargsurmrrYrYrZtest_testUfuncRegressions(      z#TestUfuncs.test_testUfuncRegressioncCs\|jd}tt|dd tt|ddtt|dddddtt|ddddS)Nrrr)rorr rFrrJr>r!rYrYrZ test_reduces zTestUfuncs.test_reducecCstdddd}t|dk|}t||t|dt|d|dkt|dgdkt|ddjt|ddjdS)Nrf rrrr)rrrr) rrr5rrrrr rh)rqramaskrYrYrZ test_minmaxszTestUfuncs.test_minmaxcCs6dD]}tgdgdd}ttt|dgqdS)Nz?bhilqpBHILQPfdgFDGO)rfrrr)rrrfrfrgr)rrr[r:)rqrrrrYrYrZ test_nonzeroszTestUfuncs.test_nonzeroN)r*r+r,r}rLrMrPrQrYrYrYrZr-s % r-c@sLeZdZddZddZddZddZd d Zd d Zd dZ ddZ dS)TestArrayMethodscCstgd}|dd}|dddd}tgd}t||d}t|||jd}t|||jd}|||||||f|_dS)N)$g @gGz.@g-!@g!@g&1?gʡE@g\( @gQ@g{G#@gPn@gh|?!@g!rh@gjt@gJ +@gzGa@g!rh@gʡE@g-@g)\(@g(\B#@g +@guV @g~j@g"~@gK7@g ףp=J#@gGz@gMb@g}?5^#@g/$@g!rhm@g-#@gJ +@gMb@gʡ@g-?rrr)$rrfrrfrrrfrrfrfrrfrrrrfrrfrrrrfrfrfrfrrrfrrrrrfrrfr)datarh)rlrrrCro)rqrrXXXrmxmXmXXrYrYrZr}s  zTestArrayMethods.setupc Csf|j\}}}}}}}|}t||tt||t|j|dddS)Nrr) rorrtrace compressedrJrr[rh) rqrrrTrUrrVrWrXmXdiagrYrYrZ test_traces  zTestArrayMethods.test_tracec Csh|j\}}}}}}}|dd}tt|j|jtt|j|ddtt|j|jdddS)Nrr)rocliprr[rhr) rqrrrTrUrrVrWrXclippedrYrYrZ test_clips  zTestArrayMethods.test_clipc Cs|j\}}}}}}}|j\}}t||t|tj} t|tj} t|D]} |dd| f| | <q,t|D] } || | | <qAt t |d| t t |d| dSNrrf) rorCrptprZrlrPfloat_rrr[) rqrrrTrUrrVrWrXrrowscolskrYrYrZtest_ptp%s   zTestArrayMethods.test_ptpc CsZ|j\}}}}}}}|dd}tt|d|dddf|dd} t| jddS)Nrrfrr)rrrr)roswapaxesrr[rrC) rqrrrTrUrrVrWrX mXswapped mXXswappedrYrYrZ test_swapaxes2s   zTestArrayMethods.test_swapaxesc Csd|j\}}}}}}}|d}tt|j|dd|d}tt|j|dddSr`)rocumprodrr[rr rqrrrTrUrrVrWrXmXcprYrYrZ test_cumprod9    zTestArrayMethods.test_cumprodc Csd|j\}}}}}}}|d}tt|j|dd|d}tt|j|dddSr`)rocumsumrr[rrrlrYrYrZ test_cumsum@rozTestArrayMethods.test_cumsumc Cs(|j\}}}}}}}tt|jdd|tt|jdd|tt|jddj|jddjtt|j|j|jdd|jdd}} tdD]:} tt| | || tt|| |dd| fttt || |dd| fqWdS)Nrrrrfr) rorr[varrZstdrCrrlrH) rqrrrTrUrrVrWrXmXvar0mXvar1rerYrYrZ test_varstdGs" &zTestArrayMethods.test_varstdN) r*r+r,r}r\r_rfrjrnrqrvrYrYrYrZrRs  rRcCs,|tur|tuS|tur|tuS||kSr)r9r )rurvrYrYrZrDUs  rD)rR)a functoolsrnumpyrlnumpy.core.umathcorer?numpy.core.fromnumericrA numpy.testingrrrnumpy.marrrr 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@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrP numpy.compatrQrmr[r\r-rRrDrYrYrYrZs& 6   A W