1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-09 07:02:29 +08:00

merge: merge main branch and refector slice func with generics

This commit is contained in:
dudaodong
2022-01-24 11:10:12 +08:00
13 changed files with 198 additions and 11 deletions

View File

@@ -29,6 +29,7 @@ func TestChunk(t *testing.T) {
assert := internal.NewAssert(t, "TestChunk")
arr := []string{"a", "b", "c", "d", "e"}
r1 := [][]string{{"a"}, {"b"}, {"c"}, {"d"}, {"e"}}
assert.Equal(r1, Chunk(arr, 1))
@@ -45,6 +46,27 @@ func TestChunk(t *testing.T) {
assert.Equal(r5, Chunk(arr, 5))
}
func TestCompact(t *testing.T) {
assert := internal.NewAssert(t, "TesCompact")
assert.Equal([]int{}, Compact([]int{0}))
assert.Equal([]int{1, 2, 3}, Compact([]int{0, 1, 2, 3}))
assert.Equal([]string{}, Compact([]string{""}))
assert.Equal([]string{" "}, Compact([]string{" "}))
assert.Equal([]string{"a", "b", "0"}, Compact([]string{"", "a", "b", "0"}))
assert.Equal([]bool{true, true}, Compact([]bool{false, true, true}))
}
func TestConcat(t *testing.T) {
assert := internal.NewAssert(t, "Concat")
// assert.Equal([]int{0}, Concat([]int{}, 0))
// assert.Equal([]int{1, 2, 3, 4, 5}, Concat([]int{1, 2, 3}, 4, 5))
assert.Equal([]int{1, 2, 3, 4, 5}, Concat([]int{1, 2, 3}, []int{4, 5}))
assert.Equal([]int{1, 2, 3, 4, 5}, Concat([]int{1, 2, 3}, []int{4}, []int{5}))
// assert.Equal([]int{1, 2, 3, 4, 5}, Concat([]int{1, 2, 3}, []int{4}, 5))
}
func TestEvery(t *testing.T) {
nums := []int{1, 2, 3, 5}
isEven := func(i, num int) bool {
@@ -377,6 +399,17 @@ func TestDifference(t *testing.T) {
assert.Equal([]int{1, 2, 3}, Difference(s1, s2))
}
func TestDifferenceBy(t *testing.T) {
assert := internal.NewAssert(t, "TestDifferenceBy")
s1 := []int{1, 2, 3, 4, 5} //after add one: 2 3 4 5 6
s2 := []int{3, 4, 5} //after add one: 4 5 6
addOne := func(i int, v int) int {
return v + 1
}
assert.Equal([]int{1, 2}, DifferenceBy(s1, s2, addOne))
}
func TestSortByFielDesc(t *testing.T) {
assert := internal.NewAssert(t, "TestWithout")