14TEST(ObservationTraceUnfolder, Simple) {
16 GTEST_SKIP() <<
"Z3 not available.";
21 std::shared_ptr<storm::models::sparse::Pomdp<double>> pomdp =
25 std::shared_ptr<storm::expressions::ExpressionManager> exprManager = std::make_shared<storm::expressions::ExpressionManager>();
30 uint64_t initialState = pomdp->getInitialStates().getNextSetIndex(0);
31 std::vector<uint32_t> observations = {pomdp->getObservation(initialState), pomdp->getObservation(initialState), pomdp->getObservation(initialState)};
33 std::shared_ptr<storm::models::sparse::Mdp<double>> unfolded = unfolder.
transform(observations);
34 EXPECT_TRUE(unfolded !=
nullptr);
35 EXPECT_GT(unfolded->getNumberOfStates(), 0u);
36 EXPECT_TRUE(unfolded->getStateLabeling().containsLabel(
"_goal"));
37 EXPECT_TRUE(unfolded->getStateLabeling().containsLabel(
"_end"));
38 EXPECT_TRUE(unfolded->getStateLabeling().containsLabel(
"init"));
39 EXPECT_EQ(1u, unfolded->getInitialStates().getNumberOfSetBits());
42TEST(ObservationTraceUnfolder, ExpressionManagerOutlivesConstructorArgument) {
45 GTEST_SKIP() <<
"Z3 not available.";
50 std::shared_ptr<storm::models::sparse::Pomdp<double>> pomdp =
56 std::unique_ptr<storm::pomdp::ObservationTraceUnfolder<double>> unfolder;
58 std::shared_ptr<storm::expressions::ExpressionManager> exprManager = std::make_shared<storm::expressions::ExpressionManager>();
59 unfolder = std::make_unique<storm::pomdp::ObservationTraceUnfolder<double>>(*pomdp, risk, exprManager, options);
63 uint64_t initialState = pomdp->getInitialStates().getNextSetIndex(0);
64 std::vector<uint32_t> observations = {pomdp->getObservation(initialState), pomdp->getObservation(initialState), pomdp->getObservation(initialState)};
66 std::shared_ptr<storm::models::sparse::Mdp<double>> unfolded = unfolder->transform(observations);
67 EXPECT_TRUE(unfolded !=
nullptr);
68 EXPECT_GT(unfolded->getNumberOfStates(), 0u);
Program preprocess(std::map< storm::expressions::Variable, storm::expressions::Expression > const &constantDefinitions) const
Preprocesses the program by defining the given constant definitions, substituting constants and formu...
std::shared_ptr< storm::models::sparse::Model< ValueType > > buildSparseModel(storm::storage::SymbolicModelDescription const &model, storm::builder::BuilderOptions const &options, typename storm::builder::ExplicitModelBuilder< ValueType >::Options const &explorationOptions=typename storm::builder::ExplicitModelBuilder< ValueType >::Options())