| Index: tests/corelib/string_test.dart
|
| diff --git a/tests/corelib/string_test.dart b/tests/corelib/string_test.dart
|
| index 2d34c063f103a7f572c2dfa489bb5b6f4325afcf..107ba68d8e6ab2c834792d658e9e98134ac4e548 100644
|
| --- a/tests/corelib/string_test.dart
|
| +++ b/tests/corelib/string_test.dart
|
| @@ -4,387 +4,387 @@
|
|
|
| import "package:expect/expect.dart";
|
|
|
| -class StringTest {
|
| -
|
| - static testMain() {
|
| - testOutOfRange();
|
| - testIllegalArgument();
|
| - testConcat();
|
| - testIndex();
|
| - testCodeUnitAt();
|
| - testEquals();
|
| - testEndsWith();
|
| - testStartsWith();
|
| - testIndexOf();
|
| - testLastIndexOf();
|
| - testContains();
|
| - testReplaceAll();
|
| - testCompareTo();
|
| - testCharCodes();
|
| - }
|
| +void main() {
|
| + testOutOfRange();
|
| + testIllegalArgument();
|
| + testConcat();
|
| + testIndex();
|
| + testCodeUnitAt();
|
| + testEquals();
|
| + testEndsWith();
|
| + testStartsWith();
|
| + testIndexOf();
|
| + testLastIndexOf();
|
| + testContains();
|
| + testReplaceAll();
|
| + testCompareTo();
|
| + testCharCodes();
|
| + testRepeat();
|
| + testPadLeft();
|
| + testPadRight();
|
| +}
|
|
|
| - static void testLength() {
|
| - String str = "";
|
| - for (var i = 0; i < 20; i++) {
|
| - testStringLength(i, str);
|
| - str += " ";
|
| - }
|
| +void testLength() {
|
| + String str = "";
|
| + for (var i = 0; i < 20; i++) {
|
| + testStringLength(i, str);
|
| + str += " ";
|
| }
|
| +}
|
|
|
| - static void testOutOfRange() {
|
| - String a = "Hello";
|
| - bool exception_caught = false;
|
| - try {
|
| - var c = a[20]; // Throw exception.
|
| - } on RangeError catch (e) {
|
| - exception_caught = true;
|
| - }
|
| - Expect.isTrue(exception_caught);
|
| +void testOutOfRange() {
|
| + String a = "Hello";
|
| + bool exception_caught = false;
|
| + try {
|
| + var c = a[20]; // Throw exception.
|
| + } on RangeError catch (e) {
|
| + exception_caught = true;
|
| }
|
| + Expect.isTrue(exception_caught);
|
| +}
|
|
|
| - static testIllegalArgument() {
|
| - String a = "Hello";
|
| - bool exception_caught = false;
|
| - try {
|
| - var c = a[2.2]; // Throw exception.
|
| - Expect.fail("Accepting double as index");
|
| - } on ArgumentError catch (e) {
|
| - exception_caught = true;
|
| - } on TypeError catch (e) { // Thrown in checked mode only.
|
| - exception_caught = true;
|
| - }
|
| - Expect.isTrue(exception_caught);
|
| +void testIllegalArgument() {
|
| + String a = "Hello";
|
| + bool exception_caught = false;
|
| + try {
|
| + var c = a[2.2]; // Throw exception.
|
| + Expect.fail("Accepting double as index");
|
| + } on ArgumentError catch (e) {
|
| + exception_caught = true;
|
| + } on TypeError catch (e) { // Thrown in checked mode only.
|
| + exception_caught = true;
|
| }
|
| + Expect.isTrue(exception_caught);
|
| +}
|
|
|
| - static testIndex() {
|
| - String str = "string";
|
| - for (int i = 0; i < str.length; i++) {
|
| - Expect.isTrue(str[i] is String);
|
| - testStringLength(1, str[i]);
|
| - }
|
| +void testIndex() {
|
| + String str = "string";
|
| + for (int i = 0; i < str.length; i++) {
|
| + Expect.isTrue(str[i] is String);
|
| + testStringLength(1, str[i]);
|
| }
|
| +}
|
|
|
| - static testCodeUnitAt() {
|
| - String str = "string";
|
| - for (int i = 0; i < str.length; i++) {
|
| - Expect.isTrue(str.codeUnitAt(i) is int);
|
| - }
|
| +void testCodeUnitAt() {
|
| + String str = "string";
|
| + for (int i = 0; i < str.length; i++) {
|
| + Expect.isTrue(str.codeUnitAt(i) is int);
|
| }
|
| +}
|
|
|
| - static testConcat() {
|
| - var a = "One";
|
| - var b = "Four";
|
| - var c = a + b;
|
| - testStringLength(7, c);
|
| - Expect.equals("OneFour", c);
|
| - }
|
| +void testConcat() {
|
| + var a = "One";
|
| + var b = "Four";
|
| + var c = a + b;
|
| + testStringLength(7, c);
|
| + Expect.equals("OneFour", c);
|
| +}
|
|
|
| - static testEquals() {
|
| - Expect.equals("str", "str");
|
| +void testEquals() {
|
| + Expect.equals("str", "str");
|
|
|
| - Expect.equals("str", "s" + "t" + "r");
|
| - Expect.equals("s" + "t" + "r", "str");
|
| + Expect.equals("str", "s" + "t" + "r");
|
| + Expect.equals("s" + "t" + "r", "str");
|
|
|
| - Expect.isFalse("str" == "s");
|
| - Expect.isFalse("str" == "r");
|
| - Expect.isFalse("str" == "st");
|
| - Expect.isFalse("str" == "tr");
|
| + Expect.isFalse("str" == "s");
|
| + Expect.isFalse("str" == "r");
|
| + Expect.isFalse("str" == "st");
|
| + Expect.isFalse("str" == "tr");
|
|
|
| - Expect.isFalse("s" == "str");
|
| - Expect.isFalse("r" == "str");
|
| - Expect.isFalse("st" == "str");
|
| - Expect.isFalse("tr" == "str");
|
| + Expect.isFalse("s" == "str");
|
| + Expect.isFalse("r" == "str");
|
| + Expect.isFalse("st" == "str");
|
| + Expect.isFalse("tr" == "str");
|
|
|
| - Expect.isFalse("" == "s");
|
| - Expect.equals("", "");
|
| - }
|
| + Expect.isFalse("" == "s");
|
| + Expect.equals("", "");
|
| +}
|
|
|
| - static testEndsWith() {
|
| - Expect.isTrue("str".endsWith("r"));
|
| - Expect.isTrue("str".endsWith("tr"));
|
| - Expect.isTrue("str".endsWith("str"));
|
| +void testEndsWith() {
|
| + Expect.isTrue("str".endsWith("r"));
|
| + Expect.isTrue("str".endsWith("tr"));
|
| + Expect.isTrue("str".endsWith("str"));
|
|
|
| - Expect.isFalse("str".endsWith("stri"));
|
| - Expect.isFalse("str".endsWith("t"));
|
| - Expect.isFalse("str".endsWith("st"));
|
| - Expect.isFalse("str".endsWith("s"));
|
| + Expect.isFalse("str".endsWith("stri"));
|
| + Expect.isFalse("str".endsWith("t"));
|
| + Expect.isFalse("str".endsWith("st"));
|
| + Expect.isFalse("str".endsWith("s"));
|
|
|
| - Expect.isTrue("".endsWith(""));
|
| - Expect.isFalse("".endsWith("s"));
|
| - }
|
| + Expect.isTrue("".endsWith(""));
|
| + Expect.isFalse("".endsWith("s"));
|
| +}
|
|
|
| - static testStartsWith() {
|
| - Expect.isTrue("str".startsWith("s"));
|
| - Expect.isTrue("str".startsWith("st"));
|
| - Expect.isTrue("str".startsWith("str"));
|
| -
|
| - Expect.isFalse("str".startsWith("stri"));
|
| - Expect.isFalse("str".startsWith("r"));
|
| - Expect.isFalse("str".startsWith("tr"));
|
| - Expect.isFalse("str".startsWith("t"));
|
| -
|
| - Expect.isTrue("".startsWith(""));
|
| - Expect.isFalse("".startsWith("s"));
|
| -
|
| - Expect.isFalse("strstr".startsWith("s", 1));
|
| - Expect.isFalse("strstr".startsWith("s", 2));
|
| - Expect.isTrue("strstr".startsWith("s", 3));
|
| - Expect.isFalse("strstr".startsWith("s", 4));
|
| -
|
| - Expect.isFalse("strstr".startsWith("st", 1));
|
| - Expect.isFalse("strstr".startsWith("st", 2));
|
| - Expect.isTrue("strstr".startsWith("st", 3));
|
| - Expect.isFalse("strstr".startsWith("st", 4));
|
| -
|
| - Expect.isFalse("strstr".startsWith("str", 1));
|
| - Expect.isFalse("strstr".startsWith("str", 2));
|
| - Expect.isTrue("strstr".startsWith("str", 3));
|
| - Expect.isFalse("strstr".startsWith("str", 4));
|
| -
|
| - Expect.isTrue("str".startsWith("", 0));
|
| - Expect.isTrue("str".startsWith("", 1));
|
| - Expect.isTrue("str".startsWith("", 2));
|
| - Expect.isTrue("str".startsWith("", 3));
|
| -
|
| - Expect.throws(() => "str".startsWith("", -1));
|
| - Expect.throws(() => "str".startsWith("", 4));
|
| -
|
| - var regexp = new RegExp("s(?:tr?)?");
|
| - Expect.isTrue("s".startsWith(regexp));
|
| - Expect.isTrue("st".startsWith(regexp));
|
| - Expect.isTrue("str".startsWith(regexp));
|
| - Expect.isTrue("sX".startsWith(regexp));
|
| - Expect.isTrue("stX".startsWith(regexp));
|
| - Expect.isTrue("strX".startsWith(regexp));
|
| -
|
| - Expect.isFalse("".startsWith(regexp));
|
| - Expect.isFalse("astr".startsWith(regexp));
|
| -
|
| - Expect.isTrue("".startsWith(new RegExp("")));
|
| - Expect.isTrue("".startsWith(new RegExp("a?")));
|
| -
|
| - Expect.isFalse("strstr".startsWith(regexp, 1));
|
| - Expect.isFalse("strstr".startsWith(regexp, 2));
|
| - Expect.isTrue("strstr".startsWith(regexp, 3));
|
| - Expect.isFalse("strstr".startsWith(regexp, 4));
|
| -
|
| - Expect.isTrue("str".startsWith(new RegExp(""), 0));
|
| - Expect.isTrue("str".startsWith(new RegExp(""), 1));
|
| - Expect.isTrue("str".startsWith(new RegExp(""), 2));
|
| - Expect.isTrue("str".startsWith(new RegExp(""), 3));
|
| - Expect.isTrue("str".startsWith(new RegExp("a?"), 0));
|
| - Expect.isTrue("str".startsWith(new RegExp("a?"), 1));
|
| - Expect.isTrue("str".startsWith(new RegExp("a?"), 2));
|
| - Expect.isTrue("str".startsWith(new RegExp("a?"), 3));
|
| -
|
| - Expect.throws(() => "str".startsWith(regexp, -1));
|
| - Expect.throws(() => "str".startsWith(regexp, 4));
|
| -
|
| - regexp = new RegExp("^str");
|
| - Expect.isTrue("strstr".startsWith(regexp));
|
| - Expect.isTrue("strstr".startsWith(regexp, 0));
|
| - Expect.isFalse("strstr".startsWith(regexp, 1));
|
| - Expect.isFalse("strstr".startsWith(regexp, 2));
|
| - Expect.isFalse("strstr".startsWith(regexp, 3)); // Second "str" isn't at ^.
|
| - }
|
| +void testStartsWith() {
|
| + Expect.isTrue("str".startsWith("s"));
|
| + Expect.isTrue("str".startsWith("st"));
|
| + Expect.isTrue("str".startsWith("str"));
|
| +
|
| + Expect.isFalse("str".startsWith("stri"));
|
| + Expect.isFalse("str".startsWith("r"));
|
| + Expect.isFalse("str".startsWith("tr"));
|
| + Expect.isFalse("str".startsWith("t"));
|
| +
|
| + Expect.isTrue("".startsWith(""));
|
| + Expect.isFalse("".startsWith("s"));
|
| +
|
| + Expect.isFalse("strstr".startsWith("s", 1));
|
| + Expect.isFalse("strstr".startsWith("s", 2));
|
| + Expect.isTrue("strstr".startsWith("s", 3));
|
| + Expect.isFalse("strstr".startsWith("s", 4));
|
| +
|
| + Expect.isFalse("strstr".startsWith("st", 1));
|
| + Expect.isFalse("strstr".startsWith("st", 2));
|
| + Expect.isTrue("strstr".startsWith("st", 3));
|
| + Expect.isFalse("strstr".startsWith("st", 4));
|
| +
|
| + Expect.isFalse("strstr".startsWith("str", 1));
|
| + Expect.isFalse("strstr".startsWith("str", 2));
|
| + Expect.isTrue("strstr".startsWith("str", 3));
|
| + Expect.isFalse("strstr".startsWith("str", 4));
|
| +
|
| + Expect.isTrue("str".startsWith("", 0));
|
| + Expect.isTrue("str".startsWith("", 1));
|
| + Expect.isTrue("str".startsWith("", 2));
|
| + Expect.isTrue("str".startsWith("", 3));
|
| +
|
| + Expect.throws(() => "str".startsWith("", -1));
|
| + Expect.throws(() => "str".startsWith("", 4));
|
| +
|
| + var regexp = new RegExp("s(?:tr?)?");
|
| + Expect.isTrue("s".startsWith(regexp));
|
| + Expect.isTrue("st".startsWith(regexp));
|
| + Expect.isTrue("str".startsWith(regexp));
|
| + Expect.isTrue("sX".startsWith(regexp));
|
| + Expect.isTrue("stX".startsWith(regexp));
|
| + Expect.isTrue("strX".startsWith(regexp));
|
| +
|
| + Expect.isFalse("".startsWith(regexp));
|
| + Expect.isFalse("astr".startsWith(regexp));
|
| +
|
| + Expect.isTrue("".startsWith(new RegExp("")));
|
| + Expect.isTrue("".startsWith(new RegExp("a?")));
|
| +
|
| + Expect.isFalse("strstr".startsWith(regexp, 1));
|
| + Expect.isFalse("strstr".startsWith(regexp, 2));
|
| + Expect.isTrue("strstr".startsWith(regexp, 3));
|
| + Expect.isFalse("strstr".startsWith(regexp, 4));
|
| +
|
| + Expect.isTrue("str".startsWith(new RegExp(""), 0));
|
| + Expect.isTrue("str".startsWith(new RegExp(""), 1));
|
| + Expect.isTrue("str".startsWith(new RegExp(""), 2));
|
| + Expect.isTrue("str".startsWith(new RegExp(""), 3));
|
| + Expect.isTrue("str".startsWith(new RegExp("a?"), 0));
|
| + Expect.isTrue("str".startsWith(new RegExp("a?"), 1));
|
| + Expect.isTrue("str".startsWith(new RegExp("a?"), 2));
|
| + Expect.isTrue("str".startsWith(new RegExp("a?"), 3));
|
| +
|
| + Expect.throws(() => "str".startsWith(regexp, -1));
|
| + Expect.throws(() => "str".startsWith(regexp, 4));
|
| +
|
| + regexp = new RegExp("^str");
|
| + Expect.isTrue("strstr".startsWith(regexp));
|
| + Expect.isTrue("strstr".startsWith(regexp, 0));
|
| + Expect.isFalse("strstr".startsWith(regexp, 1));
|
| + Expect.isFalse("strstr".startsWith(regexp, 2));
|
| + Expect.isFalse("strstr".startsWith(regexp, 3)); // Second "str" isn't at ^.
|
| +}
|
|
|
| - static testIndexOf() {
|
| - Expect.equals(0, "str".indexOf("", 0));
|
| - Expect.equals(0, "".indexOf("", 0));
|
| - Expect.equals(-1, "".indexOf("a", 0));
|
| -
|
| - Expect.equals(1, "str".indexOf("t", 0));
|
| - Expect.equals(1, "str".indexOf("tr", 0));
|
| - Expect.equals(0, "str".indexOf("str", 0));
|
| - Expect.equals(0, "str".indexOf("st", 0));
|
| - Expect.equals(0, "str".indexOf("s", 0));
|
| - Expect.equals(2, "str".indexOf("r", 0));
|
| - Expect.equals(-1, "str".indexOf("string", 0));
|
| -
|
| - Expect.equals(1, "strstr".indexOf("t", 0));
|
| - Expect.equals(1, "strstr".indexOf("tr", 0));
|
| - Expect.equals(0, "strstr".indexOf("str", 0));
|
| - Expect.equals(0, "strstr".indexOf("st", 0));
|
| - Expect.equals(0, "strstr".indexOf("s", 0));
|
| - Expect.equals(2, "strstr".indexOf("r", 0));
|
| - Expect.equals(-1, "str".indexOf("string", 0));
|
| -
|
| - Expect.equals(4, "strstr".indexOf("t", 2));
|
| - Expect.equals(4, "strstr".indexOf("tr", 2));
|
| - Expect.equals(3, "strstr".indexOf("str", 1));
|
| - Expect.equals(3, "strstr".indexOf("str", 2));
|
| - Expect.equals(3, "strstr".indexOf("str", 3));
|
| - Expect.equals(3, "strstr".indexOf("st", 1));
|
| - Expect.equals(3, "strstr".indexOf("s", 3));
|
| - Expect.equals(5, "strstr".indexOf("r", 3));
|
| - Expect.equals(5, "strstr".indexOf("r", 4));
|
| - Expect.equals(5, "strstr".indexOf("r", 5));
|
| -
|
| - String str = "hello";
|
| - for (int i = 0; i < 10; i++) {
|
| - if (i > str.length) {
|
| - Expect.throws(() => str.indexOf("", i));
|
| - } else {
|
| - int result = str.indexOf("", i);
|
| - Expect.equals(i, result);
|
| - }
|
| +void testIndexOf() {
|
| + Expect.equals(0, "str".indexOf("", 0));
|
| + Expect.equals(0, "".indexOf("", 0));
|
| + Expect.equals(-1, "".indexOf("a", 0));
|
| +
|
| + Expect.equals(1, "str".indexOf("t", 0));
|
| + Expect.equals(1, "str".indexOf("tr", 0));
|
| + Expect.equals(0, "str".indexOf("str", 0));
|
| + Expect.equals(0, "str".indexOf("st", 0));
|
| + Expect.equals(0, "str".indexOf("s", 0));
|
| + Expect.equals(2, "str".indexOf("r", 0));
|
| + Expect.equals(-1, "str".indexOf("string", 0));
|
| +
|
| + Expect.equals(1, "strstr".indexOf("t", 0));
|
| + Expect.equals(1, "strstr".indexOf("tr", 0));
|
| + Expect.equals(0, "strstr".indexOf("str", 0));
|
| + Expect.equals(0, "strstr".indexOf("st", 0));
|
| + Expect.equals(0, "strstr".indexOf("s", 0));
|
| + Expect.equals(2, "strstr".indexOf("r", 0));
|
| + Expect.equals(-1, "str".indexOf("string", 0));
|
| +
|
| + Expect.equals(4, "strstr".indexOf("t", 2));
|
| + Expect.equals(4, "strstr".indexOf("tr", 2));
|
| + Expect.equals(3, "strstr".indexOf("str", 1));
|
| + Expect.equals(3, "strstr".indexOf("str", 2));
|
| + Expect.equals(3, "strstr".indexOf("str", 3));
|
| + Expect.equals(3, "strstr".indexOf("st", 1));
|
| + Expect.equals(3, "strstr".indexOf("s", 3));
|
| + Expect.equals(5, "strstr".indexOf("r", 3));
|
| + Expect.equals(5, "strstr".indexOf("r", 4));
|
| + Expect.equals(5, "strstr".indexOf("r", 5));
|
| +
|
| + String str = "hello";
|
| + for (int i = 0; i < 10; i++) {
|
| + if (i > str.length) {
|
| + Expect.throws(() => str.indexOf("", i));
|
| + } else {
|
| + int result = str.indexOf("", i);
|
| + Expect.equals(i, result);
|
| }
|
| + }
|
|
|
| - var re = new RegExp("an?");
|
| - Expect.equals(1, "banana".indexOf(re));
|
| - Expect.equals(1, "banana".indexOf(re, 0));
|
| - Expect.equals(1, "banana".indexOf(re, 1));
|
| - Expect.equals(3, "banana".indexOf(re, 2));
|
| - Expect.equals(3, "banana".indexOf(re, 3));
|
| - Expect.equals(5, "banana".indexOf(re, 4));
|
| - Expect.equals(5, "banana".indexOf(re, 5));
|
| - Expect.equals(-1, "banana".indexOf(re, 6));
|
| - Expect.throws(() => "banana".indexOf(re, -1));
|
| - Expect.throws(() => "banana".indexOf(re, 7));
|
| - re = new RegExp("x?");
|
| - for (int i = 0; i <= str.length; i++) {
|
| - Expect.equals(i, str.indexOf(re, i));
|
| - }
|
| + var re = new RegExp("an?");
|
| + Expect.equals(1, "banana".indexOf(re));
|
| + Expect.equals(1, "banana".indexOf(re, 0));
|
| + Expect.equals(1, "banana".indexOf(re, 1));
|
| + Expect.equals(3, "banana".indexOf(re, 2));
|
| + Expect.equals(3, "banana".indexOf(re, 3));
|
| + Expect.equals(5, "banana".indexOf(re, 4));
|
| + Expect.equals(5, "banana".indexOf(re, 5));
|
| + Expect.equals(-1, "banana".indexOf(re, 6));
|
| + Expect.throws(() => "banana".indexOf(re, -1));
|
| + Expect.throws(() => "banana".indexOf(re, 7));
|
| + re = new RegExp("x?");
|
| + for (int i = 0; i <= str.length; i++) {
|
| + Expect.equals(i, str.indexOf(re, i));
|
| }
|
| +}
|
|
|
| - static testLastIndexOf() {
|
| - Expect.equals(2, "str".lastIndexOf("", 2));
|
| - Expect.equals(0, "".lastIndexOf("", 0));
|
| - Expect.equals(-1, "".lastIndexOf("a", 0));
|
| -
|
| - Expect.equals(1, "str".lastIndexOf("t", 2));
|
| - Expect.equals(1, "str".lastIndexOf("tr", 2));
|
| - Expect.equals(0, "str".lastIndexOf("str", 2));
|
| - Expect.equals(0, "str".lastIndexOf("st", 2));
|
| - Expect.equals(0, "str".lastIndexOf("s", 2));
|
| - Expect.equals(2, "str".lastIndexOf("r", 2));
|
| - Expect.equals(-1, "str".lastIndexOf("string", 2));
|
| -
|
| - Expect.equals(4, "strstr".lastIndexOf("t", 5));
|
| - Expect.equals(4, "strstr".lastIndexOf("tr", 5));
|
| - Expect.equals(3, "strstr".lastIndexOf("str", 5));
|
| - Expect.equals(3, "strstr".lastIndexOf("st", 5));
|
| - Expect.equals(3, "strstr".lastIndexOf("s", 5));
|
| - Expect.equals(5, "strstr".lastIndexOf("r", 5));
|
| - Expect.throws(() {
|
| - "str".lastIndexOf("string", 5);
|
| - });
|
| - Expect.equals(4, "strstr".lastIndexOf("t", 5));
|
| - Expect.equals(4, "strstr".lastIndexOf("tr", 5));
|
| - Expect.equals(3, "strstr".lastIndexOf("str", 5));
|
| - Expect.equals(3, "strstr".lastIndexOf("str", 5));
|
| - Expect.equals(3, "strstr".lastIndexOf("str", 5));
|
| - Expect.equals(3, "strstr".lastIndexOf("st", 5));
|
| - Expect.equals(3, "strstr".lastIndexOf("s", 5));
|
| - Expect.equals(5, "strstr".lastIndexOf("r", 5));
|
| - Expect.equals(2, "strstr".lastIndexOf("r", 4));
|
| - Expect.equals(2, "strstr".lastIndexOf("r", 3));
|
| - Expect.equals(5, "strstr".lastIndexOf("r"));
|
| - Expect.equals(5, "strstr".lastIndexOf("r", null));
|
| -
|
| - String str = "hello";
|
| - for (int i = 0; i < 10; i++) {
|
| - if (i > str.length) {
|
| - Expect.throws(() => str.indexOf("", i));
|
| - } else {
|
| - int result = str.lastIndexOf("", i);
|
| - Expect.equals(i, result);
|
| - }
|
| +void testLastIndexOf() {
|
| + Expect.equals(2, "str".lastIndexOf("", 2));
|
| + Expect.equals(0, "".lastIndexOf("", 0));
|
| + Expect.equals(-1, "".lastIndexOf("a", 0));
|
| +
|
| + Expect.equals(1, "str".lastIndexOf("t", 2));
|
| + Expect.equals(1, "str".lastIndexOf("tr", 2));
|
| + Expect.equals(0, "str".lastIndexOf("str", 2));
|
| + Expect.equals(0, "str".lastIndexOf("st", 2));
|
| + Expect.equals(0, "str".lastIndexOf("s", 2));
|
| + Expect.equals(2, "str".lastIndexOf("r", 2));
|
| + Expect.equals(-1, "str".lastIndexOf("string", 2));
|
| +
|
| + Expect.equals(4, "strstr".lastIndexOf("t", 5));
|
| + Expect.equals(4, "strstr".lastIndexOf("tr", 5));
|
| + Expect.equals(3, "strstr".lastIndexOf("str", 5));
|
| + Expect.equals(3, "strstr".lastIndexOf("st", 5));
|
| + Expect.equals(3, "strstr".lastIndexOf("s", 5));
|
| + Expect.equals(5, "strstr".lastIndexOf("r", 5));
|
| + Expect.throws(() {
|
| + "str".lastIndexOf("string", 5);
|
| + });
|
| + Expect.equals(4, "strstr".lastIndexOf("t", 5));
|
| + Expect.equals(4, "strstr".lastIndexOf("tr", 5));
|
| + Expect.equals(3, "strstr".lastIndexOf("str", 5));
|
| + Expect.equals(3, "strstr".lastIndexOf("str", 5));
|
| + Expect.equals(3, "strstr".lastIndexOf("str", 5));
|
| + Expect.equals(3, "strstr".lastIndexOf("st", 5));
|
| + Expect.equals(3, "strstr".lastIndexOf("s", 5));
|
| + Expect.equals(5, "strstr".lastIndexOf("r", 5));
|
| + Expect.equals(2, "strstr".lastIndexOf("r", 4));
|
| + Expect.equals(2, "strstr".lastIndexOf("r", 3));
|
| + Expect.equals(5, "strstr".lastIndexOf("r"));
|
| + Expect.equals(5, "strstr".lastIndexOf("r", null));
|
| +
|
| + String str = "hello";
|
| + for (int i = 0; i < 10; i++) {
|
| + if (i > str.length) {
|
| + Expect.throws(() => str.indexOf("", i));
|
| + } else {
|
| + int result = str.lastIndexOf("", i);
|
| + Expect.equals(i, result);
|
| }
|
| + }
|
|
|
| - var re = new RegExp("an?");
|
| - Expect.equals(5, "banana".lastIndexOf(re));
|
| - Expect.equals(5, "banana".lastIndexOf(re, 6));
|
| - Expect.equals(5, "banana".lastIndexOf(re, 5));
|
| - Expect.equals(3, "banana".lastIndexOf(re, 4));
|
| - Expect.equals(3, "banana".lastIndexOf(re, 3));
|
| - Expect.equals(1, "banana".lastIndexOf(re, 2));
|
| - Expect.equals(1, "banana".lastIndexOf(re, 1));
|
| - Expect.equals(-1, "banana".lastIndexOf(re, 0));
|
| - Expect.throws(() => "banana".lastIndexOf(re, -1));
|
| - Expect.throws(() => "banana".lastIndexOf(re, 7));
|
| - re = new RegExp("x?");
|
| - for (int i = 0; i <= str.length; i++) {
|
| - Expect.equals(i, str.indexOf(re, i));
|
| - }
|
| + var re = new RegExp("an?");
|
| + Expect.equals(5, "banana".lastIndexOf(re));
|
| + Expect.equals(5, "banana".lastIndexOf(re, 6));
|
| + Expect.equals(5, "banana".lastIndexOf(re, 5));
|
| + Expect.equals(3, "banana".lastIndexOf(re, 4));
|
| + Expect.equals(3, "banana".lastIndexOf(re, 3));
|
| + Expect.equals(1, "banana".lastIndexOf(re, 2));
|
| + Expect.equals(1, "banana".lastIndexOf(re, 1));
|
| + Expect.equals(-1, "banana".lastIndexOf(re, 0));
|
| + Expect.throws(() => "banana".lastIndexOf(re, -1));
|
| + Expect.throws(() => "banana".lastIndexOf(re, 7));
|
| + re = new RegExp("x?");
|
| + for (int i = 0; i <= str.length; i++) {
|
| + Expect.equals(i, str.indexOf(re, i));
|
| }
|
| +}
|
|
|
| - static testContains() {
|
| - Expect.isTrue("str".contains("s", 0));
|
| - Expect.isTrue("str".contains("st", 0));
|
| - Expect.isTrue("str".contains("str", 0));
|
| - Expect.isTrue("str".contains("t", 0));
|
| - Expect.isTrue("str".contains("r", 0));
|
| - Expect.isTrue("str".contains("tr", 0));
|
| +void testContains() {
|
| + Expect.isTrue("str".contains("s", 0));
|
| + Expect.isTrue("str".contains("st", 0));
|
| + Expect.isTrue("str".contains("str", 0));
|
| + Expect.isTrue("str".contains("t", 0));
|
| + Expect.isTrue("str".contains("r", 0));
|
| + Expect.isTrue("str".contains("tr", 0));
|
|
|
| - Expect.isFalse("str".contains("sr", 0));
|
| - Expect.isFalse("str".contains("string", 0));
|
| + Expect.isFalse("str".contains("sr", 0));
|
| + Expect.isFalse("str".contains("string", 0));
|
|
|
| - Expect.isTrue("str".contains("", 0));
|
| - Expect.isTrue("".contains("", 0));
|
| - Expect.isFalse("".contains("s", 0));
|
| - }
|
| + Expect.isTrue("str".contains("", 0));
|
| + Expect.isTrue("".contains("", 0));
|
| + Expect.isFalse("".contains("s", 0));
|
| +}
|
|
|
| - static testReplaceAll() {
|
| - Expect.equals(
|
| - "AtoBtoCDtoE", "AfromBfromCDfromE".replaceAll("from", "to"));
|
| +void testReplaceAll() {
|
| + Expect.equals(
|
| + "AtoBtoCDtoE", "AfromBfromCDfromE".replaceAll("from", "to"));
|
|
|
| - // Test with the replaced string at the begining.
|
| - Expect.equals(
|
| - "toABtoCDtoE", "fromABfromCDfromE".replaceAll("from", "to"));
|
| + // Test with the replaced string at the begining.
|
| + Expect.equals(
|
| + "toABtoCDtoE", "fromABfromCDfromE".replaceAll("from", "to"));
|
|
|
| - // Test with the replaced string at the end.
|
| - Expect.equals(
|
| - "toABtoCDtoEto", "fromABfromCDfromEfrom".replaceAll("from", "to"));
|
| + // Test with the replaced string at the end.
|
| + Expect.equals(
|
| + "toABtoCDtoEto", "fromABfromCDfromEfrom".replaceAll("from", "to"));
|
|
|
| - // Test when there are no occurence of the string to replace.
|
| - Expect.equals("ABC", "ABC".replaceAll("from", "to"));
|
| + // Test when there are no occurence of the string to replace.
|
| + Expect.equals("ABC", "ABC".replaceAll("from", "to"));
|
|
|
| - // Test when the string to change is the empty string.
|
| - Expect.equals("", "".replaceAll("from", "to"));
|
| + // Test when the string to change is the empty string.
|
| + Expect.equals("", "".replaceAll("from", "to"));
|
|
|
| - // Test when the string to change is a substring of the string to
|
| - // replace.
|
| - Expect.equals("fro", "fro".replaceAll("from", "to"));
|
| + // Test when the string to change is a substring of the string to
|
| + // replace.
|
| + Expect.equals("fro", "fro".replaceAll("from", "to"));
|
|
|
| - // Test when the string to change is the replaced string.
|
| - Expect.equals("to", "from".replaceAll("from", "to"));
|
| + // Test when the string to change is the replaced string.
|
| + Expect.equals("to", "from".replaceAll("from", "to"));
|
|
|
| - // Test when the string to change is the replacement string.
|
| - Expect.equals("to", "to".replaceAll("from", "to"));
|
| + // Test when the string to change is the replacement string.
|
| + Expect.equals("to", "to".replaceAll("from", "to"));
|
|
|
| - // Test replacing by the empty string.
|
| - Expect.equals("", "from".replaceAll("from", ""));
|
| - Expect.equals("AB", "AfromB".replaceAll("from", ""));
|
| + // Test replacing by the empty string.
|
| + Expect.equals("", "from".replaceAll("from", ""));
|
| + Expect.equals("AB", "AfromB".replaceAll("from", ""));
|
|
|
| - // Test changing the empty string.
|
| - Expect.equals("to", "".replaceAll("", "to"));
|
| + // Test changing the empty string.
|
| + Expect.equals("to", "".replaceAll("", "to"));
|
|
|
| - // Test replacing the empty string.
|
| - Expect.equals("toAtoBtoCto", "ABC".replaceAll("", "to"));
|
| - }
|
| + // Test replacing the empty string.
|
| + Expect.equals("toAtoBtoCto", "ABC".replaceAll("", "to"));
|
| +}
|
|
|
| - static testCompareTo() {
|
| - Expect.equals(0, "".compareTo(""));
|
| - Expect.equals(0, "str".compareTo("str"));
|
| - Expect.equals(-1, "str".compareTo("string"));
|
| - Expect.equals(1, "string".compareTo("str"));
|
| - Expect.equals(1, "string".compareTo(""));
|
| - Expect.equals(-1, "".compareTo("string"));
|
| - }
|
| +void testCompareTo() {
|
| + Expect.equals(0, "".compareTo(""));
|
| + Expect.equals(0, "str".compareTo("str"));
|
| + Expect.equals(-1, "str".compareTo("string"));
|
| + Expect.equals(1, "string".compareTo("str"));
|
| + Expect.equals(1, "string".compareTo(""));
|
| + Expect.equals(-1, "".compareTo("string"));
|
| +}
|
|
|
| - static testCharCodes() {
|
| - test(str) {
|
| - var list = str.codeUnits;
|
| - Expect.equals(str.length, list.length);
|
| - for (int i = 0; i < str.length; i++) {
|
| - Expect.equals(str.codeUnitAt(i), list[i]);
|
| - }
|
| +void testCharCodes() {
|
| + test(str) {
|
| + var list = str.codeUnits;
|
| + Expect.equals(str.length, list.length);
|
| + for (int i = 0; i < str.length; i++) {
|
| + Expect.equals(str.codeUnitAt(i), list[i]);
|
| }
|
| - test("abc");
|
| - test("");
|
| - test(" ");
|
| }
|
| + test("abc");
|
| + test("");
|
| + test(" ");
|
| }
|
|
|
| void testStringLength(int length, String str) {
|
| @@ -393,6 +393,87 @@ void testStringLength(int length, String str) {
|
| (length != 0 ? Expect.isTrue : Expect.isFalse)(str.isNotEmpty);
|
| }
|
|
|
| -main() {
|
| - StringTest.testMain();
|
| +void testRepeat() {
|
| + List<String> testStrings = [
|
| + "",
|
| + "\x00",
|
| + "a",
|
| + "ab",
|
| + "\x80",
|
| + "\xff",
|
| + "\u2028",
|
| + "abcdef\u2028",
|
| + "\u{10002}",
|
| + "abcdef\u{10002}"
|
| + ];
|
| + List<int> counts = [
|
| + 0,
|
| + 1,
|
| + 2,
|
| + 3,
|
| + 10,
|
| + 100
|
| + ];
|
| + void testRepeat(str, repeat, sep) {
|
| + String expect;
|
| + if (repeat == 0) {
|
| + expect = "";
|
| + } else if (repeat == 1) {
|
| + expect = str;
|
| + } else {
|
| + StringBuffer buf = new StringBuffer(str);
|
| + for (int i = 1; i < repeat; i++) {
|
| + buf.write(sep);
|
| + buf.write(str);
|
| + }
|
| + expect = buf.toString();
|
| + }
|
| + String actual = str.repeat(repeat, sep);
|
| + Expect.equals(expect, actual,
|
| + "$str#${str.length}*$repeat/$sep#${sep.length}");
|
| + }
|
| + for (String str in testStrings) {
|
| + for (String sep in testStrings) {
|
| + for (int repeat in counts) {
|
| + testRepeat(str, repeat, sep);
|
| + }
|
| + }
|
| + }
|
| + Expect.throws(() { "a".repeat(-1); });
|
| +}
|
| +
|
| +void testPadLeft() {
|
| + Expect.equals(" 1", "1".padLeft(5, ' '));
|
| + Expect.equals(" 11", "11".padLeft(5, ' '));
|
| + Expect.equals(" 111", "111".padLeft(5, ' '));
|
| + Expect.equals(" 1111", "1111".padLeft(5, ' '));
|
| + Expect.equals("11111", "11111".padLeft(5, ' '));
|
| + Expect.equals("111111", "111111".padLeft(5, ' '));
|
| + Expect.equals(" \u{10002}", "\u{10002}".padLeft(5, ' '));
|
| + Expect.equals('', ''.padLeft(0, 'a'));
|
| + Expect.equals('a', ''.padLeft(1, 'a'));
|
| + Expect.equals('aaaaa', ''.padLeft(5, 'a'));
|
| + Expect.equals('', ''.padLeft(-2, 'a'));
|
| +
|
| + Expect.throws(() { ' '.padLeft(5, ''); });
|
| + Expect.throws(() { ' '.padLeft(5, 'xx'); });
|
| + Expect.throws(() { ' '.padLeft(5, '\u{10002}'); });
|
| +}
|
| +
|
| +void testPadRight() {
|
| + Expect.equals("1 ", "1".padRight(5, ' '));
|
| + Expect.equals("11 ", "11".padRight(5, ' '));
|
| + Expect.equals("111 ", "111".padRight(5, ' '));
|
| + Expect.equals("1111 ", "1111".padRight(5, ' '));
|
| + Expect.equals("11111", "11111".padRight(5, ' '));
|
| + Expect.equals("111111", "111111".padRight(5, ' '));
|
| + Expect.equals("\u{10002} ", "\u{10002}".padRight(5, ' '));
|
| + Expect.equals('', ''.padRight(0, 'a'));
|
| + Expect.equals('a', ''.padRight(1, 'a'));
|
| + Expect.equals('aaaaa', ''.padRight(5, 'a'));
|
| + Expect.equals('', ''.padRight(-2, 'a'));
|
| +
|
| + Expect.throws(() { ' '.padRight(5, ''); });
|
| + Expect.throws(() { ' '.padRight(5, 'xx'); });
|
| + Expect.throws(() { ' '.padRight(5, '\u{10002}'); });
|
| }
|
|
|