time_context_test.go (1747B)
1 package main 2 3 import ( 4 "testing" 5 "time" 6 ) 7 8 func TestParseArg(t *testing.T) { 9 layout := "15:4:5 2/1/2006" 10 context, _ := time.Parse(layout, "1:1:1 1/1/2001") 11 var check = func(raw string, expected string) { 12 t.Helper() 13 t.Run("", func(b *testing.T) { 14 b.Helper() 15 tmeTime := NewTime(context) 16 expected, _ := time.Parse(layout, expected) 17 parsed, err := tmeTime.ParseArgDir(raw, false) 18 if err != nil { 19 b.Fatal(err) 20 } 21 22 if !parsed.Equal(expected) { 23 b.Errorf("Parsed %v; Expected %v", parsed, expected) 24 } 25 }) 26 } 27 28 check("5", "5:0:0 1/1/2001") 29 check("5:5", "5:5:0 1/1/2001") 30 check("5:5:5", "5:5:5 1/1/2001") 31 check("5:5 5", "5:5:0 5/1/2001") 32 check("5:5 5/5", "5:5:0 5/5/2001") 33 check("5:5 5/5/2005", "5:5:0 5/5/2005") 34 35 check("5/5", "0:0:0 5/5/2001") 36 check("5/5/2005", "0:0:0 5/5/2005") 37 check("5/2005", "0:0:0 1/5/2005") 38 39 check("5:05", "5:5:0 1/1/2001") 40 check("05:05", "5:5:0 1/1/2001") 41 check("05:5 05/5/2005", "5:5:0 5/5/2005") 42 check("5:5 5/05/2005", "5:5:0 5/5/2005") 43 check("5:05 5/05/2005", "5:5:0 5/5/2005") 44 } 45 46 func TestParseRelative(t *testing.T) { 47 layout := "15:4:5 2/1/2006" 48 context, _ := time.Parse(layout, "1:1:1 1/1/2001") 49 var check = func(raw string, rel string, expected string) { 50 t.Helper() 51 t.Run("", func(b *testing.T) { 52 b.Helper() 53 tmeTime := NewTime(context) 54 expected, _ := time.Parse(layout, expected) 55 56 start, err := tmeTime.ParseArgDir(raw, false) 57 if err != nil { 58 b.Fatal(err) 59 } 60 61 parsed, err := tmeTime.ParseArgRelative(start, rel) 62 if err != nil { 63 b.Fatal(err) 64 } 65 66 if !parsed.Equal(expected) { 67 b.Errorf("Parsed %v; Expected %v", parsed, expected) 68 } 69 }) 70 } 71 72 check("5", "+1h", "6:0:0 1/1/2001") 73 check("5:5:5", "+1h5m", "6:10:5 1/1/2001") 74 }