...
1 package goquery
2
3 import (
4 "testing"
5 )
6
7 func BenchmarkFilter(b *testing.B) {
8 var n int
9
10 b.StopTimer()
11 sel := DocW().Find("li")
12 b.StartTimer()
13 for i := 0; i < b.N; i++ {
14 if n == 0 {
15 n = sel.Filter(".toclevel-1").Length()
16 } else {
17 sel.Filter(".toclevel-1")
18 }
19 }
20 if n != 13 {
21 b.Fatalf("want 13, got %d", n)
22 }
23 }
24
25 func BenchmarkNot(b *testing.B) {
26 var n int
27
28 b.StopTimer()
29 sel := DocW().Find("li")
30 b.StartTimer()
31 for i := 0; i < b.N; i++ {
32 if n == 0 {
33 n = sel.Not(".toclevel-2").Length()
34 } else {
35 sel.Filter(".toclevel-2")
36 }
37 }
38 if n != 371 {
39 b.Fatalf("want 371, got %d", n)
40 }
41 }
42
43 func BenchmarkFilterFunction(b *testing.B) {
44 var n int
45
46 b.StopTimer()
47 sel := DocW().Find("li")
48 f := func(i int, s *Selection) bool {
49 return len(s.Get(0).Attr) > 0
50 }
51 b.StartTimer()
52 for i := 0; i < b.N; i++ {
53 if n == 0 {
54 n = sel.FilterFunction(f).Length()
55 } else {
56 sel.FilterFunction(f)
57 }
58 }
59 if n != 112 {
60 b.Fatalf("want 112, got %d", n)
61 }
62 }
63
64 func BenchmarkNotFunction(b *testing.B) {
65 var n int
66
67 b.StopTimer()
68 sel := DocW().Find("li")
69 f := func(i int, s *Selection) bool {
70 return len(s.Get(0).Attr) > 0
71 }
72 b.StartTimer()
73 for i := 0; i < b.N; i++ {
74 if n == 0 {
75 n = sel.NotFunction(f).Length()
76 } else {
77 sel.NotFunction(f)
78 }
79 }
80 if n != 261 {
81 b.Fatalf("want 261, got %d", n)
82 }
83 }
84
85 func BenchmarkFilterNodes(b *testing.B) {
86 var n int
87
88 b.StopTimer()
89 sel := DocW().Find("li")
90 sel2 := DocW().Find(".toclevel-2")
91 nodes := sel2.Nodes
92 b.StartTimer()
93 for i := 0; i < b.N; i++ {
94 if n == 0 {
95 n = sel.FilterNodes(nodes...).Length()
96 } else {
97 sel.FilterNodes(nodes...)
98 }
99 }
100 if n != 2 {
101 b.Fatalf("want 2, got %d", n)
102 }
103 }
104
105 func BenchmarkNotNodes(b *testing.B) {
106 var n int
107
108 b.StopTimer()
109 sel := DocW().Find("li")
110 sel2 := DocW().Find(".toclevel-1")
111 nodes := sel2.Nodes
112 b.StartTimer()
113 for i := 0; i < b.N; i++ {
114 if n == 0 {
115 n = sel.NotNodes(nodes...).Length()
116 } else {
117 sel.NotNodes(nodes...)
118 }
119 }
120 if n != 360 {
121 b.Fatalf("want 360, got %d", n)
122 }
123 }
124
125 func BenchmarkFilterSelection(b *testing.B) {
126 var n int
127
128 b.StopTimer()
129 sel := DocW().Find("li")
130 sel2 := DocW().Find(".toclevel-2")
131 b.StartTimer()
132 for i := 0; i < b.N; i++ {
133 if n == 0 {
134 n = sel.FilterSelection(sel2).Length()
135 } else {
136 sel.FilterSelection(sel2)
137 }
138 }
139 if n != 2 {
140 b.Fatalf("want 2, got %d", n)
141 }
142 }
143
144 func BenchmarkNotSelection(b *testing.B) {
145 var n int
146
147 b.StopTimer()
148 sel := DocW().Find("li")
149 sel2 := DocW().Find(".toclevel-1")
150 b.StartTimer()
151 for i := 0; i < b.N; i++ {
152 if n == 0 {
153 n = sel.NotSelection(sel2).Length()
154 } else {
155 sel.NotSelection(sel2)
156 }
157 }
158 if n != 360 {
159 b.Fatalf("want 360, got %d", n)
160 }
161 }
162
163 func BenchmarkHas(b *testing.B) {
164 var n int
165
166 b.StopTimer()
167 sel := DocW().Find("h2")
168 b.StartTimer()
169 for i := 0; i < b.N; i++ {
170 if n == 0 {
171 n = sel.Has(".editsection").Length()
172 } else {
173 sel.Has(".editsection")
174 }
175 }
176 if n != 13 {
177 b.Fatalf("want 13, got %d", n)
178 }
179 }
180
181 func BenchmarkHasNodes(b *testing.B) {
182 var n int
183
184 b.StopTimer()
185 sel := DocW().Find("li")
186 sel2 := DocW().Find(".tocnumber")
187 nodes := sel2.Nodes
188 b.StartTimer()
189 for i := 0; i < b.N; i++ {
190 if n == 0 {
191 n = sel.HasNodes(nodes...).Length()
192 } else {
193 sel.HasNodes(nodes...)
194 }
195 }
196 if n != 15 {
197 b.Fatalf("want 15, got %d", n)
198 }
199 }
200
201 func BenchmarkHasSelection(b *testing.B) {
202 var n int
203
204 b.StopTimer()
205 sel := DocW().Find("li")
206 sel2 := DocW().Find(".tocnumber")
207 b.StartTimer()
208 for i := 0; i < b.N; i++ {
209 if n == 0 {
210 n = sel.HasSelection(sel2).Length()
211 } else {
212 sel.HasSelection(sel2)
213 }
214 }
215 if n != 15 {
216 b.Fatalf("want 15, got %d", n)
217 }
218 }
219
220 func BenchmarkEnd(b *testing.B) {
221 var n int
222
223 b.StopTimer()
224 sel := DocW().Find("li").Has(".tocnumber")
225 b.StartTimer()
226 for i := 0; i < b.N; i++ {
227 if n == 0 {
228 n = sel.End().Length()
229 } else {
230 sel.End()
231 }
232 }
233 if n != 373 {
234 b.Fatalf("want 373, got %d", n)
235 }
236 }
237
View as plain text