4a7dfd2da3
Review URL: https://codereview.chromium.org//11783009 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16687 260f80e4-7a28-3924-810f-c04153c831b5
112 lines
2.9 KiB
Dart
112 lines
2.9 KiB
Dart
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
// Dart test program for testing arrays.
|
|
|
|
class ListTest {
|
|
static void TestIterator() {
|
|
List<int> a = new List<int>.fixedLength(10);
|
|
int count = 0;
|
|
|
|
// Basic iteration over ObjectList.
|
|
for (int elem in a) {
|
|
Expect.equals(null, elem);
|
|
count++;
|
|
}
|
|
Expect.equals(10, count);
|
|
|
|
// List length is 0.
|
|
List<int> fa = new List<int>();
|
|
count = 0;
|
|
for (int elem in fa) {
|
|
count++;
|
|
}
|
|
Expect.equals(0, count);
|
|
|
|
// Iterate over ImmutableList.
|
|
List<int> ca = const [0, 1, 2, 3, 4, 5];
|
|
int sum = 0;
|
|
for (int elem in ca) {
|
|
sum += elem;
|
|
fa.add(elem);
|
|
}
|
|
Expect.equals(15, sum);
|
|
|
|
// Iterate over List.
|
|
int sum2 = 0;
|
|
for (int elem in fa) {
|
|
sum2 += elem;
|
|
}
|
|
Expect.equals(sum, sum2);
|
|
}
|
|
|
|
static void testMain() {
|
|
int len = 10;
|
|
List a = new List.fixedLength(len);
|
|
Expect.equals(true, a is List);
|
|
Expect.equals(len, a.length);
|
|
a.forEach((element) { Expect.equals(null, element); });
|
|
a[1] = 1;
|
|
Expect.equals(1, a[1]);
|
|
Expect.throws(() => a[len], (e) => e is RangeError);
|
|
|
|
Expect.throws(() {
|
|
List a = new List.fixedLength(4);
|
|
a.setRange(1, 1, a, null);
|
|
});
|
|
|
|
Expect.throws(() {
|
|
List a = new List.fixedLength(4);
|
|
a.setRange(10, 1, a, 1);
|
|
}, (e) => e is RangeError);
|
|
|
|
a = new List.fixedLength(4);
|
|
List b = new List.fixedLength(4);
|
|
b.setRange(0, 4, a, 0);
|
|
|
|
List<int> unsorted = [4, 3, 9, 12, -4, 9];
|
|
int compare(a, b) {
|
|
if (a < b) return -1;
|
|
if (a > b) return 1;
|
|
return 0;
|
|
}
|
|
unsorted.sort(compare);
|
|
Expect.equals(6, unsorted.length);
|
|
Expect.equals(-4, unsorted[0]);
|
|
Expect.equals(12, unsorted[unsorted.length - 1]);
|
|
int compare2(a, b) {
|
|
if (a < b) return 1;
|
|
if (a > b) return -1;
|
|
return 0;
|
|
}
|
|
unsorted.sort(compare2);
|
|
Expect.equals(12, unsorted[0]);
|
|
Expect.equals(-4, unsorted[unsorted.length - 1]);
|
|
Set<int> t = new Set<int>.from(unsorted);
|
|
Expect.equals(true, t.contains(9));
|
|
Expect.equals(true, t.contains(-4));
|
|
Expect.equals(false, t.contains(-3));
|
|
Expect.equals(6, unsorted.length);
|
|
Expect.equals(5, t.length);
|
|
TestIterator();
|
|
int element = unsorted[2];
|
|
Expect.equals(9, element);
|
|
|
|
Expect.throws(() => unsorted[2.1],
|
|
(e) => e is ArgumentError || e is TypeError);
|
|
|
|
Expect.throws(() => new List.fixedLength(-1));
|
|
Expect.throws(() => new List.fixedLength(99999999999999999999999));
|
|
|
|
List list = new List();
|
|
// We cannot write just 'list.removeLast' due to issue 3769.
|
|
Expect.throws(() => list.removeLast(),
|
|
(e) => e is RangeError);
|
|
Expect.equals(0, list.length);
|
|
}
|
|
}
|
|
|
|
main() {
|
|
ListTest.testMain();
|
|
}
|