1package goquery
2
3import (
4	"testing"
5)
6
7func BenchmarkIs(b *testing.B) {
8	var y bool
9
10	b.StopTimer()
11	sel := DocW().Find("li")
12	b.StartTimer()
13	for i := 0; i < b.N; i++ {
14		y = sel.Is(".toclevel-2")
15	}
16	if !y {
17		b.Fatal("want true")
18	}
19}
20
21func BenchmarkIsPositional(b *testing.B) {
22	var y bool
23
24	b.StopTimer()
25	sel := DocW().Find("li")
26	b.StartTimer()
27	for i := 0; i < b.N; i++ {
28		y = sel.Is("li:nth-child(2)")
29	}
30	if !y {
31		b.Fatal("want true")
32	}
33}
34
35func BenchmarkIsFunction(b *testing.B) {
36	var y bool
37
38	b.StopTimer()
39	sel := DocW().Find(".toclevel-1")
40	f := func(i int, s *Selection) bool {
41		return i == 8
42	}
43	b.StartTimer()
44	for i := 0; i < b.N; i++ {
45		y = sel.IsFunction(f)
46	}
47	if !y {
48		b.Fatal("want true")
49	}
50}
51
52func BenchmarkIsSelection(b *testing.B) {
53	var y bool
54
55	b.StopTimer()
56	sel := DocW().Find("li")
57	sel2 := DocW().Find(".toclevel-2")
58	b.StartTimer()
59	for i := 0; i < b.N; i++ {
60		y = sel.IsSelection(sel2)
61	}
62	if !y {
63		b.Fatal("want true")
64	}
65}
66
67func BenchmarkIsNodes(b *testing.B) {
68	var y bool
69
70	b.StopTimer()
71	sel := DocW().Find("li")
72	sel2 := DocW().Find(".toclevel-2")
73	nodes := sel2.Nodes
74	b.StartTimer()
75	for i := 0; i < b.N; i++ {
76		y = sel.IsNodes(nodes...)
77	}
78	if !y {
79		b.Fatal("want true")
80	}
81}
82
83func BenchmarkHasClass(b *testing.B) {
84	var y bool
85
86	b.StopTimer()
87	sel := DocW().Find("span")
88	b.StartTimer()
89	for i := 0; i < b.N; i++ {
90		y = sel.HasClass("official")
91	}
92	if !y {
93		b.Fatal("want true")
94	}
95}
96
97func BenchmarkContains(b *testing.B) {
98	var y bool
99
100	b.StopTimer()
101	sel := DocW().Find("span.url")
102	sel2 := DocW().Find("a[rel=\"nofollow\"]")
103	node := sel2.Nodes[0]
104	b.StartTimer()
105	for i := 0; i < b.N; i++ {
106		y = sel.Contains(node)
107	}
108	if !y {
109		b.Fatal("want true")
110	}
111}
112