From 996c335c4a51cb04a41526fa34e8e1dbca4640bf Mon Sep 17 00:00:00 2001 From: Nigel Tao Date: Tue, 31 Jan 2012 14:02:27 +1100 Subject: [PATCH] go.image/{bmp,tiff}: move tiff/testdata to testdata. Add a "compare to golden PNG" test for BMP and TIFF. R=rsc CC=golang-dev https://golang.org/cl/5601054 --- bmp/reader_test.go | 59 +++++++++++++ {tiff/testdata => testdata}/bw-deflate.tiff | Bin {tiff/testdata => testdata}/bw-packbits.tiff | Bin .../bw-uncompressed.tiff | Bin {tiff/testdata => testdata}/no_rps.tiff | Bin .../video-001-uncompressed.tiff | Bin testdata/video-001.bmp | Bin 0 -> 46610 bytes testdata/video-001.png | Bin 0 -> 29228 bytes testdata/video-001.tiff | Bin 0 -> 30810 bytes tiff/reader_test.go | 80 +++++++++++++----- 10 files changed, 116 insertions(+), 23 deletions(-) create mode 100644 bmp/reader_test.go rename {tiff/testdata => testdata}/bw-deflate.tiff (100%) rename {tiff/testdata => testdata}/bw-packbits.tiff (100%) rename {tiff/testdata => testdata}/bw-uncompressed.tiff (100%) rename {tiff/testdata => testdata}/no_rps.tiff (100%) rename {tiff/testdata => testdata}/video-001-uncompressed.tiff (100%) create mode 100644 testdata/video-001.bmp create mode 100644 testdata/video-001.png create mode 100644 testdata/video-001.tiff diff --git a/bmp/reader_test.go b/bmp/reader_test.go new file mode 100644 index 0000000..5a52ab6 --- /dev/null +++ b/bmp/reader_test.go @@ -0,0 +1,59 @@ +// Copyright 2012 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 bmp + +import ( + "image" + "os" + "testing" + + _ "image/png" +) + +const testdataDir = "../testdata/" + +func compare(t *testing.T, img0, img1 image.Image) { + b := img1.Bounds() + if !b.Eq(img0.Bounds()) { + t.Fatalf("wrong image size: want %s, got %s", img0.Bounds(), b) + } + for y := b.Min.Y; y < b.Max.Y; y++ { + for x := b.Min.X; x < b.Max.X; x++ { + c0 := img0.At(x, y) + c1 := img1.At(x, y) + r0, g0, b0, a0 := c0.RGBA() + r1, g1, b1, a1 := c1.RGBA() + if r0 != r1 || g0 != g1 || b0 != b1 || a0 != a1 { + t.Fatalf("pixel at (%d, %d) has wrong color: want %v, got %v", x, y, c0, c1) + } + } + } +} + +// TestDecode tests that decoding a PNG image and a BMP image result in the +// same pixel data. +func TestDecode(t *testing.T) { + f0, err := os.Open(testdataDir + "video-001.png") + if err != nil { + t.Fatal(err) + } + defer f0.Close() + img0, _, err := image.Decode(f0) + if err != nil { + t.Fatal(err) + } + + f1, err := os.Open(testdataDir + "video-001.bmp") + if err != nil { + t.Fatal(err) + } + defer f1.Close() + img1, _, err := image.Decode(f1) + if err != nil { + t.Fatal(err) + } + + compare(t, img0, img1) +} diff --git a/tiff/testdata/bw-deflate.tiff b/testdata/bw-deflate.tiff similarity index 100% rename from tiff/testdata/bw-deflate.tiff rename to testdata/bw-deflate.tiff diff --git a/tiff/testdata/bw-packbits.tiff b/testdata/bw-packbits.tiff similarity index 100% rename from tiff/testdata/bw-packbits.tiff rename to testdata/bw-packbits.tiff diff --git a/tiff/testdata/bw-uncompressed.tiff b/testdata/bw-uncompressed.tiff similarity index 100% rename from tiff/testdata/bw-uncompressed.tiff rename to testdata/bw-uncompressed.tiff diff --git a/tiff/testdata/no_rps.tiff b/testdata/no_rps.tiff similarity index 100% rename from tiff/testdata/no_rps.tiff rename to testdata/no_rps.tiff diff --git a/tiff/testdata/video-001-uncompressed.tiff b/testdata/video-001-uncompressed.tiff similarity index 100% rename from tiff/testdata/video-001-uncompressed.tiff rename to testdata/video-001-uncompressed.tiff diff --git a/testdata/video-001.bmp b/testdata/video-001.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ca3dd42a7c9157d2cd4c6775c91968c8867dd7f7 GIT binary patch literal 46610 zcmaI82V7Iv8#jIu_6UJMNFWeMNFaNXK?Zv-2MA8w)>gZ$d(=@^)vC2_ZQTnLoG5NV z+w`v(39 zhz>16^@k9m_;md_Pe4N+e~>n1f54P|RPr)EOhPAXiY@aQ5tP{IXd8ofWUgAaJaD{H(0W?Nb04;*x5$H{0yHnXN{!HXT%g8JF zVa)9A#iJ+;6(UfP55tEUjmS(wKolZHyO8)UB!LSl#)TY3@MF5Ug}Ar}6TE|w4+Z%L zx>9J~K@5Ltcu+7ohR@=OA|x`lP#7r_MJF5L4eGckiAJC)2pF)CK6*bIc7Ql|BSQ2k zRm7im5`QU0zwC1xe}pxuDraV;e#l~(ws%CNOs5oOCMmPClL~s}r>E)?R2-Rrqm~Qf zR8jyi(Ws7#lLL$@m4p|~;zWgq(kbKsl0U_d78)8B5fK_5?oX!?h(x^;LmZ_JGhpZd zSO5*^SS(#)w_3XdV8J1RL$jp|KmZfY0NMZ=d>l?X4*^&^T;u4lSWN(z11__htyZ(e zZn2r$JFM1Lhoi;r`0VJkG`CutS{!Xwtf{>XK5lb3tbiEc+-AZ|%@}6+)cOuH**hH= zX72yw8w@UNvD@JobJ(yBQ|rS!SGTTNks^;J5?mu$F+9GM6cmQsDMa5; z0x1l6(L5+Tdy!WW`~5Zqd76OkYHc38zYPq!wVIQm|B%2D?KSI$rvk6^vnI3|3fM1 zn=;an6$k}PtR(!ngEXlEjoa@rzA9?+(Y#rQdrjJ`)c2Fg5|ZMS>GAT!M0I**Qbwvi zIW9)RXUT*dg(L>3m}pQZCFzV#B>8+6mm9_m3l5@^sk9(QWH^(>0xD8MLkKP|dZV$e zt<7cy3_D=#0XNKQ1s*y9wA!5vwA-w98xRk;^glcV+`4cE%$V2BuD8LPnBCsg*57 zka$uh1g{vP58pFL=H@R#ZsEu~#4|J!QF$m(hytaEA}8V^B~pYgL3~%wNKdlBogyTX zVhFyGe!-kbj!+^}q^IV@8xvUUFaiscOWhCZhCuJo_ zRWg38lou-#Xk*33I3)mRFsL*dsYt}(#Y99#(r9!FJv5NXj%0D8nCu8jC>=2D(xsp( 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 literal 0 HcmV?d00001 diff --git a/testdata/video-001.png b/testdata/video-001.png new file mode 100644 index 0000000000000000000000000000000000000000..d3468bbe8fc346b0dca8559a6702d06f34b59bce GIT binary patch literal 29228 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 T5A$Y}00000NkvXXu0mjf=&L0^ literal 0 HcmV?d00001 diff --git a/testdata/video-001.tiff b/testdata/video-001.tiff new file mode 100644 index 0000000000000000000000000000000000000000..0dd6cd9313321bc05f1c51c113e8bd20326dcd1d GIT binary patch literal 30810 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 literal 0 HcmV?d00001 diff --git a/tiff/reader_test.go b/tiff/reader_test.go index ee5dafd..c1c4c53 100644 --- a/tiff/reader_test.go +++ b/tiff/reader_test.go @@ -10,8 +10,12 @@ import ( "os" "strings" "testing" + + _ "image/png" ) +const testdataDir = "../testdata/" + // Read makes *buffer implements io.Reader, so that we can pass one to Decode. func (*buffer) Read([]byte) (int, error) { panic("unimplemented") @@ -21,7 +25,7 @@ func (*buffer) Read([]byte) (int, error) { // The tag is mandatory according to the spec but some software omits // it in the case of a single strip. func TestNoRPS(t *testing.T) { - f, err := os.Open("testdata/no_rps.tiff") + f, err := os.Open(testdataDir + "no_rps.tiff") if err != nil { t.Fatal(err) } @@ -53,6 +57,50 @@ func TestUnpackBits(t *testing.T) { } } +func compare(t *testing.T, img0, img1 image.Image) { + b := img1.Bounds() + if !b.Eq(img0.Bounds()) { + t.Fatalf("wrong image size: want %s, got %s", img0.Bounds(), b) + } + for y := b.Min.Y; y < b.Max.Y; y++ { + for x := b.Min.X; x < b.Max.X; x++ { + c0 := img0.At(x, y) + c1 := img1.At(x, y) + r0, g0, b0, a0 := c0.RGBA() + r1, g1, b1, a1 := c1.RGBA() + if r0 != r1 || g0 != g1 || b0 != b1 || a0 != a1 { + t.Fatalf("pixel at (%d, %d) has wrong color: want %v, got %v", x, y, c0, c1) + } + } + } +} + +// TestDecode tests that decoding a PNG image and a TIFF image result in the +// same pixel data. +func TestDecode(t *testing.T) { + f0, err := os.Open(testdataDir + "video-001.png") + if err != nil { + t.Fatal(err) + } + defer f0.Close() + img0, _, err := image.Decode(f0) + if err != nil { + t.Fatal(err) + } + + f1, err := os.Open(testdataDir + "video-001.tiff") + if err != nil { + t.Fatal(err) + } + defer f1.Close() + img1, _, err := image.Decode(f1) + if err != nil { + t.Fatal(err) + } + + compare(t, img0, img1) +} + // TestDecompress tests that decoding some TIFF images that use different // compression formats result in the same pixel data. func TestDecompress(t *testing.T) { @@ -63,7 +111,7 @@ func TestDecompress(t *testing.T) { } var img0 image.Image for _, name := range decompressTests { - f, err := os.Open("testdata/" + name) + f, err := os.Open(testdataDir + name) if err != nil { t.Fatal(err) } @@ -80,31 +128,14 @@ func TestDecompress(t *testing.T) { if err != nil { t.Fatalf("decoding %s: %v", name, err) } - b := img1.Bounds() - // Compare images. - if !b.Eq(img0.Bounds()) { - t.Fatalf("wrong image size: want %s, got %s", img0.Bounds(), b) - } - for y := b.Min.Y; y < b.Max.Y; y++ { - for x := b.Min.X; x < b.Max.X; x++ { - c0 := img0.At(x, y) - c1 := img1.At(x, y) - r0, g0, b0, a0 := c0.RGBA() - r1, g1, b1, a1 := c1.RGBA() - if r0 != r1 || g0 != g1 || b0 != b1 || a0 != a1 { - t.Fatalf("pixel at (%d, %d) has wrong color: want %v, got %v", x, y, c0, c1) - } - } - } + compare(t, img0, img1) } } -const filename = "testdata/video-001-uncompressed.tiff" - -// BenchmarkDecode benchmarks the decoding of an image. -func BenchmarkDecode(b *testing.B) { +// benchmarkDecode benchmarks the decoding of an image. +func benchmarkDecode(b *testing.B, filename string) { b.StopTimer() - contents, err := ioutil.ReadFile(filename) + contents, err := ioutil.ReadFile(testdataDir + filename) if err != nil { panic(err) } @@ -117,3 +148,6 @@ func BenchmarkDecode(b *testing.B) { } } } + +func BenchmarkDecodeCompressed(b *testing.B) { benchmarkDecode(b, "video-001.tiff") } +func BenchmarkDecodeUncompressed(b *testing.B) { benchmarkDecode(b, "video-001-uncompressed.tiff") }