@@ -11,6 +11,7 @@ import (
1111 "os"
1212 "reflect"
1313 "testing"
14+ "time"
1415
1516 "github.com/superfly/ltx"
1617)
@@ -530,6 +531,44 @@ func TestParseTXID(t *testing.T) {
530531 })
531532}
532533
534+ func TestFormatTimestamp (t * testing.T ) {
535+ for _ , tt := range []struct {
536+ t time.Time
537+ want string
538+ }{
539+ {time .Date (2000 , 10 , 20 , 30 , 40 , 50 , 0 , time .UTC ), "2000-10-21T06:40:50.000Z" },
540+ {time .Date (2000 , 10 , 20 , 30 , 40 , 50 , 123000000 , time .UTC ), "2000-10-21T06:40:50.123Z" },
541+ {time .Date (2000 , 10 , 20 , 30 , 40 , 50 , 120000000 , time .UTC ), "2000-10-21T06:40:50.120Z" },
542+ {time .Date (2000 , 10 , 20 , 30 , 40 , 50 , 100000000 , time .UTC ), "2000-10-21T06:40:50.100Z" },
543+ {time .Date (2000 , 10 , 20 , 30 , 40 , 50 , 100000 , time .UTC ), "2000-10-21T06:40:50.000Z" }, // submillisecond
544+ } {
545+ if got := ltx .FormatTimestamp (tt .t ); got != tt .want {
546+ t .Fatalf ("got=%s, want %s" , got , tt .want )
547+ }
548+ }
549+ }
550+
551+ func TestParseTimestamp (t * testing.T ) {
552+ for _ , tt := range []struct {
553+ str string
554+ want time.Time
555+ }{
556+ {"2000-10-21T06:40:50.000Z" , time .Date (2000 , 10 , 20 , 30 , 40 , 50 , 0 , time .UTC )},
557+ {"2000-10-21T06:40:50.123Z" , time .Date (2000 , 10 , 20 , 30 , 40 , 50 , 123000000 , time .UTC )},
558+ {"2000-10-21T06:40:50.120Z" , time .Date (2000 , 10 , 20 , 30 , 40 , 50 , 120000000 , time .UTC )},
559+ {"2000-10-21T06:40:50.100Z" , time .Date (2000 , 10 , 20 , 30 , 40 , 50 , 100000000 , time .UTC )},
560+ {"2000-10-21T06:40:50Z" , time .Date (2000 , 10 , 20 , 30 , 40 , 50 , 0 , time .UTC )},
561+ {"2000-10-21T06:40:50.000123Z" , time .Date (2000 , 10 , 20 , 30 , 40 , 50 , 0 , time .UTC )},
562+ {"2000-10-21T06:40:50.000000123Z" , time .Date (2000 , 10 , 20 , 30 , 40 , 50 , 0 , time .UTC )},
563+ } {
564+ if got , err := ltx .ParseTimestamp (tt .str ); err != nil {
565+ t .Fatal (err )
566+ } else if ! got .Equal (tt .want ) {
567+ t .Fatalf ("got=%s, want %s" , got , tt .want )
568+ }
569+ }
570+ }
571+
533572func BenchmarkChecksumPage (b * testing.B ) {
534573 for _ , pageSize := range []int {512 , 1024 , 2048 , 4096 , 8192 , 16384 , 32768 , 65536 } {
535574 b .Run (fmt .Sprint (pageSize ), func (b * testing.B ) {
0 commit comments