diff --git a/utils/math/safe_math_test.go b/utils/math/safe_math_test.go index c8428b5..47f65f9 100644 --- a/utils/math/safe_math_test.go +++ b/utils/math/safe_math_test.go @@ -10,6 +10,28 @@ import ( const maxUint64 uint64 = math.MaxUint64 +func TestMax64(t *testing.T) { + actual := Max64(0, maxUint64) + if actual != maxUint64 { + t.Fatalf("Expected %d, got %d", maxUint64, actual) + } + actual = Max64(maxUint64, 0) + if actual != maxUint64 { + t.Fatalf("Expected %d, got %d", maxUint64, actual) + } +} + +func TestMin64(t *testing.T) { + actual := Min64(0, maxUint64) + if actual != 0 { + t.Fatalf("Expected %d, got %d", 0, actual) + } + actual = Min64(maxUint64, 0) + if actual != 0 { + t.Fatalf("Expected %d, got %d", 0, actual) + } +} + func TestAdd64(t *testing.T) { sum, err := Add64(0, maxUint64) if err != nil { @@ -51,6 +73,20 @@ func TestAdd64(t *testing.T) { } } +func TestSub64(t *testing.T) { + actual, err := Sub64(2, 1) + if err != nil { + t.Fatalf("Sub64 failed unexpectedly") + } else if actual != 1 { + t.Fatalf("Expected %d, got %d", 1, actual) + } + + _, err = Sub64(1, 2) + if err == nil { + t.Fatalf("Sub64 did not fail in the manner expected") + } +} + func TestMul64(t *testing.T) { if prod, err := Mul64(maxUint64, 0); err != nil { t.Fatalf("Mul64 failed unexpectedly") @@ -68,3 +104,15 @@ func TestMul64(t *testing.T) { t.Fatalf("Mul64 overflowed") } } + +func TestDiff64(t *testing.T) { + actual := Diff64(0, maxUint64) + if actual != maxUint64 { + t.Fatalf("Expected %d, got %d", maxUint64, actual) + } + + actual = Diff64(maxUint64, 0) + if actual != maxUint64 { + t.Fatalf("Expected %d, got %d", maxUint64, actual) + } +}