You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.7 KiB
63 lines
1.7 KiB
package util |
|
|
|
import ( |
|
. "github.com/smartystreets/goconvey/convey" |
|
"testing" |
|
"time" |
|
) |
|
|
|
var periodTimeTest = [][]string{ |
|
// time, period, now, expected |
|
{"11:00:00", "1h", "10:00:00", "0000-01-01 11:00:00"}, |
|
{"11:00:00", "1m", "10:00:00", "0000-01-01 10:01:00"}, |
|
{"11:00:00", "1s", "10:00:00", "0000-01-01 10:00:01"}, |
|
|
|
{"11:00:00", "8h", "10:00:00", "0000-01-01 11:00:00"}, |
|
{"11:00:00", "12h", "10:00:00", "0000-01-01 11:00:00"}, |
|
{"11:00:00", "23h", "10:00:00", "0000-01-01 11:00:00"}, |
|
|
|
{"09:00:10", "1h", "10:00:00", "0000-01-01 10:00:10"}, |
|
{"09:00:10", "1m", "10:00:00", "0000-01-01 10:00:10"}, |
|
{"09:00:10", "1s", "10:00:00", "0000-01-01 10:00:00"}, |
|
|
|
{"09:00:10", "8h", "10:00:00", "0000-01-01 17:00:10"}, |
|
{"09:00:10", "12h", "10:00:00", "0000-01-01 21:00:10"}, |
|
{"09:00:10", "4h", "10:00:00", "0000-01-01 13:00:10"}, |
|
|
|
{"09:00:10", "24h", "10:00:00", "0000-01-02 09:00:10"}, |
|
{"09:00:10", "8h", "10:00:00", "0000-01-01 17:00:10"}, |
|
} |
|
|
|
func TestGetNextPeriodTime(t *testing.T) { |
|
Convey("test get period", t, func() { |
|
for i, v := range periodTimeTest { |
|
//needTime, _ := time.Parse("15:04:05", v[0]) |
|
period, _ := time.ParseDuration(v[1]) |
|
now, _ := time.Parse("15:04:05", v[2]) |
|
expected, _ := time.Parse("2006-01-02 15:04:05", v[3]) |
|
actual, err := GetNextPeriodTime(v[0], period, now) |
|
So(err, ShouldEqual, nil) |
|
t.Logf("[%d]actual:+%v, expected:+%v", i, actual, expected) |
|
So(actual.Equal(expected), ShouldEqual, true) |
|
} |
|
}) |
|
} |
|
|
|
func TestUnSetBit64(t *testing.T) { |
|
var ( |
|
testCase = [][]int64{ |
|
// attr, bit, result |
|
{1, 0, 0}, |
|
{2, 0, 2}, |
|
{2, 1, 0}, |
|
{3, 1, 1}, |
|
{3, 64, 3}, |
|
} |
|
) |
|
|
|
Convey("test for unset bit 64", t, func() { |
|
for _, v := range testCase { |
|
So(UnSetBit64(v[0], uint(v[1])), ShouldEqual, v[2]) |
|
} |
|
}) |
|
}
|
|
|