diff options
Diffstat (limited to 'vendor/github.com/PuerkitoBio/goquery/bench_expand_test.go')
-rw-r--r-- | vendor/github.com/PuerkitoBio/goquery/bench_expand_test.go | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/vendor/github.com/PuerkitoBio/goquery/bench_expand_test.go b/vendor/github.com/PuerkitoBio/goquery/bench_expand_test.go new file mode 100644 index 0000000..61f1947 --- /dev/null +++ b/vendor/github.com/PuerkitoBio/goquery/bench_expand_test.go @@ -0,0 +1,104 @@ +package goquery + +import ( + "testing" +) + +func BenchmarkAdd(b *testing.B) { + var n int + + b.StopTimer() + sel := DocB().Find("dd") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.Add("h2[title]").Length() + } else { + sel.Add("h2[title]") + } + } + if n != 43 { + b.Fatalf("want 43, got %d", n) + } +} + +func BenchmarkAddSelection(b *testing.B) { + var n int + + b.StopTimer() + sel := DocB().Find("dd") + sel2 := DocB().Find("h2[title]") + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.AddSelection(sel2).Length() + } else { + sel.AddSelection(sel2) + } + } + if n != 43 { + b.Fatalf("want 43, got %d", n) + } +} + +func BenchmarkAddNodes(b *testing.B) { + var n int + + b.StopTimer() + sel := DocB().Find("dd") + sel2 := DocB().Find("h2[title]") + nodes := sel2.Nodes + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.AddNodes(nodes...).Length() + } else { + sel.AddNodes(nodes...) + } + } + if n != 43 { + b.Fatalf("want 43, got %d", n) + } +} + +func BenchmarkAddNodesBig(b *testing.B) { + var n int + + doc := DocW() + sel := doc.Find("li") + // make nodes > 1000 + nodes := sel.Nodes + nodes = append(nodes, nodes...) + nodes = append(nodes, nodes...) + sel = doc.Find("xyz") + b.ResetTimer() + + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.AddNodes(nodes...).Length() + } else { + sel.AddNodes(nodes...) + } + } + if n != 373 { + b.Fatalf("want 373, got %d", n) + } +} + +func BenchmarkAndSelf(b *testing.B) { + var n int + + b.StopTimer() + sel := DocB().Find("dd").Parent() + b.StartTimer() + for i := 0; i < b.N; i++ { + if n == 0 { + n = sel.AndSelf().Length() + } else { + sel.AndSelf() + } + } + if n != 44 { + b.Fatalf("want 44, got %d", n) + } +} |