63 model->getManager().execute([&]() {
68 EXPECT_EQ(11ul, quotient->getNumberOfStates());
69 EXPECT_EQ(17ul, quotient->getNumberOfTransitions());
71 EXPECT_TRUE(quotient->isSymbolicModel());
76 std::vector<std::shared_ptr<storm::logic::Formula const>> formulas;
77 formulas.push_back(formula);
83 EXPECT_EQ(5ul, quotient->getNumberOfStates());
84 EXPECT_EQ(8ul, quotient->getNumberOfTransitions());
86 EXPECT_TRUE(quotient->isSymbolicModel());
96 model->getManager().execute([&]() {
101 ASSERT_TRUE(quotient->isSymbolicModel());
111 std::pair<double, double> resultBounds;
113 std::unique_ptr<storm::modelchecker::CheckResult> result = checker.check(*minFormula);
115 resultBounds.first = result->asQuantitativeCheckResult<
double>().sum();
116 result = checker.check(*maxFormula);
118 resultBounds.second = result->asQuantitativeCheckResult<
double>().sum();
128 ASSERT_TRUE(quotient->isSymbolicModel());
133 result = checker2.check(*minFormula);
135 resultBounds.first = result->asQuantitativeCheckResult<
double>().sum();
136 result = checker2.check(*maxFormula);
138 resultBounds.second = result->asQuantitativeCheckResult<
double>().sum();
141 EXPECT_NEAR(resultBounds.second,
static_cast<double>(1) / 3, 1e-6);
148 ASSERT_TRUE(quotient->isSymbolicModel());
153 result = checker3.check(*minFormula);
155 resultBounds.first = result->asQuantitativeCheckResult<
double>().sum();
156 result = checker3.check(*maxFormula);
158 resultBounds.second = result->asQuantitativeCheckResult<
double>().sum();
160 EXPECT_NEAR(resultBounds.first,
static_cast<double>(1) / 6, 1e-6);
161 EXPECT_NEAR(resultBounds.second,
static_cast<double>(1) / 6, 1e-6);
162 EXPECT_NEAR(resultBounds.first, resultBounds.second, 1e-6);
168 ASSERT_TRUE(quotient->isSymbolicModel());
175 result = checker4.check(*formula);
177 resultBounds.first = resultBounds.second = result->asQuantitativeCheckResult<
double>().sum();
179 EXPECT_NEAR(resultBounds.first,
static_cast<double>(1) / 6, 1e-6);
190 std::shared_ptr<storm::models::symbolic::Model<DdType, double>> model =
193 model->getManager().execute([&]() {
198 EXPECT_EQ(2007ul, quotient->getNumberOfStates());
199 EXPECT_EQ(3738ul, quotient->getNumberOfTransitions());
201 EXPECT_TRUE(quotient->isSymbolicModel());
206 std::vector<std::shared_ptr<storm::logic::Formula const>> formulas;
207 formulas.push_back(formula);
213 EXPECT_EQ(65ul, quotient->getNumberOfStates());
214 EXPECT_EQ(105ul, quotient->getNumberOfTransitions());
216 EXPECT_TRUE(quotient->isSymbolicModel());
226 model->getManager().execute([&]() {
231 EXPECT_EQ(77ul, quotient->getNumberOfStates());
232 EXPECT_EQ(210ul, quotient->getNumberOfTransitions());
234 EXPECT_TRUE(quotient->isSymbolicModel());
240 std::vector<std::shared_ptr<storm::logic::Formula const>> formulas;
241 formulas.push_back(formula);
247 EXPECT_EQ(11ul, quotient->getNumberOfStates());
248 EXPECT_EQ(34ul, quotient->getNumberOfTransitions());
250 EXPECT_TRUE(quotient->isSymbolicModel());
268 model->getManager().execute([&]() {
273 EXPECT_EQ(252ul, quotient->getNumberOfStates());
274 EXPECT_EQ(624ul, quotient->getNumberOfTransitions());
276 EXPECT_TRUE(quotient->isSymbolicModel());
279 std::vector<std::shared_ptr<storm::logic::Formula const>> formulas;
280 formulas.push_back(formula);
286 EXPECT_EQ(1107ul, quotient->getNumberOfStates());
287 EXPECT_EQ(2684ul, quotient->getNumberOfTransitions());
289 EXPECT_TRUE(quotient->isSymbolicModel());
std::shared_ptr< storm::models::symbolic::Model< Type, ValueType > > build(storm::Environment const &env, storm::prism::Program const &program, Options const &options=Options())
Translates the given program into a symbolic model (i.e.