21TEST(SymbolicDtmcPrctlModelCheckerTest, Die_RationalFunction_Sylvan) {
22#ifdef STORM_HAVE_SYLVAN
33 std::shared_ptr<storm::models::symbolic::Model<storm::dd::DdType::Sylvan, storm::RationalFunction>> model =
35 EXPECT_EQ(13ul, model->getNumberOfStates());
36 EXPECT_EQ(20ul, model->getNumberOfTransitions());
39 std::map<storm::RationalFunctionVariable, storm::RationalFunctionCoefficient> instantiation;
40 std::set<storm::RationalFunctionVariable> variables = model->getParameters();
41 ASSERT_EQ(1ull, variables.size());
42 instantiation.emplace(*variables.begin(), storm::utility::convertNumber<storm::RationalFunctionCoefficient>(std::string(
"1/2")));
44 std::shared_ptr<storm::models::symbolic::Dtmc<storm::dd::DdType::Sylvan, storm::RationalFunction>> dtmc =
51 std::unique_ptr<storm::modelchecker::CheckResult> result = checker.check(*formula);
56 EXPECT_EQ(storm::utility::parametric::evaluate<storm::RationalFunctionCoefficient>(quantitativeResult1.
sum(), instantiation),
57 storm::utility::convertNumber<storm::RationalFunctionCoefficient>(std::string(
"1/6")));
61 result = checker.check(*formula);
66 EXPECT_EQ(storm::utility::parametric::evaluate<storm::RationalFunctionCoefficient>(quantitativeResult2.
sum(), instantiation),
67 storm::utility::convertNumber<storm::RationalFunctionCoefficient>(std::string(
"1/6")));
71 result = checker.check(*formula);
76 EXPECT_EQ(storm::utility::parametric::evaluate<storm::RationalFunctionCoefficient>(quantitativeResult3.
sum(), instantiation),
77 storm::utility::convertNumber<storm::RationalFunctionCoefficient>(std::string(
"1/6")));
81 result = checker.check(*formula);
86 EXPECT_EQ(storm::utility::parametric::evaluate<storm::RationalFunctionCoefficient>(quantitativeResult4.
sum(), instantiation),
87 storm::utility::convertNumber<storm::RationalFunctionCoefficient>(std::string(
"11/3")));
89 GTEST_SKIP() <<
"Library Sylvan not available.";