restructure project, add claudemd
This commit is contained in:
86
go/chrono/chrono_test.go
Normal file
86
go/chrono/chrono_test.go
Normal file
@@ -0,0 +1,86 @@
|
||||
package chrono
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
// This tests the TimeElapsedToString function and the TimeSinceToString function that implements it
|
||||
func TestTimeElapsedToString(t *testing.T) {
|
||||
tests := []struct {
|
||||
startInput time.Time
|
||||
endInput time.Time
|
||||
expected string
|
||||
}{
|
||||
{time.Time{},
|
||||
time.Date(2025, time.June, 27, 11, 0, 0, 0, time.UTC),
|
||||
"Never"},
|
||||
{time.Date(2025, time.June, 27, 11, 0, 0, 0, time.UTC),
|
||||
time.Time{},
|
||||
"Never"},
|
||||
{time.Date(2025, time.June, 27, 11, 0, 0, 0, time.UTC),
|
||||
time.Date(2025, time.June, 27, 11, 0, 0, 999999999, time.UTC),
|
||||
"Just now"},
|
||||
{time.Date(2025, time.June, 27, 11, 0, 0, 0, time.UTC),
|
||||
time.Date(2025, time.June, 27, 11, 0, 0, 1, time.UTC),
|
||||
"Just now"},
|
||||
{time.Date(2025, time.June, 27, 11, 0, 0, 0, time.UTC),
|
||||
time.Date(2025, time.June, 27, 11, 1, 0, 1, time.UTC),
|
||||
"1 minute"},
|
||||
{time.Date(2025, time.June, 27, 11, 0, 0, 0, time.UTC),
|
||||
time.Date(2025, time.June, 27, 11, 3, 0, 1, time.UTC),
|
||||
"3 minutes"},
|
||||
{time.Date(2025, time.June, 27, 11, 0, 0, 0, time.UTC),
|
||||
time.Date(2025, time.June, 27, 12, 0, 0, 1, time.UTC),
|
||||
"1 hour"},
|
||||
{time.Date(2025, time.June, 27, 11, 0, 0, 0, time.UTC),
|
||||
time.Date(2025, time.June, 27, 13, 0, 0, 1, time.UTC),
|
||||
"2 hours"},
|
||||
{time.Date(2025, time.June, 27, 11, 0, 0, 0, time.UTC),
|
||||
time.Date(2025, time.June, 30, 11, 0, 0, 1, time.UTC),
|
||||
"3 days"},
|
||||
{time.Date(2025, time.January, 1, 0, 0, 0, 0, time.UTC),
|
||||
time.Date(2025, time.January, 8, 1, 0, 0, 1, time.UTC),
|
||||
"1 week"},
|
||||
{time.Date(2025, time.January, 1, 0, 0, 0, 0, time.UTC),
|
||||
time.Date(2025, time.January, 15, 1, 0, 0, 1, time.UTC),
|
||||
"2 weeks"},
|
||||
{time.Date(2025, time.January, 1, 0, 0, 0, 0, time.UTC),
|
||||
time.Date(2025, time.February, 7, 0, 0, 0, 1, time.UTC),
|
||||
"1 month"},
|
||||
{time.Date(2025, time.January, 1, 0, 0, 0, 0, time.UTC),
|
||||
time.Date(2025, time.March, 15, 0, 0, 0, 1, time.UTC),
|
||||
"2 months"},
|
||||
{time.Date(2025, time.January, 1, 0, 0, 0, 0, time.UTC),
|
||||
time.Date(2026, time.January, 1, 0, 0, 0, 1, time.UTC),
|
||||
"1 year"},
|
||||
{time.Date(2020, time.January, 1, 0, 0, 0, 0, time.UTC),
|
||||
time.Date(2025, time.January, 1, 0, 0, 0, 1, time.UTC),
|
||||
"5 years"},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
result := TimeElapsedToString(tt.startInput, tt.endInput, "UTC")
|
||||
if result != tt.expected {
|
||||
t.Errorf("TimeElapsedToString(%q, %q, \"UTC\") = %q; want %q", tt.startInput, tt.endInput, result, tt.expected)
|
||||
}
|
||||
}
|
||||
|
||||
sinceTests := []struct {
|
||||
timeInput time.Time
|
||||
expected string
|
||||
}{
|
||||
{time.Now().Add(-1 * time.Minute), "1 minute ago"},
|
||||
{time.Now().Add(-2 * time.Hour), "2 hours ago"},
|
||||
{time.Now().Add(-3 * time.Hour * 24), "3 days ago"},
|
||||
{time.Now(), "Just now"},
|
||||
{time.Now().Add(-5 * 7 * 24 * time.Hour), "1 month ago"},
|
||||
}
|
||||
|
||||
for _, tt := range sinceTests {
|
||||
result := TimeSinceToString(tt.timeInput, "UTC")
|
||||
if result != tt.expected {
|
||||
t.Errorf("TimeSinceToString(%q, \"UTC\") = %q; want %q", tt.timeInput, result, tt.expected)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user