diff options
Diffstat (limited to 'Godeps/_workspace/src/github.com/disintegration/imaging/tools_test.go')
-rw-r--r-- | Godeps/_workspace/src/github.com/disintegration/imaging/tools_test.go | 605 |
1 files changed, 0 insertions, 605 deletions
diff --git a/Godeps/_workspace/src/github.com/disintegration/imaging/tools_test.go b/Godeps/_workspace/src/github.com/disintegration/imaging/tools_test.go deleted file mode 100644 index 2dace6299..000000000 --- a/Godeps/_workspace/src/github.com/disintegration/imaging/tools_test.go +++ /dev/null @@ -1,605 +0,0 @@ -package imaging - -import ( - "image" - "testing" -) - -func TestCrop(t *testing.T) { - td := []struct { - desc string - src image.Image - r image.Rectangle - want *image.NRGBA - }{ - { - "Crop 2x3 2x1", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 1, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - }, - }, - image.Rect(-1, 0, 1, 1), - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 1), - Stride: 2 * 4, - Pix: []uint8{ - 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, - }, - }, - }, - } - for _, d := range td { - got := Crop(d.src, d.r) - want := d.want - if !compareNRGBA(got, want, 0) { - t.Errorf("test [%s] failed: %#v", d.desc, got) - } - } -} - -func TestCropCenter(t *testing.T) { - td := []struct { - desc string - src image.Image - w, h int - want *image.NRGBA - }{ - { - "CropCenter 2x3 2x1", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 1, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - }, - }, - 2, 1, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 1), - Stride: 2 * 4, - Pix: []uint8{ - 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, - }, - }, - }, - { - "CropCenter 2x3 0x1", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 1, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - }, - }, - 0, 1, - &image.NRGBA{ - Rect: image.Rect(0, 0, 0, 0), - Stride: 0, - Pix: []uint8{}, - }, - }, - { - "CropCenter 2x3 5x5", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 1, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - }, - }, - 5, 5, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 3), - Stride: 2 * 4, - Pix: []uint8{ - 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - }, - }, - }, - } - for _, d := range td { - got := CropCenter(d.src, d.w, d.h) - want := d.want - if !compareNRGBA(got, want, 0) { - t.Errorf("test [%s] failed: %#v", d.desc, got) - } - } -} - -func TestCropAnchor(t *testing.T) { - td := []struct { - desc string - src image.Image - w, h int - anchor Anchor - want *image.NRGBA - }{ - { - "CropAnchor 4x4 2x2 TopLeft", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 2, 2, - TopLeft, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - }, - }, - }, - { - "CropAnchor 4x4 2x2 Top", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 2, 2, - Top, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, - }, - }, - }, - { - "CropAnchor 4x4 2x2 TopRight", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 2, 2, - TopRight, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - }, - }, - }, - { - "CropAnchor 4x4 2x2 Left", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 2, 2, - Left, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - }, - }, - }, - { - "CropAnchor 4x4 2x2 Center", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 2, 2, - Center, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, - 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, - }, - }, - }, - { - "CropAnchor 4x4 2x2 Right", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 2, 2, - Right, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - }, - }, - }, - { - "CropAnchor 4x4 2x2 BottomLeft", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 2, 2, - BottomLeft, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - }, - }, - }, - { - "CropAnchor 4x4 2x2 Bottom", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 2, 2, - Bottom, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, - 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, - }, - }, - }, - { - "CropAnchor 4x4 2x2 BottomRight", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 2, 2, - BottomRight, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - }, - { - "CropAnchor 4x4 0x0 BottomRight", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 0, 0, - BottomRight, - &image.NRGBA{ - Rect: image.Rect(0, 0, 0, 0), - Stride: 0, - Pix: []uint8{}, - }, - }, - { - "CropAnchor 4x4 100x100 BottomRight", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 100, 100, - BottomRight, - &image.NRGBA{ - Rect: image.Rect(0, 0, 4, 4), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - }, - { - "CropAnchor 4x4 1x100 BottomRight", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 1, 100, - BottomRight, - &image.NRGBA{ - Rect: image.Rect(0, 0, 1, 4), - Stride: 1 * 4, - Pix: []uint8{ - 0x0c, 0x0d, 0x0e, 0x0f, - 0x1c, 0x1d, 0x1e, 0x1f, - 0x2c, 0x2d, 0x2e, 0x2f, - 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - }, - { - "CropAnchor 4x4 0x100 BottomRight", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 3, 3), - Stride: 4 * 4, - Pix: []uint8{ - 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, - 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, - 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, - }, - }, - 0, 100, - BottomRight, - &image.NRGBA{ - Rect: image.Rect(0, 0, 0, 0), - Stride: 0, - Pix: []uint8{}, - }, - }, - } - for _, d := range td { - got := CropAnchor(d.src, d.w, d.h, d.anchor) - want := d.want - if !compareNRGBA(got, want, 0) { - t.Errorf("test [%s] failed: %#v", d.desc, got) - } - } -} - -func TestPaste(t *testing.T) { - td := []struct { - desc string - src1 image.Image - src2 image.Image - p image.Point - want *image.NRGBA - }{ - { - "Paste 2x3 2x1", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 1, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - }, - }, - &image.NRGBA{ - Rect: image.Rect(1, 1, 3, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, - }, - }, - image.Pt(-1, 0), - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 3), - Stride: 2 * 4, - Pix: []uint8{ - 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - }, - }, - }, - } - for _, d := range td { - got := Paste(d.src1, d.src2, d.p) - want := d.want - if !compareNRGBA(got, want, 0) { - t.Errorf("test [%s] failed: %#v", d.desc, got) - } - } -} - -func TestPasteCenter(t *testing.T) { - td := []struct { - desc string - src1 image.Image - src2 image.Image - want *image.NRGBA - }{ - { - "PasteCenter 2x3 2x1", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 1, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, - 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - }, - }, - &image.NRGBA{ - Rect: image.Rect(1, 1, 3, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, - }, - }, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 3), - Stride: 2 * 4, - Pix: []uint8{ - 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, - 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - }, - }, - }, - } - for _, d := range td { - got := PasteCenter(d.src1, d.src2) - want := d.want - if !compareNRGBA(got, want, 0) { - t.Errorf("test [%s] failed: %#v", d.desc, got) - } - } -} - -func TestOverlay(t *testing.T) { - td := []struct { - desc string - src1 image.Image - src2 image.Image - p image.Point - a float64 - want *image.NRGBA - }{ - { - "Overlay 2x3 2x1 1.0", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 1, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, - 0x60, 0x00, 0x90, 0xff, 0xff, 0x00, 0x99, 0x7f, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - }, - }, - &image.NRGBA{ - Rect: image.Rect(1, 1, 3, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0x20, 0x40, 0x80, 0x7f, 0xaa, 0xbb, 0xcc, 0xff, - }, - }, - image.Pt(-1, 0), - 1.0, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 3), - Stride: 2 * 4, - Pix: []uint8{ - 0x00, 0x11, 0x22, 0x33, 0xcc, 0xdd, 0xee, 0xff, - 0x40, 0x1f, 0x88, 0xff, 0xaa, 0xbb, 0xcc, 0xff, - 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, - }, - }, - }, - { - "Overlay 2x2 2x2 0.5", - &image.NRGBA{ - Rect: image.Rect(-1, -1, 1, 1), - Stride: 2 * 4, - Pix: []uint8{ - 0xff, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, - 0x00, 0x00, 0xff, 0xff, 0x20, 0x20, 0x20, 0x00, - }, - }, - &image.NRGBA{ - Rect: image.Rect(-1, -1, 1, 1), - Stride: 2 * 4, - Pix: []uint8{ - 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x00, 0xff, 0x20, 0x20, 0x20, 0xff, - }, - }, - image.Pt(-1, -1), - 0.5, - &image.NRGBA{ - Rect: image.Rect(0, 0, 2, 2), - Stride: 2 * 4, - Pix: []uint8{ - 0xff, 0x7f, 0x7f, 0xff, 0x00, 0xff, 0x00, 0xff, - 0x7f, 0x7f, 0x7f, 0xff, 0x20, 0x20, 0x20, 0x7f, - }, - }, - }, - } - for _, d := range td { - got := Overlay(d.src1, d.src2, d.p, d.a) - want := d.want - if !compareNRGBA(got, want, 1) { - t.Errorf("test [%s] failed: %#v", d.desc, got) - } - } -} |