mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2024-12-29 05:27:20 -05:00
Merge pull request #1051 from gucio321/unit-tests
unit test: bitmuncher
This commit is contained in:
commit
5e1dbf56f0
95
d2common/d2datautils/bitmuncher_test.go
Normal file
95
d2common/d2datautils/bitmuncher_test.go
Normal file
@ -0,0 +1,95 @@
|
||||
package d2datautils
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func getTestData() []byte {
|
||||
result := []byte{33, 23, 4, 33, 192, 243}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
func TestBitmuncherCopy(t *testing.T) {
|
||||
bm1 := CreateBitMuncher(getTestData(), 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")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestBitmuncherSetOffset(t *testing.T) {
|
||||
bm := CreateBitMuncher(getTestData(), 0)
|
||||
bm.SetOffset(5)
|
||||
|
||||
if bm.Offset() != 5 {
|
||||
t.Fatal("Set Offset method didn't set offset to expected number")
|
||||
}
|
||||
}
|
||||
|
||||
func TestBitmuncherSteBitsRead(t *testing.T) {
|
||||
bm := CreateBitMuncher(getTestData(), 0)
|
||||
bm.SetBitsRead(8)
|
||||
|
||||
if bm.BitsRead() != 8 {
|
||||
t.Fatal("Set bits read method didn't set bits read to expected value")
|
||||
}
|
||||
}
|
||||
|
||||
func TestBitmuncherReadBit(t *testing.T) {
|
||||
td := getTestData()
|
||||
bm := CreateBitMuncher(td, 0)
|
||||
|
||||
var result byte
|
||||
|
||||
for i := 0; i < bitsPerByte; i++ {
|
||||
v := bm.GetBit()
|
||||
result |= byte(v) << byte(i)
|
||||
}
|
||||
|
||||
if result != td[0] {
|
||||
t.Fatal("result of rpeated 8 times get bit didn't return expected byte")
|
||||
}
|
||||
}
|
||||
|
||||
func TestBitmuncherGetBits(t *testing.T) {
|
||||
td := getTestData()
|
||||
bm := CreateBitMuncher(td, 0)
|
||||
|
||||
res := bm.GetBits(bitsPerByte)
|
||||
|
||||
if byte(res) != td[0] {
|
||||
t.Fatal("get bits didn't return expected value")
|
||||
}
|
||||
}
|
||||
|
||||
func TestBitmuncherSkipBits(t *testing.T) {
|
||||
td := getTestData()
|
||||
bm := CreateBitMuncher(td, 0)
|
||||
|
||||
bm.SkipBits(bitsPerByte)
|
||||
|
||||
if bm.GetByte() != td[1] {
|
||||
t.Fatal("skipping 8 bits didn't moved bit muncher's position into next byte")
|
||||
}
|
||||
}
|
||||
|
||||
func TestBitmuncherGetInt32(t *testing.T) {
|
||||
td := getTestData()
|
||||
bm := CreateBitMuncher(td, 0)
|
||||
|
||||
var testInt int32
|
||||
|
||||
for i := 0; i < bytesPerint32; i++ {
|
||||
testInt |= int32(td[i]) << int32(bitsPerByte*i)
|
||||
}
|
||||
|
||||
bmInt := bm.GetInt32()
|
||||
|
||||
if bmInt != testInt {
|
||||
t.Fatal("int32 value wasn't returned properly")
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user