OLD | NEW |
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 (including 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 #import('dart:math', prefix: 'Math'); | 10 #import('dart:math', prefix: 'Math'); |
11 | 11 |
12 // TODO(jjb): seed random number generator when API allows it | 12 // TODO(jjb): seed random number generator when API allows it |
13 | 13 |
14 const int NUM_TESTS = 300; | 14 const int NUM_TESTS = 300; |
15 const int MAX_COLLECTION_SIZE = 7; | 15 const int MAX_COLLECTION_SIZE = 7; |
16 | 16 |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 * If exact is true, the returned collections will not be, and will not contain | 115 * If exact is true, the returned collections will not be, and will not contain |
116 * a collection with ill-defined iteration order (i.e., a HashSet or HashMap). | 116 * a collection with ill-defined iteration order (i.e., a HashSet or HashMap). |
117 */ | 117 */ |
118 Object randomCollection(int size, StringBuffer stringRep, {bool exact}) { | 118 Object randomCollection(int size, StringBuffer stringRep, {bool exact}) { |
119 return randomCollectionHelper(size, exact, stringRep, []); | 119 return randomCollectionHelper(size, exact, stringRep, []); |
120 } | 120 } |
121 | 121 |
122 /** | 122 /** |
123 * Return a random collection (or map) of the specified size, placing its | 123 * Return a random collection (or map) of the specified size, placing its |
124 * string representation into the given string buffer. The beingMade | 124 * string representation into the given string buffer. The beingMade |
125 * parameter is a list of collections currently under construction, i.e., | 125 * parameter is a list of collections currently under construction, i.e., |
126 * candidates for recursive references. | 126 * candidates for recursive references. |
127 * | 127 * |
128 * If exact is true, the returned collections will not be, and will not contain | 128 * If exact is true, the returned collections will not be, and will not contain |
129 * a collection with ill-defined iteration order (i.e., a HashSet or HashMap). | 129 * a collection with ill-defined iteration order (i.e., a HashSet or HashMap). |
130 */ | 130 */ |
131 Object randomCollectionHelper(int size, bool exact, StringBuffer stringRep, | 131 Object randomCollectionHelper(int size, bool exact, StringBuffer stringRep, |
132 List beingMade) { | 132 List beingMade) { |
133 double interfaceFrac = rand.nextDouble(); | 133 double interfaceFrac = rand.nextDouble(); |
134 | 134 |
135 if (exact) { | 135 if (exact) { |
(...skipping 13 matching lines...) Expand all Loading... |
149 return randomSet(size, exact, stringRep, beingMade); | 149 return randomSet(size, exact, stringRep, beingMade); |
150 } else { | 150 } else { |
151 return randomMap(size, exact, stringRep, beingMade); | 151 return randomMap(size, exact, stringRep, beingMade); |
152 } | 152 } |
153 } | 153 } |
154 } | 154 } |
155 | 155 |
156 /** | 156 /** |
157 * Return a random List of the specified size, placing its string | 157 * Return a random List of the specified size, placing its string |
158 * representation into the given string buffer. The beingMade | 158 * representation into the given string buffer. The beingMade |
159 * parameter is a list of collections currently under construction, i.e., | 159 * parameter is a list of collections currently under construction, i.e., |
160 * candidates for recursive references. | 160 * candidates for recursive references. |
161 * | 161 * |
162 * If exact is true, the returned collections will not be, and will not contain | 162 * If exact is true, the returned collections will not be, and will not contain |
163 * a collection with ill-defined iteration order (i.e., a HashSet or HashMap). | 163 * a collection with ill-defined iteration order (i.e., a HashSet or HashMap). |
164 */ | 164 */ |
165 List randomList(int size, bool exact, StringBuffer stringRep, List beingMade) { | 165 List randomList(int size, bool exact, StringBuffer stringRep, List beingMade) { |
166 return populateRandomCollection(size, exact, stringRep, beingMade, []); | 166 return populateRandomCollection(size, exact, stringRep, beingMade, []); |
167 } | 167 } |
168 | 168 |
169 /** | 169 /** |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
294 bool randomBool() { | 294 bool randomBool() { |
295 return rand.nextBool(); | 295 return rand.nextBool(); |
296 } | 296 } |
297 | 297 |
298 /** Returns the alphabetized characters in a string. */ | 298 /** Returns the alphabetized characters in a string. */ |
299 String alphagram(String s) { | 299 String alphagram(String s) { |
300 List<int> chars = s.charCodes(); | 300 List<int> chars = s.charCodes(); |
301 chars.sort((int a, int b) => a - b); | 301 chars.sort((int a, int b) => a - b); |
302 return new String.fromCharCodes(chars); | 302 return new String.fromCharCodes(chars); |
303 } | 303 } |
OLD | NEW |