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  }