Skip to content

Commit a69f843

Browse files
committed
clean up tests
1 parent 4f9cde2 commit a69f843

File tree

1 file changed

+179
-185
lines changed

1 file changed

+179
-185
lines changed

test/test_decompOPs.jl

Lines changed: 179 additions & 185 deletions
Original file line numberDiff line numberDiff line change
@@ -40,199 +40,193 @@ import LazyBandedMatrices: SymTridiagonal
4040
end
4141
end
4242

43-
@testset "Comparison with Lanczos and Classical, non-Clenshaw" begin
44-
@testset "w(x) = x^2*(1-x)" begin
45-
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
46-
x = axes(P,1)
47-
J = jacobimatrix(P)
48-
Jx = symmjacobim(J)
49-
w = (Jx^2 - Jx^3)
50-
# compute Jacobi matrix via cholesky
51-
Jchol = cholesky_jacobimatrix(w)
52-
# compute Jacobi matrix via classical recurrence
53-
Q = Normalized(Jacobi(1,2)[affine(0..1,Inclusion(-1..1)),:])
54-
Jclass = jacobimatrix(Q)
55-
# compute Jacobi matrix via Lanczos
56-
wf = x.^2 .* (1 .- x)
57-
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
58-
# Comparison with Lanczos
59-
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
60-
# Comparison with Classical
61-
@test Jchol[1:500,1:500] Jclass[1:500,1:500]
62-
end
43+
@testset "Comparison with Lanczos and Classical" begin
44+
@testset "Not using Clenshaw" begin
45+
@testset "w(x) = x^2*(1-x)" begin
46+
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
47+
x = axes(P,1)
48+
J = jacobimatrix(P)
49+
Jx = symmjacobim(J)
50+
w = (Jx^2 - Jx^3)
51+
# compute Jacobi matrix via cholesky
52+
Jchol = cholesky_jacobimatrix(w)
53+
# compute Jacobi matrix via classical recurrence
54+
Q = Normalized(Jacobi(1,2)[affine(0..1,Inclusion(-1..1)),:])
55+
Jclass = jacobimatrix(Q)
56+
# compute Jacobi matrix via Lanczos
57+
wf = x.^2 .* (1 .- x)
58+
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
59+
# Comparison with Lanczos
60+
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
61+
# Comparison with Classical
62+
@test Jchol[1:500,1:500] Jclass[1:500,1:500]
63+
end
6364

64-
@testset "w(x) = (1-x^2)" begin
65-
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
66-
x = axes(P,1)
67-
J = jacobimatrix(P)
68-
Jx = symmjacobim(J)
69-
w = (I - Jx^2)
70-
# compute Jacobi matrix via cholesky
71-
Jchol = cholesky_jacobimatrix(w)
72-
# compute Jacobi matrix via Lanczos
73-
wf = (1 .- x.^2)
74-
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
75-
# Comparison
76-
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
77-
end
65+
@testset "w(x) = (1-x^2)" begin
66+
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
67+
x = axes(P,1)
68+
J = jacobimatrix(P)
69+
Jx = symmjacobim(J)
70+
w = (I - Jx^2)
71+
# compute Jacobi matrix via cholesky
72+
Jchol = cholesky_jacobimatrix(w)
73+
# compute Jacobi matrix via Lanczos
74+
wf = (1 .- x.^2)
75+
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
76+
# Comparison
77+
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
78+
end
7879

79-
@testset "w(x) = (1-x^4)" begin
80-
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
81-
x = axes(P,1)
82-
J = jacobimatrix(P)
83-
Jx = symmjacobim(J)
84-
w = (I - Jx^4)
85-
# compute Jacobi matrix via cholesky
86-
Jchol = cholesky_jacobimatrix(w)
87-
# compute Jacobi matrix via Lanczos
88-
wf = (1 .- x.^4)
89-
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
90-
# Comparison
91-
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
92-
end
80+
@testset "w(x) = (1-x^4)" begin
81+
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
82+
x = axes(P,1)
83+
J = jacobimatrix(P)
84+
Jx = symmjacobim(J)
85+
w = (I - Jx^4)
86+
# compute Jacobi matrix via cholesky
87+
Jchol = cholesky_jacobimatrix(w)
88+
# compute Jacobi matrix via Lanczos
89+
wf = (1 .- x.^4)
90+
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
91+
# Comparison
92+
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
93+
end
9394

94-
@testset "w(x) = (1.014-x^3)" begin
95-
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
96-
x = axes(P,1)
97-
J = jacobimatrix(P)
98-
Jx = symmjacobim(J)
99-
t = 1.014
100-
w = (t*I - Jx^3)
101-
# compute Jacobi matrix via cholesky
102-
Jchol = cholesky_jacobimatrix(w)
103-
# compute Jacobi matrix via Lanczos
104-
wf = (t .- x.^3)
105-
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
106-
# Comparison
107-
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
95+
@testset "w(x) = (1.014-x^3)" begin
96+
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
97+
x = axes(P,1)
98+
J = jacobimatrix(P)
99+
Jx = symmjacobim(J)
100+
t = 1.014
101+
w = (t*I - Jx^3)
102+
# compute Jacobi matrix via cholesky
103+
Jchol = cholesky_jacobimatrix(w)
104+
# compute Jacobi matrix via Lanczos
105+
wf = (t .- x.^3)
106+
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
107+
# Comparison
108+
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
109+
end
108110
end
109-
end
110111

111-
@testset "Comparison with Lanczos and Classical, with Clenshaw, polynomial weights" begin
112-
@testset "w(x) = x^2*(1-x)" begin
113-
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
114-
x = axes(P,1)
115-
J = jacobimatrix(P)
116-
Jx = symmjacobim(J)
117-
wf(x) = x^2*(1-x)
118-
# compute Jacobi matrix via cholesky
119-
W = P \ (wf.(x) .* P)
120-
Jchol = cholesky_jacobimatrix(Symmetric(W))
121-
# compute Jacobi matrix via classical recurrence
122-
Q = Normalized(Jacobi(1,2)[affine(0..1,Inclusion(-1..1)),:])
123-
Jclass = jacobimatrix(Q)
124-
# compute Jacobi matrix via Lanczos
125-
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
126-
# Comparison with Lanczos
127-
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
128-
# Comparison with Classical
129-
@test Jchol[1:500,1:500] Jclass[1:500,1:500]
130-
end
112+
@testset "Using Clenshaw for polynomial weights" begin
113+
@testset "w(x) = x^2*(1-x)" begin
114+
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
115+
x = axes(P,1)
116+
J = jacobimatrix(P)
117+
wf(x) = x^2*(1-x)
118+
# compute Jacobi matrix via cholesky
119+
W = P \ (wf.(x) .* P)
120+
Jchol = cholesky_jacobimatrix(Symmetric(W))
121+
# compute Jacobi matrix via classical recurrence
122+
Q = Normalized(Jacobi(1,2)[affine(0..1,Inclusion(-1..1)),:])
123+
Jclass = jacobimatrix(Q)
124+
# compute Jacobi matrix via Lanczos
125+
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
126+
# Comparison with Lanczos
127+
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
128+
# Comparison with Classical
129+
@test Jchol[1:500,1:500] Jclass[1:500,1:500]
130+
end
131131

132-
@testset "w(x) = (1-x^2)" begin
133-
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
134-
x = axes(P,1)
135-
J = jacobimatrix(P)
136-
Jx = symmjacobim(J)
137-
wf(x) = (1-x^2)
138-
# compute Jacobi matrix via cholesky
139-
W = P \ (wf.(x) .* P)
140-
Jchol = cholesky_jacobimatrix(Symmetric(W))
141-
# compute Jacobi matrix via Lanczos
142-
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
143-
# Comparison with Lanczos
144-
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
145-
end
132+
@testset "w(x) = (1-x^2)" begin
133+
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
134+
x = axes(P,1)
135+
J = jacobimatrix(P)
136+
wf(x) = (1-x^2)
137+
# compute Jacobi matrix via cholesky
138+
W = P \ (wf.(x) .* P)
139+
Jchol = cholesky_jacobimatrix(Symmetric(W))
140+
# compute Jacobi matrix via Lanczos
141+
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
142+
# Comparison with Lanczos
143+
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
144+
end
146145

147-
@testset "w(x) = (1-x^4)" begin
148-
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
149-
x = axes(P,1)
150-
J = jacobimatrix(P)
151-
Jx = symmjacobim(J)
152-
wf(x) = (1-x^4)
153-
# compute Jacobi matrix via cholesky
154-
W = P \ (wf.(x) .* P)
155-
Jchol = cholesky_jacobimatrix(Symmetric(W))
156-
# compute Jacobi matrix via Lanczos
157-
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
158-
# Comparison with Lanczos
159-
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
160-
end
146+
@testset "w(x) = (1-x^4)" begin
147+
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
148+
x = axes(P,1)
149+
J = jacobimatrix(P)
150+
wf(x) = (1-x^4)
151+
# compute Jacobi matrix via cholesky
152+
W = P \ (wf.(x) .* P)
153+
Jchol = cholesky_jacobimatrix(Symmetric(W))
154+
# compute Jacobi matrix via Lanczos
155+
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
156+
# Comparison with Lanczos
157+
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
158+
end
161159

162-
@testset "w(x) = (1.014-x^3)" begin
163-
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
164-
x = axes(P,1)
165-
J = jacobimatrix(P)
166-
Jx = symmjacobim(J)
167-
wf(x) = 1.014-x^4
168-
# compute Jacobi matrix via cholesky
169-
W = P \ (wf.(x) .* P)
170-
Jchol = cholesky_jacobimatrix(Symmetric(W))
171-
# compute Jacobi matrix via Lanczos
172-
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
173-
# Comparison with Lanczos
174-
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
160+
@testset "w(x) = (1.014-x^3)" begin
161+
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
162+
x = axes(P,1)
163+
J = jacobimatrix(P)
164+
wf(x) = 1.014-x^4
165+
# compute Jacobi matrix via cholesky
166+
W = P \ (wf.(x) .* P)
167+
Jchol = cholesky_jacobimatrix(Symmetric(W))
168+
# compute Jacobi matrix via Lanczos
169+
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
170+
# Comparison with Lanczos
171+
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
172+
end
175173
end
176-
end
177174

178-
@testset "Comparison with Lanczos and Classical, with Clenshaw, exponential weights" begin
179-
@testset "w(x) = exp(x)" begin
180-
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
181-
x = axes(P,1)
182-
J = jacobimatrix(P)
183-
Jx = symmjacobim(J)
184-
wf(x) = exp(x)
185-
# compute Jacobi matrix via cholesky
186-
W = P \ (wf.(x) .* P)
187-
Jchol = cholesky_jacobimatrix(Symmetric(W))
188-
# compute Jacobi matrix via Lanczos
189-
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
190-
# Comparison with Lanczos
191-
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
175+
@testset "Using Clenshaw with exponential weights" begin
176+
@testset "w(x) = exp(x)" begin
177+
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
178+
x = axes(P,1)
179+
J = jacobimatrix(P)
180+
wf(x) = exp(x)
181+
# compute Jacobi matrix via cholesky
182+
W = P \ (wf.(x) .* P)
183+
Jchol = cholesky_jacobimatrix(Symmetric(W))
184+
# compute Jacobi matrix via Lanczos
185+
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
186+
# Comparison with Lanczos
187+
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
188+
end
189+
190+
@testset "w(x) = (1-x)*exp(x)" begin
191+
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
192+
x = axes(P,1)
193+
J = jacobimatrix(P)
194+
wf(x) = (1-x)*exp(x)
195+
# compute Jacobi matrix via cholesky
196+
W = P \ (wf.(x) .* P)
197+
Jchol = cholesky_jacobimatrix(Symmetric(W))
198+
# compute Jacobi matrix via Lanczos
199+
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
200+
# Comparison with Lanczos
201+
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
202+
end
203+
204+
@testset "w(x) = (1-x^2)*exp(x^2)" begin
205+
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
206+
x = axes(P,1)
207+
J = jacobimatrix(P)
208+
wf(x) = (1-x^2)*exp(x^2)
209+
# compute Jacobi matrix via cholesky
210+
W = P \ (wf.(x) .* P)
211+
Jchol = cholesky_jacobimatrix(Symmetric(W))
212+
# compute Jacobi matrix via Lanczos
213+
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
214+
# Comparison with Lanczos
215+
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
216+
end
217+
218+
@testset "w(x) = x*(1-x^2)*exp(-x^2)" begin
219+
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
220+
x = axes(P,1)
221+
J = jacobimatrix(P)
222+
wf(x) = x*(1-x^2)*exp(-x^2)
223+
# compute Jacobi matrix via cholesky
224+
W = P \ (wf.(x) .* P)
225+
Jchol = cholesky_jacobimatrix(Symmetric(W))
226+
# compute Jacobi matrix via Lanczos
227+
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
228+
# Comparison with Lanczos
229+
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
230+
end
192231
end
193-
194-
@testset "w(x) = (1-x)*exp(x)" begin
195-
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
196-
x = axes(P,1)
197-
J = jacobimatrix(P)
198-
Jx = symmjacobim(J)
199-
wf(x) = (1-x)*exp(x)
200-
# compute Jacobi matrix via cholesky
201-
W = P \ (wf.(x) .* P)
202-
Jchol = cholesky_jacobimatrix(Symmetric(W))
203-
# compute Jacobi matrix via Lanczos
204-
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
205-
# Comparison with Lanczos
206-
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
207-
end
208-
209-
@testset "w(x) = (1-x^2)*exp(x^2)" begin
210-
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
211-
x = axes(P,1)
212-
J = jacobimatrix(P)
213-
Jx = symmjacobim(J)
214-
wf(x) = (1-x^2)*exp(x^2)
215-
# compute Jacobi matrix via cholesky
216-
W = P \ (wf.(x) .* P)
217-
Jchol = cholesky_jacobimatrix(Symmetric(W))
218-
# compute Jacobi matrix via Lanczos
219-
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
220-
# Comparison with Lanczos
221-
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
222-
end
223-
224-
@testset "w(x) = x*(1-x^2)*exp(-x^2)" begin
225-
P = Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])
226-
x = axes(P,1)
227-
J = jacobimatrix(P)
228-
Jx = symmjacobim(J)
229-
wf(x) = x*(1-x^2)*exp(-x^2)
230-
# compute Jacobi matrix via cholesky
231-
W = P \ (wf.(x) .* P)
232-
Jchol = cholesky_jacobimatrix(Symmetric(W))
233-
# compute Jacobi matrix via Lanczos
234-
Jlanc = jacobimatrix(LanczosPolynomial(@.(wf.(x)),Normalized(Legendre()[affine(0..1,Inclusion(-1..1)),:])))
235-
# Comparison with Lanczos
236-
@test Jchol[1:500,1:500] Jlanc[1:500,1:500]
237-
end
238-
end
232+
end

0 commit comments

Comments
 (0)