aboutsummaryrefslogtreecommitdiff
path: root/bitreader_test.go
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+BiSaXa@users.noreply.github.com>2022-09-11 10:08:36 +0300
committerGitHub <noreply@github.com>2022-09-11 10:08:36 +0300
commit3afa6d7edf32164e884a247a5a9937ecdaed4f64 (patch)
tree6265637c712678b1e16f4be07326d20dab6dfc0d /bitreader_test.go
parentMerge pull request #1 from BiSaXa/pull-req-templates (diff)
parentadded go doc (diff)
downloadbitreader-1.1.0.tar.gz
bitreader-1.1.0.tar.bz2
bitreader-1.1.0.zip
Merge pull request #2 from BiSaXa/devv1.1.0
Merge dev branch onto main
Diffstat (limited to 'bitreader_test.go')
-rw-r--r--bitreader_test.go144
1 files changed, 124 insertions, 20 deletions
diff --git a/bitreader_test.go b/bitreader_test.go
index 5d344d2..85b0c98 100644
--- a/bitreader_test.go
+++ b/bitreader_test.go
@@ -1,17 +1,84 @@
1package bitreader 1package bitreader
2 2
3import ( 3import (
4 "bytes"
4 "testing" 5 "testing"
5) 6)
6 7
7// 01110001, 00001101, 00000000, 00000000, 10100010, 00011011, 00000000, 00000000, 11001100 8// 01110001, 00001101, 00000000, 00000000, 10100010, 00011011, 00000000, 00000000, 11001100
8var TestArray = [...]byte{113, 13, 0, 0, 162, 27, 0, 0, 204} 9var TestArray = [...]byte{113, 13, 0, 0, 162, 27, 0, 0, 204}
9 10
11func TestTryReadFloat32(t *testing.T) {
12 bitreader := Reader(bytes.NewReader(TestArray[:]), false)
13 expected := []float32{6.98198182157e+29, -2.10064170919e-18}
14 for i := range expected {
15 value := bitreader.TryReadFloat32()
16 if value != expected[i] {
17 t.Fatalf("TryReadFloat32 FAIL for index %d: Expected %f, Got %f", i, expected[i], value)
18 }
19 }
20}
21
22func TestTryReadFloat64(t *testing.T) {
23 bitreader := Reader(bytes.NewReader(TestArray[:]), false)
24 expected := []float64{3.68828741038253948851462939603e+236}
25 for i := range expected {
26 value := bitreader.TryReadFloat64()
27 if value != expected[i] {
28 t.Fatalf("TryReadFloat64 FAIL for index %d: Expected %f, Got %f", i, expected[i], value)
29 }
30 }
31}
32
33func TestTryReadInt8(t *testing.T) {
34 bitreader := Reader(bytes.NewReader(TestArray[:]), false)
35 expected := []int{113, 13, 0}
36 for i := range expected {
37 value := bitreader.TryReadInt8()
38 if int(value) != expected[i] {
39 t.Fatalf("TryReadInt8 FAIL for index %d: Expected %d, Got %d", i, expected[i], value)
40 }
41 }
42}
43
44func TestTryReadInt16(t *testing.T) {
45 bitreader := Reader(bytes.NewReader(TestArray[:]), false)
46 expected := []int{28941, 0, 41499, 0}
47 for i := range expected {
48 value := bitreader.TryReadInt16()
49 if int(value) != expected[i] {
50 t.Fatalf("TryReadInt16 FAIL for index %d: Expected %d, Got %d", i, expected[i], value)
51 }
52 }
53}
54
55func TestTryReadInt32(t *testing.T) {
56 bitreader := Reader(bytes.NewReader(TestArray[:]), false)
57 expected := []int{1896677376, 2719678464}
58 for i := range expected {
59 value := bitreader.TryReadInt32()
60 if int(value) != expected[i] {
61 t.Fatalf("TryReadInt32 FAIL for index %d: Expected %d, Got %d", i, expected[i], value)
62 }
63 }
64}
65
66func TestTryReadInt64(t *testing.T) {
67 bitreader := Reader(bytes.NewReader(TestArray[:]), false)
68 expected := []int{8146167303702773760}
69 for i := range expected {
70 value := bitreader.TryReadInt64()
71 if int(value) != expected[i] {
72 t.Fatalf("TryReadInt64 FAIL for index %d: Expected %d, Got %d", i, expected[i], value)
73 }
74 }
75}
76
10func TestReadBit(t *testing.T) { 77func TestReadBit(t *testing.T) {
11 bitreader := Reader(TestArray[:], false) 78 bitreader := Reader(bytes.NewReader(TestArray[:]), false)
12 expected := []bool{false, true, true, true} 79 expected := []bool{false, true, true, true}
13 for i := range expected { 80 for i := range expected {
14 value, err := bitreader.ReadBit() 81 value, err := bitreader.ReadBool()
15 if err != nil { 82 if err != nil {
16 t.Fatal(err) 83 t.Fatal(err)
17 } 84 }
@@ -22,27 +89,27 @@ func TestReadBit(t *testing.T) {
22} 89}
23 90
24func TestReadBitLE(t *testing.T) { 91func TestReadBitLE(t *testing.T) {
25 bitreader := Reader(TestArray[:], true) 92 bitreader := Reader(bytes.NewReader(TestArray[:]), true)
26 expected := []bool{true, false, false, false} 93 expected := []bool{true, false, false, false}
27 for i := range expected { 94 for i := range expected {
28 value, err := bitreader.ReadBit() 95 value, err := bitreader.ReadBool()
29 if err != nil { 96 if err != nil {
30 t.Fatal(err) 97 t.Fatal(err)
31 } 98 }
32 if value != expected[i] { 99 if value != expected[i] {
33 t.Fatalf("ReadBitLSB FAIL for index %d: Expected %t, Got %t", i, expected[i], value) 100 t.Fatalf("ReadBitLE FAIL for index %d: Expected %t, Got %t", i, expected[i], value)
34 } 101 }
35 } 102 }
36} 103}
37 104
38func TestReadBits32(t *testing.T) { 105func TestReadBits(t *testing.T) {
39 bitreader := Reader(TestArray[:], false) 106 bitreader := Reader(bytes.NewReader(TestArray[:]), false)
40 expected := []int{3793354753, 2288779267} // 11100010000110100000000000000001, 10001000011011000000000000000011 107 expected := []int{3793354753, 2288779267} // 11100010000110100000000000000001, 10001000011011000000000000000011
41 expectedBool := []bool{false, false} 108 expectedBool := []bool{false, false}
42 for i := range expected { 109 for i := range expected {
43 bool, err := bitreader.ReadBit() 110 bool, err := bitreader.ReadBool()
44 if bool != expectedBool[i] { 111 if bool != expectedBool[i] {
45 t.Fatalf("ReadBits32 ReadBit FAIL for index %d: Expected %t, Got %t", i, expectedBool[i], bool) 112 t.Fatalf("ReadBits ReadBit FAIL for index %d: Expected %t, Got %t", i, expectedBool[i], bool)
46 } 113 }
47 if err != nil { 114 if err != nil {
48 t.Fatal(err) 115 t.Fatal(err)
@@ -51,36 +118,73 @@ func TestReadBits32(t *testing.T) {
51 if err != nil { 118 if err != nil {
52 t.Fatal(err) 119 t.Fatal(err)
53 } 120 }
54 if value != expected[i] { 121 if int(value) != expected[i] {
55 t.Fatalf("ReadBits32 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) 122 t.Fatalf("ReadBits FAIL for index %d: Expected %d, Got %d", i, expected[i], value)
56 } 123 }
57 } 124 }
58} 125}
59 126
60func TestReadBitsLE(t *testing.T) { 127func TestReadBitsLE(t *testing.T) {
61 bitreader := Reader(TestArray[:], true) 128 bitreader := Reader(bytes.NewReader(TestArray[:]), true)
62 expected := []int{1720, 1768} // 11010111000, 11011101000 129 expected := []int{1720, 1768} // 11010111000, 11011101000
63 for i := range expected { 130 for i := range expected {
64 bitreader.ReadBit() 131 bitreader.ReadBool()
65 value, err := bitreader.ReadBits(32) 132 value, err := bitreader.ReadBits(32)
66 if err != nil { 133 if err != nil {
67 t.Fatal(err) 134 t.Fatal(err)
68 } 135 }
69 if value != expected[i] { 136 if int(value) != expected[i] {
70 t.Fatalf("ReadBits32LSB FAIL for index %d: Expected %d, Got %d", i, expected[i], value) 137 t.Fatalf("ReadBitsLE FAIL for index %d: Expected %d, Got %d", i, expected[i], value)
138 }
139 }
140}
141
142func TestReadBytes(t *testing.T) {
143 bitreader := Reader(bytes.NewReader(TestArray[:]), false)
144 expected := []int{3793354753, 2288779267} // 11100010000110100000000000000001, 10001000011011000000000000000011
145 expectedBool := []bool{false, false}
146 for i := range expected {
147 bool, err := bitreader.ReadBool()
148 if bool != expectedBool[i] {
149 t.Fatalf("ReadBytes ReadBit FAIL for index %d: Expected %t, Got %t", i, expectedBool[i], bool)
150 }
151 if err != nil {
152 t.Fatal(err)
153 }
154 value, err := bitreader.ReadBytes(4)
155 if err != nil {
156 t.Fatal(err)
157 }
158 if int(value) != expected[i] {
159 t.Fatalf("ReadBytes FAIL for index %d: Expected %d, Got %d", i, expected[i], value)
160 }
161 }
162}
163
164func TestReadBytesLE(t *testing.T) {
165 bitreader := Reader(bytes.NewReader(TestArray[:]), true)
166 expected := []int{1720, 1768} // 11010111000, 11011101000
167 for i := range expected {
168 bitreader.ReadBool()
169 value, err := bitreader.ReadBytes(4)
170 if err != nil {
171 t.Fatal(err)
172 }
173 if int(value) != expected[i] {
174 t.Fatalf("ReadBytesLE FAIL for index %d: Expected %d, Got %d", i, expected[i], value)
71 } 175 }
72 } 176 }
73} 177}
74 178
75func TestSkipBits(t *testing.T) { 179func TestSkipBits(t *testing.T) {
76 bitreader := Reader(TestArray[:], false) 180 bitreader := Reader(bytes.NewReader(TestArray[:]), false)
77 expected := []bool{true, true, false, true} //00001101 181 expected := []bool{true, true, false, true} //00001101
78 err := bitreader.SkipBits(12) 182 err := bitreader.SkipBits(12)
79 if err != nil { 183 if err != nil {
80 t.Fatal(err) 184 t.Fatal(err)
81 } 185 }
82 for i := range expected { 186 for i := range expected {
83 value, err := bitreader.ReadBit() 187 value, err := bitreader.ReadBool()
84 if err != nil { 188 if err != nil {
85 t.Fatal(err) 189 t.Fatal(err)
86 } 190 }
@@ -91,16 +195,16 @@ func TestSkipBits(t *testing.T) {
91} 195}
92 196
93func TestSkipBitsLE(t *testing.T) { 197func TestSkipBitsLE(t *testing.T) {
94 bitreader := Reader(TestArray[:], true) 198 bitreader := Reader(bytes.NewReader(TestArray[:]), true)
95 expected := []bool{false, false, false, false} //10110000 199 expected := []bool{false, false, false, false} //10110000
96 bitreader.SkipBits(12) 200 bitreader.SkipBits(12)
97 for i := range expected { 201 for i := range expected {
98 value, err := bitreader.ReadBit() 202 value, err := bitreader.ReadBool()
99 if err != nil { 203 if err != nil {
100 t.Fatal(err) 204 t.Fatal(err)
101 } 205 }
102 if value != expected[i] { 206 if value != expected[i] {
103 t.Fatalf("SkipBits ReadBit FAIL for index %d: Expected %t, Got %t", i, expected[i], value) 207 t.Fatalf("SkipBitsLE ReadBit FAIL for index %d: Expected %t, Got %t", i, expected[i], value)
104 } 208 }
105 } 209 }
106} 210}