MCPcopy
hub / github.com/grafana/tempo / TestScalarExpressionPrecedence

Function TestScalarExpressionPrecedence

pkg/traceql/parse_test.go:703–742  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

701}
702
703func TestScalarExpressionPrecedence(t *testing.T) {
704 tests := []struct {
705 in string
706 expected ScalarFilter
707 expectedStr string
708 }{
709 {
710 in: "avg(.foo) > count() + sum(.bar)",
711 expected: newScalarFilter(OpGreater,
712 newAggregate(aggregateAvg, NewAttribute("foo")),
713 newScalarOperation(OpAdd,
714 newAggregate(aggregateCount, nil),
715 newAggregate(aggregateSum, NewAttribute("bar")),
716 ),
717 ),
718 expectedStr: "(avg(.foo)) > ((count()) + (sum(.bar)))",
719 },
720 {
721 in: "avg(.foo) + count() > sum(.bar)",
722 expected: newScalarFilter(OpGreater,
723 newScalarOperation(OpAdd,
724 newAggregate(aggregateAvg, NewAttribute("foo")),
725 newAggregate(aggregateCount, nil),
726 ),
727 newAggregate(aggregateSum, NewAttribute("bar")),
728 ),
729 expectedStr: "((avg(.foo)) + (count())) > (sum(.bar))",
730 },
731 }
732
733 for _, tc := range tests {
734 t.Run(tc.in, func(t *testing.T) {
735 actual, err := Parse(tc.in)
736
737 require.NoError(t, err)
738 require.Equal(t, newRootExpr(newPipeline(tc.expected)), actual)
739 require.Equal(t, tc.expectedStr, actual.String())
740 })
741 }
742}
743
744func TestScalarExpressionOperators(t *testing.T) {
745 tests := []struct {

Callers

nothing calls this directly

Calls 10

newScalarFilterFunction · 0.85
newAggregateFunction · 0.85
NewAttributeFunction · 0.85
newScalarOperationFunction · 0.85
ParseFunction · 0.85
newRootExprFunction · 0.85
newPipelineFunction · 0.85
RunMethod · 0.45
EqualMethod · 0.45
StringMethod · 0.45

Tested by

no test coverage detected