MCPcopy Create free account
hub / github.com/cel-expr/cel-cpp / ExpectResult

Function ExpectResult

extensions/math_ext_test.cc:181–210  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

179}
180
181void ExpectResult(const TestCase& test_case) {
182 Expr expr;
183 Activation activation;
184 activation.InsertValue("a", test_case.arg1);
185 if (test_case.arg2.has_value()) {
186 activation.InsertValue("b", *test_case.arg2);
187 expr = CallExprTwoArgs(test_case.operation);
188 } else {
189 expr = CallExprOneArg(test_case.operation);
190 }
191
192 SourceInfo source_info;
193 InterpreterOptions options;
194 std::unique_ptr<CelExpressionBuilder> builder =
195 CreateCelExpressionBuilder(options);
196 ASSERT_OK(RegisterMathExtensionFunctions(builder->GetRegistry(), options));
197 ASSERT_OK_AND_ASSIGN(auto cel_expression,
198 builder->CreateExpression(&expr, &source_info));
199
200 google::protobuf::Arena arena;
201 ASSERT_OK_AND_ASSIGN(auto value,
202 cel_expression->Evaluate(activation, &arena));
203 if (!test_case.result.IsError()) {
204 EXPECT_THAT(value, EqualsCelValue(test_case.result));
205 } else {
206 auto expected = test_case.result.ErrorOrDie();
207 EXPECT_THAT(*value.ErrorOrDie(),
208 StatusIs(expected->code(), HasSubstr(expected->message())));
209 }
210}
211
212using MathExtParamsTest = testing::TestWithParam<TestCase>;
213TEST_P(MathExtParamsTest, MinMaxTests) { ExpectResult(GetParam()); }

Callers 2

TEST_PFunction · 0.70
TESTFunction · 0.70

Calls 12

CallExprTwoArgsFunction · 0.85
CallExprOneArgFunction · 0.85
EqualsCelValueFunction · 0.85
InsertValueMethod · 0.80
GetRegistryMethod · 0.80
ErrorOrDieMethod · 0.80
codeMethod · 0.80
messageMethod · 0.80
has_valueMethod · 0.45
IsErrorMethod · 0.45

Tested by

no test coverage detected