Mercurial > repos > public > sbplib_julia
annotate test/SbpOperators/stencil_set_test.jl @ 1956:b0fcb29e3620 feature/grids/multiblock_boundaries
Merge default
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 11 Feb 2025 08:54:18 +0100 |
parents | 471a948cd2b2 |
children |
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 |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1608
diff
changeset
|
4 using Diffinitive.SbpOperators |
728
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
5 |
1726
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1608
diff
changeset
|
6 import Diffinitive.SbpOperators.Stencil |
471a948cd2b2
Rename project from Sbplib to Diffinitive
Vidar Stiernström <vidar.stiernstrom@gmail.com>
parents:
1608
diff
changeset
|
7 import Diffinitive.SbpOperators.NestedStencil |
732
6114274447f5
Add missing using and imports in test files
Jonatan Werpers <jonatan@werpers.com>
parents:
728
diff
changeset
|
8 |
728
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
9 @testset "readoperator" begin |
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
10 toml_str = """ |
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
11 [meta] |
769 | 12 authors = "Ken Mattson" |
13 description = "Standard operators for equidistant grids" | |
728
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
14 type = "equidistant" |
769 | 15 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
|
16 |
769 | 17 [[stencil_set]] |
18 | |
19 order = 2 | |
20 test = 2 | |
21 | |
728
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
22 H.inner = ["1"] |
769 | 23 H.closure = ["1/2"] |
728
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
24 |
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
25 D1.inner_stencil = ["-1/2", "0", "1/2"] |
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
26 D1.closure_stencils = [ |
769 | 27 {s = ["-1", "1"], c = 1}, |
28 ] | |
29 | |
30 D2.inner_stencil = ["1", "-2", "1"] | |
31 D2.closure_stencils = [ | |
32 {s = ["1", "-2", "1"], c = 1}, | |
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 |
769 | 35 e.closure = ["1"] |
36 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
|
37 |
769 | 38 [[stencil_set]] |
39 | |
40 order = 4 | |
41 test = 1 | |
42 H.inner = ["1"] | |
728
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
43 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
|
44 |
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
45 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
|
46 D2.closure_stencils = [ |
769 | 47 {s = [ "2", "-5", "4", "-1", "0", "0"], c = 1}, |
48 {s = [ "1", "-2", "1", "0", "0", "0"], c = 2}, | |
49 {s = [ "-4/43", "59/43", "-110/43", "59/43", "-4/43", "0"], c = 3}, | |
50 {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
|
51 ] |
769 | 52 |
53 e.closure = ["1"] | |
54 d1.closure = {s = ["-11/6", "3", "-3/2", "1/3"], c = 1} | |
55 | |
56 [[stencil_set]] | |
57 order = 4 | |
58 test = 2 | |
59 | |
60 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
|
61 """ |
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
62 |
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
63 parsed_toml = TOML.parse(toml_str) |
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
64 |
769 | 65 @testset "get_stencil_set" begin |
66 @test get_stencil_set(parsed_toml; order = 2) isa Dict | |
67 @test get_stencil_set(parsed_toml; order = 2) == parsed_toml["stencil_set"][1] | |
68 @test get_stencil_set(parsed_toml; test = 1) == parsed_toml["stencil_set"][2] | |
69 @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
|
70 |
769 | 71 @test_throws ArgumentError get_stencil_set(parsed_toml; test = 2) |
72 @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
|
73 end |
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
74 |
769 | 75 @testset "parse_stencil" begin |
76 toml = """ | |
77 s1 = ["-1/12","4/3","-5/2","4/3","-1/12"] | |
78 s2 = {s = ["2", "-5", "4", "-1", "0", "0"], c = 1} | |
79 s3 = {s = ["1", "-2", "1", "0", "0", "0"], c = 2} | |
80 s4 = "not a stencil" | |
81 s5 = [-1, 4, 3] | |
82 s6 = {k = ["1", "-2", "1", "0", "0", "0"], c = 2} | |
83 s7 = {s = [-1, 4, 3], c = 2} | |
84 s8 = {s = ["1", "-2", "1", "0", "0", "0"], c = [2,2]} | |
85 """ | |
728
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
86 |
809
219c9661e700
Always parse as rationals
Jonatan Werpers <jonatan@werpers.com>
parents:
769
diff
changeset
|
87 @test parse_stencil(TOML.parse(toml)["s1"]) == CenteredStencil(-1//12, 4//3, -5//2, 4//3, -1//12) |
219c9661e700
Always parse as rationals
Jonatan Werpers <jonatan@werpers.com>
parents:
769
diff
changeset
|
88 @test parse_stencil(TOML.parse(toml)["s2"]) == Stencil(2//1, -5//1, 4//1, -1//1, 0//1, 0//1; center=1) |
219c9661e700
Always parse as rationals
Jonatan Werpers <jonatan@werpers.com>
parents:
769
diff
changeset
|
89 @test parse_stencil(TOML.parse(toml)["s3"]) == Stencil(1//1, -2//1, 1//1, 0//1, 0//1, 0//1; center=2) |
728
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
90 |
769 | 91 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s4"]) |
92 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s5"]) | |
93 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s6"]) | |
94 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s7"]) | |
95 @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
|
96 |
769 | 97 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
|
98 |
769 | 99 @test parse_stencil.(stencil_set["D2"]["closure_stencils"]) == [ |
809
219c9661e700
Always parse as rationals
Jonatan Werpers <jonatan@werpers.com>
parents:
769
diff
changeset
|
100 Stencil( 2//1, -5//1, 4//1, -1//1, 0//1, 0//1; center=1), |
219c9661e700
Always parse as rationals
Jonatan Werpers <jonatan@werpers.com>
parents:
769
diff
changeset
|
101 Stencil( 1//1, -2//1, 1//1, 0//1, 0//1, 0//1; center=2), |
219c9661e700
Always parse as rationals
Jonatan Werpers <jonatan@werpers.com>
parents:
769
diff
changeset
|
102 Stencil(-4//43, 59//43, -110//43, 59//43, -4//43, 0//1; center=3), |
219c9661e700
Always parse as rationals
Jonatan Werpers <jonatan@werpers.com>
parents:
769
diff
changeset
|
103 Stencil(-1//49, 0//1, 59//49, -118//49, 64//49, -4//49; center=4), |
769 | 104 ] |
828
ca182cbb8f49
Add a method to parse_stencil which allows controlling the element type
Jonatan Werpers <jonatan@werpers.com>
parents:
809
diff
changeset
|
105 |
ca182cbb8f49
Add a method to parse_stencil which allows controlling the element type
Jonatan Werpers <jonatan@werpers.com>
parents:
809
diff
changeset
|
106 |
ca182cbb8f49
Add a method to parse_stencil which allows controlling the element type
Jonatan Werpers <jonatan@werpers.com>
parents:
809
diff
changeset
|
107 @test parse_stencil(Float64, TOML.parse(toml)["s1"]) == CenteredStencil(-1/12, 4/3, -5/2, 4/3, -1/12) |
ca182cbb8f49
Add a method to parse_stencil which allows controlling the element type
Jonatan Werpers <jonatan@werpers.com>
parents:
809
diff
changeset
|
108 @test parse_stencil(Float64, TOML.parse(toml)["s2"]) == Stencil(2/1, -5/1, 4/1, -1/1, 0/1, 0/1; center=1) |
ca182cbb8f49
Add a method to parse_stencil which allows controlling the element type
Jonatan Werpers <jonatan@werpers.com>
parents:
809
diff
changeset
|
109 @test parse_stencil(Float64, TOML.parse(toml)["s3"]) == Stencil(1/1, -2/1, 1/1, 0/1, 0/1, 0/1; center=2) |
728
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
110 end |
831
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
111 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
112 @testset "parse_scalar" begin |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
113 toml = TOML.parse(""" |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
114 a1 = 1 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
115 a2 = 1.5 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
116 a3 = 1.0 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
117 a4 = 10 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
118 a5 = "1/2" |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
119 a6 = "1.5" |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
120 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
121 e1 = [1,2,3] |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
122 e2 = "a string value" |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
123 """) |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
124 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
125 @test parse_scalar(toml["a1"]) == 1//1 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
126 @test parse_scalar(toml["a2"]) == 3//2 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
127 @test parse_scalar(toml["a3"]) == 1//1 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
128 @test parse_scalar(toml["a4"]) == 10//1 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
129 @test parse_scalar(toml["a5"]) == 1//2 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
130 @test parse_scalar(toml["a6"]) == 3//2 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
131 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
132 @test_throws ArgumentError parse_scalar(toml["e1"]) |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
133 @test_throws ArgumentError parse_scalar(toml["e2"]) |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
134 end |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
135 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
136 @testset "parse_tuple" begin |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
137 toml = TOML.parse(""" |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
138 t1 = [1,3,4] |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
139 t2 = ["1/2","3/4","2/1"] |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
140 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
141 e1 = "not a tuple" |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
142 e2.a="1" |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
143 e3 = 1 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
144 e4 = ["1/2","3/4","not a number"] |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
145 """) |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
146 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
147 @test parse_tuple(toml["t1"]) == (1//1,3//1,4//1) |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
148 @test parse_tuple(toml["t2"]) == (1//2,3//4,2//1) |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
149 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
150 @test_throws ArgumentError parse_tuple(toml["e1"]) |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
151 @test_throws ArgumentError parse_tuple(toml["e2"]) |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
152 @test_throws ArgumentError parse_tuple(toml["e3"]) |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
153 @test_throws ArgumentError parse_tuple(toml["e4"]) |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
154 end |
728
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
155 end |
831
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
156 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
157 @testset "parse_rational" begin |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
158 @test SbpOperators.parse_rational("1") isa Rational |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
159 @test SbpOperators.parse_rational("1") == 1//1 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
160 @test SbpOperators.parse_rational("1/2") isa Rational |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
161 @test SbpOperators.parse_rational("1/2") == 1//2 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
162 @test SbpOperators.parse_rational("37/13") isa Rational |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
163 @test SbpOperators.parse_rational("37/13") == 37//13 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
164 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
165 @test SbpOperators.parse_rational(0.5) isa Rational |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
166 @test SbpOperators.parse_rational(0.5) == 1//2 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
167 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
168 @test SbpOperators.parse_rational("0.5") isa Rational |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
169 @test SbpOperators.parse_rational("0.5") == 1//2 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
170 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
171 @test SbpOperators.parse_rational(2) isa Rational |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
172 @test SbpOperators.parse_rational(2) == 2//1 |
760c11e81fd4
Introduce parse_tuple and parse_scalar and replace all external calls to parse_rational
Jonatan Werpers <jonatan@werpers.com>
parents:
830
diff
changeset
|
173 end |
892
06c510d40ebb
Add parse_nested_stencil
Jonatan Werpers <jonatan@werpers.com>
parents:
831
diff
changeset
|
174 |
06c510d40ebb
Add parse_nested_stencil
Jonatan Werpers <jonatan@werpers.com>
parents:
831
diff
changeset
|
175 @testset "parse_nested_stencil" begin |
06c510d40ebb
Add parse_nested_stencil
Jonatan Werpers <jonatan@werpers.com>
parents:
831
diff
changeset
|
176 toml = TOML.parse(""" |
06c510d40ebb
Add parse_nested_stencil
Jonatan Werpers <jonatan@werpers.com>
parents:
831
diff
changeset
|
177 s1 = [["1/2", "1/2", "0"],[ "-1/2", "-1", "-1/2"],["0", "1/2", "1/2"]] |
06c510d40ebb
Add parse_nested_stencil
Jonatan Werpers <jonatan@werpers.com>
parents:
831
diff
changeset
|
178 s2 = {s = [[ "2", "-1", "0"],[ "-3", "1", "0"],["1", "0", "0"]], c = 1} |
06c510d40ebb
Add parse_nested_stencil
Jonatan Werpers <jonatan@werpers.com>
parents:
831
diff
changeset
|
179 s3 = {s = [[ "2", "-1", "0"],[ "-3", "1", "0"],["1", "0", "0"]], c = 2} |
06c510d40ebb
Add parse_nested_stencil
Jonatan Werpers <jonatan@werpers.com>
parents:
831
diff
changeset
|
180 """) |
06c510d40ebb
Add parse_nested_stencil
Jonatan Werpers <jonatan@werpers.com>
parents:
831
diff
changeset
|
181 |
06c510d40ebb
Add parse_nested_stencil
Jonatan Werpers <jonatan@werpers.com>
parents:
831
diff
changeset
|
182 @test parse_nested_stencil(toml["s1"]) == CenteredNestedStencil((1//2, 1//2, 0//1),( -1//2, -1//1, -1//2),(0//1, 1//2, 1//2)) |
06c510d40ebb
Add parse_nested_stencil
Jonatan Werpers <jonatan@werpers.com>
parents:
831
diff
changeset
|
183 @test parse_nested_stencil(toml["s2"]) == NestedStencil((2//1, -1//1, 0//1),( -3//1, 1//1, 0//1),(1//1, 0//1, 0//1), center = 1) |
06c510d40ebb
Add parse_nested_stencil
Jonatan Werpers <jonatan@werpers.com>
parents:
831
diff
changeset
|
184 @test parse_nested_stencil(toml["s3"]) == NestedStencil((2//1, -1//1, 0//1),( -3//1, 1//1, 0//1),(1//1, 0//1, 0//1), center = 2) |
895
d24b331547f3
Add method for controlling the element type when parsing nested stencils
Jonatan Werpers <jonatan@werpers.com>
parents:
892
diff
changeset
|
185 |
d24b331547f3
Add method for controlling the element type when parsing nested stencils
Jonatan Werpers <jonatan@werpers.com>
parents:
892
diff
changeset
|
186 @test parse_nested_stencil(Float64, toml["s1"]) == CenteredNestedStencil((1/2, 1/2, 0.),( -1/2, -1., -1/2),(0., 1/2, 1/2)) |
d24b331547f3
Add method for controlling the element type when parsing nested stencils
Jonatan Werpers <jonatan@werpers.com>
parents:
892
diff
changeset
|
187 @test parse_nested_stencil(Int, toml["s2"]) == NestedStencil((2, -1, 0),( -3, 1, 0),(1, 0, 0), center = 1) |
892
06c510d40ebb
Add parse_nested_stencil
Jonatan Werpers <jonatan@werpers.com>
parents:
831
diff
changeset
|
188 end |