Search in sources :

Example 16 with SmtExpr

use of org.evosuite.symbolic.solver.smt.SmtExpr in project evosuite by EvoSuite.

the class ExprToCVC4Visitor method visit.

@Override
public SmtExpr visit(RealToIntegerCast e, Void v) {
    SmtExpr argument = e.getArgument().accept(this, null);
    if (argument == null) {
        return null;
    }
    if (!argument.isSymbolic()) {
        long longValue = e.getConcreteValue();
        return SmtExprBuilder.mkIntConstant(longValue);
    }
    SmtExpr intExpr = SmtExprBuilder.mkReal2Int(argument);
    return intExpr;
}
Also used : SmtExpr(org.evosuite.symbolic.solver.smt.SmtExpr)

Example 17 with SmtExpr

use of org.evosuite.symbolic.solver.smt.SmtExpr in project evosuite by EvoSuite.

the class ExprToCVC4Visitor method visit.

@Override
public SmtExpr visit(StringReaderExpr e, Void v) {
    long longValue = e.getConcreteValue();
    SmtExpr intConst = SmtExprBuilder.mkIntConstant(longValue);
    return intConst;
}
Also used : SmtExpr(org.evosuite.symbolic.solver.smt.SmtExpr)

Example 18 with SmtExpr

use of org.evosuite.symbolic.solver.smt.SmtExpr in project evosuite by EvoSuite.

the class ExprToCVC4Visitor method visit.

@Override
public SmtExpr visit(IntegerToRealCast e, Void v) {
    SmtExpr integerExpr = e.getArgument().accept(this, null);
    if (integerExpr == null) {
        return null;
    }
    if (!integerExpr.isSymbolic()) {
        double doubleValue = e.getConcreteValue();
        return SmtExprBuilder.mkRealConstant(doubleValue);
    }
    SmtExpr realExpr = SmtExprBuilder.mkInt2Real(integerExpr);
    return realExpr;
}
Also used : SmtExpr(org.evosuite.symbolic.solver.smt.SmtExpr)

Example 19 with SmtExpr

use of org.evosuite.symbolic.solver.smt.SmtExpr in project evosuite by EvoSuite.

the class ExprToCVC4Visitor method visit.

@Override
public SmtExpr visit(StringBinaryToIntegerExpression e, Void v) {
    Expression<String> leftOperand = e.getLeftOperand();
    Operator op = e.getOperator();
    Expression<?> rightOperand = e.getRightOperand();
    SmtExpr left = leftOperand.accept(this, null);
    SmtExpr right = rightOperand.accept(this, null);
    if (left == null || right == null) {
        return null;
    }
    if (!left.isSymbolic() && !right.isSymbolic()) {
        long longValue = e.getConcreteValue();
        return SmtExprBuilder.mkIntConstant(longValue);
    }
    switch(op) {
        case CHARAT:
            {
                SmtExpr charAtExpr = SmtExprBuilder.mkStrAt(left, right);
                SmtExpr strToInt = SmtExprBuilder.mkCharToInt(charAtExpr);
                return strToInt;
            }
        case INDEXOFS:
            {
                SmtExpr zeroIndex = SmtExprBuilder.mkIntConstant(0);
                SmtExpr indexOf = SmtExprBuilder.mkStrIndexOf(left, right, zeroIndex);
                return indexOf;
            }
        case INDEXOFC:
            {
                SmtExpr zeroIndex = SmtExprBuilder.mkIntConstant(0);
                SmtExpr charExpr = SmtExprBuilder.mkIntToChar(right);
                SmtExpr indexOf = SmtExprBuilder.mkStrIndexOf(left, charExpr, zeroIndex);
                return indexOf;
            }
        case LASTINDEXOFC:
        case LASTINDEXOFS:
        case COMPARETO:
        case COMPARETOIGNORECASE:
            {
                long longValue = e.getConcreteValue();
                return SmtExprBuilder.mkIntConstant(longValue);
            }
        default:
            {
                throw new UnsupportedOperationException("Not implemented yet!" + e.getOperator());
            }
    }
}
Also used : Operator(org.evosuite.symbolic.expr.Operator) SmtExpr(org.evosuite.symbolic.solver.smt.SmtExpr)

Example 20 with SmtExpr

use of org.evosuite.symbolic.solver.smt.SmtExpr in project evosuite by EvoSuite.

the class ExprToCVC4Visitor method visit.

@Override
public SmtExpr visit(StringMultipleToIntegerExpression e, Void v) {
    SmtExpr left = e.getLeftOperand().accept(this, null);
    SmtExpr right = e.getRightOperand().accept(this, null);
    List<SmtExpr> others = new LinkedList<SmtExpr>();
    for (Expression<?> otherExpr : e.getOther()) {
        SmtExpr otherSmtExpr = otherExpr.accept(this, null);
        others.add(otherSmtExpr);
    }
    if (isNull(left, right, others)) {
        return null;
    }
    if (!isSymbolic(left, right, others)) {
        long longValue = e.getConcreteValue();
        return SmtExprBuilder.mkIntConstant(longValue);
    }
    Operator op = e.getOperator();
    switch(op) {
        case INDEXOFSI:
            {
                SmtExpr other = e.getOther().get(0).accept(this, null);
                SmtExpr indexOf = SmtExprBuilder.mkStrIndexOf(left, right, other);
                return indexOf;
            }
        case INDEXOFCI:
            {
                SmtExpr int2Str = SmtExprBuilder.mkIntToChar(right);
                SmtExpr other = e.getOther().get(0).accept(this, null);
                SmtExpr indexOf = SmtExprBuilder.mkStrIndexOf(left, int2Str, other);
                return indexOf;
            }
        case LASTINDEXOFCI:
        case LASTINDEXOFSI:
            {
                long longValue = e.getConcreteValue();
                SmtExpr intNum = SmtExprBuilder.mkIntConstant(longValue);
                return intNum;
            }
        default:
            {
                throw new UnsupportedOperationException("Not implemented yet! " + op);
            }
    }
}
Also used : Operator(org.evosuite.symbolic.expr.Operator) SmtExpr(org.evosuite.symbolic.solver.smt.SmtExpr) LinkedList(java.util.LinkedList)

Aggregations

SmtExpr (org.evosuite.symbolic.solver.smt.SmtExpr)60 Operator (org.evosuite.symbolic.expr.Operator)14 LinkedList (java.util.LinkedList)8 Comparator (org.evosuite.symbolic.expr.Comparator)6 SmtAssertion (org.evosuite.symbolic.solver.smt.SmtAssertion)6 SmtIntConstant (org.evosuite.symbolic.solver.smt.SmtIntConstant)6 SmtConstantDeclaration (org.evosuite.symbolic.solver.smt.SmtConstantDeclaration)5 Expression (org.evosuite.symbolic.expr.Expression)4 IntegerBinaryExpression (org.evosuite.symbolic.expr.bv.IntegerBinaryExpression)4 IntegerUnaryExpression (org.evosuite.symbolic.expr.bv.IntegerUnaryExpression)4 RealUnaryToIntegerExpression (org.evosuite.symbolic.expr.bv.RealUnaryToIntegerExpression)4 StringBinaryToIntegerExpression (org.evosuite.symbolic.expr.bv.StringBinaryToIntegerExpression)4 StringMultipleToIntegerExpression (org.evosuite.symbolic.expr.bv.StringMultipleToIntegerExpression)4 StringUnaryToIntegerExpression (org.evosuite.symbolic.expr.bv.StringUnaryToIntegerExpression)4 RealBinaryExpression (org.evosuite.symbolic.expr.fp.RealBinaryExpression)4 RealUnaryExpression (org.evosuite.symbolic.expr.fp.RealUnaryExpression)4 GetFieldExpression (org.evosuite.symbolic.expr.ref.GetFieldExpression)4 StringBinaryExpression (org.evosuite.symbolic.expr.str.StringBinaryExpression)4 StringMultipleExpression (org.evosuite.symbolic.expr.str.StringMultipleExpression)4 StringUnaryExpression (org.evosuite.symbolic.expr.str.StringUnaryExpression)4