mirror of
https://github.com/miniflux/v2.git
synced 2024-09-09 04:39:38 +02:00
54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
// 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)
|
|
}
|
|
}
|