92 lines
2.1 KiB
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)
|
|
}
|
|
})
|
|
}
|
|
}
|