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

Function TEST

runtime/standard/equality_functions_test.cc:41–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

39}
40
41TEST(RegisterEqualityFunctionsHomogeneous, RegistersEqualOperators) {
42 FunctionRegistry registry;
43 RuntimeOptions options;
44 options.enable_heterogeneous_equality = false;
45
46 ASSERT_THAT(RegisterEqualityFunctions(registry, options), IsOk());
47 auto overloads = registry.ListFunctions();
48 EXPECT_THAT(
49 overloads[builtin::kEqual],
50 UnorderedElementsAre(
51 MatchesDescriptor(builtin::kEqual, false,
52 std::vector<Kind>{Kind::kList, Kind::kList}),
53 MatchesDescriptor(builtin::kEqual, false,
54 std::vector<Kind>{Kind::kMap, Kind::kMap}),
55 MatchesDescriptor(builtin::kEqual, false,
56 std::vector<Kind>{Kind::kBool, Kind::kBool}),
57 MatchesDescriptor(builtin::kEqual, false,
58 std::vector<Kind>{Kind::kInt, Kind::kInt}),
59 MatchesDescriptor(builtin::kEqual, false,
60 std::vector<Kind>{Kind::kUint, Kind::kUint}),
61 MatchesDescriptor(builtin::kEqual, false,
62 std::vector<Kind>{Kind::kDouble, Kind::kDouble}),
63 MatchesDescriptor(
64 builtin::kEqual, false,
65 std::vector<Kind>{Kind::kDuration, Kind::kDuration}),
66 MatchesDescriptor(
67 builtin::kEqual, false,
68 std::vector<Kind>{Kind::kTimestamp, Kind::kTimestamp}),
69 MatchesDescriptor(builtin::kEqual, false,
70 std::vector<Kind>{Kind::kString, Kind::kString}),
71 MatchesDescriptor(builtin::kEqual, false,
72 std::vector<Kind>{Kind::kBytes, Kind::kBytes}),
73 MatchesDescriptor(builtin::kEqual, false,
74 std::vector<Kind>{Kind::kType, Kind::kType}),
75 // Structs comparable to null, but struct == struct undefined.
76 MatchesDescriptor(builtin::kEqual, false,
77 std::vector<Kind>{Kind::kStruct, Kind::kNullType}),
78 MatchesDescriptor(builtin::kEqual, false,
79 std::vector<Kind>{Kind::kNullType, Kind::kStruct}),
80 MatchesDescriptor(
81 builtin::kEqual, false,
82 std::vector<Kind>{Kind::kNullType, Kind::kNullType})));
83
84 EXPECT_THAT(
85 overloads[builtin::kInequal],
86 UnorderedElementsAre(
87 MatchesDescriptor(builtin::kInequal, false,
88 std::vector<Kind>{Kind::kList, Kind::kList}),
89 MatchesDescriptor(builtin::kInequal, false,
90 std::vector<Kind>{Kind::kMap, Kind::kMap}),
91 MatchesDescriptor(builtin::kInequal, false,
92 std::vector<Kind>{Kind::kBool, Kind::kBool}),
93 MatchesDescriptor(builtin::kInequal, false,
94 std::vector<Kind>{Kind::kInt, Kind::kInt}),
95 MatchesDescriptor(builtin::kInequal, false,
96 std::vector<Kind>{Kind::kUint, Kind::kUint}),
97 MatchesDescriptor(builtin::kInequal, false,
98 std::vector<Kind>{Kind::kDouble, Kind::kDouble}),

Callers

nothing calls this directly

Calls 2

ListFunctionsMethod · 0.45

Tested by

no test coverage detected