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

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

Issue 2770063002: Revert "Format all multitests" (Closed)
Patch Set: Created 3 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
« no previous file with comments | « tests/corelib/iterable_to_list_test.dart ('k') | tests/corelib/num_parse_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 import "dart:collection"; 5 import "dart:collection";
6 import "dart:typed_data"; 6 import "dart:typed_data";
7 import "package:expect/expect.dart"; 7 import "package:expect/expect.dart";
8 8
9 void main() { 9 void main() {
10 // Typed lists - fixed length and can only contain integers. 10 // Typed lists - fixed length and can only contain integers.
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 testIndexError(list, index, name) { 56 testIndexError(list, index, name) {
57 try { 57 try {
58 list[list.length]; 58 list[list.length];
59 } catch (err, s) { 59 } catch (err, s) {
60 Expect.isTrue(err is RangeError, "$name[$index]"); 60 Expect.isTrue(err is RangeError, "$name[$index]");
61 Expect.equals(list.length, err.invalidValue, "$name[$index] value"); 61 Expect.equals(list.length, err.invalidValue, "$name[$index] value");
62 Expect.equals(list.length - 1, err.end, "$name[$index] end"); 62 Expect.equals(list.length - 1, err.end, "$name[$index] end");
63 Expect.equals(0, err.start, "$name[$index] start"); 63 Expect.equals(0, err.start, "$name[$index] start");
64 } 64 }
65 } 65 }
66
67 testIndex(list, name) { 66 testIndex(list, name) {
68 testIndexError(list, list.length, name); // Just too big. 67 testIndexError(list, list.length, name); // Just too big.
69 testIndexError(list, -1, name); // Negative. 68 testIndexError(list, -1, name); // Negative.
70 testIndexError(list, 0x123456789, name); // > 2^32. 69 testIndexError(list, 0x123456789, name); // > 2^32.
71 testIndexError(list, -0x123456789, name); // < -2^32. 70 testIndexError(list, -0x123456789, name); // < -2^32.
72 } 71 }
73 72
74 // Slices. 73 // Slices.
75 testSliceError(list, start, end, name) { 74 testSliceError(list, start, end, name) {
76 name = "$name[$start:$end]"; 75 name = "$name[$start:$end]";
77 var realError; 76 var realError;
78 try { 77 try {
79 RangeError.checkValidRange(start, end, list.length); 78 RangeError.checkValidRange(start, end, list.length);
80 } catch (e) { 79 } catch (e) {
81 realError = e; 80 realError = e;
82 } 81 }
83 var result; 82 var result;
84 try { 83 try {
85 result = list.sublist(start, end); 84 result = list.sublist(start, end);
86 } catch (actualError) { 85 } catch (actualError) {
87 Expect.isNotNull(realError, "$name should not fail"); 86 Expect.isNotNull(realError, "$name should not fail");
88 Expect.isTrue(actualError is RangeError, "$name is-error: $actualError"); 87 Expect.isTrue(actualError is RangeError, "$name is-error: $actualError");
89 Expect.equals(realError.name, actualError.name, "$name name"); 88 Expect.equals(realError.name, actualError.name, "$name name");
90 Expect.equals(realError.invalidValue, actualError.invalidValue, 89 Expect.equals(realError.invalidValue, actualError.invalidValue,
91 "$name[0:l+1] value"); 90 "$name[0:l+1] value");
92 Expect.equals(realError.start, actualError.start, "$name[0:l+1] start"); 91 Expect.equals(realError.start, actualError.start, "$name[0:l+1] start");
93 Expect.equals(realError.end, actualError.end, "$name[0:l+1] end"); 92 Expect.equals(realError.end, actualError.end, "$name[0:l+1] end");
94 return; 93 return;
95 } 94 }
96 // Didn't throw. 95 // Didn't throw.
97 Expect.isNull(realError, "$name should fail"); 96 Expect.isNull(realError, "$name should fail");
98 Expect.equals(end - start, result.length, "$name result length"); 97 Expect.equals(end - start, result.length, "$name result length");
99 } 98 }
100 99
101 testSlice(list, name) { 100 testSlice(list, name) {
102 testSliceError(list, 0, list.length, name); // Should not fail. 101 testSliceError(list, 0, list.length, name); // Should not fail.
103 testSliceError(list, 0, list.length + 1, name); 102 testSliceError(list, 0, list.length + 1, name);
104 testSliceError(list, 0, 0x123456789, name); 103 testSliceError(list, 0, 0x123456789, name);
105 testSliceError(list, -1, list.length, name); 104 testSliceError(list, -1, list.length, name);
106 testSliceError(list, -0x123456789, list.length, name); 105 testSliceError(list, -0x123456789, list.length, name);
107 testSliceError(list, list.length + 1, list.length + 1, name); 106 testSliceError(list, list.length + 1, list.length + 1, name);
108 testSliceError(list, -1, null, name); 107 testSliceError(list, -1, null, name);
109 if (list.length > 0) { 108 if (list.length > 0) {
110 testSliceError(list, list.length, list.length - 1, name); 109 testSliceError(list, list.length, list.length - 1, name);
111 } 110 }
112 } 111 }
113 112
114 testRangeErrors(list, name) { 113 testRangeErrors(list, name) {
115 testIndex(list, "$name#${list.length} index"); 114 testIndex(list, "$name#${list.length} index");
116 testSlice(list, "$name#${list.length} slice"); 115 testSlice(list, "$name#${list.length} slice");
117 } 116 }
118
119 // Empty lists. 117 // Empty lists.
120 testRangeErrors([], "list"); 118 testRangeErrors([], "list");
121 testRangeErrors(new List(0), "fixed-list"); 119 testRangeErrors(new List(0), "fixed-list");
122 testRangeErrors(const [], "const-list"); 120 testRangeErrors(const [], "const-list");
123 testRangeErrors(new List.unmodifiable([]), "unmodifiable"); 121 testRangeErrors(new List.unmodifiable([]), "unmodifiable");
124 testRangeErrors(new Uint8List(0), "typed-list"); 122 testRangeErrors(new Uint8List(0), "typed-list");
125 testRangeErrors(new Uint8List.view(new Uint8List(0).buffer), "typed-list"); 123 testRangeErrors(new Uint8List.view(new Uint8List(0).buffer), "typed-list");
126 testRangeErrors([1, 2, 3].sublist(1, 1), "sub-list"); 124 testRangeErrors([1, 2, 3].sublist(1, 1), "sub-list");
127 // Non-empty lists. 125 // Non-empty lists.
128 testRangeErrors([1, 2, 3], "list"); 126 testRangeErrors([1, 2, 3], "list");
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 Expect.listEquals([9, 9, 9, 9], list); 193 Expect.listEquals([9, 9, 9, 9], list);
196 194
197 // sort. 195 // sort.
198 list.setRange(0, 4, [3, 2, 1, 0]); 196 list.setRange(0, 4, [3, 2, 1, 0]);
199 list.sort(); 197 list.sort();
200 Expect.listEquals([0, 1, 2, 3], list); 198 Expect.listEquals([0, 1, 2, 3], list);
201 list.setRange(0, 4, [1, 2, 3, 0]); 199 list.setRange(0, 4, [1, 2, 3, 0]);
202 list.sort(); 200 list.sort();
203 Expect.listEquals([0, 1, 2, 3], list); 201 Expect.listEquals([0, 1, 2, 3], list);
204 list.setRange(0, 4, [1, 3, 0, 2]); 202 list.setRange(0, 4, [1, 3, 0, 2]);
205 list.sort((a, b) => b - a); // reverse compare. 203 list.sort((a, b) => b - a); // reverse compare.
206 Expect.listEquals([3, 2, 1, 0], list); 204 Expect.listEquals([3, 2, 1, 0], list);
207 list.setRange(0, 4, [1, 2, 3, 0]); 205 list.setRange(0, 4, [1, 2, 3, 0]);
208 list.sort((a, b) => b - a); 206 list.sort((a, b) => b - a);
209 Expect.listEquals([3, 2, 1, 0], list); 207 Expect.listEquals([3, 2, 1, 0], list);
210 208
211 // Some Iterable methods. 209 // Some Iterable methods.
212 210
213 list.setRange(0, 4, [0, 1, 2, 3]); 211 list.setRange(0, 4, [0, 1, 2, 3]);
214 // map. 212 // map.
215 testMap(val) { 213 testMap(val) {return val * 2 + 10; }
216 return val * 2 + 10;
217 }
218
219 List mapped = list.map(testMap).toList(); 214 List mapped = list.map(testMap).toList();
220 Expect.equals(mapped.length, list.length); 215 Expect.equals(mapped.length, list.length);
221 for (var i = 0; i < list.length; i++) { 216 for (var i = 0; i < list.length; i++) {
222 Expect.equals(mapped[i], list[i] * 2 + 10); 217 Expect.equals(mapped[i], list[i] * 2 + 10);
223 } 218 }
224 219
225 matchAll(val) => true; 220 matchAll(val) => true;
226 matchSome(val) { 221 matchSome(val) { return (val == 1 || val == 2); }
227 return (val == 1 || val == 2); 222 matchSomeFirst(val) { return val == 0; }
228 } 223 matchSomeLast(val) { return val == 3; }
229
230 matchSomeFirst(val) {
231 return val == 0;
232 }
233
234 matchSomeLast(val) {
235 return val == 3;
236 }
237
238 matchNone(val) => false; 224 matchNone(val) => false;
239 225
240 // where. 226 // where.
241 Iterable filtered = list.where(matchSome); 227 Iterable filtered = list.where(matchSome);
242 Expect.equals(filtered.length, 2); 228 Expect.equals(filtered.length, 2);
243 229
244 // every 230 // every
245 Expect.isTrue(list.every(matchAll)); 231 Expect.isTrue(list.every(matchAll));
246 Expect.isFalse(list.every(matchSome)); 232 Expect.isFalse(list.every(matchSome));
247 Expect.isFalse(list.every(matchNone)); 233 Expect.isFalse(list.every(matchNone));
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 304
319 void testFixedLengthList(List list) { 305 void testFixedLengthList(List list) {
320 testLengthInvariantOperations(list); 306 testLengthInvariantOperations(list);
321 testCannotChangeLength(list); 307 testCannotChangeLength(list);
322 } 308 }
323 309
324 void testCannotChangeLength(List list) { 310 void testCannotChangeLength(List list) {
325 isUnsupported(action()) { 311 isUnsupported(action()) {
326 Expect.throws(action, (e) => e is UnsupportedError); 312 Expect.throws(action, (e) => e is UnsupportedError);
327 } 313 }
328
329 isUnsupported(() => list.add(0)); 314 isUnsupported(() => list.add(0));
330 isUnsupported(() => list.addAll([0])); 315 isUnsupported(() => list.addAll([0]));
331 isUnsupported(() => list.removeLast()); 316 isUnsupported(() => list.removeLast());
332 isUnsupported(() => list.insert(0, 1)); 317 isUnsupported(() => list.insert(0, 1));
333 isUnsupported(() => list.insertAll(0, [1])); 318 isUnsupported(() => list.insertAll(0, [1]));
334 isUnsupported(() => list.clear()); 319 isUnsupported(() => list.clear());
335 isUnsupported(() => list.remove(1)); 320 isUnsupported(() => list.remove(1));
336 isUnsupported(() => list.removeAt(1)); 321 isUnsupported(() => list.removeAt(1));
337 isUnsupported(() => list.removeRange(0, 1)); 322 isUnsupported(() => list.removeRange(0, 1));
338 isUnsupported(() => list.replaceRange(0, 1, [])); 323 isUnsupported(() => list.replaceRange(0, 1, []));
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 void testConcurrentModification(action()) { 464 void testConcurrentModification(action()) {
480 testIterator(int when) { 465 testIterator(int when) {
481 list.length = 4; 466 list.length = 4;
482 list.setAll(0, [0, 1, 2, 3]); 467 list.setAll(0, [0, 1, 2, 3]);
483 Expect.throws(() { 468 Expect.throws(() {
484 for (var element in list) { 469 for (var element in list) {
485 if (element == when) action(); 470 if (element == when) action();
486 } 471 }
487 }, (e) => e is ConcurrentModificationError); 472 }, (e) => e is ConcurrentModificationError);
488 } 473 }
489
490 testForEach(int when) { 474 testForEach(int when) {
491 list.length = 4; 475 list.length = 4;
492 list.setAll(0, [0, 1, 2, 3]); 476 list.setAll(0, [0, 1, 2, 3]);
493 Expect.throws(() { 477 Expect.throws(() {
494 list.forEach((var element) { 478 list.forEach((var element) {
495 if (element == when) action(); 479 if (element == when) action();
496 }); 480 });
497 }, (e) => e is ConcurrentModificationError); 481 }, (e) => e is ConcurrentModificationError);
498 } 482 }
499
500 // Test the change at different points of the iteration. 483 // Test the change at different points of the iteration.
501 testIterator(0); 484 testIterator(0);
502 testIterator(1); 485 testIterator(1);
503 testIterator(3); 486 testIterator(3);
504 testForEach(0); 487 testForEach(0);
505 testForEach(1); 488 testForEach(1);
506 testForEach(3); 489 testForEach(3);
507 } 490 }
508 491
509 testConcurrentModification(() => list.add(5)); 492 testConcurrentModification(() => list.add(5));
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 559
577 class Yes { 560 class Yes {
578 operator ==(var other) => true; 561 operator ==(var other) => true;
579 int get hashCode => 0; 562 int get hashCode => 0;
580 } 563 }
581 564
582 class MyList<E> extends ListBase<E> { 565 class MyList<E> extends ListBase<E> {
583 List<E> _source; 566 List<E> _source;
584 MyList(this._source); 567 MyList(this._source);
585 int get length => _source.length; 568 int get length => _source.length;
586 void set length(int length) { 569 void set length(int length) { _source.length = length; }
587 _source.length = length; 570 E operator[](int index) => _source[index];
588 } 571 void operator[]=(int index, E value) { _source[index] = value; }
589
590 E operator [](int index) => _source[index];
591 void operator []=(int index, E value) {
592 _source[index] = value;
593 }
594 } 572 }
595 573
596 class MyFixedList<E> extends ListBase<E> { 574 class MyFixedList<E> extends ListBase<E> {
597 List<E> _source; 575 List<E> _source;
598 MyFixedList(this._source); 576 MyFixedList(this._source);
599 int get length => _source.length; 577 int get length => _source.length;
600 void set length(int length) { 578 void set length(int length) { throw new UnsupportedError("Fixed length!"); }
601 throw new UnsupportedError("Fixed length!"); 579 E operator[](int index) => _source[index];
602 } 580 void operator[]=(int index, E value) { _source[index] = value; }
603
604 E operator [](int index) => _source[index];
605 void operator []=(int index, E value) {
606 _source[index] = value;
607 }
608 } 581 }
609 582
610 void testListConstructor() { 583 void testListConstructor() {
611 // Is fixed-length. 584 Expect.throws(() { new List(0).add(4); }); // Is fixed-length.
612 Expect.throws(() {
613 new List(0).add(4);
614 Expect.throws(() { new List(-2); }); // Not negative. //# 01: ok 585 Expect.throws(() { new List(-2); }); // Not negative. //# 01: ok
615 // Not null. 586 Expect.throws(() { new List(null); }); // Not null.
616 Expect.throws(() {
617 new List(null);
618 });
619 Expect.listEquals([4], new List()..add(4)); 587 Expect.listEquals([4], new List()..add(4));
620 // Is fixed-length. 588 Expect.throws(() { new List.filled(0, 42).add(4); }); // Is fixed-length.
621 Expect.throws(() { 589 Expect.throws(() { new List.filled(-2, 42); }); // Not negative.
622 new List.filled(0, 42).add(4); 590 Expect.throws(() { new List.filled(null, 42); }); // Not null.
623 });
624 // Not negative.
625 Expect.throws(() {
626 new List.filled(-2, 42);
627 });
628 // Not null.
629 Expect.throws(() {
630 new List.filled(null, 42);
631 });
632 } 591 }
OLDNEW
« no previous file with comments | « tests/corelib/iterable_to_list_test.dart ('k') | tests/corelib/num_parse_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698