1 | |
import java.util.Random; |
2 | |
|
3 | |
public class TestDriver { |
4 | |
public static void main (String [] arg) { |
5 | 1 | TestDriver td = new TestDriver (arg); |
6 | 1 | } |
7 | |
private final static boolean TRACE = true; |
8 | |
|
9 | |
private void trace (String s) { |
10 | |
if (TRACE) { |
11 | 866 | System.err.print ("Driver "+callsNumber+"-"+selection+": "+ s); |
12 | |
} |
13 | 866 | } |
14 | 657 | private void traceln (String s) { trace (s+"\n"); } |
15 | |
|
16 | 1 | private int callsNumber = 1000; |
17 | 1 | private Random random = new Random (0); |
18 | |
private Vector vector; |
19 | |
private int selection; |
20 | |
|
21 | |
class Vobject { |
22 | |
int x; |
23 | 371 | Vobject () { x = range (0,10); } |
24 | 1624 | public String toString () { return ""+x; } |
25 | |
public boolean equals (Object o) { |
26 | 7003 | return o != null && o instanceof Vobject && x == ((Vobject)o).x; |
27 | |
} |
28 | |
} |
29 | |
|
30 | 1 | TestDriver (String [] arg) { |
31 | |
|
32 | 1 | if (arg.length == 1) |
33 | 0 | try { callsNumber = Integer.parseInt (arg [0]); } |
34 | 0 | catch (NumberFormatException er) { |
35 | 0 | traceln ("Wrong number of calls " + arg [0]); |
36 | 0 | } |
37 | 1 | else if (arg.length > 1) { |
38 | 0 | traceln ("Wrong number of arguments " + arg.length); |
39 | |
} |
40 | |
|
41 | |
|
42 | 1 | int size = range (10, 20); |
43 | 1 | int increment = range (10, 20); |
44 | 1 | traceln("new Vector("+size+","+increment+")"); |
45 | 1 | vector = new Vector(size, increment); |
46 | |
|
47 | 1001 | while (callsNumber-- > 0) { |
48 | 1000 | selection = range (0, 24); |
49 | |
try { |
50 | 1000 | switch (selection) { |
51 | |
case 0: |
52 | |
|
53 | 31 | break; |
54 | |
case 1: { |
55 | |
|
56 | 40 | break; } |
57 | |
case 2: { |
58 | |
|
59 | 38 | traceln ("trimToSize()"); |
60 | 38 | vector.trimToSize(); |
61 | 38 | break; } |
62 | |
case 3: { |
63 | |
|
64 | 30 | break; } |
65 | |
case 4: { |
66 | |
|
67 | 39 | break; } |
68 | |
case 5: { |
69 | |
|
70 | 41 | traceln ("capacity() = "+vector.capacity()); |
71 | 41 | break; } |
72 | |
case 6: { |
73 | |
|
74 | 46 | traceln ("size() = "+vector.size()); |
75 | 46 | break; } |
76 | |
case 7: { |
77 | |
|
78 | 44 | traceln ("isEmpty() = "+vector.isEmpty()); |
79 | 44 | break; } |
80 | |
|
81 | |
case 8: { |
82 | 38 | break; } |
83 | |
case 9: { |
84 | |
|
85 | 39 | Vobject o = new Vobject (); |
86 | 39 | traceln ("contains("+o.toString()+") = "+vector.contains(o)); |
87 | 39 | break; } |
88 | |
case 10: { |
89 | |
|
90 | 43 | Vobject o = new Vobject (); |
91 | 43 | traceln ("indexOf("+o.toString()+") = "+vector.indexOf(o)); |
92 | 43 | break; } |
93 | |
case 11: { |
94 | |
|
95 | 49 | Vobject o = new Vobject (); |
96 | 49 | int x = range (0, 1000); |
97 | 49 | traceln ("indexOf("+o.toString()+","+x+") = "+vector.indexOf(o,x)); |
98 | 49 | break; } |
99 | |
case 12: { |
100 | |
|
101 | 45 | Vobject o = new Vobject (); |
102 | 45 | traceln ("lastIndexOf("+o.toString()+") = "+vector.lastIndexOf(o)); |
103 | 45 | break; } |
104 | |
case 13: { |
105 | |
|
106 | 45 | Vobject o = new Vobject (); |
107 | 45 | int x = range (0, 1000); |
108 | 45 | trace ("lastIndexOf("+o.toString()+","+x+") = "); |
109 | 45 | traceln (""+vector.lastIndexOf(o,x)); |
110 | 1 | break; } |
111 | |
case 14: { |
112 | |
|
113 | 41 | int x = range (0, 1000); |
114 | 41 | trace ("elementAt("+x+") = "); |
115 | 41 | traceln (""+vector.elementAt(x)); |
116 | 0 | break; } |
117 | |
case 15: { |
118 | |
|
119 | 36 | trace ("firstElement() = "); |
120 | 36 | traceln (""+vector.firstElement()); |
121 | 36 | break; } |
122 | |
case 16: { |
123 | |
|
124 | 45 | trace ("lastElement() = "); |
125 | 45 | traceln (""+vector.lastElement()); |
126 | 43 | break; } |
127 | |
case 17: { |
128 | |
|
129 | 39 | Vobject o = new Vobject (); |
130 | 39 | int x = range (0, 1000); |
131 | 39 | traceln ("setElementAt("+o.toString()+","+x+")"); |
132 | 39 | vector.setElementAt(o, x); |
133 | 0 | break; } |
134 | |
case 18: { |
135 | |
|
136 | 39 | int x = range (0, 1000); |
137 | 39 | traceln ("removeElementAt("+x+")"); |
138 | 39 | vector.removeElementAt(x); |
139 | 0 | break; } |
140 | |
case 19: { |
141 | |
|
142 | 39 | Vobject o = new Vobject (); |
143 | 39 | int x = range (0, 1000); |
144 | 39 | traceln ("insertElementAt("+o.toString()+","+x+")"); |
145 | 39 | vector.insertElementAt(o, x); |
146 | 0 | break; } |
147 | |
case 20: { |
148 | |
|
149 | 31 | Vobject o = new Vobject (); |
150 | 31 | traceln ("addElement("+o.toString()+")"); |
151 | 31 | vector.addElement(o); |
152 | 31 | break; } |
153 | |
case 21: { |
154 | |
|
155 | 41 | Vobject o = new Vobject (); |
156 | 41 | traceln ("removeElement("+o.toString()+")"); |
157 | 41 | vector.removeElement(o); |
158 | 41 | break; } |
159 | |
case 22: { |
160 | |
|
161 | 32 | break; } |
162 | |
case 23: { |
163 | |
|
164 | 47 | break; } |
165 | |
case 24: { |
166 | |
|
167 | 42 | trace ("toString() = "); |
168 | 42 | traceln (vector.toString()); |
169 | 42 | break; } |
170 | |
default: |
171 | 0 | traceln ("skipping "+selection); |
172 | |
} |
173 | 796 | } catch (Exception x) { System.err.println (" ***"+selection+"*** "+x); } |
174 | |
} |
175 | 1 | } |
176 | |
|
177 | |
int range (int min, int max) { |
178 | 1625 | return min+ Math.abs (random.nextInt()) % (max - min + 1); |
179 | |
} |
180 | |
|
181 | |
} |