| 1533 | Expression expr, guarantee; |
| 1534 | |
| 1535 | void Expect(Expression unbound_expected) { |
| 1536 | ASSERT_OK_AND_ASSIGN(auto bound, expr.Bind(*kBoringSchema)); |
| 1537 | |
| 1538 | ASSERT_OK_AND_ASSIGN(auto simplified, SimplifyWithGuarantee(bound, guarantee)); |
| 1539 | |
| 1540 | ASSERT_OK_AND_ASSIGN(auto expected, unbound_expected.Bind(*kBoringSchema)); |
| 1541 | EXPECT_EQ(simplified, expected) << " original: " << expr.ToString() << "\n" |
| 1542 | << " guarantee: " << guarantee.ToString() << "\n" |
| 1543 | << (simplified == bound ? " (no change)\n" : ""); |
| 1544 | |
| 1545 | ExpectIdenticalIfUnchanged(simplified, bound); |
| 1546 | } |
| 1547 | void ExpectUnchanged() { Expect(expr); } |
| 1548 | void Expect(bool constant) { Expect(literal(constant)); } |
| 1549 | }; |