Skip to content

Commit

Permalink
fix and test Center DateTime
Browse files Browse the repository at this point in the history
  • Loading branch information
rafaqz committed Nov 5, 2024
1 parent 96da09e commit 6e2bd3d
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 6 deletions.
21 changes: 15 additions & 6 deletions src/Lookups/lookup_arrays.jl
Original file line number Diff line number Diff line change
Expand Up @@ -223,14 +223,23 @@ _bounds(::ReverseOrdered, ::Intervals, span::Explicit, ::AbstractSampled) =
(val(span)[1, end], val(span)[2, 1])
_bounds(::Intervals, span::Regular, lookup::AbstractSampled) =
_bounds(locus(lookup), order(lookup), span, lookup)
_bounds(::Start, ::ForwardOrdered, span, lookup) = first(lookup), last(lookup) + step(span)
_bounds(::Start, ::ReverseOrdered, span, lookup) = last(lookup), first(lookup) - step(span)
_bounds(::Center, ::ForwardOrdered, span, lookup) =
_bounds(::Start, ::ForwardOrdered, span::Regular, lookup) = first(lookup), last(lookup) + step(span)
_bounds(::Start, ::ReverseOrdered, span::Regular, lookup) = last(lookup), first(lookup) - step(span)
_bounds(::Center, ::ForwardOrdered, span::Regular, lookup) =
first(lookup) - step(span) / 2, last(lookup) + step(span) / 2
_bounds(::Center, ::ReverseOrdered, span, lookup) =
_bounds(::Center, ::ReverseOrdered, span::Regular, lookup) =
last(lookup) + step(span) / 2, first(lookup) - step(span) / 2
_bounds(::End, ::ForwardOrdered, span, lookup) = first(lookup) - step(span), last(lookup)
_bounds(::End, ::ReverseOrdered, span, lookup) = last(lookup) + step(span), first(lookup)
# DateTime handling
function _bounds(::Center, ::ForwardOrdered, span::Regular, lookup::Lookup{<:Dates.AbstractTime})
f, l, s = first(lookup), last(lookup), step(span)
(f - (f - (f - s)) / 2, l - (l - (l + s)) / 2)
end
function _bounds(::Center, ::ReverseOrdered, span::Regular, lookup::Lookup{<:Dates.AbstractTime})
f, l, s = first(lookup), last(lookup), step(span)
(l - (l - (l + s)) / 2, f - (f - (f - s)) / 2)
end
_bounds(::End, ::ForwardOrdered, span::Regular, lookup) = first(lookup) - step(span), last(lookup)
_bounds(::End, ::ReverseOrdered, span::Regular, lookup) = last(lookup) + step(span), first(lookup)


const SAMPLED_ARGUMENTS_DOC = """
Expand Down
13 changes: 13 additions & 0 deletions test/lookup.jl
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using DimensionalData, Test, Unitful
using Dates
using DimensionalData.Lookups, DimensionalData.Dimensions
using DimensionalData.Lookups: _slicespan, isrev, _bounds
using DimensionalData.Dimensions: _slicedims
Expand Down Expand Up @@ -112,6 +113,18 @@ end
@testset "bounds and intervalbounds" begin
@testset "Intervals" begin
@testset "Regular bounds are calculated from interval type and span value" begin
@testset "Forward Center DateTime" begin
ind = DateTime(2000):Month(1):DateTime(2000, 11)
dim = format(X(ind; sampling=Intervals(Center())))
@test bounds(dim) == (DateTime(1999, 12, 16, 12), DateTime(2000, 11, 16))
@test intervalbounds(dim, 3) == (DateTime(2000, 03, 15, 12), DateTime(2000, 02, 14, 12))
end
@testset "Reverse Center DateTime" begin
ind = DateTime(2000, 11):Month(-1):DateTime(2000, 1)
dim = format(X(ind; sampling=Intervals(Center())))
@test bounds(dim) == (DateTime(1999, 12, 16, 12), DateTime(2000, 11, 16))
@test intervalbounds(dim, 3) == (DateTime(2000, 09, 16, 12), DateTime(2000, 08, 17))
end
@testset "forward ind" begin
ind = 10.0:10.0:50.0
dim = X(Sampled(ind, order=ForwardOrdered(), sampling=Intervals(Start()), span=Regular(10.0)))
Expand Down

0 comments on commit 6e2bd3d

Please sign in to comment.