|
110 | 110 |
|
111 | 111 | ## Bug in multiplicaiton |
112 | 112 | @test Fun(SinSpace(),Float64[])^2 == Fun(SinSpace(),Float64[]) |
| 113 | + |
| 114 | + @testset "Evaluation" begin |
| 115 | + @testset "CosSpace" begin |
| 116 | + @testset for sp in [CosSpace(), CosSpace(1..2)] |
| 117 | + f = Fun(sp, Float64[1:8;]) |
| 118 | + @test ldirichlet(sp) * f ≈ f(leftendpoint(domain(f))) |
| 119 | + @test rdirichlet(sp) * f ≈ f(rightendpoint(domain(f))) |
| 120 | + @test (lneumann(sp) * f)(leftendpoint(domain(f))) ≈ f'(leftendpoint(domain(f))) atol=1e-10 |
| 121 | + @test (rneumann(sp) * f)(rightendpoint(domain(f))) ≈ f'(rightendpoint(domain(f))) atol=1e-10 |
| 122 | + pt = 1.2 |
| 123 | + @test Evaluation(sp, pt, 0) * f ≈ f(pt) |
| 124 | + @test Evaluation(sp, pt, 1) * f ≈ f'(pt) |
| 125 | + @test Evaluation(sp, pt, 2) * f ≈ f''(pt) |
| 126 | + end |
| 127 | + end |
| 128 | + @testset "SinSpace" begin |
| 129 | + @testset for sp in [SinSpace(), SinSpace(1..2)] |
| 130 | + f = Fun(sp, Float64[1:8;]) |
| 131 | + @test (ldirichlet(sp) * f)(leftendpoint(domain(f))) ≈ f(leftendpoint(domain(f))) atol=1e-10 |
| 132 | + @test (rdirichlet(sp) * f)(leftendpoint(domain(f))) ≈ f(rightendpoint(domain(f))) atol=1e-10 |
| 133 | + @test lneumann(sp) * f ≈ f'(leftendpoint(domain(f))) |
| 134 | + @test rneumann(sp) * f ≈ f'(rightendpoint(domain(f))) |
| 135 | + pt = 1.2 |
| 136 | + @test Evaluation(sp, pt, 0) * f ≈ f(pt) |
| 137 | + @test Evaluation(sp, pt, 1) * f ≈ f'(pt) |
| 138 | + @test Evaluation(sp, pt, 2) * f ≈ f''(pt) |
| 139 | + end |
| 140 | + end |
| 141 | + end |
113 | 142 | end |
114 | 143 |
|
115 | 144 |
|
|
252 | 281 | @test coefficients([4; zeros(4); [1, 2]; zeros(4); 3], Fourier(0..6pi), Fourier(0..2pi)) ≈ [4,1,2,3] |
253 | 282 | @test coefficients([4; zeros(6); [1, 2]; zeros(6); 3], Fourier(0..8pi), Fourier(0..2pi)) ≈ [4,1,2,3] |
254 | 283 | end |
| 284 | + |
| 285 | + @testset "Evaluation" begin |
| 286 | + @testset for sp in [Fourier(), Fourier(1..2)] |
| 287 | + f = Fun(sp, Float64[1:8;]) |
| 288 | + @test ldirichlet(sp) * f ≈ f(leftendpoint(domain(f))) |
| 289 | + @test rdirichlet(sp) * f ≈ f(rightendpoint(domain(f))) |
| 290 | + @test (lneumann(sp) * f)(leftendpoint(domain(f))) ≈ f'(leftendpoint(domain(f))) atol=1e-10 |
| 291 | + @test (rneumann(sp) * f)(rightendpoint(domain(f))) ≈ f'(rightendpoint(domain(f))) atol=1e-10 |
| 292 | + pt = 1.2 |
| 293 | + @test Evaluation(sp, pt, 0) * f ≈ f(pt) |
| 294 | + @test Evaluation(sp, pt, 1) * f ≈ f'(pt) |
| 295 | + @test Evaluation(sp, pt, 2) * f ≈ f''(pt) |
| 296 | + end |
| 297 | + end |
255 | 298 | end |
256 | 299 |
|
257 | 300 | @testset "Laurent" begin |
|
271 | 314 | ## Diagonal Derivative |
272 | 315 | D = @inferred Derivative(Laurent()) |
273 | 316 | @test isdiag(D) |
| 317 | + |
| 318 | + @testset "Evaluation" begin |
| 319 | + @testset for sp in [Laurent(), Laurent(1..2)] |
| 320 | + f = Fun(sp, Float64[1:8;]) |
| 321 | + @test ldirichlet(sp) * f ≈ f(leftendpoint(domain(f))) |
| 322 | + @test rdirichlet(sp) * f ≈ f(rightendpoint(domain(f))) |
| 323 | + @test (lneumann(sp) * f)(leftendpoint(domain(f))) ≈ f'(leftendpoint(domain(f))) atol=1e-10 |
| 324 | + @test (rneumann(sp) * f)(rightendpoint(domain(f))) ≈ f'(rightendpoint(domain(f))) atol=1e-10 |
| 325 | + pt = 1.2 |
| 326 | + @test Evaluation(sp, pt, 0) * f ≈ f(pt) |
| 327 | + @test Evaluation(sp, pt, 1) * f ≈ f'(pt) |
| 328 | + @test Evaluation(sp, pt, 2) * f ≈ f''(pt) |
| 329 | + end |
| 330 | + end |
274 | 331 | end |
275 | 332 |
|
276 | 333 | @testset "Circle" begin |
|
0 commit comments