From edbc8770e3e2a97b7f8e2463cd2d7347da6e1d45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20L=C3=BChne?= Date: Tue, 6 Sep 2016 18:51:29 +0200 Subject: [PATCH] Testing simplification of nested existential quantifiers. --- tests/TestPDDLNormalization.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/TestPDDLNormalization.cpp b/tests/TestPDDLNormalization.cpp index a2d7274..a3df1af 100644 --- a/tests/TestPDDLNormalization.cpp +++ b/tests/TestPDDLNormalization.cpp @@ -186,3 +186,31 @@ TEST(PDDLNormalizationTests, SimplifyNestedForAll) ASSERT_EQ(output.str(), "(forall (?x ?y ?z ?u ?v ?w) (a))"); } + +//////////////////////////////////////////////////////////////////////////////////////////////////// + +TEST(PDDLNormalizationTests, SimplifyNestedExists) +{ + auto v1 = expressions::VariablePointer(new expressions::Variable("x")); + auto v2 = expressions::VariablePointer(new expressions::Variable("y")); + auto v3 = expressions::VariablePointer(new expressions::Variable("z")); + auto v4 = expressions::VariablePointer(new expressions::Variable("u")); + auto v5 = expressions::VariablePointer(new expressions::Variable("v")); + auto v6 = expressions::VariablePointer(new expressions::Variable("w")); + + auto e1 = expressions::ExistsPointer(new expressions::Exists); + auto e2 = expressions::ExistsPointer(new expressions::Exists); + + auto d = expressions::DummyPointer(new expressions::Dummy("a")); + + e1->variables() = {v1, v2, v3}; + e2->variables() = {v4, v5, v6}; + + e1->setArgument(e2); + e2->setArgument(d); + + std::stringstream output; + e1->normalized()->print(output); + + ASSERT_EQ(output.str(), "(exists (?x ?y ?z ?u ?v ?w) (a))"); +}