2012-08-02 19:59:40 +00:00
|
|
|
package resize
|
|
|
|
|
|
|
|
import (
|
|
|
|
"image"
|
|
|
|
"image/color"
|
2012-09-19 17:32:00 +00:00
|
|
|
"runtime"
|
2012-08-02 19:59:40 +00:00
|
|
|
"testing"
|
|
|
|
)
|
|
|
|
|
2012-08-03 16:12:26 +00:00
|
|
|
var img = image.NewGray16(image.Rect(0, 0, 3, 3))
|
|
|
|
|
2012-08-31 22:21:10 +00:00
|
|
|
func init() {
|
2012-09-19 17:32:00 +00:00
|
|
|
runtime.GOMAXPROCS(runtime.NumCPU())
|
2012-08-03 16:12:26 +00:00
|
|
|
img.Set(1, 1, color.White)
|
2012-08-31 22:21:10 +00:00
|
|
|
}
|
2012-08-03 16:12:26 +00:00
|
|
|
|
2012-08-31 22:21:10 +00:00
|
|
|
func Test_Nearest(t *testing.T) {
|
2012-08-09 16:56:42 +00:00
|
|
|
m := Resize(6, 0, img, NearestNeighbor)
|
2012-11-28 01:38:19 +00:00
|
|
|
if m.At(1, 1) == m.At(2, 2) {
|
2012-08-03 16:12:26 +00:00
|
|
|
t.Fail()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_Param1(t *testing.T) {
|
2012-08-09 16:56:42 +00:00
|
|
|
m := Resize(0, 0, img, NearestNeighbor)
|
|
|
|
if m.Bounds() != img.Bounds() {
|
2012-08-03 16:12:26 +00:00
|
|
|
t.Fail()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_Param2(t *testing.T) {
|
2012-08-09 16:56:42 +00:00
|
|
|
m := Resize(100, 0, img, NearestNeighbor)
|
|
|
|
if m.Bounds() != image.Rect(0, 0, 100, 100) {
|
2012-08-03 16:12:26 +00:00
|
|
|
t.Fail()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_ZeroImg(t *testing.T) {
|
|
|
|
zeroImg := image.NewGray16(image.Rect(0, 0, 0, 0))
|
|
|
|
|
2012-08-09 16:56:42 +00:00
|
|
|
m := Resize(0, 0, zeroImg, NearestNeighbor)
|
|
|
|
if m.Bounds() != zeroImg.Bounds() {
|
2012-08-02 19:59:40 +00:00
|
|
|
t.Fail()
|
|
|
|
}
|
|
|
|
}
|
2012-08-31 22:21:10 +00:00
|
|
|
|
2013-03-10 09:58:08 +00:00
|
|
|
func Test_CorrectResize(t *testing.T) {
|
2013-03-10 10:55:50 +00:00
|
|
|
zeroImg := image.NewGray16(image.Rect(0, 0, 256, 256))
|
2013-03-10 09:58:08 +00:00
|
|
|
|
|
|
|
m := Resize(60, 0, zeroImg, NearestNeighbor)
|
2013-03-10 10:55:50 +00:00
|
|
|
if m.Bounds() != image.Rect(0, 0, 60, 60) {
|
2013-03-10 09:58:08 +00:00
|
|
|
t.Fail()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-08-31 22:21:10 +00:00
|
|
|
func Benchmark_BigResize(b *testing.B) {
|
2012-09-19 17:32:00 +00:00
|
|
|
var m image.Image
|
|
|
|
for i := 0; i < b.N; i++ {
|
|
|
|
m = Resize(1000, 1000, img, Lanczos3)
|
|
|
|
}
|
2012-08-31 22:21:10 +00:00
|
|
|
m.At(0, 0)
|
|
|
|
}
|
2012-09-19 19:03:56 +00:00
|
|
|
|
|
|
|
func Benchmark_Reduction(b *testing.B) {
|
|
|
|
largeImg := image.NewRGBA(image.Rect(0, 0, 1000, 1000))
|
|
|
|
|
|
|
|
var m image.Image
|
|
|
|
for i := 0; i < b.N; i++ {
|
2012-09-21 18:02:25 +00:00
|
|
|
m = Resize(300, 300, largeImg, Bicubic)
|
2012-09-19 19:03:56 +00:00
|
|
|
}
|
|
|
|
m.At(0, 0)
|
|
|
|
}
|