From e460d357d48d121f55e8007d35f6848e9983cfac Mon Sep 17 00:00:00 2001 From: Jishnu Bhattacharya Date: Thu, 15 Feb 2024 21:25:51 +0530 Subject: [PATCH] Support `signbit(::Dates.Period)` (#51073) --- stdlib/Dates/src/periods.jl | 1 + stdlib/Dates/test/periods.jl | 3 +++ 2 files changed, 4 insertions(+) diff --git a/stdlib/Dates/src/periods.jl b/stdlib/Dates/src/periods.jl index c1d94d3d62321..c88a1bed4bba9 100644 --- a/stdlib/Dates/src/periods.jl +++ b/stdlib/Dates/src/periods.jl @@ -102,6 +102,7 @@ div(x::Period, y::Period, r::RoundingMode) = div(promote(x, y)..., r) Base.gcdx(a::T, b::T) where {T<:Period} = ((g, x, y) = gcdx(value(a), value(b)); return T(g), x, y) Base.abs(a::T) where {T<:Period} = T(abs(value(a))) Base.sign(x::Period) = sign(value(x)) +Base.signbit(x::Period) = signbit(value(x)) # return (next coarser period, conversion factor): coarserperiod(::Type{P}) where {P<:Period} = (P, 1) diff --git a/stdlib/Dates/test/periods.jl b/stdlib/Dates/test/periods.jl index 7cebfc55e7735..9c7d0deef8a11 100644 --- a/stdlib/Dates/test/periods.jl +++ b/stdlib/Dates/test/periods.jl @@ -30,6 +30,9 @@ using Test @test sign(t) == sign(t2) == 1 @test sign(-t) == sign(-t2) == -1 @test sign(Dates.Year(0)) == 0 + @test signbit(t) == signbit(t2) == false + @test signbit(-t) == signbit(-t2) == true + @test signbit(Dates.Year(0)) == false end @testset "div/mod/gcd/lcm/rem" begin @test Dates.Year(10) % Dates.Year(4) == Dates.Year(2)