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