11TEST(DirectEncodingParserTest, DtmcParsing) {
12 std::shared_ptr<storm::models::sparse::Model<double>> modelPtr =
17 ASSERT_EQ(8607ul, modelPtr->getNumberOfStates());
18 ASSERT_EQ(15113ul, modelPtr->getNumberOfTransitions());
19 ASSERT_TRUE(modelPtr->hasLabel(
"init"));
20 ASSERT_EQ(1ul, modelPtr->getInitialStates().getNumberOfSetBits());
21 ASSERT_TRUE(modelPtr->hasLabel(
"observeIGreater1"));
22 ASSERT_EQ(4650ul, modelPtr->getStates(
"observeIGreater1").getNumberOfSetBits());
23 ASSERT_TRUE(modelPtr->hasLabel(
"observe0Greater1"));
24 ASSERT_EQ(1260ul, modelPtr->getStates(
"observe0Greater1").getNumberOfSetBits());
27TEST(DirectEncodingParserTest, MdpParsing) {
28 std::shared_ptr<storm::models::sparse::Model<double>> modelPtr =
33 ASSERT_EQ(169ul, modelPtr->getNumberOfStates());
34 ASSERT_EQ(436ul, modelPtr->getNumberOfTransitions());
36 ASSERT_TRUE(modelPtr->hasLabel(
"init"));
37 ASSERT_EQ(1ul, modelPtr->getInitialStates().getNumberOfSetBits());
38 ASSERT_TRUE(modelPtr->hasLabel(
"six"));
39 ASSERT_EQ(5ul, modelPtr->getStates(
"six").getNumberOfSetBits());
40 ASSERT_TRUE(modelPtr->hasLabel(
"eleven"));
41 ASSERT_EQ(2ul, modelPtr->getStates(
"eleven").getNumberOfSetBits());
42 ASSERT_EQ(1ul, modelPtr->getNumberOfRewardModels());
43 ASSERT_TRUE(modelPtr->hasRewardModel(
"coinflips"));
44 ASSERT_TRUE(!modelPtr->getRewardModel(
"coinflips").hasStateRewards());
45 ASSERT_TRUE(modelPtr->getRewardModel(
"coinflips").hasStateActionRewards());
46 ASSERT_TRUE(!modelPtr->getRewardModel(
"coinflips").isAllZero());
49TEST(DirectEncodingParserTest, CtmcParsing) {
50 std::shared_ptr<storm::models::sparse::Model<double>> modelPtr =
55 ASSERT_EQ(276ul, modelPtr->getNumberOfStates());
56 ASSERT_EQ(1120ul, modelPtr->getNumberOfTransitions());
57 ASSERT_TRUE(modelPtr->hasLabel(
"init"));
58 ASSERT_EQ(1ul, modelPtr->getInitialStates().getNumberOfSetBits());
59 ASSERT_TRUE(modelPtr->hasLabel(
"premium"));
60 ASSERT_EQ(64ul, modelPtr->getStates(
"premium").getNumberOfSetBits());
61 ASSERT_TRUE(modelPtr->hasLabel(
"minimum"));
62 ASSERT_EQ(132ul, modelPtr->getStates(
"minimum").getNumberOfSetBits());
63 ASSERT_EQ(1ul, modelPtr->getNumberOfRewardModels());
64 ASSERT_TRUE(modelPtr->hasRewardModel(
"num_repairs"));
65 ASSERT_TRUE(!modelPtr->getRewardModel(
"num_repairs").hasStateRewards());
66 ASSERT_TRUE(modelPtr->getRewardModel(
"num_repairs").hasStateActionRewards());
67 ASSERT_TRUE(!modelPtr->getRewardModel(
"num_repairs").isAllZero());
70TEST(DirectEncodingParserTest, MarkovAutomatonParsing) {
71 std::shared_ptr<storm::models::sparse::Model<double>> modelPtr =
77 ASSERT_EQ(17ul, ma->getNumberOfStates());
78 ASSERT_EQ(25ul, ma->getNumberOfTransitions());
79 ASSERT_EQ(19ul, ma->getNumberOfChoices());
80 ASSERT_EQ(10ul, ma->getMarkovianStates().getNumberOfSetBits());
81 ASSERT_EQ(5, ma->getMaximalExitRate());
82 ASSERT_EQ(1ul, ma->getNumberOfRewardModels());
83 ASSERT_TRUE(ma->hasRewardModel(
"avg_waiting_time"));
84 ASSERT_TRUE(ma->getRewardModel(
"avg_waiting_time").hasStateRewards());
85 ASSERT_TRUE(!ma->getRewardModel(
"avg_waiting_time").hasStateActionRewards());
86 ASSERT_TRUE(!ma->getRewardModel(
"avg_waiting_time").isAllZero());
87 ASSERT_TRUE(modelPtr->hasLabel(
"init"));
88 ASSERT_EQ(1ul, modelPtr->getInitialStates().getNumberOfSetBits());
89 ASSERT_TRUE(modelPtr->hasLabel(
"one_job_finished"));
90 ASSERT_EQ(6ul, modelPtr->getStates(
"one_job_finished").getNumberOfSetBits());
102TEST(DirectEncodingParserTest, PomdpParsing) {
103 std::shared_ptr<storm::models::sparse::Model<double>> modelPtr =
108 ASSERT_EQ(15ul, modelPtr->getNumberOfStates());
109 ASSERT_EQ(66ul, modelPtr->getNumberOfTransitions());
111 ASSERT_TRUE(modelPtr->hasLabel(
"init"));
112 ASSERT_EQ(1ul, modelPtr->getInitialStates().getNumberOfSetBits());
113 ASSERT_TRUE(modelPtr->hasLabel(
"bad"));
114 ASSERT_EQ(2ul, modelPtr->getStates(
"bad").getNumberOfSetBits());
115 ASSERT_TRUE(modelPtr->hasLabel(
"goal"));
116 ASSERT_EQ(1ul, modelPtr->getStates(
"goal").getNumberOfSetBits());
117 ASSERT_EQ(1ul, modelPtr->getNumberOfRewardModels());
118 ASSERT_TRUE(modelPtr->hasRewardModel(
"rew"));
119 ASSERT_TRUE(!modelPtr->getRewardModel(
"rew").hasStateRewards());
120 ASSERT_TRUE(modelPtr->getRewardModel(
"rew").hasStateActionRewards());
121 ASSERT_TRUE(!modelPtr->getRewardModel(
"rew").isAllZero());
127 ASSERT_EQ(15ul, modelPtr->getNumberOfStates());
128 ASSERT_EQ(66ul, modelPtr->getNumberOfTransitions());
130 ASSERT_TRUE(modelPtr->hasLabel(
"init"));
131 ASSERT_EQ(1ul, modelPtr->getInitialStates().getNumberOfSetBits());
132 ASSERT_TRUE(modelPtr->hasLabel(
"bad"));
133 ASSERT_EQ(2ul, modelPtr->getStates(
"bad").getNumberOfSetBits());
134 ASSERT_TRUE(modelPtr->hasLabel(
"goal"));
135 ASSERT_EQ(1ul, modelPtr->getStates(
"goal").getNumberOfSetBits());
136 ASSERT_EQ(0ul, modelPtr->getNumberOfRewardModels());
137 ASSERT_FALSE(modelPtr->hasRewardModel());
static std::shared_ptr< storm::models::sparse::Model< ValueType, RewardModelType > > parseModel(std::string const &fil, DirectEncodingParserOptions const &options=DirectEncodingParserOptions())
Load a model in DRN format from a file and create the model.