summaryrefslogtreecommitdiff
path: root/src/pkg/bytes/bytes_test.go
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2010-07-01 14:08:14 -0700
committerRob Pike <r@golang.org>2010-07-01 14:08:14 -0700
commitb3fb215bd4973f0a8b52d49bcb90f31ca64ae781 (patch)
tree5b188afe344ef0e4cb39832efc2d76613bc2e5e2 /src/pkg/bytes/bytes_test.go
parent32de5c228f33e6bcfef081d51da8263747a6c448 (diff)
downloadgolang-b3fb215bd4973f0a8b52d49bcb90f31ca64ae781.tar.gz
strings and bytes.Split: make count of 0 mean 0, not infinite.
Use a count of -1 for infinity. Ditto for Replace. R=rsc CC=golang-dev http://codereview.appspot.com/1704044 Committer: Rob Pike <r@golang.org>
Diffstat (limited to 'src/pkg/bytes/bytes_test.go')
-rw-r--r--src/pkg/bytes/bytes_test.go64
1 files changed, 34 insertions, 30 deletions
diff --git a/src/pkg/bytes/bytes_test.go b/src/pkg/bytes/bytes_test.go
index 26ff2d16f..8197543dc 100644
--- a/src/pkg/bytes/bytes_test.go
+++ b/src/pkg/bytes/bytes_test.go
@@ -211,8 +211,8 @@ type ExplodeTest struct {
}
var explodetests = []ExplodeTest{
- ExplodeTest{abcd, 0, []string{"a", "b", "c", "d"}},
- ExplodeTest{faces, 0, []string{"☺", "☻", "☹"}},
+ ExplodeTest{abcd, -1, []string{"a", "b", "c", "d"}},
+ ExplodeTest{faces, -1, []string{"☺", "☻", "☹"}},
ExplodeTest{abcd, 2, []string{"a", "bcd"}},
}
@@ -240,16 +240,16 @@ 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", " ", 3, []string{"1", "2", "3"}},
SplitTest{"1 2", " ", 3, []string{"1", "2"}},
SplitTest{"123", "", 2, []string{"1", "23"}},
SplitTest{"123", "", 17, []string{"1", "2", "3"}},
@@ -263,6 +263,9 @@ func TestSplit(t *testing.T) {
t.Errorf(`Split(%q, %q, %d) = %v; want %v`, tt.s, tt.sep, tt.n, result, tt.a)
continue
}
+ if tt.n == 0 {
+ continue
+ }
s := Join(a, []byte(tt.sep))
if string(s) != tt.s {
t.Errorf(`Join(Split(%q, %q, %d), %q) = %q`, tt.s, tt.sep, tt.n, tt.sep, s)
@@ -271,14 +274,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"}},
@@ -654,24 +657,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) {