1#include "storm-config.h"
7class DftSmt :
public ::testing::Test {
9 void SetUp()
override {
11 GTEST_SKIP() <<
"Z3 not available.";
17 std::shared_ptr<storm::dft::storage::DFT<double>> dft = storm::dft::api::loadDFTGalileoFile<double>(STORM_TEST_RESOURCES_DIR
"/dft/and.dft");
21 smtChecker.toSolver();
26 std::shared_ptr<storm::dft::storage::DFT<double>> dft = storm::dft::api::loadDFTGalileoFile<double>(STORM_TEST_RESOURCES_DIR
"/dft/pand.dft");
30 smtChecker.toSolver();
35 std::shared_ptr<storm::dft::storage::DFT<double>> dft = storm::dft::api::loadDFTGalileoFile<double>(STORM_TEST_RESOURCES_DIR
"/dft/spare_two_modules.dft");
39 smtChecker.toSolver();
45 std::shared_ptr<storm::dft::storage::DFT<double>> dft = storm::dft::api::loadDFTGalileoFile<double>(STORM_TEST_RESOURCES_DIR
"/dft/spare5.dft");
49 smtChecker.toSolver();
54TEST_F(DftSmt, FDEPBoundTest) {
55 std::shared_ptr<storm::dft::storage::DFT<double>> dft = storm::dft::api::loadDFTGalileoFile<double>(STORM_TEST_RESOURCES_DIR
"/dft/fdep_bound.dft");
59 smtChecker.toSolver();
64TEST_F(DftSmt, FDEPConflictTest) {
65 std::shared_ptr<storm::dft::storage::DFT<double>> dft =
66 storm::dft::api::loadDFTGalileoFile<double>(STORM_TEST_RESOURCES_DIR
"/dft/spare_conflict_test.dft");
68 std::vector<bool> true_vector(10,
true);
74TEST_F(DftSmt, FDEPConflictSPARETest) {
75 std::shared_ptr<storm::dft::storage::DFT<double>> dft =
76 storm::dft::api::loadDFTGalileoFile<double>(STORM_TEST_RESOURCES_DIR
"/dft/spare_conflict_test.dft");
78 std::vector<bool> true_vector(10,
true);
84TEST_F(DftSmt, FDEPConflictSEQTest) {
85 std::shared_ptr<storm::dft::storage::DFT<double>> dft = storm::dft::api::loadDFTGalileoFile<double>(STORM_TEST_RESOURCES_DIR
"/dft/seq_conflict_test.dft");
87 std::vector<bool> expected_dynamic_vector(dft->nrElements(),
true);
88 expected_dynamic_vector.at(dft->getTopLevelIndex()) =
false;
TEST_F(AssumptionCheckerTest, Brp_no_bisimulation)
static uint64_t getLeastFailureBound(storm::dft::storage::DFT< double > const &dft, bool useSMT=false, uint_fast64_t timeout=10)
Get the minimal number of BEs necessary for the TLE to fail (lower bound for number of failures to ch...
static uint64_t getAlwaysFailedBound(storm::dft::storage::DFT< double > const &dft, bool useSMT=false, uint_fast64_t timeout=10)
Get the number of BE failures for which the TLE always fails (upper bound for number of failures to c...
std::pair< bool, std::string > isWellFormed(storm::dft::storage::DFT< ValueType > const &dft, bool validForMarkovianAnalysis=true)
Check whether the DFT is well-formed.