Mercurial > repos > public > sbplib_julia
comparison test/SbpOperators/stencil_test.jl @ 1446:d744b01be520 bugfix/sbp_operators/stencil_return_type
Add broken tests for applying stencils to vectors of vectors
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 24 Nov 2023 21:49:07 +0100 |
parents | 76a121ee7b80 |
children | 6baed7b081f2 |
comparison
equal
deleted
inserted
replaced
1445:76a121ee7b80 | 1446:d744b01be520 |
---|---|
1 using Test | 1 using Test |
2 using Sbplib.SbpOperators | 2 using Sbplib.SbpOperators |
3 using StaticArrays | |
3 import Sbplib.SbpOperators.Stencil | 4 import Sbplib.SbpOperators.Stencil |
4 import Sbplib.SbpOperators.NestedStencil | 5 import Sbplib.SbpOperators.NestedStencil |
5 import Sbplib.SbpOperators.scale | 6 import Sbplib.SbpOperators.scale |
6 import Sbplib.SbpOperators: apply_stencil, apply_stencil_backwards | 7 import Sbplib.SbpOperators: apply_stencil, apply_stencil_backwards |
7 | 8 |
66 s = Stencil(1,2,3,4, center = 2) | 67 s = Stencil(1,2,3,4, center = 2) |
67 @test apply_stencil(s,v, 2) == v[1] + 2*v[2] + 3*v[3] + 4*v[4] | 68 @test apply_stencil(s,v, 2) == v[1] + 2*v[2] + 3*v[3] + 4*v[4] |
68 @test apply_stencil_backwards(s,v, 3) == 4*v[1] + 3*v[2] + 2*v[3] + 1*v[4] | 69 @test apply_stencil_backwards(s,v, 3) == 4*v[1] + 3*v[2] + 2*v[3] + 1*v[4] |
69 @test apply_stencil(s,v, 2) isa Float64 | 70 @test apply_stencil(s,v, 2) isa Float64 |
70 @test apply_stencil_backwards(s,v, 3) isa Float64 | 71 @test apply_stencil_backwards(s,v, 3) isa Float64 |
72 | |
73 v = [@SVector[1, 2], @SVector[3, 4], @SVector[5, 6], @SVector[7, 8]] | |
74 s = Stencil(1,2, center = 1) | |
75 @test_broken apply_stencil(s,v,1) == @SVector[7, 10] | |
76 @test_broken apply_stencil_backwards(s,v,3) == @SVector[11, 14] | |
77 @test_broken apply_stencil(s,v,1) isa SVector{2, Int} | |
78 @test_broken apply_stencil_backwards(s,v,3) isa SVector{2, Int} | |
79 | |
80 v = [@SVector[1., 2.], @SVector[3., 4.], @SVector[5., 6.], @SVector[7., 8.]] | |
81 s = Stencil(1,2, center = 1) | |
82 @test_broken apply_stencil(s,v,1) == @SVector[7., 10.] | |
83 @test_broken apply_stencil_backwards(s,v,3) == @SVector[11., 14.] | |
84 @test_broken apply_stencil(s,v,1) isa SVector{2, Float64} | |
85 @test_broken apply_stencil_backwards(s,v,3) isa SVector{2, Float64} | |
86 | |
87 v = [@SVector[1, 2], @SVector[3, 4], @SVector[5, 6], @SVector[7, 8]] | |
88 s = Stencil(1.,2., center = 1) | |
89 @test_broken apply_stencil(s,v,1) == @SVector[7., 10.] | |
90 @test_broken apply_stencil_backwards(s,v,3) == @SVector[11., 14.] | |
91 @test_broken apply_stencil(s,v,1) isa SVector{2, Float64} | |
92 @test_broken apply_stencil_backwards(s,v,3) isa SVector{2, Float64} | |
71 end | 93 end |
72 | 94 |
73 @testset "type stability" begin | 95 @testset "type stability" begin |
74 s_int = CenteredStencil(1,2,3) | 96 s_int = CenteredStencil(1,2,3) |
75 s_float = CenteredStencil(1.,2.,3.) | 97 s_float = CenteredStencil(1.,2.,3.) |
191 | 213 |
192 @test SbpOperators.apply_stencil(ns, c, v, 4) isa Float64 | 214 @test SbpOperators.apply_stencil(ns, c, v, 4) isa Float64 |
193 @test SbpOperators.apply_stencil(ns, c, v, 4) == 193. | 215 @test SbpOperators.apply_stencil(ns, c, v, 4) == 193. |
194 @test SbpOperators.apply_stencil_backwards(ns, c, v, 4) isa Float64 | 216 @test SbpOperators.apply_stencil_backwards(ns, c, v, 4) isa Float64 |
195 @test SbpOperators.apply_stencil_backwards(ns, c, v, 4) == -158. | 217 @test SbpOperators.apply_stencil_backwards(ns, c, v, 4) == -158. |
218 | |
219 # Arrays of vectors | |
220 ns = NestedStencil((-1.,1.,0.),(-1.,0.,1.),(0.,-2.,2.), center=2) | |
221 c = [ 1, 3, 6, 10] | |
222 v = [@SVector[1, 2], @SVector[3, 4], @SVector[5, 6], @SVector[7, 8]] | |
223 @test_broken SbpOperators.apply_stencil(ns, c, v, 2) isa SVector{2,Float64} | |
224 @test_broken SbpOperators.apply_stencil(ns, c, v, 2) == 2v[1] + 5v[2] + 6v[3] | |
225 @test_broken SbpOperators.apply_stencil_backwards(ns, c, v, 2) isa SVector{2,Float64} | |
226 @test_broken SbpOperators.apply_stencil_backwards(ns, c, v, 2) == -4v[1] - 5v[2] - 3v[3] | |
196 end | 227 end |
197 | 228 |
198 @testset "type stability" begin | 229 @testset "type stability" begin |
199 s_int = CenteredNestedStencil((1,2,3),(1,2,3),(1,2,3)) | 230 s_int = CenteredNestedStencil((1,2,3),(1,2,3),(1,2,3)) |
200 s_float = CenteredNestedStencil((1.,2.,3.),(1.,2.,3.),(1.,2.,3.)) | 231 s_float = CenteredNestedStencil((1.,2.,3.),(1.,2.,3.),(1.,2.,3.)) |