lang_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. package lang
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestRepr(t *testing.T) {
  7. var (
  8. f32 float32 = 1.1
  9. f64 = 2.2
  10. i8 int8 = 1
  11. i16 int16 = 2
  12. i32 int32 = 3
  13. i64 int64 = 4
  14. u8 uint8 = 5
  15. u16 uint16 = 6
  16. u32 uint32 = 7
  17. u64 uint64 = 8
  18. )
  19. tests := []struct {
  20. v interface{}
  21. expect string
  22. }{
  23. {
  24. nil,
  25. "",
  26. },
  27. {
  28. mockStringable{},
  29. "mocked",
  30. },
  31. {
  32. new(mockStringable),
  33. "mocked",
  34. },
  35. {
  36. newMockPtr(),
  37. "mockptr",
  38. },
  39. {
  40. &mockOpacity{
  41. val: 1,
  42. },
  43. "{1}",
  44. },
  45. {
  46. true,
  47. "true",
  48. },
  49. {
  50. false,
  51. "false",
  52. },
  53. {
  54. f32,
  55. "1.1",
  56. },
  57. {
  58. f64,
  59. "2.2",
  60. },
  61. {
  62. i8,
  63. "1",
  64. },
  65. {
  66. i16,
  67. "2",
  68. },
  69. {
  70. i32,
  71. "3",
  72. },
  73. {
  74. i64,
  75. "4",
  76. },
  77. {
  78. u8,
  79. "5",
  80. },
  81. {
  82. u16,
  83. "6",
  84. },
  85. {
  86. u32,
  87. "7",
  88. },
  89. {
  90. u64,
  91. "8",
  92. },
  93. {
  94. []byte(`abcd`),
  95. "abcd",
  96. },
  97. {
  98. mockOpacity{val: 1},
  99. "{1}",
  100. },
  101. }
  102. for _, test := range tests {
  103. t.Run(test.expect, func(t *testing.T) {
  104. assert.Equal(t, test.expect, Repr(test.v))
  105. })
  106. }
  107. }
  108. type mockStringable struct{}
  109. func (m mockStringable) String() string {
  110. return "mocked"
  111. }
  112. type mockPtr struct{}
  113. func newMockPtr() *mockPtr {
  114. return new(mockPtr)
  115. }
  116. func (m *mockPtr) String() string {
  117. return "mockptr"
  118. }
  119. type mockOpacity struct {
  120. val int
  121. }