12TEST(LexicographicModelCheckingTest, prob_sched1) {
14 GTEST_SKIP() <<
"Z3 not available.";
16#ifndef STORM_HAVE_SPOT
17 GTEST_SKIP() <<
"Spot not available.";
19 typedef double ValueType;
20 std::string formulasString =
"multi(Pmax=? [GF y=2], Pmax=? [GF y=1], Pmax=? [GF y=3]);";
21 std::string pathToPrismFile = STORM_TEST_RESOURCES_DIR
"/mdp/prob_sched.prism";
22 std::pair<std::shared_ptr<storm::models::sparse::Mdp<ValueType>>, std::vector<std::shared_ptr<storm::logic::Formula const>>> modelFormulas;
26 modelFormulas.first = storm::api::buildSparseModel<ValueType>(program, modelFormulas.second)->template as<storm::models::sparse::Mdp<ValueType>>();
28 auto mdp = std::move(modelFormulas.first);
29 std::vector<storm::modelchecker::CheckTask<storm::logic::MultiObjectiveFormula, ValueType>> tasks;
30 for (
auto const& f : modelFormulas.second) {
31 tasks.emplace_back((*f).asMultiObjectiveFormula());
32 tasks.back().setProduceSchedulers(
true);
38 tasks[0].setOnlyInitialStatesRelevant(
true);
40 ASSERT_TRUE(result->isLexicographicCheckResult());
41 auto& lexResult = result->asLexicographicCheckResult<
double>().getInitialStateValue();
48TEST(LexicographicModelCheckingTest, prob_sched2) {
50 GTEST_SKIP() <<
"Z3 not available.";
52#ifndef STORM_HAVE_SPOT
53 GTEST_SKIP() <<
"Spot not available.";
55 typedef double ValueType;
56 std::string formulasString =
"multi(Pmax=? [GF y=1], Pmax=? [GF y=2], Pmax=? [GF y=3]);";
57 std::string pathToPrismFile = STORM_TEST_RESOURCES_DIR
"/mdp/prob_sched.prism";
58 std::pair<std::shared_ptr<storm::models::sparse::Mdp<ValueType>>, std::vector<std::shared_ptr<storm::logic::Formula const>>> modelFormulas;
62 modelFormulas.first = storm::api::buildSparseModel<ValueType>(program, modelFormulas.second)->template as<storm::models::sparse::Mdp<ValueType>>();
64 auto mdp = std::move(modelFormulas.first);
65 std::vector<storm::modelchecker::CheckTask<storm::logic::MultiObjectiveFormula, ValueType>> tasks;
66 for (
auto const& f : modelFormulas.second) {
67 tasks.emplace_back((*f).asMultiObjectiveFormula());
68 tasks.back().setProduceSchedulers(
true);
74 tasks[0].setOnlyInitialStatesRelevant(
true);
76 ASSERT_TRUE(result->isLexicographicCheckResult());
77 auto const& lexResult = result->asLexicographicCheckResult<
double>().getInitialStateValue();