diff options
Diffstat (limited to 'src/pkg/image/draw/clip_test.go')
-rw-r--r-- | src/pkg/image/draw/clip_test.go | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/src/pkg/image/draw/clip_test.go b/src/pkg/image/draw/clip_test.go deleted file mode 100644 index 65381f72f..000000000 --- a/src/pkg/image/draw/clip_test.go +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package draw - -import ( - "image" - "testing" -) - -type clipTest struct { - desc string - r, dr, sr, mr image.Rectangle - sp, mp image.Point - nilMask bool - r0 image.Rectangle - sp0, mp0 image.Point -} - -var clipTests = []clipTest{ - // The following tests all have a nil mask. - { - "basic", - image.Rect(0, 0, 100, 100), - image.Rect(0, 0, 100, 100), - image.Rect(0, 0, 100, 100), - image.ZR, - image.ZP, - image.ZP, - true, - image.Rect(0, 0, 100, 100), - image.ZP, - image.ZP, - }, - { - "clip dr", - image.Rect(0, 0, 100, 100), - image.Rect(40, 40, 60, 60), - image.Rect(0, 0, 100, 100), - image.ZR, - image.ZP, - image.ZP, - true, - image.Rect(40, 40, 60, 60), - image.Pt(40, 40), - image.ZP, - }, - { - "clip sr", - image.Rect(0, 0, 100, 100), - image.Rect(0, 0, 100, 100), - image.Rect(20, 20, 80, 80), - image.ZR, - image.ZP, - image.ZP, - true, - image.Rect(20, 20, 80, 80), - image.Pt(20, 20), - image.ZP, - }, - { - "clip dr and sr", - image.Rect(0, 0, 100, 100), - image.Rect(0, 0, 50, 100), - image.Rect(20, 20, 80, 80), - image.ZR, - image.ZP, - image.ZP, - true, - image.Rect(20, 20, 50, 80), - image.Pt(20, 20), - image.ZP, - }, - { - "clip dr and sr, sp outside sr (top-left)", - image.Rect(0, 0, 100, 100), - image.Rect(0, 0, 50, 100), - image.Rect(20, 20, 80, 80), - image.ZR, - image.Pt(15, 8), - image.ZP, - true, - image.Rect(5, 12, 50, 72), - image.Pt(20, 20), - image.ZP, - }, - { - "clip dr and sr, sp outside sr (middle-left)", - image.Rect(0, 0, 100, 100), - image.Rect(0, 0, 50, 100), - image.Rect(20, 20, 80, 80), - image.ZR, - image.Pt(15, 66), - image.ZP, - true, - image.Rect(5, 0, 50, 14), - image.Pt(20, 66), - image.ZP, - }, - { - "clip dr and sr, sp outside sr (bottom-left)", - image.Rect(0, 0, 100, 100), - image.Rect(0, 0, 50, 100), - image.Rect(20, 20, 80, 80), - image.ZR, - image.Pt(15, 91), - image.ZP, - true, - image.ZR, - image.Pt(15, 91), - image.ZP, - }, - { - "clip dr and sr, sp inside sr", - image.Rect(0, 0, 100, 100), - image.Rect(0, 0, 50, 100), - image.Rect(20, 20, 80, 80), - image.ZR, - image.Pt(44, 33), - image.ZP, - true, - image.Rect(0, 0, 36, 47), - image.Pt(44, 33), - image.ZP, - }, - - // The following tests all have a non-nil mask. - { - "basic mask", - image.Rect(0, 0, 80, 80), - image.Rect(20, 0, 100, 80), - image.Rect(0, 0, 50, 49), - image.Rect(0, 0, 46, 47), - image.ZP, - image.ZP, - false, - image.Rect(20, 0, 46, 47), - image.Pt(20, 0), - image.Pt(20, 0), - }, - // TODO(nigeltao): write more tests. -} - -func TestClip(t *testing.T) { - dst0 := image.NewRGBA(image.Rect(0, 0, 100, 100)) - src0 := image.NewRGBA(image.Rect(0, 0, 100, 100)) - mask0 := image.NewRGBA(image.Rect(0, 0, 100, 100)) - for _, c := range clipTests { - dst := dst0.SubImage(c.dr).(*image.RGBA) - src := src0.SubImage(c.sr).(*image.RGBA) - var mask image.Image - if !c.nilMask { - mask = mask0.SubImage(c.mr) - } - r, sp, mp := c.r, c.sp, c.mp - clip(dst, &r, src, &sp, mask, &mp) - - // Check that the actual results equal the expected results. - if !c.r0.Eq(r) { - t.Errorf("%s: clip rectangle want %v got %v", c.desc, c.r0, r) - continue - } - if !c.sp0.Eq(sp) { - t.Errorf("%s: sp want %v got %v", c.desc, c.sp0, sp) - continue - } - if !c.nilMask { - if !c.mp0.Eq(mp) { - t.Errorf("%s: mp want %v got %v", c.desc, c.mp0, mp) - continue - } - } - - // Check that the clipped rectangle is contained by the dst / src / mask - // rectangles, in their respective co-ordinate spaces. - if !r.In(c.dr) { - t.Errorf("%s: c.dr %v does not contain r %v", c.desc, c.dr, r) - } - // sr is r translated into src's co-ordinate space. - sr := r.Add(c.sp.Sub(c.dr.Min)) - if !sr.In(c.sr) { - t.Errorf("%s: c.sr %v does not contain sr %v", c.desc, c.sr, sr) - } - if !c.nilMask { - // mr is r translated into mask's co-ordinate space. - mr := r.Add(c.mp.Sub(c.dr.Min)) - if !mr.In(c.mr) { - t.Errorf("%s: c.mr %v does not contain mr %v", c.desc, c.mr, mr) - } - } - } -} |