| Index: packages/collection/test/algorithms_test.dart
|
| diff --git a/packages/collection/test/algorithms_test.dart b/packages/collection/test/algorithms_test.dart
|
| index 61fbf5be2594c8bb4dfc76dc2c2690cde3f5a8ee..dbd2633f01a40d0efb463c01adc4b164e0d7f5a5 100644
|
| --- a/packages/collection/test/algorithms_test.dart
|
| +++ b/packages/collection/test/algorithms_test.dart
|
| @@ -43,18 +43,19 @@ void main() {
|
| if (count == 10) fail("Shuffle didn't change order.");
|
| } while (true);
|
| });
|
| - test("Shuffle sublist", (){
|
| + test("Shuffle sublist", () {
|
| List l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
|
| List c = l.toList();
|
| shuffle(l, 4, 12);
|
| - expect(const IterableEquality().equals(l.getRange(0, 4),
|
| - c.getRange(0, 4)), isTrue);
|
| - expect(const IterableEquality().equals(l.getRange(12, 16),
|
| - c.getRange(12, 16)), isTrue);
|
| - expect(const UnorderedIterableEquality().equals(l.getRange(4, 12),
|
| - c.getRange(4, 12)),
|
| - isTrue);
|
| -
|
| + expect(const IterableEquality().equals(l.getRange(0, 4), c.getRange(0, 4)),
|
| + isTrue);
|
| + expect(
|
| + const IterableEquality().equals(l.getRange(12, 16), c.getRange(12, 16)),
|
| + isTrue);
|
| + expect(
|
| + const UnorderedIterableEquality()
|
| + .equals(l.getRange(4, 12), c.getRange(4, 12)),
|
| + isTrue);
|
| });
|
|
|
| test("binsearch0", () {
|
| @@ -78,7 +79,7 @@ void main() {
|
| });
|
|
|
| test("binsearchCompare0", () {
|
| - expect(binarySearch([], new C(2), compare: compareC), equals(-1));
|
| + expect(binarySearch(<C>[], new C(2), compare: compareC), equals(-1));
|
| });
|
|
|
| test("binsearchCompare1", () {
|
| @@ -99,12 +100,66 @@ void main() {
|
| expect(binarySearch(l3, new C(12), compare: compareC), equals(-1));
|
| });
|
|
|
| + test("lowerbound0", () {
|
| + expect(lowerBound([], 2), equals(0));
|
| + });
|
| +
|
| + test("lowerbound1", () {
|
| + expect(lowerBound([5], 2), equals(0));
|
| + expect(lowerBound([5], 5), equals(0));
|
| + expect(lowerBound([5], 7), equals(1));
|
| + });
|
| +
|
| + test("lowerbound3", () {
|
| + expect(lowerBound([0, 5, 10], -1), equals(0));
|
| + expect(lowerBound([0, 5, 10], 0), equals(0));
|
| + expect(lowerBound([0, 5, 10], 2), equals(1));
|
| + expect(lowerBound([0, 5, 10], 5), equals(1));
|
| + expect(lowerBound([0, 5, 10], 7), equals(2));
|
| + expect(lowerBound([0, 5, 10], 10), equals(2));
|
| + expect(lowerBound([0, 5, 10], 12), equals(3));
|
| + });
|
| +
|
| + test("lowerboundRepeat", () {
|
| + expect(lowerBound([5, 5, 5], 5), equals(0));
|
| + expect(lowerBound([0, 5, 5, 5, 10], 5), equals(1));
|
| + });
|
| +
|
| + test("lowerboundCompare0", () {
|
| + expect(lowerBound(<C>[], new C(2), compare: compareC), equals(0));
|
| + });
|
| +
|
| + test("lowerboundCompare1", () {
|
| + var l1 = [new C(5)];
|
| + expect(lowerBound(l1, new C(2), compare: compareC), equals(0));
|
| + expect(lowerBound(l1, new C(5), compare: compareC), equals(0));
|
| + expect(lowerBound(l1, new C(7), compare: compareC), equals(1));
|
| + });
|
| +
|
| + test("lowerboundCompare3", () {
|
| + var l3 = [new C(0), new C(5), new C(10)];
|
| + expect(lowerBound(l3, new C(-1), compare: compareC), equals(0));
|
| + expect(lowerBound(l3, new C(0), compare: compareC), equals(0));
|
| + expect(lowerBound(l3, new C(2), compare: compareC), equals(1));
|
| + expect(lowerBound(l3, new C(5), compare: compareC), equals(1));
|
| + expect(lowerBound(l3, new C(7), compare: compareC), equals(2));
|
| + expect(lowerBound(l3, new C(10), compare: compareC), equals(2));
|
| + expect(lowerBound(l3, new C(12), compare: compareC), equals(3));
|
| + });
|
| +
|
| + test("lowerboundCompareRepeat", () {
|
| + var l1 = [new C(5), new C(5), new C(5)];
|
| + var l2 = [new C(0), new C(5), new C(5), new C(5), new C(10)];
|
| + expect(lowerBound(l1, new C(5), compare: compareC), equals(0));
|
| + expect(lowerBound(l2, new C(5), compare: compareC), equals(1));
|
| + });
|
| +
|
| test("insertionSortRandom", () {
|
| Random random = new Random();
|
| for (int i = 0; i < 25; i++) {
|
| List list = new List(i);
|
| for (int j = 0; j < i; j++) {
|
| - list[j] = random.nextInt(25); // Expect some equal elements.
|
| + list[j] = random.nextInt(25); // Expect some equal elements.
|
| }
|
| insertionSort(list);
|
| for (int j = 1; j < i; j++) {
|
| @@ -142,7 +197,7 @@ void main() {
|
| for (int i = 0; i < 250; i += 1) {
|
| List list = new List(i);
|
| for (int j = 0; j < i; j++) {
|
| - list[j] = random.nextInt(i); // Expect some equal elements.
|
| + list[j] = random.nextInt(i); // Expect some equal elements.
|
| }
|
| mergeSort(list);
|
| for (int j = 1; j < i; j++) {
|
| @@ -260,6 +315,7 @@ class C {
|
| final int id;
|
| C(this.id);
|
| }
|
| +
|
| int compareC(C one, C other) => one.id - other.id;
|
|
|
| class OC implements Comparable<OC> {
|
|
|