1#include "storm-config.h"
13#ifdef STORM_HAVE_MATHSAT
20TEST(SmtSolverFactory, EnvironmentIsSeededFromSettings) {
32#if defined STORM_HAVE_MATHSAT && !defined STORM_DEFAULT_SMT_SOLVER_MATHSAT
33#define STORM_TEST_ALTERNATIVE_SMT_SOLVER storm::solver::SmtSolverType::Mathsat
34#define STORM_TEST_ALTERNATIVE_SMT_SOLVER_TYPE storm::solver::MathsatSmtSolver
35#elif defined STORM_HAVE_Z3 && !defined STORM_DEFAULT_SMT_SOLVER_Z3
36#define STORM_TEST_ALTERNATIVE_SMT_SOLVER storm::solver::SmtSolverType::Z3
37#define STORM_TEST_ALTERNATIVE_SMT_SOLVER_TYPE storm::solver::Z3SmtSolver
40#ifdef STORM_TEST_ALTERNATIVE_SMT_SOLVER
41TEST(SmtSolverFactory, EnvironmentOverridesSmtSolver) {
51 ASSERT_NE(solver,
nullptr);
52 EXPECT_NE(
dynamic_cast<STORM_TEST_ALTERNATIVE_SMT_SOLVER_TYPE*
>(solver.get()),
nullptr);
55TEST(SmtSolverFactory, EnvironmentSelectionIsUsedEvenIfSeededFromDefault) {
66 ASSERT_NE(solver,
nullptr);
67 EXPECT_NE(
dynamic_cast<STORM_TEST_ALTERNATIVE_SMT_SOLVER_TYPE*
>(solver.get()),
nullptr);
71#if defined STORM_DEFAULT_SMT_SOLVER_Z3 || defined STORM_DEFAULT_SMT_SOLVER_MATHSAT
72TEST(SmtSolverFactory, WithoutEnvironmentTheCompileTimeDefaultIsUsed) {
77 ASSERT_NE(solver,
nullptr);
78#ifdef STORM_DEFAULT_SMT_SOLVER_Z3
TEST(SmtSolverFactory, EnvironmentIsSeededFromSettings)
SolverEnvironment & solver()
bool isSmtSolverTypeSetFromDefaultValue() const
storm::solver::SmtSolverType const & getSmtSolverType() const
Retrieves the SMT solver that is currently selected.
void setSmtSolverType(storm::solver::SmtSolverType const &value, bool isSetFromDefault=false)
This class is responsible for managing a set of typed variables and all expressions using these varia...
SettingsType const & getModule()
Get module.
SettingsManager const & manager()
Retrieves the settings manager.
std::unique_ptr< storm::solver::SmtSolver > getSmtSolver(storm::expressions::ExpressionManager &manager)