Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
MarkovAutomatonTest.cpp
Go to the documentation of this file.
1#include "storm-config.h"
6#include "test/storm_gtest.h"
7
8TEST(MarkovAutomatonTest, ZenoCycleCheck) {
9#ifndef STORM_HAVE_Z3
10 GTEST_SKIP() << "Z3 not available.";
11#endif
12 storm::prism::Program program = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/ma/simple.ma");
13
14 std::shared_ptr<storm::models::sparse::Model<double>> model = storm::builder::ExplicitModelBuilder<double>(program).build();
15 EXPECT_EQ(5ul, model->getNumberOfStates());
16 EXPECT_EQ(8ul, model->getNumberOfTransitions());
17 ASSERT_TRUE(model->isOfType(storm::models::ModelType::MarkovAutomaton));
19
20 program = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/ma/hybrid_states.ma");
22 EXPECT_EQ(5ul, model->getNumberOfStates());
23 EXPECT_EQ(13ul, model->getNumberOfTransitions());
24 ASSERT_TRUE(model->isOfType(storm::models::ModelType::MarkovAutomaton));
26
27 program = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/ma/stream2.ma");
29 EXPECT_EQ(12ul, model->getNumberOfStates());
30 EXPECT_EQ(14ul, model->getNumberOfTransitions());
31 ASSERT_TRUE(model->isOfType(storm::models::ModelType::MarkovAutomaton));
33
34 program = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/ma/zeno.ma");
36 EXPECT_EQ(5ul, model->getNumberOfStates());
37 EXPECT_EQ(8ul, model->getNumberOfTransitions());
38 ASSERT_TRUE(model->isOfType(storm::models::ModelType::MarkovAutomaton));
40}
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.