Mercurial > repos > public > sbplib_julia
comparison test/testSbpOperators.jl @ 517:2edacece1637 feature/boundary_ops
Fix range_size not returning empty tuple
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Tue, 24 Nov 2020 18:30:25 +0100 |
parents | d55008f5e2f3 |
children | 51e4bf6ab755 |
comparison
equal
deleted
inserted
replaced
516:f932af8c1e56 | 517:2edacece1637 |
---|---|
182 e_r = BoundaryRestriction(g,op.eClosure,Upper()) | 182 e_r = BoundaryRestriction(g,op.eClosure,Upper()) |
183 | 183 |
184 v = evalOn(g,x->1+x^2) | 184 v = evalOn(g,x->1+x^2) |
185 u = fill(3.124) | 185 u = fill(3.124) |
186 | 186 |
187 e_l*v isa LazyTensorMappingApplication | |
188 @test_broken (e_l*v)[Index{Lower}(1)] == v[1] | 187 @test_broken (e_l*v)[Index{Lower}(1)] == v[1] |
189 @test_broken (e_r*v)[Index{Upper}(4)] == v[end] | 188 @test_broken (e_r*v)[Index{Upper}(4)] == v[end] |
190 @test e_l'*u == [u[], 0, 0, 0] | 189 @test e_l'*u == [u[], 0, 0, 0] |
191 @test e_r'*u == [0, 0, 0, u[]] | 190 @test e_r'*u == [0, 0, 0, u[]] |
192 @test_throws BoundsError (e_l*v)[Index{Lower}(3)] | 191 @test_throws BoundsError (e_l*v)[Index{Lower}(3)] |
207 v[:,1] = [10, 11, 12, 13] | 206 v[:,1] = [10, 11, 12, 13] |
208 | 207 |
209 @test e_w isa TensorMapping{T,1,2} where T | 208 @test e_w isa TensorMapping{T,1,2} where T |
210 @test e_w' isa TensorMapping{T,2,1} where T | 209 @test e_w' isa TensorMapping{T,2,1} where T |
211 | 210 |
212 | |
213 | |
214 @test domain_size(e_w) == (4,5) | 211 @test domain_size(e_w) == (4,5) |
215 @test domain_size(e_e) == (4,5) | 212 @test domain_size(e_e) == (4,5) |
216 @test domain_size(e_s) == (4,5) | 213 @test domain_size(e_s) == (4,5) |
217 @test domain_size(e_n) == (4,5) | 214 @test domain_size(e_n) == (4,5) |
218 | 215 |
219 @test range_size(e_w) == (1,5) | 216 @test range_size(e_w) == (5,) |
220 @test range_size(e_e) == (1,5) | 217 @test range_size(e_e) == (5,) |
221 @test range_size(e_s) == (4,1) | 218 @test range_size(e_s) == (4,) |
222 @test range_size(e_n) == (4,1) | 219 @test range_size(e_n) == (4,) |
223 | 220 |
224 e_w*v isa LazyTensorMappingApplication | 221 @test_broken e_w*v == [10,7,4,1.0,1] |
225 | 222 @test_broken e_e*v == [13,10,7,4,4.0] |
226 @test_broken e_w'*v == [10,7,4,1.0,1] | 223 @test_broken e_s*v == [10,11,12,13.0] |
227 @test_broken e_e'*v == [13,10,7,4,4.0] | 224 @test_broken e_n*v == [1,2,3,4.0] |
228 @test_broken e_s'*v == [10,11,12,13.0] | |
229 @test_broken e_n'*v == [1,2,3,4.0] | |
230 | 225 |
231 g_x = [1,2,3,4.0] | 226 g_x = [1,2,3,4.0] |
232 g_y = [5,4,3,2,1.0] | 227 g_y = [5,4,3,2,1.0] |
233 | 228 |
234 G_w = zeros(Float64, (4,5)) | 229 G_w = zeros(Float64, (4,5)) |
241 G_s[:,1] = g_x | 236 G_s[:,1] = g_x |
242 | 237 |
243 G_n = zeros(Float64, (4,5)) | 238 G_n = zeros(Float64, (4,5)) |
244 G_n[:,5] = g_x | 239 G_n[:,5] = g_x |
245 | 240 |
246 @test_broken size(e_w*g_y) == (UnknownDim,5) | 241 @test_broken e_w'*g_y == G_w |
247 @test_broken size(e_e*g_y) == (UnknownDim,5) | 242 @test_broken e_e'*g_y == G_e |
248 @test_broken size(e_s*g_x) == (4,UnknownDim) | 243 @test_broken e_s'*g_x == G_s |
249 @test_broken size(e_n*g_x) == (4,UnknownDim) | 244 @test_broken e_n'*g_x == G_n |
250 | |
251 # These tests should be moved to where they are possible (i.e we know what the grid should be) | |
252 @test_broken e_w*g_y == G_w | |
253 @test_broken e_e*g_y == G_e | |
254 @test_broken e_s*g_x == G_s | |
255 @test_broken e_n*g_x == G_n | |
256 end | 245 end |
257 # | 246 # |
258 # @testset "NormalDerivative" begin | 247 # @testset "NormalDerivative" begin |
259 # op = readOperator(sbp_operators_path()*"d2_4th.txt",sbp_operators_path()*"h_4th.txt") | 248 # op = readOperator(sbp_operators_path()*"d2_4th.txt",sbp_operators_path()*"h_4th.txt") |
260 # g = EquidistantGrid((5,6), (0.0, 0.0), (4.0,5.0)) | 249 # g = EquidistantGrid((5,6), (0.0, 0.0), (4.0,5.0)) |