...
1 package goquery
2
3 import (
4 "testing"
5 )
6
7 func BenchmarkAdd(b *testing.B) {
8 var n int
9
10 b.StopTimer()
11 sel := DocB().Find("dd")
12 b.StartTimer()
13 for i := 0; i < b.N; i++ {
14 if n == 0 {
15 n = sel.Add("h2[title]").Length()
16 } else {
17 sel.Add("h2[title]")
18 }
19 }
20 if n != 43 {
21 b.Fatalf("want 43, got %d", n)
22 }
23 }
24
25 func BenchmarkAddSelection(b *testing.B) {
26 var n int
27
28 b.StopTimer()
29 sel := DocB().Find("dd")
30 sel2 := DocB().Find("h2[title]")
31 b.StartTimer()
32 for i := 0; i < b.N; i++ {
33 if n == 0 {
34 n = sel.AddSelection(sel2).Length()
35 } else {
36 sel.AddSelection(sel2)
37 }
38 }
39 if n != 43 {
40 b.Fatalf("want 43, got %d", n)
41 }
42 }
43
44 func BenchmarkAddNodes(b *testing.B) {
45 var n int
46
47 b.StopTimer()
48 sel := DocB().Find("dd")
49 sel2 := DocB().Find("h2[title]")
50 nodes := sel2.Nodes
51 b.StartTimer()
52 for i := 0; i < b.N; i++ {
53 if n == 0 {
54 n = sel.AddNodes(nodes...).Length()
55 } else {
56 sel.AddNodes(nodes...)
57 }
58 }
59 if n != 43 {
60 b.Fatalf("want 43, got %d", n)
61 }
62 }
63
64 func BenchmarkAddNodesBig(b *testing.B) {
65 var n int
66
67 doc := DocW()
68 sel := doc.Find("li")
69
70 nodes := sel.Nodes
71 nodes = append(nodes, nodes...)
72 nodes = append(nodes, nodes...)
73 sel = doc.Find("xyz")
74 b.ResetTimer()
75
76 for i := 0; i < b.N; i++ {
77 if n == 0 {
78 n = sel.AddNodes(nodes...).Length()
79 } else {
80 sel.AddNodes(nodes...)
81 }
82 }
83 if n != 373 {
84 b.Fatalf("want 373, got %d", n)
85 }
86 }
87
88 func BenchmarkAndSelf(b *testing.B) {
89 var n int
90
91 b.StopTimer()
92 sel := DocB().Find("dd").Parent()
93 b.StartTimer()
94 for i := 0; i < b.N; i++ {
95 if n == 0 {
96 n = sel.AndSelf().Length()
97 } else {
98 sel.AndSelf()
99 }
100 }
101 if n != 44 {
102 b.Fatalf("want 44, got %d", n)
103 }
104 }
105
View as plain text