mirror of https://github.com/dexidp/dex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
979 B
42 lines
979 B
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)) |
|
} |
|
} |
|
}) |
|
} |
|
b.Log(buf.String()) |
|
b.Logf("MetalReviewExample=%d", n) |
|
}
|
|
|