mirror of
https://github.com/grafana/grafana.git
synced 2024-11-30 04:34:23 -06:00
test(alerting): add falsification test
This commit is contained in:
parent
cbe7f8b697
commit
def4632f08
@ -8,42 +8,55 @@ import (
|
|||||||
. "github.com/smartystreets/goconvey/convey"
|
. "github.com/smartystreets/goconvey/convey"
|
||||||
)
|
)
|
||||||
|
|
||||||
func test(json string, reducedValue float64) bool {
|
func evalutorScenario(json string, reducedValue float64, datapoints ...float64) bool {
|
||||||
jsonModel, err := simplejson.NewJson([]byte(json))
|
jsonModel, err := simplejson.NewJson([]byte(json))
|
||||||
So(err, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
|
|
||||||
evaluator, err := NewAlertEvaluator(jsonModel)
|
evaluator, err := NewAlertEvaluator(jsonModel)
|
||||||
So(err, ShouldBeNil)
|
So(err, ShouldBeNil)
|
||||||
|
|
||||||
return evaluator.Eval(&tsdb.TimeSeries{}, reducedValue)
|
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 evaluator.Eval(tsdb, reducedValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEvalutors(t *testing.T) {
|
func TestEvalutors(t *testing.T) {
|
||||||
Convey("greater then", t, func() {
|
Convey("greater then", t, func() {
|
||||||
So(test(`{"type": "gt", "params": [1] }`, 3), ShouldBeTrue)
|
So(evalutorScenario(`{"type": "gt", "params": [1] }`, 3), ShouldBeTrue)
|
||||||
So(test(`{"type": "gt", "params": [3] }`, 1), ShouldBeFalse)
|
So(evalutorScenario(`{"type": "gt", "params": [3] }`, 1), ShouldBeFalse)
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("less then", t, func() {
|
Convey("less then", t, func() {
|
||||||
So(test(`{"type": "lt", "params": [1] }`, 3), ShouldBeFalse)
|
So(evalutorScenario(`{"type": "lt", "params": [1] }`, 3), ShouldBeFalse)
|
||||||
So(test(`{"type": "lt", "params": [3] }`, 1), ShouldBeTrue)
|
So(evalutorScenario(`{"type": "lt", "params": [3] }`, 1), ShouldBeTrue)
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("within_range", t, func() {
|
Convey("within_range", t, func() {
|
||||||
So(test(`{"type": "within_range", "params": [1, 100] }`, 3), ShouldBeTrue)
|
So(evalutorScenario(`{"type": "within_range", "params": [1, 100] }`, 3), ShouldBeTrue)
|
||||||
So(test(`{"type": "within_range", "params": [1, 100] }`, 300), ShouldBeFalse)
|
So(evalutorScenario(`{"type": "within_range", "params": [1, 100] }`, 300), ShouldBeFalse)
|
||||||
So(test(`{"type": "within_range", "params": [100, 1] }`, 3), ShouldBeTrue)
|
So(evalutorScenario(`{"type": "within_range", "params": [100, 1] }`, 3), ShouldBeTrue)
|
||||||
So(test(`{"type": "within_range", "params": [100, 1] }`, 300), ShouldBeFalse)
|
So(evalutorScenario(`{"type": "within_range", "params": [100, 1] }`, 300), ShouldBeFalse)
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("outside_range", t, func() {
|
Convey("outside_range", t, func() {
|
||||||
So(test(`{"type": "outside_range", "params": [1, 100] }`, 1000), ShouldBeTrue)
|
So(evalutorScenario(`{"type": "outside_range", "params": [1, 100] }`, 1000), ShouldBeTrue)
|
||||||
So(test(`{"type": "outside_range", "params": [1, 100] }`, 50), ShouldBeFalse)
|
So(evalutorScenario(`{"type": "outside_range", "params": [1, 100] }`, 50), ShouldBeFalse)
|
||||||
So(test(`{"type": "outside_range", "params": [100, 1] }`, 1000), ShouldBeTrue)
|
So(evalutorScenario(`{"type": "outside_range", "params": [100, 1] }`, 1000), ShouldBeTrue)
|
||||||
So(test(`{"type": "outside_range", "params": [100, 1] }`, 50), ShouldBeFalse)
|
So(evalutorScenario(`{"type": "outside_range", "params": [100, 1] }`, 50), ShouldBeFalse)
|
||||||
})
|
})
|
||||||
|
|
||||||
Convey("no_value", t, func() {
|
Convey("no_value", t, func() {
|
||||||
So(test(`{"type": "no_value", "params": [] }`, 1000), ShouldBeTrue)
|
So(evalutorScenario(`{"type": "no_value", "params": [] }`, 1000), ShouldBeTrue)
|
||||||
|
So(evalutorScenario(`{"type": "no_value", "params": [] }`, 1000, 1, 2), ShouldBeFalse)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user