utils: Add tests in safe_math: Max64, Min64, Sub64, Diff64

This commit is contained in:
Alex Willmer 2020-03-29 16:57:42 +01:00
parent 1fe5092e9b
commit aef48061c5
1 changed files with 48 additions and 0 deletions

View File

@ -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)
}
}