aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/PuerkitoBio/goquery/bench_example_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/PuerkitoBio/goquery/bench_example_test.go')
-rw-r--r--vendor/github.com/PuerkitoBio/goquery/bench_example_test.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/vendor/github.com/PuerkitoBio/goquery/bench_example_test.go b/vendor/github.com/PuerkitoBio/goquery/bench_example_test.go
new file mode 100644
index 0000000..ba9ebe5
--- /dev/null
+++ b/vendor/github.com/PuerkitoBio/goquery/bench_example_test.go
@@ -0,0 +1,40 @@
+package goquery
+
+import (
+ "bytes"
+ "fmt"
+ "strconv"
+ "testing"
+)
+
+func BenchmarkMetalReviewExample(b *testing.B) {
+ var n int
+ var buf bytes.Buffer
+
+ b.StopTimer()
+ doc := loadDoc("metalreview.html")
+ b.StartTimer()
+ for i := 0; i < b.N; i++ {
+ doc.Find(".slider-row:nth-child(1) .slider-item").Each(func(i int, s *Selection) {
+ var band, title string
+ var score float64
+ var e error
+
+ n++
+ // For each item found, get the band, title and score, and print it
+ band = s.Find("strong").Text()
+ title = s.Find("em").Text()
+ if score, e = strconv.ParseFloat(s.Find(".score").Text(), 64); e != nil {
+ // Not a valid float, ignore score
+ if n <= 4 {
+ buf.WriteString(fmt.Sprintf("Review %d: %s - %s.\n", i, band, title))
+ }
+ } else {
+ // Print all, including score
+ if n <= 4 {
+ buf.WriteString(fmt.Sprintf("Review %d: %s - %s (%2.1f).\n", i, band, title, score))
+ }
+ }
+ })
+ }
+}