16TEST(DeterministicModelBisimulationDecomposition, Die) {
17 std::shared_ptr<storm::models::sparse::Model<double>> abstractModel =
26 *dtmc, OptionsType::preservingAllLabels(DefaultTestTolerance));
28 std::shared_ptr<storm::models::sparse::Model<double>> result;
32 EXPECT_EQ(13ul, result->getNumberOfStates());
33 EXPECT_EQ(20ul, result->getNumberOfTransitions());
35 OptionsType options = OptionsType::preservingAllLabels(DefaultTestTolerance);
36 options.respectedAtomicPropositions = std::set<std::string>({
"one"});
39 ASSERT_NO_THROW(bisim2.computeBisimulationDecomposition());
40 ASSERT_NO_THROW(result = bisim2.getQuotient());
43 EXPECT_EQ(5ul, result->getNumberOfStates());
44 EXPECT_EQ(8ul, result->getNumberOfTransitions());
53 EXPECT_EQ(5ul, result->getNumberOfStates());
54 EXPECT_EQ(8ul, result->getNumberOfTransitions());
59 OptionsType options2(*dtmc, *formula, DefaultTestTolerance);
65 EXPECT_EQ(5ul, result->getNumberOfStates());
66 EXPECT_EQ(8ul, result->getNumberOfTransitions());
69TEST(DeterministicModelBisimulationDecomposition, Crowds) {
70 std::shared_ptr<storm::models::sparse::Model<double>> abstractModel =
79 *dtmc, OptionsType::preservingAllLabels(DefaultTestTolerance));
80 std::shared_ptr<storm::models::sparse::Model<double>> result;
85 EXPECT_EQ(334ul, result->getNumberOfStates());
86 EXPECT_EQ(546ul, result->getNumberOfTransitions());
88 OptionsType options = OptionsType::preservingAllLabels(DefaultTestTolerance);
89 options.respectedAtomicPropositions = std::set<std::string>({
"observe0Greater1"});
92 ASSERT_NO_THROW(bisim2.computeBisimulationDecomposition());
93 ASSERT_NO_THROW(result = bisim2.getQuotient());
96 EXPECT_EQ(65ul, result->getNumberOfStates());
97 EXPECT_EQ(105ul, result->getNumberOfTransitions());
106 EXPECT_EQ(43ul, result->getNumberOfStates());
107 EXPECT_EQ(83ul, result->getNumberOfTransitions());
112 OptionsType options3(*dtmc, *formula, DefaultTestTolerance);
119 EXPECT_EQ(64ul, result->getNumberOfStates());
120 EXPECT_EQ(104ul, result->getNumberOfTransitions());
124 OptionsType options4(*dtmc, *formula, DefaultTestTolerance);
131 EXPECT_EQ(65ul, result->getNumberOfStates());
132 EXPECT_EQ(105ul, result->getNumberOfTransitions());
138TEST(DeterministicModelBisimulationDecomposition, Cluster) {
140 GTEST_SKIP() <<
"CTMC bisimulation currently yields unstable results.";
142 GTEST_SKIP() <<
"Z3 not available.";
145 std::shared_ptr<storm::models::sparse::Model<double>> model =
150 ASSERT_EQ(3478ul, ctmc->getNumberOfStates());
151 ASSERT_EQ(14639ul, ctmc->getNumberOfTransitions());
156 *ctmc, OptionsType::preservingAllLabels(DefaultTestTolerance));
157 std::shared_ptr<storm::models::sparse::Model<double>> result;
162 EXPECT_EQ(1731ul, result->getNumberOfStates());
163 EXPECT_EQ(8619ul, result->getNumberOfTransitions());
165 OptionsType options = OptionsType::preservingAllLabels(DefaultTestTolerance);
166 options.respectedAtomicPropositions = std::set<std::string>({
"down"});
168 ASSERT_NO_THROW(bisim2.computeBisimulationDecomposition());
169 ASSERT_NO_THROW(result = bisim2.getQuotient());
172 EXPECT_EQ(1618ul, result->getNumberOfStates());
173 EXPECT_EQ(8816ul, result->getNumberOfTransitions());
181 EXPECT_EQ(41ul, result->getNumberOfStates());
182 EXPECT_EQ(159ul, result->getNumberOfTransitions());
186 OptionsType options3(*ctmc, *formula, DefaultTestTolerance);
192 EXPECT_EQ(1618ul, result->getNumberOfStates());
193 EXPECT_EQ(8816ul, result->getNumberOfTransitions());
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="", ExplicitModelParserOptions const &options=ExplicitModelParserOptions())
Checks the given files and parses the model within these files.