Index: tests/corelib/string_split_test.dart |
diff --git a/tests/corelib/string_split_test.dart b/tests/corelib/string_split_test.dart |
deleted file mode 100644 |
index de7b2492eba492f35821d37b4f5c79e1c9c9eae7..0000000000000000000000000000000000000000 |
--- a/tests/corelib/string_split_test.dart |
+++ /dev/null |
@@ -1,135 +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. |
- |
-import "package:expect/expect.dart"; |
- |
-main() { |
- testSplitString(); |
- testSplitRegExp(); |
- testSplitPattern(); |
-} |
- |
-testSplit(List expect, String string, Pattern pattern) { |
- String patternString; |
- if (pattern is String) { |
- patternString = '"$pattern"'; |
- } else if (pattern is RegExp) { |
- patternString = "/${pattern.pattern}/"; |
- } else { |
- patternString = pattern.toString(); |
- } |
- Expect.listEquals( |
- expect, string.split(pattern), '"$string".split($patternString)'); |
-} |
- |
-/** String patterns. */ |
-void testSplitString() { |
- // Normal match. |
- testSplit(["a", "b", "c"], "a b c", " "); |
- testSplit(["a", "b", "c"], "adbdc", "d"); |
- testSplit(["a", "b", "c"], "addbddc", "dd"); |
- // No match. |
- testSplit(["abc"], "abc", " "); |
- testSplit(["a"], "a", "b"); |
- testSplit([""], "", "b"); |
- // Empty match matches everywhere except start/end. |
- testSplit(["a", "b", "c"], "abc", ""); |
- // All empty parts. |
- testSplit(["", "", "", "", ""], "aaaa", "a"); |
- testSplit(["", "", "", "", ""], " ", " "); |
- testSplit(["", ""], "a", "a"); |
- // No overlapping matches. Match as early as possible. |
- testSplit(["", "", "", "a"], "aaaaaaa", "aa"); |
- // Cannot split the empty string. |
- testSplit([], "", ""); // Match. |
- testSplit([""], "", "a"); // No match. |
-} |
- |
-/** RegExp patterns. */ |
-void testSplitRegExp() { |
- testSplitWithRegExp((s) => new RegExp(s)); |
-} |
- |
-/** Non-String, non-RegExp patterns. */ |
-void testSplitPattern() { |
- testSplitWithRegExp((s) => new RegExpWrap(s)); |
-} |
- |
-void testSplitWithRegExp(makePattern) { |
- testSplit(["a", "b", "c"], "a b c", makePattern(r" ")); |
- |
- testSplit(["a", "b", "c"], "adbdc", makePattern(r"[dz]")); |
- |
- testSplit(["a", "b", "c"], "addbddc", makePattern(r"dd")); |
- |
- testSplit(["abc"], "abc", makePattern(r"b$")); |
- |
- testSplit(["a", "b", "c"], "abc", makePattern(r"")); |
- |
- testSplit(["", "", "", ""], " ", makePattern(r"[ ]")); |
- |
- // Non-zero-length match at end. |
- testSplit(["aa", ""], "aaa", makePattern(r"a$")); |
- |
- // Zero-length match at end. |
- testSplit(["aaa"], "aaa", makePattern(r"$")); |
- |
- // Non-zero-length match at start. |
- testSplit(["", "aa"], "aaa", makePattern(r"^a")); |
- |
- // Zero-length match at start. |
- testSplit(["aaa"], "aaa", makePattern(r"^")); |
- |
- // Picks first match, not longest or shortest. |
- testSplit(["", "", "", "a"], "aaaaaaa", makePattern(r"aa|aaa")); |
- |
- testSplit(["", "", "", "a"], "aaaaaaa", makePattern(r"aa|")); |
- |
- testSplit(["", "", "a"], "aaaaaaa", makePattern(r"aaa|aa")); |
- |
- // Zero-width match depending on the following. |
- testSplit(["a", "bc"], "abc", makePattern(r"(?=[ab])")); |
- |
- testSplit(["a", "b", "c"], "abc", makePattern(r"(?!^)")); |
- |
- // Cannot split empty string. |
- testSplit([], "", makePattern(r"")); |
- |
- testSplit([], "", makePattern(r"(?:)")); |
- |
- testSplit([], "", makePattern(r"$|(?=.)")); |
- |
- testSplit([""], "", makePattern(r"a")); |
- |
- // Can split singleton string if it matches. |
- testSplit(["", ""], "a", makePattern(r"a")); |
- |
- testSplit(["a"], "a", makePattern(r"b")); |
- |
- // Do not include captures. |
- testSplit(["a", "", "a"], "abba", makePattern(r"(b)")); |
- |
- testSplit(["a", "a"], "abba", makePattern(r"(bb)")); |
- |
- testSplit(["a", "a"], "abba", makePattern(r"(b*)")); |
- |
- testSplit(["a", "a"], "aa", makePattern(r"(b*)")); |
- |
- // But captures are still there, and do work with backreferences. |
- testSplit(["a", "cba"], "abcba", makePattern(r"([bc])(?=.*\1)")); |
-} |
- |
-// A Pattern implementation with the same capabilities as a RegExp, but not |
-// directly recognizable as a RegExp. |
-class RegExpWrap implements Pattern { |
- final regexp; |
- RegExpWrap(String source) : regexp = new RegExp(source); |
- Iterable<Match> allMatches(String string, [int start = 0]) => |
- regexp.allMatches(string, start); |
- |
- Match matchAsPrefix(String string, [int start = 0]) => |
- regexp.matchAsPrefix(string, start); |
- |
- String toString() => "Wrap(/${regexp.pattern}/)"; |
-} |