14TEST(SmtPermissiveSchedulerTest, DieSelection) {
16 GTEST_SKIP() <<
"Z3 not available.";
21 std::string formulaString =
"";
22 formulaString +=
"P<=0.16 [ F \"one\"];\n";
23 formulaString +=
"P<=0.05 [ F \"one\"];\n";
26 auto const& formula02b = formulas[0].getRawFormula()->asProbabilityOperatorFormula();
27 auto const& formula001b = formulas[1].getRawFormula()->asProbabilityOperatorFormula();
36 std::shared_ptr<storm::models::sparse::Mdp<double>> mdp =
44 boost::optional<storm::ps::SubMDPPermissiveScheduler<>> perms3 = storm::ps::computePermissiveSchedulerViaSMT<>(*mdp, formula02b);
45 EXPECT_TRUE(perms3.is_initialized());
46 boost::optional<storm::ps::SubMDPPermissiveScheduler<>> perms4 = storm::ps::computePermissiveSchedulerViaSMT<>(*mdp, formula001b);
47 EXPECT_FALSE(perms4.is_initialized());
51 std::unique_ptr<storm::modelchecker::CheckResult> result0 = checker0.
check(env, formula02b);
54 ASSERT_FALSE(qualitativeResult0[0]);
56 auto submdp = perms3->apply();
59 std::unique_ptr<storm::modelchecker::CheckResult> result1 = checker1.
check(env, formula02b);
62 EXPECT_TRUE(qualitativeResult1[0]);