diff options
| -rw-r--r-- | bitreader.go | 36 | ||||
| -rw-r--r-- | bitreader_test.go | 30 |
2 files changed, 24 insertions, 42 deletions
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 { | |||
| 24 | } | 24 | } |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | func (reader *ReaderType) TryReadInt8() (uint8, error) { | 27 | func (reader *ReaderType) TryReadInt8() uint8 { |
| 28 | value, err := reader.ReadBits(8) | 28 | value, err := reader.ReadBits(8) |
| 29 | if err != nil { | 29 | if err != nil { |
| 30 | return 0, err | 30 | panic(err) |
| 31 | } | 31 | } |
| 32 | return uint8(value), nil | 32 | return uint8(value) |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | func (reader *ReaderType) TryReadInt16() (uint16, error) { | 35 | func (reader *ReaderType) TryReadInt16() uint16 { |
| 36 | value, err := reader.ReadBits(16) | 36 | value, err := reader.ReadBits(16) |
| 37 | if err != nil { | 37 | if err != nil { |
| 38 | return 0, err | 38 | panic(err) |
| 39 | } | 39 | } |
| 40 | return uint16(value), nil | 40 | return uint16(value) |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | func (reader *ReaderType) TryReadInt32() (uint32, error) { | 43 | func (reader *ReaderType) TryReadInt32() uint32 { |
| 44 | value, err := reader.ReadBits(32) | 44 | value, err := reader.ReadBits(32) |
| 45 | if err != nil { | 45 | if err != nil { |
| 46 | return 0, err | 46 | panic(err) |
| 47 | } | 47 | } |
| 48 | return uint32(value), nil | 48 | return uint32(value) |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | func (reader *ReaderType) TryReadInt64() (uint64, error) { | 51 | func (reader *ReaderType) TryReadInt64() uint64 { |
| 52 | value, err := reader.ReadBits(64) | 52 | value, err := reader.ReadBits(64) |
| 53 | if err != nil { | 53 | if err != nil { |
| 54 | return 0, err | 54 | panic(err) |
| 55 | } | 55 | } |
| 56 | return value, nil | 56 | return value |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | func (reader *ReaderType) TryReadFloat32() (float32, error) { | 59 | func (reader *ReaderType) TryReadFloat32() float32 { |
| 60 | value, err := reader.ReadBits(32) | 60 | value, err := reader.ReadBits(32) |
| 61 | if err != nil { | 61 | if err != nil { |
| 62 | return 0, err | 62 | panic(err) |
| 63 | } | 63 | } |
| 64 | return math.Float32frombits(uint32(value)), nil | 64 | return math.Float32frombits(uint32(value)) |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | func (reader *ReaderType) TryReadFloat64() (float64, error) { | 67 | func (reader *ReaderType) TryReadFloat64() float64 { |
| 68 | value, err := reader.ReadBits(64) | 68 | value, err := reader.ReadBits(64) |
| 69 | if err != nil { | 69 | if err != nil { |
| 70 | return 0, err | 70 | panic(err) |
| 71 | } | 71 | } |
| 72 | return math.Float64frombits(value), nil | 72 | return math.Float64frombits(value) |
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | func (reader *ReaderType) SkipBits(bits int) error { | 75 | 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) { | |||
| 12 | bitreader := Reader(bytes.NewReader(TestArray[:]), false) | 12 | bitreader := Reader(bytes.NewReader(TestArray[:]), false) |
| 13 | expected := []float32{6.98198182157e+29, -2.10064170919e-18} | 13 | expected := []float32{6.98198182157e+29, -2.10064170919e-18} |
| 14 | for i := range expected { | 14 | for i := range expected { |
| 15 | value, err := bitreader.TryReadFloat32() | 15 | value := bitreader.TryReadFloat32() |
| 16 | if err != nil { | ||
| 17 | t.Fatal(err) | ||
| 18 | } | ||
| 19 | if value != expected[i] { | 16 | if value != expected[i] { |
| 20 | t.Fatalf("TryReadFloat32 FAIL for index %d: Expected %f, Got %f", i, expected[i], value) | 17 | t.Fatalf("TryReadFloat32 FAIL for index %d: Expected %f, Got %f", i, expected[i], value) |
| 21 | } | 18 | } |
| @@ -26,10 +23,7 @@ func TestTryReadFloat64(t *testing.T) { | |||
| 26 | bitreader := Reader(bytes.NewReader(TestArray[:]), false) | 23 | bitreader := Reader(bytes.NewReader(TestArray[:]), false) |
| 27 | expected := []float64{3.68828741038253948851462939603e+236} | 24 | expected := []float64{3.68828741038253948851462939603e+236} |
| 28 | for i := range expected { | 25 | for i := range expected { |
| 29 | value, err := bitreader.TryReadFloat64() | 26 | value := bitreader.TryReadFloat64() |
| 30 | if err != nil { | ||
| 31 | t.Fatal(err) | ||
| 32 | } | ||
| 33 | if value != expected[i] { | 27 | if value != expected[i] { |
| 34 | t.Fatalf("TryReadFloat64 FAIL for index %d: Expected %f, Got %f", i, expected[i], value) | 28 | t.Fatalf("TryReadFloat64 FAIL for index %d: Expected %f, Got %f", i, expected[i], value) |
| 35 | } | 29 | } |
| @@ -40,10 +34,7 @@ func TestTryReadInt8(t *testing.T) { | |||
| 40 | bitreader := Reader(bytes.NewReader(TestArray[:]), false) | 34 | bitreader := Reader(bytes.NewReader(TestArray[:]), false) |
| 41 | expected := []int{113, 13, 0} | 35 | expected := []int{113, 13, 0} |
| 42 | for i := range expected { | 36 | for i := range expected { |
| 43 | value, err := bitreader.TryReadInt8() | 37 | value := bitreader.TryReadInt8() |
| 44 | if err != nil { | ||
| 45 | t.Fatal(err) | ||
| 46 | } | ||
| 47 | if int(value) != expected[i] { | 38 | if int(value) != expected[i] { |
| 48 | t.Fatalf("TryReadInt8 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) | 39 | t.Fatalf("TryReadInt8 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) |
| 49 | } | 40 | } |
| @@ -54,10 +45,7 @@ func TestTryReadInt16(t *testing.T) { | |||
| 54 | bitreader := Reader(bytes.NewReader(TestArray[:]), false) | 45 | bitreader := Reader(bytes.NewReader(TestArray[:]), false) |
| 55 | expected := []int{28941, 0, 41499, 0} | 46 | expected := []int{28941, 0, 41499, 0} |
| 56 | for i := range expected { | 47 | for i := range expected { |
| 57 | value, err := bitreader.TryReadInt16() | 48 | value := bitreader.TryReadInt16() |
| 58 | if err != nil { | ||
| 59 | t.Fatal(err) | ||
| 60 | } | ||
| 61 | if int(value) != expected[i] { | 49 | if int(value) != expected[i] { |
| 62 | t.Fatalf("TryReadInt16 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) | 50 | t.Fatalf("TryReadInt16 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) |
| 63 | } | 51 | } |
| @@ -68,10 +56,7 @@ func TestTryReadInt32(t *testing.T) { | |||
| 68 | bitreader := Reader(bytes.NewReader(TestArray[:]), false) | 56 | bitreader := Reader(bytes.NewReader(TestArray[:]), false) |
| 69 | expected := []int{1896677376, 2719678464} | 57 | expected := []int{1896677376, 2719678464} |
| 70 | for i := range expected { | 58 | for i := range expected { |
| 71 | value, err := bitreader.TryReadInt32() | 59 | value := bitreader.TryReadInt32() |
| 72 | if err != nil { | ||
| 73 | t.Fatal(err) | ||
| 74 | } | ||
| 75 | if int(value) != expected[i] { | 60 | if int(value) != expected[i] { |
| 76 | t.Fatalf("TryReadInt32 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) | 61 | t.Fatalf("TryReadInt32 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) |
| 77 | } | 62 | } |
| @@ -82,10 +67,7 @@ func TestTryReadInt64(t *testing.T) { | |||
| 82 | bitreader := Reader(bytes.NewReader(TestArray[:]), false) | 67 | bitreader := Reader(bytes.NewReader(TestArray[:]), false) |
| 83 | expected := []int{8146167303702773760} | 68 | expected := []int{8146167303702773760} |
| 84 | for i := range expected { | 69 | for i := range expected { |
| 85 | value, err := bitreader.TryReadInt64() | 70 | value := bitreader.TryReadInt64() |
| 86 | if err != nil { | ||
| 87 | t.Fatal(err) | ||
| 88 | } | ||
| 89 | if int(value) != expected[i] { | 71 | if int(value) != expected[i] { |
| 90 | t.Fatalf("TryReadInt64 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) | 72 | t.Fatalf("TryReadInt64 FAIL for index %d: Expected %d, Got %d", i, expected[i], value) |
| 91 | } | 73 | } |