Files
deep_go/homework/allocator/homework_test.go

50 lines
1.1 KiB
Go
Raw Permalink Normal View History

package main
import (
"reflect"
"testing"
"unsafe"
"github.com/stretchr/testify/assert"
)
// go test -v homework_test.go
func Defragment(memory []byte, pointers []unsafe.Pointer) {
// need to implement
}
func TestDefragmentation(t *testing.T) {
var fragmentedMemory = []byte{
0xFF, 0x00, 0x00, 0x00,
0x00, 0xFF, 0x00, 0x00,
0x00, 0x00, 0xFF, 0x00,
0x00, 0x00, 0x00, 0xFF,
}
var fragmentedPointers = []unsafe.Pointer{
unsafe.Pointer(&fragmentedMemory[0]),
unsafe.Pointer(&fragmentedMemory[5]),
unsafe.Pointer(&fragmentedMemory[10]),
unsafe.Pointer(&fragmentedMemory[15]),
}
var defragmentedPointers = []unsafe.Pointer{
unsafe.Pointer(&fragmentedMemory[0]),
unsafe.Pointer(&fragmentedMemory[1]),
unsafe.Pointer(&fragmentedMemory[2]),
unsafe.Pointer(&fragmentedMemory[3]),
}
var defragmentedMemory = []byte{
0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
}
Defragment(fragmentedMemory, fragmentedPointers)
assert.True(t, reflect.DeepEqual(defragmentedMemory, fragmentedMemory))
assert.True(t, reflect.DeepEqual(defragmentedPointers, fragmentedPointers))
}