o 6aI @sdZddlmZddlZddlmmZddl m Z ddl m Z m Z mZmZedgZeddgZegdZegdZegd Zegd Zegd Zegd Zegd ZegdZeeeeeeeeeeg ZddZGdddZGdddZGdddZGdddZ GdddZ!GdddZ"GdddZ#Gdd d Z$Gd!d"d"Z%Gd#d$d$Z&dS)%zTests for hermite_e module. )reduceNpolyval)assert_almost_equal assert_raises assert_equalassert_)rr )rrr )rirr )rrirr )r-rrrr )riririrr ) rri\rrirr ) riririzrirr cCstj|ddS)Ngư>)tol)herme hermetrimxrG/usr/lib/python3/dist-packages/numpy/polynomial/tests/test_hermite_e.pytrimsrc@s,eZdZddZddZddZddZd S) TestConstantscCttjddgdS)Nr r )rr hermedomainselfrrrtest_hermedomain!zTestConstants.test_hermedomaincCttjdgdS)Nr)rr hermezerorrrrtest_hermezero$zTestConstants.test_hermezerocCr!Nr )rrhermeonerrrr test_hermeone'r$zTestConstants.test_hermeonecCr)Nrr )rrhermexrrrr test_hermex*r zTestConstants.test_hermexN)__name__ __module__ __qualname__rr#r'r)rrrrrs  rc@sJeZdZedddZddZddZdd Zd d Z d d Z ddZ dS)TestArithmeticr r dcCstdD]H}tdD]A}d|d|}tt||d}||d7<||d7<tdg|dgdg|dg}tt|t||dq qdSNAt i=, j=r rerr_msg)rangenpzerosmaxrhermeaddrrrijmsgtgtresrrr test_hermeadd1  $zTestArithmetic.test_hermeaddcCstdD]H}tdD]A}d|d|}tt||d}||d7<||d8<tdg|dgdg|dg}tt|t||dq qdSr/)r5r6r7r8rhermesubrrr:rrr test_hermesub;rAzTestArithmetic.test_hermesubcCsvttdgdgttdgddgtddD]}dg|dg}dg|d|ddg}tt||qdS)Nrr r0)rr hermemulxr5)rr;serr>rrrtest_hermemulxEszTestArithmetic.test_hermemulxc CstdD]R}dg|dg}t|j|}tdD]<}d|d|}dg|dg}t|j|}t||}t|j|} tt|||dk|t| |||dqqdS)Nr0rr r1r2r3)r5rhermevalrhermemulrlenr) rr;pol1val1r<r=pol2val2pol3val3rrr test_hermemulMs   zTestArithmetic.test_hermemulc CstdD]D}tdD]=}d|d|}dg|dg}dg|dg}t||}t||\}}tt|||} tt| t||dq qdS)Nr0r1r2rr r3)r5rr9hermedivrHrr) rr;r<r=cicjr>quoremr?rrr test_hermediv[s   zTestArithmetic.test_hermedivcCs|tdD]7}tdD]0}d|d|}t|d}ttj|g|tdg}t||}tt |t ||dq qdS)Nr0r1r2r r3) r5r6arangerrrHarrayhermepowrr)rr;r<r=cr>r?rrr test_hermepowfs   zTestArithmetic.test_hermepowN) r*r+r,r6linspacerr@rCrFrPrVr[rrrrr-.s   r-c@seZdZegdZedeeZedeeeZej dddZ e e gdZ dd Z d d Zd d ZddZddZdS)TestEvaluation)g@@@i,j->ij i,j,k->ijkr r0r )g?r^r_csttgdgjdtddfddtD}tdD]}d|}||}tdg|dg}t|||dqtd D]/}d g|}t |ttdgj |ttddgj |ttgd j |qAdS) Nr rr csg|]}t|qSrr.0rZrrr z0TestEvaluation.test_hermeval.. r1r3r rc)r rr) rrrGsizer6r\Helistr5rr7shape)ryr;r=r>r?dimsrrr test_hermevalzs      zTestEvaluation.test_hermevalc Cs|j\}}}|j\}}}tttj||dd|j||}t|||j}t||t d} t| | |j}t |j dkdSNrcrcr ) rrlr ValueErrorr hermeval2dc2drr6onesrrk rx1x2x3y1y2y3r>r?zrrrtest_hermeval2ds    zTestEvaluation.test_hermeval2dc Cs|j\}}}|j\}}}tttj|||dd|j|||}t||||j}t||t d} t| | | |j}t |j dkdSro) rrlrrqr hermeval3dc3drr6rtrrkrurrrtest_hermeval3ds     zTestEvaluation.test_hermeval3dc Csl|j\}}}|j\}}}td||}t|||j}t||td} t| | |j}t |j dkdS)Nr`rp)rcr rcr ) rrlr6einsumr hermegrid2drsrrtrrkrurrrtest_hermegrid2ds    zTestEvaluation.test_hermegrid2dc Csr|j\}}}|j\}}}td|||}t||||j}t||td} t| | | |j}t |j dkdS)Nrarp)rcr rcr rcr ) rrlr6rr hermegrid3drrrtrrkrurrrtest_hermegrid3ds    zTestEvaluation.test_hermegrid3dN)r*r+r,r6rXc1drrsrrandomrrrlrnr}rrrrrrrr]ps r]c@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)sclaxisrcr0)mk)rrr)rrrr) r TypeErrorrhermeintrqr5r poly2herme herme2polyrrGlist) rr;rr?rpolr>hermepolrr<rrr test_hermeints                    zTestIntegral.test_hermeintcCstjd}tdd|jDj}tj|dd}t||tdd|D}tj|dd}t||tdd|D}tj|d dd }t||dS) Nr cSg|]}t|qSrrrrdrrrrf'rgz3TestIntegral.test_hermeint_axis..rrcSrrrrdrrrrf+rgr cSsg|] }tj|ddqS)r )rrrdrrrrf/sr )rr)r6rvstackTrrrrrsr>r?rrrtest_hermeint_axis#s   zTestIntegral.test_hermeint_axisN)r*r+r,rrrrrrrs Src@r)TestDerivativecCstttjdgdtttjdgdtdD]}dg|dg}tj|dd}tt|t|qtdD]'}tddD]}dg|dg}tjtj||d|d}t t|t|qr?r<rrr test_hermeder6s*   zTestDerivative.test_hermedercCsltjd}tdd|jDj}tj|dd}t||tdd|D}tj|dd}t||dS)NrcSrrrrrdrrrrfTrgz5TestDerivative.test_hermeder_axis..rrcSrrrrdrrrrfXrgr )r6rrrrrrrrrrtest_hermeder_axisPs  z!TestDerivative.test_hermeder_axisN)r*r+r,rrrrrrr4s rc@s8eZdZejdddZddZddZdd Zd S) TestVanderrbrcr cCstd}t|d}t|jdktdD]}dg|dg}t|d|ft||qt ddgddgdd gg}t|d}t|jd ktdD]}dg|dg}t|d|ft||qMdS) Nr rrrr .rcr0)r rcr) r6rWr hermevanderrrkr5rrGrX)rrvr;coefrrrtest_hermevanderas     zTestVander.test_hermevandercCsx|j\}}}tjd}t||ddg}t|||}t||j}t||t|g|gddg}t |j dkdS)Nrpr rc)r r0r) rr6rr hermevander2drrdotflatrrrkrrvrwrxrZvanr>r?rrrtest_hermevander2drs   zTestVander.test_hermevander2dcCs|j\}}}tjd}t|||gd}t||||}t||j}t||t|g|g|ggd}t |j dkdS)N)rcr r)r rcr )r r0) rr6rr hermevander3dr~rrrrrkrrrrtest_hermevander3ds   zTestVander.test_hermevander3dN) r*r+r,r6rrrrrrrrrr]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 rcrrrrrfr z$TestFitting.test_hermefit..fcSs|d|ddS)Nrrcr rrrrrf2r z%TestFitting.test_hermefit..f2r r rrc)w)rcr rr r)rr rcr r0)rr rcr r)rcr rr r)r y?r y)rrcr)rrqrhermefitrr6r\rrIrrGrXr zeros_likecopy)rrrrrlcoef3coef4coef2drywwcoef3wcoef2dcoef1coef2rrr test_hermefitsp    " zTestFitting.test_hermefitN)r*r+r,rrrrrr rc@s$eZdZddZddZddZdS) TestCompanioncCs"tttjgtttjdgdSr%)rrqrhermecompanionrrrr test_raisesszTestCompanion.test_raisescCs<tddD]}dg|dg}tt|j||fkqdS)Nr r0r)r5rrrrk)rr;rrrrtest_dimensionsszTestCompanion.test_dimensionscCsttddgddkdS)Nr rc)rr)rrrrrrrtest_linear_rootszTestCompanion.test_linear_rootN)r*r+r,rrrrrrrrs rc@r) TestGausscCstd\}}t|d}t|j||}dt|}|dddf||}t|t dtdtj }t| |dS)Nr.cr rc) r hermegaussrr6rrsqrtdiagonalreyepisum)rrrrvvvdr>rrrtest_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 r0rrcr ) rhermefromrootsrrr5r6cosr\rrGrrIr)rr?r;rootsrr>rrrtest_hermefromrootss *   zTestMisc.test_hermefromrootscCslttdggttddgdgtddD]}tdd|}tt|}tt|t|qdS)Nr r rcr0)rr hermerootsr5r6r\rr)rr;r>r?rrrtest_hermeroots szTestMisc.test_hermerootscCsbgd}tttj|dtt||ddtt|d|ddtt|ddgdS)N)rcr r rr r r rcr)rrqrrr)rrrrrtest_hermetrims zTestMisc.test_hermetrimcCsttddddgdS)Nr r)rr hermelinerrrrtest_hermelineszTestMisc.test_hermelinecCs2tdD]}ttdg|dgt|qdSNrhrr )r5rrrrjrr;rrrtest_herme2poly  "zTestMisc.test_herme2polycCs2tdD]}ttt|dg|dgqdSr)r5rrrrjrrrrtest_poly2herme$rzTestMisc.test_poly2hermecCs8tddd}td|d}t|}t||dS)Nr0 rrc)r6r\expr hermeweightr)rrr>r?rrr test_weight(s zTestMisc.test_weightN) r*r+r,rrrrrrrrrrrrs   r)'__doc__ functoolsrnumpyr6numpy.polynomial.hermite_e polynomial hermite_ernumpy.polynomial.polynomialr numpy.testingrrrrrXHe0He1He2He3He4He5He6He7He8He9rjrrr-r]rrrrrrrrrrrs8   B^f)0M