79 lines
1.1 KiB
Go
79 lines
1.1 KiB
Go
package extypes
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
type A struct {
|
|
i int
|
|
b bool
|
|
s string
|
|
}
|
|
|
|
func TestSlice_Index(t *testing.T) {
|
|
s := make(Slice[int], 10)
|
|
for i := 0; i < 10; i++ {
|
|
s[i] = i + 1
|
|
}
|
|
|
|
if s.Index(0) != -1 {
|
|
t.Errorf("s.Index(0) != -1")
|
|
}
|
|
if s.Index(5) != 4 {
|
|
t.Errorf("s.Index(5) != 4")
|
|
}
|
|
|
|
s2 := make(Slice[A], 5)
|
|
for i := 0; i < 5; i++ {
|
|
s2[i] = A{i + 1, false, fmt.Sprint(i)}
|
|
}
|
|
if s2.Index(A{2, false, "1"}) != 1 {
|
|
t.Errorf("s2 wrong index")
|
|
}
|
|
}
|
|
func TestSlice_Equal(t *testing.T) {
|
|
a1 := make(Slice[int], 10)
|
|
a2 := make(Slice[int], 10)
|
|
a3 := make(Slice[int], 5)
|
|
|
|
for i := 0; i < 10; i++ {
|
|
a1[i] = i
|
|
a2[i] = i + 1
|
|
}
|
|
for i := 0; i < 5; i++ {
|
|
a3[i] = i
|
|
}
|
|
|
|
if a1.Equal(a2) {
|
|
t.Errorf("a1 == a2")
|
|
}
|
|
if a1.Equal(a3) {
|
|
t.Errorf("a1 == a3")
|
|
}
|
|
if a2.Equal(a3) {
|
|
t.Errorf("a2 == a3")
|
|
}
|
|
}
|
|
|
|
func TestSlice_Pop(t *testing.T) {
|
|
a1 := make(Slice[int], 10)
|
|
a2 := make(Slice[int], 9)
|
|
|
|
for i := 0; i < 10; i++ {
|
|
a1[i] = i
|
|
}
|
|
for i := 0; i < 9; i++ {
|
|
a2[i] = i
|
|
}
|
|
|
|
a1 = a1.Pop(a1.Len() - 1)
|
|
|
|
if a1.Len() != 9 {
|
|
t.Errorf("a1.Len() != 9")
|
|
}
|
|
if !a1.Equal(a2) {
|
|
t.Errorf("a1 != a2")
|
|
}
|
|
}
|