1package goquery 2 3import ( 4 "testing" 5) 6 7func BenchmarkFirst(b *testing.B) { 8 b.StopTimer() 9 sel := DocB().Find("dd") 10 b.StartTimer() 11 for i := 0; i < b.N; i++ { 12 sel.First() 13 } 14} 15 16func BenchmarkLast(b *testing.B) { 17 b.StopTimer() 18 sel := DocB().Find("dd") 19 b.StartTimer() 20 for i := 0; i < b.N; i++ { 21 sel.Last() 22 } 23} 24 25func BenchmarkEq(b *testing.B) { 26 b.StopTimer() 27 sel := DocB().Find("dd") 28 j := 0 29 b.StartTimer() 30 for i := 0; i < b.N; i++ { 31 sel.Eq(j) 32 if j++; j >= sel.Length() { 33 j = 0 34 } 35 } 36} 37 38func BenchmarkSlice(b *testing.B) { 39 b.StopTimer() 40 sel := DocB().Find("dd") 41 j := 0 42 b.StartTimer() 43 for i := 0; i < b.N; i++ { 44 sel.Slice(j, j+4) 45 if j++; j >= (sel.Length() - 4) { 46 j = 0 47 } 48 } 49} 50 51func BenchmarkGet(b *testing.B) { 52 b.StopTimer() 53 sel := DocB().Find("dd") 54 j := 0 55 b.StartTimer() 56 for i := 0; i < b.N; i++ { 57 sel.Get(j) 58 if j++; j >= sel.Length() { 59 j = 0 60 } 61 } 62} 63 64func BenchmarkIndex(b *testing.B) { 65 var j int 66 67 b.StopTimer() 68 sel := DocB().Find("#Main") 69 b.StartTimer() 70 for i := 0; i < b.N; i++ { 71 j = sel.Index() 72 } 73 if j != 3 { 74 b.Fatalf("want 3, got %d", j) 75 } 76} 77 78func BenchmarkIndexSelector(b *testing.B) { 79 var j int 80 81 b.StopTimer() 82 sel := DocB().Find("#manual-nav dl dd:nth-child(1)") 83 b.StartTimer() 84 for i := 0; i < b.N; i++ { 85 j = sel.IndexSelector("dd") 86 } 87 if j != 4 { 88 b.Fatalf("want 4, got %d", j) 89 } 90} 91 92func BenchmarkIndexOfNode(b *testing.B) { 93 var j int 94 95 b.StopTimer() 96 sel := DocB().Find("span a") 97 sel2 := DocB().Find("span a:nth-child(3)") 98 n := sel2.Get(0) 99 b.StartTimer() 100 for i := 0; i < b.N; i++ { 101 j = sel.IndexOfNode(n) 102 } 103 if j != 2 { 104 b.Fatalf("want 2, got %d", j) 105 } 106} 107 108func BenchmarkIndexOfSelection(b *testing.B) { 109 var j int 110 b.StopTimer() 111 sel := DocB().Find("span a") 112 sel2 := DocB().Find("span a:nth-child(3)") 113 b.StartTimer() 114 for i := 0; i < b.N; i++ { 115 j = sel.IndexOfSelection(sel2) 116 } 117 if j != 2 { 118 b.Fatalf("want 2, got %d", j) 119 } 120} 121