1#include "storm-config.h"
9TEST(StronglyConnectedComponentDecomposition, SmallSystemFromMatrix) {
23 ASSERT_NO_THROW(matrix = matrixBuilder.
build());
29 ASSERT_EQ(4ul, sccDecomposition.
size());
33 ASSERT_EQ(3ul, sccDecomposition.
size());
37 ASSERT_EQ(1ul, sccDecomposition.
size());
40TEST(StronglyConnectedComponentDecomposition, FullSystem1) {
41 std::shared_ptr<storm::models::sparse::Model<double>> abstractModel =
50 ASSERT_EQ(5ul, sccDecomposition.size());
54 ASSERT_EQ(2ul, sccDecomposition.size());
58 ASSERT_EQ(2ul, sccDecomposition.size());
60 markovAutomaton =
nullptr;
63TEST(StronglyConnectedComponentDecomposition, FullSystem2) {
64 std::shared_ptr<storm::models::sparse::Model<double>> abstractModel =
74 ASSERT_EQ(2ul, sccDecomposition.size());
89 ASSERT_EQ(1ul, sccDecomposition.size());
91 markovAutomaton =
nullptr;
TEST(StronglyConnectedComponentDecomposition, SmallSystemFromMatrix)
This class represents a Markov automaton.
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="")
Checks the given files and parses the model within these files.
std::size_t size() const
Retrieves the number of blocks of this decomposition.
A class that can be used to build a sparse matrix by adding value by value.
void addNextValue(index_type row, index_type column, value_type const &value)
Sets the matrix entry at the given row and column to the given value.
SparseMatrix< value_type > build(index_type overriddenRowCount=0, index_type overriddenColumnCount=0, index_type overriddenRowGroupCount=0)
A class that holds a possibly non-square matrix in the compressed row storage format.
iterator begin()
Returns an iterator to the states in this SCC.
iterator end()
Returns an iterator that points one past the end of the states in this SCC.
This class represents the decomposition of a graph-like structure into its strongly connected compone...
StronglyConnectedComponentDecompositionOptions & dropNaiveSccs(bool value=true)
Sets if trivial SCCs (i.e. SCCs consisting of just one state without a self-loop) are to be kept in t...
StronglyConnectedComponentDecompositionOptions & onlyBottomSccs(bool value=true)
Sets if only bottom SCCs, i.e. SCCs in which all states have no way of leaving the SCC),...