1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-04 12:52:28 +08:00

feat: add Sum

This commit is contained in:
dudaodong
2023-06-08 16:18:25 +08:00
parent 83832daeb1
commit c11d63c2e2
3 changed files with 31 additions and 0 deletions

View File

@@ -172,6 +172,18 @@ func MinBy[T any](slice []T, comparator func(T, T) bool) T {
return min
}
// Sum return sum of passed numbers.
// Play: todo
func Sum[T constraints.Integer | constraints.Float](numbers ...T) T {
var sum T
for _, v := range numbers {
sum += v
}
return sum
}
// Average return average value of numbers.
// Play: https://go.dev/play/p/Vv7LBwER-pz
func Average[T constraints.Integer | constraints.Float](numbers ...T) T {

View File

@@ -122,6 +122,18 @@ func ExampleAverage() {
// 1.3
}
func ExampleSum() {
result1 := Sum(1, 2)
result2 := Sum(0.1, float64(1))
fmt.Println(result1)
fmt.Println(result2)
// Output:
// 3
// 1.1
}
func ExampleMax() {
result1 := Max(1, 2, 3)
result2 := Max(1.2, 1.4, 1.1, 1.4)

View File

@@ -82,6 +82,13 @@ func TestAverage(t *testing.T) {
assert.Equal(1.3, RoundToFloat(avg, 1))
}
func TestSum(t *testing.T) {
assert := internal.NewAssert(t, "TestSum")
assert.Equal(1, Sum(0, 1))
assert.Equal(1.1, Sum(0.1, float64(1)))
}
func TestMax(t *testing.T) {
assert := internal.NewAssert(t, "TestMax")