git.lucas.co / go_mono
git clone https://git.lucas.co/go_mono.git

tiff/buffer_test.go (763B)

 1 // Copyright 2011 The Go Authors. 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 tiff
 6 
 7 import (
 8 	"io"
 9 	"strings"
10 	"testing"
11 )
12 
13 var readAtTests = []struct {
14 	n   int
15 	off int64
16 	s   string
17 	err error
18 }{
19 	{2, 0, "ab", nil},
20 	{6, 0, "abcdef", nil},
21 	{3, 3, "def", nil},
22 	{3, 5, "f", io.EOF},
23 	{3, 6, "", io.EOF},
24 }
25 
26 func TestReadAt(t *testing.T) {
27 	r := newReaderAt(strings.NewReader("abcdef"))
28 	b := make([]byte, 10)
29 	for _, test := range readAtTests {
30 		n, err := r.ReadAt(b[:test.n], test.off)
31 		s := string(b[:n])
32 		if s != test.s || err != test.err {
33 			t.Errorf("buffer.ReadAt(<%v bytes>, %v): got %v, %q; want %v, %q", test.n, test.off, err, s, test.err, test.s)
34 		}
35 	}
36 }