github.com/yaoapp/kun@v0.9.0/num/number_test.go (about) 1 package num 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestMake(t *testing.T) { 11 v := Make() 12 assert.Equal(t, 0.0, v.Float()) 13 } 14 func TestOf(t *testing.T) { 15 v := Of(0.618) 16 assert.Equal(t, 0.618, v.Float()) 17 } 18 19 func TestSet(t *testing.T) { 20 v := Of(0.618) 21 assert.Equal(t, 0.618, v.Float()) 22 23 v.Set(0.852) 24 assert.Equal(t, 0.852, v.Float()) 25 } 26 27 func TestFloat(t *testing.T) { 28 assert.Equal(t, 0.0, Of(nil).Float()) 29 assert.Equal(t, 1.0, Of(1).Float()) 30 assert.Equal(t, 1.618, Of(1.618+2.382i).Float()) 31 assert.Equal(t, 1.0, Of(complex64(1+2.382i)).Float()) 32 assert.Equal(t, 0.618, Of(0.618).Float()) 33 assert.Equal(t, float64(float32(0.618)), Of(float32(0.618)).Float()) 34 assert.Equal(t, 0.618, Of("0.618").Float()) 35 assert.Panics(t, func() { 36 fmt.Println(Of("error").Float()) 37 }) 38 } 39 40 func TestFloat32(t *testing.T) { 41 assert.Equal(t, float32(0.0), Of(nil).Float32()) 42 assert.Equal(t, float32(0.618), Of(0.618).Float32()) 43 assert.Equal(t, float32(0.618), Of(float32(0.618)).Float32()) 44 assert.Equal(t, float32(0.618), Of("0.618").Float32()) 45 assert.Panics(t, func() { 46 fmt.Println(Of("error").Float32()) 47 }) 48 } 49 50 func TestToFixed(t *testing.T) { 51 assert.Equal(t, "0.62", Of(0.618).ToFixed(2)) 52 assert.Equal(t, "0.61", Of(0.614).ToFixed(2)) 53 assert.Equal(t, "0", Of(0.4).ToFixed(0)) 54 assert.Equal(t, "1", Of(0.51).ToFixed(0)) 55 } 56 57 func TestInt(t *testing.T) { 58 assert.Equal(t, 0, Of(nil).Int()) 59 assert.Equal(t, 10, Of(10).Int()) 60 assert.Equal(t, 0, Of(0.312).Int()) 61 assert.Equal(t, 1, Of(0.618).Int()) 62 assert.Equal(t, 1, Of(float32(0.618)).Int()) 63 assert.Equal(t, 2, Of(1.618+2.382i).Int()) 64 assert.Equal(t, 2, Of(complex64(1.618+2.382i)).Int()) 65 assert.Equal(t, 10, Of("10").Int()) 66 assert.Equal(t, 0, Of("0.312").Int()) 67 assert.Equal(t, 1, Of("0.618").Int()) 68 assert.Equal(t, 1, Of("1.24").Int()) 69 assert.Panics(t, func() { 70 fmt.Println(Of("error").Int()) 71 }) 72 } 73 74 func TestInt8(t *testing.T) { 75 assert.Equal(t, int8(1), Of(int8(1)).Int8()) 76 assert.Equal(t, int8(1), Of(1).Int8()) 77 } 78 func TestInt16(t *testing.T) { 79 assert.Equal(t, int16(1), Of(int16(1)).Int16()) 80 assert.Equal(t, int16(1), Of(1).Int16()) 81 } 82 83 func TestInt32(t *testing.T) { 84 assert.Equal(t, int32(1), Of(int32(1)).Int32()) 85 assert.Equal(t, int32(1), Of(1).Int32()) 86 } 87 88 func TestInt64(t *testing.T) { 89 assert.Equal(t, int64(1), Of(int64(1)).Int64()) 90 assert.Equal(t, int64(1), Of(1).Int64()) 91 } 92 93 func TestUint(t *testing.T) { 94 assert.Equal(t, uint(1), Of(uint(1)).Uint()) 95 assert.Equal(t, uint(1), Of(1).Uint()) 96 } 97 98 func TestUint8(t *testing.T) { 99 assert.Equal(t, uint8(1), Of(uint8(1)).Uint8()) 100 assert.Equal(t, uint8(1), Of(1).Uint8()) 101 } 102 103 func TestUint16(t *testing.T) { 104 assert.Equal(t, uint16(1), Of(uint16(1)).Uint16()) 105 assert.Equal(t, uint16(1), Of(1).Uint16()) 106 } 107 108 func TestUint32(t *testing.T) { 109 assert.Equal(t, uint32(1), Of(uint32(1)).Uint32()) 110 assert.Equal(t, uint32(1), Of(1).Uint32()) 111 } 112 113 func TestUint64(t *testing.T) { 114 assert.Equal(t, uint64(1), Of(uint64(1)).Uint64()) 115 assert.Equal(t, uint64(1), Of(1).Uint64()) 116 } 117 118 func TestUintptr(t *testing.T) { 119 assert.Equal(t, uintptr(1), Of(uintptr(1)).Uintptr()) 120 assert.Equal(t, uintptr(1), Of(1).Uintptr()) 121 } 122 123 func TestComplex(t *testing.T) { 124 assert.Equal(t, 1.28+2.56i, Of(1.28+2.56i).Complex()) 125 assert.Equal(t, 1.0+2.00i, Of(complex64(1.0+2.0i)).Complex()) 126 assert.Equal(t, 1.28+2.56i, Of(" 1.28+ 2.56i ").Complex()) 127 assert.Equal(t, 1.28+2.56i, Of("( 1.28+ 2.56i )").Complex()) 128 assert.Equal(t, 1.28+2.56i, Of("( 1.28,2.56 )").Complex()) 129 assert.Equal(t, 1.28+0i, Of("1.28").Complex()) 130 assert.Equal(t, 1.28+0i, Of(1.28).Complex()) 131 assert.Equal(t, 1.0+0i, Of(1).Complex()) 132 } 133 134 func TestComplex64(t *testing.T) { 135 assert.Equal(t, complex64(1.28+2.56i), Of(1.28+2.56i).Complex64()) 136 assert.Equal(t, complex64(1.0+2.00i), Of(complex64(1.0+2.0i)).Complex64()) 137 assert.Equal(t, complex64(1.28+2.56i), Of(" 1.28+ 2.56i ").Complex64()) 138 assert.Equal(t, complex64(1.28+2.56i), Of("( 1.28+ 2.56i )").Complex64()) 139 assert.Equal(t, complex64(1.28+2.56i), Of("( 1.28,2.56 )").Complex64()) 140 assert.Equal(t, complex64(1.28+0i), Of("1.28").Complex64()) 141 assert.Equal(t, complex64(1.28+0i), Of(1.28).Complex64()) 142 assert.Equal(t, complex64(1.0+0i), Of(1).Complex64()) 143 } 144 145 func TestIsComplex(t *testing.T) { 146 assert.Equal(t, true, Of(1.28+2.56i).IsComplex()) 147 assert.Equal(t, true, Of(complex64(1.28+2.56i)).IsComplex()) 148 assert.Equal(t, false, Of(true).IsComplex()) 149 } 150 151 func TestIsInt(t *testing.T) { 152 assert.Equal(t, true, Of(1).IsInt()) 153 assert.Equal(t, true, Of(int8(1)).IsInt()) 154 assert.Equal(t, false, Of(true).IsInt()) 155 } 156 157 func TestIsFloat(t *testing.T) { 158 assert.Equal(t, true, Of(1.618).IsFloat()) 159 assert.Equal(t, true, Of(float32(1.382)).IsFloat()) 160 assert.Equal(t, false, Of(5).IsFloat()) 161 } 162 163 func TestIsSet(t *testing.T) { 164 assert.Equal(t, true, Of(1).IsSet()) 165 assert.Equal(t, false, Of(nil).IsSet()) 166 } 167 168 func TestIsNil(t *testing.T) { 169 assert.Equal(t, false, Of(1).IsNil()) 170 assert.Equal(t, true, Of(nil).IsNil()) 171 }