go-opengl-pixel/imdraw/imdraw_test.go

97 lines
1.9 KiB
Go
Raw Normal View History

2017-07-02 12:22:40 -05:00
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)
}
})
}
}