byteio - littleendianwriter_test.go
1 package byteio
2
3 import (
4 "bytes"
5 "io"
6 "testing"
7 )
8
9 func TestWriteLittleEndian(t *testing.T) {
10 const testData = "\x0d\x0c\x0b\x0a\x0d\x0c\x08\x07\x06\x05\x04\x03\x02\x01A"
11 var b bytes.Buffer
12 w := LittleEndianWriter{Writer: &b}
13
14 if n, err := w.WriteUint32(168496141); err != nil {
15 t.Errorf("test 1: unexpected error: %s", err)
16 } else if n != 4 {
17 t.Errorf("test 1: expecting to write 4 bytes, read %d", n)
18 }
19 if n, err := w.WriteUint16(3085); err != nil {
20 t.Errorf("test 2: unexpected error: %s", err)
21 } else if n != 2 {
22 t.Errorf("test 2: expecting to write 2 bytes, read %d", n)
23 }
24 if n, err := w.WriteUint64(72623859790382856); err != nil {
25 t.Errorf("test 3: unexpected error: %s", err)
26 } else if n != 8 {
27 t.Errorf("test 3: expecting to write 8 bytes, read %d", n)
28 }
29 if n, err := w.WriteUint8(65); err != nil {
30 t.Errorf("test 4: unexpected error: %s", err)
31 } else if n != 1 {
32 t.Errorf("test 4: expecting to write 1 byte, read %d", n)
33 }
34 if str := b.String(); str != testData {
35 t.Errorf("expecting %q, got %q", testData, str)
36 }
37 }
38
39 func BenchmarkWriteLittleUint8(b *testing.B) {
40 w := LittleEndianWriter{Writer: io.Discard}
41 b.ResetTimer()
42 for i := 0; i < b.N; i++ {
43 w.WriteUint8(1)
44 }
45 }
46
47 func BenchmarkWriteLittleInt8(b *testing.B) {
48 w := LittleEndianWriter{Writer: io.Discard}
49 b.ResetTimer()
50 for i := 0; i < b.N; i++ {
51 w.WriteInt8(1)
52 }
53 }
54
55 func BenchmarkWriteLittleUint16(b *testing.B) {
56 w := LittleEndianWriter{Writer: io.Discard}
57 b.ResetTimer()
58 for i := 0; i < b.N; i++ {
59 w.WriteUint16(1)
60 }
61 }
62
63 func BenchmarkWriteLittleInt16(b *testing.B) {
64 w := LittleEndianWriter{Writer: io.Discard}
65 b.ResetTimer()
66 for i := 0; i < b.N; i++ {
67 w.WriteInt16(1)
68 }
69 }
70
71 func BenchmarkWriteLittleUint32(b *testing.B) {
72 w := LittleEndianWriter{Writer: io.Discard}
73 b.ResetTimer()
74 for i := 0; i < b.N; i++ {
75 w.WriteUint32(1)
76 }
77 }
78
79 func BenchmarkWriteLittleInt32(b *testing.B) {
80 w := LittleEndianWriter{Writer: io.Discard}
81 b.ResetTimer()
82 for i := 0; i < b.N; i++ {
83 w.WriteInt32(1)
84 }
85 }
86
87 func BenchmarkWriteLittleUint64(b *testing.B) {
88 w := LittleEndianWriter{Writer: io.Discard}
89 b.ResetTimer()
90 for i := 0; i < b.N; i++ {
91 w.WriteUint64(1)
92 }
93 }
94
95 func BenchmarkWriteLittleInt64(b *testing.B) {
96 w := LittleEndianWriter{Writer: io.Discard}
97 b.ResetTimer()
98 for i := 0; i < b.N; i++ {
99 w.WriteInt64(1)
100 }
101 }
102