draw: have TestSrcTranslationInvariance work on smaller images.
Before/after:
$ go test
PASS
ok golang.org/x/image/draw 1.173s
$ go test
PASS
ok golang.org/x/image/draw 0.225s
Change-Id: I5b4742f045870db9353da1d85b0677be992cb347
Reviewed-on: https://go-review.googlesource.com/7712
Reviewed-by: Rob Pike <r@golang.org>
diff --git a/draw/scale_test.go b/draw/scale_test.go
index 4ed60d6..b112643 100644
--- a/draw/scale_test.go
+++ b/draw/scale_test.go
@@ -196,6 +196,10 @@
if err != nil {
t.Fatalf("Decode: %v", err)
}
+ sr := image.Rect(2, 3, 16, 12)
+ if !sr.In(src.Bounds()) {
+ t.Fatalf("src bounds too small: got %v", src.Bounds())
+ }
qs := []Interpolator{
NearestNeighbor,
ApproxBiLinear,
@@ -216,23 +220,23 @@
for _, transform := range []bool{false, true} {
for _, q := range qs {
- want := image.NewRGBA(image.Rect(0, 0, 200, 200))
+ want := image.NewRGBA(image.Rect(0, 0, 20, 20))
if transform {
- q.Transform(want, m00, src, src.Bounds(), nil)
+ q.Transform(want, m00, src, sr, nil)
} else {
- q.Scale(want, want.Bounds(), src, src.Bounds(), nil)
+ q.Scale(want, want.Bounds(), src, sr, nil)
}
for _, delta := range deltas {
tsrc := &translatedImage{src, delta}
- got := image.NewRGBA(image.Rect(0, 0, 200, 200))
+ got := image.NewRGBA(image.Rect(0, 0, 20, 20))
if transform {
m := matMul(m00, &f64.Aff3{
1, 0, -float64(delta.X),
0, 1, -float64(delta.Y),
})
- q.Transform(got, &m, tsrc, tsrc.Bounds(), nil)
+ q.Transform(got, &m, tsrc, sr.Add(delta), nil)
} else {
- q.Scale(got, got.Bounds(), tsrc, tsrc.Bounds(), nil)
+ q.Scale(got, got.Bounds(), tsrc, sr.Add(delta), nil)
}
if !bytes.Equal(got.Pix, want.Pix) {
t.Errorf("pix differ for delta=%v, transform=%t, q=%T", delta, transform, q)