Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(504)

Delta Between Two Patch Sets: tiff/writer_test.go

Issue 6278050: code review 6278050: go.image/tiff: add a benchmark for the encoder (Closed)
Left Patch Set: diff -r 715494631546 https://code.google.com/p/go.image Created 12 years, 10 months ago
Right Patch Set: diff -r 715494631546 https://code.google.com/p/go.image Created 12 years, 10 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « no previous file | no next file » | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 // Copyright 2012 The Go Authors. All rights reserved. 1 // Copyright 2012 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style 2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file. 3 // license that can be found in the LICENSE file.
4 4
5 package tiff 5 package tiff
6 6
7 import ( 7 import (
8 "bytes" 8 "bytes"
9 "image" 9 "image"
10 "io/ioutil"
10 "os" 11 "os"
11 "testing" 12 "testing"
12 ) 13 )
13 14
14 var roundtripTests = []string{ 15 var roundtripTests = []string{
15 "video-001.tiff", 16 "video-001.tiff",
16 "bw-packbits.tiff", 17 "bw-packbits.tiff",
17 } 18 }
18 19
19 func openImage(filename string) (image.Image, error) { 20 func openImage(filename string) (image.Image, error) {
20 f, err := os.Open(testdataDir + filename) 21 f, err := os.Open(testdataDir + filename)
21 if err != nil { 22 if err != nil {
22 return nil, err 23 return nil, err
23 } 24 }
24 defer f.Close() 25 defer f.Close()
25 return Decode(f) 26 return Decode(f)
26 } 27 }
27 28
28 func TestRoundtrip(t *testing.T) { 29 func TestRoundtrip(t *testing.T) {
29 for _, filename := range roundtripTests { 30 for _, filename := range roundtripTests {
30 » » img, err := openImage(testdataDir + filename) 31 » » img, err := openImage(filename)
31 if err != nil { 32 if err != nil {
32 t.Fatal(err) 33 t.Fatal(err)
33 } 34 }
34 out := new(bytes.Buffer) 35 out := new(bytes.Buffer)
35 err = Encode(out, img) 36 err = Encode(out, img)
36 if err != nil { 37 if err != nil {
37 t.Fatal(err) 38 t.Fatal(err)
38 } 39 }
39 40
40 img2, err := Decode(&buffer{buf: out.Bytes()}) 41 img2, err := Decode(&buffer{buf: out.Bytes()})
41 if err != nil { 42 if err != nil {
42 t.Fatal(err) 43 t.Fatal(err)
43 } 44 }
44 compare(t, img, img2) 45 compare(t, img, img2)
45 } 46 }
46 } 47 }
47 48
48 // BenchmarkEncode benchmarks the encoding of an image. 49 // BenchmarkEncode benchmarks the encoding of an image.
49 func BenchmarkEncode(b *testing.B) { 50 func BenchmarkEncode(b *testing.B) {
50 » b.StopTimer() 51 » img, err := openImage("video-001.tiff")
51 » img, err := openImage(testdataDir + "video-001.tiff")
52 if err != nil { 52 if err != nil {
53 b.Fatal(err) 53 b.Fatal(err)
54 } 54 }
55 » out := new(bytes.Buffer) 55 » s := img.Bounds().Size()
56 » b.StartTimer() 56 » b.SetBytes(int64(s.X * s.Y * 4))
57 » b.ResetTimer()
57 for i := 0; i < b.N; i++ { 58 for i := 0; i < b.N; i++ {
58 » » out.Truncate(0) 59 » » Encode(ioutil.Discard, img)
59 » » err = Encode(out, img)
60 » » if err != nil {
61 » » » b.Fatal(err)
62 » » }
63 } 60 }
64 b.SetBytes(int64(out.Len()))
65 } 61 }
LEFTRIGHT
« no previous file | no next file » | Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Toggle Comments ('s')

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b