1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-08 06:32:28 +08:00

merge main

This commit is contained in:
dudaodong
2022-01-19 20:47:47 +08:00
6 changed files with 42 additions and 36 deletions

View File

@@ -10,7 +10,6 @@ import (
"math/rand"
"reflect"
"sort"
"unsafe"
)
// Contain check if the value is in the iterable type or not
@@ -345,26 +344,6 @@ func IntSlice(slice interface{}) []int {
return out
}
// ConvertSlice convert original slice to new data type element of slice.
func ConvertSlice(originalSlice interface{}, newSliceType reflect.Type) interface{} {
sv := sliceValue(originalSlice)
if newSliceType.Kind() != reflect.Slice {
panic(fmt.Sprintf("Invalid newSliceType(non-slice type of type %T)", newSliceType))
}
newSlice := reflect.New(newSliceType)
hdr := (*reflect.SliceHeader)(unsafe.Pointer(newSlice.Pointer()))
var newElemSize = int(sv.Type().Elem().Size()) / int(newSliceType.Elem().Size())
hdr.Cap = sv.Cap() * newElemSize
hdr.Len = sv.Len() * newElemSize
hdr.Data = sv.Pointer()
return newSlice.Elem().Interface()
}
// DeleteByIndex delete the element of slice from start index to end index - 1.
func DeleteByIndex[T any](slice []T, start int, end ...int) []T {
size := len(slice)

View File

@@ -45,19 +45,6 @@ func TestChunk(t *testing.T) {
assert.Equal(r5, Chunk(arr, 5))
}
func TestConvertSlice(t *testing.T) {
//t1 := []string{"1","2"}
//aInt, _ := strconv.ParseInt("1", 10, 64)
//bInt, _ := strconv.ParseInt("2", 10, 64)
//expected :=[]int64{aInt, bInt}
//
//a := ConvertSlice(t1, reflect.TypeOf(expected))
//if !reflect.DeepEqual(a, expected) {
// utils.LogFailedTestInfo(t, "ConvertSlice", t1, expected, a)
// t.FailNow()
//}
}
func TestEvery(t *testing.T) {
nums := []int{1, 2, 3, 5}
isEven := func(i, num int) bool {
@@ -367,6 +354,7 @@ func TestIntersection(t *testing.T) {
for i := 0; i < len(res); i++ {
assert.Equal(expected[i], res[i])
}
// assert.IsNil(Intersection())
}
func TestReverse(t *testing.T) {