is_test.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package utils
  2. import "testing"
  3. func TestIsEmpty(t *testing.T) {
  4. type args struct {
  5. val any
  6. }
  7. tests := []struct {
  8. name string
  9. args args
  10. want bool
  11. }{
  12. {
  13. name: "int",
  14. args: args{val: int(12)},
  15. want: false,
  16. },
  17. {
  18. name: "int empty",
  19. args: args{val: int(0)},
  20. want: true,
  21. },
  22. {
  23. name: "int8",
  24. args: args{val: int8(12)},
  25. want: false,
  26. },
  27. {
  28. name: "int8 empty",
  29. args: args{val: int8(0)},
  30. want: true,
  31. },
  32. {
  33. name: "uint",
  34. args: args{val: uint(12)},
  35. want: false,
  36. },
  37. {
  38. name: "uint empty",
  39. args: args{val: uint(0)},
  40. want: true,
  41. },
  42. {
  43. name: "float",
  44. args: args{val: float32(0.123)},
  45. want: false,
  46. },
  47. {
  48. name: "float32 empty",
  49. args: args{val: float32(0.0)},
  50. want: true,
  51. },
  52. {
  53. name: "float32 empty2",
  54. args: args{val: float32(0)},
  55. want: true,
  56. },
  57. {
  58. name: "float64 empty",
  59. args: args{val: float64(0.0)},
  60. want: true,
  61. },
  62. {
  63. name: "float64 empty2",
  64. args: args{val: float64(0)},
  65. want: true,
  66. },
  67. {
  68. name: "byte",
  69. args: args{val: []byte("123")},
  70. want: false,
  71. },
  72. {
  73. name: "byte empty",
  74. args: args{val: []byte("")},
  75. want: true,
  76. },
  77. {
  78. name: "string",
  79. args: args{val: "123"},
  80. want: false,
  81. },
  82. {
  83. name: "string empty",
  84. args: args{val: ""},
  85. want: true,
  86. },
  87. {
  88. name: "bool",
  89. args: args{val: true},
  90. want: false,
  91. },
  92. {
  93. name: "bool empty",
  94. args: args{val: false},
  95. want: true,
  96. },
  97. {
  98. name: "slice",
  99. args: args{val: []int{1, 2, 34}},
  100. want: false,
  101. },
  102. {
  103. name: "slice empty",
  104. args: args{val: []int{}},
  105. want: true,
  106. },
  107. {
  108. name: "struct",
  109. args: args{val: struct {
  110. Name string
  111. Age int
  112. }{
  113. Name: "zs",
  114. Age: 10,
  115. }},
  116. want: false,
  117. },
  118. {
  119. name: "struct empty",
  120. args: args{val: struct {
  121. Name string
  122. Age int
  123. }{}},
  124. want: true,
  125. },
  126. }
  127. for _, tt := range tests {
  128. t.Run(tt.name, func(t *testing.T) {
  129. if got := IsEmpty(tt.args.val); got != tt.want {
  130. t.Errorf("IsEmpty() = %v, want %v", got, tt.want)
  131. }
  132. })
  133. }
  134. }