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
U
P±d•Rã
@s°dZddlmZddlZddlmmZddl    m
Z
ddl m Z m Z mZmZdd„ZdgZddgZd    dd
gZdd dd gZddd ddgZddddddgZd    ddddddgZddddddddgZdddddddddg    Zdddddddd dd!g
Zeeeeeeeeeeg
ZGd"d#„d#ƒZGd$d%„d%ƒZGd&d'„d'ƒZGd(d)„d)ƒZGd*d+„d+ƒZ Gd,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 chebyshev module.
 
é)ÚreduceN©Úpolyval)Úassert_almost_equalÚ assert_raisesÚ assert_equalÚassert_cCstj|ddS)Ngíµ ÷ư>)Ztol)ÚchebÚchebtrim©Úx©r ú\d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/polynomial/tests/test_chebyshev.pyÚtrimsrééÿÿÿÿééýÿÿÿéiøÿÿÿééiìÿÿÿééiÐÿÿÿé iùÿÿÿé8iÿÿÿé@iàÿÿÿé iÿÿÿé€é    iˆÿÿÿi°iÀýÿÿéc@seZdZdd„Zdd„ZdS)Ú TestPrivatecCsdtdƒD]V}t dgdg|tj¡}t dg|dgdg|tj¡}t |¡}t||ƒqdS)Nrrrçà?)ÚrangeÚnpÚarrayÚdoubler    Z_cseries_to_zseriesr©ÚselfÚiÚinpÚtgtÚresr r rÚtest__cseries_to_zseries!s
 $
z$TestPrivate.test__cseries_to_zseriescCsdtdƒD]V}t dg|dgdg|tj¡}t dgdg|tj¡}t |¡}t||ƒqdS)Nrr!rr)r"r#r$r%r    Z_zseries_to_cseriesrr&r r rÚtest__zseries_to_cseries(s
 $
z$TestPrivate.test__zseries_to_cseriesN)Ú__name__Ú
__module__Ú __qualname__r,r-r r r rr sr c@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
Ú TestConstantscCsttjddgƒdS)Nrr)rr    Z
chebdomain©r'r r rÚtest_chebdomain2szTestConstants.test_chebdomaincCsttjdgƒdS)Nr)rr    Zchebzeror2r r rÚ test_chebzero5szTestConstants.test_chebzerocCsttjdgƒdS©Nr)rr    Zcheboner2r r rÚ test_chebone8szTestConstants.test_chebonecCsttjddgƒdS)Nrr)rr    Zchebxr2r r rÚ
test_chebx;szTestConstants.test_chebxN)r.r/r0r3r4r6r7r r r rr10sr1c@s<eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd S)ÚTestArithmeticcCsžtdƒD]}tdƒD]‚}d|›d|›}t t||ƒd¡}||d7<||d7<t dg|dgdg|dg¡}tt|ƒt|ƒ|dqqdS©NrúAt i=ú, j=rr©Úerr_msg)r"r#ÚzerosÚmaxr    Úchebaddrr©r'r(ÚjÚmsgr*r+r r rÚ test_chebaddAs  $zTestArithmetic.test_chebaddcCsžtdƒD]}tdƒD]‚}d|›d|›}t t||ƒd¡}||d7<||d8<t dg|dgdg|dg¡}tt|ƒt|ƒ|dqqdSr9)r"r#r>r?r    ZchebsubrrrAr r rÚ test_chebsubKs  $zTestArithmetic.test_chebsubcCsvtt dg¡dgƒtt dg¡ddgƒtddƒD]<}dg|dg}dg|ddddg}tt |¡|ƒq4dS)Nrrrr!)rr    Zchebmulxr")r'r(Zserr*r r rÚ test_chebmulxUs zTestArithmetic.test_chebmulxcCs¨tdƒD]š}tdƒD]Œ}d|›d|›}t ||d¡}|||d7<|t||ƒd7<t dg|dgdg|dg¡}tt|ƒt|ƒ|dqqdS)Nrr:r;rr!rr<)r"r#r>Úabsr    ÚchebmulrrrAr r rÚ test_chebmul]s  $zTestArithmetic.test_chebmulc
Cs–tdƒD]ˆ}tdƒD]z}d|›d|›}dg|dg}dg|dg}t ||¡}t ||¡\}}t t ||¡|¡}    tt|    ƒt|ƒ|dqqdS)Nrr:r;rrr<)r"r    r@ZchebdivrHrr)
r'r(rBrCÚciÚcjr*ZquoÚremr+r r rÚ test_chebdivgs   zTestArithmetic.test_chebdivcCs|tdƒD]n}tdƒD]`}d|›d|›}t |d¡}ttj|g|t dg¡ƒ}t ||¡}tt    |ƒt    |ƒ|dqqdS)Nrr:r;rr<)
r"r#Úarangerr    rHr$Zchebpowrr)r'r(rBrCÚcr*r+r r rÚ test_chebpowrs   zTestArithmetic.test_chebpowN)    r.r/r0rDrErFrIrMrPr r r rr8?s 
 
 
 r8c@s†eZdZe dddg¡Ze dee¡Ze deee¡Zej         d¡ddZ
e e
d    dd
gƒZ d d „Z d d„Zdd„Zdd„Zdd„ZdS)ÚTestEvaluationg@g@çø?úi,j->ijú
i,j,k->ijk©érrrçð?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) Nrrrcsg|]}tˆ|ƒ‘qSr r©Ú.0rOr r rÚ
<listcomp>Œsz/TestEvaluation.test_chebval.<locals>.<listcomp>é
r:r<rVr) rr    ÚchebvalÚsizer#ÚlinspaceÚTlistr"rr>Úshape)r'Úyr(rCr*r+Zdimsr r rÚ test_chebval†s  
 
 
zTestEvaluation.test_chebvalc
Cs‚|j\}}}|j\}}}tttj||dd…|jƒ||}t |||j¡}t||ƒt     d¡}    t |    |    |j¡}t
|j dkƒdS©Nr©rrV) r rarÚ
ValueErrorr    Ú    chebval2dÚc2drr#Úonesrr`©
r'Úx1Úx2Úx3Úy1Úy2Zy3r*r+Úzr r rÚtest_chebval2d›s  
 
zTestEvaluation.test_chebval2dc
CsŒ|j\}}}|j\}}}tttj|||dd…|jƒ|||}t ||||j¡}t||ƒt     d¡}    t |    |    |    |j¡}t
|j dkƒdSrc) r rarrer    Ú    chebval3dÚc3drr#rhrr`rir r rÚtest_chebval3d¬s   
 
zTestEvaluation.test_chebval3dc
Csl|j\}}}|j\}}}t d||¡}t |||j¡}t||ƒt d¡}    t |    |    |j¡}t    |j
dkƒdS)NrSrd)rrVrrV) r rar#Úeinsumr    Z
chebgrid2drgrrhrr`rir r rÚtest_chebgrid2d½s  
 
zTestEvaluation.test_chebgrid2dc
Csr|j\}}}|j\}}}t d|||¡}t ||||j¡}t||ƒt d¡}    t |    |    |    |j¡}t    |j
dkƒdS)NrTrd)rrVrrVrrV) r rar#rtr    Z
chebgrid3drrrrhrr`rir r rÚtest_chebgrid3dËs  
 
zTestEvaluation.test_chebgrid3dN)r.r/r0r#r$Zc1drtrgrrÚrandomr rrarbrprsrurvr r r rrQ|srQc@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©Úaxisrr)ÚmÚk)r}r~ry)r}r~rz©r}) rÚ    TypeErrorr    Úchebintrer"rÚ    poly2chebÚ    cheb2polyrr\Úlist)
r'r(r~r+rzZpolr*ZchebpolrrBr r rÚ test_chebintÜs€ 
 
 
 
 
            zTestIntegral.test_chebintcCsštj d¡}t dd„|jDƒ¡j}tj|dd}t||ƒt dd„|Dƒ¡}tj|dd}t||ƒt dd„|Dƒ¡}tj|d    dd
}t||ƒdS) N©rVrcSsg|]}t |¡‘qSr ©r    rrXr r rrZ3sz2TestIntegral.test_chebint_axis.<locals>.<listcomp>rr{cSsg|]}t |¡‘qSr r‡rXr r rrZ7srcSsg|]}tj|dd‘qS)rV)r~r‡rXr r rrZ;srV)r~r|)r#rwÚvstackÚTr    rr©r'rgr*r+r r rÚtest_chebint_axis/s 
 
zTestIntegral.test_chebint_axisN)r.r/r0r…r‹r r r rrxÚsSrxc@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!rrrrr)r}rz)
rr€r    Úchebderrer"rrrr)r'r(r*r+rBr r rÚ test_chebderBs    zTestDerivative.test_chebdercCsltj d¡}t dd„|jDƒ¡j}tj|dd}t||ƒt dd„|Dƒ¡}tj|dd}t||ƒdS)Nr†cSsg|]}t |¡‘qSr ©r    rrXr r rrZ_sz4TestDerivative.test_chebder_axis.<locals>.<listcomp>rr{cSsg|]}t |¡‘qSr rrXr r rrZcsr)r#rwrˆr‰r    rrrŠr r rÚtest_chebder_axis[s 
z TestDerivative.test_chebder_axisN)r.r/r0rŽrr r r rrŒ@srŒc@s8eZdZej d¡ddZdd„Zdd„Zdd    „Zd
S) Ú
TestVanderrUrrcCsÎ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) NrVr†rrr.rré)rVrr)
r#rNr    Ú
chebvanderrr`r"rr\r$)r'r Úvr(Úcoefr r rÚtest_chebvanderls
    zTestVander.test_chebvandercCsx|j\}}}tj d¡}t ||ddg¡}t |||¡}t ||j¡}t||ƒt |g|gddg¡}t    |j
dkƒdS)Nrdrr)rrr’) r r#rwr    Z chebvander2drfÚdotÚflatrrr`©r'rjrkrlrOZvanr*r+r r rÚtest_chebvander2d}s  
zTestVander.test_chebvander2dcCs„|j\}}}tj d¡}t |||dddg¡}t ||||¡}t ||j¡}t||ƒt |g|g|gdddg¡}t    |j
dkƒdS)N)rrVrrrrV)rré) r r#rwr    Z chebvander3drqr—r˜rrr`r™r r rÚtest_chebvander3dŠs  
zTestVander.test_chebvander3dN)    r.r/r0r#rwr r–ršrœr r r rr‘hs 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©Nrrr r r r rÚf›sz#TestFitting.test_chebfit.<locals>.fcSs|d|ddS)Nrrrr r r r rÚf2žsz$TestFitting.test_chebfit.<locals>.f2rrrr)Úwr’rVrryð?y€ð¿)rrer    Zchebfitr€r#r^rÚlenrr\r$r‰Z
zeros_likeÚcopy)r'rŸr r raZcoef3Zcoef4Zcoef2dr¡ZywZwcoef3Zwcoef2dZcoef1Zcoef2r r rÚ test_chebfitšsp "
 
 
&  zTestFitting.test_chebfitN)r.r/r0r¤r r r rr˜src@s,eZdZdd„Zdd„Zdd„Zdd„Zd    S)
ÚTestInterpolatecCs||d|dSržr )r'r r r rrŸçszTestInterpolate.fcCs(tttj|jdƒtttj|jdƒdS)Nrg$@)rrer    ÚchebinterpolaterŸr€r2r r rÚ test_raisesêszTestInterpolate.test_raisescCs2tddƒD]"}tt |j|¡j|dfkƒq
dS)Nrr)r"rr    r¦rŸr`)r'Údegr r rÚtest_dimensionsîszTestInterpolate.test_dimensionscCsjdd„}t ddd¡}tddƒD]D}td|dƒD]0}t |||f¡}tt ||¡|||ƒddq2q dS)    NcSs||S)Nr )r Úpr r rÚpowxôsz0TestInterpolate.test_approximation.<locals>.powxrrr[ré )Údecimal)r#r^r"r    r¦rr\)r'r«r r¨rªrOr r rÚtest_approximationòs z"TestInterpolate.test_approximationN)r.r/r0rŸr§r©r®r r r rr¥åsr¥c@s$eZdZdd„Zdd„Zdd„ZdS)Ú TestCompanioncCs"tttjgƒtttjdgƒdSr5)rrer    Ú chebcompanionr2r r rr§szTestCompanion.test_raisescCs<tddƒD],}dg|dg}tt |¡j||fkƒq
dS)Nrrr)r"rr    r°r`)r'r(r•r r rr©szTestCompanion.test_dimensionscCstt ddg¡ddkƒdS)Nrr)rrçà¿)rr    r°r2r r rÚtest_linear_root    szTestCompanion.test_linear_rootN)r.r/r0r§r©r²r r r rr¯þsr¯c@seZdZdd„ZdS)Ú    TestGausscCs~t d¡\}}t |d¡}t |j||¡}dt | ¡¡}|dd…df||}t|t     d¡ƒtj
}t|  ¡|ƒdS)Nédécr) r    Z    chebgaussr“r#r—r‰ÚsqrtZdiagonalrZeyeÚpiÚsum)r'r r¡r”ÚvvZvdr*r r rÚtest_100s zTestGauss.test_100N)r.r/r0rºr r r rr³ sr³c@sTeZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dS)ÚTestMiscc    Cst g¡}tt|ƒdgƒtddƒD]f}t t tj dd|d¡ddd…¡}dg|dg}t |¡d|d}tt|ƒt|ƒƒq$dS)Nrrrr)    r    Ú chebfromrootsrrr"r#Úcosr^r·)r'r+r(Úrootsr*r r rÚtest_chebfromroots"s
*zTestMisc.test_chebfromrootscCsltt dg¡gƒtt ddg¡dgƒtddƒD]4}t dd|¡}t t |¡¡}tt|ƒt|ƒƒq2dS)Nrrr±rr)rr    Z    chebrootsr"r#r^r¼r)r'r(r*r+r r rÚtest_chebroots+s zTestMisc.test_chebrootscCsfddddg}tttj|dƒtt |¡|dd…ƒtt |d¡|dd…ƒtt |d¡dgƒdS)Nrrrrr)rrer    r
r)r'r•r r rÚ test_chebtrim3s
 zTestMisc.test_chebtrimcCstt dd¡ddgƒdS)NrVr)rr    Zchebliner2r r rÚ test_chebline>szTestMisc.test_cheblinecCs2tdƒD]$}tt dg|dg¡t|ƒqdS©Nr[rr)r"rr    rƒr_©r'r(r r rÚtest_cheb2polyAs zTestMisc.test_cheb2polycCs2tdƒD]$}tt t|¡dg|dgƒqdSrÃ)r"rr    r‚r_rÄr r rÚtest_poly2chebEs zTestMisc.test_poly2chebcCsNt ddd¡dd…}dt d|¡t d|¡}t |¡}t||ƒdS)Nrré rW)r#r^r¶r    Z
chebweightr)r'r r*r+r r rÚ test_weightIs 
zTestMisc.test_weightcCs„tttjdƒtttjdƒdg}tt d¡|ƒddg}tt d¡|ƒdddg}tt d    ¡|ƒd
d d d g}tt d¡|ƒdS)NrRrrgÌ;fž æ¿gÌ;fž æ?rg«LXèz¶ë¿g«LXèz¶ë?rVg(1Ïkí¿gŜ¦â}Ø¿gŜ¦â}Ø?g(1Ïkí?r)rrer    Zchebpts1r©r'r*r r rÚ test_chebpts1Os
 zTestMisc.test_chebpts1cCsŒtttjdƒtttjdƒddg}tt d¡|ƒdddg}tt d¡|ƒddddg}tt d    ¡|ƒd
d dd d g}tt d¡|ƒdS)NrRrrrrrVr±r!rgð¿g¸Kfž æ¿g¸Kfž æ?rWr)rrer    Zchebpts2rrÉr r rÚ test_chebpts2^s
 zTestMisc.test_chebpts2N) r.r/r0r¿rÀrÁrÂrÅrÆrÈrÊrËr r r rr» s     r»)(Ú__doc__Ú    functoolsrÚnumpyr#Znumpy.polynomial.chebyshevZ
polynomialZ    chebyshevr    Znumpy.polynomial.polynomialrZ numpy.testingrrrrrZT0ZT1ZT2ZT3ZT4ZT5ZT6ZT7ZT8ZT9r_r r1r8rQrxrŒr‘rr¥r¯r³r»r r r rÚ<module>s:  
 =^f(0M