annotate test/SbpOperators/readoperator_test.jl @ 769:0158c3fd521c operator_storage_array_of_table

Merge in default
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 15 Jul 2021 00:06:16 +0200
parents 6114274447f5
children 219c9661e700
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 using Test
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3 using TOML
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 using Sbplib.SbpOperators
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5
732
6114274447f5 Add missing using and imports in test files
Jonatan Werpers <jonatan@werpers.com>
parents: 728
diff changeset
6 import Sbplib.SbpOperators.Stencil
6114274447f5 Add missing using and imports in test files
Jonatan Werpers <jonatan@werpers.com>
parents: 728
diff changeset
7
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 @testset "parse_rational" begin
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 @test SbpOperators.parse_rational("1") isa Rational
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11 @test SbpOperators.parse_rational("1") == 1//1
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 @test SbpOperators.parse_rational("1/2") isa Rational
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 @test SbpOperators.parse_rational("1/2") == 1//2
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 @test SbpOperators.parse_rational("37/13") isa Rational
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 @test SbpOperators.parse_rational("37/13") == 37//13
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 end
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 @testset "readoperator" begin
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19 toml_str = """
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 [meta]
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
21 authors = "Ken Mattson"
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
22 description = "Standard operators for equidistant grids"
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 type = "equidistant"
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
24 cite = "A paper a long time ago in a galaxy far far away."
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
26 [[stencil_set]]
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
27
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
28 order = 2
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
29 test = 2
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
30
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 H.inner = ["1"]
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
32 H.closure = ["1/2"]
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 D1.inner_stencil = ["-1/2", "0", "1/2"]
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35 D1.closure_stencils = [
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
36 {s = ["-1", "1"], c = 1},
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
37 ]
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
38
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
39 D2.inner_stencil = ["1", "-2", "1"]
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
40 D2.closure_stencils = [
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
41 {s = ["1", "-2", "1"], c = 1},
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
42 ]
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
43
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
44 e.closure = ["1"]
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
45 d1.closure = {s = ["-3/2", "2", "-1/2"], c = 1}
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
46
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
47 [[stencil_set]]
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
48
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
49 order = 4
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
50 test = 1
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
51 H.inner = ["1"]
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
52 H.closure = ["17/48", "59/48", "43/48", "49/48"]
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
53
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
54 D2.inner_stencil = ["-1/12","4/3","-5/2","4/3","-1/12"]
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
55 D2.closure_stencils = [
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
56 {s = [ "2", "-5", "4", "-1", "0", "0"], c = 1},
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
57 {s = [ "1", "-2", "1", "0", "0", "0"], c = 2},
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
58 {s = [ "-4/43", "59/43", "-110/43", "59/43", "-4/43", "0"], c = 3},
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
59 {s = [ "-1/49", "0", "59/49", "-118/49", "64/49", "-4/49"], c = 4},
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
60 ]
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
61
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
62 e.closure = ["1"]
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
63 d1.closure = {s = ["-11/6", "3", "-3/2", "1/3"], c = 1}
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
64
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
65 [[stencil_set]]
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
66 order = 4
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
67 test = 2
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
68
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
69 H.closure = ["-1/49", "0", "59/49", "-118/49", "64/49", "-4/49"]
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
70 """
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
71
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
72 parsed_toml = TOML.parse(toml_str)
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
73
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
74 @testset "get_stencil_set" begin
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
75 @test get_stencil_set(parsed_toml; order = 2) isa Dict
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
76 @test get_stencil_set(parsed_toml; order = 2) == parsed_toml["stencil_set"][1]
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
77 @test get_stencil_set(parsed_toml; test = 1) == parsed_toml["stencil_set"][2]
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
78 @test get_stencil_set(parsed_toml; order = 4, test = 2) == parsed_toml["stencil_set"][3]
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
79
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
80 @test_throws ArgumentError get_stencil_set(parsed_toml; test = 2)
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
81 @test_throws ArgumentError get_stencil_set(parsed_toml; order = 4)
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
82 end
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
83
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
84 @testset "parse_stencil" begin
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
85 toml = """
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
86 s1 = ["-1/12","4/3","-5/2","4/3","-1/12"]
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
87 s2 = {s = ["2", "-5", "4", "-1", "0", "0"], c = 1}
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
88 s3 = {s = ["1", "-2", "1", "0", "0", "0"], c = 2}
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
89 s4 = "not a stencil"
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
90 s5 = [-1, 4, 3]
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
91 s6 = {k = ["1", "-2", "1", "0", "0", "0"], c = 2}
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
92 s7 = {s = [-1, 4, 3], c = 2}
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
93 s8 = {s = ["1", "-2", "1", "0", "0", "0"], c = [2,2]}
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
94 """
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
95
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
96 @test parse_stencil(TOML.parse(toml)["s1"]) == CenteredStencil(-1/12, 4/3, -5/2, 4/3, -1/12)
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
97 @test parse_stencil(TOML.parse(toml)["s2"]) == Stencil(2., -5., 4., -1., 0., 0.; center=1)
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
98 @test parse_stencil(TOML.parse(toml)["s3"]) == Stencil(1., -2., 1., 0., 0., 0.; center=2)
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
99
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
100 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s4"])
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
101 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s5"])
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
102 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s6"])
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
103 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s7"])
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
104 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s8"])
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
105
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
106 stencil_set = get_stencil_set(parsed_toml; order = 4, test = 1)
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
107
769
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
108 @test parse_stencil.(stencil_set["D2"]["closure_stencils"]) == [
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
109 Stencil( 2., -5., 4., -1., 0., 0.; center=1),
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
110 Stencil( 1., -2., 1., 0., 0., 0.; center=2),
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
111 Stencil(-4/43, 59/43, -110/43, 59/43, -4/43, 0.; center=3),
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
112 Stencil(-1/49, 0., 59/49, -118/49, 64/49, -4/49; center=4),
0158c3fd521c Merge in default
Jonatan Werpers <jonatan@werpers.com>
parents: 732
diff changeset
113 ]
728
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
114 end
45966c77cb20 Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
115 end