From 9aa30fe369ce48a3c69cc6fa886ceb52316b3d82 Mon Sep 17 00:00:00 2001 From: BiSaXa <1669855+BiSaXa@users.noreply.github.com> Date: Mon, 5 Sep 2022 11:51:51 +0300 Subject: v2 init - 69% test coverage, nice --- bitreader_test.go | 164 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 143 insertions(+), 21 deletions(-) (limited to 'bitreader_test.go') diff --git a/bitreader_test.go b/bitreader_test.go index 5d344d2..ef13dfe 100644 --- a/bitreader_test.go +++ b/bitreader_test.go @@ -1,17 +1,102 @@ -package bitreader +package main import ( + "bytes" "testing" ) // 01110001, 00001101, 00000000, 00000000, 10100010, 00011011, 00000000, 00000000, 11001100 var TestArray = [...]byte{113, 13, 0, 0, 162, 27, 0, 0, 204} +func TestTryReadFloat32(t *testing.T) { + bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + expected := []float32{6.98198182157e+29, -2.10064170919e-18} + for i := range expected { + value, err := bitreader.TryReadFloat32() + if err != nil { + t.Fatal(err) + } + if value != expected[i] { + t.Fatalf("TryReadFloat32 FAIL for index %d: Expected %f, Got %f", i, expected[i], value) + } + } +} + +func TestTryReadFloat64(t *testing.T) { + bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + expected := []float64{3.68828741038253948851462939603e+236} + for i := range expected { + value, err := bitreader.TryReadFloat64() + if err != nil { + t.Fatal(err) + } + if value != expected[i] { + t.Fatalf("TryReadFloat64 FAIL for index %d: Expected %f, Got %f", i, expected[i], value) + } + } +} + +func TestTryReadInt8(t *testing.T) { + bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + expected := []int{113, 13, 0} + for i := range expected { + value, err := bitreader.TryReadInt8() + if err != nil { + t.Fatal(err) + } + if int(value) != expected[i] { + t.Fatalf("TryReadInt8 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) + } + } +} + +func TestTryReadInt16(t *testing.T) { + bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + expected := []int{28941, 0, 41499, 0} + for i := range expected { + value, err := bitreader.TryReadInt16() + if err != nil { + t.Fatal(err) + } + if int(value) != expected[i] { + t.Fatalf("TryReadInt16 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) + } + } +} + +func TestTryReadInt32(t *testing.T) { + bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + expected := []int{1896677376, 2719678464} + for i := range expected { + value, err := bitreader.TryReadInt32() + if err != nil { + t.Fatal(err) + } + if int(value) != expected[i] { + t.Fatalf("TryReadInt32 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) + } + } +} + +func TestTryReadInt64(t *testing.T) { + bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + expected := []int{8146167303702773760} + for i := range expected { + value, err := bitreader.TryReadInt64() + if err != nil { + t.Fatal(err) + } + if int(value) != expected[i] { + t.Fatalf("TryReadInt64 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) + } + } +} + func TestReadBit(t *testing.T) { - bitreader := Reader(TestArray[:], false) + bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) expected := []bool{false, true, true, true} for i := range expected { - value, err := bitreader.ReadBit() + value, err := bitreader.ReadBool() if err != nil { t.Fatal(err) } @@ -22,27 +107,27 @@ func TestReadBit(t *testing.T) { } func TestReadBitLE(t *testing.T) { - bitreader := Reader(TestArray[:], true) + bitreader := Reader(bytes.NewBuffer(TestArray[:]), true) expected := []bool{true, false, false, false} for i := range expected { - value, err := bitreader.ReadBit() + value, err := bitreader.ReadBool() 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) + t.Fatalf("ReadBitLE FAIL for index %d: Expected %t, Got %t", i, expected[i], value) } } } -func TestReadBits32(t *testing.T) { - bitreader := Reader(TestArray[:], false) +func TestReadBits(t *testing.T) { + bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) expected := []int{3793354753, 2288779267} // 11100010000110100000000000000001, 10001000011011000000000000000011 expectedBool := []bool{false, false} for i := range expected { - bool, err := bitreader.ReadBit() + bool, err := bitreader.ReadBool() if bool != expectedBool[i] { - t.Fatalf("ReadBits32 ReadBit FAIL for index %d: Expected %t, Got %t", i, expectedBool[i], bool) + t.Fatalf("ReadBits ReadBit FAIL for index %d: Expected %t, Got %t", i, expectedBool[i], bool) } if err != nil { t.Fatal(err) @@ -51,36 +136,73 @@ func TestReadBits32(t *testing.T) { 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) + if int(value) != expected[i] { + t.Fatalf("ReadBits FAIL for index %d: Expected %d, Got %d", i, expected[i], value) } } } func TestReadBitsLE(t *testing.T) { - bitreader := Reader(TestArray[:], true) + bitreader := Reader(bytes.NewBuffer(TestArray[:]), true) expected := []int{1720, 1768} // 11010111000, 11011101000 for i := range expected { - bitreader.ReadBit() + bitreader.ReadBool() value, err := bitreader.ReadBits(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) + if int(value) != expected[i] { + t.Fatalf("ReadBitsLE FAIL for index %d: Expected %d, Got %d", i, expected[i], value) + } + } +} + +func TestReadBytes(t *testing.T) { + bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + expected := []int{3793354753, 2288779267} // 11100010000110100000000000000001, 10001000011011000000000000000011 + expectedBool := []bool{false, false} + for i := range expected { + bool, err := bitreader.ReadBool() + if bool != expectedBool[i] { + t.Fatalf("ReadBytes ReadBit FAIL for index %d: Expected %t, Got %t", i, expectedBool[i], bool) + } + if err != nil { + t.Fatal(err) + } + value, err := bitreader.ReadBytes(4) + if err != nil { + t.Fatal(err) + } + if int(value) != expected[i] { + t.Fatalf("ReadBytes FAIL for index %d: Expected %d, Got %d", i, expected[i], value) + } + } +} + +func TestReadBytesLE(t *testing.T) { + bitreader := Reader(bytes.NewBuffer(TestArray[:]), true) + expected := []int{1720, 1768} // 11010111000, 11011101000 + for i := range expected { + bitreader.ReadBool() + value, err := bitreader.ReadBytes(4) + if err != nil { + t.Fatal(err) + } + if int(value) != expected[i] { + t.Fatalf("ReadBytesLE FAIL for index %d: Expected %d, Got %d", i, expected[i], value) } } } func TestSkipBits(t *testing.T) { - bitreader := Reader(TestArray[:], false) + bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) expected := []bool{true, true, false, true} //00001101 err := bitreader.SkipBits(12) if err != nil { t.Fatal(err) } for i := range expected { - value, err := bitreader.ReadBit() + value, err := bitreader.ReadBool() if err != nil { t.Fatal(err) } @@ -91,16 +213,16 @@ func TestSkipBits(t *testing.T) { } func TestSkipBitsLE(t *testing.T) { - bitreader := Reader(TestArray[:], true) + bitreader := Reader(bytes.NewBuffer(TestArray[:]), true) expected := []bool{false, false, false, false} //10110000 bitreader.SkipBits(12) for i := range expected { - value, err := bitreader.ReadBit() + value, err := bitreader.ReadBool() 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) + t.Fatalf("SkipBitsLE ReadBit FAIL for index %d: Expected %t, Got %t", i, expected[i], value) } } } -- cgit v1.2.3 From 05d7eb4e0f7b0865fa9a0f4f9bdcdbc37d80631c Mon Sep 17 00:00:00 2001 From: BiSaXa <1669855+BiSaXa@users.noreply.github.com> Date: Wed, 7 Sep 2022 17:24:02 +0300 Subject: change package name to bitreader --- bitreader.go | 2 +- bitreader_test.go | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) (limited to 'bitreader_test.go') diff --git a/bitreader.go b/bitreader.go index 7e22ba6..aeade92 100644 --- a/bitreader.go +++ b/bitreader.go @@ -1,5 +1,5 @@ // paksd -package main +package bitreader import ( "fmt" diff --git a/bitreader_test.go b/bitreader_test.go index ef13dfe..d0460c7 100644 --- a/bitreader_test.go +++ b/bitreader_test.go @@ -1,4 +1,4 @@ -package main +package bitreader import ( "bytes" @@ -9,7 +9,7 @@ import ( var TestArray = [...]byte{113, 13, 0, 0, 162, 27, 0, 0, 204} func TestTryReadFloat32(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []float32{6.98198182157e+29, -2.10064170919e-18} for i := range expected { value, err := bitreader.TryReadFloat32() @@ -23,7 +23,7 @@ func TestTryReadFloat32(t *testing.T) { } func TestTryReadFloat64(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []float64{3.68828741038253948851462939603e+236} for i := range expected { value, err := bitreader.TryReadFloat64() @@ -37,7 +37,7 @@ func TestTryReadFloat64(t *testing.T) { } func TestTryReadInt8(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []int{113, 13, 0} for i := range expected { value, err := bitreader.TryReadInt8() @@ -51,7 +51,7 @@ func TestTryReadInt8(t *testing.T) { } func TestTryReadInt16(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []int{28941, 0, 41499, 0} for i := range expected { value, err := bitreader.TryReadInt16() @@ -65,7 +65,7 @@ func TestTryReadInt16(t *testing.T) { } func TestTryReadInt32(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []int{1896677376, 2719678464} for i := range expected { value, err := bitreader.TryReadInt32() @@ -79,7 +79,7 @@ func TestTryReadInt32(t *testing.T) { } func TestTryReadInt64(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []int{8146167303702773760} for i := range expected { value, err := bitreader.TryReadInt64() @@ -93,7 +93,7 @@ func TestTryReadInt64(t *testing.T) { } func TestReadBit(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []bool{false, true, true, true} for i := range expected { value, err := bitreader.ReadBool() @@ -107,7 +107,7 @@ func TestReadBit(t *testing.T) { } func TestReadBitLE(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), true) + bitreader := Reader(bytes.NewReader(TestArray[:]), true) expected := []bool{true, false, false, false} for i := range expected { value, err := bitreader.ReadBool() @@ -121,7 +121,7 @@ func TestReadBitLE(t *testing.T) { } func TestReadBits(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []int{3793354753, 2288779267} // 11100010000110100000000000000001, 10001000011011000000000000000011 expectedBool := []bool{false, false} for i := range expected { @@ -143,7 +143,7 @@ func TestReadBits(t *testing.T) { } func TestReadBitsLE(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), true) + bitreader := Reader(bytes.NewReader(TestArray[:]), true) expected := []int{1720, 1768} // 11010111000, 11011101000 for i := range expected { bitreader.ReadBool() @@ -158,7 +158,7 @@ func TestReadBitsLE(t *testing.T) { } func TestReadBytes(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []int{3793354753, 2288779267} // 11100010000110100000000000000001, 10001000011011000000000000000011 expectedBool := []bool{false, false} for i := range expected { @@ -180,7 +180,7 @@ func TestReadBytes(t *testing.T) { } func TestReadBytesLE(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), true) + bitreader := Reader(bytes.NewReader(TestArray[:]), true) expected := []int{1720, 1768} // 11010111000, 11011101000 for i := range expected { bitreader.ReadBool() @@ -195,7 +195,7 @@ func TestReadBytesLE(t *testing.T) { } func TestSkipBits(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), false) + bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []bool{true, true, false, true} //00001101 err := bitreader.SkipBits(12) if err != nil { @@ -213,7 +213,7 @@ func TestSkipBits(t *testing.T) { } func TestSkipBitsLE(t *testing.T) { - bitreader := Reader(bytes.NewBuffer(TestArray[:]), true) + bitreader := Reader(bytes.NewReader(TestArray[:]), true) expected := []bool{false, false, false, false} //10110000 bitreader.SkipBits(12) for i := range expected { -- cgit v1.2.3 From 64e0e23b8a0f1a14a54f855d9c585d62549cf036 Mon Sep 17 00:00:00 2001 From: BiSaXa <1669855+BiSaXa@users.noreply.github.com> Date: Wed, 7 Sep 2022 18:15:25 +0300 Subject: no err output on try wrapper funcs --- bitreader.go | 36 ++++++++++++++++++------------------ bitreader_test.go | 30 ++++++------------------------ 2 files changed, 24 insertions(+), 42 deletions(-) (limited to 'bitreader_test.go') diff --git a/bitreader.go b/bitreader.go index aeade92..b84dd1b 100644 --- a/bitreader.go +++ b/bitreader.go @@ -24,52 +24,52 @@ func Reader(stream io.Reader, le bool) *ReaderType { } } -func (reader *ReaderType) TryReadInt8() (uint8, error) { +func (reader *ReaderType) TryReadInt8() uint8 { value, err := reader.ReadBits(8) if err != nil { - return 0, err + panic(err) } - return uint8(value), nil + return uint8(value) } -func (reader *ReaderType) TryReadInt16() (uint16, error) { +func (reader *ReaderType) TryReadInt16() uint16 { value, err := reader.ReadBits(16) if err != nil { - return 0, err + panic(err) } - return uint16(value), nil + return uint16(value) } -func (reader *ReaderType) TryReadInt32() (uint32, error) { +func (reader *ReaderType) TryReadInt32() uint32 { value, err := reader.ReadBits(32) if err != nil { - return 0, err + panic(err) } - return uint32(value), nil + return uint32(value) } -func (reader *ReaderType) TryReadInt64() (uint64, error) { +func (reader *ReaderType) TryReadInt64() uint64 { value, err := reader.ReadBits(64) if err != nil { - return 0, err + panic(err) } - return value, nil + return value } -func (reader *ReaderType) TryReadFloat32() (float32, error) { +func (reader *ReaderType) TryReadFloat32() float32 { value, err := reader.ReadBits(32) if err != nil { - return 0, err + panic(err) } - return math.Float32frombits(uint32(value)), nil + return math.Float32frombits(uint32(value)) } -func (reader *ReaderType) TryReadFloat64() (float64, error) { +func (reader *ReaderType) TryReadFloat64() float64 { value, err := reader.ReadBits(64) if err != nil { - return 0, err + panic(err) } - return math.Float64frombits(value), nil + return math.Float64frombits(value) } func (reader *ReaderType) SkipBits(bits int) error { diff --git a/bitreader_test.go b/bitreader_test.go index d0460c7..85b0c98 100644 --- a/bitreader_test.go +++ b/bitreader_test.go @@ -12,10 +12,7 @@ func TestTryReadFloat32(t *testing.T) { bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []float32{6.98198182157e+29, -2.10064170919e-18} for i := range expected { - value, err := bitreader.TryReadFloat32() - if err != nil { - t.Fatal(err) - } + value := bitreader.TryReadFloat32() if value != expected[i] { t.Fatalf("TryReadFloat32 FAIL for index %d: Expected %f, Got %f", i, expected[i], value) } @@ -26,10 +23,7 @@ func TestTryReadFloat64(t *testing.T) { bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []float64{3.68828741038253948851462939603e+236} for i := range expected { - value, err := bitreader.TryReadFloat64() - if err != nil { - t.Fatal(err) - } + value := bitreader.TryReadFloat64() if value != expected[i] { t.Fatalf("TryReadFloat64 FAIL for index %d: Expected %f, Got %f", i, expected[i], value) } @@ -40,10 +34,7 @@ func TestTryReadInt8(t *testing.T) { bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []int{113, 13, 0} for i := range expected { - value, err := bitreader.TryReadInt8() - if err != nil { - t.Fatal(err) - } + value := bitreader.TryReadInt8() if int(value) != expected[i] { t.Fatalf("TryReadInt8 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) } @@ -54,10 +45,7 @@ func TestTryReadInt16(t *testing.T) { bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []int{28941, 0, 41499, 0} for i := range expected { - value, err := bitreader.TryReadInt16() - if err != nil { - t.Fatal(err) - } + value := bitreader.TryReadInt16() if int(value) != expected[i] { t.Fatalf("TryReadInt16 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) } @@ -68,10 +56,7 @@ func TestTryReadInt32(t *testing.T) { bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []int{1896677376, 2719678464} for i := range expected { - value, err := bitreader.TryReadInt32() - if err != nil { - t.Fatal(err) - } + value := bitreader.TryReadInt32() if int(value) != expected[i] { t.Fatalf("TryReadInt32 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) } @@ -82,10 +67,7 @@ func TestTryReadInt64(t *testing.T) { bitreader := Reader(bytes.NewReader(TestArray[:]), false) expected := []int{8146167303702773760} for i := range expected { - value, err := bitreader.TryReadInt64() - if err != nil { - t.Fatal(err) - } + value := bitreader.TryReadInt64() if int(value) != expected[i] { t.Fatalf("TryReadInt64 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) } -- cgit v1.2.3