mirror of
https://github.com/soypat/lneto.git
synced 2026-09-10 16:49:37 +00:00
restructure package, rename module/repo
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
package ntp
|
||||
|
||||
import (
|
||||
"encoding/binary"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestTimestamp(t *testing.T) {
|
||||
now := time.Now()
|
||||
nowp1 := now.Add(time.Second)
|
||||
t1, err := TimestampFromTime(now)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t2, _ := TimestampFromTime(nowp1)
|
||||
gotnow := t1.Time()
|
||||
if gotnow.Sub(now) > time.Microsecond {
|
||||
t.Fatalf("got %v, want %v", gotnow, now)
|
||||
}
|
||||
|
||||
d := t2.Sub(t1)
|
||||
if d != time.Second {
|
||||
t.Fatalf("expected 1s, got %s", d)
|
||||
}
|
||||
d = t1.Sub(t2)
|
||||
if d != -time.Second {
|
||||
t.Fatalf("expected -1s, got %s", d)
|
||||
}
|
||||
|
||||
var b [8]byte
|
||||
t1.Put(b[:])
|
||||
readback := binary.BigEndian.Uint64(b[:])
|
||||
t1got := TimestampFromUint64(readback)
|
||||
if t1got != t1 {
|
||||
t.Fatalf("got %v, want %v", t1got, t1)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTimestampOverflow(t *testing.T) {
|
||||
const tol = time.Microsecond
|
||||
var now = time.Now() // time.Date(2035, 2, 7, 6, 28, 16, 0, time.UTC)
|
||||
told, err := TimestampFromTime(baseTime)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
tmodern, err := TimestampFromTime(now)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
diff := tmodern.Sub(told)
|
||||
if diff < 0 {
|
||||
t.Fatalf("got %v, want positive", diff)
|
||||
}
|
||||
diffwant := now.Sub(baseTime)
|
||||
differr := (diff - diffwant).Abs()
|
||||
if differr > tol {
|
||||
t.Fatalf("got diff %v", differr)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user