Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
AddUncertaintyTest.cpp
Go to the documentation of this file.
1#include "storm-config.h"
4#include "storm/api/storm.h"
6#include "test/storm_gtest.h"
7
8TEST(AddUncertaintyTransformerTest, BrpTest) {
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 "/dtmc/brp-16-2.pm");
13 std::string formulasString = "P=? [ F \"target\"]";
15 auto model = storm::api::buildSparseModel<double>(program, formulas);
16
17 auto transformer = storm::transformer::AddUncertainty(model);
18 auto uncertainModel = transformer.transform(0.01);
19 EXPECT_EQ(uncertainModel->getNumberOfStates(), model->getNumberOfStates());
20 EXPECT_EQ(uncertainModel->getNumberOfTransitions(), model->getNumberOfTransitions());
21 EXPECT_TRUE(uncertainModel->hasUncertainty());
22}
23
24TEST(AddUncertaintyTransformerTest, Coin22Test) {
25#ifndef STORM_HAVE_Z3
26 GTEST_SKIP() << "Z3 not available.";
27#endif
28 storm::prism::Program program = storm::parser::PrismParser::parse(STORM_TEST_RESOURCES_DIR "/mdp/coin2-2.nm");
29 std::string formulasString = "Pmax=? [ F \"all_coins_equal_1\"]";
31 auto model = storm::api::buildSparseModel<double>(program, formulas);
32
33 auto transformer = storm::transformer::AddUncertainty(model);
34 auto uncertainModel = transformer.transform(0.01);
35 EXPECT_EQ(uncertainModel->getNumberOfStates(), model->getNumberOfStates());
36 EXPECT_EQ(uncertainModel->getNumberOfTransitions(), model->getNumberOfTransitions());
37 EXPECT_TRUE(uncertainModel->hasUncertainty());
38}
TEST(AddUncertaintyTransformerTest, BrpTest)
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.
This class is a convenience transformer to add uncertainty.
std::vector< storm::jani::Property > parsePropertiesForPrismProgram(std::string const &inputString, storm::prism::Program const &program, boost::optional< std::set< std::string > > const &propertyFilter)
std::vector< std::shared_ptr< storm::logic::Formula const > > extractFormulasFromProperties(std::vector< storm::jani::Property > const &properties)