zmc
2023-12-22 9fdbf60165db0400c2e8e6be2dc6e88138ac719a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
U
P±d¼Jã @sÐdZddlmZddlZddlmmZddl    m
Z
ddl m Z m Z mZmZe dg¡Ze ddg¡Ze ddd    g¡Ze dd
dd g¡Ze d dd ddg¡Ze ddddddg¡Ze dddddddg¡Ze ddddddddg¡Ze dddddddddg    ¡Ze dddd dd!dd"dd#g
¡Zeeeeeeeeeeg
Zd$d%„ZGd&d'„d'ƒZGd(d)„d)ƒZGd*d+„d+ƒZGd,d-„d-ƒZ Gd.d/„d/ƒZ!Gd0d1„d1ƒZ"Gd2d3„d3ƒZ#Gd4d5„d5ƒZ$Gd6d7„d7ƒZ%Gd8d9„d9ƒZ&dS):zTests for hermite module.
 
é)ÚreduceN©Úpolyval)Úassert_almost_equalÚ assert_raisesÚ assert_equalÚassert_éééþÿÿÿéiôÿÿÿéé iÐÿÿÿééxi`ÿÿÿé iˆÿÿÿiÐi þÿÿé@ipùÿÿi  iÀúÿÿé€ii€Ëÿÿi€4iòÿÿéi viÅþÿi½iÜÿÿicCstj|ddS)Ngíµ ÷ư>)Ztol)ÚhermÚhermtrim©Úx©rúZd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/polynomial/tests/test_hermite.pyÚtrimsrc@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
Ú TestConstantscCsttjddgƒdS)Néÿÿÿÿr    )rrZ
hermdomain©ÚselfrrrÚtest_hermdomain!szTestConstants.test_hermdomaincCsttjdgƒdS)Nr)rrZhermzerorrrrÚ test_hermzero$szTestConstants.test_hermzerocCsttjdgƒdS©Nr    )rrZhermonerrrrÚ test_hermone'szTestConstants.test_hermonecCsttjddgƒdS)Nrçà?)rrZhermxrrrrÚ
test_hermx*szTestConstants.test_hermxN)Ú__name__Ú
__module__Ú __qualname__r r!r#r%rrrrrsrc@sJeZdZe ddd¡Zdd„Zdd„Zdd    „Zd
d „Z    d d „Z
dd„Z dS)ÚTestArithmeticéýÿÿÿéédcCsžtdƒD]}tdƒD]‚}d|›d|›}t t||ƒd¡}||d7<||d7<t dg|dgdg|dg¡}tt|ƒt|ƒ|dqqdS©NéúAt i=ú, j=r    r©Úerr_msg)ÚrangeÚnpÚzerosÚmaxrÚhermaddrr©rÚiÚjÚmsgÚtgtÚresrrrÚ test_hermadd1s  $zTestArithmetic.test_hermaddcCsžtdƒD]}tdƒD]‚}d|›d|›}t t||ƒd¡}||d7<||d8<t dg|dgdg|dg¡}tt|ƒt|ƒ|dqqdSr-)r3r4r5r6rZhermsubrrr8rrrÚ test_hermsub;s  $zTestArithmetic.test_hermsubcCsvtt dg¡dgƒtt dg¡ddgƒtddƒD]<}dg|dg}dg|d|ddg}tt |¡|ƒq4dS)Nrr    r$r.)rrZhermmulxr3)rr9Zserr<rrrÚ test_hermmulxEs zTestArithmetic.test_hermmulxc
Cs²tdƒD]¤}dg|dg}t |j|¡}tdƒD]x}d|›d|›}dg|dg}t |j|¡}t ||¡}t |j|¡}    tt|ƒ||dk|ƒt|    |||dq2qdS)Nr.rr    r/r0r1)r3rÚhermvalrÚhermmulrÚlenr)
rr9Zpol1Zval1r:r;Zpol2Zval2Zpol3Zval3rrrÚ test_hermmulMs   zTestArithmetic.test_hermmulc
Cs–tdƒD]ˆ}tdƒD]z}d|›d|›}dg|dg}dg|dg}t ||¡}t ||¡\}}t t ||¡|¡}    tt|    ƒt|ƒ|dqqdS)Nr.r/r0rr    r1)r3rr7ZhermdivrBrr)
rr9r:r;ÚciÚcjr<ZquoÚremr=rrrÚ test_hermdiv[s   zTestArithmetic.test_hermdivcCs|tdƒD]n}tdƒD]`}d|›d|›}t |d¡}ttj|g|t dg¡ƒ}t ||¡}tt    |ƒt    |ƒ|dqqdS)Nr.r/r0r    r1)
r3r4ÚarangerrrBÚarrayZhermpowrr)rr9r:r;Úcr<r=rrrÚ test_hermpowfs   zTestArithmetic.test_hermpowN) r&r'r(r4Úlinspacerr>r?r@rDrHrLrrrrr).s
 
 r)c@s†eZdZe dddg¡Ze dee¡Ze deee¡Zej         d¡ddZ
e e
dd    d
gƒZ d d „Z d d„Zdd„Zdd„Zdd„ZdS)ÚTestEvaluationg@gð?gè?úi,j->ijú
i,j,k->ijk©r+r.r
r    g@g@csètt gdg¡jdƒt dd¡‰‡fdd„tDƒ}tdƒD]<}d|›}||}t ˆdg|dg¡}t|||dq<td    ƒD]`}d
g|}t     |¡‰tt ˆdg¡j
|ƒtt ˆddg¡j
|ƒtt ˆdddg¡j
|ƒq‚dS) Nr    rrcsg|]}tˆ|ƒ‘qSrr©Ú.0rKrrrÚ
<listcomp>€sz/TestEvaluation.test_hermval.<locals>.<listcomp>é
r/r1r+r
) rrrAÚsizer4rMÚHlistr3rr5Úshape)rÚyr9r;r<r=ZdimsrrrÚ test_hermvalzs  
 
 
zTestEvaluation.test_hermvalc
Cs‚|j\}}}|j\}}}tttj||dd…|jƒ||}t |||j¡}t||ƒt     d¡}    t |    |    |j¡}t
|j dkƒdS©Nr
©r
r+) rrYrÚ
ValueErrorrÚ    hermval2dÚc2drr4ÚonesrrX©
rÚx1Úx2Úx3Úy1Úy2Zy3r<r=ÚzrrrÚtest_hermval2ds  
 
zTestEvaluation.test_hermval2dc
CsŒ|j\}}}|j\}}}tttj|||dd…|jƒ|||}t ||||j¡}t||ƒt     d¡}    t |    |    |    |j¡}t
|j dkƒdSr[) rrYrr]rÚ    hermval3dÚc3drr4r`rrXrarrrÚtest_hermval3d s   
 
zTestEvaluation.test_hermval3dc
Csl|j\}}}|j\}}}t d||¡}t |||j¡}t||ƒt d¡}    t |    |    |j¡}t    |j
dkƒdS)NrOr\)r
r+r
r+) rrYr4ÚeinsumrZ
hermgrid2dr_rr`rrXrarrrÚtest_hermgrid2d±s  
 
zTestEvaluation.test_hermgrid2dc
Csr|j\}}}|j\}}}t d|||¡}t ||||j¡}t||ƒt d¡}    t |    |    |    |j¡}t    |j
dkƒdS)NrPr\)r
r+r
r+r
r+) rrYr4rlrZ
hermgrid3drjrr`rrXrarrrÚtest_hermgrid3d¿s  
 
zTestEvaluation.test_hermgrid3dN)r&r'r(r4rJZc1drlr_rjÚrandomrrrYrZrhrkrmrnrrrrrNpsrNc@seZdZdd„Zdd„ZdS)Ú TestIntegralc
    Cs2tttjdgdƒtttjdgdƒtttjdgdddgƒtttjdgdgdtttjdgdgdtttjdgddtdd    ƒD]8}dg|ddg}tjdg||d
}t|ddgƒq†td    ƒD]n}|d}dg|dg}|gdg|d|g}t |¡}tj|d|gd
}t |¡}tt    |ƒt    |ƒƒqÈtd    ƒD]N}|d}dg|dg}t |¡}tj|d|gdd }tt 
d|¡|ƒq@td    ƒD]r}|d}dg|dg}|gdg|d|g}t |¡}tj|d|gdd }t |¡}tt    |ƒt    |ƒƒq˜td    ƒD]r}tdd    ƒD]`}    dg|dg}|dd…}t|    ƒD]}tj|dd }qJtj||    d }tt    |ƒt    |ƒƒq"qtd    ƒD]€}tdd    ƒD]n}    dg|dg}|dd…}t|    ƒD]}tj|d|gd
}qÆtj||    t t|    ƒƒd
}tt    |ƒt    |ƒƒqžqtd    ƒD]„}tdd    ƒD]r}    dg|dg}|dd…}t|    ƒD]}tj|d|gdd }qPtj||    t t|    ƒƒdd }tt    |ƒt    |ƒƒq(qtd    ƒD]„}tdd    ƒD]r}    dg|dg}|dd…}t|    ƒD]}tj|d|gdd }qÞtj||    t t|    ƒƒdd }tt    |ƒt    |ƒƒq¶q¨dS)Nrr$rr    )Úlbnd)Úscl©Úaxisr
r.)ÚmÚk)rurvrq)rurvrr©ru) rÚ    TypeErrorrÚhermintr]r3rÚ    poly2hermÚ    herm2polyrrAÚlist)
rr9rvr=rrÚpolr<Zhermpolryr:rrrÚ test_hermintÐs€ 
 
 
 
 
            zTestIntegral.test_hermintcCsštj d¡}t dd„|jDƒ¡j}tj|dd}t||ƒt dd„|Dƒ¡}tj|dd}t||ƒt dd„|Dƒ¡}tj|d    dd
}t||ƒdS) N©r+r cSsg|]}t |¡‘qSr©rryrRrrrrT'sz2TestIntegral.test_hermint_axis.<locals>.<listcomp>rrscSsg|]}t |¡‘qSrr€rRrrrrT+sr    cSsg|]}tj|dd‘qS)r+)rvr€rRrrrrT/sr+)rvrt)r4roÚvstackÚTrryr©rr_r<r=rrrÚtest_hermint_axis#s 
 
zTestIntegral.test_hermint_axisN)r&r'r(r~r„rrrrrpÎsSrpc@seZdZdd„Zdd„ZdS)ÚTestDerivativecCstttjdgdƒtttjdgdƒtdƒD]4}dg|dg}tj|dd}tt|ƒt|ƒƒq,tdƒD]N}tddƒD]>}dg|dg}tjtj||d|d}t    t|ƒt|ƒƒqxqjtdƒD]R}tddƒD]B}dg|dg}tjtj||dd|dd}t    t|ƒt|ƒƒqÐqÂdS)    Nrr$rr.r    rwr
)rurr)
rrxrÚhermderr]r3rrryr)rr9r<r=r:rrrÚ test_hermder6s    zTestDerivative.test_hermdercCsltj d¡}t dd„|jDƒ¡j}tj|dd}t||ƒt dd„|Dƒ¡}tj|dd}t||ƒdS)NrcSsg|]}t |¡‘qSr©rr†rRrrrrTSsz4TestDerivative.test_hermder_axis.<locals>.<listcomp>rrscSsg|]}t |¡‘qSrrˆrRrrrrTWsr    )r4rorr‚rr†rrƒrrrÚtest_hermder_axisOs 
z TestDerivative.test_hermder_axisN)r&r'r(r‡r‰rrrrr…4sr…c@s8eZdZej d¡ddZdd„Zdd„Zdd    „Zd
S) Ú
TestVanderrQr
r    cCsÎt d¡}t |d¡}t|jdkƒtdƒD].}dg|dg}t|d|ft ||¡ƒq,t     ddgddgdd    gg¡}t |d¡}t|jd
kƒtdƒD].}dg|dg}t|d|ft ||¡ƒqšdS) Nr+rr rr    .r
r.é)r+r
r )
r4rIrÚ
hermvanderrrXr3rrArJ)rrÚvr9ÚcoefrrrÚtest_hermvander`s
    zTestVander.test_hermvandercCsx|j\}}}tj d¡}t ||ddg¡}t |||¡}t ||j¡}t||ƒt |g|gddg¡}t    |j
dkƒdS)Nr\r    r
)r    r.r‹) rr4rorZ hermvander2dr^ÚdotÚflatrrrX©rrbrcrdrKZvanr<r=rrrÚtest_hermvander2dqs  
zTestVander.test_hermvander2dcCs„|j\}}}tj d¡}t |||dddg¡}t ||||¡}t ||j¡}t||ƒt |g|g|gdddg¡}t    |j
dkƒdS)N)r
r+r r    r
r+)r    r.é) rr4rorZ hermvander3drirr‘rrrXr’rrrÚtest_hermvander3d~s  
zTestVander.test_hermvander3dN)    r&r'r(r4rorrr“r•rrrrrŠ\s rŠc@seZdZdd„ZdS)Ú TestFittingc    Cs&dd„}dd„}tttjdgdgdƒtttjdggdgdƒtttjgdgdƒtttjdgdgggdƒtttjddgdgdƒtttjdgddgdƒtttjdgdgddggd    tttjdgdgdddgd    tttjdgdgdgƒtttjdgdgddd
gƒtttjdgdggƒt dd¡}||ƒ}t ||d ¡}tt|ƒd ƒt    t 
||¡|ƒt ||dddd g¡}tt|ƒd ƒt    t 
||¡|ƒt ||d ¡}tt|ƒd ƒt    t 
||¡|ƒt ||dddd d g¡}tt|ƒd ƒt    t 
||¡|ƒt ||dd d ddg¡}tt|ƒd ƒt    t 
||¡|ƒt |t  ||g¡j d ¡}t    |t  ||g¡j ƒt |t  ||g¡j dddd g¡}t    |t  ||g¡j ƒt  |¡}| ¡}    d|ddd…<d|ddd…<tj||    d |d    }
t    |
|ƒtj||    dddd g|d    }
t    |
|ƒtj|t  |    |    g¡j d |d    } t    | t  ||g¡j ƒtj|t  |    |    g¡j dddd g|d    } t    | t  ||g¡j ƒddddg}t    t ||d¡ddgƒt    t ||ddg¡ddgƒt dd¡}||ƒ}t ||d ¡} t    t 
|| ¡|ƒt ||ddd g¡} t    t 
|| ¡|ƒt    | | ƒdS)NcSs||d|dS)Nr    r
rrrrrÚfsz#TestFitting.test_hermfit.<locals>.fcSs|d|ddS)Nr r
r    rrrrrÚf2’sz$TestFitting.test_hermfit.<locals>.f2r    rrr
)Úwr‹r+r r.yð?y€ð¿r$)rr]rZhermfitrxr4rMrrCrrArJr‚Z
zeros_likeÚcopy)rr—r˜rrYZcoef3Zcoef4Zcoef2dr™ZywZwcoef3Zwcoef2dZcoef1Zcoef2rrrÚ test_hermfitŽsp "
 
 
&  zTestFitting.test_hermfitN)r&r'r(r›rrrrr–Œsr–c@s$eZdZdd„Zdd„Zdd„ZdS)Ú TestCompanioncCs"tttjgƒtttjdgƒdSr")rr]rÚ hermcompanionrrrrÚ test_raisesÛszTestCompanion.test_raisescCs<tddƒD],}dg|dg}tt |¡j||fkƒq
dS)Nr    r.r)r3rrrrX)rr9rŽrrrÚtest_dimensionsßszTestCompanion.test_dimensionscCstt ddg¡ddkƒdS)Nr    r
)rrgп)rrrrrrrÚtest_linear_rootäszTestCompanion.test_linear_rootN)r&r'r(ržrŸr rrrrrœÙsrœc@seZdZdd„ZdS)Ú    TestGausscCs„t d¡\}}t |d¡}t |j||¡}dt | ¡¡}|dd…df||}t|t     d¡ƒt tj
¡}t|  ¡|ƒdS)Nr,écr    ) rZ    hermgaussrŒr4rr‚ÚsqrtZdiagonalrZeyeÚpiÚsum)rrr™rÚvvZvdr<rrrÚtest_100ês  zTestGauss.test_100N)r&r'r(r§rrrrr¡èsr¡c@sDeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dS)ÚTestMiscc    Cs¤t g¡}tt|ƒdgƒtddƒD]z}t t tj dd|d¡ddd…¡}t |¡}t     ||¡}d}t
t |ƒ|dkƒtt  |¡ddƒt||ƒq$dS)Nr    r.rr
r) rÚ hermfromrootsrrr3r4ÚcosrMr¤rArrCr{)rr=r9Úrootsr}r<rrrÚtest_hermfromrootsýs
*
 zTestMisc.test_hermfromrootscCsltt dg¡gƒtt ddg¡dgƒtddƒD]4}t dd|¡}t t |¡¡}tt|ƒt|ƒƒq2dS)Nr    gà¿r
r.r)rrZ    hermrootsr3r4rMr©r)rr9r<r=rrrÚtest_hermroots    s zTestMisc.test_hermrootscCsfddddg}tttj|dƒtt |¡|dd…ƒtt |d¡|dd…ƒtt |d¡dgƒdS)Nr
rr    rr*)rr]rrr)rrŽrrrÚ test_hermtrims
 zTestMisc.test_hermtrimcCstt dd¡ddgƒdS)Nr+r r
)rrZhermlinerrrrÚ test_hermlineszTestMisc.test_hermlinecCs2tdƒD]$}tt dg|dg¡t|ƒqdS©NrUrr    )r3rrr{rW©rr9rrrÚtest_herm2polys zTestMisc.test_herm2polycCs2tdƒD]$}tt t|¡dg|dgƒqdSr°)r3rrrzrWr±rrrÚtest_poly2herm#s zTestMisc.test_poly2hermcCs6t ddd¡}t |d ¡}t |¡}t||ƒdS)Néûÿÿÿr.é r
)r4rMÚexprZ
hermweightr)rrr<r=rrrÚ test_weight's
zTestMisc.test_weightN)
r&r'r(r¬r­r®r¯r²r³r·rrrrr¨ûs  r¨)'Ú__doc__Ú    functoolsrÚnumpyr4Znumpy.polynomial.hermiteZ
polynomialZhermiterZnumpy.polynomial.polynomialrZ numpy.testingrrrrrJZH0ZH1ZH2ZH3ZH4ZH5ZH6ZH7ZH8ZH9rWrrr)rNrpr…rŠr–rœr¡r¨rrrrÚ<module>s6   B^f(0M