MCPcopy Create free account
hub / github.com/apache/arrow / TEST_F

Function TEST_F

cpp/src/gandiva/tests/to_string_test.cc:43–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41#define CHECK_EXPR_TO_STRING(e, str) EXPECT_STREQ(e->ToString().c_str(), str)
42
43TEST_F(TestToString, TestAll) {
44 auto literal_node = TreeExprBuilder::MakeLiteral((uint64_t)100);
45 auto literal_expr =
46 TreeExprBuilder::MakeExpression(literal_node, arrow::field("r", int64()));
47 CHECK_EXPR_TO_STRING(literal_expr, "(const uint64) 100");
48
49 auto f0 = arrow::field("f0", float64());
50 auto f0_node = TreeExprBuilder::MakeField(f0);
51 auto f0_expr = TreeExprBuilder::MakeExpression(f0_node, f0);
52 CHECK_EXPR_TO_STRING(f0_expr, "(double) f0");
53
54 auto f1 = arrow::field("f1", int64());
55 auto f2 = arrow::field("f2", int64());
56 auto f1_node = TreeExprBuilder::MakeField(f1);
57 auto f2_node = TreeExprBuilder::MakeField(f2);
58 auto add_node = TreeExprBuilder::MakeFunction("add", {f1_node, f2_node}, int64());
59 auto add_expr = TreeExprBuilder::MakeExpression(add_node, f1);
60 CHECK_EXPR_TO_STRING(add_expr, "int64 add((int64) f1, (int64) f2)");
61
62 auto cond_node = TreeExprBuilder::MakeFunction(
63 "lesser_than", {f0_node, TreeExprBuilder::MakeLiteral(static_cast<float>(0))},
64 boolean());
65 auto then_node = TreeExprBuilder::MakeField(f1);
66 auto else_node = TreeExprBuilder::MakeField(f2);
67
68 auto if_node = TreeExprBuilder::MakeIf(cond_node, then_node, else_node, int64());
69 auto if_expr = TreeExprBuilder::MakeExpression(if_node, f1);
70
71 CHECK_EXPR_TO_STRING(if_expr,
72 "if (bool lesser_than((double) f0, (const float) 0 raw(0))) { "
73 "(int64) f1 } else { (int64) f2 }");
74
75 auto f1_gt_100 =
76 TreeExprBuilder::MakeFunction("greater_than", {f1_node, literal_node}, boolean());
77 auto f2_equals_100 =
78 TreeExprBuilder::MakeFunction("equals", {f2_node, literal_node}, boolean());
79 auto and_node = TreeExprBuilder::MakeAnd({f1_gt_100, f2_equals_100});
80 auto and_expr =
81 TreeExprBuilder::MakeExpression(and_node, arrow::field("f0", boolean()));
82
83 CHECK_EXPR_TO_STRING(and_expr,
84 "bool greater_than((int64) f1, (const uint64) 100) && bool "
85 "equals((int64) f2, (const uint64) 100)");
86}
87
88} // namespace gandiva

Callers

nothing calls this directly

Calls 2

fieldFunction · 0.50
MakeFunctionFunction · 0.50

Tested by

no test coverage detected