use of org.evosuite.symbolic.expr.StringConstraint in project evosuite by EvoSuite.
the class ConstraintNormalizer method createStringConstraint.
private static Constraint<?> createStringConstraint(IntegerConstraint c) {
if (c.getLeftOperand() instanceof StringComparison) {
StringComparison string_comparison = (StringComparison) c.getLeftOperand();
@SuppressWarnings("unchecked") Expression<Long> number_expr = (Expression<Long>) c.getRightOperand();
IntegerConstant constant = new IntegerConstant(number_expr.getConcreteValue());
return new StringConstraint(string_comparison, c.getComparator(), constant);
} else {
assert c.getRightOperand() instanceof StringComparison;
StringComparison string_comparison = (StringComparison) c.getRightOperand();
@SuppressWarnings("unchecked") Expression<Long> number_expr = (Expression<Long>) c.getLeftOperand();
IntegerConstant constant = new IntegerConstant(number_expr.getConcreteValue());
return new StringConstraint(string_comparison, c.getComparator(), constant);
}
}
use of org.evosuite.symbolic.expr.StringConstraint in project evosuite by EvoSuite.
the class StringAVM method getTokenDelimiters.
private static Set<StringValue> getTokenDelimiters(Collection<Constraint<?>> constraints) {
Set<StringValue> delimiters = new HashSet<StringValue>();
for (Constraint<?> constraint : constraints) {
if (constraint instanceof StringConstraint) {
StringConstraint stringConstraint = (StringConstraint) constraint;
if (stringConstraint.getLeftOperand() instanceof HasMoreTokensExpr) {
HasMoreTokensExpr hasMoreTokensExpr = (HasMoreTokensExpr) stringConstraint.getLeftOperand();
StringValue delimiter = hasMoreTokensExpr.getTokenizerExpr().getDelimiter();
delimiters.add(delimiter);
}
}
}
return delimiters;
}
use of org.evosuite.symbolic.expr.StringConstraint in project evosuite by EvoSuite.
the class TestPatternSearch method testMatcherMatches.
@Test
public void testMatcherMatches() throws SolverEmptyQueryException {
String input = "random_value";
String format = "(\\d+)-(\\d\\d)-(\\d)";
// String format = "^(\\d+)-(\\d\\d)-(\\d)$";
StringVariable var0 = new StringVariable("var0", input);
StringConstant symb_regex = ExpressionFactory.buildNewStringConstant(format);
StringBinaryComparison strComp = new StringBinaryComparison(symb_regex, Operator.PATTERNMATCHES, var0, 0L);
StringConstraint constraint = new StringConstraint(strComp, Comparator.NE, new IntegerConstant(0));
List<Constraint<?>> constraints = Collections.<Constraint<?>>singletonList(constraint);
try {
EvoSuiteSolver solver = new EvoSuiteSolver();
SolverResult result = solver.solve(constraints);
assertTrue(result.isSAT());
Map<String, Object> model = result.getModel();
String var0_value = (String) model.get("var0");
Pattern pattern = Pattern.compile(format);
Matcher matcher = pattern.matcher(var0_value);
assertTrue(matcher.matches());
} catch (SolverTimeoutException e) {
fail();
}
}
use of org.evosuite.symbolic.expr.StringConstraint in project evosuite by EvoSuite.
the class TestStringSearch method testRegexMatchesTrue.
@Test
public void testRegexMatchesTrue() {
List<Constraint<?>> constraints = new ArrayList<Constraint<?>>();
String var1 = "test";
String const2 = "TEST";
StringVariable strVar = new StringVariable("test1", var1);
StringConstant strConst = new StringConstant(const2);
StringBinaryComparison strComp = new StringBinaryComparison(strVar, Operator.PATTERNMATCHES, strConst, 0L);
constraints.add(new StringConstraint(strComp, Comparator.NE, new IntegerConstant(0)));
EvoSuiteSolver skr = new EvoSuiteSolver();
Map<String, Object> result;
try {
result = solve(skr, constraints);
assertNotNull(result);
assertNotNull(result.get("test1"));
assertTrue(result.get("test1").toString().matches(const2));
} catch (SolverTimeoutException e) {
fail();
}
}
use of org.evosuite.symbolic.expr.StringConstraint in project evosuite by EvoSuite.
the class TestStringSearch method testEqualsIgnoreCaseTrueConstant.
@Test
public void testEqualsIgnoreCaseTrueConstant() {
List<Constraint<?>> constraints = new ArrayList<Constraint<?>>();
String var1 = "foo";
String const2 = "Fest";
StringVariable strVar = new StringVariable("test1", var1);
StringConstant strConst = new StringConstant(const2);
StringBinaryComparison strComp = new StringBinaryComparison(strVar, Operator.EQUALSIGNORECASE, strConst, 0L);
constraints.add(new StringConstraint(strComp, Comparator.NE, new IntegerConstant(0)));
EvoSuiteSolver skr = new EvoSuiteSolver();
Map<String, Object> result;
try {
result = solve(skr, constraints);
assertNotNull(result);
assertNotNull(result.get("test1"));
assertTrue(const2.equalsIgnoreCase(result.get("test1").toString()));
} catch (SolverTimeoutException e) {
fail();
}
}
Aggregations