mirror of
https://github.com/esimov/caire.git
synced 2025-09-27 04:45:53 +08:00
Code refactoring and improvements
This commit is contained in:
100
processor_test.go
Normal file
100
processor_test.go
Normal file
@@ -0,0 +1,100 @@
|
||||
package caire
|
||||
|
||||
import (
|
||||
"image"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestResize_ShrinkImageWidth(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
img := image.NewNRGBA(image.Rect(0, 0, imgWidth, imgHeight))
|
||||
var c = NewCarver(img.Bounds().Dx(), img.Bounds().Dy())
|
||||
newWidth := imgWidth / 2
|
||||
|
||||
p.NewWidth = newWidth
|
||||
p.NewHeight = imgHeight
|
||||
|
||||
for x := 0; x < newWidth; x++ {
|
||||
width, height := img.Bounds().Max.X, img.Bounds().Max.Y
|
||||
c = NewCarver(width, height)
|
||||
c.ComputeSeams(p, img)
|
||||
seams := c.FindLowestEnergySeams(p)
|
||||
img = c.RemoveSeam(img, seams, p.Debug)
|
||||
}
|
||||
imgWidth := img.Bounds().Max.X
|
||||
|
||||
assert.Equal(imgWidth, newWidth)
|
||||
}
|
||||
|
||||
func TestResize_ShrinkImageHeight(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
img := image.NewNRGBA(image.Rect(0, 0, imgWidth, imgHeight))
|
||||
var c = NewCarver(img.Bounds().Dx(), img.Bounds().Dy())
|
||||
newHeight := imgHeight / 2
|
||||
|
||||
p.NewWidth = imgWidth
|
||||
p.NewHeight = newHeight
|
||||
|
||||
img = c.RotateImage90(img)
|
||||
for x := 0; x < newHeight; x++ {
|
||||
width, height := img.Bounds().Max.X, img.Bounds().Max.Y
|
||||
c = NewCarver(width, height)
|
||||
c.ComputeSeams(p, img)
|
||||
seams := c.FindLowestEnergySeams(p)
|
||||
img = c.RemoveSeam(img, seams, p.Debug)
|
||||
}
|
||||
img = c.RotateImage270(img)
|
||||
imgHeight := img.Bounds().Max.Y
|
||||
|
||||
assert.Equal(imgHeight, newHeight)
|
||||
}
|
||||
|
||||
func TestResize_EnlargeImageWidth(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
img := image.NewNRGBA(image.Rect(0, 0, imgWidth, imgHeight))
|
||||
var c = NewCarver(img.Bounds().Dx(), img.Bounds().Dy())
|
||||
newWidth := imgWidth * 2
|
||||
|
||||
p.NewWidth = newWidth
|
||||
p.NewHeight = imgHeight
|
||||
|
||||
for x := 0; x < newWidth; x++ {
|
||||
width, height := img.Bounds().Max.X, img.Bounds().Max.Y
|
||||
c = NewCarver(width, height)
|
||||
c.ComputeSeams(p, img)
|
||||
seams := c.FindLowestEnergySeams(p)
|
||||
img = c.AddSeam(img, seams, p.Debug)
|
||||
}
|
||||
imgWidth := img.Bounds().Max.X - img.Bounds().Dx()
|
||||
|
||||
assert.NotEqual(imgWidth, newWidth)
|
||||
}
|
||||
|
||||
func TestResize_EnlargeImageHeight(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
img := image.NewNRGBA(image.Rect(0, 0, imgWidth, imgHeight))
|
||||
var c = NewCarver(img.Bounds().Dx(), img.Bounds().Dy())
|
||||
newHeight := imgHeight * 2
|
||||
|
||||
p.NewWidth = imgWidth
|
||||
p.NewHeight = newHeight
|
||||
|
||||
img = c.RotateImage90(img)
|
||||
for x := 0; x < newHeight; x++ {
|
||||
width, height := img.Bounds().Max.X, img.Bounds().Max.Y
|
||||
c = NewCarver(width, height)
|
||||
c.ComputeSeams(p, img)
|
||||
seams := c.FindLowestEnergySeams(p)
|
||||
img = c.AddSeam(img, seams, p.Debug)
|
||||
}
|
||||
img = c.RotateImage270(img)
|
||||
imgHeight := img.Bounds().Max.Y - img.Bounds().Dy()
|
||||
|
||||
assert.NotEqual(imgHeight, newHeight)
|
||||
}
|
Reference in New Issue
Block a user