Mercurial > repos > public > sbplib_julia
changeset 1260:8b9a77d2dc91 refactor/grids
Add tests and make them pass for ZeroDimGrid
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Thu, 23 Feb 2023 12:22:18 +0100 |
parents | ee57bdb366e4 |
children | a4834779cd6d |
files | src/Grids/zero_dim_grid.jl test/Grids/zero_dim_grid_test.jl test/Manifest.toml test/Project.toml |
diffstat | 4 files changed, 51 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Grids/zero_dim_grid.jl Thu Feb 23 12:22:00 2023 +0100 +++ b/src/Grids/zero_dim_grid.jl Thu Feb 23 12:22:18 2023 +0100 @@ -1,18 +1,20 @@ -struct ZeroDimGrid{T,S} <: Grid{T,0} - p::S - - function ZeroDimGrid(p) - T = eltype(p) - S = typeof(p) - return new{T,S}(p) - end +""" + ZeroDimGrid{T} <: Grid{T,0} +# TODO +""" +struct ZeroDimGrid{T} <: Grid{T,0} + point::T end -Base.size(g::ZeroDimGrid) = () -Base.getindex(g::ZeroDimGrid) = g.p +# # Indexing interface +Base.getindex(g::ZeroDimGrid) = g.point Base.eachindex(g::ZeroDimGrid) = CartesianIndices(()) -# Indexing interface -# TODO -# Iteration interface -# TODO +# # Iteration interface +Base.iterate(g::ZeroDimGrid) = (g.point, nothing) +Base.iterate(g::ZeroDimGrid, ::Any) = nothing + +Base.IteratorSize(::Type{ZeroDimGrid{T}}) where T = Base.HasShape{0}() +Base.eltype(::Type{ZeroDimGrid{T}}) where T = T +Base.length(g::ZeroDimGrid) = 1 +Base.size(g::ZeroDimGrid) = ()
--- a/test/Grids/zero_dim_grid_test.jl Thu Feb 23 12:22:00 2023 +0100 +++ b/test/Grids/zero_dim_grid_test.jl Thu Feb 23 12:22:18 2023 +0100 @@ -1,6 +1,26 @@ +using Test using Sbplib.Grids -using Test +using StaticArrays @testset "ZeroDimGrid" begin - @test_broken false + @test ZeroDimGrid(1) isa ZeroDimGrid{Int} + @test ZeroDimGrid([1,2,3]) isa ZeroDimGrid{Vector{Int}} + @test ZeroDimGrid(@SVector[1.0,2.0]) isa ZeroDimGrid{SVector{2,Float64}} + + @testset "Indexing Interface" begin + g = ZeroDimGrid(@SVector[1,2]) + + @test g[] == [1,2] + @test eachindex(g) == CartesianIndices(()) + end + + @testset "Iterator interface" begin + g = ZeroDimGrid(@SVector[1,2]) + + @test Base.IteratorSize(g) == Base.HasShape{0}() + @test eltype(g) == SVector{2,Int} + @test length(g) == 1 + @test size(g) == () + @test collect(g) == fill(@SVector[1,2]) + end end
--- a/test/Manifest.toml Thu Feb 23 12:22:00 2023 +0100 +++ b/test/Manifest.toml Thu Feb 23 12:22:18 2023 +0100 @@ -2,7 +2,7 @@ julia_version = "1.8.5" manifest_format = "2.0" -project_hash = "23260eda65ade7d11fffed313a68520d0bc053fc" +project_hash = "f2b0634c12bbed93a17efc88d466604d5a07c465" [[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" @@ -250,6 +250,17 @@ uuid = "276daf66-3868-5448-9aa4-cd146d93841b" version = "2.1.7" +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"] +git-tree-sha1 = "2d7d9e1ddadc8407ffd460e24218e37ef52dd9a3" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.5.16" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "6b7ba252635a5eff6a0b0664a41ee140a1c9e72a" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.0" + [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
--- a/test/Project.toml Thu Feb 23 12:22:00 2023 +0100 +++ b/test/Project.toml Thu Feb 23 12:22:18 2023 +0100 @@ -2,6 +2,7 @@ BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" Glob = "c27321d9-0574-5035-807b-f59d2c89b15c" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" TOML = "fa267f1f-6049-4f14-aa54-33bafae1ed76" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" TestSetExtensions = "98d24dd4-01ad-11ea-1b02-c9a08f80db04"