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  }