changeset 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 4f79ab676ebc e1222fbb7c4d c10c6c3e9247 f13857f37b8f 46a1ad30f861
files test/SbpOperators/stencil_test.jl
diffstat 1 files changed, 31 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/test/SbpOperators/stencil_test.jl	Fri Nov 24 21:23:41 2023 +0100
+++ b/test/SbpOperators/stencil_test.jl	Fri Nov 24 21:49:07 2023 +0100
@@ -1,5 +1,6 @@
 using Test
 using Sbplib.SbpOperators
+using StaticArrays
 import Sbplib.SbpOperators.Stencil
 import Sbplib.SbpOperators.NestedStencil
 import Sbplib.SbpOperators.scale
@@ -68,6 +69,27 @@
         @test apply_stencil_backwards(s,v, 3) == 4*v[1] + 3*v[2] + 2*v[3] + 1*v[4]
         @test apply_stencil(s,v, 2) isa Float64
         @test apply_stencil_backwards(s,v, 3) isa Float64
+
+        v = [@SVector[1, 2], @SVector[3, 4], @SVector[5, 6], @SVector[7, 8]]
+        s = Stencil(1,2, center = 1)
+        @test_broken apply_stencil(s,v,1) == @SVector[7, 10]
+        @test_broken apply_stencil_backwards(s,v,3) == @SVector[11, 14]
+        @test_broken apply_stencil(s,v,1) isa SVector{2, Int}
+        @test_broken apply_stencil_backwards(s,v,3) isa SVector{2, Int}
+
+        v = [@SVector[1., 2.], @SVector[3., 4.], @SVector[5., 6.], @SVector[7., 8.]]
+        s = Stencil(1,2, center = 1)
+        @test_broken apply_stencil(s,v,1) == @SVector[7., 10.]
+        @test_broken apply_stencil_backwards(s,v,3) == @SVector[11., 14.]
+        @test_broken apply_stencil(s,v,1) isa SVector{2, Float64}
+        @test_broken apply_stencil_backwards(s,v,3) isa SVector{2, Float64}
+
+        v = [@SVector[1, 2], @SVector[3, 4], @SVector[5, 6], @SVector[7, 8]]
+        s = Stencil(1.,2., center = 1)
+        @test_broken apply_stencil(s,v,1) == @SVector[7., 10.]
+        @test_broken apply_stencil_backwards(s,v,3) == @SVector[11., 14.]
+        @test_broken apply_stencil(s,v,1) isa SVector{2, Float64}
+        @test_broken apply_stencil_backwards(s,v,3) isa SVector{2, Float64}
     end
 
     @testset "type stability" begin
@@ -193,6 +215,15 @@
         @test SbpOperators.apply_stencil(ns, c, v, 4) == 193.
         @test SbpOperators.apply_stencil_backwards(ns, c, v, 4) isa Float64
         @test SbpOperators.apply_stencil_backwards(ns, c, v, 4) == -158.
+
+        # Arrays of vectors
+        ns = NestedStencil((-1.,1.,0.),(-1.,0.,1.),(0.,-2.,2.), center=2)
+        c = [  1,  3,  6, 10]
+        v = [@SVector[1, 2], @SVector[3, 4], @SVector[5, 6], @SVector[7, 8]]
+        @test_broken SbpOperators.apply_stencil(ns, c, v, 2) isa SVector{2,Float64}
+        @test_broken SbpOperators.apply_stencil(ns, c, v, 2) == 2v[1] + 5v[2] + 6v[3]
+        @test_broken SbpOperators.apply_stencil_backwards(ns, c, v, 2) isa SVector{2,Float64}
+        @test_broken SbpOperators.apply_stencil_backwards(ns, c, v, 2) == -4v[1] - 5v[2] - 3v[3]
     end
 
     @testset "type stability" begin