25 std::string programFile = STORM_TEST_RESOURCES_DIR
"/dtmc/die.pm";
26 std::string formulasAsString =
"P=? [ F{\"coin_flips\"}<=2 \"two\" ] ";
27 formulasAsString +=
"; P=? [ F{\"coin_flips\"}<=3 \"two\" ] ";
28 formulasAsString +=
"; P=? [ F{\"coin_flips\"}<=8 \"two\" ] ";
33 std::vector<std::shared_ptr<storm::logic::Formula const>> formulas =
35 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalNumber>> dtmc =
38 std::unique_ptr<storm::modelchecker::CheckResult> result;
41 ASSERT_TRUE(result->isExplicitQuantitativeCheckResult());
42 EXPECT_EQ(storm::utility::convertNumber<storm::RationalNumber>(std::string(
"0")),
43 result->asExplicitQuantitativeCheckResult<storm::RationalNumber>()[initState]);
46 ASSERT_TRUE(result->isExplicitQuantitativeCheckResult());
47 EXPECT_EQ(storm::utility::convertNumber<storm::RationalNumber>(std::string(
"1/8")),
48 result->asExplicitQuantitativeCheckResult<storm::RationalNumber>()[initState]);
51 ASSERT_TRUE(result->isExplicitQuantitativeCheckResult());
52 EXPECT_EQ(storm::utility::convertNumber<storm::RationalNumber>(std::string(
"21/128")),
53 result->asExplicitQuantitativeCheckResult<storm::RationalNumber>()[initState]);
58 std::string programFile = STORM_TEST_RESOURCES_DIR
"/dtmc/leader-3-5.pm";
59 std::string formulasAsString =
"P=? [ F{\"num_rounds\"}<=1 \"elected\" ] ";
60 formulasAsString +=
"; P=? [ F{\"num_rounds\"}<=2 \"elected\" ] ";
61 formulasAsString +=
"; P=? [ F{\"num_rounds\"}>2 \"elected\" ] ";
62 formulasAsString +=
"; P=? [ F{\"num_rounds\"}>=2,{\"num_rounds\"}<3 \"elected\" ] ";
67 std::vector<std::shared_ptr<storm::logic::Formula const>> formulas =
69 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalNumber>> dtmc =
72 std::unique_ptr<storm::modelchecker::CheckResult> result;
75 ASSERT_TRUE(result->isExplicitQuantitativeCheckResult());
76 EXPECT_EQ(storm::utility::convertNumber<storm::RationalNumber>(std::string(
"24/25")),
77 result->asExplicitQuantitativeCheckResult<storm::RationalNumber>()[initState]);
80 ASSERT_TRUE(result->isExplicitQuantitativeCheckResult());
81 EXPECT_EQ(storm::utility::convertNumber<storm::RationalNumber>(std::string(
"624/625")),
82 result->asExplicitQuantitativeCheckResult<storm::RationalNumber>()[initState]);
85 ASSERT_TRUE(result->isExplicitQuantitativeCheckResult());
86 EXPECT_EQ(storm::utility::convertNumber<storm::RationalNumber>(std::string(
"1/625")),
87 result->asExplicitQuantitativeCheckResult<storm::RationalNumber>()[initState]);
90 ASSERT_TRUE(result->isExplicitQuantitativeCheckResult());
91 EXPECT_EQ(storm::utility::convertNumber<storm::RationalNumber>(std::string(
"24/625")),
92 result->asExplicitQuantitativeCheckResult<storm::RationalNumber>()[initState]);
97 std::string programFile = STORM_TEST_RESOURCES_DIR
"/dtmc/crowds_cost_bounded.pm";
98 std::string formulasAsString =
"P=? [F{\"num_runs\"}<=3,{\"observe0\"}>1 true]";
99 formulasAsString +=
"; P=? [F{\"num_runs\"}<=3,{\"observe1\"}>1 true]";
100 formulasAsString +=
"; R{\"observe0\"}=? [C{\"num_runs\"}<=3]";
105 std::vector<std::shared_ptr<storm::logic::Formula const>> formulas =
107 std::shared_ptr<storm::models::sparse::Dtmc<storm::RationalNumber>> dtmc =
110 std::unique_ptr<storm::modelchecker::CheckResult> result;
113 ASSERT_TRUE(result->isExplicitQuantitativeCheckResult());
114 EXPECT_EQ(storm::utility::convertNumber<storm::RationalNumber>(std::string(
"78686542099694893/1268858272000000000")),
115 result->asExplicitQuantitativeCheckResult<storm::RationalNumber>()[initState]);
118 ASSERT_TRUE(result->isExplicitQuantitativeCheckResult());
119 EXPECT_EQ(storm::utility::convertNumber<storm::RationalNumber>(std::string(
"13433618626105041/1268858272000000000")),
120 result->asExplicitQuantitativeCheckResult<storm::RationalNumber>()[initState]);
123 ASSERT_TRUE(result->isExplicitQuantitativeCheckResult());
124 EXPECT_EQ(storm::utility::convertNumber<storm::RationalNumber>(std::string(
"620529/1364000")),
125 result->asExplicitQuantitativeCheckResult<storm::RationalNumber>()[initState]);
std::unique_ptr< storm::modelchecker::CheckResult > verifyWithSparseEngine(storm::Environment const &env, std::shared_ptr< storm::models::sparse::Dtmc< ValueType > > const &dtmc, storm::modelchecker::CheckTask< storm::logic::Formula, ValueType > const &task)