github.com/go-graphite/carbonapi@v0.17.0/expr/functions/sinFunction/function_test.go (about) 1 package sinFunction 2 3 import ( 4 "testing" 5 6 "github.com/go-graphite/carbonapi/expr/interfaces" 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 var ( 14 md []interfaces.FunctionMetadata = New("") 15 ) 16 17 func init() { 18 for _, m := range md { 19 metadata.RegisterFunction(m.Name, m.F) 20 } 21 } 22 23 func TestSinFunction(t *testing.T) { 24 var startTime int64 = 1 25 26 tests := []th.EvalTestItemWithRange{ 27 { 28 Target: `sinFunction("The.time.series")`, 29 M: map[parser.MetricRequest][]*types.MetricData{ 30 {From: startTime, Until: startTime + 240}: {}, 31 }, 32 Want: []*types.MetricData{types.MakeMetricData("The.time.series", 33 []float64{0.8414709848078965, -0.9661177700083929, 0.9988152247235795, -0.936451400117644}, 60, startTime)}, 34 From: startTime, 35 Until: startTime + 240, 36 }, 37 { 38 Target: `sinFunction("The.time.series.2", 5.0, 10)`, 39 M: map[parser.MetricRequest][]*types.MetricData{ 40 {From: startTime, Until: startTime + 60}: {}, 41 }, 42 Want: []*types.MetricData{types.MakeMetricData("The.time.series.2", 43 []float64{4.207354924039483, -4.9999510327535175, 4.18327819268028, -2.0201882266153253, -0.7931133440235449, 3.3511458792168733}, 10, startTime)}, 44 From: startTime, 45 Until: startTime + 60, 46 }, 47 } 48 49 for _, tt := range tests { 50 testName := tt.Target 51 t.Run(testName, func(t *testing.T) { 52 eval := th.EvaluatorFromFunc(md[0].F) 53 th.TestEvalExprWithRange(t, eval, &tt) 54 }) 55 } 56 }