15TEST(ExplicitMdpPrctlModelCheckerTest, Dice) {
16 std::shared_ptr<storm::models::sparse::Model<double>> abstractModel =
18 STORM_TEST_RESOURCES_DIR
"/rew/two_dice.flip.trans.rew");
20 double const precision = 1e-6;
31 ASSERT_EQ(mdp->getNumberOfStates(), 169ull);
32 ASSERT_EQ(mdp->getNumberOfTransitions(), 436ull);
38 std::unique_ptr<storm::modelchecker::CheckResult> result = checker.
check(env, *formula);
41 EXPECT_NEAR(1.0 / 36.0, quantitativeResult1[0], precision);
45 result = checker.
check(env, *formula);
48 EXPECT_NEAR(1.0 / 36.0, quantitativeResult2[0], precision);
52 result = checker.
check(env, *formula);
55 EXPECT_NEAR(2.0 / 36.0, quantitativeResult3[0], precision);
59 result = checker.
check(env, *formula);
62 EXPECT_NEAR(2.0 / 36.0, quantitativeResult4[0], precision);
66 result = checker.
check(env, *formula);
69 EXPECT_NEAR(3.0 / 36.0, quantitativeResult5[0], precision);
73 result = checker.
check(env, *formula);
76 EXPECT_NEAR(3.0 / 36.0, quantitativeResult6[0], precision);
80 result = checker.
check(env, *formula);
83 EXPECT_NEAR(22.0 / 3.0, quantitativeResult7[0], precision);
87 result = checker.
check(env, *formula);
90 EXPECT_NEAR(22.0 / 3.0, quantitativeResult8[0], precision);
93 STORM_TEST_RESOURCES_DIR
"/rew/two_dice.flip.state.rew",
"");
103 result = stateRewardModelChecker.check(env, *formula);
106 EXPECT_NEAR(22.0 / 3.0, quantitativeResult9[0], precision);
110 result = stateRewardModelChecker.check(env, *formula);
113 EXPECT_NEAR(22.0 / 3.0, quantitativeResult10[0], precision);
116 STORM_TEST_RESOURCES_DIR
"/rew/two_dice.flip.state.rew",
117 STORM_TEST_RESOURCES_DIR
"/rew/two_dice.flip.trans.rew");
127 result = stateAndTransitionRewardModelChecker.check(env, *formula);
130 EXPECT_NEAR(44.0 / 3.0, quantitativeResult11[0], precision);
134 result = stateAndTransitionRewardModelChecker.check(env, *formula);
137 EXPECT_NEAR(44.0 / 3.0, quantitativeResult12[0], precision);
140TEST(ExplicitMdpPrctlModelCheckerTest, AsynchronousLeader) {
142 double const precision = 1e-6;
147 STORM_TEST_RESOURCES_DIR
"/tra/leader4.tra", STORM_TEST_RESOURCES_DIR
"/lab/leader4.lab",
"", STORM_TEST_RESOURCES_DIR
"/rew/leader4.trans.rew");
156 ASSERT_EQ(3172ull, mdp->getNumberOfStates());
157 ASSERT_EQ(7144ull, mdp->getNumberOfTransitions());
163 std::unique_ptr<storm::modelchecker::CheckResult> result = checker.
check(env, *formula);
166 EXPECT_NEAR(1.0, quantitativeResult1[0], precision);
170 result = checker.
check(env, *formula);
173 EXPECT_NEAR(1.0, quantitativeResult2[0], precision);
177 result = checker.
check(env, *formula);
180 EXPECT_NEAR(1.0 / 16.0, quantitativeResult3[0], precision);
184 result = checker.
check(env, *formula);
187 EXPECT_NEAR(1.0 / 16.0, quantitativeResult4[0], precision);
191 result = checker.
check(env, *formula);
194 EXPECT_NEAR(30.0 / 7.0, quantitativeResult5[0], precision);
198 result = checker.
check(env, *formula);
201 EXPECT_NEAR(30.0 / 7.0, quantitativeResult6[0], precision);
static std::shared_ptr< storm::models::sparse::Model< ValueType, storm::models::sparse::StandardRewardModel< RewardValueType > > > parseModel(std::string const &transitionsFilename, std::string const &labelingFilename, std::string const &stateRewardFilename="", std::string const &transitionRewardFilename="", std::string const &choiceLabelingFilename="")
Checks the given files and parses the model within these files.