Storm 1.11.1.1
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
MarkovAutomatonTest.cpp
Go to the documentation of this file.
1#include "storm-config.h"
2#include "test/storm_gtest.h"
3
8
9TEST(MarkovAutomatonTest, ZenoCycleCheck) {
10#ifndef STORM_HAVE_Z3
11 GTEST_SKIP() << "Z3 not available.";
12#endif
13 storm::prism::Program program = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/ma/simple.ma");
14
15 std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program).build();
16 EXPECT_EQ(5ul, model->getNumberOfStates());
17 EXPECT_EQ(8ul, model->getNumberOfTransitions());
18 ASSERT_TRUE(model->isOfType(storm::models::ModelType::MarkovAutomaton));
20
21 program = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/ma/hybrid_states.ma");
23 EXPECT_EQ(5ul, model->getNumberOfStates());
24 EXPECT_EQ(13ul, model->getNumberOfTransitions());
25 ASSERT_TRUE(model->isOfType(storm::models::ModelType::MarkovAutomaton));
27
28 program = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/ma/stream2.ma");
30 EXPECT_EQ(12ul, model->getNumberOfStates());
31 EXPECT_EQ(14ul, model->getNumberOfTransitions());
32 ASSERT_TRUE(model->isOfType(storm::models::ModelType::MarkovAutomaton));
34
35 program = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/ma/zeno.ma");
37 EXPECT_EQ(5ul, model->getNumberOfStates());
38 EXPECT_EQ(8ul, model->getNumberOfTransitions());
39 ASSERT_TRUE(model->isOfType(storm::models::ModelType::MarkovAutomaton));
41}
TEST(MarkovAutomatonTest, ZenoCycleCheck)
std::shared_ptr< storm::models::sparse::Model< ValueType, RewardModelType > > build()
Convert the program given at construction time to an abstract model.
This class represents a Markov automaton.
bool containsZenoCycle() const
Retrieves whether the Markov automaton contains Zeno cycles.
static storm::prism::Program parse(std::string const &filename, bool prismCompatability=false)
Parses the given file into the PRISM storage classes assuming it complies with the PRISM syntax.