github.com/go-graphite/carbonapi@v0.17.0/expr/functions/cairo/cairo_test.go (about) 1 //go:build cairo 2 // +build cairo 3 4 package cairo 5 6 import ( 7 "testing" 8 9 "github.com/go-graphite/carbonapi/expr/interfaces" 10 "github.com/go-graphite/carbonapi/expr/metadata" 11 "github.com/go-graphite/carbonapi/expr/types" 12 "github.com/go-graphite/carbonapi/pkg/parser" 13 th "github.com/go-graphite/carbonapi/tests" 14 ) 15 16 var ( 17 md []interfaces.FunctionMetadata = New("") 18 ) 19 20 func init() { 21 for _, m := range md { 22 metadata.RegisterFunction(m.Name, m.F) 23 } 24 } 25 26 func TestEvalExpressionGraph(t *testing.T) { 27 28 tests := []th.EvalTestItem{ 29 { 30 "threshold(42.42)", 31 map[parser.MetricRequest][]*types.MetricData{}, 32 []*types.MetricData{types.MakeMetricData("42.42", 33 []float64{42.42, 42.42}, 1, 0).SetConsolidationFunc("average")}, 34 }, 35 { 36 "threshold(42.42,\"fourty-two\")", 37 map[parser.MetricRequest][]*types.MetricData{}, 38 []*types.MetricData{types.MakeMetricData("fourty-two", 39 []float64{42.42, 42.42}, 1, 0).SetConsolidationFunc("average")}, 40 }, 41 { 42 "threshold(42.42,\"fourty-two\",\"blue\")", 43 map[parser.MetricRequest][]*types.MetricData{}, 44 []*types.MetricData{types.MakeMetricData("fourty-two", 45 []float64{42.42, 42.42}, 1, 0).SetConsolidationFunc("average")}, 46 }, 47 { 48 "threshold(42.42,label=\"fourty-two\")", 49 map[parser.MetricRequest][]*types.MetricData{}, 50 []*types.MetricData{types.MakeMetricData("fourty-two", 51 []float64{42.42, 42.42}, 1, 0).SetConsolidationFunc("average")}, 52 }, 53 { 54 "threshold(42.42,color=\"blue\")", 55 map[parser.MetricRequest][]*types.MetricData{}, 56 []*types.MetricData{types.MakeMetricData("42.42", 57 []float64{42.42, 42.42}, 1, 0).SetConsolidationFunc("average")}, 58 }, 59 { 60 //TODO(nnuss): test blue is being set rather than just not causing expression to parse/fail 61 "threshold(42.42,label=\"fourty-two-blue\",color=\"blue\")", 62 map[parser.MetricRequest][]*types.MetricData{}, 63 []*types.MetricData{types.MakeMetricData("fourty-two-blue", 64 []float64{42.42, 42.42}, 1, 0).SetConsolidationFunc("average")}, 65 }, 66 { 67 // BUG(nnuss): This test actually fails with color = "" because of 68 // how getStringNamedOrPosArgDefault works but we don't notice 69 // because we're not testing color is set. 70 // You may manually verify with this request URI: /render/?format=png&target=threshold(42.42,"gold",label="fourty-two-aurum") 71 "threshold(42.42,gold,label=\"fourty-two-aurum\")", 72 map[parser.MetricRequest][]*types.MetricData{}, 73 []*types.MetricData{types.MakeMetricData("fourty-two-aurum", 74 []float64{42.42, 42.42}, 1, 0).SetConsolidationFunc("average")}, 75 }, 76 } 77 78 for _, tt := range tests { 79 eval := th.EvaluatorFromFunc(md[0].F) 80 th.TestEvalExpr(t, eval, &tt) 81 } 82 }