github.com/go-graphite/carbonapi@v0.17.0/expr/rewrite/applyByNode/function_test.go (about) 1 package applyByNode 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/go-graphite/carbonapi/expr/metadata" 8 "github.com/go-graphite/carbonapi/expr/types" 9 "github.com/go-graphite/carbonapi/pkg/parser" 10 th "github.com/go-graphite/carbonapi/tests" 11 ) 12 13 func init() { 14 md := New("") 15 for _, m := range md { 16 metadata.RegisterRewriteFunction(m.Name, m.F) 17 } 18 } 19 20 func TestApplyByNode(t *testing.T) { 21 now32 := int64(time.Now().Unix()) 22 23 tests := []th.RewriteTestItem{ 24 { 25 `applyByNode(test.metric*.name, 1, "%.transform")`, 26 map[parser.MetricRequest][]*types.MetricData{ 27 {Metric: "test.metric*.name", From: 0, Until: 1}: { 28 types.MakeMetricData("test.metric1.name", []float64{0, 0, 0, 0, 0, 0}, 1, now32), 29 types.MakeMetricData("test.metric2.name", []float64{0, 0, 0, 0, 0, 0}, 1, now32), 30 }, 31 }, 32 th.RewriteTestResult{ 33 Rewritten: true, 34 Targets: []string{ 35 "test.metric1.transform", 36 "test.metric2.transform", 37 }, 38 Err: nil, 39 }, 40 }, 41 { 42 // overflow 43 `applyByNode(metric*.name, 2, "%.transform")`, 44 map[parser.MetricRequest][]*types.MetricData{ 45 {Metric: "metric*.name", From: 0, Until: 1}: { 46 types.MakeMetricData("metric1.name", []float64{0, 0, 0, 0, 0, 0}, 1, now32), 47 }, 48 }, 49 th.RewriteTestResult{ 50 Err: parser.ErrInvalidArg, 51 }, 52 }, 53 } 54 55 for _, tt := range tests { 56 testName := tt.Target 57 t.Run(testName, func(t *testing.T) { 58 eval := th.DummyEvaluator() 59 th.TestRewriteExpr(t, eval, &tt) 60 }) 61 } 62 63 }