diff options
| author | Arda Serdar Pektezol <1669855+BiSaXa@users.noreply.github.com> | 2022-09-11 10:08:36 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-09-11 10:08:36 +0300 |
| commit | 3afa6d7edf32164e884a247a5a9937ecdaed4f64 (patch) | |
| tree | 6265637c712678b1e16f4be07326d20dab6dfc0d /bitreader_test.go | |
| parent | Merge pull request #1 from BiSaXa/pull-req-templates (diff) | |
| parent | added go doc (diff) | |
| download | bitreader-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.go | 144 |
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 @@ | |||
| 1 | package bitreader | 1 | package bitreader |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 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 |
| 8 | var TestArray = [...]byte{113, 13, 0, 0, 162, 27, 0, 0, 204} | 9 | var TestArray = [...]byte{113, 13, 0, 0, 162, 27, 0, 0, 204} |
| 9 | 10 | ||
| 11 | func 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 | |||
| 22 | func 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 | |||
| 33 | func 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 | |||
| 44 | func 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 | |||
| 55 | func 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 | |||
| 66 | func 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 | |||
| 10 | func TestReadBit(t *testing.T) { | 77 | func 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 | ||
| 24 | func TestReadBitLE(t *testing.T) { | 91 | func 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 | ||
| 38 | func TestReadBits32(t *testing.T) { | 105 | func 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 | ||
| 60 | func TestReadBitsLE(t *testing.T) { | 127 | func 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 | |||
| 142 | func 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 | |||
| 164 | func 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 | ||
| 75 | func TestSkipBits(t *testing.T) { | 179 | func 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 | ||
| 93 | func TestSkipBitsLE(t *testing.T) { | 197 | func 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 | } |