diff --git a/src/util/util_test.go b/src/util/util_test.go index 20bdb92..ca12aa7 100644 --- a/src/util/util_test.go +++ b/src/util/util_test.go @@ -1,10 +1,72 @@ package util -import "testing" +import ( + "math" + "strings" + "testing" + "time" +) func TestMax(t *testing.T) { + if Max(10, 1) != 10 { + t.Error("Expected", 10) + } if Max(-2, 5) != 5 { - t.Error("Invalid result") + t.Error("Expected", 5) + } +} + +func TestMax16(t *testing.T) { + if Max16(10, 1) != 10 { + t.Error("Expected", 10) + } + if Max16(-2, 5) != 5 { + t.Error("Expected", 5) + } + if Max16(math.MaxInt16, 0) != math.MaxInt16 { + t.Error("Expected", math.MaxInt16) + } + if Max16(0, math.MinInt16) != 0 { + t.Error("Expected", 0) + } +} + +func TestMax32(t *testing.T) { + if Max32(10, 1) != 10 { + t.Error("Expected", 10) + } + if Max32(-2, 5) != 5 { + t.Error("Expected", 5) + } + if Max32(math.MaxInt32, 0) != math.MaxInt32 { + t.Error("Expected", math.MaxInt32) + } + if Max32(0, math.MinInt32) != 0 { + t.Error("Expected", 0) + } +} + +func TestMin(t *testing.T) { + if Min(10, 1) != 1 { + t.Error("Expected", 1) + } + if Min(-2, 5) != -2 { + t.Error("Expected", -2) + } +} + +func TestMin32(t *testing.T) { + if Min32(10, 1) != 1 { + t.Error("Expected", 1) + } + if Min32(-2, 5) != -2 { + t.Error("Expected", -2) + } + if Min32(math.MaxInt32, 0) != 0 { + t.Error("Expected", 0) + } + if Min32(0, math.MinInt32) != math.MinInt32 { + t.Error("Expected", math.MinInt32) } } @@ -21,6 +83,55 @@ func TestContrain(t *testing.T) { } } +func TestContrain32(t *testing.T) { + if Constrain32(-3, -1, 3) != -1 { + t.Error("Expected", -1) + } + if Constrain32(2, -1, 3) != 2 { + t.Error("Expected", 2) + } + + if Constrain32(5, -1, 3) != 3 { + t.Error("Expected", 3) + } + if Constrain32(0, math.MinInt32, math.MaxInt32) != 0 { + t.Error("Expected", 0) + } +} + +func TestAsUint16(t *testing.T) { + if AsUint16(5) != 5 { + t.Error("Expected", 5) + } + if AsUint16(-10) != 0 { + t.Error("Expected", 0) + } + if AsUint16(math.MaxUint16) != math.MaxUint16 { + t.Error("Expected", math.MaxUint16) + } + if AsUint16(math.MinInt32) != 0 { + t.Error("Expected", 0) + } + if AsUint16(math.MinInt16) != 0 { + t.Error("Expected", 0) + } + if AsUint16(math.MaxUint32) != math.MaxUint16 { + t.Error("Expected", math.MaxUint16) + } +} + +func TestDurWithIn(t *testing.T) { + if DurWithin(time.Duration(5), time.Duration(1), time.Duration(8)) != time.Duration(5) { + t.Error("Expected", time.Duration(0)) + } + if DurWithin(time.Duration(0)*time.Second, time.Second, time.Duration(3)*time.Second) != time.Second { + t.Error("Expected", time.Second) + } + if DurWithin(time.Duration(10)*time.Second, time.Duration(0), time.Second) != time.Second { + t.Error("Expected", time.Second) + } +} + func TestOnce(t *testing.T) { o := Once(false) if o() { @@ -64,3 +175,12 @@ func TestTruncate(t *testing.T) { t.Errorf("Expected: 6, actual: %d", width) } } + +func TestRepeatToFill(t *testing.T) { + if RepeatToFill("abcde", 10, 50) != strings.Repeat("abcde", 5) { + t.Error("Expected:", strings.Repeat("abcde", 5)) + } + if RepeatToFill("abcde", 10, 42) != strings.Repeat("abcde", 4)+"abcde"[:2] { + t.Error("Expected:", strings.Repeat("abcde", 4)+"abcde"[:2]) + } +}