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
U
P±d”Rã
@sŒdZddlmZddlZddlmmZddlZddl    m
Z
ddl m Z m Z mZmZmZmZmZdd„ZdgZddgZd    dd
gZdd dd gZddd ddgZddddddgZd    ddddddgZddddddddgZdddddddddg    Zdddddddd dd!g
Zeeeeeeeeeeg
ZGd"d#„d#ƒZGd$d%„d%ƒZ Gd&d'„d'ƒZ!Gd(d)„d)ƒZ"Gd*d+„d+ƒZ#Gd,d-„d-ƒZ$Gd.d/„d/ƒZ%Gd0d1„d1ƒZ&dS)2zTests for polynomial module.
 
é)ÚreduceN)Údeepcopy)Úassert_almost_equalÚ assert_raisesÚ assert_equalÚassert_Ú assert_warnsÚassert_array_equalÚassert_raises_regexcCstj|ddS)Ngíµ ÷ư>)Ztol)ÚpolyÚpolytrim©Úx©rú]d:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/polynomial/tests/test_polynomial.pyÚtrimsrééÿÿÿÿééýÿÿÿéiøÿÿÿééiìÿÿÿééiÐÿÿÿé iùÿÿÿé8iÿÿÿé@iàÿÿÿé iÿÿÿé€é    iˆÿÿÿi°iÀýÿÿéc@s<eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd S)Ú TestConstantscCsttjddgƒdS)Nrr)rr Z
polydomain©ÚselfrrrÚtest_polydomain"szTestConstants.test_polydomaincCsttjdgƒdS)Nr)rr Zpolyzeror#rrrÚ test_polyzero%szTestConstants.test_polyzerocCsttjdgƒdS©Nr)rr Zpolyoner#rrrÚ test_polyone(szTestConstants.test_polyonecCsttjddgƒdS)Nrr)rr Zpolyxr#rrrÚ
test_polyx+szTestConstants.test_polyxcCs&t dddg¡}t|ƒ}t||ƒdS©Nrré)r Ú
Polynomialrr©r$rÚyrrrÚ    test_copy.szTestConstants.test_copycCs.t dddg¡}t t |¡¡}t||ƒdSr*)r r,ÚpickleÚloadsÚdumpsrr-rrrÚ test_pickle3szTestConstants.test_pickleN)    Ú__name__Ú
__module__Ú __qualname__r%r&r(r)r/r3rrrrr" s r"c@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)ÚrangeÚnpÚzerosÚmaxr Úpolyaddrr©r$ÚiÚjÚmsgÚtgtÚresrrrÚ test_polyadd:s  $zTestArithmetic.test_polyaddcCsžtdƒD]}tdƒD]‚}d|›d|›}t t||ƒd¡}||d7<||d8<t dg|dgdg|dg¡}tt|ƒt|ƒ|dqqdSr8)r=r>r?r@r ZpolysubrrrBrrrÚ test_polysubDs  $zTestArithmetic.test_polysubcCsrtt dg¡dgƒtt dg¡ddgƒtddƒD]8}dg|dg}dg|ddg}tt |¡|ƒq4dS)Nrrr)rr Zpolymulxr=)r$rCZserrFrrrÚ test_polymulxNs zTestArithmetic.test_polymulxcCstdƒD]‚}tdƒD]t}d|›d|›}t ||d¡}|||d7<t dg|dgdg|dg¡}tt|ƒt|ƒ|dqqdSr8)r=r>r?r ÚpolymulrrrBrrrÚ test_polymulVs  $zTestArithmetic.test_polymulc
Csìtttjdgdgƒt dgdg¡\}}t||fdƒt ddgdg¡\}}t||fdƒtdƒD]„}tdƒD]v}d|›d|›}dg|ddg}dg|ddg}t ||¡}t ||¡\}}t t ||¡|¡}    t|    ||d    qnqbdS)
Nrrr)rr))rrrrr9r:r;)rÚZeroDivisionErrorr Zpolydivrr=rArK)
r$ZquoÚremrCrDrEÚciÚcjrFrGrrrÚ test_polydiv_s   zTestArithmetic.test_polydivcCs|tdƒD]n}tdƒD]`}d|›d|›}t |d¡}ttj|g|t dg¡ƒ}t ||¡}tt    |ƒt    |ƒ|dqqdS)Nrr9r:rr;)
r=r>Úarangerr rKÚarrayZpolypowrr)r$rCrDrEÚcrFrGrrrÚ test_polypowts   zTestArithmetic.test_polypowN)    r4r5r6rHrIrJrLrQrUrrrrr78s 
 
    r7c@seZdZe dddg¡Ze dee¡Ze deee¡Zej         d¡ddZ
e   e
dddg¡Z d    d
„Zd d „Zd d„Zdd„Zdd„Zdd„ZdS)ÚTestEvaluationçð?g@g@úi,j->ijú
i,j,k->ijk©r+rrrc
sŽtt gdg¡jdƒt dd¡‰‡fdd„tdƒDƒ}tdƒD].}||}t ˆdg|dg¡}t||ƒq@ˆˆdd}t ˆddddg¡}t||ƒtdƒD]`}dg|}t |¡‰tt ˆdg¡j    |ƒtt ˆddg¡j    |ƒtt ˆdddg¡j    |ƒq¦d    d
d    g}tj
j dddg|d }t d ddg|¡}t |j |ƒGd d„dtjƒ}t  dddg¡ |¡}    ttt dddg|    ¡ƒ|ƒdS)Nrrrcsg|] }ˆ|‘qSrr©Ú.0rCr rrÚ
<listcomp>Žsz/TestEvaluation.test_polyval.<locals>.<listcomp>rrr+FT)Úmaskéc@s eZdZdS)z&TestEvaluation.test_polyval.<locals>.CN)r4r5r6rrrrÚC¦sr`r)rr ÚpolyvalÚsizer>Úlinspacer=rr?ÚshapeÚmarSr    r^ZndarrayÚviewÚtype)
r$r.rCrFrGÚdimsr^Zmxr`Úcxrr rÚ test_polyvalˆs.   
 
 
 
 zTestEvaluation.test_polyvalc stttjdgdgddtt gdg¡jdƒtt gdg¡jdkƒtt gdgdg¡jdƒtt gdgdg¡jdkƒtt dd¡dƒtt dt     d¡¡jd    kƒt 
d
d¡‰‡fd d „t dƒDƒ}t ddƒD](}||}t ˆdg|¡}t ||ƒqڈˆdˆd}t ˆd
ddg¡}t ||ƒt d ƒD]b}dg|}t  |¡‰tt ˆdg¡j|ƒtt ˆddg¡j|ƒtt ˆdddg¡j|ƒq<dddddg}t |¡}t 
d
d¡‰t t ˆ|¡t ˆ|¡ƒd}t dd¡‰tjjdd|d}tjˆ|dd}t |jdd…¡}t |jƒD]&}    t ˆ|    |dd…|    f¡||    <q.t||ƒt ˆdˆg¡‰tjˆ|dd}t |jdd…ˆj¡}t |jdƒD]F}    t ˆjdƒD]0}
t ˆ|
|dd…|    f¡||    |
dd…f<q¼qªt||ƒdS)NrF)Ztensorr)rr)rr)r+r+)r+rcsg|] }ˆ|‘qSrrr[r rrr]Àsz8TestEvaluation.test_polyvalfromroots.<locals>.<listcomp>r+réiðÿÿÿéþÿÿÿrZréûÿÿÿ)rbT)rÚ
ValueErrorr Zpolyvalfromrootsrrbrrdr>Úonesrcr=rr?Ú    polyrootsrarRÚrandomÚrandintÚemptyÚvstack) r$r.rCrFrGrhZptestÚrZrshapeÚiiZjjrr rÚtest_polyvalfromroots¬s^ÿ  
 
 
 
 
ÿ $
2z$TestEvaluation.test_polyvalfromrootsc
Cs„|j\}}}|j\}}}ttdtj||dd…|jƒ||}t |||j¡}t||ƒt     d¡}    t |    |    |j¡}t
|j dkƒdS©NZ incompatibler©rr+) rr.r
rnr Ú    polyval2dÚc2drr>rorrd©
r$Úx1Úx2Úx3Úy1Úy2Zy3rFrGÚzrrrÚtest_polyval2dìs  
ÿ
 
zTestEvaluation.test_polyval2dc
    CsŽ|j\}}}|j\}}}ttdtj|||dd…|jƒ|||}t ||||j¡}t||ƒt     d¡}    t |    |    |    |j¡}t
|j dkƒdSrx) rr.r
rnr Ú    polyval3dÚc3drr>rorrdr|rrrÚtest_polyval3dþs  
ÿ 
 
zTestEvaluation.test_polyval3dc
Csl|j\}}}|j\}}}t d||¡}t |||j¡}t||ƒt d¡}    t |    |    |j¡}t    |j
dkƒdS)NrXry)rr+rr+) rr.r>Úeinsumr Z
polygrid2dr{rrorrdr|rrrÚtest_polygrid2ds  
 
zTestEvaluation.test_polygrid2dc
Csr|j\}}}|j\}}}t d|||¡}t ||||j¡}t||ƒt d¡}    t |    |    |    |j¡}t    |j
dkƒdS)NrYry)rr+rr+rr+) rr.r>r‡r Z
polygrid3dr…rrorrdr|rrrÚtest_polygrid3ds  
 
zTestEvaluation.test_polygrid3dN)r4r5r6r>rSZc1dr‡r{r…rqrr rar.rjrwrƒr†rˆr‰rrrrrV~s$@rVc@seZdZdd„Zdd„ZdS)Ú TestIntegralc    Cs$tttjdgdƒtttjdgdƒtttjdgdddgƒtttjdgdgdtttjdgdgdtttjdgddttƒt ddgd¡W5QRXtd    d
ƒD]8}dg|d    dg}tjdg||d }t|ddgƒqªtd
ƒD]Z}|d}dg|dg}|gdg|d|g}tj|d|gd }tt    |ƒt    |ƒƒqìtd
ƒD]D}|d}dg|dg}tj|d|gdd }tt 
d|¡|ƒqPtd
ƒD]^}|d}dg|dg}|gdg|d    |g}tj|d|gd    d }tt    |ƒt    |ƒƒqžtd
ƒD]r}td    d
ƒD]`}dg|dg}|dd…}t|ƒD]}tj|dd}q<tj||d}tt    |ƒt    |ƒƒqqtd
ƒD]€}td    d
ƒD]n}dg|dg}|dd…}t|ƒD]}tj|d|gd }q¸tj||t t|ƒƒd }tt    |ƒt    |ƒƒqq‚td
ƒD]„}td    d
ƒD]r}dg|dg}|dd…}t|ƒD]}tj|d|gdd }qBtj||t t|ƒƒdd }tt    |ƒt    |ƒƒqq td
ƒD]„}td    d
ƒD]r}dg|dg}|dd…}t|ƒD]}tj|d|gd    d }qÐtj||t t|ƒƒd    d }tt    |ƒt    |ƒƒq¨qšdS)Nrçà?rr)Úlbnd)Úscl©ÚaxisrWrr)ÚmÚk)rr‘rŒ)rr‘r©r) rÚ    TypeErrorr ÚpolyintrnrÚDeprecationWarningr=rrraÚlist)r$rCr‘rGrZpolrFrDrrrÚ test_polyint/sz
               zTestIntegral.test_polyintcCsš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+rcSsg|]}t |¡‘qSr©r r”©r\rTrrrr]ƒsz2TestIntegral.test_polyint_axis.<locals>.<listcomp>rrŽcSsg|]}t |¡‘qSrr™ršrrrr]‡srcSsg|]}tj|dd‘qS)r+)r‘r™ršrrrr]‹sr+)r‘r)r>rqrtÚTr r”r©r$r{rFrGrrrÚtest_polyint_axiss 
 
zTestIntegral.test_polyint_axisN)r4r5r6r—rrrrrrŠ-sPrŠc@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‹rrrr’r)rr)
rr“r Úpolyderrnr=rrr”r)r$rCrFrGrDrrrÚ test_polyder’s    zTestDerivative.test_polydercCsltj d¡}t dd„|jDƒ¡j}tj|dd}t||ƒt dd„|Dƒ¡}tj|dd}t||ƒdS)Nr˜cSsg|]}t |¡‘qSr©r rŸršrrrr]¯sz4TestDerivative.test_polyder_axis.<locals>.<listcomp>rrŽcSsg|]}t |¡‘qSrr¡ršrrrr]³sr)r>rqrtr›r rŸrrœrrrÚtest_polyder_axis«s 
z TestDerivative.test_polyder_axisN)r4r5r6r r¢rrrrržsržc@s@eZdZej d¡ddZdd„Zdd„Zdd    „Zd
d „Z    d S) Ú
TestVanderrZrrcCsÎ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˜rrr.rré)r+rr)
r>rRr Ú
polyvanderrrdr=rrarS)r$rÚvrCÚcoefrrrÚtest_polyvander¼s
    zTestVander.test_polyvandercCsx|j\}}}tj d¡}t ||ddg¡}t |||¡}t ||j¡}t||ƒt |g|gddg¡}t    |j
dkƒdS)Nryrr)rrr¤) rr>rqr Z polyvander2drzÚdotÚflatrrrd©r$r}r~rrTZvanrFrGrrrÚtest_polyvander2dÍs  
zTestVander.test_polyvander2dcCs„|j\}}}tj d¡}t |||dddg¡}t ||||¡}t ||j¡}t||ƒt |g|g|gdddg¡}t    |j
dkƒdS)N)rr+rrrr+)rré) rr>rqr Z polyvander3dr„r©rªrrrdr«rrrÚtest_polyvander3dÚs  
zTestVander.test_polyvander3dcCst d¡}tttj|dƒdS)Nr+r)r>rRrrnr r¥)r$rrrrÚtest_polyvandernegdegçs
z TestVander.test_polyvandernegdegN)
r4r5r6r>rqrr¨r¬r®r¯rrrrr£¸s
  r£c@s$eZdZdd„Zdd„Zdd„ZdS)Ú TestCompanioncCs"tttjgƒtttjdgƒdSr')rrnr Ú polycompanionr#rrrÚ test_raisesîszTestCompanion.test_raisescCs<tddƒD],}dg|dg}tt |¡j||fkƒq
dS)Nrrr)r=rr r±rd)r$rCr§rrrÚtest_dimensionsòszTestCompanion.test_dimensionscCstt ddg¡ddkƒdS)Nrr)rrçà¿)rr r±r#rrrÚtest_linear_root÷szTestCompanion.test_linear_rootN)r4r5r6r²r³rµrrrrr°ìsr°c@s<eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd S)ÚTestMiscc    Csˆt g¡}tt|ƒdgƒtddƒD]^}t t tj dd|d¡ddd…¡}t    |}t |¡d|d}tt|ƒt|ƒƒq$dS)Nrrrr)
r Ú polyfromrootsrrr=r>ÚcosrcÚpiÚTlist)r$rGrCÚrootsrFrrrÚtest_polyfromrootsýs
*zTestMisc.test_polyfromrootscCsltt dg¡gƒtt ddg¡dgƒtddƒD]4}t dd|¡}t t |¡¡}tt|ƒt|ƒƒq2dS)Nrrr´rr)rr rpr=r>rcr·r)r$rCrFrGrrrÚtest_polyrootss zTestMisc.test_polyrootsc    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 |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)Nrrrr rrrÚfsz TestMisc.test_polyfit.<locals>.fcSs|d|ddS)Nrrrrr rrrÚf2sz!TestMisc.test_polyfit.<locals>.f2rrrr)Úwr¤r+rryð?y€ð¿)rrnr Zpolyfitr“r>rcrÚlenrrarSr›Z
zeros_likeÚcopy)r$r¾r¿rr.Zcoef3Zcoef4Zcoef2drÀZywZwcoef3Zwcoef2dZcoef1Zcoef2rrrÚ test_polyfitsj "
 
 
&  zTestMisc.test_polyfitcCsfddddg}tttj|dƒtt |¡|dd…ƒtt |d¡|dd…ƒtt |d¡dgƒdS)Nrrrrr)rrnr r r)r$r§rrrÚ test_polytrimTs
 zTestMisc.test_polytrimcCstt dd¡ddgƒdS)Nr+r©rr Zpolyliner#rrrÚ test_polyline_szTestMisc.test_polylinecCstt dd¡dgƒdS)Nr+rrÅr#rrrÚtest_polyline_zerobszTestMisc.test_polyline_zeroN)    r4r5r6r¼r½rÃrÄrÆrÇrrrrr¶ûs     F r¶)'Ú__doc__Ú    functoolsrÚnumpyr>Znumpy.polynomial.polynomialZ
polynomialr r0rÂrZ numpy.testingrrrrrr    r
rZT0ZT1ZT2ZT3ZT4ZT5ZT6ZT7ZT8ZT9rºr"r7rVrŠržr£r°r¶rrrrÚ<module>s6  $
 F0c(4