diff --git a/d2common/d2datautils/bitmuncher_test.go b/d2common/d2datautils/bitmuncher_test.go index 58ecd4e4..d8cfaf57 100644 --- a/d2common/d2datautils/bitmuncher_test.go +++ b/d2common/d2datautils/bitmuncher_test.go @@ -2,46 +2,37 @@ package d2datautils import ( "testing" + + "github.com/stretchr/testify/assert" ) -func getTestData() []byte { - result := []byte{33, 23, 4, 33, 192, 243} - - return result -} +var testData = []byte{33, 23, 4, 33, 192, 243} //nolint:gochecknoglobals // just a test func TestBitmuncherCopy(t *testing.T) { - bm1 := CreateBitMuncher(getTestData(), 0) + bm1 := CreateBitMuncher(testData, 0) bm2 := CopyBitMuncher(bm1) for i := range bm1.data { - if bm1.data[i] != bm2.data[i] { - t.Fatal("original bitmuncher isn't equal to copied") - } + assert.Equal(t, bm1.data[i], bm2.data[i], "original bitmuncher isn't equal to copied") } } func TestBitmuncherSetOffset(t *testing.T) { - bm := CreateBitMuncher(getTestData(), 0) + bm := CreateBitMuncher(testData, 0) bm.SetOffset(5) - if bm.Offset() != 5 { - t.Fatal("Set Offset method didn't set offset to expected number") - } + assert.Equal(t, bm.Offset(), 5, "Set Offset method didn't set offset to expected number") } func TestBitmuncherSteBitsRead(t *testing.T) { - bm := CreateBitMuncher(getTestData(), 0) + bm := CreateBitMuncher(testData, 0) bm.SetBitsRead(8) - if bm.BitsRead() != 8 { - t.Fatal("Set bits read method didn't set bits read to expected value") - } + assert.Equal(t, bm.BitsRead(), 8, "Set bits read method didn't set bits read to expected value") } func TestBitmuncherReadBit(t *testing.T) { - td := getTestData() - bm := CreateBitMuncher(td, 0) + bm := CreateBitMuncher(testData, 0) var result byte @@ -50,46 +41,67 @@ func TestBitmuncherReadBit(t *testing.T) { result |= byte(v) << byte(i) } - if result != td[0] { - t.Fatal("result of rpeated 8 times get bit didn't return expected byte") - } + assert.Equal(t, result, testData[0], "result of rpeated 8 times get bit didn't return expected byte") } func TestBitmuncherGetBits(t *testing.T) { - td := getTestData() - bm := CreateBitMuncher(td, 0) + bm := CreateBitMuncher(testData, 0) - res := bm.GetBits(bitsPerByte) + assert.Equal(t, byte(bm.GetBits(bitsPerByte)), testData[0], "get bits didn't return expected value") +} - if byte(res) != td[0] { - t.Fatal("get bits didn't return expected value") - } +func TestBitmuncherGetNoBits(t *testing.T) { + bm := CreateBitMuncher(testData, 0) + + assert.Equal(t, bm.GetBits(0), uint32(0), "get bits didn't return expected value: 0") +} + +func TestBitmuncherGetSignedBits(t *testing.T) { + bm := CreateBitMuncher(testData, 0) + + assert.Equal(t, bm.GetSignedBits(6), -31, "get signed bits didn't return expected value") +} + +func TestBitmuncherGetNoSignedBits(t *testing.T) { + bm := CreateBitMuncher(testData, 0) + + assert.Equal(t, bm.GetSignedBits(0), 0, "get signed bits didn't return expected value") +} + +func TestBitmuncherGetOneSignedBit(t *testing.T) { + bm := CreateBitMuncher(testData, 0) + + assert.Equal(t, bm.GetSignedBits(1), -1, "get signed bits didn't return expected value") } func TestBitmuncherSkipBits(t *testing.T) { - td := getTestData() - bm := CreateBitMuncher(td, 0) + bm := CreateBitMuncher(testData, 0) bm.SkipBits(bitsPerByte) - if bm.GetByte() != td[1] { - t.Fatal("skipping 8 bits didn't moved bit muncher's position into next byte") - } + assert.Equal(t, bm.GetByte(), testData[1], "skipping 8 bits didn't moved bit muncher's position into next byte") } func TestBitmuncherGetInt32(t *testing.T) { - td := getTestData() - bm := CreateBitMuncher(td, 0) + bm := CreateBitMuncher(testData, 0) var testInt int32 for i := 0; i < bytesPerint32; i++ { - testInt |= int32(td[i]) << int32(bitsPerByte*i) + testInt |= int32(testData[i]) << int32(bitsPerByte*i) } - bmInt := bm.GetInt32() - - if bmInt != testInt { - t.Fatal("int32 value wasn't returned properly") - } + assert.Equal(t, bm.GetInt32(), testInt, "int32 value wasn't returned properly") +} + +func TestBitmuncherGetUint32(t *testing.T) { + bm := CreateBitMuncher(testData, 0) + + var testUint uint32 + + for i := 0; i < bytesPerint32; i++ { + testUint |= uint32(testData[i]) << uint32(bitsPerByte*i) + } + + assert.Equal(t, bm.GetUInt32(), testUint, "uint32 value wasn't returned properly") }