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
U
P±d)Kã @sðdZddlmZddlZddlmmZddl    m
Z
ddl m Z m Z mZmZe dg¡Ze ddg¡Ze dddg¡d    Ze dd
dd g¡d    Ze ddd dd g¡dZe ddddddg¡dZe dddddddg¡dZe ddddddddg¡dZe d ddddddddg    ¡dZe dddd dd!dd"dd#g
¡dZeeeeeeeeeeg
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 legendre module.
 
é)ÚreduceN©Úpolyval)Úassert_almost_equalÚ assert_raisesÚ assert_equalÚassert_ééÿÿÿÿéééýÿÿÿéiâÿÿÿé#ééiºÿÿÿé?éûÿÿÿéiiÅþÿÿéçéiÝÿÿÿi;iKýÿÿi­iûÿÿiiÑÿÿi#é€iôíÿÿibFit›ÿÿi{/cCstj|ddS)Ngíµ ÷ư>)Ztol)ÚlegÚlegtrim©Úx©rú[d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/polynomial/tests/test_legendre.pyÚtrimsrc@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
Ú TestConstantscCsttjddgƒdS)Nr
r    )rrZ    legdomain©ÚselfrrrÚtest_legdomain!szTestConstants.test_legdomaincCsttjdgƒdS)Nr)rrZlegzeror rrrÚ test_legzero$szTestConstants.test_legzerocCsttjdgƒdS©Nr    )rrZlegoner rrrÚ test_legone'szTestConstants.test_legonecCsttjddgƒdS)Nrr    )rrZlegxr rrrÚ    test_legx*szTestConstants.test_legxN)Ú__name__Ú
__module__Ú __qualname__r"r#r%r&rrrrrsrc@sJeZdZe ddd¡Zdd„Zdd„Zdd    „Zd
d „Z    d d „Z
dd„Z dS)ÚTestArithmeticr
r    édcCsžtdƒD]}tdƒD]‚}d|›d|›}t t||ƒd¡}||d7<||d7<t dg|dgdg|dg¡}tt|ƒt|ƒ|dqqdS©NrúAt i=ú, j=r    r©Úerr_msg)ÚrangeÚnpÚzerosÚmaxrÚlegaddrr©r!ÚiÚjÚmsgÚtgtÚresrrrÚ test_legadd1s  $zTestArithmetic.test_legaddcCsžtdƒD]}tdƒD]‚}d|›d|›}t t||ƒd¡}||d7<||d8<t dg|dgdg|dg¡}tt|ƒt|ƒ|dqqdSr,)r1r2r3r4rZlegsubrrr6rrrÚ test_legsub;s  $zTestArithmetic.test_legsubcCsŽtt dg¡dgƒtt dg¡ddgƒtddƒD]T}d|d}dg|dg}dg|d||d|d|g}tt |¡|ƒq4dS)Nrr    rr )rrZlegmulxr1)r!r7ÚtmpZserr:rrrÚ test_legmulxEs $zTestArithmetic.test_legmulxc
Cs²tdƒD]¤}dg|dg}t |j|¡}tdƒD]x}d|›d|›}dg|dg}t |j|¡}t ||¡}t |j|¡}    tt|ƒ||dk|ƒt|    |||dq2qdS)Nrrr    r-r.r/)r1rÚlegvalrÚlegmulrÚlenr)
r!r7Zpol1Zval1r8r9Zpol2Zval2Zpol3Zval3rrrÚ test_legmulNs   zTestArithmetic.test_legmulc
Cs–tdƒD]ˆ}tdƒD]z}d|›d|›}dg|dg}dg|dg}t ||¡}t ||¡\}}t t ||¡|¡}    tt|    ƒt|ƒ|dqqdS)Nrr-r.rr    r/)r1rr5ZlegdivrArr)
r!r7r8r9ÚciÚcjr:ZquoÚremr;rrrÚ test_legdiv\s   zTestArithmetic.test_legdivcCs|tdƒD]n}tdƒD]`}d|›d|›}t |d¡}ttj|g|t dg¡ƒ}t ||¡}tt    |ƒt    |ƒ|dqqdS)Nrr-r.r    r/)
r1r2ÚarangerrrAÚarrayZlegpowrr)r!r7r8r9Úcr:r;rrrÚ test_legpowgs   zTestArithmetic.test_legpowN) r'r(r)r2Úlinspacerr<r=r?rCrGrKrrrrr*.s
 
     r*c@s†eZdZe dddg¡Ze dee¡Ze deee¡Zej         d¡ddZ
e e
dddgƒZ d    d
„Z d d „Zd d„Zdd„Zdd„ZdS)ÚTestEvaluationç@úi,j->ijú
i,j,k->ijk©r rr r    çð?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    rr
csg|]}tˆ|ƒ‘qSrr©Ú.0rJrrrÚ
<listcomp>sz.TestEvaluation.test_legval.<locals>.<listcomp>é
r-r/r r ) rrr@Úsizer2rLÚLlistr1rr3Úshape)r!Úyr7r9r:r;ZdimsrrrÚ test_legval{s  
 
 
zTestEvaluation.test_legvalc
Cs‚|j\}}}|j\}}}tttj||dd…|jƒ||}t |||j¡}t||ƒt     d¡}    t |    |    |j¡}t
|j dkƒdS©Nr ©r r ) rrZrÚ
ValueErrorrÚlegval2dÚc2drr2ÚonesrrY©
r!Úx1Úx2Úx3Úy1Úy2Zy3r:r;ÚzrrrÚ test_legval2ds  
 
zTestEvaluation.test_legval2dc
CsŒ|j\}}}|j\}}}tttj|||dd…|jƒ|||}t ||||j¡}t||ƒt     d¡}    t |    |    |    |j¡}t
|j dkƒdSr\) rrZrr^rÚlegval3dÚc3drr2rarrYrbrrrÚ test_legval3d¡s   
 
zTestEvaluation.test_legval3dc
Csl|j\}}}|j\}}}t d||¡}t |||j¡}t||ƒt d¡}    t |    |    |j¡}t    |j
dkƒdS)NrOr])r r r r ) rrZr2ÚeinsumrZ    leggrid2dr`rrarrYrbrrrÚtest_leggrid2d²s  
 
zTestEvaluation.test_leggrid2dc
Csr|j\}}}|j\}}}t d|||¡}t ||||j¡}t||ƒt d¡}    t |    |    |    |j¡}t    |j
dkƒdS)NrPr])r r r r r r ) rrZr2rmrZ    leggrid3drkrrarrYrbrrrÚtest_leggrid3dÀs  
 
zTestEvaluation.test_leggrid3dN)r'r(r)r2rIZc1drmr`rkÚrandomrrrZr[rirlrnrorrrrrMqsrMc@s$eZdZdd„Zdd„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)Nrçà?r
r    )Úlbnd)Úscl©Úaxisr r)ÚmÚk)rwrxrs)rwrxrt©rw) rÚ    TypeErrorrÚlegintr^r1rÚpoly2legÚleg2polyrr@Úlist)
r!r7rxr;rtÚpolr:Zlegpolr{r8rrrÚ test_legintÑs€ 
 
 
 
 
            zTestIntegral.test_legintcCsš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 écSsg|]}t |¡‘qSr©rr{rSrrrrU(sz1TestIntegral.test_legint_axis.<locals>.<listcomp>rrucSsg|]}t |¡‘qSrrƒrSrrrrU,sr    cSsg|]}tj|dd‘qS)r )rxrƒrSrrrrU0sr )rxrv)r2rpÚvstackÚTrr{r©r!r`r:r;rrrÚtest_legint_axis$s 
 
zTestIntegral.test_legint_axiscCstt dd¡dƒdS)N©r    r r r)rrr{r rrrÚtest_legint_zerointord4sz#TestIntegral.test_legint_zerointordN)r'r(r)r€r‡r‰rrrrrqÏsSrqc@s$eZdZdd„Zdd„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)    Nrrrr
rr    ryr )rwrt)
rrzrÚlegderr^r1rrr{r)r!r7r:r;r8rrrÚ test_legder:s    zTestDerivative.test_legdercCsltj d¡}t dd„|jDƒ¡j}tj|dd}t||ƒt dd„|Dƒ¡}tj|dd}t||ƒdS)NrcSsg|]}t |¡‘qSr©rr‹rSrrrrUWsz3TestDerivative.test_legder_axis.<locals>.<listcomp>rrucSsg|]}t |¡‘qSrrrSrrrrU[sr    )r2rpr„r…rr‹rr†rrrÚtest_legder_axisSs 
zTestDerivative.test_legder_axiscCsd}tt |d¡dgƒdS)N)r    r r r‚r‚r)rrr‹)r!rJrrrÚ test_legder_orderhigherthancoeff_sz/TestDerivative.test_legder_orderhigherthancoeffN)r'r(r)rŒrŽrrrrrrŠ8s rŠc@s@eZdZej d¡ddZdd„Zdd„Zdd    „Zd
d „Z    d 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 rr‚rr    .r ré)r r r‚)
r2rHrÚ    legvanderrrYr1rr@rI)r!rÚvr7ÚcoefrrrÚtest_legvandergs
    zTestVander.test_legvandercCsx|j\}}}tj d¡}t ||ddg¡}t |||¡}t ||j¡}t||ƒt |g|gddg¡}t    |j
dkƒdS)Nr]r    r )r    rr‘) rr2rprZ legvander2dr_ÚdotÚflatrrrY©r!rcrdrerJZvanr:r;rrrÚtest_legvander2dxs  
zTestVander.test_legvander2dcCs„|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é) rr2rprZ legvander3drjr–r—rrrYr˜rrrÚtest_legvander3d…s  
zTestVander.test_legvander3dcCstttjddƒdS)Nrˆr
)rr^rr’r rrrÚtest_legvander_negdeg’sz TestVander.test_legvander_negdegN)
r'r(r)r2rprr•r™r›rœrrrrrcs
  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_legfit.<locals>.fcSs|d|ddS)Nr‚r r    rrrrrÚf2œsz#TestFitting.test_legfit.<locals>.f2r    r
rr )Úwr‘r r‚ryð?y€ð¿)rr^rZlegfitrzr2rLrrBrr@rIr…Z
zeros_likeÚcopy)r!ržrŸrrZZcoef3Zcoef4Zcoef2dr ZywZwcoef3Zwcoef2dZcoef1Zcoef2rrrÚ test_legfit˜sp "
 
 
&  zTestFitting.test_legfitN)r'r(r)r¢rrrrr–src@s$eZdZdd„Zdd„Zdd„ZdS)Ú TestCompanioncCs"tttjgƒtttjdgƒdSr$)rr^rÚ legcompanionr rrrÚ test_raisesåszTestCompanion.test_raisescCs<tddƒD],}dg|dg}tt |¡j||fkƒq
dS)Nr    rr)r1rrr¤rY)r!r7r”rrrÚtest_dimensionsészTestCompanion.test_dimensionscCstt ddg¡ddkƒdS)Nr    r )rrçà¿)rrr¤r rrrÚ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¡ƒd}t| 
¡|ƒdS)Nr+écr    rN) rZleggaussr’r2r–r…ÚsqrtZdiagonalrZeyeÚsum)r!rr r“ÚvvZvdr:rrrÚtest_100ôs zTestGauss.test_100N)r'r(r)r®rrrrr©òsr©c@sLeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„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    rrr r
) rÚ legfromrootsrrr1r2ÚcosrLÚpir@rrBr})r!r;r7Úrootsrr:rrrÚtest_legfromrootss
*
 zTestMisc.test_legfromrootscCsltt dg¡gƒtt ddg¡dgƒtddƒD]4}t dd|¡}t t |¡¡}tt|ƒt|ƒƒq2dS)Nr    r r§rr
)rrZlegrootsr1r2rLr°r)r!r7r:r;rrrÚ test_legrootss zTestMisc.test_legrootscCsfddddg}tttj|dƒtt |¡|dd…ƒtt |d¡|dd…ƒtt |d¡dgƒdS)Nr r
r    rr )rr^rrr)r!r”rrrÚ test_legtrims
 zTestMisc.test_legtrimcCstt dd¡ddgƒdS)Nr r‚©rrZlegliner rrrÚ test_legline&szTestMisc.test_leglinecCstt dd¡dgƒdS)Nr rr·r rrrÚtest_legline_zeroscl)szTestMisc.test_legline_zerosclcCs2tdƒD]$}tt dg|dg¡t|ƒqdS©NrVrr    )r1rrr}rX©r!r7rrrÚ test_leg2poly,s zTestMisc.test_leg2polycCs2tdƒD]$}tt t|¡dg|dgƒqdSrº)r1rrr|rXr»rrrÚ test_poly2leg0s zTestMisc.test_poly2legcCs*t ddd¡}d}t |¡}t||ƒdS)Nr
r    é rR)r2rLrZ    legweightr)r!rr:r;rrrÚ test_weight4s
zTestMisc.test_weightN) r'r(r)r´rµr¶r¸r¹r¼r½r¿rrrrr¯s  r¯)'Ú__doc__Ú    functoolsrÚnumpyr2Znumpy.polynomial.legendreZ
polynomialZlegendrerZnumpy.polynomial.polynomialrZ numpy.testingrrrrrIZL0ZL1ZL2ZL3ZL4ZL5ZL6ZL7ZL8ZL9rXrrr*rMrqrŠrrr£r©r¯rrrrÚ<module>s6    "C^i+3M