1#include "storm-config.h"
10TEST(TestBddVarOrdering, VariableOrdering) {
11#ifdef STORM_HAVE_SYLVAN
12 auto dft = storm::dft::api::loadDFTGalileoFile<double>(STORM_TEST_RESOURCES_DIR
"/dft/bdd/AndOrTest.dft");
13 auto manager{std::make_shared<storm::dft::storage::SylvanBddManager>()};
14 auto transformator{std::make_shared<storm::dft::transformations::SftToBddTransformator<double>>(dft,
manager)};
17 auto bdd = transformator->transformTopLevel();
18 EXPECT_EQ(
"x1",
manager->getName(0));
19 EXPECT_EQ(
"x2",
manager->getName(1));
20 EXPECT_EQ(
"x3",
manager->getName(2));
21 EXPECT_EQ(
"x4",
manager->getName(3));
22 EXPECT_EQ(5ul, bdd.NodeCount());
25 std::vector<size_t> beOrder;
26 beOrder.push_back(dft->getIndex(
"x2"));
27 beOrder.push_back(dft->getIndex(
"x4"));
28 beOrder.push_back(dft->getIndex(
"x1"));
29 beOrder.push_back(dft->getIndex(
"x3"));
30 dft->setBEOrder(beOrder);
31 manager = std::make_shared<storm::dft::storage::SylvanBddManager>();
32 transformator = std::make_shared<storm::dft::transformations::SftToBddTransformator<double>>(dft,
manager);
34 bdd = transformator->transformTopLevel();
35 EXPECT_EQ(
"x2",
manager->getName(0));
36 EXPECT_EQ(
"x4",
manager->getName(1));
37 EXPECT_EQ(
"x1",
manager->getName(2));
38 EXPECT_EQ(
"x3",
manager->getName(3));
39 EXPECT_EQ(7ul, bdd.NodeCount());
41 GTEST_SKIP() <<
"Library Sylvan not available.";
45TEST(TestBddVarOrdering, OrderParser) {
46#ifdef STORM_HAVE_SYLVAN
47 auto dft = storm::dft::api::loadDFTGalileoFile<double>(STORM_TEST_RESOURCES_DIR
"/dft/bdd/AndOrTest.dft");
51 EXPECT_EQ(4ul, beOrder.size());
52 EXPECT_EQ(
"x2", dft->getElement(beOrder.at(0))->name());
53 EXPECT_EQ(
"x4", dft->getElement(beOrder.at(1))->name());
54 EXPECT_EQ(
"x1", dft->getElement(beOrder.at(2))->name());
55 EXPECT_EQ(
"x3", dft->getElement(beOrder.at(3))->name());
56 dft->setBEOrder(beOrder);
58 auto manager = std::make_shared<storm::dft::storage::SylvanBddManager>();
59 auto transformator = std::make_shared<storm::dft::transformations::SftToBddTransformator<double>>(dft,
manager);
61 auto bdd = transformator->transformTopLevel();
62 EXPECT_EQ(
"x2",
manager->getName(0));
63 EXPECT_EQ(
"x4",
manager->getName(1));
64 EXPECT_EQ(
"x1",
manager->getName(2));
65 EXPECT_EQ(
"x3",
manager->getName(3));
66 EXPECT_EQ(7ul, bdd.NodeCount());
68 GTEST_SKIP() <<
"Library Sylvan not available.";
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.