Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
TestBddModularizer.cpp
Go to the documentation of this file.
1#include "storm-config.h"
2#include "test/storm_gtest.h"
3
6
7namespace {
8
9struct ModularizerTestData {
10 std::string testname;
11 std::string filepath;
12 double probabilityAtTimeboundOne;
13};
14
15class BddModularizerTest : public testing::TestWithParam<ModularizerTestData> {
16 protected:
17 void SetUp() override {
18#ifdef STORM_HAVE_SYLVAN
19 auto const &param{TestWithParam::GetParam()};
20 auto dft{storm::dft::api::loadDFTGalileoFile<double>(param.filepath)};
21 checker = std::make_shared<storm::dft::modelchecker::DftModularizationChecker<double>>(dft);
22#else
23 GTEST_SKIP() << "Library Sylvan not available.";
24#endif
25 }
26
27 std::shared_ptr<storm::dft::modelchecker::DftModularizationChecker<double>> checker;
28};
29
30TEST_P(BddModularizerTest, ProbabilityAtTimeOne) {
31 auto const &param{TestWithParam::GetParam()};
32 EXPECT_NEAR(checker->getProbabilityAtTimebound(1), param.probabilityAtTimeboundOne, 1e-6);
33}
34
35static std::vector<ModularizerTestData> modularizerTestData{
36 {
37 "And",
38 STORM_TEST_RESOURCES_DIR "/dft/bdd/AndTest.dft",
39 0.25,
40 },
41 {
42 "Or",
43 STORM_TEST_RESOURCES_DIR "/dft/bdd/OrTest.dft",
44 0.75,
45 },
46 {
47 "AndOr",
48 STORM_TEST_RESOURCES_DIR "/dft/bdd/AndOrTest.dft",
49 0.5625,
50 },
51 {
52 "Vot",
53 STORM_TEST_RESOURCES_DIR "/dft/bdd/VotTest.dft",
54 0.6875,
55 },
56 {
57 "Importance",
58 STORM_TEST_RESOURCES_DIR "/dft/bdd/ImportanceTest.dft",
59 0.2655055433,
60 },
61 {
62 "Spare",
63 STORM_TEST_RESOURCES_DIR "/dft/spare5.dft",
64 0.2017690905,
65 },
66 {
67 "MCS",
68 STORM_TEST_RESOURCES_DIR "/dft/mcs.dft",
69 0.9984947969,
70 },
71};
72INSTANTIATE_TEST_SUITE_P(BddModularizer, BddModularizerTest, testing::ValuesIn(modularizerTestData), [](auto const &info) { return info.param.testname; });
73
74} // namespace