KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tc > util > StackTest


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

4 package com.tc.util;
5
6 import com.tc.test.TCTestCase;
7
8 import java.security.SecureRandom JavaDoc;
9 import java.util.Random JavaDoc;
10
11 public class StackTest extends TCTestCase {
12
13   public void test() throws Exception JavaDoc {
14     Stack tcStack = new Stack();
15     java.util.Stack JavaDoc javaStack = new java.util.Stack JavaDoc();
16
17     doRandomTests(tcStack, javaStack);
18   }
19
20   private void doRandomTests(Stack tcStack, java.util.Stack JavaDoc javaStack) {
21     SecureRandom JavaDoc sr = new SecureRandom JavaDoc();
22     long seed = sr.nextLong();
23     System.err.println("Seed is " + seed);
24     Random JavaDoc r = new Random JavaDoc(seed);
25     int count = 10000;
26     while (count-- > 0) {
27       switch (r.nextInt(6)) {
28         case 0:
29           callPop(tcStack, javaStack);
30           break;
31         case 1:
32           callPush(tcStack, javaStack, r);
33           break;
34         case 2:
35           callPeek(tcStack, javaStack);
36           break;
37         case 3:
38           callEmpty(tcStack, javaStack);
39           break;
40         case 4:
41           callSize(tcStack, javaStack);
42           break;
43         case 5:
44           callSearch(tcStack, javaStack, r);
45           break;
46         default:
47           throw new AssertionError JavaDoc("Should never get here.");
48       }
49     }
50   }
51
52   private void callSearch(Stack tcStack, java.util.Stack JavaDoc javaStack, Random JavaDoc r) {
53     Integer JavaDoc subject = new Integer JavaDoc(r.nextInt(10000));
54     assertEquals(javaStack.search(subject), tcStack.search(subject));
55   }
56
57   private void callSize(Stack tcStack, java.util.Stack JavaDoc javaStack) {
58     assertEquals(javaStack.size(), tcStack.size());
59   }
60
61   private void callEmpty(Stack tcStack, java.util.Stack JavaDoc javaStack) {
62     assertEquals(javaStack.empty(), tcStack.empty());
63   }
64
65   private void callPush(Stack tcStack, java.util.Stack JavaDoc javaStack, Random JavaDoc r) {
66     Integer JavaDoc subject = new Integer JavaDoc(r.nextInt(10000));
67     assertEquals(javaStack.push(subject), tcStack.push(subject));
68     assertEquals(javaStack.size(), tcStack.size());
69   }
70
71   private void callPeek(Stack tcStack, java.util.Stack JavaDoc javaStack) {
72     boolean thrownException = false;
73     Object JavaDoc jo = null, to = null;
74     Exception JavaDoc je = null, te = null;
75     try {
76       jo = javaStack.peek();
77     } catch (Exception JavaDoc ex) {
78       je = ex;
79       thrownException = true;
80     }
81     try {
82       to = tcStack.peek();
83       assertFalse(thrownException);
84     } catch (Exception JavaDoc ex) {
85       assertTrue(thrownException);
86       te = ex;
87     }
88     assertEquals(jo, to);
89     if (je != null) {
90       assertEquals(je.toString(), te.toString());
91     }
92   }
93
94   private void callPop(Stack tcStack, java.util.Stack JavaDoc javaStack) {
95     boolean thrownException = false;
96     Object JavaDoc jo = null, to = null;
97     Exception JavaDoc je = null, te = null;
98     try {
99       jo = javaStack.pop();
100     } catch (Exception JavaDoc ex) {
101       je = ex;
102       thrownException = true;
103     }
104     try {
105       to = tcStack.pop();
106       assertFalse(thrownException);
107     } catch (Exception JavaDoc ex) {
108       assertTrue(thrownException);
109       te = ex;
110     }
111     assertEquals(jo, to);
112     if (je != null) {
113       assertEquals(je.toString(), te.toString());
114     }
115   }
116
117 }
118
Popular Tags