Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(717)

Side by Side Diff: tests/corelib/collection_to_string_test.dart

Issue 12473003: Remove deprecated StringBuffer.add, addAll and addCharCode. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * Tests for the toString methods on collections and maps. 6 * Tests for the toString methods on collections and maps.
7 */ 7 */
8 8
9 library collection_to_string; 9 library collection_to_string;
10 10
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 * a list of collections currently under construction, i.e., candidates for 202 * a list of collections currently under construction, i.e., candidates for
203 * recursive references. 203 * recursive references.
204 * 204 *
205 * If exact is true, the elements of the returned collections will not be, 205 * If exact is true, the elements of the returned collections will not be,
206 * and will not contain a collection with ill-defined iteration order 206 * and will not contain a collection with ill-defined iteration order
207 * (i.e., a HashSet or HashMap). 207 * (i.e., a HashSet or HashMap).
208 */ 208 */
209 Collection populateRandomCollection(int size, bool exact, 209 Collection populateRandomCollection(int size, bool exact,
210 StringBuffer stringRep, List beingMade, Collection coll) { 210 StringBuffer stringRep, List beingMade, Collection coll) {
211 beingMade.add(coll); 211 beingMade.add(coll);
212 stringRep.add(coll is List ? '[' : '{'); 212 stringRep.write(coll is List ? '[' : '{');
213 213
214 for (int i = 0; i < size; i++) { 214 for (int i = 0; i < size; i++) {
215 if (i != 0) stringRep.add(', '); 215 if (i != 0) stringRep.write(', ');
216 coll.add(randomElement(random(size), exact, stringRep, beingMade)); 216 coll.add(randomElement(random(size), exact, stringRep, beingMade));
217 } 217 }
218 218
219 stringRep.add(coll is List ? ']' : '}'); 219 stringRep.write(coll is List ? ']' : '}');
220 beingMade.removeLast(); 220 beingMade.removeLast();
221 return coll; 221 return coll;
222 } 222 }
223 223
224 /** Like populateRandomCollection, but for sets (elements must be hashable) */ 224 /** Like populateRandomCollection, but for sets (elements must be hashable) */
225 Set populateRandomSet(int size, bool exact, StringBuffer stringRep, 225 Set populateRandomSet(int size, bool exact, StringBuffer stringRep,
226 List beingMade, Set set) { 226 List beingMade, Set set) {
227 stringRep.add('{'); 227 stringRep.write('{');
228 228
229 for (int i = 0; i < size; i++) { 229 for (int i = 0; i < size; i++) {
230 if (i != 0) stringRep.add(', '); 230 if (i != 0) stringRep.write(', ');
231 set.add(i); 231 set.add(i);
232 stringRep.add(i); 232 stringRep.write(i);
233 } 233 }
234 234
235 stringRep.add('}'); 235 stringRep.write('}');
236 return set; 236 return set;
237 } 237 }
238 238
239 239
240 /** Like populateRandomCollection, but for maps. */ 240 /** Like populateRandomCollection, but for maps. */
241 Map populateRandomMap(int size, bool exact, StringBuffer stringRep, 241 Map populateRandomMap(int size, bool exact, StringBuffer stringRep,
242 List beingMade, Map map) { 242 List beingMade, Map map) {
243 beingMade.add(map); 243 beingMade.add(map);
244 stringRep.add('{'); 244 stringRep.write('{');
245 245
246 for (int i = 0; i < size; i++) { 246 for (int i = 0; i < size; i++) {
247 if (i != 0) stringRep.add(', '); 247 if (i != 0) stringRep.write(', ');
248 248
249 int key = i; // Ensures no duplicates 249 int key = i; // Ensures no duplicates
250 stringRep.add(key); 250 stringRep.write(key);
251 stringRep.add(': '); 251 stringRep.write(': ');
252 Object val = randomElement(random(size), exact, stringRep, beingMade); 252 Object val = randomElement(random(size), exact, stringRep, beingMade);
253 map[key] = val; 253 map[key] = val;
254 } 254 }
255 255
256 stringRep.add('}'); 256 stringRep.write('}');
257 beingMade.removeLast(); 257 beingMade.removeLast();
258 return map; 258 return map;
259 } 259 }
260 260
261 /** 261 /**
262 * Generates a random element which can be an int, a collection, or a map, 262 * Generates a random element which can be an int, a collection, or a map,
263 * and emits it to StringRep. The beingMade parameter is a list of collections 263 * and emits it to StringRep. The beingMade parameter is a list of collections
264 * currently under construction, i.e., candidates for recursive references. 264 * currently under construction, i.e., candidates for recursive references.
265 * 265 *
266 * If exact is true, the returned element will not be, and will not contain 266 * If exact is true, the returned element will not be, and will not contain
267 * a collection with ill-defined iteration order (i.e., a HashSet or HashMap). 267 * a collection with ill-defined iteration order (i.e., a HashSet or HashMap).
268 */ 268 */
269 Object randomElement(int size, bool exact, StringBuffer stringRep, 269 Object randomElement(int size, bool exact, StringBuffer stringRep,
270 List beingMade) { 270 List beingMade) {
271 Object result; 271 Object result;
272 double elementTypeFrac = rand.nextDouble(); 272 double elementTypeFrac = rand.nextDouble();
273 if (elementTypeFrac < 1/3) { 273 if (elementTypeFrac < 1/3) {
274 result = random(1000); 274 result = random(1000);
275 stringRep.add(result); 275 stringRep.write(result);
276 } else if (elementTypeFrac < 2/3) { 276 } else if (elementTypeFrac < 2/3) {
277 // Element Is a random (new) collection 277 // Element Is a random (new) collection
278 result = randomCollectionHelper(size, exact, stringRep, beingMade); 278 result = randomCollectionHelper(size, exact, stringRep, beingMade);
279 } else { 279 } else {
280 // Element Is a random recursive ref 280 // Element Is a random recursive ref
281 result = beingMade[random(beingMade.length)]; 281 result = beingMade[random(beingMade.length)];
282 if (result is List) 282 if (result is List)
283 stringRep.add('[...]'); 283 stringRep.write('[...]');
284 else 284 else
285 stringRep.add('{...}'); 285 stringRep.write('{...}');
286 } 286 }
287 return result; 287 return result;
288 } 288 }
289 289
290 /** Returns a random int on [0, max) */ 290 /** Returns a random int on [0, max) */
291 int random(int max) { 291 int random(int max) {
292 return rand.nextInt(max); 292 return rand.nextInt(max);
293 } 293 }
294 294
295 /** Returns a random boolean value. */ 295 /** Returns a random boolean value. */
296 bool randomBool() { 296 bool randomBool() {
297 return rand.nextBool(); 297 return rand.nextBool();
298 } 298 }
299 299
300 /** Returns the alphabetized characters in a string. */ 300 /** Returns the alphabetized characters in a string. */
301 String alphagram(String s) { 301 String alphagram(String s) {
302 // Calling [toList] to convert unmodifiable list to normal list. 302 // Calling [toList] to convert unmodifiable list to normal list.
303 List<int> chars = s.codeUnits.toList(); 303 List<int> chars = s.codeUnits.toList();
304 chars.sort((int a, int b) => a - b); 304 chars.sort((int a, int b) => a - b);
305 return new String.fromCharCodes(chars); 305 return new String.fromCharCodes(chars);
306 } 306 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698