diff --git a/math/mean.jule b/math/mean.jule new file mode 100644 index 0000000..9fe88f9 --- /dev/null +++ b/math/mean.jule @@ -0,0 +1,13 @@ +fn Mean(slice: []int): f64 { + let l = len(slice) + if l == 0 { + return 0 + } + + let mut total: int = 0 + for _, n in slice { + total += n + } + + return f64(total) / f64(l) +} \ No newline at end of file diff --git a/math/mean_test.jule b/math/mean_test.jule new file mode 100644 index 0000000..9a7525c --- /dev/null +++ b/math/mean_test.jule @@ -0,0 +1,10 @@ +#build test + +use "std/testing" + +#test +fn testMean(t: &testing::T) { + t.Assert(Mean([2, 4, 6, 8]) == 5, "mean should be 5") + t.Assert(Mean([-3, 0, 3]) == 0, "mean should be 0") + t.Assert(Mean([]) == 0, "mean of empty slice should be 0") +} \ No newline at end of file