annotate test/Grids/equidistant_grid_test.jl @ 1276:75a65db29be1 refactor/grids

Minor clean up
author Jonatan Werpers <jonatan@werpers.com>
date Sun, 26 Feb 2023 17:09:35 +0100
parents 30729cba1095
children 4a0570f325ce
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
1146
31041ef8092a Specialize evalOn for EquidistantGrid to return a LazyArray
Jonatan Werpers <jonatan@werpers.com>
parents: 1144
diff changeset
4 using Sbplib.LazyTensors
213
0bf761485f40 Add test stub to package Grids
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5
338
2b0c9b30ea3b Add test sets for each submodule to make the test output nicer
Jonatan Werpers <jonatan@werpers.com>
parents: 335
diff changeset
6
324
047dee8efaef Grids.EquidistantGrid: Add constructor for 1d grid
Jonatan Werpers <jonatan@werpers.com>
parents: 217
diff changeset
7 @testset "EquidistantGrid" begin
1252
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
8 @test EquidistantGrid(0:0.1:10) isa EquidistantGrid
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
9 @test EquidistantGrid(range(0,1,length=10)) isa EquidistantGrid
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
10 @test EquidistantGrid(LinRange(0,1,11)) isa EquidistantGrid
353
8257cc75ea6b Add doc string and allow picking several dimensions
Jonatan Werpers <jonatan@werpers.com>
parents: 352
diff changeset
11
1259
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
12 @testset "Indexing Interface" begin
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
13 g = EquidistantGrid(0:0.1:10)
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
14 @test g[1] == 0.0
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
15 @test g[5] == 0.4
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
16 @test g[101] == 10.0
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
17
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
18 @test g[begin] == 0.0
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
19 @test g[end] == 10.0
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
20
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
21 @test all(eachindex(g) .== 1:101)
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
22 end
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
23
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
24 @testset "Iterator interface" begin
1252
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
25 @test eltype(EquidistantGrid(0:10)) == Int
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
26 @test eltype(EquidistantGrid(0:2:10)) == Int
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
27 @test eltype(EquidistantGrid(0:0.1:10)) == Float64
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
28 @test size(EquidistantGrid(0:10)) == (11,)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
29 @test size(EquidistantGrid(0:0.1:10)) == (101,)
1259
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
30
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
31 @test collect(EquidistantGrid(0:0.1:0.5)) == [0.0, 0.1, 0.2, 0.3, 0.4, 0.5]
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
32
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
33 @test Base.IteratorSize(EquidistantGrid{Float64, StepRange{Float64}}) == Base.HasShape{1}()
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
34 end
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
35
ee57bdb366e4 Reorganize some EquidistantGrid tests and add test for IteratorSize and eachindex
Jonatan Werpers <jonatan@werpers.com>
parents: 1255
diff changeset
36 @testset "Base" begin
1252
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
37 @test ndims(EquidistantGrid(0:10)) == 1
688
e9e46a587370 Add eltype function to EquidistantGrids
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 686
diff changeset
38 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
39
1125
b9c6b0d8f0fa Add testsets to existing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1116
diff changeset
40 @testset "spacing" begin
1252
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
41 @test spacing(EquidistantGrid(0:10)) == 1
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
42 @test spacing(EquidistantGrid(0:0.1:10)) == 0.1
1125
b9c6b0d8f0fa Add testsets to existing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1116
diff changeset
43 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
44
1125
b9c6b0d8f0fa Add testsets to existing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1116
diff changeset
45 @testset "inverse_spacing" begin
1252
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
46 @test inverse_spacing(EquidistantGrid(0:10)) == 1
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
47 @test inverse_spacing(EquidistantGrid(0:0.1:10)) == 10
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
48 end
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
49
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
50 @testset "boundary_identifiers" begin
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
51 g = EquidistantGrid(0:0.1:10)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
52 @test boundary_identifiers(g) == (Lower(), Upper())
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
53 @inferred boundary_identifiers(g)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
54 end
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
55
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
56 @testset "boundary_grid" begin
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
57 g = EquidistantGrid(0:0.1:1)
1261
a4834779cd6d Fix broken boundary_grid tests for equidistant grids
Jonatan Werpers <jonatan@werpers.com>
parents: 1259
diff changeset
58 @test boundary_grid(g, Lower()) == ZeroDimGrid(0.0) # TBD: Is fill necessary here? Why?
a4834779cd6d Fix broken boundary_grid tests for equidistant grids
Jonatan Werpers <jonatan@werpers.com>
parents: 1259
diff changeset
59 @test boundary_grid(g, Upper()) == ZeroDimGrid(1.0)
1252
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
60 end
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
61
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
62 @testset "refine" begin
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
63 g = EquidistantGrid(0:0.1:1)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
64 @test refine(g, 1) == g
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
65 @test refine(g, 2) == EquidistantGrid(0:0.05:1)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
66 @test refine(g, 3) == EquidistantGrid(0:(0.1/3):1)
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
67 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
68
1252
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
69 @testset "coarsen" begin
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
70 g = EquidistantGrid(0:1:10)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
71 @test coarsen(g, 1) == g
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
72 @test coarsen(g, 2) == EquidistantGrid(0:2:10)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
73
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
74 g = EquidistantGrid(0:0.1:1)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
75 @test coarsen(g, 1) == g
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
76 @test coarsen(g, 2) == EquidistantGrid(0:0.2:1)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
77
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
78 g = EquidistantGrid(0:10)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
79 @test coarsen(g, 1) == EquidistantGrid(0:1:10)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
80 @test coarsen(g, 2) == EquidistantGrid(0:2:10)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
81
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
82 @test_throws DomainError(3, "Size minus 1 must be divisible by the ratio.") coarsen(g, 3)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
83 end
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
84 end
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
85
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
86
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
87 @testset "equidistant_grid" begin
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
88 @test equidistant_grid(4,0.0,1.0) isa TensorGrid
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
89 @test equidistant_grid(4,0.0,8.0) isa TensorGrid
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
90 # constuctor
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
91 @test_throws DomainError equidistant_grid(0,0.0,1.0)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
92 @test_throws DomainError equidistant_grid(1,1.0,1.0)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
93 @test_throws DomainError equidistant_grid(1,1.0,-1.0)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
94 @test equidistant_grid(4,0.0,1.0) == equidistant_grid((4,),(0.0,),(1.0,))
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
95
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
96 @testset "Base" begin
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
97 @test eltype(equidistant_grid(4,0.0,1.0)) == Float64
1267
30729cba1095 Fix some broken tests in equidistant_grid_test.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 1261
diff changeset
98 @test eltype(equidistant_grid((4,3),(0,0),(1,3))) <: AbstractVector{Float64}
1252
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
99 @test size(equidistant_grid(4,0.0,1.0)) == (4,)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
100 @test size(equidistant_grid((5,3), (0.0,0.0), (2.0,1.0))) == (5,3)
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
101 @test ndims(equidistant_grid(4,0.0,1.0)) == 1
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
102 @test ndims(equidistant_grid((5,3), (0.0,0.0), (2.0,1.0))) == 2
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
103 end
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
104
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
105 @testset "getindex" begin
c150eabaf656 Fix or mark tests broken where needed
Jonatan Werpers <jonatan@werpers.com>
parents: 1146
diff changeset
106 g = equidistant_grid((5,3), (-1.0,0.0), (0.0,7.11))
1267
30729cba1095 Fix some broken tests in equidistant_grid_test.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 1261
diff changeset
107 gp = collect(g);
1125
b9c6b0d8f0fa Add testsets to existing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1116
diff changeset
108 p = [(-1.,0.) (-1.,7.11/2) (-1.,7.11);
b9c6b0d8f0fa Add testsets to existing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1116
diff changeset
109 (-0.75,0.) (-0.75,7.11/2) (-0.75,7.11);
b9c6b0d8f0fa Add testsets to existing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1116
diff changeset
110 (-0.5,0.) (-0.5,7.11/2) (-0.5,7.11);
b9c6b0d8f0fa Add testsets to existing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1116
diff changeset
111 (-0.25,0.) (-0.25,7.11/2) (-0.25,7.11);
b9c6b0d8f0fa Add testsets to existing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1116
diff changeset
112 (0.,0.) (0.,7.11/2) (0.,7.11)]
b9c6b0d8f0fa Add testsets to existing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1116
diff changeset
113 for i ∈ eachindex(gp)
1267
30729cba1095 Fix some broken tests in equidistant_grid_test.jl
Jonatan Werpers <jonatan@werpers.com>
parents: 1261
diff changeset
114 @test [gp[i]...] ≈ [p[i]...] atol=5e-13
1125
b9c6b0d8f0fa Add testsets to existing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1116
diff changeset
115 end
b9c6b0d8f0fa Add testsets to existing tests
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 1116
diff changeset
116 end
324
047dee8efaef Grids.EquidistantGrid: Add constructor for 1d grid
Jonatan Werpers <jonatan@werpers.com>
parents: 217
diff changeset
117 end
1276
75a65db29be1 Minor clean up
Jonatan Werpers <jonatan@werpers.com>
parents: 1267
diff changeset
118
75a65db29be1 Minor clean up
Jonatan Werpers <jonatan@werpers.com>
parents: 1267
diff changeset
119
75a65db29be1 Minor clean up
Jonatan Werpers <jonatan@werpers.com>
parents: 1267
diff changeset
120 @testset "change_length" begin
75a65db29be1 Minor clean up
Jonatan Werpers <jonatan@werpers.com>
parents: 1267
diff changeset
121 @test_broken false
75a65db29be1 Minor clean up
Jonatan Werpers <jonatan@werpers.com>
parents: 1267
diff changeset
122 end