17TEST(ExplicitMdpPrctlModelCheckerTest, Dice) {
18 std::shared_ptr<storm::models::sparse::Model<double>> abstractModel =
20 STORM_TEST_RESOURCES_DIR
"/rew/two_dice.flip.trans.rew");
22 double const precision = 1e-6;
33 ASSERT_EQ(mdp->getNumberOfStates(), 169ull);
34 ASSERT_EQ(mdp->getNumberOfTransitions(), 436ull);
40 std::unique_ptr<storm::modelchecker::CheckResult> result = checker.
check(env, *formula);
43 EXPECT_NEAR(1.0 / 36.0, quantitativeResult1[0], precision);
47 result = checker.
check(env, *formula);
50 EXPECT_NEAR(1.0 / 36.0, quantitativeResult2[0], precision);
54 result = checker.
check(env, *formula);
57 EXPECT_NEAR(2.0 / 36.0, quantitativeResult3[0], precision);
61 result = checker.
check(env, *formula);
64 EXPECT_NEAR(2.0 / 36.0, quantitativeResult4[0], precision);
68 result = checker.
check(env, *formula);
71 EXPECT_NEAR(3.0 / 36.0, quantitativeResult5[0], precision);
75 result = checker.
check(env, *formula);
78 EXPECT_NEAR(3.0 / 36.0, quantitativeResult6[0], precision);
82 result = checker.
check(env, *formula);
85 EXPECT_NEAR(22.0 / 3.0, quantitativeResult7[0], precision);
89 result = checker.
check(env, *formula);
92 EXPECT_NEAR(22.0 / 3.0, quantitativeResult8[0], precision);
95 STORM_TEST_RESOURCES_DIR
"/rew/two_dice.flip.state.rew",
"");
105 result = stateRewardModelChecker.check(env, *formula);
108 EXPECT_NEAR(22.0 / 3.0, quantitativeResult9[0], precision);
112 result = stateRewardModelChecker.check(env, *formula);
115 EXPECT_NEAR(22.0 / 3.0, quantitativeResult10[0], precision);
118 STORM_TEST_RESOURCES_DIR
"/rew/two_dice.flip.state.rew",
119 STORM_TEST_RESOURCES_DIR
"/rew/two_dice.flip.trans.rew");
129 result = stateAndTransitionRewardModelChecker.check(env, *formula);
132 EXPECT_NEAR(44.0 / 3.0, quantitativeResult11[0], precision);
136 result = stateAndTransitionRewardModelChecker.check(env, *formula);
139 EXPECT_NEAR(44.0 / 3.0, quantitativeResult12[0], precision);
142TEST(ExplicitMdpPrctlModelCheckerTest, AsynchronousLeader) {
144 double const precision = 1e-6;
149 STORM_TEST_RESOURCES_DIR
"/tra/leader4.tra", STORM_TEST_RESOURCES_DIR
"/lab/leader4.lab",
"", STORM_TEST_RESOURCES_DIR
"/rew/leader4.trans.rew");
158 ASSERT_EQ(3172ull, mdp->getNumberOfStates());
159 ASSERT_EQ(7144ull, mdp->getNumberOfTransitions());
165 std::unique_ptr<storm::modelchecker::CheckResult> result = checker.
check(env, *formula);
168 EXPECT_NEAR(1.0, quantitativeResult1[0], precision);
172 result = checker.
check(env, *formula);
175 EXPECT_NEAR(1.0, quantitativeResult2[0], precision);
179 result = checker.
check(env, *formula);
182 EXPECT_NEAR(1.0 / 16.0, quantitativeResult3[0], precision);
186 result = checker.
check(env, *formula);
189 EXPECT_NEAR(1.0 / 16.0, quantitativeResult4[0], precision);
193 result = checker.
check(env, *formula);
196 EXPECT_NEAR(30.0 / 7.0, quantitativeResult5[0], precision);
200 result = checker.
check(env, *formula);
203 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.