diff --git a/arrays/sum.go b/arrays/sum.go new file mode 100644 index 0000000..78c8998 --- /dev/null +++ b/arrays/sum.go @@ -0,0 +1,9 @@ +package main + +func Sum(numbers []int) int { + sum := 0 + for _, n := range numbers { + sum += n + } + return sum +} diff --git a/arrays/sum_test.go b/arrays/sum_test.go new file mode 100644 index 0000000..f94c4ff --- /dev/null +++ b/arrays/sum_test.go @@ -0,0 +1,29 @@ +package main + +import "testing" + +func TestSum(t *testing.T) { + + t.Run("collection of 5 numbers", func(t *testing.T) { + numbers := []int{1, 2, 3, 4, 5} + + got := Sum(numbers) + want := 15 + + if got != want { + t.Errorf("got %d want %d given, %v", got, want, numbers) + } + }) + + t.Run("collection of any size", func(t *testing.T) { + numbers := []int{1, 2, 3} + + got := Sum(numbers) + want := 6 + + if got != want { + t.Errorf("got %d want %d given, %v", got, want, numbers) + } + }) + +}