Skip to content

Commit 4c7fa1a

Browse files
Added Max function
1 parent d24ba9d commit 4c7fa1a

File tree

2 files changed

+47
-1
lines changed

2 files changed

+47
-1
lines changed

tut/stat/stat.go

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,36 @@ import (
1010
)
1111

1212
type Stats struct {
13-
// TODO(kyle): Define
13+
data []float64
1414
}
1515

16+
func (s *Stats) Add(x ...float64) {
17+
s.data = append(s.data, x...)
18+
}
19+
func (s *Stats) Mean() float64 {
20+
var x float64
21+
x = 0
22+
var i int
23+
for i = 0; i < len(s.data); i++ {
24+
x = x + s.data[i]
25+
}
26+
27+
x = x / float64(len(s.data))
28+
return x
29+
}
30+
31+
func (s *Stats) Max() float64 {
32+
var max float64
33+
max = 0
34+
var i int
35+
for i = 0; i < len(s.data); i++ {
36+
if s.data[i] > max {
37+
max = s.data[i]
38+
}
39+
}
40+
41+
return max
42+
}
1643
func main() {
1744
fin, err := os.Open("CFSB.csv")
1845
if err != nil {

tut/stat/stat_test.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,28 @@ package main
33
import "testing"
44

55
func TestMean(t *testing.T) {
6+
var st Stats
7+
st.Add(4, 8)
8+
var got float64
9+
var want float64
10+
got = st.Mean()
11+
want = 6.0
12+
if got != want {
13+
t.Errorf("got: %f, want: %f", got, want)
14+
}
615
}
716

817
func TestMax(t *testing.T) {
18+
var st Stats
19+
st.Add(2, 3, 33, 5, 67, 8, 10, 12, 15)
20+
var got float64
21+
var want float64
22+
got = st.Max()
23+
want = 67
24+
if got != want {
25+
t.Errorf("got: %f, want: %f", got, want)
26+
}
27+
928
}
1029

1130
func TestMin(t *testing.T) {

0 commit comments

Comments
 (0)