aboutsummaryrefslogtreecommitdiff
path: root/bitreader_test.go
diff options
context:
space:
mode:
authorBiSaXa <1669855+BiSaXa@users.noreply.github.com>2022-09-04 01:07:28 +0300
committerBiSaXa <1669855+BiSaXa@users.noreply.github.com>2022-09-04 01:07:28 +0300
commit4a09f5844cb1649ecbdfec260628285cfcd640ec (patch)
tree7d1a4f31d0771467f0ae0db3444d3545fc3fbfe7 /bitreader_test.go
downloadbitreader-4a09f5844cb1649ecbdfec260628285cfcd640ec.tar.gz
bitreader-4a09f5844cb1649ecbdfec260628285cfcd640ec.tar.bz2
bitreader-4a09f5844cb1649ecbdfec260628285cfcd640ec.zip
init - first full version
Diffstat (limited to 'bitreader_test.go')
-rw-r--r--bitreader_test.go103
1 files changed, 103 insertions, 0 deletions
diff --git a/bitreader_test.go b/bitreader_test.go
new file mode 100644
index 0000000..c29a3bd
--- /dev/null
+++ b/bitreader_test.go
@@ -0,0 +1,103 @@
1package main
2
3import (
4 "testing"
5)
6
7// 01110001, 00001101, 00000000, 00000000, 10100010, 00011011, 00000000, 00000000, 11001100
8var TestArray = [...]byte{113, 13, 0, 0, 162, 27, 0, 0, 204}
9
10func TestReadBit(t *testing.T) {
11 bitreader := Reader(TestArray[:])
12 expected := []bool{false, true, true, true}
13 for i := range expected {
14 value, err := bitreader.ReadBit()
15 if err != nil {
16 t.Fatal(err)
17 }
18 if value != expected[i] {
19 t.Fatalf("ReadBit FAIL for index %d: Expected %t, Got %t", i, expected[i], value)
20 }
21 }
22}
23
24func TestReadBitLSB(t *testing.T) {
25 bitreader := ReaderLSB(TestArray[:])
26 expected := []bool{true, false, false, false}
27 for i := range expected {
28 value, err := bitreader.ReadBit()
29 if err != nil {
30 t.Fatal(err)
31 }
32 if value != expected[i] {
33 t.Fatalf("ReadBitLSB FAIL for index %d: Expected %t, Got %t", i, expected[i], value)
34 }
35 }
36}
37
38func TestReadBits32(t *testing.T) {
39 bitreader := Reader(TestArray[:])
40 expected := []int{3793354753, 2288779267} // 11100010000110100000000000000001, 10001000011011000000000000000011
41 expectedBool := []bool{false, false}
42 for i := range expected {
43 bool, err := bitreader.ReadBit()
44 if bool != expectedBool[i] {
45 t.Fatalf("ReadBits32 ReadBit FAIL for index %d: Expected %t, Got %t", i, expectedBool[i], bool)
46 }
47 if err != nil {
48 t.Fatal(err)
49 }
50 value, err := bitreader.ReadBits32(32)
51 if err != nil {
52 t.Fatal(err)
53 }
54 if value != expected[i] {
55 t.Fatalf("ReadBits32 FAIL for index %d: Expected %d, Got %d", i, expected[i], value)
56 }
57 }
58}
59
60func TestReadBits32LSB(t *testing.T) {
61 bitreader := ReaderLSB(TestArray[:])
62 expected := []int{1720, 1768} // 11010111000, 11011101000
63 for i := range expected {
64 bitreader.ReadBit()
65 value, err := bitreader.ReadBits32(32)
66 if err != nil {
67 t.Fatal(err)
68 }
69 if value != expected[i] {
70 t.Fatalf("ReadBits32LSB FAIL for index %d: Expected %d, Got %d", i, expected[i], value)
71 }
72 }
73}
74
75func TestSkipBits(t *testing.T) {
76 bitreader := Reader(TestArray[:])
77 expected := []bool{true, true, false, true} //00001101
78 bitreader.SkipBits(12)
79 for i := range expected {
80 value, err := bitreader.ReadBit()
81 if err != nil {
82 t.Fatal(err)
83 }
84 if value != expected[i] {
85 t.Fatalf("SkipBits ReadBit FAIL for index %d: Expected %t, Got %t", i, expected[i], value)
86 }
87 }
88}
89
90func TestSkipBitsLSB(t *testing.T) {
91 bitreader := ReaderLSB(TestArray[:])
92 expected := []bool{false, false, false, false} //10110000
93 bitreader.SkipBits(12)
94 for i := range expected {
95 value, err := bitreader.ReadBit()
96 if err != nil {
97 t.Fatal(err)
98 }
99 if value != expected[i] {
100 t.Fatalf("SkipBits ReadBit FAIL for index %d: Expected %t, Got %t", i, expected[i], value)
101 }
102 }
103}