浏览代码

test(alerting): add tests for simple reducer

bergquist 9 年之前
父节点
当前提交
f2436fc7cd
共有 2 个文件被更改,包括 33 次插入15 次删除
  1. 33 0
      pkg/services/alerting/conditions/reducer_test.go
  2. 0 15
      pkg/services/alerting/evaluator.go

+ 33 - 0
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)
+}

+ 0 - 15
pkg/services/alerting/evaluator.go

@@ -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 },
-}