From 4a09f5844cb1649ecbdfec260628285cfcd640ec Mon Sep 17 00:00:00 2001 From: BiSaXa <1669855+BiSaXa@users.noreply.github.com> Date: Sun, 4 Sep 2022 01:07:28 +0300 Subject: init - first full version --- bitreader_test.go | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 bitreader_test.go (limited to 'bitreader_test.go') 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 @@ +package main + +import ( + "testing" +) + +// 01110001, 00001101, 00000000, 00000000, 10100010, 00011011, 00000000, 00000000, 11001100 +var TestArray = [...]byte{113, 13, 0, 0, 162, 27, 0, 0, 204} + +func TestReadBit(t *testing.T) { + bitreader := Reader(TestArray[:]) + expected := []bool{false, true, true, true} + for i := range expected { + value, err := bitreader.ReadBit() + if err != nil { + t.Fatal(err) + } + if value != expected[i] { + t.Fatalf("ReadBit FAIL for index %d: Expected %t, Got %t", i, expected[i], value) + } + } +} + +func TestReadBitLSB(t *testing.T) { + bitreader := ReaderLSB(TestArray[:]) + expected := []bool{true, false, false, false} + for i := range expected { + value, err := bitreader.ReadBit() + if err != nil { + t.Fatal(err) + } + if value != expected[i] { + t.Fatalf("ReadBitLSB FAIL for index %d: Expected %t, Got %t", i, expected[i], value) + } + } +} + +func TestReadBits32(t *testing.T) { + bitreader := Reader(TestArray[:]) + expected := []int{3793354753, 2288779267} // 11100010000110100000000000000001, 10001000011011000000000000000011 + expectedBool := []bool{false, false} + for i := range expected { + bool, err := bitreader.ReadBit() + if bool != expectedBool[i] { + t.Fatalf("ReadBits32 ReadBit FAIL for index %d: Expected %t, Got %t", i, expectedBool[i], bool) + } + if err != nil { + t.Fatal(err) + } + value, err := bitreader.ReadBits32(32) + if err != nil { + t.Fatal(err) + } + if value != expected[i] { + t.Fatalf("ReadBits32 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) + } + } +} + +func TestReadBits32LSB(t *testing.T) { + bitreader := ReaderLSB(TestArray[:]) + expected := []int{1720, 1768} // 11010111000, 11011101000 + for i := range expected { + bitreader.ReadBit() + value, err := bitreader.ReadBits32(32) + if err != nil { + t.Fatal(err) + } + if value != expected[i] { + t.Fatalf("ReadBits32LSB FAIL for index %d: Expected %d, Got %d", i, expected[i], value) + } + } +} + +func TestSkipBits(t *testing.T) { + bitreader := Reader(TestArray[:]) + expected := []bool{true, true, false, true} //00001101 + bitreader.SkipBits(12) + for i := range expected { + value, err := bitreader.ReadBit() + if err != nil { + t.Fatal(err) + } + if value != expected[i] { + t.Fatalf("SkipBits ReadBit FAIL for index %d: Expected %t, Got %t", i, expected[i], value) + } + } +} + +func TestSkipBitsLSB(t *testing.T) { + bitreader := ReaderLSB(TestArray[:]) + expected := []bool{false, false, false, false} //10110000 + bitreader.SkipBits(12) + for i := range expected { + value, err := bitreader.ReadBit() + if err != nil { + t.Fatal(err) + } + if value != expected[i] { + t.Fatalf("SkipBits ReadBit FAIL for index %d: Expected %t, Got %t", i, expected[i], value) + } + } +} -- cgit v1.2.3