summaryrefslogtreecommitdiffstats
path: root/src/util
diff options
context:
space:
mode:
authorOHZEKI Naoki <0h23k1.n40k1@gmail.com>2022-11-27 16:30:59 +0900
committerGitHub <noreply@github.com>2022-11-27 16:30:59 +0900
commit6b7a543c8260a4445c77a5ceebdd9bbb2e38b90c (patch)
treeb0981111572b1f4254ec9bc7524596ebd77621a2 /src/util
parent2ba68d24f21f86e3bed7a0e4f7d65abadef0d2ef (diff)
Add more util tests (#3062)
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
Diffstat (limited to 'src/util')
-rw-r--r--src/util/util_test.go124
1 files changed, 122 insertions, 2 deletions
diff --git a/src/util/util_test.go b/src/util/util_test.go
index 20bdb92a..ca12aa75 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])
+ }
+}