Исходники и презентации
This commit is contained in:
49
homework/allocator/homework_test.go
Normal file
49
homework/allocator/homework_test.go
Normal file
@ -0,0 +1,49 @@
|
||||
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))
|
||||
}
|
||||
Reference in New Issue
Block a user