|
|
@ -7,7 +7,7 @@ |
|
|
|
#include "storm/storage/expressions/LinearityCheckVisitor.h"
|
|
|
|
#include "storm/storage/expressions/SimpleValuation.h"
|
|
|
|
#include "storm/storage/expressions/ExpressionEvaluator.h"
|
|
|
|
#include "storm/storage/expressions/ValueTypeToExpression.h"
|
|
|
|
#include "storm/storage/expressions/RationalFunctionToExpression.h"
|
|
|
|
#include "storm/exceptions/InvalidTypeException.h"
|
|
|
|
#include "storm/adapters/RationalFunctionAdapter.h"
|
|
|
|
#include "storm-parsers/parser/ValueParser.h"
|
|
|
@ -300,21 +300,21 @@ TEST(Expression, SimplificationTest) { |
|
|
|
storm::expressions::Expression threeExpression; |
|
|
|
storm::expressions::Expression intVarExpression; |
|
|
|
|
|
|
|
ASSERT_NO_THROW(trueExpression = manager->boolean(true)); |
|
|
|
ASSERT_NO_THROW(falseExpression = manager->boolean(false)); |
|
|
|
ASSERT_NO_THROW(threeExpression = manager->integer(3)); |
|
|
|
ASSERT_NO_THROW(intVarExpression = manager->declareIntegerVariable("y")); |
|
|
|
ASSERT_NO_THROW(trueExpression = manager->boolean(true)); |
|
|
|
ASSERT_NO_THROW(falseExpression = manager->boolean(false)); |
|
|
|
ASSERT_NO_THROW(threeExpression = manager->integer(3)); |
|
|
|
ASSERT_NO_THROW(intVarExpression = manager->declareIntegerVariable("y")); |
|
|
|
|
|
|
|
storm::expressions::Expression tempExpression; |
|
|
|
storm::expressions::Expression simplifiedExpression; |
|
|
|
storm::expressions::Expression tempExpression; |
|
|
|
storm::expressions::Expression simplifiedExpression; |
|
|
|
|
|
|
|
ASSERT_NO_THROW(tempExpression = trueExpression || intVarExpression > threeExpression); |
|
|
|
ASSERT_NO_THROW(simplifiedExpression = tempExpression.simplify()); |
|
|
|
EXPECT_TRUE(simplifiedExpression.isTrue()); |
|
|
|
ASSERT_NO_THROW(tempExpression = trueExpression || intVarExpression > threeExpression); |
|
|
|
ASSERT_NO_THROW(simplifiedExpression = tempExpression.simplify()); |
|
|
|
EXPECT_TRUE(simplifiedExpression.isTrue()); |
|
|
|
|
|
|
|
ASSERT_NO_THROW(tempExpression = falseExpression && intVarExpression > threeExpression); |
|
|
|
ASSERT_NO_THROW(simplifiedExpression = tempExpression.simplify()); |
|
|
|
EXPECT_TRUE(simplifiedExpression.isFalse()); |
|
|
|
ASSERT_NO_THROW(tempExpression = falseExpression && intVarExpression > threeExpression); |
|
|
|
ASSERT_NO_THROW(simplifiedExpression = tempExpression.simplify()); |
|
|
|
EXPECT_TRUE(simplifiedExpression.isFalse()); |
|
|
|
} |
|
|
|
|
|
|
|
TEST(Expression, SimpleEvaluationTest) { |
|
|
@ -376,14 +376,14 @@ TEST(Expression, VisitorTest) { |
|
|
|
EXPECT_TRUE(visitor.check(tempExpression)); |
|
|
|
} |
|
|
|
|
|
|
|
TEST(Expression, ValueTypeToExpressionTest) { |
|
|
|
TEST(Expression, RationalFunctionToExpressionTest) { |
|
|
|
storm::parser::ValueParser<storm::RationalFunction> parser; |
|
|
|
parser.addParameter("p"); |
|
|
|
parser.addParameter("q"); |
|
|
|
auto rationalFunction = parser.parseValue("((5*p^(3))+(q*p*7)+2)/2"); |
|
|
|
|
|
|
|
std::shared_ptr<storm::expressions::ExpressionManager> manager(new storm::expressions::ExpressionManager()); |
|
|
|
auto transformer = storm::expressions::ValueTypeToExpression<storm::RationalFunction>(manager); |
|
|
|
auto transformer = storm::expressions::RationalFunctionToExpression<storm::RationalFunction>(manager); |
|
|
|
|
|
|
|
storm::expressions::Expression expr; |
|
|
|
EXPECT_NO_THROW(expr = transformer.toExpression(rationalFunction)); |
|
|
@ -396,7 +396,7 @@ TEST(Expression, ValueTypeToExpressionTest) { |
|
|
|
EXPECT_EQ(rationalFunction.toString(), result.toString()); |
|
|
|
|
|
|
|
rationalFunction = parser.parseValue("(5*((p^(3))+(q*p)))/2"); |
|
|
|
transformer = storm::expressions::ValueTypeToExpression<storm::RationalFunction>(manager); |
|
|
|
transformer = storm::expressions::RationalFunctionToExpression<storm::RationalFunction>(manager); |
|
|
|
EXPECT_NO_THROW(expr = transformer.toExpression(rationalFunction)); |
|
|
|
ASSERT_NO_THROW(rationalFunction.simplify()); |
|
|
|
ASSERT_NO_THROW(result = visitor.toRationalFunction(expr)); |
|
|
|