From 963707cae467bb344bfa9098a63ae45d999f970f Mon Sep 17 00:00:00 2001 From: Ruidy Date: Sun, 20 Feb 2022 10:33:20 -0400 Subject: [PATCH] :sparkles: sum --- sum.go | 11 +++++++++++ sum_test.go | 15 +++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 sum.go create mode 100644 sum_test.go diff --git a/sum.go b/sum.go new file mode 100644 index 0000000..278a14f --- /dev/null +++ b/sum.go @@ -0,0 +1,11 @@ +package underscore + +import "constraints" + +// Sum adds elements of the slice. +func Sum[T constraints.Ordered](values []T) (sum T) { + for _, v := range values { + sum += v + } + return sum +} diff --git a/sum_test.go b/sum_test.go new file mode 100644 index 0000000..05a2a8a --- /dev/null +++ b/sum_test.go @@ -0,0 +1,15 @@ +package underscore_test + +import ( + "testing" + + u "github.com/rjNemo/underscore" + "github.com/stretchr/testify/assert" +) + +func TestSum(t *testing.T) { + nums := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9} + want := 45 + + assert.Equal(t, want, u.Sum(nums)) +}