16TEST(SymbolicDtmcPrctlModelCheckerTest, Die_RationalFunction_Sylvan) {
17#ifdef STORM_HAVE_SYLVAN
28 std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan, storm::RationalFunction>> model =
30 EXPECT_EQ(13ul, model->getNumberOfStates());
31 EXPECT_EQ(20ul, model->getNumberOfTransitions());
34 std::map<storm::RationalFunctionVariable, storm::RationalFunctionCoefficient> instantiation;
35 std::set<storm::RationalFunctionVariable> variables = model->getParameters();
36 ASSERT_EQ(1ull, variables.size());
37 instantiation.emplace(*variables.begin(), storm::utility::convertNumber<storm::RationalFunctionCoefficient>(std::string(
"1/2")));
39 std::shared_ptr<storm::models::symbolic::Dtmc<storm::dd::DdType::Sylvan, storm::RationalFunction>> dtmc =
46 std::unique_ptr<storm::modelchecker::CheckResult> result = checker.check(*formula);
51 EXPECT_EQ(storm::utility::parametric::evaluate<storm::RationalFunctionCoefficient>(quantitativeResult1.
sum(), instantiation),
52 storm::utility::convertNumber<storm::RationalFunctionCoefficient>(std::string(
"1/6")));
56 result = checker.check(*formula);
61 EXPECT_EQ(storm::utility::parametric::evaluate<storm::RationalFunctionCoefficient>(quantitativeResult2.
sum(), instantiation),
62 storm::utility::convertNumber<storm::RationalFunctionCoefficient>(std::string(
"1/6")));
66 result = checker.check(*formula);
71 EXPECT_EQ(storm::utility::parametric::evaluate<storm::RationalFunctionCoefficient>(quantitativeResult3.
sum(), instantiation),
72 storm::utility::convertNumber<storm::RationalFunctionCoefficient>(std::string(
"1/6")));
76 result = checker.check(*formula);
81 EXPECT_EQ(storm::utility::parametric::evaluate<storm::RationalFunctionCoefficient>(quantitativeResult4.
sum(), instantiation),
82 storm::utility::convertNumber<storm::RationalFunctionCoefficient>(std::string(
"11/3")));
84 GTEST_SKIP() <<
"Library Sylvan not available.";