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 }