o 6aH @sdZddlmZddlZddlmmZddl m Z ddl m Z m Z mZmZedgZeddgZegdZegd Zegd Zegd Zegd Zegd ZegdZegdZeeeeeeeeeeg ZddZGdddZGdddZGdddZGdddZ GdddZ!GdddZ"GdddZ#Gd d!d!Z$Gd"d#d#Z%Gd$d%d%Z&dS)&zTests for hermite module. )reduceNpolyval)assert_almost_equal assert_raises assert_equalassert_)r)rir) rir)rxri`r )iriri r@)ripri rir) iriri4rir) ri vriririricCstj|ddS)Ngư>)tol)hermhermtrimxrE/usr/lib/python3/dist-packages/numpy/polynomial/tests/test_hermite.pytrimsrc@s,eZdZddZddZddZddZd S) TestConstantscCttjddgdS)Nr )rr hermdomainselfrrrtest_hermdomain!zTestConstants.test_hermdomaincCttjdgdS)Nr)rrhermzeror!rrr test_hermzero$zTestConstants.test_hermzerocCr%Nr )rrhermoner!rrr test_hermone'r(zTestConstants.test_hermonecCr)Nr?)rrhermxr!rrr test_hermx*r$zTestConstants.test_hermxN)__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)rangenpzerosmaxrhermaddrrr"ijmsgtgtresrrr test_hermadd1  $zTestArithmetic.test_hermaddcCstdD]H}tdD]A}d|d|}tt||d}||d7<||d8<tdg|dgdg|dg}tt|t||dq qdSr6)r<r=r>r?rhermsubrrrArrr test_hermsub;rHzTestArithmetic.test_hermsubcCsvttdgdgttdgddgtddD]}dg|dg}dg|d|ddg}tt||qdS)Nrr r,r7)rrhermmulxr<)r"rBserrErrr test_hermmulxEszTestArithmetic.test_hermmulxc CstdD]R}dg|dg}t|j|}tdD]<}d|d|}dg|dg}t|j|}t||}t|j|} tt|||dk|t| |||dqqdS)Nr7rr r8r9r:)r<rhermvalrhermmulrlenr) r"rBpol1val1rCrDpol2val2pol3val3rrr test_hermmulMs   zTestArithmetic.test_hermmulc CstdD]D}tdD]=}d|d|}dg|dg}dg|dg}t||}t||\}}tt|||} tt| t||dq qdS)Nr7r8r9rr r:)r<rr@hermdivrOrr) r"rBrCrDcicjrEquoremrFrrr test_hermdiv[s   zTestArithmetic.test_hermdivcCs|tdD]7}tdD]0}d|d|}t|d}ttj|g|tdg}t||}tt |t ||dq qdS)Nr7r8r9r r:) r<r=arangerrrOarrayhermpowrr)r"rBrCrDcrErFrrr test_hermpowfs   zTestArithmetic.test_hermpowN) r/r0r1r=linspacerrGrJrMrWr]rbrrrrr2.s   r2c@seZdZegdZedeeZedeeeZej dddZ e e gdZ dd Z d d Zd d ZddZddZdS)TestEvaluation)g@?g?i,j->ij i,j,k->ijkr4r7r r )reg@g@csttgdgjdtddfddtD}tdD]}d|}||}tdg|dg}t|||dqtd D]/}d g|}t |ttdgj |ttddgj |ttgd j |qAdS) Nr rrcsg|]}t|qSrr.0rarrr z/TestEvaluation.test_hermval.. r8r:r4r )r rr) rrrNsizer=rcHlistr<rr>shape)r"yrBrDrErFdimsrrr test_hermvalzs      zTestEvaluation.test_hermvalc Cs|j\}}}|j\}}}tttj||dd|j||}t|||j}t||t d} t| | |j}t |j dkdSNr r r4) rrqr ValueErrorr hermval2dc2drr=onesrrp r"x1x2x3y1y2y3rErFzrrrtest_hermval2ds    zTestEvaluation.test_hermval2dc Cs|j\}}}|j\}}}tttj|||dd|j|||}t||||j}t||t d} t| | | |j}t |j dkdSrt) rrqrrvr hermval3dc3drr=ryrrprzrrrtest_hermval3ds     zTestEvaluation.test_hermval3dc Csl|j\}}}|j\}}}td||}t|||j}t||td} t| | |j}t |j dkdS)Nrfru)r r4r r4) rrqr=einsumr hermgrid2drxrryrrprzrrrtest_hermgrid2ds    zTestEvaluation.test_hermgrid2dc Csr|j\}}}|j\}}}td|||}t||||j}t||td} t| | | |j}t |j dkdS)Nrgru)r r4r r4r r4) rrqr=rr hermgrid3drrryrrprzrrrtest_hermgrid3ds    zTestEvaluation.test_hermgrid3dN)r/r0r1r=r_c1drrxrrandomrrrqrsrrrrrrrrrdps rdc@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)Nrr,rr )lbnd)sclaxisr r7)mk)rrr)rrrr) r TypeErrorrhermintrvr<r poly2herm herm2polyrrNlist) r"rBrrFrpolrEhermpolrrCrrr test_hermints                    zTestIntegral.test_hermintcCstjd}tdd|jDj}tj|dd}t||tdd|D}tj|dd}t||tdd|D}tj|d dd }t||dS) Nr4r cSg|]}t|qSrrrrirrrrk'rlz2TestIntegral.test_hermint_axis..rrcSrrrrirrrrk+rlr cSsg|] }tj|ddqS)r4)rrrirrrrk/sr4)rr)r=rvstackTrrrr"rxrErFrrrtest_hermint_axis#s   zTestIntegral.test_hermint_axisN)r/r0r1rrrrrrrs Src@r)TestDerivativecCstttjdgdtttjdgdtdD]}dg|dg}tj|dd}tt|t|qtdD]'}tddD]}dg|dg}tjtj||d|d}t t|t|q.rrcSrrrrirrrrkWrlr )r=rrrrrrrrrrtest_hermder_axisOs  z TestDerivative.test_hermder_axisN)r/r0r1rrrrrrr4s rc@s8eZdZejdddZddZddZdd Zd S) TestVanderrhr 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) Nr4rr rr .r r7)r4r r ) r=r^r hermvanderrrpr<rrNr_)r"rvrBcoefrrrtest_hermvander`s     zTestVander.test_hermvandercCsx|j\}}}tjd}t||ddg}t|||}t||j}t||t|g|gddg}t |j dkdS)Nrur r )r r7r) rr=rr hermvander2drwdotflatrrrpr"r{r|r}ravanrErFrrrtest_hermvander2dqs   zTestVander.test_hermvander2dcCs|j\}}}tjd}t|||gd}t||||}t||j}t||t|g|g|ggd}t |j dkdS)N)r r4r )r r r4)r r7) rr=rr hermvander3drrrrrrprrrrtest_hermvander3d~s   zTestVander.test_hermvander3dN) r/r0r1r=rrrrrrrrrr\s  rc@eZdZddZdS) TestFittingcCsdd}dd}tttjdgdgdtttjdggdgdtttjgdgdtttjdgdgggdtttjddgdgdtttjdgddgdtttjdgdgddggd tttjdgdgdddgd tttjdgdgdgtttjdgdggd tttjdgdggtdd}||}t||d }tt|d t t |||t||gd }tt|d t t |||t||d }tt|dt t |||t||gd}tt|dt t |||t||gd}tt|dt 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||ddgddgtdd}||}t||d } t t || |t||gd} t t || |t | | dS)NcSs||d|dS)Nr r rrrrrfr$z#TestFitting.test_hermfit..fcSs|d|ddS)Nr r r rrrrrf2r$z$TestFitting.test_hermfit..f2r rrr )w)r rrr4r )rr r r4r7)rr r r4r )r r4r r r)r y?ryr,)rr r )rrvrhermfitrr=rcrrPrrNr_r zeros_likecopy)r"rrrrqcoef3coef4coef2drywwcoef3wcoef2dcoef1coef2rrr test_hermfitsp    " zTestFitting.test_hermfitN)r/r0r1rrrrrr rc@s$eZdZddZddZddZdS) TestCompanioncCs"tttjgtttjdgdSr))rrvr hermcompanionr!rrr test_raisesszTestCompanion.test_raisescCs<tddD]}dg|dg}tt|j||fkqdS)Nr r7r)r<rrrrp)r"rBrrrrtest_dimensionsszTestCompanion.test_dimensionscCsttddgddkdS)Nr r )rrgп)rrrr!rrrtest_linear_rootszTestCompanion.test_linear_rootN)r/r0r1rrrrrrrrs rc@r) TestGausscCstd\}}t|d}t|j||}dt|}|dddf||}t|t dttj }t| |dS)Nr5cr ) r hermgaussrr=rrsqrtdiagonalreyepisum)r"rrrvvvdrErrrtest_100s  zTestGauss.test_100N)r/r0r1rrrrrrrrc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)TestMiscc Cstg}tt|dgtddD]=}tttj dd|dddd}t|}t ||}d}t t ||dktt |ddt||qdS)Nr r7rr r) r hermfromrootsrrr<r=cosrcrrNrrPr)r"rFrBrootsrrErrrtest_hermfromrootss *   zTestMisc.test_hermfromrootscCslttdggttddgdgtddD]}tdd|}tt|}tt|t|qdS)Nr gr r7r)rr hermrootsr<r=rcrr)r"rBrErFrrrtest_hermroots szTestMisc.test_hermrootscCsbgd}tttj|dtt||ddtt|d|ddtt|ddgdS)N)r rr rrr r3r r)rrvrrr)r"rrrr test_hermtrims zTestMisc.test_hermtrimcCsttddddgdS)Nr4r r )rrhermliner!rrr test_hermlineszTestMisc.test_hermlinecCs2tdD]}ttdg|dgt|qdSNrmrr )r<rrrror"rBrrrtest_herm2poly "zTestMisc.test_herm2polycCs2tdD]}ttt|dg|dgqdSr)r<rrrrorrrrtest_poly2herm#rzTestMisc.test_poly2hermcCs6tddd}t|d }t|}t||dS)Nr7 r )r=rcexpr hermweightr)r"rrErFrrr test_weight's zTestMisc.test_weightN) r/r0r1rrrrrrrrrrrrs   r)'__doc__ functoolsrnumpyr=numpy.polynomial.hermite polynomialhermiternumpy.polynomial.polynomialr numpy.testingrrrrr_H0H1H2H3H4H5H6H7H8H9rorrr2rdrrrrrrrrrrrs8   B^f(0M