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