annotate test/Grids/EquidistantGrid_test.jl @ 1092:c4ea28d904f5 refactor/grids

Fix grid indexing with CartesianIndex
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 27 Apr 2022 10:25:53 +0200
parents 9b40aeac4269
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
335
f4e3e71a4ff4 Fix `using` commands to refer to local modules within the Sbplib package/module
Jonatan Werpers <jonatan@werpers.com>
parents: 333
diff changeset
1 using Sbplib.Grids
213
0bf761485f40 Add test stub to package Grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 using Test
660
b21fea54ca10 Add tests for Grids.boundary_identifiers
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 407
diff changeset
3 using Sbplib.RegionIndices
213
0bf761485f40 Add test stub to package Grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4
338
2b0c9b30ea3b Add test sets for each submodule to make the test output nicer
Jonatan Werpers <jonatan@werpers.com>
parents: 335
diff changeset
5
324
047dee8efaef Grids.EquidistantGrid: Add constructor for 1d grid
Jonatan Werpers <jonatan@werpers.com>
parents: 217
diff changeset
6 @testset "EquidistantGrid" begin
353
8257cc75ea6b Add doc string and allow picking several dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 352
diff changeset
7 @test EquidistantGrid(4,0.0,1.0) isa EquidistantGrid
8257cc75ea6b Add doc string and allow picking several dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 352
diff changeset
8 @test EquidistantGrid(4,0.0,8.0) isa EquidistantGrid
405
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
9 # constuctor
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
10 @test_throws DomainError EquidistantGrid(0,0.0,1.0)
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
11 @test_throws DomainError EquidistantGrid(1,1.0,1.0)
406
c377fc37c04b Clean up EquidistantGrid and tests after deciding that side lengths must be positive.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 405
diff changeset
12 @test_throws DomainError EquidistantGrid(1,1.0,-1.0)
353
8257cc75ea6b Add doc string and allow picking several dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 352
diff changeset
13 @test EquidistantGrid(4,0.0,1.0) == EquidistantGrid((4,),(0.0,),(1.0,))
8257cc75ea6b Add doc string and allow picking several dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 352
diff changeset
14
688
e9e46a587370 Add eltype function to EquidistantGrids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 686
diff changeset
15 @testset "Base" begin
e9e46a587370 Add eltype function to EquidistantGrids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 686
diff changeset
16 @test eltype(EquidistantGrid(4,0.0,1.0)) == Float64
e9e46a587370 Add eltype function to EquidistantGrids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 686
diff changeset
17 @test eltype(EquidistantGrid((4,3),(0,0),(1,3))) == Int
e9e46a587370 Add eltype function to EquidistantGrids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 686
diff changeset
18 @test size(EquidistantGrid(4,0.0,1.0)) == (4,)
e9e46a587370 Add eltype function to EquidistantGrids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 686
diff changeset
19 @test size(EquidistantGrid((5,3), (0.0,0.0), (2.0,1.0))) == (5,3)
e9e46a587370 Add eltype function to EquidistantGrids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 686
diff changeset
20 end
405
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
21
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
22 # dimension
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
23 @test dimension(EquidistantGrid(4,0.0,1.0)) == 1
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
24 @test dimension(EquidistantGrid((5,3), (0.0,0.0), (2.0,1.0))) == 2
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
25
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
26 # spacing
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
27 @test [spacing(EquidistantGrid(4,0.0,1.0))...] ≈ [(1. /3,)...] atol=5e-13
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
28 @test [spacing(EquidistantGrid((5,3), (0.0,-1.0), (2.0,1.0)))...] ≈ [(0.5, 1.)...] atol=5e-13
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
29
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
30 # inverse_spacing
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
31 @test [inverse_spacing(EquidistantGrid(4,0.0,1.0))...] ≈ [(3.,)...] atol=5e-13
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
32 @test [inverse_spacing(EquidistantGrid((5,3), (0.0,-1.0), (2.0,1.0)))...] ≈ [(2, 1.)...] atol=5e-13
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
33
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
34 # points
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
35 g = EquidistantGrid((5,3), (-1.0,0.0), (0.0,7.11))
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
36 gp = points(g);
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
37 p = [(-1.,0.) (-1.,7.11/2) (-1.,7.11);
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
38 (-0.75,0.) (-0.75,7.11/2) (-0.75,7.11);
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
39 (-0.5,0.) (-0.5,7.11/2) (-0.5,7.11);
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
40 (-0.25,0.) (-0.25,7.11/2) (-0.25,7.11);
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
41 (0.,0.) (0.,7.11/2) (0.,7.11)]
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
42 for i ∈ eachindex(gp)
407
b7734413003d Simplify test
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 406
diff changeset
43 @test [gp[i]...] ≈ [p[i]...] atol=5e-13
405
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
44 end
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
45
1090
9b40aeac4269 Add getindex for grid
Jonatan Werpers <jonatan@werpers.com>
parents: 907
diff changeset
46
9b40aeac4269 Add getindex for grid
Jonatan Werpers <jonatan@werpers.com>
parents: 907
diff changeset
47 @testset "getindex" begin
9b40aeac4269 Add getindex for grid
Jonatan Werpers <jonatan@werpers.com>
parents: 907
diff changeset
48 g = EquidistantGrid((5,3), (-1.0,0.0), (0.0,7.11))
9b40aeac4269 Add getindex for grid
Jonatan Werpers <jonatan@werpers.com>
parents: 907
diff changeset
49 @test g[1,1] == (-1.0,0.0)
9b40aeac4269 Add getindex for grid
Jonatan Werpers <jonatan@werpers.com>
parents: 907
diff changeset
50 @test g[1,3] == (-1.0,7.11)
9b40aeac4269 Add getindex for grid
Jonatan Werpers <jonatan@werpers.com>
parents: 907
diff changeset
51 @test g[5,1] == (0.0,0.0)
9b40aeac4269 Add getindex for grid
Jonatan Werpers <jonatan@werpers.com>
parents: 907
diff changeset
52 @test g[5,3] == (0.0,7.11)
9b40aeac4269 Add getindex for grid
Jonatan Werpers <jonatan@werpers.com>
parents: 907
diff changeset
53
9b40aeac4269 Add getindex for grid
Jonatan Werpers <jonatan@werpers.com>
parents: 907
diff changeset
54 @test g[4,2] == (-0.25,7.11/2)
1092
c4ea28d904f5 Fix grid indexing with CartesianIndex
Jonatan Werpers <jonatan@werpers.com>
parents: 1090
diff changeset
55
c4ea28d904f5 Fix grid indexing with CartesianIndex
Jonatan Werpers <jonatan@werpers.com>
parents: 1090
diff changeset
56 @test g[CartesianIndex(1,3)] == (-1.0,7.11)
1090
9b40aeac4269 Add getindex for grid
Jonatan Werpers <jonatan@werpers.com>
parents: 907
diff changeset
57 end
9b40aeac4269 Add getindex for grid
Jonatan Werpers <jonatan@werpers.com>
parents: 907
diff changeset
58
405
16dc5b19843d Fix exception handling in constructor of EquidistantGrid and add a bunch of tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 358
diff changeset
59 # restrict
353
8257cc75ea6b Add doc string and allow picking several dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 352
diff changeset
60 g = EquidistantGrid((5,3), (0.0,0.0), (2.0,1.0))
358
64ad8ec0eae0 Change name from subgrid to restrict
Jonatan Werpers <jonatan@werpers.com>
parents: 353
diff changeset
61 @test restrict(g, 1) == EquidistantGrid(5,0.0,2.0)
64ad8ec0eae0 Change name from subgrid to restrict
Jonatan Werpers <jonatan@werpers.com>
parents: 353
diff changeset
62 @test restrict(g, 2) == EquidistantGrid(3,0.0,1.0)
352
a18bd337a280 Add function for getting a one dimensional grid for a given dimension from a equidistant grid
Jonatan Werpers <jonatan@werpers.com>
parents: 338
diff changeset
63
353
8257cc75ea6b Add doc string and allow picking several dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 352
diff changeset
64 g = EquidistantGrid((2,5,3), (0.0,0.0,0.0), (2.0,1.0,3.0))
358
64ad8ec0eae0 Change name from subgrid to restrict
Jonatan Werpers <jonatan@werpers.com>
parents: 353
diff changeset
65 @test restrict(g, 1) == EquidistantGrid(2,0.0,2.0)
64ad8ec0eae0 Change name from subgrid to restrict
Jonatan Werpers <jonatan@werpers.com>
parents: 353
diff changeset
66 @test restrict(g, 2) == EquidistantGrid(5,0.0,1.0)
64ad8ec0eae0 Change name from subgrid to restrict
Jonatan Werpers <jonatan@werpers.com>
parents: 353
diff changeset
67 @test restrict(g, 3) == EquidistantGrid(3,0.0,3.0)
64ad8ec0eae0 Change name from subgrid to restrict
Jonatan Werpers <jonatan@werpers.com>
parents: 353
diff changeset
68 @test restrict(g, 1:2) == EquidistantGrid((2,5),(0.0,0.0),(2.0,1.0))
64ad8ec0eae0 Change name from subgrid to restrict
Jonatan Werpers <jonatan@werpers.com>
parents: 353
diff changeset
69 @test restrict(g, 2:3) == EquidistantGrid((5,3),(0.0,0.0),(1.0,3.0))
64ad8ec0eae0 Change name from subgrid to restrict
Jonatan Werpers <jonatan@werpers.com>
parents: 353
diff changeset
70 @test restrict(g, [1,3]) == EquidistantGrid((2,3),(0.0,0.0),(2.0,3.0))
64ad8ec0eae0 Change name from subgrid to restrict
Jonatan Werpers <jonatan@werpers.com>
parents: 353
diff changeset
71 @test restrict(g, [2,1]) == EquidistantGrid((5,2),(0.0,0.0),(1.0,2.0))
660
b21fea54ca10 Add tests for Grids.boundary_identifiers
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 407
diff changeset
72
b21fea54ca10 Add tests for Grids.boundary_identifiers
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 407
diff changeset
73 @testset "boundary_identifiers" begin
b21fea54ca10 Add tests for Grids.boundary_identifiers
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 407
diff changeset
74 g = EquidistantGrid((2,5,3), (0.0,0.0,0.0), (2.0,1.0,3.0))
661
f0ceddeae993 Fix and test type stability of boundary_identifiers.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 660
diff changeset
75 bids = (CartesianBoundary{1,Lower}(),CartesianBoundary{1,Upper}(),
f0ceddeae993 Fix and test type stability of boundary_identifiers.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 660
diff changeset
76 CartesianBoundary{2,Lower}(),CartesianBoundary{2,Upper}(),
f0ceddeae993 Fix and test type stability of boundary_identifiers.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 660
diff changeset
77 CartesianBoundary{3,Lower}(),CartesianBoundary{3,Upper}())
f0ceddeae993 Fix and test type stability of boundary_identifiers.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 660
diff changeset
78 @test boundary_identifiers(g) == bids
f0ceddeae993 Fix and test type stability of boundary_identifiers.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 660
diff changeset
79 @inferred boundary_identifiers(g)
660
b21fea54ca10 Add tests for Grids.boundary_identifiers
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 407
diff changeset
80 end
680
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
81
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
82 @testset "boundary_grid" begin
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
83 @testset "1D" begin
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
84 g = EquidistantGrid(5,0.0,2.0)
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
85 (id_l, id_r) = boundary_identifiers(g)
686
27dcac8fb350 Fix type parameter for a 0-dimensional grid and update docs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 682
diff changeset
86 @test boundary_grid(g,id_l) == EquidistantGrid{Float64}()
27dcac8fb350 Fix type parameter for a 0-dimensional grid and update docs
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 682
diff changeset
87 @test boundary_grid(g,id_r) == EquidistantGrid{Float64}()
682
3ed922e95a35 Make boundary_grid throw if invalid boundary identifier is passed.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 680
diff changeset
88 @test_throws DomainError boundary_grid(g,CartesianBoundary{2,Lower}())
3ed922e95a35 Make boundary_grid throw if invalid boundary identifier is passed.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 680
diff changeset
89 @test_throws DomainError boundary_grid(g,CartesianBoundary{0,Lower}())
680
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
90 end
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
91 @testset "2D" begin
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
92 g = EquidistantGrid((5,3),(0.0,0.0),(1.0,3.0))
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
93 (id_w, id_e, id_s, id_n) = boundary_identifiers(g)
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
94 @test boundary_grid(g,id_w) == restrict(g,2)
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
95 @test boundary_grid(g,id_e) == restrict(g,2)
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
96 @test boundary_grid(g,id_s) == restrict(g,1)
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
97 @test boundary_grid(g,id_n) == restrict(g,1)
682
3ed922e95a35 Make boundary_grid throw if invalid boundary identifier is passed.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 680
diff changeset
98 @test_throws DomainError boundary_grid(g,CartesianBoundary{4,Lower}())
680
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
99 end
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
100 @testset "3D" begin
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
101 g = EquidistantGrid((2,5,3), (0.0,0.0,0.0), (2.0,1.0,3.0))
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
102 (id_w, id_e,
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
103 id_s, id_n,
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
104 id_t, id_b) = boundary_identifiers(g)
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
105 @test boundary_grid(g,id_w) == restrict(g,[2,3])
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
106 @test boundary_grid(g,id_e) == restrict(g,[2,3])
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
107 @test boundary_grid(g,id_s) == restrict(g,[1,3])
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
108 @test boundary_grid(g,id_n) == restrict(g,[1,3])
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
109 @test boundary_grid(g,id_t) == restrict(g,[1,2])
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
110 @test boundary_grid(g,id_b) == restrict(g,[1,2])
682
3ed922e95a35 Make boundary_grid throw if invalid boundary identifier is passed.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 680
diff changeset
111 @test_throws DomainError boundary_grid(g,CartesianBoundary{4,Lower}())
680
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
112 end
1d3e29ffc6c6 Add support for 0-dimensional grid, and add method boundary_grid
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 661
diff changeset
113 end
877
dd2ab001a7b6 Implement refine function, move exports to the top of the file, change location of constuctors.
Jonatan Werpers <jonatan@werpers.com>
parents: 716
diff changeset
114
dd2ab001a7b6 Implement refine function, move exports to the top of the file, change location of constuctors.
Jonatan Werpers <jonatan@werpers.com>
parents: 716
diff changeset
115 @testset "refine" begin
dd2ab001a7b6 Implement refine function, move exports to the top of the file, change location of constuctors.
Jonatan Werpers <jonatan@werpers.com>
parents: 716
diff changeset
116 @test refine(EquidistantGrid{Float64}(), 1) == EquidistantGrid{Float64}()
dd2ab001a7b6 Implement refine function, move exports to the top of the file, change location of constuctors.
Jonatan Werpers <jonatan@werpers.com>
parents: 716
diff changeset
117 @test refine(EquidistantGrid{Float64}(), 2) == EquidistantGrid{Float64}()
dd2ab001a7b6 Implement refine function, move exports to the top of the file, change location of constuctors.
Jonatan Werpers <jonatan@werpers.com>
parents: 716
diff changeset
118
dd2ab001a7b6 Implement refine function, move exports to the top of the file, change location of constuctors.
Jonatan Werpers <jonatan@werpers.com>
parents: 716
diff changeset
119 g = EquidistantGrid((10,5),(0.,1.),(2.,3.))
dd2ab001a7b6 Implement refine function, move exports to the top of the file, change location of constuctors.
Jonatan Werpers <jonatan@werpers.com>
parents: 716
diff changeset
120 @test refine(g, 1) == g
dd2ab001a7b6 Implement refine function, move exports to the top of the file, change location of constuctors.
Jonatan Werpers <jonatan@werpers.com>
parents: 716
diff changeset
121 @test refine(g, 2) == EquidistantGrid((19,9),(0.,1.),(2.,3.))
dd2ab001a7b6 Implement refine function, move exports to the top of the file, change location of constuctors.
Jonatan Werpers <jonatan@werpers.com>
parents: 716
diff changeset
122 @test refine(g, 3) == EquidistantGrid((28,13),(0.,1.),(2.,3.))
dd2ab001a7b6 Implement refine function, move exports to the top of the file, change location of constuctors.
Jonatan Werpers <jonatan@werpers.com>
parents: 716
diff changeset
123 end
907
e81b89ae17c4 Add coarsen()
Jonatan Werpers <jonatan@werpers.com>
parents: 877
diff changeset
124
e81b89ae17c4 Add coarsen()
Jonatan Werpers <jonatan@werpers.com>
parents: 877
diff changeset
125 @testset "coarsen" begin
e81b89ae17c4 Add coarsen()
Jonatan Werpers <jonatan@werpers.com>
parents: 877
diff changeset
126 @test coarsen(EquidistantGrid{Float64}(), 1) == EquidistantGrid{Float64}()
e81b89ae17c4 Add coarsen()
Jonatan Werpers <jonatan@werpers.com>
parents: 877
diff changeset
127 @test coarsen(EquidistantGrid{Float64}(), 2) == EquidistantGrid{Float64}()
e81b89ae17c4 Add coarsen()
Jonatan Werpers <jonatan@werpers.com>
parents: 877
diff changeset
128
e81b89ae17c4 Add coarsen()
Jonatan Werpers <jonatan@werpers.com>
parents: 877
diff changeset
129 g = EquidistantGrid((7,13),(0.,1.),(2.,3.))
e81b89ae17c4 Add coarsen()
Jonatan Werpers <jonatan@werpers.com>
parents: 877
diff changeset
130 @test coarsen(g, 1) == g
e81b89ae17c4 Add coarsen()
Jonatan Werpers <jonatan@werpers.com>
parents: 877
diff changeset
131 @test coarsen(g, 2) == EquidistantGrid((4,7),(0.,1.),(2.,3.))
e81b89ae17c4 Add coarsen()
Jonatan Werpers <jonatan@werpers.com>
parents: 877
diff changeset
132 @test coarsen(g, 3) == EquidistantGrid((3,5),(0.,1.),(2.,3.))
e81b89ae17c4 Add coarsen()
Jonatan Werpers <jonatan@werpers.com>
parents: 877
diff changeset
133
e81b89ae17c4 Add coarsen()
Jonatan Werpers <jonatan@werpers.com>
parents: 877
diff changeset
134 @test_throws DomainError(4, "Size minus 1 must be divisible by the ratio.") coarsen(g, 4) == EquidistantGrid((3,5),(0.,1.),(2.,3.))
e81b89ae17c4 Add coarsen()
Jonatan Werpers <jonatan@werpers.com>
parents: 877
diff changeset
135 end
324
047dee8efaef Grids.EquidistantGrid: Add constructor for 1d grid
Jonatan Werpers <jonatan@werpers.com>
parents: 217
diff changeset
136 end