Fix TestTimeFormat.

This commit is contained in:
Nuno Cruces
2024-05-03 18:08:41 +01:00
parent 19209b372c
commit d84152dd8d

View File

@@ -44,7 +44,8 @@ func TestTimeFormat_Encode(t *testing.T) {
func TestTimeFormat_Decode(t *testing.T) {
t.Parallel()
zone := time.FixedZone("", -4*3600)
const offset = -4 * 3600
zone := time.FixedZone("", offset)
reference := time.Date(2013, 10, 7, 4, 23, 19, 120_000_000, zone)
refnodate := time.Date(2000, 01, 1, 4, 23, 19, 120_000_000, zone)
@@ -53,63 +54,63 @@ func TestTimeFormat_Decode(t *testing.T) {
val any
want time.Time
wantDelta time.Duration
wantLoc *time.Location
wantOff int
wantErr bool
}{
{sqlite3.TimeFormatJulianDay, "2456572.849526851851852", reference, 0, time.UTC, false},
{sqlite3.TimeFormatJulianDay, 2456572.849526851851852, reference, time.Millisecond, time.UTC, false},
{sqlite3.TimeFormatJulianDay, int64(2456572), reference, 24 * time.Hour, time.UTC, false},
{sqlite3.TimeFormatJulianDay, false, time.Time{}, 0, nil, true},
{sqlite3.TimeFormatJulianDay, "2456572.849526851851852", reference, 0, 0, false},
{sqlite3.TimeFormatJulianDay, 2456572.849526851851852, reference, time.Millisecond, 0, false},
{sqlite3.TimeFormatJulianDay, int64(2456572), reference, 24 * time.Hour, 0, false},
{sqlite3.TimeFormatJulianDay, false, time.Time{}, 0, 0, true},
{sqlite3.TimeFormatUnix, "1381134199.120", reference, time.Microsecond, time.UTC, false},
{sqlite3.TimeFormatUnix, 1381134199.120, reference, time.Microsecond, time.UTC, false},
{sqlite3.TimeFormatUnix, int64(1381134199), reference, time.Second, time.UTC, false},
{sqlite3.TimeFormatUnix, "abc", time.Time{}, 0, nil, true},
{sqlite3.TimeFormatUnix, false, time.Time{}, 0, nil, true},
{sqlite3.TimeFormatUnix, "1381134199.120", reference, time.Microsecond, 0, false},
{sqlite3.TimeFormatUnix, 1381134199.120, reference, time.Microsecond, 0, false},
{sqlite3.TimeFormatUnix, int64(1381134199), reference, time.Second, 0, false},
{sqlite3.TimeFormatUnix, "abc", time.Time{}, 0, 0, true},
{sqlite3.TimeFormatUnix, false, time.Time{}, 0, 0, true},
{sqlite3.TimeFormatUnixMilli, "1381134199120", reference, 0, time.UTC, false},
{sqlite3.TimeFormatUnixMilli, 1381134199.120e3, reference, 0, time.UTC, false},
{sqlite3.TimeFormatUnixMilli, int64(1381134199_120), reference, 0, time.UTC, false},
{sqlite3.TimeFormatUnixMilli, "abc", time.Time{}, 0, nil, true},
{sqlite3.TimeFormatUnixMilli, false, time.Time{}, 0, nil, true},
{sqlite3.TimeFormatUnixMilli, "1381134199120", reference, 0, 0, false},
{sqlite3.TimeFormatUnixMilli, 1381134199.120e3, reference, 0, 0, false},
{sqlite3.TimeFormatUnixMilli, int64(1381134199_120), reference, 0, 0, false},
{sqlite3.TimeFormatUnixMilli, "abc", time.Time{}, 0, 0, true},
{sqlite3.TimeFormatUnixMilli, false, time.Time{}, 0, 0, true},
{sqlite3.TimeFormatUnixMicro, "1381134199120000", reference, 0, time.UTC, false},
{sqlite3.TimeFormatUnixMicro, 1381134199.120e6, reference, 0, time.UTC, false},
{sqlite3.TimeFormatUnixMicro, int64(1381134199_120000), reference, 0, time.UTC, false},
{sqlite3.TimeFormatUnixMicro, "abc", time.Time{}, 0, nil, true},
{sqlite3.TimeFormatUnixMicro, false, time.Time{}, 0, nil, true},
{sqlite3.TimeFormatUnixMicro, "1381134199120000", reference, 0, 0, false},
{sqlite3.TimeFormatUnixMicro, 1381134199.120e6, reference, 0, 0, false},
{sqlite3.TimeFormatUnixMicro, int64(1381134199_120000), reference, 0, 0, false},
{sqlite3.TimeFormatUnixMicro, "abc", time.Time{}, 0, 0, true},
{sqlite3.TimeFormatUnixMicro, false, time.Time{}, 0, 0, true},
{sqlite3.TimeFormatUnixNano, "1381134199120000000", reference, 0, time.UTC, false},
{sqlite3.TimeFormatUnixNano, 1381134199.120e9, reference, 0, time.UTC, false},
{sqlite3.TimeFormatUnixNano, int64(1381134199_120000000), reference, 0, time.UTC, false},
{sqlite3.TimeFormatUnixNano, "abc", time.Time{}, 0, nil, true},
{sqlite3.TimeFormatUnixNano, false, time.Time{}, 0, nil, true},
{sqlite3.TimeFormatUnixNano, "1381134199120000000", reference, 0, 0, false},
{sqlite3.TimeFormatUnixNano, 1381134199.120e9, reference, 0, 0, false},
{sqlite3.TimeFormatUnixNano, int64(1381134199_120000000), reference, 0, 0, false},
{sqlite3.TimeFormatUnixNano, "abc", time.Time{}, 0, 0, true},
{sqlite3.TimeFormatUnixNano, false, time.Time{}, 0, 0, true},
{sqlite3.TimeFormatAuto, "2456572.849526851851852", reference, time.Millisecond, time.UTC, false},
{sqlite3.TimeFormatAuto, "2456572", reference, 24 * time.Hour, time.UTC, false},
{sqlite3.TimeFormatAuto, "1381134199.120", reference, time.Microsecond, time.UTC, false},
{sqlite3.TimeFormatAuto, "1381134199.120e3", reference, time.Microsecond, time.UTC, false},
{sqlite3.TimeFormatAuto, "1381134199.120e6", reference, time.Microsecond, time.UTC, false},
{sqlite3.TimeFormatAuto, "1381134199.120e9", reference, time.Microsecond, time.UTC, false},
{sqlite3.TimeFormatAuto, "1381134199", reference, time.Second, time.UTC, false},
{sqlite3.TimeFormatAuto, "1381134199120", reference, 0, time.UTC, false},
{sqlite3.TimeFormatAuto, "1381134199120000", reference, 0, time.UTC, false},
{sqlite3.TimeFormatAuto, "1381134199120000000", reference, 0, time.UTC, false},
{sqlite3.TimeFormatAuto, "2013-10-07 04:23:19.12-04:00", reference, 0, zone, false},
{sqlite3.TimeFormatAuto, "04:23:19.12-04:00", refnodate, 0, zone, false},
{sqlite3.TimeFormatAuto, "abc", time.Time{}, 0, nil, true},
{sqlite3.TimeFormatAuto, false, time.Time{}, 0, nil, true},
{sqlite3.TimeFormatAuto, "2456572.849526851851852", reference, time.Millisecond, 0, false},
{sqlite3.TimeFormatAuto, "2456572", reference, 24 * time.Hour, 0, false},
{sqlite3.TimeFormatAuto, "1381134199.120", reference, time.Microsecond, 0, false},
{sqlite3.TimeFormatAuto, "1381134199.120e3", reference, time.Microsecond, 0, false},
{sqlite3.TimeFormatAuto, "1381134199.120e6", reference, time.Microsecond, 0, false},
{sqlite3.TimeFormatAuto, "1381134199.120e9", reference, time.Microsecond, 0, false},
{sqlite3.TimeFormatAuto, "1381134199", reference, time.Second, 0, false},
{sqlite3.TimeFormatAuto, "1381134199120", reference, 0, 0, false},
{sqlite3.TimeFormatAuto, "1381134199120000", reference, 0, 0, false},
{sqlite3.TimeFormatAuto, "1381134199120000000", reference, 0, 0, false},
{sqlite3.TimeFormatAuto, "2013-10-07 04:23:19.12-04:00", reference, 0, offset, false},
{sqlite3.TimeFormatAuto, "04:23:19.12-04:00", refnodate, 0, offset, false},
{sqlite3.TimeFormatAuto, "abc", time.Time{}, 0, 0, true},
{sqlite3.TimeFormatAuto, false, time.Time{}, 0, 0, true},
{sqlite3.TimeFormat3, "2013-10-07 04:23:19.12-04:00", reference, 0, zone, false},
{sqlite3.TimeFormat3, "2013-10-07 08:23:19.12", reference, 0, time.UTC, false},
{sqlite3.TimeFormat9, "04:23:19.12-04:00", refnodate, 0, zone, false},
{sqlite3.TimeFormat9, "08:23:19.12", refnodate, 0, time.UTC, false},
{sqlite3.TimeFormat3, false, time.Time{}, 0, nil, true},
{sqlite3.TimeFormat9, false, time.Time{}, 0, nil, true},
{sqlite3.TimeFormat3, "2013-10-07 04:23:19.12-04:00", reference, 0, offset, false},
{sqlite3.TimeFormat3, "2013-10-07 08:23:19.12", reference, 0, 0, false},
{sqlite3.TimeFormat9, "04:23:19.12-04:00", refnodate, 0, offset, false},
{sqlite3.TimeFormat9, "08:23:19.12", refnodate, 0, 0, false},
{sqlite3.TimeFormat3, false, time.Time{}, 0, 0, true},
{sqlite3.TimeFormat9, false, time.Time{}, 0, 0, true},
{sqlite3.TimeFormatDefault, "2013-10-07T04:23:19.12-04:00", reference, 0, zone, false},
{sqlite3.TimeFormatDefault, "2013-10-07T08:23:19.12Z", reference, 0, time.UTC, false},
{sqlite3.TimeFormatDefault, false, time.Time{}, 0, nil, true},
{sqlite3.TimeFormatDefault, "2013-10-07T04:23:19.12-04:00", reference, 0, offset, false},
{sqlite3.TimeFormatDefault, "2013-10-07T08:23:19.12Z", reference, 0, 0, false},
{sqlite3.TimeFormatDefault, false, time.Time{}, 0, 0, true},
}
for _, tt := range tests {
@@ -122,8 +123,8 @@ func TestTimeFormat_Decode(t *testing.T) {
if got.Sub(tt.want).Abs() > tt.wantDelta {
t.Errorf("%q.Decode(%v) = %v, want %v", tt.fmt, tt.val, got, tt.want)
}
if got.Location().String() != tt.wantLoc.String() {
t.Errorf("%q.Decode(%v) = %v, want %v", tt.fmt, tt.val, got.Location(), tt.wantLoc)
if _, off := got.Zone(); off != tt.wantOff {
t.Errorf("%q.Decode(%v) = %v, want %v", tt.fmt, tt.val, off, tt.wantOff)
}
})
}