1#include "storm-config.h"
10TEST(TestBddVarOrdering, VariableOrdering) {
11#ifdef STORM_HAVE_SYLVAN
14 auto manager{std::make_shared<storm::dft::storage::SylvanBddManager>(env)};
15 auto transformator{std::make_shared<storm::dft::transformations::SftToBddTransformator<double>>(dft,
manager)};
18 auto bdd = transformator->transformTopLevel();
19 EXPECT_EQ(
"x1",
manager->getName(0));
20 EXPECT_EQ(
"x2",
manager->getName(1));
21 EXPECT_EQ(
"x3",
manager->getName(2));
22 EXPECT_EQ(
"x4",
manager->getName(3));
23 EXPECT_EQ(5ul, bdd.NodeCount());
26 std::vector<size_t> beOrder;
27 beOrder.push_back(dft->getIndex(
"x2"));
28 beOrder.push_back(dft->getIndex(
"x4"));
29 beOrder.push_back(dft->getIndex(
"x1"));
30 beOrder.push_back(dft->getIndex(
"x3"));
31 dft->setBEOrder(beOrder);
32 manager = std::make_shared<storm::dft::storage::SylvanBddManager>(env);
33 transformator = std::make_shared<storm::dft::transformations::SftToBddTransformator<double>>(dft,
manager);
35 bdd = transformator->transformTopLevel();
36 EXPECT_EQ(
"x2",
manager->getName(0));
37 EXPECT_EQ(
"x4",
manager->getName(1));
38 EXPECT_EQ(
"x1",
manager->getName(2));
39 EXPECT_EQ(
"x3",
manager->getName(3));
40 EXPECT_EQ(7ul, bdd.NodeCount());
42 GTEST_SKIP() <<
"Library Sylvan not available.";
46TEST(TestBddVarOrdering, OrderParser) {
47#ifdef STORM_HAVE_SYLVAN
52 EXPECT_EQ(4ul, beOrder.size());
53 EXPECT_EQ(
"x2", dft->getElement(beOrder.at(0))->name());
54 EXPECT_EQ(
"x4", dft->getElement(beOrder.at(1))->name());
55 EXPECT_EQ(
"x1", dft->getElement(beOrder.at(2))->name());
56 EXPECT_EQ(
"x3", dft->getElement(beOrder.at(3))->name());
57 dft->setBEOrder(beOrder);
60 auto manager = std::make_shared<storm::dft::storage::SylvanBddManager>(env);
61 auto transformator = std::make_shared<storm::dft::transformations::SftToBddTransformator<double>>(dft,
manager);
63 auto bdd = transformator->transformTopLevel();
64 EXPECT_EQ(
"x2",
manager->getName(0));
65 EXPECT_EQ(
"x4",
manager->getName(1));
66 EXPECT_EQ(
"x1",
manager->getName(2));
67 EXPECT_EQ(
"x3",
manager->getName(3));
68 EXPECT_EQ(7ul, bdd.NodeCount());
70 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.
std::shared_ptr< storm::dft::storage::DFT< ValueType > > loadDFTGalileoFile(std::string const &file)
Load DFT from Galileo file.
SettingsManager const & manager()
Retrieves the settings manager.