1#include "duckdb/common/helper.hpp"
2#include "expression_helper.hpp"
3#include "duckdb/optimizer/rule/case_simplification.hpp"
4
5using namespace duckdb;
6using namespace std;
7
8TEST_CASE("Test case simplification", "[optimizer]") {
9 ExpressionHelper helper;
10
11 REQUIRE(helper.AddColumns("X INTEGER").empty());
12
13 helper.AddRule<CaseSimplificationRule>();
14
15 string input, expected_output;
16
17 input = "CASE WHEN 1=1 THEN X+1 ELSE X+2 END";
18 expected_output = "X+1";
19 REQUIRE(helper.VerifyRewrite(input, expected_output));
20
21 input = "CASE WHEN 1=0 THEN X+1 ELSE X+2 END";
22 expected_output = "X+2";
23 REQUIRE(helper.VerifyRewrite(input, expected_output));
24
25 input = "CASE WHEN NULL>3 THEN X+1 ELSE X+2 END";
26 expected_output = "X+2";
27 REQUIRE(helper.VerifyRewrite(input, expected_output));
28}
29