Storm
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 auto const &param{TestWithParam::GetParam()};
19 auto dft{storm::dft::api::loadDFTGalileoFile<double>(param.filepath)};
20 checker = std::make_shared<storm::dft::modelchecker::DftModularizationChecker<double>>(dft);
21 }
22
23 std::shared_ptr<storm::dft::modelchecker::DftModularizationChecker<double>> checker;
24};
25
26TEST_P(BddModularizerTest, ProbabilityAtTimeOne) {
27 auto const &param{TestWithParam::GetParam()};
28 EXPECT_NEAR(checker->getProbabilityAtTimebound(1), param.probabilityAtTimeboundOne, 1e-6);
29}
30
31static std::vector<ModularizerTestData> modularizerTestData{
32 {
33 "And",
34 STORM_TEST_RESOURCES_DIR "/dft/bdd/AndTest.dft",
35 0.25,
36 },
37 {
38 "Or",
39 STORM_TEST_RESOURCES_DIR "/dft/bdd/OrTest.dft",
40 0.75,
41 },
42 {
43 "AndOr",
44 STORM_TEST_RESOURCES_DIR "/dft/bdd/AndOrTest.dft",
45 0.5625,
46 },
47 {
48 "Vot",
49 STORM_TEST_RESOURCES_DIR "/dft/bdd/VotTest.dft",
50 0.6875,
51 },
52 {
53 "Importance",
54 STORM_TEST_RESOURCES_DIR "/dft/bdd/ImportanceTest.dft",
55 0.2655055433,
56 },
57 {
58 "Spare",
59 STORM_TEST_RESOURCES_DIR "/dft/spare5.dft",
60 0.2017690905,
61 },
62 {
63 "MCS",
64 STORM_TEST_RESOURCES_DIR "/dft/mcs.dft",
65 0.9984947969,
66 },
67};
68INSTANTIATE_TEST_SUITE_P(BddModularizer, BddModularizerTest, testing::ValuesIn(modularizerTestData), [](auto const &info) { return info.param.testname; });
69
70} // namespace