github.com/bobyang007/helper@v1.1.3/reflecth/kind_test.go (about)

     1  package reflecth
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  )
     7  
     8  func TestIs(t *testing.T) {
     9  	type testElement struct {
    10  		k                                           reflect.Kind
    11  		isInt, isUint, isAnyInt, isFloat, isComplex bool
    12  	}
    13  
    14  	tests := []testElement{
    15  		{reflect.Int, true, false, true, false, false},
    16  		{reflect.Int8, true, false, true, false, false},
    17  		{reflect.Int16, true, false, true, false, false},
    18  		{reflect.Int32, true, false, true, false, false},
    19  		{reflect.Int64, true, false, true, false, false},
    20  		{reflect.Uint, false, true, true, false, false},
    21  		{reflect.Uint8, false, true, true, false, false},
    22  		{reflect.Uint16, false, true, true, false, false},
    23  		{reflect.Uint32, false, true, true, false, false},
    24  		{reflect.Uint64, false, true, true, false, false},
    25  		{reflect.Float32, false, false, false, true, false},
    26  		{reflect.Float64, false, false, false, true, false},
    27  		{reflect.Complex64, false, false, false, false, true},
    28  		{reflect.Complex128, false, false, false, false, true},
    29  	}
    30  
    31  	for _, test := range tests {
    32  		ok := IsInt(test.k) == test.isInt && IsUint(test.k) == test.isUint && IsAnyInt(test.k) == test.isAnyInt && IsFloat(test.k) == test.isFloat && IsComplex(test.k) == test.isComplex
    33  		if !ok {
    34  			t.Errorf("%v: invalid Is*", test.k)
    35  		}
    36  	}
    37  }