@ -1,6 +1,7 @@
# include "gtest/gtest.h"
# include "storm-config.h"
# include "src/models/sparse/StandardRewardModel.h"
# include "src/models/sparse/MarkovAutomaton.h"
# include "src/settings/SettingMemento.h"
# include "src/parser/PrismParser.h"
# include "src/builder/ExplicitModelBuilder.h"
@ -48,7 +49,7 @@ TEST(ExplicitJaniModelBuilderTest, Ctmc) {
storm : : prism : : Program program = storm : : parser : : PrismParser : : parse ( STORM_CPP_TESTS_BASE_PATH " /functional/builder/cluster2.sm " ) ;
storm : : jani : : Model janiModel = program . toJani ( ) ;
std : : shared_ptr < storm : : models : : sparse : : Model < double > > model = storm : : builder : : ExplicitModelBuilder < double > ( program ) . build ( ) ;
std : : shared_ptr < storm : : models : : sparse : : Model < double > > model = storm : : builder : : ExplicitModelBuilder < double > ( janiModel ) . build ( ) ;
EXPECT_EQ ( 276ul , model - > getNumberOfStates ( ) ) ;
EXPECT_EQ ( 1120ul , model - > getNumberOfTransitions ( ) ) ;
@ -81,7 +82,7 @@ TEST(ExplicitJaniModelBuilderTest, Mdp) {
storm : : prism : : Program program = storm : : parser : : PrismParser : : parse ( STORM_CPP_TESTS_BASE_PATH " /functional/builder/two_dice.nm " ) ;
storm : : jani : : Model janiModel = program . toJani ( ) ;
std : : shared_ptr < storm : : models : : sparse : : Model < double > > model = storm : : builder : : ExplicitModelBuilder < double > ( program ) . build ( ) ;
std : : shared_ptr < storm : : models : : sparse : : Model < double > > model = storm : : builder : : ExplicitModelBuilder < double > ( janiModel ) . build ( ) ;
EXPECT_EQ ( 169ul , model - > getNumberOfStates ( ) ) ;
EXPECT_EQ ( 436ul , model - > getNumberOfTransitions ( ) ) ;
@ -116,6 +117,33 @@ TEST(ExplicitJaniModelBuilderTest, Mdp) {
EXPECT_EQ ( 59ul , model - > getNumberOfTransitions ( ) ) ;
}
TEST ( ExplicitJaniModelBuilderTest , Ma ) {
storm : : prism : : Program program = storm : : parser : : PrismParser : : parse ( STORM_CPP_TESTS_BASE_PATH " /functional/builder/simple.ma " ) ;
storm : : jani : : Model janiModel = program . toJani ( ) ;
std : : shared_ptr < storm : : models : : sparse : : Model < double > > model = storm : : builder : : ExplicitModelBuilder < double > ( janiModel ) . build ( ) ;
EXPECT_EQ ( 5ul , model - > getNumberOfStates ( ) ) ;
EXPECT_EQ ( 8ul , model - > getNumberOfTransitions ( ) ) ;
ASSERT_TRUE ( model - > isOfType ( storm : : models : : ModelType : : MarkovAutomaton ) ) ;
EXPECT_EQ ( 4ul , model - > as < storm : : models : : sparse : : MarkovAutomaton < double > > ( ) - > getMarkovianStates ( ) . getNumberOfSetBits ( ) ) ;
program = storm : : parser : : PrismParser : : parse ( STORM_CPP_TESTS_BASE_PATH " /functional/builder/hybrid_states.ma " ) ;
janiModel = program . toJani ( ) ;
model = storm : : builder : : ExplicitModelBuilder < double > ( janiModel ) . build ( ) ;
EXPECT_EQ ( 5ul , model - > getNumberOfStates ( ) ) ;
EXPECT_EQ ( 13ul , model - > getNumberOfTransitions ( ) ) ;
ASSERT_TRUE ( model - > isOfType ( storm : : models : : ModelType : : MarkovAutomaton ) ) ;
EXPECT_EQ ( 5ul , model - > as < storm : : models : : sparse : : MarkovAutomaton < double > > ( ) - > getMarkovianStates ( ) . getNumberOfSetBits ( ) ) ;
program = storm : : parser : : PrismParser : : parse ( STORM_CPP_TESTS_BASE_PATH " /functional/builder/stream2.ma " ) ;
janiModel = program . toJani ( ) ;
model = storm : : builder : : ExplicitModelBuilder < double > ( janiModel ) . build ( ) ;
EXPECT_EQ ( 12ul , model - > getNumberOfStates ( ) ) ;
EXPECT_EQ ( 14ul , model - > getNumberOfTransitions ( ) ) ;
ASSERT_TRUE ( model - > isOfType ( storm : : models : : ModelType : : MarkovAutomaton ) ) ;
EXPECT_EQ ( 7ul , model - > as < storm : : models : : sparse : : MarkovAutomaton < double > > ( ) - > getMarkovianStates ( ) . getNumberOfSetBits ( ) ) ;
}
TEST ( ExplicitJaniModelBuilderTest , FailComposition ) {
storm : : prism : : Program program = storm : : parser : : PrismParser : : parse ( STORM_CPP_TESTS_BASE_PATH " /functional/builder/system_composition.nm " ) ;
storm : : jani : : Model janiModel = program . toJani ( ) ;
xxxxxxxxxx