-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathjson_collate_test.go
117 lines (94 loc) · 2.73 KB
/
json_collate_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package gson
import "fmt"
import "testing"
// All test cases are folded into collate_json_test.go, contains only few
// missing testcases (if any) and benchmarks.
func BenchmarkJson2CollNil(b *testing.B) {
config := NewDefaultConfig()
jsn := config.NewJson([]byte("null"))
clt := config.NewCollate(make([]byte, 0, 1024))
for i := 0; i < b.N; i++ {
jsn.Tocollate(clt.Reset(nil))
}
}
func BenchmarkJson2CollTrue(b *testing.B) {
config := NewDefaultConfig()
jsn := config.NewJson([]byte("true"))
clt := config.NewCollate(make([]byte, 0, 1024))
for i := 0; i < b.N; i++ {
jsn.Tocollate(clt.Reset(nil))
}
}
func BenchmarkJson2CollFalse(b *testing.B) {
config := NewDefaultConfig()
jsn := config.NewJson([]byte("false"))
clt := config.NewCollate(make([]byte, 0, 1024))
for i := 0; i < b.N; i++ {
jsn.Tocollate(clt.Reset(nil))
}
}
func BenchmarkJson2CollF64(b *testing.B) {
config := NewDefaultConfig()
jsn := config.NewJson([]byte("10.121312213123123"))
clt := config.NewCollate(make([]byte, 0, 1024))
for i := 0; i < b.N; i++ {
jsn.Tocollate(clt.Reset(nil))
}
}
func BenchmarkJson2CollI64(b *testing.B) {
config := NewDefaultConfig()
jsn := config.NewJson([]byte("123456789"))
clt := config.NewCollate(make([]byte, 0, 1024))
for i := 0; i < b.N; i++ {
jsn.Tocollate(clt.Reset(nil))
}
}
func BenchmarkJson2CollMiss(b *testing.B) {
inp := fmt.Sprintf(`"%s"`, MissingLiteral)
config := NewDefaultConfig()
jsn := config.NewJson([]byte(inp))
clt := config.NewCollate(make([]byte, 0, 1024))
for i := 0; i < b.N; i++ {
jsn.Tocollate(clt.Reset(nil))
}
}
func BenchmarkJson2CollStr(b *testing.B) {
config := NewDefaultConfig()
jsn := config.NewJson([]byte(`"hello world"`))
clt := config.NewCollate(make([]byte, 0, 1024))
b.ResetTimer()
for i := 0; i < b.N; i++ {
jsn.Tocollate(clt.Reset(nil))
}
}
func BenchmarkJson2CollArr(b *testing.B) {
inp := `[null,true,false,"hello world",10.23122312]`
config := NewDefaultConfig()
jsn := config.NewJson([]byte(inp))
clt := config.NewCollate(make([]byte, 0, 1024))
b.ResetTimer()
for i := 0; i < b.N; i++ {
jsn.Tocollate(clt.Reset(nil))
}
}
func BenchmarkJson2CollMap(b *testing.B) {
inp := `{"key1":null,"key2":true,"key3":false,"key4":"hello world",` +
`"key5":10.23122312}`
config := NewDefaultConfig().SetMaxkeys(10)
jsn := config.NewJson([]byte(inp))
clt := config.NewCollate(make([]byte, 0, 1024))
b.ResetTimer()
for i := 0; i < b.N; i++ {
jsn.Tocollate(clt.Reset(nil))
}
}
func BenchmarkJson2CollTyp(b *testing.B) {
inp := testdataFile("testdata/typical.json")
config := NewDefaultConfig().SetMaxkeys(100)
jsn := config.NewJson(inp)
clt := config.NewCollate(make([]byte, 0, 10*1024))
b.ResetTimer()
for i := 0; i < b.N; i++ {
jsn.Tocollate(clt.Reset(nil))
}
}