1#include "storm-config.h"
10TEST(TestBddVarOrdering, VariableOrdering) {
11 auto dft = storm::dft::api::loadDFTGalileoFile<double>(STORM_TEST_RESOURCES_DIR
"/dft/bdd/AndOrTest.dft");
12 auto manager{std::make_shared<storm::dft::storage::SylvanBddManager>()};
13 auto transformator{std::make_shared<storm::dft::transformations::SftToBddTransformator<double>>(dft,
manager)};
16 auto bdd = transformator->transformTopLevel();
17 EXPECT_EQ(
"x1",
manager->getName(0));
18 EXPECT_EQ(
"x2",
manager->getName(1));
19 EXPECT_EQ(
"x3",
manager->getName(2));
20 EXPECT_EQ(
"x4",
manager->getName(3));
21 EXPECT_EQ(5ul, bdd.NodeCount());
24 std::vector<size_t> beOrder;
25 beOrder.push_back(dft->getIndex(
"x2"));
26 beOrder.push_back(dft->getIndex(
"x4"));
27 beOrder.push_back(dft->getIndex(
"x1"));
28 beOrder.push_back(dft->getIndex(
"x3"));
29 dft->setBEOrder(beOrder);
30 manager = std::make_shared<storm::dft::storage::SylvanBddManager>();
31 transformator = std::make_shared<storm::dft::transformations::SftToBddTransformator<double>>(dft,
manager);
33 bdd = transformator->transformTopLevel();
34 EXPECT_EQ(
"x2",
manager->getName(0));
35 EXPECT_EQ(
"x4",
manager->getName(1));
36 EXPECT_EQ(
"x1",
manager->getName(2));
37 EXPECT_EQ(
"x3",
manager->getName(3));
38 EXPECT_EQ(7ul, bdd.NodeCount());
41TEST(TestBddVarOrdering, OrderParser) {
42 auto dft = storm::dft::api::loadDFTGalileoFile<double>(STORM_TEST_RESOURCES_DIR
"/dft/bdd/AndOrTest.dft");
46 EXPECT_EQ(4ul, beOrder.size());
47 EXPECT_EQ(
"x2", dft->getElement(beOrder.at(0))->name());
48 EXPECT_EQ(
"x4", dft->getElement(beOrder.at(1))->name());
49 EXPECT_EQ(
"x1", dft->getElement(beOrder.at(2))->name());
50 EXPECT_EQ(
"x3", dft->getElement(beOrder.at(3))->name());
51 dft->setBEOrder(beOrder);
53 auto manager = std::make_shared<storm::dft::storage::SylvanBddManager>();
54 auto transformator = std::make_shared<storm::dft::transformations::SftToBddTransformator<double>>(dft,
manager);
56 auto bdd = transformator->transformTopLevel();
57 EXPECT_EQ(
"x2",
manager->getName(0));
58 EXPECT_EQ(
"x4",
manager->getName(1));
59 EXPECT_EQ(
"x1",
manager->getName(2));
60 EXPECT_EQ(
"x3",
manager->getName(3));
61 EXPECT_EQ(7ul, bdd.NodeCount());
static std::vector< size_t > parseBEOrder(std::string const &filename, storm::dft::storage::DFT< ValueType > const &dft)
Parse BE order from given file.
SettingsManager const & manager()
Retrieves the settings manager.