Skip to content

Commit aa7f21c

Browse files
author
Daniel Kroening
authored
Merge pull request diffblue#530 from lucasccordeiro/string-regression
added test cases to check the string-solver
2 parents 2cf0e70 + b1de100 commit aa7f21c

File tree

217 files changed

+1911
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

217 files changed

+1911
-0
lines changed
Binary file not shown.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import java.util.regex.Matcher;
2+
import java.util.regex.Pattern;
3+
4+
public class RegexMatches01
5+
{
6+
public static void main(String[] args)
7+
{
8+
Pattern expression =
9+
Pattern.compile("W.*\\d[0-35-9]-\\d\\d-\\d\\d");
10+
11+
String string1 = "XXXX's Birthday is 05-12-75\n" +
12+
"YYYY's Birthday is 11-04-68\n" +
13+
"ZZZZ's Birthday is 04-28-73\n" +
14+
"WWWW's Birthday is 12-17-77";
15+
16+
Matcher matcher = expression.matcher(string1);
17+
18+
while (matcher.find())
19+
{
20+
System.out.println(matcher.group());
21+
String tmp=matcher.group();
22+
assert tmp.equals("WWWW's Birthday is 12-17-77");
23+
}
24+
}
25+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FUTURE
2+
RegexMatches01.class
3+
--string-refine --unwind 100
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION SUCCESSFUL$
7+
--
8+
^warning: ignoring
Binary file not shown.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import java.util.regex.Matcher;
2+
import java.util.regex.Pattern;
3+
4+
public class RegexMatches02
5+
{
6+
public static void main(String[] args)
7+
{
8+
Pattern expression =
9+
Pattern.compile("W.*\\d[0-35-9]-\\d\\d-\\d\\d");
10+
11+
String string1 = "XXXX's Birthday is 05-12-75\n" +
12+
"YYYY's Birthday is 11-04-68\n" +
13+
"ZZZZ's Birthday is 04-28-73\n" +
14+
"WWWW's Birthday is 12-17-77";
15+
16+
Matcher matcher = expression.matcher(string1);
17+
18+
while (matcher.find())
19+
{
20+
System.out.println(matcher.group());
21+
String tmp=matcher.group();
22+
assert tmp.equals("WWWWW's Birthday is 12-17-77");
23+
}
24+
}
25+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FUTURE
2+
RegexMatches02.class
3+
--string-refine --unwind 100
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION FAILED$
7+
--
8+
^warning: ignoring
Binary file not shown.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import java.util.Arrays;
2+
3+
public class RegexSubstitution01
4+
{
5+
public static void main(String[] args)
6+
{
7+
String firstString = "DiffBlue ***";
8+
String secondString = "Automatic Test Case Generation";
9+
10+
firstString = firstString.replaceAll("\\*", "^");
11+
12+
assert firstString.equals("DiffBlue ^^^");
13+
14+
secondString = secondString.replaceAll("Automatic", "Automated");
15+
16+
System.out.printf(
17+
"\"Automatic\" substituted for \"Automated\": %s\n", secondString);
18+
secondString.equals("Automated Test Case Generation");
19+
20+
System.out.printf("Every word replaced by \"word\": %s\n\n",
21+
firstString.replaceAll("\\w+", "word"));
22+
23+
System.out.printf("Original String 2: %s\n", secondString);
24+
secondString.equals("Automated Test Case Generation");
25+
26+
for (int i = 0; i < 3; i++)
27+
secondString = secondString.replaceFirst("\\A", "automated");
28+
29+
assert secondString.equals("automatedautomatedautomatedAutomated Test Case Generation");
30+
31+
System.out.print("String split at commas: ");
32+
String[] results = secondString.split(" \\s*");
33+
System.out.println(Arrays.toString(results));
34+
assert results[0].equals("automatedautomatedautomatedAutomated");
35+
assert results[1].equals("Test");
36+
assert results[2].equals("Case");
37+
assert results[3].equals("Generation");
38+
}
39+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FUTURE
2+
RegexSubstitution01.class
3+
--string-refine
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION SUCCESSFUL$
7+
--
8+
^warning: ignoring
Binary file not shown.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import java.util.Arrays;
2+
3+
public class RegexSubstitution02
4+
{
5+
public static void main(String[] args)
6+
{
7+
String firstString = "DiffBlue ***";
8+
String secondString = "Automatic Test Case Generation";
9+
10+
firstString = firstString.replaceAll("\\*", "^");
11+
12+
secondString = secondString.replaceAll("Automatic", "Automated");
13+
14+
System.out.printf(
15+
"\"Automatic\" substituted for \"Automated\": %s\n", secondString);
16+
secondString.equals("Automated Test Case Generation");
17+
18+
System.out.printf("Every word replaced by \"word\": %s\n\n",
19+
firstString.replaceAll("\\w+", "word"));
20+
21+
System.out.printf("Original String 2: %s\n", secondString);
22+
secondString.equals("Automated Test Case Generation");
23+
24+
for (int i = 0; i < 3; i++)
25+
secondString = secondString.replaceFirst("\\A", "automated");
26+
27+
System.out.print("String split at commas: ");
28+
String[] results = secondString.split(" \\s*");
29+
System.out.println(Arrays.toString(results));
30+
assert results[0].equals("automatedautomatedautomatedaAutomated");
31+
}
32+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FUTURE
2+
RegexSubstitution02.class
3+
--string-refine
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION FAILED$
7+
--
8+
^warning: ignoring
Binary file not shown.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import java.util.Arrays;
2+
3+
public class RegexSubstitution03
4+
{
5+
public static void main(String[] args)
6+
{
7+
String firstString = "DiffBlue ***";
8+
String secondString = "Automatic Test Case Generation";
9+
10+
firstString = firstString.replaceAll("\\*", "^");
11+
12+
assert firstString.equals("DiffBlue ^^^");
13+
14+
secondString = secondString.replaceAll("Automatic", "Automated");
15+
16+
System.out.printf(
17+
"\"Automatic\" substituted for \"Automated\": %s\n", secondString);
18+
secondString.equals("Automated Test Case Generation");
19+
20+
System.out.printf("Every word replaced by \"word\": %s\n\n",
21+
firstString.replaceAll("\\w+", "word"));
22+
23+
System.out.printf("Original String 2: %s\n", secondString);
24+
secondString.equals("Automated Test Case Generation");
25+
26+
for (int i = 0; i < 3; i++)
27+
secondString = secondString.replaceFirst("\\A", "automated");
28+
29+
System.out.print("String split at commas: ");
30+
String[] results = secondString.split(" \\s*");
31+
System.out.println(Arrays.toString(results));
32+
}
33+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FUTURE
2+
RegexSubstitution03.class
3+
--string-refine
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION SUCCESSFUL$
7+
--
8+
^warning: ignoring
Binary file not shown.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
public class StaticCharMethods01
2+
{
3+
public static void main(String[] args)
4+
{
5+
char c = 0;
6+
assert Character.isDefined(c)==true;
7+
assert Character.isDigit(c)==false;
8+
assert Character.isJavaIdentifierStart(c)==false;
9+
assert Character.isJavaIdentifierPart(c)==true;
10+
assert Character.isLetter(c)==false;
11+
assert Character.isLetterOrDigit(c)==false;
12+
assert Character.isLowerCase(c)==false;
13+
assert Character.isUpperCase(c)==false;
14+
assert Character.toUpperCase(c)==Character.toLowerCase(c);
15+
}
16+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FUTURE
2+
StaticCharMethods01.class
3+
--string-refine
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION SUCCESSFUL$
7+
--
8+
^warning: ignoring
Binary file not shown.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
public class StaticCharMethods02
2+
{
3+
public static void main(String[] args)
4+
{
5+
char c = 0;
6+
assert Character.toUpperCase(c)!=Character.toLowerCase(c);
7+
}
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FUTURE
2+
StaticCharMethods02.class
3+
--string-refine
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION FAILED$
7+
--
8+
^warning: ignoring
Binary file not shown.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
public class StaticCharMethods03
2+
{
3+
public static void main(String[] args)
4+
{
5+
char c = 0;
6+
assert Character.isDefined(c)==false;
7+
}
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FUTURE
2+
StaticCharMethods03.class
3+
--string-refine
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION FAILED$
7+
--
8+
^warning: ignoring
Binary file not shown.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
public class StaticCharMethods04
2+
{
3+
public static void main(String[] args)
4+
{
5+
char c = 0;
6+
assert Character.isLetter(c)==true;
7+
}
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FUTURE
2+
StaticCharMethods04.class
3+
--string-refine
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION FAILED$
7+
--
8+
^warning: ignoring
Binary file not shown.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import java.util.Scanner;
2+
3+
public class StaticCharMethods05
4+
{
5+
public static void main(String[] args)
6+
{
7+
Scanner scanner = new Scanner(System.in);
8+
9+
int radix = scanner.nextInt();
10+
11+
int choice = scanner.nextInt() % 3;
12+
assert choice>=0 && choice<3;
13+
14+
switch (choice)
15+
{
16+
case 1: // convert digit to character
17+
System.out.println("Enter a digit:");
18+
int digit = scanner.nextInt();
19+
System.out.printf("Convert digit to character: %s\n",
20+
Character.forDigit(digit, radix));
21+
char tmp=Character.forDigit(digit, radix);
22+
assert tmp=='t';
23+
break;
24+
25+
case 2: // convert character to digit
26+
System.out.println("Enter a character:");
27+
char character = scanner.next().charAt(0);
28+
System.out.printf("Convert character to digit: %s\n",
29+
Character.digit(character, radix));
30+
break;
31+
}
32+
}
33+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FUTURE
2+
StaticCharMethods05.class
3+
--string-refine
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION FAILED$
7+
--
8+
^warning: ignoring
Binary file not shown.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
public class StaticCharMethods06
2+
{
3+
public static void main(String[] args)
4+
{
5+
Character c1 = 'A';
6+
Character c2 = 'A';
7+
8+
if (c1.equals(c2))
9+
{
10+
System.out.println("c1 and c2 are equal\n");
11+
assert true;
12+
}
13+
else
14+
{
15+
System.out.println("c1 and c2 are not equal\n");
16+
assert false;
17+
}
18+
}
19+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
FUTURE
2+
StaticCharMethods06.class
3+
--string-refine
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^VERIFICATION SUCCESSFUL$
7+
--
8+
^warning: ignoring
Binary file not shown.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
public class StringBuilderAppend01
2+
{
3+
public static void main(String[] args)
4+
{
5+
Object objectRef = "diffblue";
6+
String string = "test";
7+
char[] charArray = {'v', 'e', 'r', 'i', 'f', 'i', 'c', 'a', 't', 'i', 'o', 'n'};
8+
boolean booleanValue = true;
9+
char characterValue = 'Z';
10+
int integerValue = 7;
11+
long longValue = 10000000000L;
12+
float floatValue = 2.5f;
13+
double doubleValue = 33.333;
14+
15+
StringBuilder lastBuffer = new StringBuilder("last buffer");
16+
StringBuilder buffer = new StringBuilder();
17+
18+
buffer.append(objectRef)
19+
.append("%n")
20+
.append(string)
21+
.append("%n")
22+
.append(charArray)
23+
.append("%n")
24+
.append(charArray, 0, 3)
25+
.append("%n")
26+
.append(booleanValue)
27+
.append("%n")
28+
.append(characterValue)
29+
.append("%n")
30+
.append(integerValue)
31+
.append("%n")
32+
.append(longValue)
33+
.append("%n")
34+
.append(floatValue)
35+
.append("%n")
36+
.append(doubleValue)
37+
.append("%n")
38+
.append(lastBuffer);
39+
40+
String tmp=buffer.toString();
41+
assert tmp.equals("diffblue%ntest%nverification%nver%ntrue%nZ%n7%n10000000000%n2.5%n33.333%nlast buffer");
42+
}
43+
}

0 commit comments

Comments
 (0)