36 lines
616 B
Go
36 lines
616 B
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestNewStats(t *testing.T) {
|
|
s := NewStatAggregator()
|
|
if s.n != 0 ||
|
|
s.sum != 0 ||
|
|
s.sumOfTheSquares != 0 ||
|
|
len(s.histogram) != initialLength ||
|
|
s.min != veryBig ||
|
|
s.max != verySmall {
|
|
t.Fail()
|
|
}
|
|
}
|
|
|
|
func TestAddStatsBasic(t *testing.T) {
|
|
|
|
numbers := []float64{-1, 1, 20, 3}
|
|
c := make(chan float64)
|
|
o := make(chan *Stats)
|
|
s := NewStatAggregator()
|
|
go s.AddStats(c, o)
|
|
for _, n := range numbers {
|
|
c <- n
|
|
}
|
|
close(c)
|
|
<-o
|
|
if s.n != 4. || s.min != -1. || s.max != 20. || s.sum != 23. || s.sumOfTheSquares != 411. {
|
|
t.Error(">>>", s.max, s.min)
|
|
}
|
|
|
|
}
|