github.com/JohanShen/go-utils@v1.1.4-0.20201117124024-901319a2b2a0/utils/tostr_test.go (about) 1 package utils 2 3 import ( 4 "fmt" 5 "go/types" 6 "reflect" 7 "strconv" 8 "testing" 9 ) 10 11 type ( 12 mint int 13 nint int64 14 uInt uint 15 nstr string 16 aint *int 17 astr *string 18 ) 19 20 func TestAnyToStr2(t *testing.T) { 21 22 var g mint = 9 23 24 var h interface{} = 5 25 26 var j nint 27 28 var k = strconv.FormatInt(int64(h.(int)), 10) 29 30 j = nint(g) 31 32 ttt := reflect.TypeOf(5) 33 r := reflect.ValueOf(j) 34 r1 := r.Convert(ttt) 35 36 t.Log(k, j, reflect.TypeOf(j), r1) 37 38 var a []string 39 t.Log(len(a)) 40 } 41 42 func TestAnyToStr(t *testing.T) { 43 var a int = 1 44 var b int8 = 4 45 var c int16 = 5 46 var d int32 = 6 47 var e int64 = 7 48 var f chan int 49 var g mint = 9 50 var h nint = 98 51 var n nstr = "fdf" 52 var u1 uInt = 9845 53 var f1 float32 = 999.99 54 var f2 func(...uInt) (<-chan int, chan<- bool, error) 55 var f3 map[nstr]interface{} 56 var f4 struct{} 57 var f5 reflect.Type 58 var f6 []int 59 var f7 [3]int 60 var f8 []*int 61 var f9 *int 62 var f10 aint = &a 63 var f11 string = string(n) 64 var f12 *string = &f11 65 var f13 astr = &f11 66 var f14 *astr 67 68 //fmt.Printf("obj = %#v , %#v", *f10, reflect.ValueOf(f10).Kind()) 69 70 t.Log(AnyToStr(a)) 71 t.Log(AnyToStr(b)) 72 t.Log(AnyToStr(c)) 73 t.Log(AnyToStr(d)) 74 t.Log(AnyToStr(e)) 75 t.Log(AnyToStr(f)) 76 t.Log(AnyToStr(g)) 77 t.Log(AnyToStr(h)) 78 t.Log(AnyToStr(n)) 79 t.Log(AnyToStr(u1)) 80 t.Log(AnyToStr(f1)) 81 t.Log(AnyToStr(f2)) 82 t.Log(AnyToStr(f3)) 83 t.Log(AnyToStr(f4)) 84 t.Log(AnyToStr(f5)) 85 t.Log(AnyToStr(f6)) 86 t.Log(AnyToStr(f7)) 87 t.Log(AnyToStr(f8)) 88 t.Log(AnyToStr(f9)) 89 t.Log(AnyToStr(f10)) 90 t.Log(AnyToStr(f11)) 91 t.Log(AnyToStr(f12)) 92 t.Log(AnyToStr(f13)) 93 t.Log(AnyToStr(f14)) 94 95 //t.Errorf("f7 = %#v", AnyToStr(f7)) 96 //t.Fatal(AnyToStr(f7)) 97 //t.Skip(f7) 98 } 99 100 func TestIsStrEmptyOrNull(t *testing.T) { 101 102 a1 := "" 103 a2 := "\n" 104 a3 := " " 105 a4 := "\r" 106 a5 := "\t" 107 a6 := "\v" 108 a7 := "\f" 109 110 t.Logf("a1 = %#v : %#v", a1, IsStrEmptyOrNull(a1)) 111 t.Logf("a2 = %#v : %#v", a2, IsStrEmptyOrNull(a2)) 112 t.Logf("a3 = %#v : %#v", a3, IsStrEmptyOrNull(a3)) 113 t.Logf("a4 = %#v : %#v", a4, IsStrEmptyOrNull(a4)) 114 t.Logf("a5 = %#v : %#v", a5, IsStrEmptyOrNull(a5)) 115 t.Logf("a6 = %#v : %#v", a6, IsStrEmptyOrNull(a6)) 116 t.Logf("a7 = %#v : %#v", a7, IsStrEmptyOrNull(a7)) 117 118 } 119 120 func TestIsObjectNil(t *testing.T) { 121 var a1 int 122 var a2 *int 123 var a3 mint 124 var a4 aint 125 var a5 string 126 var a6 *string = &a5 127 var a7 astr 128 var a8 interface{} = 9 129 var a9 types.Object 130 131 t.Logf("a1 = %#v : %#v", a1, IsObjectNil(a1)) 132 t.Logf("a2 = %#v : %#v", a2, IsObjectNil(a2)) 133 t.Logf("a3 = %#v : %#v", a3, IsObjectNil(a3)) 134 t.Logf("a4 = %#v : %#v", a4, IsObjectNil(a4)) 135 t.Logf("a5 = %#v : %#v", a5, IsObjectNil(a5)) 136 t.Logf("a6 = %#v : %#v", a6, IsObjectNil(a6)) 137 t.Logf("a7 = %#v : %#v", a7, IsObjectNil(a7)) 138 t.Logf("a8 = %#v : %#v", a8, IsObjectNil(a8)) 139 t.Logf("a9 = %#v : %#v", a9, IsObjectNil(a9)) 140 } 141 142 func BenchmarkAnyToStr(b *testing.B) { 143 var u1 uInt = 9845 144 for i := 0; i < 1000000; i++ { 145 AnyToStr(u1) 146 } 147 } 148 149 func ExampleAnyToStr() { 150 var u1 uInt = 9845 151 var f chan int 152 fmt.Println(AnyToStr(u1)) 153 fmt.Println(AnyToStr(f)) 154 // Output: 155 // 9845 156 // chan int 157 }