o 6agD@stdZddlmZddlZddlmmZddl m Z ddl m Z m Z mZmZedgdZeddgdZegdd Zegd d Zegd d ZegddZegddZeeeeeeegZddZGdddZGdddZGdddZGdddZGdddZGdddZGd d!d!Z Gd"d#d#Z!Gd$d%d%Z"Gd&d'd'Z#dS)(zTests for laguerre module. )reduceNpolyval)assert_almost_equal assert_raises assert_equalassert_)r r )i r r )iHir r)xiiXi8r r)i iiiir rcCstj|ddS)Ngư>)tol)laglagtrimxrF/usr/lib/python3/dist-packages/numpy/polynomial/tests/test_laguerre.pytrimsrc@s,eZdZddZddZddZddZd S) TestConstantscCttjddgdS)Nrr )rr lagdomainselfrrrtest_lagdomainzTestConstants.test_lagdomaincCttjdgdS)Nr)rrlagzerorrrr test_lagzero!zTestConstants.test_lagzerocCr#Nr )rrlagonerrrr test_lagone$r&zTestConstants.test_lagonecCr)Nr r )rrlagxrrrr test_lagx'r"zTestConstants.test_lagxN)__name__ __module__ __qualname__r!r%r)r+rrrrrs  rc@sJeZdZedddZddZddZdd Zd d Z d d Z ddZ dS)TestArithmeticdcCstdD]H}tdD]A}d|d|}tt||d}||d7<||d7<tdg|dgdg|dg}tt|t||dq qdSNAt i=, j=r rerr_msg)rangenpzerosmaxrlagaddrrr ijmsgtgtresrrr test_lagadd.  $zTestArithmetic.test_lagaddcCstdD]H}tdD]A}d|d|}tt||d}||d7<||d8<tdg|dgdg|dg}tt|t||dq qdSr3)r9r:r;r<rlagsubrrr>rrr test_lagsub8rEzTestArithmetic.test_lagsubcCsttdgdgttdgddgtddD]&}dg|dg}dg|d| d|d|d g}tt||qdS)Nrr r r4r )rrlagmulxr9r)r r?serrBrrr test_lagmulxBs(zTestArithmetic.test_lagmulxc CstdD]R}dg|dg}t|j|}tdD]<}d|d|}dg|dg}t|j|}t||}t|j|} tt|||dk|t| |||dqqdS)Nr4rr r5r6r7)r9rlagvalrlagmulrlenr) r r?pol1val1r@rApol2val2pol3val3rrr test_lagmulJs   zTestArithmetic.test_lagmulc CstdD]D}tdD]=}d|d|}dg|dg}dg|dg}t||}t||\}}tt|||} tt| t||dq qdS)Nr4r5r6rr r7)r9rr=lagdivrLrr) r r?r@rAcicjrBquoremrCrrr test_lagdivXs   zTestArithmetic.test_lagdivcCs|tdD]7}tdD]0}d|d|}t|d}ttj|g|tdg}t||}tt |t ||dq qdS)Nr4r5r6r r7) r9r:arangerrrLarraylagpowrr)r r?r@rAcrBrCrrr test_lagpowcs   zTestArithmetic.test_lagpowN) r,r-r.r:linspacerrDrGrJrTrZr_rrrrr/+s   r/c@seZdZegdZedeeZedeeeZej dddZ e e gdZ dd Z d d Zd d ZddZddZdS)TestEvaluation)g"@g,g@i,j->ij i,j,k->ijkr1r4r r )?g@g@csttgdgjdtddfddtD}tdD]}d|}||}tdg|dg}t|||dqtd D]/}d g|}t |ttdgj |ttddgj |ttgd j |qAdS) Nr rr csg|]}t|qSrr.0r^rrr }z.TestEvaluation.test_lagval..r5r7r1r )r rr) rrrKsizer:r`Llistr9rr;shape)r yr?rArBrCdimsrrr test_lagvalws      zTestEvaluation.test_lagvalc Cs|j\}}}|j\}}}tttj||dd|j||}t|||j}t||t d} t| | |j}t |j dkdSNr r r1) rrnr ValueErrorrlagval2dc2drr:onesrrm r x1x2x3y1y2y3rBrCzrrr test_lagval2ds    zTestEvaluation.test_lagval2dc Cs|j\}}}|j\}}}tttj|||dd|j|||}t||||j}t||t d} t| | | |j}t |j dkdSrq) rrnrrsrlagval3dc3drr:rvrrmrwrrr test_lagval3ds     zTestEvaluation.test_lagval3dc Csl|j\}}}|j\}}}td||}t|||j}t||td} t| | |j}t |j dkdS)Nrbrr)r r1r r1) rrnr:einsumr laggrid2drurrvrrmrwrrrtest_laggrid2ds    zTestEvaluation.test_laggrid2dc Csr|j\}}}|j\}}}td|||}t||||j}t||td} t| | | |j}t |j dkdS)Nrcrr)r r1r r1r r1) rrnr:rr laggrid3drrrvrrmrwrrrtest_laggrid3ds    zTestEvaluation.test_laggrid3dN)r,r-r.r:r\c1drrurrandomrrrnrprrrrrrrrrams rac@eZdZddZddZdS) TestIntegralc Cs.tttjdgdtttjdgdtttjdgdddgtttjdgdgdtttjdgdgdtttjdgddtdd D]}dg|ddg}tjdg||d }t|ddgqCtd D]7}|d}dg|dg}|gdg|d|g}t|}tj|d|gd }t|}tt |t |qdtd D]&}|d}dg|dg}t|}tj|d|gdd }tt d||qtd D]8}|d}dg|dg}|gdg|d|g}t|}tj|d|gdd }t|}tt |t |qtd D]9}tdd D]0} dg|dg}|dd}t| D] }tj|dd }q#tj|| d }tt |t |qqtd D]@}tdd D]7} dg|dg}|dd}t| D] }tj|d|gd }qatj|| t t| d }tt |t |qMqFtd D]B}tdd D]9} dg|dg}|dd}t| D] }tj|d|gdd }qtj|| t t| dd }tt |t |qqtd D]B}tdd D]9} dg|dg}|dd}t| D] }tj|d|gdd }qtj|| t t| dd }tt |t |qِqdS)Nr?r r )lbnd)sclaxisr r4)mk)rrr)rrrr) r TypeErrorrlagintrsr9rpoly2laglag2polyrrKlist) r r?rrCrpolrBlagpolrr@rrr test_lagints                    zTestIntegral.test_lagintcCstjd}tdd|jDj}tj|dd}t||tdd|D}tj|dd}t||tdd|D}tj|d dd }t||dS) Nr1cSg|]}t|qSrrrrfrrrrh$riz1TestIntegral.test_lagint_axis..rrcSrrrrfrrrrh(rir cSsg|] }tj|ddqS)r1)rrrfrrrrh,sr1)rr)r:rvstackTrrrr rurBrCrrrtest_lagint_axis s   zTestIntegral.test_lagint_axisN)r,r-r.rrrrrrrs Src@r)TestDerivativecCstttjdgdtttjdgdtdD]}dg|dg}tj|dd}tt|t|qtdD]'}tddD]}dg|dg}tjtj||d|d}t t|t|q.rrcSrrrrfrrrrhTrir )r:rrrrrrrrrrtest_lagder_axisLs  zTestDerivative.test_lagder_axisN)r,r-r.rrrrrrr1s rc@s8eZdZejdddZddZddZdd Zd S) TestVanderrdr r cCstd}t|d}t|jdktdD]}dg|dg}t|d|ft||qt ddgddgdd gg}t|d}t|jd ktdD]}dg|dg}t|d|ft||qMdS) Nr1rrrr .r r4r )r1r r) r:r[r lagvanderrrmr9rrKr\)r rvr?coefrrrtest_lagvander]s     zTestVander.test_lagvandercCsx|j\}}}tjd}t||ddg}t|||}t||j}t||t|g|gddg}t |j dkdS)Nrrr r )r r4r ) rr:rr lagvander2drtdotflatrrrmr rxryrzr^vanrBrCrrrtest_lagvander2dns   zTestVander.test_lagvander2dcCs|j\}}}tjd}t|||gd}t||||}t||j}t||t|g|g|ggd}t |j dkdS)N)r r1r)r r r1)r r4r) rr:rr lagvander3drrrrrrmrrrrtest_lagvander3d{s   zTestVander.test_lagvander3dN) r,r-r.r:rrrrrrrrrrYs  rc@eZdZddZdS) TestFittingc Csfdd}tttjdgdgdtttjdggdgdtttjgdgdtttjdgdgggdtttjddgdgdtttjdgddgdtttjdgdgddggdtttjdgdgdddgdtttjdgdgdgtttjdgdggdtttjdgdggtdd}||}t||d }tt|d t t |||t||gd }tt|d t t |||t||d }tt|d t t |||t||gd }tt|d t t |||t|t ||gj d }t |t ||gj t|t ||gj gd }t |t ||gj t |}|}d|ddd<d|ddd<tj||d |d} t | |tj||gd |d} t | |tj|t ||gj d |d} t | t ||gj tj|t ||gj gd |d} t | t ||gj gd}t t||dddgt t||ddgddgdS)NcSs||d|dS)Nr r rrrrrfr"z"TestFitting.test_lagfit..fr r rr )w)r r r r1r)rr r r1r4)rr r r1r)r y?r y)rrsrlagfitrr:r`rrMrrKr\r zeros_likecopy) r rrrncoef3coef4coef2drywwcoef3wcoef2drrr test_lagfitsZ    " zTestFitting.test_lagfitN)r,r-r.rrrrrr rc@s$eZdZddZddZddZdS) TestCompanioncCs"tttjgtttjdgdSr')rrsr lagcompanionrrrr test_raisesszTestCompanion.test_raisescCs<tddD]}dg|dg}tt|j||fkqdS)Nr r4r)r9rrrrm)r r?rrrrtest_dimensionsszTestCompanion.test_dimensionscCsttddgddkdS)Nr r )rrg?)rrrrrrrtest_linear_rootszTestCompanion.test_linear_rootN)r,r-r.rrrrrrrrs rc@r) TestGausscCs|td\}}t|d}t|j||}dt|}|dddf||}t|t dd}t| |dS)Nr2cr re) rlaggaussrr:rrsqrtdiagonalreyesum)r rrrvvvdrBrrrtest_100s zTestGauss.test_100N)r,r-r.rrrrrrrrc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)TestMiscc Cstg}tt|dgtddD]=}tttj dd|dddd}t|}t ||}d}t t ||dktt |ddt||qdS)Nr r4rr r ) r lagfromrootsrrr9r:cosr`pirKrrMr)r rCr?rootsrrBrrrtest_lagfromrootss *   zTestMisc.test_lagfromrootscCslttdggttddgdgtddD]}tdd|}tt|}tt|t|qdS)Nr rr r4r1)rrlagrootsr9r:r`rr)r r?rBrCrrr test_lagrootsszTestMisc.test_lagrootscCsbgd}tttj|dtt||ddtt|d|ddtt|ddgdS)N)r r r rr r r0r r)rrsrrr)r rrrr test_lagtrims zTestMisc.test_lagtrimcCsttddddgdS)Nr1rrjr )rrlaglinerrrr test_lagline szTestMisc.test_laglinecCs2tdD]}ttdg|dgt|qdSNrjrr )r9rrrrlr r?rrr test_lag2poly  "zTestMisc.test_lag2polycCs2tdD]}ttt|dg|dgqdSr)r9rrrrlrrrr test_poly2lagrzTestMisc.test_poly2lagcCs2tddd}t| }t|}t||dS)Nr )r:r`expr lagweightr)r rrBrCrrr test_weights  zTestMisc.test_weightN) r,r-r.rrrrrrrrrrrrs   r)$__doc__ functoolsrnumpyr:numpy.polynomial.laguerre polynomiallaguerrernumpy.polynomial.polynomialr numpy.testingrrrrr\L0L1L2L3L4L5L6rlrrr/rarrrrrrrrrrrs2  B^f(0>