TEST_F(DecompositionTest, IdentifiesJoinNodes) { EXPECT_FALSE(decomposition.isJoinNode()); const Hypergraph::Vertices bag = {"x", "y"}; Decomposition& joinNode = addDecompositionChild(decomposition, bag); addDecompositionChild(joinNode, bag); addDecompositionChild(joinNode, bag); EXPECT_EQ(2, joinNode.getChildren().size()); EXPECT_TRUE(joinNode.isJoinNode()); EXPECT_FALSE(decomposition.isJoinNode()); for(const auto& child : joinNode.getChildren()) EXPECT_FALSE(child->isJoinNode()); }
TEST_F(DecompositionTest, IdentifiesJoinNodes) { EXPECT_FALSE(decomposition.isJoinNode()); const DecompositionNode::Bag bag = {{"x"}, {"y"}}; Decomposition& joinNode = addDecompositionChild(decomposition, bag); addDecompositionChild(joinNode, bag); addDecompositionChild(joinNode, bag); EXPECT_EQ(2, joinNode.getChildren().size()); EXPECT_TRUE(joinNode.isJoinNode()); EXPECT_FALSE(decomposition.isJoinNode()); for(const auto& child : joinNode.getChildren()) EXPECT_FALSE(child->isJoinNode()); }
TEST_F(DecompositionTest, ReportsCorrectWidth) { EXPECT_EQ(2, decomposition.getWidth()); addDecompositionChild(decomposition, {{"e", "f", "g", "h"}}); EXPECT_EQ(3, decomposition.getWidth()); }
DecompositionTest() { addDecompositionChild(decomposition, {{"b", "c", "d"}}); }
DecompositionTest() { addDecompositionChild(decomposition, {{{"b"}, {"c"}, {"d"}}}); }