add imdraw benchmarks
This commit is contained in:
parent
7f4bc89dc4
commit
95f90d3b0d
|
@ -0,0 +1,96 @@
|
|||
package imdraw_test
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"testing"
|
||||
|
||||
"github.com/faiface/pixel"
|
||||
"github.com/faiface/pixel/imdraw"
|
||||
)
|
||||
|
||||
func BenchmarkPush(b *testing.B) {
|
||||
imd := imdraw.New(nil)
|
||||
for i := 0; i < b.N; i++ {
|
||||
imd.Push(pixel.V(123.1, 99.4))
|
||||
}
|
||||
}
|
||||
|
||||
func pointLists(counts ...int) [][]pixel.Vec {
|
||||
lists := make([][]pixel.Vec, len(counts))
|
||||
for i := range lists {
|
||||
lists[i] = make([]pixel.Vec, counts[i])
|
||||
for j := range lists[i] {
|
||||
lists[i][j] = pixel.V(
|
||||
rand.Float64()*5000-2500,
|
||||
rand.Float64()*5000-2500,
|
||||
)
|
||||
}
|
||||
}
|
||||
return lists
|
||||
}
|
||||
|
||||
func BenchmarkLine(b *testing.B) {
|
||||
lists := pointLists(2, 5, 10, 100, 1000)
|
||||
for _, pts := range lists {
|
||||
b.Run(fmt.Sprintf("%d", len(pts)), func(b *testing.B) {
|
||||
imd := imdraw.New(nil)
|
||||
for i := 0; i < b.N; i++ {
|
||||
imd.Push(pts...)
|
||||
imd.Line(1)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkRectangle(b *testing.B) {
|
||||
lists := pointLists(2, 10, 100, 1000)
|
||||
for _, pts := range lists {
|
||||
b.Run(fmt.Sprintf("%d", len(pts)), func(b *testing.B) {
|
||||
imd := imdraw.New(nil)
|
||||
for i := 0; i < b.N; i++ {
|
||||
imd.Push(pts...)
|
||||
imd.Rectangle(0)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkPolygon(b *testing.B) {
|
||||
lists := pointLists(3, 10, 100, 1000)
|
||||
for _, pts := range lists {
|
||||
b.Run(fmt.Sprintf("%d", len(pts)), func(b *testing.B) {
|
||||
imd := imdraw.New(nil)
|
||||
for i := 0; i < b.N; i++ {
|
||||
imd.Push(pts...)
|
||||
imd.Polygon(0)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkEllipseFill(b *testing.B) {
|
||||
lists := pointLists(1, 10, 100, 1000)
|
||||
for _, pts := range lists {
|
||||
b.Run(fmt.Sprintf("%d", len(pts)), func(b *testing.B) {
|
||||
imd := imdraw.New(nil)
|
||||
for i := 0; i < b.N; i++ {
|
||||
imd.Push(pts...)
|
||||
imd.Ellipse(pixel.V(50, 100), 0)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func BenchmarkEllipseOutline(b *testing.B) {
|
||||
lists := pointLists(1, 10, 100, 1000)
|
||||
for _, pts := range lists {
|
||||
b.Run(fmt.Sprintf("%d", len(pts)), func(b *testing.B) {
|
||||
imd := imdraw.New(nil)
|
||||
for i := 0; i < b.N; i++ {
|
||||
imd.Push(pts...)
|
||||
imd.Ellipse(pixel.V(50, 100), 1)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue