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))