Mercurial > repos > public > sbplib_julia
annotate test/SbpOperators/readoperator_test.jl @ 801:04e549669b10 operator_storage_array_of_table
Consider feedback
;)
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Sun, 25 Jul 2021 16:12:24 +0200 |
| parents | 0158c3fd521c |
| children | 219c9661e700 |
| 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 | 21 authors = "Ken Mattson" |
| 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 | 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 | 26 [[stencil_set]] |
| 27 | |
| 28 order = 2 | |
| 29 test = 2 | |
| 30 | |
|
728
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
31 H.inner = ["1"] |
| 769 | 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 | 36 {s = ["-1", "1"], c = 1}, |
| 37 ] | |
| 38 | |
| 39 D2.inner_stencil = ["1", "-2", "1"] | |
| 40 D2.closure_stencils = [ | |
| 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 | 44 e.closure = ["1"] |
| 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 | 47 [[stencil_set]] |
| 48 | |
| 49 order = 4 | |
| 50 test = 1 | |
| 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 | 56 {s = [ "2", "-5", "4", "-1", "0", "0"], c = 1}, |
| 57 {s = [ "1", "-2", "1", "0", "0", "0"], c = 2}, | |
| 58 {s = [ "-4/43", "59/43", "-110/43", "59/43", "-4/43", "0"], c = 3}, | |
| 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 | 61 |
| 62 e.closure = ["1"] | |
| 63 d1.closure = {s = ["-11/6", "3", "-3/2", "1/3"], c = 1} | |
| 64 | |
| 65 [[stencil_set]] | |
| 66 order = 4 | |
| 67 test = 2 | |
| 68 | |
| 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 | 74 @testset "get_stencil_set" begin |
| 75 @test get_stencil_set(parsed_toml; order = 2) isa Dict | |
| 76 @test get_stencil_set(parsed_toml; order = 2) == parsed_toml["stencil_set"][1] | |
| 77 @test get_stencil_set(parsed_toml; test = 1) == parsed_toml["stencil_set"][2] | |
| 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 | 80 @test_throws ArgumentError get_stencil_set(parsed_toml; test = 2) |
| 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 | 84 @testset "parse_stencil" begin |
| 85 toml = """ | |
| 86 s1 = ["-1/12","4/3","-5/2","4/3","-1/12"] | |
| 87 s2 = {s = ["2", "-5", "4", "-1", "0", "0"], c = 1} | |
| 88 s3 = {s = ["1", "-2", "1", "0", "0", "0"], c = 2} | |
| 89 s4 = "not a stencil" | |
| 90 s5 = [-1, 4, 3] | |
| 91 s6 = {k = ["1", "-2", "1", "0", "0", "0"], c = 2} | |
| 92 s7 = {s = [-1, 4, 3], c = 2} | |
| 93 s8 = {s = ["1", "-2", "1", "0", "0", "0"], c = [2,2]} | |
| 94 """ | |
|
728
45966c77cb20
Split tests for SbpOperators over several files
Jonatan Werpers <jonatan@werpers.com>
parents:
diff
changeset
|
95 |
| 769 | 96 @test parse_stencil(TOML.parse(toml)["s1"]) == CenteredStencil(-1/12, 4/3, -5/2, 4/3, -1/12) |
| 97 @test parse_stencil(TOML.parse(toml)["s2"]) == Stencil(2., -5., 4., -1., 0., 0.; center=1) | |
| 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 | 100 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s4"]) |
| 101 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s5"]) | |
| 102 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s6"]) | |
| 103 @test_throws ArgumentError parse_stencil(TOML.parse(toml)["s7"]) | |
| 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 | 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 | 108 @test parse_stencil.(stencil_set["D2"]["closure_stencils"]) == [ |
| 109 Stencil( 2., -5., 4., -1., 0., 0.; center=1), | |
| 110 Stencil( 1., -2., 1., 0., 0., 0.; center=2), | |
| 111 Stencil(-4/43, 59/43, -110/43, 59/43, -4/43, 0.; center=3), | |
| 112 Stencil(-1/49, 0., 59/49, -118/49, 64/49, -4/49; center=4), | |
| 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 |
