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  }