github.com/RevenueMonster/sqlike@v1.0.6/sql/expr/type_safe_test.go (about) 1 package expr 2 3 import ( 4 "reflect" 5 "testing" 6 7 "github.com/RevenueMonster/sqlike/sqlike/primitive" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestTypeSafe(t *testing.T) { 12 str := String("Hello world!") 13 require.Equal(t, str, primitive.TypeSafe{Type: reflect.String, Value: "Hello world!"}) 14 15 { 16 b := Bool(true) 17 require.Equal(t, b, primitive.TypeSafe{Type: reflect.Bool, Value: true}) 18 19 b = Bool(false) 20 require.Equal(t, b, primitive.TypeSafe{Type: reflect.Bool, Value: false}) 21 } 22 23 { 24 i := Int(12) 25 require.Equal(t, i, primitive.TypeSafe{Type: reflect.Int, Value: int(12)}) 26 27 i8 := Int8(-10) 28 require.Equal(t, i8, primitive.TypeSafe{Type: reflect.Int8, Value: int8(-10)}) 29 30 i16 := Int16(-88) 31 require.Equal(t, i16, primitive.TypeSafe{Type: reflect.Int16, Value: int16(-88)}) 32 33 i32 := Int32(-900) 34 require.Equal(t, i32, primitive.TypeSafe{Type: reflect.Int32, Value: int32(-900)}) 35 36 i64 := Int64(-129369218783782173) 37 require.Equal(t, i64, primitive.TypeSafe{Type: reflect.Int64, Value: int64(-129369218783782173)}) 38 } 39 40 { 41 ui := Uint(12) 42 require.Equal(t, ui, primitive.TypeSafe{Type: reflect.Uint, Value: uint(12)}) 43 44 ui8 := Uint8(10) 45 require.Equal(t, ui8, primitive.TypeSafe{Type: reflect.Uint8, Value: uint8(10)}) 46 47 ui16 := Uint16(88) 48 require.Equal(t, ui16, primitive.TypeSafe{Type: reflect.Uint16, Value: uint16(88)}) 49 50 ui32 := Uint32(900) 51 require.Equal(t, ui32, primitive.TypeSafe{Type: reflect.Uint32, Value: uint32(900)}) 52 53 ui64 := Uint64(129369218783782173) 54 require.Equal(t, ui64, primitive.TypeSafe{Type: reflect.Uint64, Value: uint64(129369218783782173)}) 55 } 56 57 { 58 f32 := Float32(88.616261) 59 require.Equal(t, f32, primitive.TypeSafe{Type: reflect.Float32, Value: float32(88.616261)}) 60 61 f64 := Float64(88123123.6162613333) 62 require.Equal(t, f64, primitive.TypeSafe{Type: reflect.Float64, Value: float64(88123123.6162613333)}) 63 } 64 }