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  }