github.com/jimmyx0x/go-ethereum@v1.10.28/log/format_test.go (about) 1 package log 2 3 import ( 4 "math" 5 "math/big" 6 "math/rand" 7 "testing" 8 ) 9 10 func TestPrettyInt64(t *testing.T) { 11 tests := []struct { 12 n int64 13 s string 14 }{ 15 {0, "0"}, 16 {10, "10"}, 17 {-10, "-10"}, 18 {100, "100"}, 19 {-100, "-100"}, 20 {1000, "1000"}, 21 {-1000, "-1000"}, 22 {10000, "10000"}, 23 {-10000, "-10000"}, 24 {99999, "99999"}, 25 {-99999, "-99999"}, 26 {100000, "100,000"}, 27 {-100000, "-100,000"}, 28 {1000000, "1,000,000"}, 29 {-1000000, "-1,000,000"}, 30 {math.MaxInt64, "9,223,372,036,854,775,807"}, 31 {math.MinInt64, "-9,223,372,036,854,775,808"}, 32 } 33 for i, tt := range tests { 34 if have := FormatLogfmtInt64(tt.n); have != tt.s { 35 t.Errorf("test %d: format mismatch: have %s, want %s", i, have, tt.s) 36 } 37 } 38 } 39 40 func TestPrettyUint64(t *testing.T) { 41 tests := []struct { 42 n uint64 43 s string 44 }{ 45 {0, "0"}, 46 {10, "10"}, 47 {100, "100"}, 48 {1000, "1000"}, 49 {10000, "10000"}, 50 {99999, "99999"}, 51 {100000, "100,000"}, 52 {1000000, "1,000,000"}, 53 {math.MaxUint64, "18,446,744,073,709,551,615"}, 54 } 55 for i, tt := range tests { 56 if have := FormatLogfmtUint64(tt.n); have != tt.s { 57 t.Errorf("test %d: format mismatch: have %s, want %s", i, have, tt.s) 58 } 59 } 60 } 61 62 func TestPrettyBigInt(t *testing.T) { 63 tests := []struct { 64 int string 65 s string 66 }{ 67 {"111222333444555678999", "111,222,333,444,555,678,999"}, 68 {"-111222333444555678999", "-111,222,333,444,555,678,999"}, 69 {"11122233344455567899900", "11,122,233,344,455,567,899,900"}, 70 {"-11122233344455567899900", "-11,122,233,344,455,567,899,900"}, 71 } 72 73 for _, tt := range tests { 74 v, _ := new(big.Int).SetString(tt.int, 10) 75 if have := formatLogfmtBigInt(v); have != tt.s { 76 t.Errorf("invalid output %s, want %s", have, tt.s) 77 } 78 } 79 } 80 81 var sink string 82 83 func BenchmarkPrettyInt64Logfmt(b *testing.B) { 84 b.ReportAllocs() 85 for i := 0; i < b.N; i++ { 86 sink = FormatLogfmtInt64(rand.Int63()) 87 } 88 } 89 90 func BenchmarkPrettyUint64Logfmt(b *testing.B) { 91 b.ReportAllocs() 92 for i := 0; i < b.N; i++ { 93 sink = FormatLogfmtUint64(rand.Uint64()) 94 } 95 }