v0.0.463 Fix SubtractYears
Some checks failed
Build Docker and Deploy / Run goext test-suite (push) Failing after 3m29s
Some checks failed
Build Docker and Deploy / Run goext test-suite (push) Failing after 3m29s
This commit is contained in:
@@ -156,7 +156,7 @@ func SubtractYears(t time.Time, yearCount float64, tz *time.Location) time.Time
|
||||
|
||||
intCount, floatCount := math.Modf(yearCount)
|
||||
|
||||
t.AddDate(-int(intCount), 0, 0)
|
||||
t = t.AddDate(-int(intCount), 0, 0)
|
||||
|
||||
t0 := TimeToYearStart(t, tz)
|
||||
t1 := TimeToYearEnd(t, tz)
|
||||
@@ -173,7 +173,7 @@ func AddYears(t time.Time, yearCount float64, tz *time.Location) time.Time {
|
||||
|
||||
intCount, floatCount := math.Modf(yearCount)
|
||||
|
||||
t.AddDate(int(intCount), 0, 0)
|
||||
t = t.AddDate(int(intCount), 0, 0)
|
||||
|
||||
t0 := TimeToYearStart(t, tz)
|
||||
t1 := TimeToYearEnd(t, tz)
|
||||
|
158
timeext/time_test.go
Normal file
158
timeext/time_test.go
Normal file
@@ -0,0 +1,158 @@
|
||||
package timeext
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestTimeToDayStart(t *testing.T) {
|
||||
tz := TimezoneBerlin
|
||||
tm := time.Date(2022, 1, 1, 13, 14, 15, 0, tz)
|
||||
expected := time.Date(2022, 1, 1, 0, 0, 0, 0, tz)
|
||||
result := TimeToDayStart(tm, tz)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTimeToDayEnd(t *testing.T) {
|
||||
tz := TimezoneBerlin
|
||||
tm := time.Date(2022, 1, 1, 13, 14, 15, 0, tz)
|
||||
expected := time.Date(2022, 1, 2, 0, 0, 0, 0, tz).Add(-1)
|
||||
result := TimeToDayEnd(tm, tz)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsSameDayIncludingDateBoundaries(t *testing.T) {
|
||||
tz := TimezoneBerlin
|
||||
t1 := time.Date(2022, 1, 1, 23, 59, 59, 0, tz)
|
||||
t2 := time.Date(2022, 1, 2, 0, 0, 0, 0, tz)
|
||||
if !IsSameDayIncludingDateBoundaries(t1, t2, tz) {
|
||||
t.Errorf("Expected %v and %v to be the same day", t1, t2)
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsDatePartEqual(t *testing.T) {
|
||||
tz := TimezoneBerlin
|
||||
t1 := time.Date(2022, 1, 1, 23, 59, 59, 0, tz)
|
||||
t2 := time.Date(2022, 1, 1, 0, 0, 0, 0, tz)
|
||||
if !IsDatePartEqual(t1, t2, tz) {
|
||||
t.Errorf("Expected %v and %v to have the same date part", t1, t2)
|
||||
}
|
||||
}
|
||||
|
||||
func TestWithTimePart(t *testing.T) {
|
||||
tz := TimezoneBerlin
|
||||
base := time.Date(2022, 1, 1, 0, 0, 0, 0, tz)
|
||||
expected := time.Date(2022, 1, 1, 13, 14, 15, 0, tz)
|
||||
result := WithTimePart(base, 13, 14, 15)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCombineDateAndTime(t *testing.T) {
|
||||
tz := TimezoneBerlin
|
||||
d := time.Date(2022, 1, 1, 0, 0, 0, 0, tz)
|
||||
tm := time.Date(0, 0, 0, 13, 14, 15, 0, tz)
|
||||
expected := time.Date(2022, 1, 1, 13, 14, 15, 0, tz)
|
||||
result := CombineDateAndTime(d, tm)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestIsSunday(t *testing.T) {
|
||||
tz := TimezoneBerlin
|
||||
tm := time.Date(2022, 1, 2, 0, 0, 0, 0, tz) // 2nd January 2022 is a Sunday
|
||||
if !IsSunday(tm, tz) {
|
||||
t.Errorf("Expected %v to be a Sunday", tm)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDurationFromTime(t *testing.T) {
|
||||
expected := time.Duration(13*time.Hour + 14*time.Minute + 15*time.Second)
|
||||
result := DurationFromTime(13, 14, 15)
|
||||
if result != expected {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMin(t *testing.T) {
|
||||
t1 := time.Date(2022, 1, 1, 0, 0, 0, 0, time.UTC)
|
||||
t2 := time.Date(2022, 1, 2, 0, 0, 0, 0, time.UTC)
|
||||
expected := t1
|
||||
result := Min(t1, t2)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMax(t *testing.T) {
|
||||
t1 := time.Date(2022, 1, 1, 0, 0, 0, 0, time.UTC)
|
||||
t2 := time.Date(2022, 1, 2, 0, 0, 0, 0, time.UTC)
|
||||
expected := t2
|
||||
result := Max(t1, t2)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestUnixFloatSeconds(t *testing.T) {
|
||||
v := 1640995200.0 // 1st January 2022 00:00:00 UTC in Unix timestamp
|
||||
expected := time.Date(2022, 1, 1, 0, 0, 0, 0, time.UTC)
|
||||
result := UnixFloatSeconds(v)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFloorTime(t *testing.T) {
|
||||
tm := time.Date(2022, 1, 1, 13, 14, 15, 0, time.UTC)
|
||||
expected := time.Date(2022, 1, 1, 0, 0, 0, 0, time.UTC)
|
||||
result := FloorTime(tm)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSubtractYears(t *testing.T) {
|
||||
tz := TimezoneBerlin
|
||||
tm := time.Date(2022, 1, 1, 0, 0, 0, 0, tz)
|
||||
|
||||
expected := time.Date(2021, 1, 1, 0, 0, 0, 0, tz)
|
||||
result := SubtractYears(tm, 1, tz)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
|
||||
expected = time.Date(2020, 1, 1, 0, 0, 0, 0, tz)
|
||||
result = SubtractYears(tm, 2, tz)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
|
||||
expected = time.Date(2019, 1, 1, 0, 0, 0, 0, tz)
|
||||
result = SubtractYears(tm, 3, tz)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
|
||||
expected = time.Date(2025, 1, 1, 0, 0, 0, 0, tz)
|
||||
result = SubtractYears(tm, -3, tz)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAddYears(t *testing.T) {
|
||||
tz := TimezoneBerlin
|
||||
tm := time.Date(2022, 1, 1, 0, 0, 0, 0, tz)
|
||||
expected := time.Date(2023, 1, 1, 0, 0, 0, 0, tz)
|
||||
result := AddYears(tm, 1, tz)
|
||||
if !result.Equal(expected) {
|
||||
t.Errorf("Expected %v but got %v", expected, result)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user