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)) }