github.com/gogf/gf/v2@v2.7.4/internal/utils/utils_z_unit_is_test.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with this file, 5 // You can obtain one at https://github.com/gogf/gf. 6 7 package utils_test 8 9 import ( 10 "testing" 11 12 "github.com/gogf/gf/v2/container/gvar" 13 "github.com/gogf/gf/v2/frame/g" 14 "github.com/gogf/gf/v2/internal/utils" 15 "github.com/gogf/gf/v2/os/gtime" 16 "github.com/gogf/gf/v2/test/gtest" 17 ) 18 19 func TestVar_IsNil(t *testing.T) { 20 gtest.C(t, func(t *gtest.T) { 21 t.Assert(utils.IsNil(0), false) 22 t.Assert(utils.IsNil(nil), true) 23 t.Assert(utils.IsNil(g.Map{}), false) 24 t.Assert(utils.IsNil(g.Slice{}), false) 25 }) 26 gtest.C(t, func(t *gtest.T) { 27 t.Assert(utils.IsNil(1), false) 28 t.Assert(utils.IsNil(0.1), false) 29 t.Assert(utils.IsNil(g.Map{"k": "v"}), false) 30 t.Assert(utils.IsNil(g.Slice{0}), false) 31 }) 32 } 33 34 func TestVar_IsEmpty(t *testing.T) { 35 gtest.C(t, func(t *gtest.T) { 36 t.Assert(utils.IsEmpty(0), true) 37 t.Assert(utils.IsEmpty(nil), true) 38 t.Assert(utils.IsEmpty(g.Map{}), true) 39 t.Assert(utils.IsEmpty(g.Slice{}), true) 40 }) 41 gtest.C(t, func(t *gtest.T) { 42 t.Assert(utils.IsEmpty(1), false) 43 t.Assert(utils.IsEmpty(0.1), false) 44 t.Assert(utils.IsEmpty(g.Map{"k": "v"}), false) 45 t.Assert(utils.IsEmpty(g.Slice{0}), false) 46 }) 47 } 48 49 func TestVar_IsInt(t *testing.T) { 50 gtest.C(t, func(t *gtest.T) { 51 t.Assert(utils.IsInt(0), true) 52 t.Assert(utils.IsInt(nil), false) 53 t.Assert(utils.IsInt(g.Map{}), false) 54 t.Assert(utils.IsInt(g.Slice{}), false) 55 }) 56 gtest.C(t, func(t *gtest.T) { 57 t.Assert(utils.IsInt(1), true) 58 t.Assert(utils.IsInt(-1), true) 59 t.Assert(utils.IsInt(0.1), false) 60 t.Assert(utils.IsInt(g.Map{"k": "v"}), false) 61 t.Assert(utils.IsInt(g.Slice{0}), false) 62 }) 63 gtest.C(t, func(t *gtest.T) { 64 t.Assert(utils.IsInt(int8(1)), true) 65 t.Assert(utils.IsInt(uint8(1)), false) 66 }) 67 } 68 69 func TestVar_IsUint(t *testing.T) { 70 gtest.C(t, func(t *gtest.T) { 71 t.Assert(utils.IsUint(0), false) 72 t.Assert(utils.IsUint(nil), false) 73 t.Assert(utils.IsUint(g.Map{}), false) 74 t.Assert(utils.IsUint(g.Slice{}), false) 75 }) 76 gtest.C(t, func(t *gtest.T) { 77 t.Assert(utils.IsUint(1), false) 78 t.Assert(utils.IsUint(-1), false) 79 t.Assert(utils.IsUint(0.1), false) 80 t.Assert(utils.IsUint(g.Map{"k": "v"}), false) 81 t.Assert(utils.IsUint(g.Slice{0}), false) 82 }) 83 gtest.C(t, func(t *gtest.T) { 84 t.Assert(utils.IsUint(int8(1)), false) 85 t.Assert(utils.IsUint(uint8(1)), true) 86 }) 87 } 88 89 func TestVar_IsFloat(t *testing.T) { 90 gtest.C(t, func(t *gtest.T) { 91 t.Assert(utils.IsFloat(0), false) 92 t.Assert(utils.IsFloat(nil), false) 93 t.Assert(utils.IsFloat(g.Map{}), false) 94 t.Assert(utils.IsFloat(g.Slice{}), false) 95 }) 96 gtest.C(t, func(t *gtest.T) { 97 t.Assert(utils.IsFloat(1), false) 98 t.Assert(utils.IsFloat(-1), false) 99 t.Assert(utils.IsFloat(0.1), true) 100 t.Assert(utils.IsFloat(float64(1)), true) 101 t.Assert(utils.IsFloat(g.Map{"k": "v"}), false) 102 t.Assert(utils.IsFloat(g.Slice{0}), false) 103 }) 104 gtest.C(t, func(t *gtest.T) { 105 t.Assert(utils.IsFloat(int8(1)), false) 106 t.Assert(utils.IsFloat(uint8(1)), false) 107 }) 108 } 109 110 func TestVar_IsSlice(t *testing.T) { 111 gtest.C(t, func(t *gtest.T) { 112 t.Assert(utils.IsSlice(0), false) 113 t.Assert(utils.IsSlice(nil), false) 114 t.Assert(utils.IsSlice(g.Map{}), false) 115 t.Assert(utils.IsSlice(g.Slice{}), true) 116 }) 117 gtest.C(t, func(t *gtest.T) { 118 t.Assert(utils.IsSlice(1), false) 119 t.Assert(utils.IsSlice(-1), false) 120 t.Assert(utils.IsSlice(0.1), false) 121 t.Assert(utils.IsSlice(float64(1)), false) 122 t.Assert(utils.IsSlice(g.Map{"k": "v"}), false) 123 t.Assert(utils.IsSlice(g.Slice{0}), true) 124 }) 125 gtest.C(t, func(t *gtest.T) { 126 t.Assert(utils.IsSlice(int8(1)), false) 127 t.Assert(utils.IsSlice(uint8(1)), false) 128 }) 129 gtest.C(t, func(t *gtest.T) { 130 t.Assert(utils.IsSlice(gvar.New(gtime.Now()).IsSlice()), false) 131 }) 132 } 133 134 func TestVar_IsMap(t *testing.T) { 135 gtest.C(t, func(t *gtest.T) { 136 t.Assert(utils.IsMap(0), false) 137 t.Assert(utils.IsMap(nil), false) 138 t.Assert(utils.IsMap(g.Map{}), true) 139 t.Assert(utils.IsMap(g.Slice{}), false) 140 }) 141 gtest.C(t, func(t *gtest.T) { 142 t.Assert(utils.IsMap(1), false) 143 t.Assert(utils.IsMap(-1), false) 144 t.Assert(utils.IsMap(0.1), false) 145 t.Assert(utils.IsMap(float64(1)), false) 146 t.Assert(utils.IsMap(g.Map{"k": "v"}), true) 147 t.Assert(utils.IsMap(g.Slice{0}), false) 148 }) 149 gtest.C(t, func(t *gtest.T) { 150 t.Assert(utils.IsMap(int8(1)), false) 151 t.Assert(utils.IsMap(uint8(1)), false) 152 }) 153 } 154 155 func TestVar_IsStruct(t *testing.T) { 156 gtest.C(t, func(t *gtest.T) { 157 t.Assert(utils.IsStruct(0), false) 158 t.Assert(utils.IsStruct(nil), false) 159 t.Assert(utils.IsStruct(g.Map{}), false) 160 t.Assert(utils.IsStruct(g.Slice{}), false) 161 }) 162 gtest.C(t, func(t *gtest.T) { 163 t.Assert(utils.IsStruct(1), false) 164 t.Assert(utils.IsStruct(-1), false) 165 t.Assert(utils.IsStruct(0.1), false) 166 t.Assert(utils.IsStruct(float64(1)), false) 167 t.Assert(utils.IsStruct(g.Map{"k": "v"}), false) 168 t.Assert(utils.IsStruct(g.Slice{0}), false) 169 }) 170 gtest.C(t, func(t *gtest.T) { 171 a := &struct { 172 }{} 173 t.Assert(utils.IsStruct(a), true) 174 t.Assert(utils.IsStruct(*a), true) 175 t.Assert(utils.IsStruct(&a), true) 176 }) 177 }