diff options
Diffstat (limited to 'src/pkg/strings/strings_test.go')
-rw-r--r-- | src/pkg/strings/strings_test.go | 63 |
1 files changed, 34 insertions, 29 deletions
diff --git a/src/pkg/strings/strings_test.go b/src/pkg/strings/strings_test.go index 5ac6970c6..06f1f1de1 100644 --- a/src/pkg/strings/strings_test.go +++ b/src/pkg/strings/strings_test.go @@ -136,14 +136,15 @@ type SplitTest struct { } var splittests = []SplitTest{ - SplitTest{abcd, "a", 0, []string{"", "bcd"}}, - SplitTest{abcd, "z", 0, []string{"abcd"}}, - SplitTest{abcd, "", 0, []string{"a", "b", "c", "d"}}, - SplitTest{commas, ",", 0, []string{"1", "2", "3", "4"}}, - SplitTest{dots, "...", 0, []string{"1", ".2", ".3", ".4"}}, - SplitTest{faces, "☹", 0, []string{"☺☻", ""}}, - SplitTest{faces, "~", 0, []string{faces}}, - SplitTest{faces, "", 0, []string{"☺", "☻", "☹"}}, + SplitTest{abcd, "a", 0, nil}, + SplitTest{abcd, "a", -1, []string{"", "bcd"}}, + SplitTest{abcd, "z", -1, []string{"abcd"}}, + SplitTest{abcd, "", -1, []string{"a", "b", "c", "d"}}, + SplitTest{commas, ",", -1, []string{"1", "2", "3", "4"}}, + SplitTest{dots, "...", -1, []string{"1", ".2", ".3", ".4"}}, + SplitTest{faces, "☹", -1, []string{"☺☻", ""}}, + SplitTest{faces, "~", -1, []string{faces}}, + SplitTest{faces, "", -1, []string{"☺", "☻", "☹"}}, SplitTest{"1 2 3 4", " ", 3, []string{"1", "2", "3 4"}}, SplitTest{"1 2", " ", 3, []string{"1", "2"}}, SplitTest{"123", "", 2, []string{"1", "23"}}, @@ -157,6 +158,9 @@ func TestSplit(t *testing.T) { t.Errorf("Split(%q, %q, %d) = %v; want %v", tt.s, tt.sep, tt.n, a, tt.a) continue } + if tt.n == 0 { + continue + } s := Join(a, tt.sep) if s != tt.s { t.Errorf("Join(Split(%q, %q, %d), %q) = %q", tt.s, tt.sep, tt.n, tt.sep, s) @@ -165,14 +169,14 @@ func TestSplit(t *testing.T) { } var splitaftertests = []SplitTest{ - SplitTest{abcd, "a", 0, []string{"a", "bcd"}}, - SplitTest{abcd, "z", 0, []string{"abcd"}}, - SplitTest{abcd, "", 0, []string{"a", "b", "c", "d"}}, - SplitTest{commas, ",", 0, []string{"1,", "2,", "3,", "4"}}, - SplitTest{dots, "...", 0, []string{"1...", ".2...", ".3...", ".4"}}, - SplitTest{faces, "☹", 0, []string{"☺☻☹", ""}}, - SplitTest{faces, "~", 0, []string{faces}}, - SplitTest{faces, "", 0, []string{"☺", "☻", "☹"}}, + SplitTest{abcd, "a", -1, []string{"a", "bcd"}}, + SplitTest{abcd, "z", -1, []string{"abcd"}}, + SplitTest{abcd, "", -1, []string{"a", "b", "c", "d"}}, + SplitTest{commas, ",", -1, []string{"1,", "2,", "3,", "4"}}, + SplitTest{dots, "...", -1, []string{"1...", ".2...", ".3...", ".4"}}, + SplitTest{faces, "☹", -1, []string{"☺☻☹", ""}}, + SplitTest{faces, "~", -1, []string{faces}}, + SplitTest{faces, "", -1, []string{"☺", "☻", "☹"}}, SplitTest{"1 2 3 4", " ", 3, []string{"1 ", "2 ", "3 4"}}, SplitTest{"1 2 3", " ", 3, []string{"1 ", "2 ", "3"}}, SplitTest{"1 2", " ", 3, []string{"1 ", "2"}}, @@ -554,8 +558,8 @@ func equal(m string, s1, s2 string, t *testing.T) bool { if s1 == s2 { return true } - e1 := Split(s1, "", 0) - e2 := Split(s2, "", 0) + e1 := Split(s1, "", -1) + e2 := Split(s2, "", -1) for i, c1 := range e1 { if i > len(e2) { break @@ -709,24 +713,25 @@ type ReplaceTest struct { } var ReplaceTests = []ReplaceTest{ - ReplaceTest{"hello", "l", "L", 0, "heLLo"}, - ReplaceTest{"hello", "x", "X", 0, "hello"}, - ReplaceTest{"", "x", "X", 0, ""}, - ReplaceTest{"radar", "r", "<r>", 0, "<r>ada<r>"}, - ReplaceTest{"", "", "<>", 0, "<>"}, - ReplaceTest{"banana", "a", "<>", 0, "b<>n<>n<>"}, + ReplaceTest{"hello", "l", "L", 0, "hello"}, + ReplaceTest{"hello", "l", "L", -1, "heLLo"}, + ReplaceTest{"hello", "x", "X", -1, "hello"}, + ReplaceTest{"", "x", "X", -1, ""}, + ReplaceTest{"radar", "r", "<r>", -1, "<r>ada<r>"}, + ReplaceTest{"", "", "<>", -1, "<>"}, + ReplaceTest{"banana", "a", "<>", -1, "b<>n<>n<>"}, ReplaceTest{"banana", "a", "<>", 1, "b<>nana"}, ReplaceTest{"banana", "a", "<>", 1000, "b<>n<>n<>"}, - ReplaceTest{"banana", "an", "<>", 0, "b<><>a"}, - ReplaceTest{"banana", "ana", "<>", 0, "b<>na"}, - ReplaceTest{"banana", "", "<>", 0, "<>b<>a<>n<>a<>n<>a<>"}, + ReplaceTest{"banana", "an", "<>", -1, "b<><>a"}, + ReplaceTest{"banana", "ana", "<>", -1, "b<>na"}, + ReplaceTest{"banana", "", "<>", -1, "<>b<>a<>n<>a<>n<>a<>"}, ReplaceTest{"banana", "", "<>", 10, "<>b<>a<>n<>a<>n<>a<>"}, ReplaceTest{"banana", "", "<>", 6, "<>b<>a<>n<>a<>n<>a"}, ReplaceTest{"banana", "", "<>", 5, "<>b<>a<>n<>a<>na"}, ReplaceTest{"banana", "", "<>", 1, "<>banana"}, - ReplaceTest{"banana", "a", "a", 0, "banana"}, + ReplaceTest{"banana", "a", "a", -1, "banana"}, ReplaceTest{"banana", "a", "a", 1, "banana"}, - ReplaceTest{"☺☻☹", "", "<>", 0, "<>☺<>☻<>☹<>"}, + ReplaceTest{"☺☻☹", "", "<>", -1, "<>☺<>☻<>☹<>"}, } func TestReplace(t *testing.T) { |