forked from ravenbird224/LetterInventory
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTest2.java
More file actions
142 lines (135 loc) · 5.52 KB
/
Test2.java
File metadata and controls
142 lines (135 loc) · 5.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
// This program tests stage 2 of the LetterInventory class. The program reads
// from the file test2.txt which has a series of test cases with the correct
// answers.
import java.util.*;
import java.io.*;
public class Test2 {
public static void main(String[] args) {
Scanner input = null;
try {
input = new Scanner(new File("test2.txt"));
} catch (FileNotFoundException e) {
System.out.println("You must copy test2.txt to this directory" +
" before running the testing program.");
System.exit(1);
}
LetterInventory tester = new LetterInventory("");
System.out.println("Starting with empty inventory");
check(tester, input);
while (input.hasNext()) {
char ch = input.next().charAt(0);
int count = input.nextInt();
System.out.println("setting count for " + ch + " to " + count);
try {
tester.set(ch, count);
} catch(Exception e) {
System.out.println("failed");
System.out.println(" threw exception: " + e);
int line = e.getStackTrace()[0].getLineNumber();
System.out.println(" in LetterInventory line#" + line);
System.exit(1);
}
check(tester, input);
}
System.out.println("All tests passed.");
}
// pre : input file contains a 2-line test case that contains the state
// that the given inventory should be in after performing the given
// call on get
// post: reports whether or not test was passed
public static void check(LetterInventory tester, Scanner input) {
testSize(tester, input);
testToString(tester, input);
testIsEmpty(tester, input);
testGet(tester, input);
System.out.println("size, toString, isEmpty, and count all passed");
System.out.println();
}
// pre : input file contains correct toString
// post: reports whether or not test was passed
public static void testToString(LetterInventory tester, Scanner input) {
String correct = input.next();
System.out.println("inventory = " + correct);
String test = "";
try {
test = tester.toString();
} catch (Exception e) {
System.out.println("toString failed");
System.out.println(" threw exception: " + e);
int line = e.getStackTrace()[0].getLineNumber();
System.out.println(" in LetterInventory line#" + line);
System.exit(1);
}
if (!correct.equals(test)) {
System.out.println("toString failed");
System.out.println(" correct toString = " + correct);
System.out.println(" your toString = " + test);
System.exit(1);
}
}
// pre : input file contains correct size
// post: reports whether or not test was passed
public static void testSize(LetterInventory tester, Scanner input) {
int correct = input.nextInt();
int test = 0;
try {
test = tester.size();
} catch (Exception e) {
System.out.println("size failed");
System.out.println(" threw exception: " + e);
int line = e.getStackTrace()[0].getLineNumber();
System.out.println(" in LetterInventory line#" + line);
System.exit(1);
}
if (correct != test) {
System.out.println("size failed");
System.out.println(" correct size = " + correct);
System.out.println(" your size = " + test);
System.exit(1);
}
}
// pre : input file contains correct isEmpty
// post: reports whether or not test was passed
public static void testIsEmpty(LetterInventory tester, Scanner input) {
boolean correct = input.nextBoolean();
boolean test = false;
try {
test = tester.isEmpty();
} catch (Exception e) {
System.out.println("isEmpty failed");
System.out.println(" threw exception: " + e);
int line = e.getStackTrace()[0].getLineNumber();
System.out.println(" in LetterInventory line#" + line);
System.exit(1);
}
if (correct != test) {
System.out.println("isEmpty failed");
System.out.println(" correct isEmpty = " + correct);
System.out.println(" your isEmpty = " + test);
System.exit(1);
}
}
// pre : input file contains correct get values (26 of them)
// post: reports whether or not test was passed
public static void testGet(LetterInventory tester, Scanner input) {
for (char ch = 'a'; ch <= 'z'; ch++) {
int correct = input.nextInt();
int test = 0;
try {
test = tester.get(ch);
} catch (Exception e) {
System.out.println("get failed for '" + ch + "'");
System.out.println(" threw exception: " + e);
int line = e.getStackTrace()[0].getLineNumber();
System.out.println(" in LetterInventory line#" + line);
System.exit(1);
}
if (correct != test) {
System.out.println("get failed for '" + ch + "'");
System.out.println(" correct get = " + correct);
System.out.println(" your get = " + test);
System.exit(1);
}
}
}
}