Files
ezbookkeeping/pkg/utils/slices_test.go
T
2021-04-05 14:47:41 +08:00

133 lines
3.3 KiB
Go

package utils
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestInt64SliceEquals_Equals(t *testing.T) {
s1 := []int64{0, 1, 2, 3}
s2 := []int64{0, 1, 2, 3}
expectedValue := true
actualValue := Int64SliceEquals(s1, s2)
assert.Equal(t, expectedValue, actualValue)
}
func TestInt64SliceEquals_NotEquals(t *testing.T) {
s1 := []int64{0, 1, 2, 3}
s2 := []int64{0, 1, 3, 2}
expectedValue := false
actualValue := Int64SliceEquals(s1, s2)
assert.Equal(t, expectedValue, actualValue)
s1 = []int64{0, 1, 2, 3}
s2 = []int64{0}
expectedValue = false
actualValue = Int64SliceEquals(s1, s2)
assert.Equal(t, expectedValue, actualValue)
s1 = []int64{0, 1, 2, 3}
s2 = []int64{}
expectedValue = false
actualValue = Int64SliceEquals(s1, s2)
assert.Equal(t, expectedValue, actualValue)
}
func TestInt64SliceEquals_NilOrEmpty(t *testing.T) {
var s1 []int64 = nil
s2 := []int64{0, 1, 2, 3}
expectedValue := false
actualValue := Int64SliceEquals(s1, s2)
assert.Equal(t, expectedValue, actualValue)
s1 = []int64{0, 1, 2, 3}
s2 = nil
expectedValue = false
actualValue = Int64SliceEquals(s1, s2)
assert.Equal(t, expectedValue, actualValue)
s1 = nil
s2 = nil
expectedValue = true
actualValue = Int64SliceEquals(s1, s2)
assert.Equal(t, expectedValue, actualValue)
s1 = []int64{}
s2 = []int64{}
expectedValue = true
actualValue = Int64SliceEquals(s1, s2)
assert.Equal(t, expectedValue, actualValue)
}
func TestInt64SliceMinus(t *testing.T) {
s1 := []int64{0, 1, 2, 3}
s2 := []int64{0, 1, 2, 3}
expectedValue := []int64{}
actualValue := Int64SliceMinus(s1, s2)
assert.Equal(t, expectedValue, actualValue)
s1 = []int64{0, 1, 2, 3}
s2 = []int64{0, 2}
expectedValue = []int64{1, 3}
actualValue = Int64SliceMinus(s1, s2)
assert.Equal(t, expectedValue, actualValue)
s1 = []int64{0, 1, 2, 3}
s2 = []int64{}
expectedValue = []int64{0, 1, 2, 3}
actualValue = Int64SliceMinus(s1, s2)
assert.Equal(t, expectedValue, actualValue)
s1 = []int64{}
s2 = []int64{0, 1, 2, 3}
expectedValue = []int64{}
actualValue = Int64SliceMinus(s1, s2)
assert.Equal(t, expectedValue, actualValue)
s1 = []int64{0, 1, 2, 3}
s2 = []int64{1, 2, 3, 4}
expectedValue = []int64{0}
actualValue = Int64SliceMinus(s1, s2)
assert.Equal(t, expectedValue, actualValue)
}
func TestInt64SliceMinus_NilOrEmpty(t *testing.T) {
var s1 []int64 = nil
s2 := []int64{0, 1, 2, 3}
var expectedValue []int64 = nil
actualValue := Int64SliceMinus(s1, s2)
assert.Equal(t, expectedValue, actualValue)
s1 = []int64{0, 1, 2, 3}
s2 = nil
expectedValue = []int64{0, 1, 2, 3}
actualValue = Int64SliceMinus(s1, s2)
assert.Equal(t, expectedValue, actualValue)
s1 = nil
s2 = nil
expectedValue = nil
actualValue = Int64SliceMinus(s1, s2)
assert.Equal(t, expectedValue, actualValue)
}
func TestToUniqueInt64Slice(t *testing.T) {
arr := []int64{0, 1, 2, 3, 2, 4, 0}
expectedValue := []int64{0, 1, 2, 3, 4}
actualValue := ToUniqueInt64Slice(arr)
assert.Equal(t, expectedValue, actualValue)
}
func TestToUniqueInt64Slice_NilOrEmpty(t *testing.T) {
var arr []int64 = nil
expectedValue := []int64{}
actualValue := ToUniqueInt64Slice(arr)
assert.Equal(t, expectedValue, actualValue)
arr = []int64{}
expectedValue = []int64{}
actualValue = ToUniqueInt64Slice(arr)
assert.Equal(t, expectedValue, actualValue)
}