summaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/code.google.com/p/graphics-go/graphics/scale_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'Godeps/_workspace/src/code.google.com/p/graphics-go/graphics/scale_test.go')
-rw-r--r--Godeps/_workspace/src/code.google.com/p/graphics-go/graphics/scale_test.go153
1 files changed, 153 insertions, 0 deletions
diff --git a/Godeps/_workspace/src/code.google.com/p/graphics-go/graphics/scale_test.go b/Godeps/_workspace/src/code.google.com/p/graphics-go/graphics/scale_test.go
new file mode 100644
index 000000000..9c2468f11
--- /dev/null
+++ b/Godeps/_workspace/src/code.google.com/p/graphics-go/graphics/scale_test.go
@@ -0,0 +1,153 @@
+// Copyright 2011 The Graphics-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 graphics
+
+import (
+ "code.google.com/p/graphics-go/graphics/graphicstest"
+ "image"
+ "testing"
+
+ _ "image/png"
+)
+
+var scaleOneColorTests = []transformOneColorTest{
+ {
+ "down-half",
+ 1, 1,
+ 2, 2,
+ nil,
+ []uint8{
+ 0x80, 0x00,
+ 0x00, 0x80,
+ },
+ []uint8{
+ 0x40,
+ },
+ },
+ {
+ "up-double",
+ 4, 4,
+ 2, 2,
+ nil,
+ []uint8{
+ 0x80, 0x00,
+ 0x00, 0x80,
+ },
+ []uint8{
+ 0x80, 0x60, 0x20, 0x00,
+ 0x60, 0x50, 0x30, 0x20,
+ 0x20, 0x30, 0x50, 0x60,
+ 0x00, 0x20, 0x60, 0x80,
+ },
+ },
+ {
+ "up-doublewidth",
+ 4, 2,
+ 2, 2,
+ nil,
+ []uint8{
+ 0x80, 0x00,
+ 0x00, 0x80,
+ },
+ []uint8{
+ 0x80, 0x60, 0x20, 0x00,
+ 0x00, 0x20, 0x60, 0x80,
+ },
+ },
+ {
+ "up-doubleheight",
+ 2, 4,
+ 2, 2,
+ nil,
+ []uint8{
+ 0x80, 0x00,
+ 0x00, 0x80,
+ },
+ []uint8{
+ 0x80, 0x00,
+ 0x60, 0x20,
+ 0x20, 0x60,
+ 0x00, 0x80,
+ },
+ },
+ {
+ "up-partial",
+ 3, 3,
+ 2, 2,
+ nil,
+ []uint8{
+ 0x80, 0x00,
+ 0x00, 0x80,
+ },
+ []uint8{
+ 0x80, 0x40, 0x00,
+ 0x40, 0x40, 0x40,
+ 0x00, 0x40, 0x80,
+ },
+ },
+}
+
+func TestScaleOneColor(t *testing.T) {
+ for _, oc := range scaleOneColorTests {
+ dst := oc.newDst()
+ src := oc.newSrc()
+ if err := Scale(dst, src); err != nil {
+ t.Errorf("scale %s: %v", oc.desc, err)
+ continue
+ }
+
+ if !checkTransformTest(t, &oc, dst) {
+ continue
+ }
+ }
+}
+
+func TestScaleEmpty(t *testing.T) {
+ empty := image.NewRGBA(image.Rect(0, 0, 0, 0))
+ if err := Scale(empty, empty); err != nil {
+ t.Fatal(err)
+ }
+}
+
+func TestScaleGopher(t *testing.T) {
+ dst := image.NewRGBA(image.Rect(0, 0, 100, 150))
+
+ src, err := graphicstest.LoadImage("../testdata/gopher.png")
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ // Down-sample.
+ if err := Scale(dst, src); err != nil {
+ t.Fatal(err)
+ }
+ cmp, err := graphicstest.LoadImage("../testdata/gopher-100x150.png")
+ if err != nil {
+ t.Error(err)
+ return
+ }
+ err = graphicstest.ImageWithinTolerance(dst, cmp, 0)
+ if err != nil {
+ t.Error(err)
+ return
+ }
+
+ // Up-sample.
+ dst = image.NewRGBA(image.Rect(0, 0, 500, 750))
+ if err := Scale(dst, src); err != nil {
+ t.Fatal(err)
+ }
+ cmp, err = graphicstest.LoadImage("../testdata/gopher-500x750.png")
+ if err != nil {
+ t.Error(err)
+ return
+ }
+ err = graphicstest.ImageWithinTolerance(dst, cmp, 0)
+ if err != nil {
+ t.Error(err)
+ return
+ }
+}