mirror of
https://github.com/willnorris/imageproxy.git
synced 2026-05-24 11:25:12 +02:00
add test for trimEdges with circle image
This commit is contained in:
parent
3a6c85148a
commit
5c2594a139
1 changed files with 57 additions and 0 deletions
|
|
@ -410,3 +410,60 @@ func TestTrimEdgesSingleColorImage(t *testing.T) {
|
||||||
t.Errorf("trimEdges() = %v, want %v", got.Bounds(), want.Bounds())
|
t.Errorf("trimEdges() = %v, want %v", got.Bounds(), want.Bounds())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestTrimEdgesCircle(t *testing.T) {
|
||||||
|
// Define colors for better readability
|
||||||
|
white := color.NRGBA{255, 255, 255, 255}
|
||||||
|
red := color.NRGBA{255, 0, 0, 255}
|
||||||
|
|
||||||
|
// Create a 9x9 image with a white background and a larger red circle in the center
|
||||||
|
src := newImage(9, 9,
|
||||||
|
white, white, white, white, white, white, white, white, white,
|
||||||
|
white, white, white, red, red, red, white, white, white,
|
||||||
|
white, white, red, red, red, red, red, white, white,
|
||||||
|
white, red, red, red, red, red, red, red, white,
|
||||||
|
white, red, red, red, red, red, red, red, white,
|
||||||
|
white, red, red, red, red, red, red, red, white,
|
||||||
|
white, white, red, red, red, red, red, white, white,
|
||||||
|
white, white, white, red, red, red, white, white, white,
|
||||||
|
white, white, white, white, white, white, white, white, white,
|
||||||
|
)
|
||||||
|
|
||||||
|
// Expected result: a trimmed 7x7 image containing only the circle
|
||||||
|
want := newImage(7, 7,
|
||||||
|
white, white, red, red, red, white, white,
|
||||||
|
white, red, red, red, red, red, white,
|
||||||
|
red, red, red, red, red, red, red,
|
||||||
|
red, red, red, red, red, red, red,
|
||||||
|
red, red, red, red, red, red, red,
|
||||||
|
white, red, red, red, red, red, white,
|
||||||
|
white, white, red, red, red, white, white,
|
||||||
|
)
|
||||||
|
|
||||||
|
// Apply the trimEdges function
|
||||||
|
got := trimEdges(src)
|
||||||
|
|
||||||
|
// Compare pixel data
|
||||||
|
if !compareImages(got, want) {
|
||||||
|
t.Errorf("trimEdges() pixel data does not match expected result")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func compareImages(img1, img2 image.Image) bool {
|
||||||
|
bounds1 := img1.Bounds()
|
||||||
|
bounds2 := img2.Bounds()
|
||||||
|
if !bounds1.Eq(bounds2) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
for y := bounds1.Min.Y; y < bounds1.Max.Y; y++ {
|
||||||
|
for x := bounds1.Min.X; x < bounds1.Max.X; x++ {
|
||||||
|
r1, g1, b1, a1 := img1.At(x, y).RGBA()
|
||||||
|
r2, g2, b2, a2 := img2.At(x, y).RGBA()
|
||||||
|
if r1 != r2 || g1 != g2 || b1 != b2 || a1 != a2 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue