summaryrefslogtreecommitdiff
path: root/src/pkg/strings/strings_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/strings/strings_test.go')
-rw-r--r--src/pkg/strings/strings_test.go30
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;