48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
package resize
|
|
|
|
import (
|
|
"image"
|
|
"runtime"
|
|
"testing"
|
|
)
|
|
|
|
func init() {
|
|
runtime.GOMAXPROCS(runtime.NumCPU())
|
|
}
|
|
|
|
var thumbnailTests = []struct {
|
|
origWidth int
|
|
origHeight int
|
|
maxWidth uint
|
|
maxHeight uint
|
|
expectedWidth uint
|
|
expectedHeight uint
|
|
}{
|
|
{5, 5, 10, 10, 5, 5},
|
|
{10, 10, 5, 5, 5, 5},
|
|
{10, 50, 10, 10, 2, 10},
|
|
{50, 10, 10, 10, 10, 2},
|
|
{50, 100, 60, 90, 45, 90},
|
|
{120, 100, 60, 90, 60, 50},
|
|
{200, 250, 200, 150, 120, 150},
|
|
}
|
|
|
|
func TestThumbnail(t *testing.T) {
|
|
for i, tt := range thumbnailTests {
|
|
img := image.NewGray16(image.Rect(0, 0, tt.origWidth, tt.origHeight))
|
|
|
|
outImg := Thumbnail(tt.maxWidth, tt.maxHeight, img, NearestNeighbor)
|
|
|
|
newWidth := uint(outImg.Bounds().Dx())
|
|
newHeight := uint(outImg.Bounds().Dy())
|
|
if newWidth != tt.expectedWidth ||
|
|
newHeight != tt.expectedHeight {
|
|
t.Errorf("%d. Thumbnail(%v, %v, img, NearestNeighbor) => "+
|
|
"width: %v, height: %v, want width: %v, height: %v",
|
|
i, tt.maxWidth, tt.maxHeight,
|
|
newWidth, newHeight, tt.expectedWidth, tt.expectedHeight,
|
|
)
|
|
}
|
|
}
|
|
}
|