diff --git a/pkg/services/alerting/conditions/reducer_test.go b/pkg/services/alerting/conditions/reducer_test.go new file mode 100644 index 00000000000..c6f0509bbc2 --- /dev/null +++ b/pkg/services/alerting/conditions/reducer_test.go @@ -0,0 +1,33 @@ +package conditions + +import ( + "testing" + + "github.com/grafana/grafana/pkg/tsdb" + . "github.com/smartystreets/goconvey/convey" +) + +func TestSimpleReducer(t *testing.T) { + Convey("Test simple reducer", t, func() { + Convey("can calculate avg of time serie", func() { + result := testReducer("avg", 1, 2, 3) + So(result, ShouldEqual, float64(2)) + }) + }) +} + +func testReducer(typ string, datapoints ...float64) float64 { + reducer := NewSimpleReducer(typ) + var timeserie [][2]float64 + dummieTimestamp := float64(521452145) + + for _, v := range datapoints { + timeserie = append(timeserie, [2]float64{v, dummieTimestamp}) + } + + tsdb := &tsdb.TimeSeries{ + Name: "test time serie", + Points: timeserie, + } + return reducer.Reduce(tsdb) +} diff --git a/pkg/services/alerting/evaluator.go b/pkg/services/alerting/evaluator.go deleted file mode 100644 index bed5ce9709b..00000000000 --- a/pkg/services/alerting/evaluator.go +++ /dev/null @@ -1,15 +0,0 @@ -package alerting - -type compareFn func(float64, float64) bool - -func evalCondition(level Level, result float64) bool { - return operators[level.Operator](result, level.Value) -} - -var operators = map[string]compareFn{ - ">": func(num1, num2 float64) bool { return num1 > num2 }, - ">=": func(num1, num2 float64) bool { return num1 >= num2 }, - "<": func(num1, num2 float64) bool { return num1 < num2 }, - "<=": func(num1, num2 float64) bool { return num1 <= num2 }, - "": func(num1, num2 float64) bool { return false }, -}