diff --git a/lib/math.go b/lib/math.go index 36b483c64..1d0b6dc0f 100644 --- a/lib/math.go +++ b/lib/math.go @@ -1,5 +1,12 @@ package lib +func AbsInt(a int) int { + if a > 0 { + return a + } + return a * -1 +} + func MaxInt(a, b int) int { if a > b { return a diff --git a/lib/math_test.go b/lib/math_test.go index fdb963ecd..4640bf4f2 100644 --- a/lib/math_test.go +++ b/lib/math_test.go @@ -6,24 +6,33 @@ import ( "github.com/hashicorp/consul/lib" ) +func TestMathAbsInt(t *testing.T) { + tests := [][3]int{{1, 1}, {-1, 1}, {0, 0}} + for _, test := range tests { + if test[1] != lib.AbsInt(test[0]) { + t.Fatalf("expected %d, got %d", test[1], test[0]) + } + } +} + func TestMathMaxInt(t *testing.T) { tests := [][3]int{{1, 2, 2}, {-1, 1, 1}, {2, 0, 2}} - for i, _ := range tests { - expected := tests[i][2] - actual := lib.MaxInt(tests[i][0], tests[i][1]) + for _, test := range tests { + expected := test[2] + actual := lib.MaxInt(test[0], test[1]) if expected != actual { - t.Fatalf("in iteration %d expected %d, got %d", i, expected, actual) + t.Fatalf("expected %d, got %d", expected, actual) } } } func TestMathMinInt(t *testing.T) { tests := [][3]int{{1, 2, 1}, {-1, 1, -1}, {2, 0, 0}} - for i, _ := range tests { - expected := tests[i][2] - actual := lib.MinInt(tests[i][0], tests[i][1]) + for _, test := range tests { + expected := test[2] + actual := lib.MinInt(test[0], test[1]) if expected != actual { - t.Fatalf("in iteration %d expected %d, got %d", i, expected, actual) + t.Fatalf("expected %d, got %d", expected, actual) } } }