github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/goquery/bench_query_test.go (about) 1 package goquery 2 3 import ( 4 "testing" 5 ) 6 7 func 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 b.Logf("Is=%v", y) 17 } 18 19 func BenchmarkIsPositional(b *testing.B) { 20 var y bool 21 22 b.StopTimer() 23 sel := DocW().Find("li") 24 b.StartTimer() 25 for i := 0; i < b.N; i++ { 26 y = sel.Is("li:nth-child(2)") 27 } 28 b.Logf("IsPositional=%v", y) 29 } 30 31 func BenchmarkIsFunction(b *testing.B) { 32 var y bool 33 34 b.StopTimer() 35 sel := DocW().Find(".toclevel-1") 36 f := func(i int, s *Selection) bool { 37 return i == 8 38 } 39 b.StartTimer() 40 for i := 0; i < b.N; i++ { 41 y = sel.IsFunction(f) 42 } 43 b.Logf("IsFunction=%v", y) 44 } 45 46 func BenchmarkIsSelection(b *testing.B) { 47 var y bool 48 49 b.StopTimer() 50 sel := DocW().Find("li") 51 sel2 := DocW().Find(".toclevel-2") 52 b.StartTimer() 53 for i := 0; i < b.N; i++ { 54 y = sel.IsSelection(sel2) 55 } 56 b.Logf("IsSelection=%v", y) 57 } 58 59 func BenchmarkIsNodes(b *testing.B) { 60 var y bool 61 62 b.StopTimer() 63 sel := DocW().Find("li") 64 sel2 := DocW().Find(".toclevel-2") 65 nodes := sel2.Nodes 66 b.StartTimer() 67 for i := 0; i < b.N; i++ { 68 y = sel.IsNodes(nodes...) 69 } 70 b.Logf("IsNodes=%v", y) 71 } 72 73 func BenchmarkHasClass(b *testing.B) { 74 var y bool 75 76 b.StopTimer() 77 sel := DocW().Find("span") 78 b.StartTimer() 79 for i := 0; i < b.N; i++ { 80 y = sel.HasClass("official") 81 } 82 b.Logf("HasClass=%v", y) 83 } 84 85 func BenchmarkContains(b *testing.B) { 86 var y bool 87 88 b.StopTimer() 89 sel := DocW().Find("span.url") 90 sel2 := DocW().Find("a[rel=\"nofollow\"]") 91 node := sel2.Nodes[0] 92 b.StartTimer() 93 for i := 0; i < b.N; i++ { 94 y = sel.Contains(node) 95 } 96 b.Logf("Contains=%v", y) 97 }