OSDN Git Service

Hulk did something
[bytom/vapor.git] / vendor / golang.org / x / text / internal / stringset / set_test.go
diff --git a/vendor/golang.org/x/text/internal/stringset/set_test.go b/vendor/golang.org/x/text/internal/stringset/set_test.go
new file mode 100644 (file)
index 0000000..97b9e58
--- /dev/null
@@ -0,0 +1,53 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package stringset
+
+import "testing"
+
+func TestStringSet(t *testing.T) {
+       testCases := [][]string{
+               {""},
+               {"∫"},
+               {"a", "b", "c"},
+               {"", "a", "bb", "ccc"},
+               {"    ", "aaa", "bb", "c"},
+       }
+       test := func(tc int, b *Builder) {
+               set := b.Set()
+               if set.Len() != len(testCases[tc]) {
+                       t.Errorf("%d:Len() = %d; want %d", tc, set.Len(), len(testCases[tc]))
+               }
+               for i, s := range testCases[tc] {
+                       if x := b.Index(s); x != i {
+                               t.Errorf("%d:Index(%q) = %d; want %d", tc, s, x, i)
+                       }
+                       if p := Search(&set, s); p != i {
+                               t.Errorf("%d:Search(%q) = %d; want %d", tc, s, p, i)
+                       }
+                       if set.Elem(i) != s {
+                               t.Errorf("%d:Elem(%d) = %s; want %s", tc, i, set.Elem(i), s)
+                       }
+               }
+               if p := Search(&set, "apple"); p != -1 {
+                       t.Errorf(`%d:Search("apple") = %d; want -1`, tc, p)
+               }
+       }
+       for i, tc := range testCases {
+               b := NewBuilder()
+               for _, s := range tc {
+                       b.Add(s)
+               }
+               b.Add(tc...)
+               test(i, b)
+       }
+       for i, tc := range testCases {
+               b := NewBuilder()
+               b.Add(tc...)
+               for _, s := range tc {
+                       b.Add(s)
+               }
+               test(i, b)
+       }
+}