diff --git a/tests/corelib/corelib.status b/tests/corelib/corelib.status index 4018403eddd..b2035db3c88 100644 --- a/tests/corelib/corelib.status +++ b/tests/corelib/corelib.status @@ -21,7 +21,6 @@ error_stack_trace1_test: RuntimeError # Issue 12399 integer_to_string_test/01: RuntimeError # Issue 1533 iterable_return_type_test/01: RuntimeError # Issue 20085 iterable_return_type_test/02: RuntimeError # Dart2js does not support Uint64*. -iterable_to_list_test/01: RuntimeError # Issue 26501 big_integer_*: Skip # VM specific test. compare_to2_test: RuntimeError, OK # Requires bigint support. diff --git a/tests/corelib/iterable_skip_while_test.dart b/tests/corelib/iterable_skip_while_test.dart deleted file mode 100644 index 43d8fd141b0..00000000000 --- a/tests/corelib/iterable_skip_while_test.dart +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright (c) 2012, 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. - -import "package:expect/expect.dart"; - -main() { - List list1 = [1, 2, 3]; - List list2 = const [4, 5]; - List list3 = []; - Set set1 = new Set(); - set1..add(11)..add(12)..add(13); - Set set2 = new Set(); - - Iterable skipWhileTrue = list1.skipWhile((x) => true); - Iterator it = skipWhileTrue.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable skipWhileOdd = list1.skipWhile((x) => x.isOdd); - it = skipWhileOdd.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(2, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(3, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable skipWhileLessThan3 = list1.skipWhile((x) => x < 3); - it = skipWhileLessThan3.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(3, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable skipWhileFalse = list1.skipWhile((x) => false); - it = skipWhileFalse.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(2, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(3, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable skipWhileEven = list1.skipWhile((x) => x.isEven); - it = skipWhileEven.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(2, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(3, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - skipWhileTrue = list2.skipWhile((x) => true); - it = skipWhileTrue.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - skipWhileEven = list2.skipWhile((x) => x.isEven); - it = skipWhileEven.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(5, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - skipWhileOdd = list2.skipWhile((x) => x.isOdd); - it = skipWhileOdd.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(4, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(5, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - skipWhileFalse = list2.skipWhile((x) => false); - it = skipWhileFalse.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(4, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(5, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable skipWhileFalse2 = list3.skipWhile((x) => false); - Iterator it2 = skipWhileFalse2.iterator; - Expect.isNull(it2.current); - Expect.isFalse(it2.moveNext()); - Expect.isNull(it2.current); - - Iterable skipWhileTrue2 = list3.skipWhile((x) => true); - it2 = skipWhileTrue2.iterator; - Expect.isNull(it2.current); - Expect.isFalse(it2.moveNext()); - Expect.isNull(it2.current); - - skipWhileTrue = set1.skipWhile((x) => true); - it = skipWhileTrue.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - skipWhileFalse = set1.skipWhile((x) => false); - List copied = skipWhileFalse.toList(); - Expect.equals(3, copied.length); - Expect.isTrue(set1.contains(copied[0])); - Expect.isTrue(set1.contains(copied[1])); - Expect.isTrue(set1.contains(copied[1])); - Expect.isTrue(copied[0] != copied[1]); - Expect.isTrue(copied[0] != copied[2]); - Expect.isTrue(copied[1] != copied[2]); - it = skipWhileFalse.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.isTrue(it.current != null); - Expect.isTrue(it.moveNext()); - Expect.isTrue(it.current != null); - Expect.isTrue(it.moveNext()); - Expect.isTrue(it.current != null); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - skipWhileTrue = set2.skipWhile((x) => true); - it = skipWhileTrue.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - skipWhileFalse = set2.skipWhile((x) => false); - it = skipWhileFalse.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); -} diff --git a/tests/corelib/iterable_take_test.dart b/tests/corelib/iterable_take_test.dart deleted file mode 100644 index 2067cc7c6c7..00000000000 --- a/tests/corelib/iterable_take_test.dart +++ /dev/null @@ -1,227 +0,0 @@ -// Copyright (c) 2012, 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. - -import "package:expect/expect.dart"; - -main() { - List list1 = [1, 2, 3]; - List list2 = const [4, 5]; - List list3 = []; - Set set1 = new Set(); - set1..add(11)..add(12)..add(13); - Set set2 = new Set(); - - Iterable take0 = list1.take(0); - Iterator it = take0.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable take1 = list1.take(1); - it = take1.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable take2 = list1.take(2); - it = take2.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(2, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable take3 = list1.take(3); - it = take3.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(2, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(3, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable take4 = list1.take(4); - it = take4.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(2, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(3, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - take4 = list1.take(4); - take3 = take4.take(3); - take2 = take3.take(2); - take1 = take2.take(1); - take0 = take1.take(0); - it = take0.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - it = take1.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - it = take2.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(2, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - it = take3.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(2, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(3, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - it = take4.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(2, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(3, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - take0 = list2.take(0); - it = take0.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - take1 = list2.take(1); - it = take1.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(4, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - take2 = list2.take(2); - it = take2.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(4, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(5, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - take3 = list2.take(3); - it = take3.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(4, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(5, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable take02 = list3.take(0); - Iterator it2 = take02.iterator; - Expect.isNull(it2.current); - Expect.isFalse(it2.moveNext()); - Expect.isNull(it2.current); - - Iterable take12 = list3.take(1); - it2 = take12.iterator; - Expect.isNull(it2.current); - Expect.isFalse(it2.moveNext()); - Expect.isNull(it2.current); - - take0 = set1.take(0); - it = take0.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - take1 = set1.take(1); - List copied = take1.toList(); - Expect.equals(1, copied.length); - Expect.isTrue(set1.contains(copied[0])); - it = take1.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.isNotNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - take2 = set1.take(2); - copied = take2.toList(); - Expect.equals(2, copied.length); - Expect.isTrue(set1.contains(copied[0])); - Expect.isTrue(set1.contains(copied[1])); - Expect.isTrue(copied[0] != copied[1]); - it = take2.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.isNotNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.isNotNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - take3 = set1.take(3); - copied = take3.toList(); - Expect.equals(3, copied.length); - Expect.isTrue(set1.contains(copied[0])); - Expect.isTrue(set1.contains(copied[1])); - Expect.isTrue(set1.contains(copied[2])); - Expect.isTrue(copied[0] != copied[1]); - Expect.isTrue(copied[0] != copied[2]); - Expect.isTrue(copied[1] != copied[2]); - it = take3.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.isNotNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.isNotNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.isNotNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - take0 = set2.take(0); - it = take0.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - take1 = set2.take(1); - it = take1.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Expect.throws(() => list1.skip(-1), (e) => e is RangeError); - Expect.throws(() => list2.skip(-1), (e) => e is RangeError); - Expect.throws(() => list3.skip(-1), (e) => e is RangeError); - Expect.throws(() => set1.skip(-1), (e) => e is RangeError); - Expect.throws(() => set2.skip(-1), (e) => e is RangeError); - Expect.throws(() => list1.map((x) => x).skip(-1), (e) => e is RangeError); - Expect.throws(() => list2.map((x) => x).skip(-1), (e) => e is RangeError); - Expect.throws(() => list3.map((x) => x).skip(-1), (e) => e is RangeError); - Expect.throws(() => set1.map((x) => x).skip(-1), (e) => e is RangeError); - Expect.throws(() => set2.map((x) => x).skip(-1), (e) => e is RangeError); -} diff --git a/tests/corelib/iterable_take_while_test.dart b/tests/corelib/iterable_take_while_test.dart deleted file mode 100644 index 877f749be28..00000000000 --- a/tests/corelib/iterable_take_while_test.dart +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (c) 2012, 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. - -import "package:expect/expect.dart"; - -main() { - List list1 = [1, 2, 3]; - List list2 = const [4, 5]; - List list3 = []; - Set set1 = new Set(); - set1..add(11)..add(12)..add(13); - Set set2 = new Set(); - - Iterable takeWhileFalse = list1.takeWhile((x) => false); - Iterator it = takeWhileFalse.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable takeWhileOdd = list1.takeWhile((x) => x.isOdd); - it = takeWhileOdd.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable takeWhileLessThan3 = list1.takeWhile((x) => x < 3); - it = takeWhileLessThan3.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(2, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable takeEverything = list1.takeWhile((x) => true); - it = takeEverything.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(1, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(2, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(3, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable takeWhileEven = list1.takeWhile((x) => x.isEven); - it = takeWhileFalse.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - takeWhileFalse = list2.takeWhile((x) => false); - it = takeWhileFalse.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - takeWhileEven = list2.takeWhile((x) => x.isEven); - it = takeWhileEven.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(4, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - takeEverything = list2.takeWhile((x) => true); - it = takeEverything.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(4, it.current); - Expect.isTrue(it.moveNext()); - Expect.equals(5, it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - Iterable takeWhileFalse2 = list3.takeWhile((x) => false); - Iterator it2 = takeWhileFalse2.iterator; - Expect.isNull(it2.current); - Expect.isFalse(it2.moveNext()); - Expect.isNull(it2.current); - - Iterable takeEverything2 = list3.takeWhile((x) => true); - it2 = takeEverything2.iterator; - Expect.isNull(it2.current); - Expect.isFalse(it2.moveNext()); - Expect.isNull(it2.current); - - takeWhileFalse = set1.takeWhile((x) => false); - it = takeWhileFalse.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - takeEverything = set1.takeWhile((x) => true); - List copied = takeEverything.toList(); - Expect.equals(3, copied.length); - Expect.isTrue(set1.contains(copied[0])); - Expect.isTrue(set1.contains(copied[1])); - Expect.isTrue(set1.contains(copied[1])); - Expect.isTrue(copied[0] != copied[1]); - Expect.isTrue(copied[0] != copied[2]); - Expect.isTrue(copied[1] != copied[2]); - it = takeEverything.iterator; - Expect.isNull(it.current); - Expect.isTrue(it.moveNext()); - Expect.isTrue(it.current != null); - Expect.isTrue(it.moveNext()); - Expect.isTrue(it.current != null); - Expect.isTrue(it.moveNext()); - Expect.isTrue(it.current != null); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - takeWhileFalse = set2.takeWhile((x) => false); - it = takeWhileFalse.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); - - takeEverything = set2.takeWhile((x) => true); - it = takeEverything.iterator; - Expect.isNull(it.current); - Expect.isFalse(it.moveNext()); - Expect.isNull(it.current); -} diff --git a/tests/corelib/iterable_to_set_test.dart b/tests/corelib/iterable_to_set_test.dart deleted file mode 100644 index 628ddb89b1e..00000000000 --- a/tests/corelib/iterable_to_set_test.dart +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright (c) 2012, 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. - -import "package:expect/expect.dart"; - -main() { - List list1 = [1, 2, 3]; - List list2 = const [4, 4]; - List list3 = []; - Set set1 = new Set(); - set1..add(11)..add(12)..add(13); - Set set2 = new Set(); - set2..add("foo")..add("bar")..add("toto"); - Set set3 = new Set(); - - var setCopy = list1.toSet(); - Expect.equals(3, setCopy.length); - Expect.isTrue(setCopy.contains(1)); - Expect.isTrue(setCopy.contains(2)); - Expect.isTrue(setCopy.contains(3)); - Expect.isTrue(setCopy is Set); - Expect.isFalse(setCopy is Set); - - setCopy = list2.toSet(); - Expect.equals(1, setCopy.length); - Expect.isTrue(setCopy.contains(4)); - Expect.isTrue(setCopy is Set); - Expect.isFalse(setCopy is Set); - - setCopy = list3.toSet(); - Expect.isTrue(setCopy.isEmpty); - Expect.isTrue(setCopy is Set); - Expect.isFalse(setCopy is Set); - - setCopy = set1.toSet(); - Expect.setEquals(set1, setCopy); - Expect.isTrue(setCopy is Set); - Expect.isFalse(setCopy is Set); - Expect.isFalse(identical(setCopy, set1)); - - setCopy = set2.toSet(); - Expect.setEquals(set2, setCopy); - Expect.isTrue(setCopy is Set); - Expect.isFalse(setCopy is Set); - Expect.isFalse(identical(setCopy, set2)); - - setCopy = set3.toSet(); - Expect.setEquals(set3, setCopy); - Expect.isTrue(setCopy is Set); - Expect.isTrue(setCopy is Set); - Expect.isFalse(identical(setCopy, set3)); -} diff --git a/tests/corelib/json_map_test.dart b/tests/corelib/json_map_test.dart deleted file mode 100644 index 8524e0088d8..00000000000 --- a/tests/corelib/json_map_test.dart +++ /dev/null @@ -1,334 +0,0 @@ -// 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. - -library json_map_test; - -import "package:expect/expect.dart"; -import 'dart:convert' show JSON; -import 'dart:collection' show LinkedHashMap, HashMap; - -bool useReviver = false; -Map jsonify(Map map) { - String encoded = JSON.encode(map); - return useReviver - ? JSON.decode(encoded, reviver: (key, value) => value) - : JSON.decode(encoded); -} - -List listEach(Map map) { - var result = []; - map.forEach((String key, value) { - result.add(key); - result.add(value); - }); - return result; -} - -void main() { - test(false); - test(true); -} - -void test(bool revive) { - useReviver = revive; - testEmpty(jsonify({})); - testAtoB(jsonify({'a': 'b'})); - - Map map = jsonify({}); - map['a'] = 'b'; - testAtoB(map); - - map = jsonify({}); - Expect.equals('b', map.putIfAbsent('a', () => 'b')); - testAtoB(map); - - map = jsonify({}); - map.addAll({'a': 'b'}); - testAtoB(map); - - testOrder(['a', 'b', 'c', 'd', 'e', 'f']); - - testProto(); - testToString(); - testConcurrentModifications(); - testType(); - testClear(); - - testListEntry(); - testMutation(); -} - -void testEmpty(Map map) { - for (int i = 0; i < 2; i++) { - Expect.equals(0, map.length); - Expect.isTrue(map.isEmpty); - Expect.isFalse(map.isNotEmpty); - Expect.listEquals([], map.keys.toList()); - Expect.listEquals([], map.values.toList()); - Expect.isNull(map['a']); - Expect.listEquals([], listEach(map)); - Expect.isFalse(map.containsKey('a')); - Expect.isFalse(map.containsValue('a')); - Expect.isNull(map.remove('a')); - testLookupNonExistingKeys(map); - testLookupNonExistingValues(map); - map.clear(); - } -} - -void testAtoB(Map map) { - Expect.equals(1, map.length); - Expect.isFalse(map.isEmpty); - Expect.isTrue(map.isNotEmpty); - Expect.listEquals(['a'], map.keys.toList()); - Expect.listEquals(['b'], map.values.toList()); - Expect.equals('b', map['a']); - Expect.listEquals(['a', 'b'], listEach(map)); - Expect.isTrue(map.containsKey('a')); - Expect.isFalse(map.containsKey('b')); - Expect.isTrue(map.containsValue('b')); - Expect.isFalse(map.containsValue('a')); - - testLookupNonExistingKeys(map); - testLookupNonExistingValues(map); - Expect.equals('b', map.remove('a')); - Expect.isNull(map.remove('b')); - testLookupNonExistingKeys(map); - testLookupNonExistingValues(map); - - map.clear(); - testEmpty(map); -} - -void testLookupNonExistingKeys(Map map) { - for (String key in ['__proto__', 'null', null]) { - Expect.isNull(map[key]); - Expect.isFalse(map.containsKey(key)); - } -} - -void testLookupNonExistingValues(Map map) { - for (var value in ['__proto__', 'null', null]) { - Expect.isFalse(map.containsValue(value)); - } -} - -void testOrder(List list) { - if (list.isEmpty) - return; - else - testOrder(list.skip(1).toList()); - - Map original = {}; - for (int i = 0; i < list.length; i++) { - original[list[i]] = i; - } - - Map map = jsonify(original); - Expect.equals(list.length, map.length); - Expect.listEquals(list, map.keys.toList()); - - for (int i = 0; i < 10; i++) { - map["$i"] = i; - Expect.equals(list.length + i + 1, map.length); - Expect.listEquals(list, map.keys.take(list.length).toList()); - } -} - -void testProto() { - Map map = jsonify({'__proto__': 0}); - Expect.equals(1, map.length); - Expect.isTrue(map.containsKey('__proto__')); - Expect.listEquals(['__proto__'], map.keys.toList()); - Expect.equals(0, map['__proto__']); - Expect.equals(0, map.remove('__proto__')); - testEmpty(map); - - map = jsonify({'__proto__': null}); - Expect.equals(1, map.length); - Expect.isTrue(map.containsKey('__proto__')); - Expect.listEquals(['__proto__'], map.keys.toList()); - Expect.isNull(map['__proto__']); - Expect.isNull(map.remove('__proto__')); - testEmpty(map); -} - -void testToString() { - Expect.equals("{}", jsonify({}).toString()); - Expect.equals("{a: 0}", jsonify({'a': 0}).toString()); -} - -void testConcurrentModifications() { - void testIterate(Map map, Iterable iterable, Function f) { - Iterator iterator = iterable.iterator; - f(map); - iterator.moveNext(); - } - - void testKeys(Map map, Function f) => testIterate(map, map.keys, f); - void testValues(Map map, Function f) => testIterate(map, map.values, f); - - void testForEach(Map map, Function f) { - map.forEach((key, value) { - f(map); - }); - } - - bool throwsCME(Function f) { - try { - f(); - } on ConcurrentModificationError catch (e) { - return true; - } catch (e) { - return false; - } - return false; - } - - Map map = {}; - Expect.isTrue(throwsCME(() => testKeys(jsonify(map), (map) => map['a'] = 0))); - Expect - .isTrue(throwsCME(() => testValues(jsonify(map), (map) => map['a'] = 0))); - Expect.isFalse( - throwsCME(() => testForEach(jsonify(map), (map) => map['a'] = 0))); - - Expect.isFalse(throwsCME(() => testKeys(jsonify(map), (map) => map.clear()))); - Expect - .isFalse(throwsCME(() => testValues(jsonify(map), (map) => map.clear()))); - Expect.isFalse( - throwsCME(() => testForEach(jsonify(map), (map) => map.clear()))); - - Expect.isFalse( - throwsCME(() => testKeys(jsonify(map), (map) => map.remove('a')))); - Expect.isFalse( - throwsCME(() => testValues(jsonify(map), (map) => map.remove('a')))); - Expect.isFalse( - throwsCME(() => testForEach(jsonify(map), (map) => map.remove('a')))); - - Expect.isTrue(throwsCME( - () => testKeys(jsonify(map), (map) => map.putIfAbsent('a', () => 0)))); - Expect.isTrue(throwsCME( - () => testValues(jsonify(map), (map) => map.putIfAbsent('a', () => 0)))); - Expect.isFalse(throwsCME( - () => testForEach(jsonify(map), (map) => map.putIfAbsent('a', () => 0)))); - - Expect.isFalse( - throwsCME(() => testKeys(jsonify(map), (map) => map.addAll({})))); - Expect.isFalse( - throwsCME(() => testValues(jsonify(map), (map) => map.addAll({})))); - Expect.isFalse( - throwsCME(() => testForEach(jsonify(map), (map) => map.addAll({})))); - - Expect.isTrue( - throwsCME(() => testKeys(jsonify(map), (map) => map.addAll({'a': 0})))); - Expect.isTrue( - throwsCME(() => testValues(jsonify(map), (map) => map.addAll({'a': 0})))); - Expect.isFalse(throwsCME( - () => testForEach(jsonify(map), (map) => map.addAll({'a': 0})))); - - map = {'a': 1}; - Expect - .isFalse(throwsCME(() => testKeys(jsonify(map), (map) => map['a'] = 0))); - Expect.isFalse( - throwsCME(() => testValues(jsonify(map), (map) => map['a'] = 0))); - Expect.isFalse( - throwsCME(() => testForEach(jsonify(map), (map) => map['a'] = 0))); - - Expect.isTrue(throwsCME(() => testKeys(jsonify(map), (map) => map['b'] = 0))); - Expect - .isTrue(throwsCME(() => testValues(jsonify(map), (map) => map['b'] = 0))); - Expect.isTrue( - throwsCME(() => testForEach(jsonify(map), (map) => map['b'] = 0))); - - Expect.isTrue(throwsCME(() => testKeys(jsonify(map), (map) => map.clear()))); - Expect - .isTrue(throwsCME(() => testValues(jsonify(map), (map) => map.clear()))); - Expect - .isTrue(throwsCME(() => testForEach(jsonify(map), (map) => map.clear()))); - - Expect.isTrue( - throwsCME(() => testKeys(jsonify(map), (map) => map.remove('a')))); - Expect.isTrue( - throwsCME(() => testValues(jsonify(map), (map) => map.remove('a')))); - Expect.isTrue( - throwsCME(() => testForEach(jsonify(map), (map) => map.remove('a')))); - - Expect.isFalse( - throwsCME(() => testKeys(jsonify(map), (map) => map.remove('b')))); - Expect.isFalse( - throwsCME(() => testValues(jsonify(map), (map) => map.remove('b')))); - Expect.isFalse( - throwsCME(() => testForEach(jsonify(map), (map) => map.remove('b')))); - - Expect.isFalse(throwsCME( - () => testKeys(jsonify(map), (map) => map.putIfAbsent('a', () => 0)))); - Expect.isFalse(throwsCME( - () => testValues(jsonify(map), (map) => map.putIfAbsent('a', () => 0)))); - Expect.isFalse(throwsCME( - () => testForEach(jsonify(map), (map) => map.putIfAbsent('a', () => 0)))); - - Expect.isTrue(throwsCME( - () => testKeys(jsonify(map), (map) => map.putIfAbsent('b', () => 0)))); - Expect.isTrue(throwsCME( - () => testValues(jsonify(map), (map) => map.putIfAbsent('b', () => 0)))); - Expect.isTrue(throwsCME( - () => testForEach(jsonify(map), (map) => map.putIfAbsent('b', () => 0)))); - - Expect.isFalse( - throwsCME(() => testKeys(jsonify(map), (map) => map.addAll({})))); - Expect.isFalse( - throwsCME(() => testValues(jsonify(map), (map) => map.addAll({})))); - Expect.isFalse( - throwsCME(() => testForEach(jsonify(map), (map) => map.addAll({})))); - - Expect.isFalse( - throwsCME(() => testKeys(jsonify(map), (map) => map.addAll({'a': 0})))); - Expect.isFalse( - throwsCME(() => testValues(jsonify(map), (map) => map.addAll({'a': 0})))); - Expect.isFalse(throwsCME( - () => testForEach(jsonify(map), (map) => map.addAll({'a': 0})))); - - Expect.isTrue( - throwsCME(() => testKeys(jsonify(map), (map) => map.addAll({'b': 0})))); - Expect.isTrue( - throwsCME(() => testValues(jsonify(map), (map) => map.addAll({'b': 0})))); - Expect.isTrue(throwsCME( - () => testForEach(jsonify(map), (map) => map.addAll({'b': 0})))); -} - -void testType() { - Expect.isTrue(jsonify({}) is Map); - Expect.isTrue(jsonify({}) is Map); - Expect.isFalse(jsonify({}) is Map); -} - -void testClear() { - Map map = jsonify({'a': 0}); - map.clear(); - Expect.equals(0, map.length); -} - -void testListEntry() { - Map map = jsonify({ - 'a': [ - 7, - 8, - {'b': 9} - ] - }); - List list = map['a']; - Expect.equals(3, list.length); - Expect.equals(7, list[0]); - Expect.equals(8, list[1]); - Expect.equals(9, list[2]['b']); -} - -void testMutation() { - Map map = jsonify({'a': 0}); - Expect.listEquals(['a', 0], listEach(map)); - map['a'] = 1; - Expect.listEquals(['a', 1], listEach(map)); - map['a']++; - Expect.listEquals(['a', 2], listEach(map)); -} diff --git a/tests/corelib_2/corelib_2.status b/tests/corelib_2/corelib_2.status index 08caafa8796..2cb54eff52b 100644 --- a/tests/corelib_2/corelib_2.status +++ b/tests/corelib_2/corelib_2.status @@ -81,6 +81,8 @@ compare_to2_test: RuntimeError # Issue 30170 date_time10_test: RuntimeError # Issue 29921 growable_list_test: RuntimeError # Issue 29921 hash_set_test/01: RuntimeError # Issue 29921 +iterable_to_list_test/*: RuntimeError +iterable_to_set_test: RuntimeError list_unmodifiable_test: RuntimeError list_test/none: RuntimeError list_test/01: RuntimeError @@ -152,6 +154,7 @@ big_integer_parsed_arith_vm_test: RuntimeError # Issues 10245, 29921 big_integer_parsed_div_rem_vm_test: RuntimeError # Issue 29921 big_integer_parsed_mul_div_vm_test: RuntimeError # Issue 29921 bit_twiddling_bigint_test: RuntimeError # Required bigint support. +json_map_test: RuntimeError compare_to2_test: RuntimeError, OK # Requires bigint support. hash_set_test/01: RuntimeError # Issue 11551 int_modulo_arith_test/bignum: RuntimeError # Issue 29921 @@ -176,6 +179,7 @@ list_insert_test: RuntimeError # Issue 29921 list_removeat_test: RuntimeError # Issue 29921 list_replace_range_test: RuntimeError # Issue 29921 list_set_all_test: RuntimeError # Issue 29921 +json_map_test: RuntimeError # Issue 29921 [ $runtime == flutter ] apply3_test: CompileTimeError # mirrors not supported @@ -681,6 +685,26 @@ list_get_range_test: Crash list_growable_test: Crash list_insert_all_test: Crash list_insert_test: Crash +list_iterators_test: Crash +list_last_test: Crash +list_map_test: Crash +list_remove_range_test: Crash +list_removeat_test: Crash +list_replace_range_test: Crash +list_reversed_test: Crash +list_set_all_test: Crash +list_set_range_test: Crash +list_sort_test: RuntimeError +list_sublist_test: Crash +iterable_skip_while_test: Crash +iterable_take_test: Crash +iterable_take_while_test: Crash +iterable_test: Crash +iterable_to_list_test/01: Crash +iterable_to_list_test/none: Crash +iterable_to_set_test: Crash +iterable_tostring_test: Crash +json_map_test: Crash [ $compiler == dart2js && $dart2js_with_kernel && $host_checked ] stopwatch_test: Crash @@ -980,3 +1004,12 @@ package_resource_test: RuntimeError # Issue 26842 [ $compiler == dart2js && ! $dart2js_with_kernel ] list_unmodifiable_test: Pass, RuntimeError # Issue 28712 +iterable_to_list_test/01: RuntimeError # Issue 26501 + +[ $compiler == dartk && $runtime == vm ] +list_map_test: DartkCompileTimeError +list_remove_range_test: DartkCompileTimeError +list_replace_range_test: DartkCompileTimeError +list_set_all_test: DartkCompileTimeError +list_set_range_test: DartkCompileTimeError +list_sublist_test: DartkCompileTimeError diff --git a/tests/corelib_strong/iterable_skip_while_test.dart b/tests/corelib_2/iterable_skip_while_test.dart similarity index 100% rename from tests/corelib_strong/iterable_skip_while_test.dart rename to tests/corelib_2/iterable_skip_while_test.dart diff --git a/tests/corelib_strong/iterable_take_test.dart b/tests/corelib_2/iterable_take_test.dart similarity index 100% rename from tests/corelib_strong/iterable_take_test.dart rename to tests/corelib_2/iterable_take_test.dart diff --git a/tests/corelib_strong/iterable_take_while_test.dart b/tests/corelib_2/iterable_take_while_test.dart similarity index 100% rename from tests/corelib_strong/iterable_take_while_test.dart rename to tests/corelib_2/iterable_take_while_test.dart diff --git a/tests/corelib/iterable_test.dart b/tests/corelib_2/iterable_test.dart similarity index 100% rename from tests/corelib/iterable_test.dart rename to tests/corelib_2/iterable_test.dart diff --git a/tests/corelib/iterable_to_list_test.dart b/tests/corelib_2/iterable_to_list_test.dart similarity index 100% rename from tests/corelib/iterable_to_list_test.dart rename to tests/corelib_2/iterable_to_list_test.dart diff --git a/tests/corelib_strong/iterable_to_set_test.dart b/tests/corelib_2/iterable_to_set_test.dart similarity index 79% rename from tests/corelib_strong/iterable_to_set_test.dart rename to tests/corelib_2/iterable_to_set_test.dart index 628ddb89b1e..b0056ffe13b 100644 --- a/tests/corelib_strong/iterable_to_set_test.dart +++ b/tests/corelib_2/iterable_to_set_test.dart @@ -28,10 +28,10 @@ main() { Expect.isTrue(setCopy is Set); Expect.isFalse(setCopy is Set); - setCopy = list3.toSet(); - Expect.isTrue(setCopy.isEmpty); - Expect.isTrue(setCopy is Set); - Expect.isFalse(setCopy is Set); + var setStrCopy = list3.toSet(); + Expect.isTrue(setStrCopy.isEmpty); + Expect.isTrue(setStrCopy is Set); + Expect.isFalse(setStrCopy is Set); setCopy = set1.toSet(); Expect.setEquals(set1, setCopy); @@ -39,11 +39,11 @@ main() { Expect.isFalse(setCopy is Set); Expect.isFalse(identical(setCopy, set1)); - setCopy = set2.toSet(); - Expect.setEquals(set2, setCopy); - Expect.isTrue(setCopy is Set); - Expect.isFalse(setCopy is Set); - Expect.isFalse(identical(setCopy, set2)); + setStrCopy = set2.toSet(); + Expect.setEquals(set2, setStrCopy); + Expect.isTrue(setStrCopy is Set); + Expect.isFalse(setStrCopy is Set); + Expect.isFalse(identical(setStrCopy, set2)); setCopy = set3.toSet(); Expect.setEquals(set3, setCopy); diff --git a/tests/corelib/iterable_tostring_test.dart b/tests/corelib_2/iterable_tostring_test.dart similarity index 100% rename from tests/corelib/iterable_tostring_test.dart rename to tests/corelib_2/iterable_tostring_test.dart diff --git a/tests/corelib_strong/json_map_test.dart b/tests/corelib_2/json_map_test.dart similarity index 96% rename from tests/corelib_strong/json_map_test.dart rename to tests/corelib_2/json_map_test.dart index e4d46eecbed..bb47d2d3a11 100644 --- a/tests/corelib_strong/json_map_test.dart +++ b/tests/corelib_2/json_map_test.dart @@ -53,7 +53,6 @@ void test(bool revive) { testToString(); testConcurrentModifications(); testType(); - testNonStringKeys(); testClear(); testListEntry(); @@ -307,16 +306,9 @@ void testType() { Expect.isTrue(jsonify({}) is HashMap); Expect.isTrue(jsonify({}) is LinkedHashMap); - Expect.isTrue(jsonify({}) is Map); - Expect.isTrue(jsonify({}) is HashMap); - Expect.isTrue(jsonify({}) is LinkedHashMap); -} - -void testNonStringKeys() { - Map map = jsonify({}); - map[1] = 2; - Expect.equals(1, map.length); - Expect.equals(2, map[1]); + Expect.isFalse(jsonify({}) is Map); + Expect.isFalse(jsonify({}) is HashMap); + Expect.isFalse(jsonify({}) is LinkedHashMap); } void testClear() { diff --git a/tests/corelib_strong/corelib_strong.status b/tests/corelib_strong/corelib_strong.status index ed973e31b37..124d563aa06 100644 --- a/tests/corelib_strong/corelib_strong.status +++ b/tests/corelib_strong/corelib_strong.status @@ -16,8 +16,6 @@ iterable_element_at_test: Skip iterable_fold_test: Skip iterable_mapping_test: Skip iterable_reduce_test: Skip -iterable_to_list_test: Skip -iterable_to_set_test: Skip linked_hash_map_from_iterable_test: Skip regexp/regress-regexp-codeflush_test: Skip regexp/standalones_test: Skip @@ -31,7 +29,6 @@ integer_to_radix_string_test: RuntimeError # Issue 29921 integer_to_string_test/01: RuntimeError # Issue 29921 iterable_generate_test: RuntimeError # Issue 29921 iterable_return_type_test/02: RuntimeError # Issue 29921 -json_map_test: RuntimeError # Issue 29921 regress_r21715_test: RuntimeError # Issue 29921 string_operations_with_null_test: RuntimeError # Issue 29921 diff --git a/tests/corelib_strong/corelib_strong_kernel.status b/tests/corelib_strong/corelib_strong_kernel.status index bc396fb6d4b..aebc66d1f55 100644 --- a/tests/corelib_strong/corelib_strong_kernel.status +++ b/tests/corelib_strong/corelib_strong_kernel.status @@ -14,9 +14,6 @@ iterable_return_type_test/01: RuntimeError iterable_return_type_test/02: RuntimeError iterable_return_type_test/none: RuntimeError iterable_skip_test: DartkCompileTimeError -iterable_skip_while_test: DartkCompileTimeError -iterable_take_test: DartkCompileTimeError -iterable_take_while_test: DartkCompileTimeError set_test: DartkCompileTimeError shuffle_test: DartkCompileTimeError sort_test: DartkCompileTimeError diff --git a/tests/corelib_strong/iterable_test.dart b/tests/corelib_strong/iterable_test.dart deleted file mode 100644 index e7f6299c0ae..00000000000 --- a/tests/corelib_strong/iterable_test.dart +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2013, 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. - -// Regression test for dart2js where [List.addAll] was not typed -// correctly. - -import "package:expect/expect.dart"; - -import 'dart:collection'; - -class MyIterable extends IterableBase { - get iterator => [].iterator; -} - -main() { - Expect.isTrue(([]..addAll(new MyIterable())).isEmpty); -} diff --git a/tests/corelib_strong/iterable_to_list_test.dart b/tests/corelib_strong/iterable_to_list_test.dart deleted file mode 100644 index 6d7886138ec..00000000000 --- a/tests/corelib_strong/iterable_to_list_test.dart +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright (c) 2012, 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. - -import "package:expect/expect.dart"; - -dynamicCheck(input, {isInt, isString}) { - var copy = input.toList(); - Expect.isTrue(isInt == copy is List); - Expect.isTrue(isString == copy is List); -} - -main() { - List list1 = [1, 2, 3]; - List list2 = const [4, 5]; - List list3 = []; - Set set1 = new Set(); - set1..add(11)..add(12)..add(13); - Set set2 = new Set(); - set2..add("foo")..add("bar")..add("toto"); - Set set3 = new Set(); - - var listCopy = list1.toList(); - Expect.listEquals(list1, listCopy); - Expect.isTrue(listCopy is List); - Expect.isFalse(listCopy is List); - Expect.isFalse(identical(list1, listCopy)); - dynamicCheck(list1, isInt: true, isString: false); - - listCopy = list2.toList(); - Expect.listEquals(list2, listCopy); - Expect.isTrue(listCopy is List); - Expect.isFalse(listCopy is List); - Expect.isFalse(identical(list2, listCopy)); - dynamicCheck(list2, isInt: true, isString: false); - - listCopy = list3.toList(); - Expect.listEquals(list3, listCopy); - Expect.isTrue(listCopy is List); - Expect.isFalse(listCopy is List); - Expect.isFalse(identical(list3, listCopy)); - dynamicCheck(list3, isInt: false, isString: true); - - listCopy = set1.toList(); - Expect.equals(3, listCopy.length); - Expect.isTrue(listCopy.contains(11)); - Expect.isTrue(listCopy.contains(12)); - Expect.isTrue(listCopy.contains(13)); - Expect.isTrue(listCopy is List); - Expect.isFalse(listCopy is List); - dynamicCheck(set1, isInt: true, isString: false); - - listCopy = set2.toList(); - Expect.equals(3, listCopy.length); - Expect.isTrue(listCopy.contains("foo")); - Expect.isTrue(listCopy.contains("bar")); - Expect.isTrue(listCopy.contains("toto")); - Expect.isTrue(listCopy is List); - Expect.isFalse(listCopy is List); - dynamicCheck(set2, isInt: false, isString: true); - - listCopy = set3.toList(); - Expect.isTrue(listCopy.isEmpty); - Expect.isTrue(listCopy is List); - Expect.isTrue(listCopy is List); - dynamicCheck(set3, isInt: true, isString: true); -} diff --git a/tests/corelib_strong/iterable_tostring_test.dart b/tests/corelib_strong/iterable_tostring_test.dart deleted file mode 100644 index bb220978412..00000000000 --- a/tests/corelib_strong/iterable_tostring_test.dart +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright (c) 2013, 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. - -// Test the IterableBase/IterableMixin toString method. - -import "package:expect/expect.dart"; -import "dart:collection"; - -String mkIt(int len, [func]) { - var list; - if (func == null) { - list = new List.generate(len, (x) => x); - } else { - list = new List.generate(len, func); - } - return new MyIterable(list).toString(); -} - -class MyIterable extends IterableBase { - final Iterable _base; - MyIterable(this._base); - Iterator get iterator => _base.iterator; -} - -void main() { - Expect.equals("()", mkIt(0)); - Expect.equals("(0)", mkIt(1)); - Expect.equals("(0, 1)", mkIt(2)); - Expect.equals("(0, 1, 2, 3, 4, 5, 6, 7, 8)", mkIt(9)); - - // Builds string up to 60 characters, then finishes with last two - // elements. - Expect.equals( - //0123456789012345678901234567890123456789 - 40 characters - "(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1" - "2, 13, 14, 15, 16, 17, 18, ..., 98, 99)", - mkIt(100)); - - Expect.equals( - //0123456789012345678901234567890123456789 - "(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1" - "2, 13, 14, 15, 16, 17, 18)", - mkIt(19)); - - Expect.equals( - //0123456789012345678901234567890123456789 - "(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1" - "2, 13, 14, 15, 16, 17, 18, 19)", - mkIt(20)); - - Expect.equals( - //0123456789012345678901234567890123456789 - "(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1" - "2, 13, 14, 15, 16, 17, 18, 19, 20)", - mkIt(21)); - - // Don't show last two elements if more than 100 elements total - // (can't be 100 elements in 80 characters including commas). - Expect.equals( - //0123456789012345678901234567890123456789 - "(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1" - "2, 13, 14, 15, 16, 17, 18, 19, 20, ...)", - mkIt(101)); - - // If last two elements bring total over 80 characters, drop some of - // the previous ones as well. - - Expect.equals( - //0123456789012345678901234567890123456789 - "(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1" - "2, 13, ..., 18, xxxxxxxxxxxxxxxxxxxx)", - mkIt(20, (x) => x == 19 ? "xxxxxxxxxxxxxxxxxxxx" : "$x")); - - // Never drop the first three or the last two. - Expect.equals( - //0123456789012345678901234567890123456789 - "(xxxxxxxxxxxxxxxxx, xxxxxxxxxxxxxxxxx, x" - "xxxxxxxxxxxxxxxx, ..., 18, xxxxxxxxxxxxx" - "xxxx)", - mkIt(20, (x) => (x < 3 || x == 19) ? "xxxxxxxxxxxxxxxxx" : "$x")); - - // Never drop the first three or the last two. - Expect.equals( - //0123456789012345678901234567890123456789 - "(xxxxxxxxxxxxxxxxx, xxxxxxxxxxxxxxxxx, x" - "xxxxxxxxxxxxxxxx, ..., xxxxxxxxxxxxxxxxx" - ", 19)", - mkIt(20, (x) => (x < 3 || x == 18) ? "xxxxxxxxxxxxxxxxx" : "$x")); - - // If the first three are very long, always include them anyway. - Expect.equals( - //0123456789012345678901234567890123456789 - "(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx," - " xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx," - " xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx," - " ..., 98, 99)", - mkIt(100, - (x) => (x < 3) ? "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" : "$x")); - - Expect.equals( - //0123456789012345678901234567890123456789 - "(, , , , , , , , , , , , , , , , , , , ," - " , , , , , , , , , , , , , , , ..., , )", - mkIt(100, (_) => "")); -}