diff --git a/src/indexing.jl b/src/indexing.jl index 95956ea..432d9d3 100644 --- a/src/indexing.jl +++ b/src/indexing.jl @@ -1,6 +1,6 @@ nodeselect(ns, i, I...) = ns[i][I...] -nodeselect(ns::Tuple, i, I...) = i == 1 ? first(ns)[I...] : nodeselect(Base.tail(ns), i - 1, I...) -nodeselect(ns::Tuple{}, i, I...) = throw(BoundsError(ns, i)) +nodeselect(ns::Tuple, i::Integer, I...) = i == 1 ? first(ns)[I...] : nodeselect(Base.tail(ns), i - 1, I...) +nodeselect(ns::Tuple{}, i::Integer, I...) = throw(BoundsError(ns, i)) nodechild(ns, i, j) = ns[i].nodes[j] function bisect_search(a, i) diff --git a/test/tuple_nodes.jl b/test/tuple_nodes.jl index a23d788..76e2d66 100644 --- a/test/tuple_nodes.jl +++ b/test/tuple_nodes.jl @@ -51,6 +51,10 @@ scenario = construct(Scenario, (deepcopy(community),)) @inferred getindex(community, 4) @inferred getindex(scenario, 8) +@test isempty(plant1.values) && isempty(scenario.values) +@test plant1[CartesianIndex(2), 1, 1] == plant1[2, 1, 1] == 4.1 +@test scenario[CartesianIndex(1), 1, 1] === scenario[1, 1, 1] + @test scenario[1] == 1.1 @test scenario[2] == 2.1 @test scenario[3] == 3.1