KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > Ostermiller > util > TokenizerTests


1 /*
2  * Tests StringTokenizer.
3  * Copyright (C) 2001 Stephen Ostermiller
4  * http://ostermiller.org/contact.pl?regarding=Java+Utilities
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * See COPYING.TXT for details.
17  */

18
19  package com.Ostermiller.util;
20
21 /**
22  * A regression test for com.Ostermiller.util.StringTokenizer.
23  * More information about this class is available from <a target="_top" HREF=
24  * "http://ostermiller.org/utils/StringTokenizer.html">ostermiller.org</a>.
25  *
26  * @author Stephen Ostermiller http://ostermiller.org/contact.pl?regarding=Java+Utilities
27  * @since ostermillerutils 1.00.00
28  */

29 class TokenizerTests {
30
31     public static void main(String JavaDoc args[]){
32         try {
33             java.util.StringTokenizer JavaDoc oldTok;
34             com.Ostermiller.util.StringTokenizer newTok;
35             String JavaDoc token;
36
37             //newTok.test();
38

39             token = "this is a test";
40             oldTok = new java.util.StringTokenizer JavaDoc(token);
41             newTok = new com.Ostermiller.util.StringTokenizer(token);
42             assertEqual("" + oldTok.countTokens(), "" + newTok.countTokens());
43             compareState("Test 1", oldTok, newTok);
44             while (oldTok.hasMoreTokens()){
45                 assertEqual(oldTok.nextToken(), newTok.nextToken());
46                 compareState("Test 1", oldTok, newTok);
47             }
48
49             token = "";
50             oldTok = new java.util.StringTokenizer JavaDoc(token);
51             newTok = new com.Ostermiller.util.StringTokenizer(token);
52             assertEqual("" + oldTok.countTokens(), "" + newTok.countTokens());
53
54             token = "no delims";
55             oldTok = new java.util.StringTokenizer JavaDoc(token, "");
56             newTok = new com.Ostermiller.util.StringTokenizer(token, "");
57             assertEqual("" + oldTok.countTokens(), "" + newTok.countTokens());
58             while (oldTok.hasMoreTokens()){
59                 assertEqual("" + oldTok.countTokens(), "" + newTok.countTokens());
60                 assertEqual(oldTok.nextToken(), newTok.nextToken());
61             }
62
63             token = "AstringB";
64             oldTok = new java.util.StringTokenizer JavaDoc(token, "AB");
65             newTok = new com.Ostermiller.util.StringTokenizer(token, "AB");
66             assertEqual("" + oldTok.countTokens(), "" + newTok.countTokens());
67             while (oldTok.hasMoreTokens()){
68                 assertEqual(oldTok.nextToken(), newTok.nextToken());
69             }
70
71             token = "AstringB";
72             oldTok = new java.util.StringTokenizer JavaDoc(token, "AB", true);
73             newTok = new com.Ostermiller.util.StringTokenizer(token, "AB", true);
74             assertEqual("" + oldTok.countTokens(), "" + newTok.countTokens());
75             while (oldTok.hasMoreTokens()){
76                 assertEqual(oldTok.nextToken(), newTok.nextToken());
77             }
78
79             token = "someURL?name=value&name=value";
80             oldTok = new java.util.StringTokenizer JavaDoc(token);
81             newTok = new com.Ostermiller.util.StringTokenizer(token);
82             assertEqual(oldTok.nextToken("?"), newTok.nextToken("?"));
83             assertEqual(oldTok.nextToken("=&"), newTok.nextToken("=&"));
84             assertEqual(oldTok.nextToken("=&"), newTok.nextToken("=&"));
85             assertEqual(oldTok.nextToken(), newTok.nextToken());
86             assertEqual(oldTok.nextToken(), newTok.nextToken());
87
88             newTok = new com.Ostermiller.util.StringTokenizer(token);
89             assertEqual("someURL", newTok.nextToken("?"));
90             newTok.skipDelimiters();
91             assertEqual("name", newTok.nextToken("=&"));
92             assertEqual("value", newTok.nextToken("=&"));
93             assertEqual("name", newTok.nextToken());
94             assertEqual("value", newTok.nextToken());
95
96             token = " ( aaa \t * (b+c1 ))";
97             newTok = new com.Ostermiller.util.StringTokenizer(token, " \t\n\r\f", "()+*");
98             assertEqual("9", "" + newTok.countTokens());
99             assertEqual("(", newTok.nextToken());
100             assertEqual("aaa", newTok.nextToken());
101             assertEqual("*", newTok.nextToken());
102             assertEqual("(", newTok.nextToken());
103             assertEqual("b", newTok.nextToken());
104             assertEqual("+", newTok.nextToken());
105             assertEqual("c1", newTok.nextToken());
106             assertEqual(")", newTok.nextToken());
107             assertEqual(")", newTok.nextToken());
108
109             token = "one,two,,four,five,,,eight,";
110             oldTok = new java.util.StringTokenizer JavaDoc(token, ",");
111             newTok = new com.Ostermiller.util.StringTokenizer(token, ",");
112             assertEqual("" + oldTok.countTokens(), "" + newTok.countTokens());
113             while (oldTok.hasMoreTokens()){
114                 assertEqual(oldTok.nextToken(), newTok.nextToken());
115             }
116
117             token = "one,two,,four,five,,,eight";
118             newTok = new com.Ostermiller.util.StringTokenizer(token, ",");
119             newTok.setReturnEmptyTokens(true);
120             assertEqual("8", "" + newTok.countTokens());
121
122             token = ",two,,four,five,,,eight,";
123             newTok = new com.Ostermiller.util.StringTokenizer(token, ",");
124             newTok.setReturnEmptyTokens(true);
125             assertEqual("9", "" + newTok.countTokens());
126
127             token = ",";
128             newTok = new com.Ostermiller.util.StringTokenizer(token, ",");
129             newTok.setReturnEmptyTokens(true);
130             assertEqual("2", "" + newTok.countTokens());
131
132             token = "";
133             newTok = new com.Ostermiller.util.StringTokenizer(token, ",");
134             newTok.setReturnEmptyTokens(true);
135             assertEqual("1", "" + newTok.countTokens());
136
137             token = ",two,,four,five,,,eight,";
138             newTok = new com.Ostermiller.util.StringTokenizer(token, ",", true);
139             newTok.setReturnEmptyTokens(true);
140             assertEqual("17", "" + newTok.countTokens());
141
142             token = ",one,,,four,";
143             newTok = new com.Ostermiller.util.StringTokenizer(token, ",", null, false);
144             assertEqual("one", newTok.nextToken());
145             newTok.setReturnEmptyTokens(true);
146             assertEqual("4", "" + newTok.countTokens());
147
148             token = "list=";
149             newTok = new com.Ostermiller.util.StringTokenizer(token, "=");
150             newTok.setReturnEmptyTokens(true);
151             assertEqual("list", newTok.nextToken());
152             newTok.skipDelimiters();
153             assertEqual("", newTok.nextToken(","));
154             assertEqual("0", "" + newTok.countTokens());
155
156             token = "list=,";
157             newTok = new com.Ostermiller.util.StringTokenizer(token, "=");
158             newTok.setReturnEmptyTokens(true);
159             assertEqual("list", newTok.nextToken());
160             newTok.skipDelimiters();
161             assertEqual("", newTok.nextToken(","));
162             assertEqual("1", "" + newTok.countTokens());
163
164             token = "list=,two,";
165             newTok = new com.Ostermiller.util.StringTokenizer(token, "=");
166             newTok.setReturnEmptyTokens(true);
167             assertEqual("list", newTok.nextToken());
168             newTok.skipDelimiters();
169             assertEqual("", newTok.nextToken(","));
170             assertEqual("2", "" + newTok.countTokens());
171
172             token = "this is a test";
173             newTok = new com.Ostermiller.util.StringTokenizer(token);
174             String JavaDoc[] tokens = newTok.toArray();
175             newTok.setText(token);
176             for (int i=0; i<tokens.length; i++){
177                 assertEqual(tokens[i], newTok.nextToken());
178             }
179
180             token = "token rest of string";
181             newTok = new com.Ostermiller.util.StringTokenizer(token);
182             assertEqual("token", newTok.nextToken());
183             newTok.skipDelimiters();
184             assertEqual("rest of string", newTok.restOfText());
185             assertEqual("false", "" + newTok.hasMoreTokens());
186
187             token = "testing the peek method";
188             newTok = new com.Ostermiller.util.StringTokenizer(token);
189             assertEqual("4", "" + newTok.countTokens());
190             assertEqual("testing", newTok.peek());
191             assertEqual("4", "" + newTok.countTokens());
192             assertEqual("testing", newTok.nextToken());
193             assertEqual("3", "" + newTok.countTokens());
194             assertEqual("the", newTok.peek());
195             assertEqual("the", newTok.peek());
196             assertEqual("the", newTok.nextToken());
197             assertEqual("peek", newTok.peek());
198             assertEqual("peek", newTok.nextToken());
199             assertEqual("true", "" + newTok.hasMoreTokens());
200             assertEqual("method", newTok.peek());
201             assertEqual("true", "" + newTok.hasMoreTokens());
202             assertEqual("method", newTok.nextToken());
203             assertEqual("false", "" + newTok.hasMoreTokens());
204
205         } catch (Exception JavaDoc x){
206             x.printStackTrace();
207             System.exit(1);
208         }
209         System.exit(0);
210     }
211
212     private static void assertEqual(String JavaDoc one, String JavaDoc two) throws Exception JavaDoc {
213          if (one == null || !one.equals(two)){
214             throw new Exception JavaDoc ("Expected equal: " + one + ", " + two);
215          }
216     }
217
218     private static void compareState(String JavaDoc testName, java.util.StringTokenizer JavaDoc oldTok, com.Ostermiller.util.StringTokenizer newTok) throws Exception JavaDoc {
219         compareState(testName, newTok, oldTok.countTokens());
220     }
221
222     private static void compareState(String JavaDoc testName, com.Ostermiller.util.StringTokenizer newTok, int tokenCount) throws Exception JavaDoc {
223         // count the number of tokens left first.
224
int newNumTokens = newTok.countTokens();
225         if (tokenCount != newNumTokens){
226             throw new Exception JavaDoc(testName + ": TokenCount does not match. " + tokenCount + " vs " + newNumTokens);
227         }
228         boolean hasMoreTokens = (tokenCount > 0);
229         boolean newTokHasMoreTokens = newTok.hasMoreTokens();
230         if (hasMoreTokens != newTokHasMoreTokens){
231             throw new Exception JavaDoc(testName + ": hasMoreTokens does not match. " + hasMoreTokens + " vs " + newTokHasMoreTokens);
232         }
233     }
234 }
235
Popular Tags