diff options
author | Russ Cox <rsc@golang.org> | 2009-11-04 15:19:30 -0800 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2009-11-04 15:19:30 -0800 |
commit | 786174e05dd698bbddb75ff0205e5643d53f185f (patch) | |
tree | 94e28222dec9b662825b9c883b32bc2a152130f5 /src/pkg/strings/strings_test.go | |
parent | 33e0a3496b36d6a92c1e54bec50edeeef7c37d67 (diff) | |
download | golang-786174e05dd698bbddb75ff0205e5643d53f185f.tar.gz |
bytes.SplitAfter and strings.SplitAfter
most common usage is:
lines := strings.SplitAfter(text, "\n", 0)
R=r
http://go/go-review/1018042
Diffstat (limited to 'src/pkg/strings/strings_test.go')
-rw-r--r-- | src/pkg/strings/strings_test.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/pkg/strings/strings_test.go b/src/pkg/strings/strings_test.go index bdc7f9f08..0db3c9741 100644 --- a/src/pkg/strings/strings_test.go +++ b/src/pkg/strings/strings_test.go @@ -145,6 +145,36 @@ 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{"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"}}, +} + +func TestSplitAfter(t *testing.T) { + for _, tt := range splitaftertests { + a := SplitAfter(tt.s, tt.sep, tt.n); + if !eq(a, tt.a) { + t.Errorf(`Split(%q, %q, %d) = %v; want %v`, tt.s, tt.sep, tt.n, a, tt.a); + continue; + } + s := Join(a, ""); + if s != tt.s { + t.Errorf(`Join(Split(%q, %q, %d), %q) = %q`, tt.s, tt.sep, tt.n, tt.sep, s); + } + } +} + // Test case for any function which accepts and returns a single string. type StringTest struct { in, out string; |