vRp.CD2g_test/utils/stream/strings_test.go

92 lines
2.1 KiB
Go

package stream_test
import (
"github.com/kercylan98/minotaur/utils/stream"
"testing"
)
func TestNewStrings(t *testing.T) {
var cases = []struct {
name string
in []string
want []string
}{
{name: "empty", in: []string{}, want: []string{}},
{name: "one", in: []string{"a"}, want: []string{"a"}},
{name: "two", in: []string{"a", "b"}, want: []string{"a", "b"}},
}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
got := stream.NewStrings(c.in...)
if got.Len() != len(c.want) {
t.Errorf("got %v, want %v", got, c.want)
}
})
}
}
func TestStrings_Elem(t *testing.T) {
var cases = []struct {
name string
in []string
want []string
}{
{name: "empty", in: []string{}, want: []string{}},
{name: "one", in: []string{"a"}, want: []string{"a"}},
{name: "two", in: []string{"a", "b"}, want: []string{"a", "b"}},
}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
got := stream.NewStrings(c.in...).Elem()
if len(got) != len(c.want) {
t.Errorf("got %v, want %v", got, c.want)
}
})
}
}
func TestStrings_Len(t *testing.T) {
var cases = []struct {
name string
in []string
want int
}{
{name: "empty", in: []string{}, want: 0},
{name: "one", in: []string{"a"}, want: 1},
{name: "two", in: []string{"a", "b"}, want: 2},
}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
got := stream.NewStrings(c.in...)
if got.Len() != c.want {
t.Errorf("got %v, want %v", got, c.want)
}
})
}
}
func TestStrings_Append(t *testing.T) {
var cases = []struct {
name string
in []string
append []string
want []string
}{
{name: "empty", in: []string{}, append: []string{"a"}, want: []string{"a"}},
{name: "one", in: []string{"a"}, append: []string{"b"}, want: []string{"a", "b"}},
{name: "two", in: []string{"a", "b"}, append: []string{"c"}, want: []string{"a", "b", "c"}},
}
for _, c := range cases {
t.Run(c.name, func(t *testing.T) {
got := stream.NewStrings(c.in...).Append(c.append...)
if got.Len() != len(c.want) {
t.Errorf("got %v, want %v", got, c.want)
}
})
}
}