Mercurial > repos > public > sbplib_julia
changeset 1848:a4c9966f7d34
Merge feature/grids/tensor_grid/spacing
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Fri, 10 Jan 2025 20:22:04 +0100 |
parents | 63967c9d2170 (current diff) 477ef2955e43 (diff) |
children | 1a8d80a62056 a12708e48499 |
files | |
diffstat | 2 files changed, 25 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/Grids/tensor_grid.jl Thu Jan 09 12:28:06 2025 +0100 +++ b/src/Grids/tensor_grid.jl Fri Jan 10 20:22:04 2025 +0100 @@ -47,6 +47,10 @@ Base.size(g::TensorGrid) = LazyTensors.concatenate_tuples(size.(g.grids)...) Base.size(g::TensorGrid, d) = size(g)[d] +function spacing(g::TensorGrid) + relevant_grids = filter(g->!isa(g,ZeroDimGrid),g.grids) + return spacing.(relevant_grids) +end function min_spacing(g::TensorGrid) relevant_grids = filter(g->!isa(g,ZeroDimGrid),g.grids)
--- a/test/Grids/tensor_grid_test.jl Thu Jan 09 12:28:06 2025 +0100 +++ b/test/Grids/tensor_grid_test.jl Fri Jan 10 20:22:04 2025 +0100 @@ -137,6 +137,27 @@ @test axes(g) == (1:11,1:6) end + @testset "spacing" begin + g₁ = EquidistantGrid(range(0,1,length=11)) + g₂ = EquidistantGrid(range(2,3,length=6)) + g₃ = ZeroDimGrid(@SVector[1,2]) + + @test spacing(TensorGrid(g₁)) == (1/10,) + @test spacing(TensorGrid(g₂)) == (1/5,) + + @test spacing(TensorGrid(g₁, g₂)) == (1/10, 1/5) + + @test spacing(TensorGrid(g₁, g₃)) == (1/10,) + @test spacing(TensorGrid(g₃, g₂)) == (1/5,) + + + @test spacing(TensorGrid(g₁, g₂, g₁)) == (1/10, 1/5, 1/10) + + @test spacing(TensorGrid(g₃, g₂, g₁)) == (1/5, 1/10) + @test spacing(TensorGrid(g₁, g₃, g₁)) == (1/10, 1/10) + @test spacing(TensorGrid(g₁, g₂, g₃)) == (1/10, 1/5) + end + @testset "min_spacing" begin g₁ = EquidistantGrid(range(0,1,length=11)) g₂ = EquidistantGrid(range(2,3,length=6))