github.com/cellofellow/gopkg@v0.0.0-20140722061823-eec0544a62ad/image/jxr/writer_test.go (about) 1 // Copyright 2014 <chaishushan{AT}gmail.com>. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package jxr 6 7 import ( 8 "bytes" 9 "image" 10 "io/ioutil" 11 "os" 12 "testing" 13 ) 14 15 func openImage(filename string) (image.Image, error) { 16 f, err := os.Open(testdataDir + filename) 17 if err != nil { 18 return nil, err 19 } 20 defer f.Close() 21 return Decode(f, nil) 22 } 23 24 func TestEncode(t *testing.T) { 25 img0, err := openImage("video-001.wdp") 26 if err != nil { 27 t.Fatal(err) 28 } 29 30 buf := new(bytes.Buffer) 31 err = Encode(buf, img0, nil) 32 if err != nil { 33 t.Fatal(err) 34 } 35 36 img1, err := Decode(buf, nil) 37 if err != nil { 38 t.Fatal(err) 39 } 40 41 compare(t, img0, img1) 42 } 43 44 // BenchmarkEncode benchmarks the encoding of an image. 45 func BenchmarkEncode(b *testing.B) { 46 img, err := openImage("video-001.wdp") 47 if err != nil { 48 b.Fatal(err) 49 } 50 s := img.Bounds().Size() 51 b.SetBytes(int64(s.X * s.Y * 4)) 52 b.ResetTimer() 53 for i := 0; i < b.N; i++ { 54 Encode(ioutil.Discard, img, nil) 55 } 56 }