mirror of
https://github.com/SagerNet/sing.git
synced 2025-04-03 20:07:38 +03:00
35 lines
955 B
Go
35 lines
955 B
Go
package varbin
|
|
|
|
import (
|
|
"math/rand"
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestSlicesValue(t *testing.T) {
|
|
int64Arr := make([]int64, 64)
|
|
for i := range int64Arr {
|
|
int64Arr[i] = rand.Int63()
|
|
}
|
|
require.Equal(t, int64Arr, slicesValue[int64](reflect.ValueOf(int64Arr)))
|
|
require.Equal(t, int64Arr, baseDataSlices(reflect.ValueOf(int64Arr)))
|
|
}
|
|
|
|
func TestSetSliceValue(t *testing.T) {
|
|
int64Arr := make([]int64, 64)
|
|
value := reflect.Indirect(reflect.ValueOf(&int64Arr))
|
|
newInt64Arr := make([]int64, 64)
|
|
for i := range newInt64Arr {
|
|
newInt64Arr[i] = rand.Int63()
|
|
}
|
|
setSliceValue[int64](value, newInt64Arr)
|
|
require.Equal(t, newInt64Arr, slicesValue[int64](value))
|
|
newInt64Arr2 := makeBaseDataSlices(value, 64)
|
|
copy(newInt64Arr2.([]int64), newInt64Arr)
|
|
require.Equal(t, newInt64Arr, newInt64Arr2)
|
|
value.SetZero()
|
|
setBaseDataSlices(value, newInt64Arr2)
|
|
require.Equal(t, newInt64Arr, slicesValue[int64](value))
|
|
}
|