1 18 19 package com.Ostermiller.util; 20 21 29 class TokenizerTests { 30 31 public static void main(String args[]){ 32 try { 33 java.util.StringTokenizer oldTok; 34 com.Ostermiller.util.StringTokenizer newTok; 35 String token; 36 37 39 token = "this is a test"; 40 oldTok = new java.util.StringTokenizer (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 (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 (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 (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 (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 (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 (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 [] 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 x){ 206 x.printStackTrace(); 207 System.exit(1); 208 } 209 System.exit(0); 210 } 211 212 private static void assertEqual(String one, String two) throws Exception { 213 if (one == null || !one.equals(two)){ 214 throw new Exception ("Expected equal: " + one + ", " + two); 215 } 216 } 217 218 private static void compareState(String testName, java.util.StringTokenizer oldTok, com.Ostermiller.util.StringTokenizer newTok) throws Exception { 219 compareState(testName, newTok, oldTok.countTokens()); 220 } 221 222 private static void compareState(String testName, com.Ostermiller.util.StringTokenizer newTok, int tokenCount) throws Exception { 223 int newNumTokens = newTok.countTokens(); 225 if (tokenCount != newNumTokens){ 226 throw new Exception (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 (testName + ": hasMoreTokens does not match. " + hasMoreTokens + " vs " + newTokHasMoreTokens); 232 } 233 } 234 } 235 | Popular Tags |