mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-11-10 04:57:26 +01:00
graphics: Allow errors in TestImageLinear (#492)
This commit is contained in:
parent
595e654123
commit
e1640f5ae0
@ -168,7 +168,7 @@ func TestColorMConcatSelf(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func abs(x uint32) uint32 {
|
||||
func absU32(x uint32) uint32 {
|
||||
if x < 0 {
|
||||
return -x
|
||||
}
|
||||
@ -217,8 +217,8 @@ func TestColorMApply(t *testing.T) {
|
||||
out := c.ColorM.Apply(c.In)
|
||||
r0, g0, b0, a0 := out.RGBA()
|
||||
r1, g1, b1, a1 := c.Out.RGBA()
|
||||
if abs(r0-r1) > c.Delta || abs(g0-g1) > c.Delta ||
|
||||
abs(b0-b1) > c.Delta || abs(a0-a1) > c.Delta {
|
||||
if absU32(r0-r1) > c.Delta || absU32(g0-g1) > c.Delta ||
|
||||
absU32(b0-b1) > c.Delta || absU32(a0-a1) > c.Delta {
|
||||
println(r0, r1)
|
||||
t.Errorf("%v.Apply(%v) = %v, want %v", c.ColorM, c.In, out, c.Out)
|
||||
}
|
||||
|
@ -71,11 +71,23 @@ func openEbitenImage(path string) (*Image, image.Image, error) {
|
||||
return eimg, img, nil
|
||||
}
|
||||
|
||||
func diff(x, y uint8) uint8 {
|
||||
if x <= y {
|
||||
return y - x
|
||||
func abs(x int) int {
|
||||
if x < 0 {
|
||||
return -x
|
||||
}
|
||||
return x - y
|
||||
return x
|
||||
}
|
||||
|
||||
// sameColors compares c1 and c2 and returns a boolean value indicating
|
||||
// if the two colors are (almost) same.
|
||||
//
|
||||
// Pixels read from GPU might include errors (#492), and
|
||||
// sameColors considers such errors as delta.
|
||||
func sameColors(c1, c2 color.RGBA, delta int) bool {
|
||||
return abs(int(c1.R)-int(c2.R)) <= delta &&
|
||||
abs(int(c1.G)-int(c2.G)) <= delta &&
|
||||
abs(int(c1.B)-int(c2.B)) <= delta &&
|
||||
abs(int(c1.A)-int(c2.A)) <= delta
|
||||
}
|
||||
|
||||
func TestImagePixels(t *testing.T) {
|
||||
@ -184,7 +196,7 @@ func TestImageComposition(t *testing.T) {
|
||||
for i := 0; i < w; i++ {
|
||||
c1 := img_12_3.At(i, j).(color.RGBA)
|
||||
c2 := img_1_23.At(i, j).(color.RGBA)
|
||||
if 1 < diff(c1.R, c2.R) || 1 < diff(c1.G, c2.G) || 1 < diff(c1.B, c2.B) || 1 < diff(c1.A, c2.A) {
|
||||
if !sameColors(c1, c2, 1) {
|
||||
t.Errorf("img_12_3.At(%d, %d) = %#v; img_1_23.At(%[1]d, %[2]d) = %#[4]v", i, j, c1, c2)
|
||||
}
|
||||
if c1.A == 0 {
|
||||
@ -603,7 +615,7 @@ func TestImageLinear(t *testing.T) {
|
||||
c := color.RGBAModel.Convert(dst.At(i, j)).(color.RGBA)
|
||||
got := c.G
|
||||
want := uint8(0)
|
||||
if got != want {
|
||||
if abs(int(c.G)-int(want)) > 1 {
|
||||
t.Errorf("dst At(%d, %d).G: got %#v, want: %#v", i, j, got, want)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user