func TestAuxUnsafeBytes(t *testing.T) {
	var objBytesManaged = createObjectBytes(object)
	assert.Eq(t, 216, len(objBytesManaged))
	assert.Eq(t, 52, int(objBytesManaged[0]))
	assert.Eq(t, 51, int(objBytesManaged[57]))
	var unsafeBytes = getUnsafeBytes(objBytesManaged)
	var safeBytes = make([]byte, len(objBytesManaged))
	copy(safeBytes, objBytesManaged)
	assert.Eq(t, objBytesManaged, unsafeBytes)
	assert.NotEq(t, unsafe.Pointer(&objBytesManaged), unsafe.Pointer(&unsafeBytes))
	assert.Eq(t, unsafe.Pointer(&objBytesManaged[0]), unsafe.Pointer(&unsafeBytes[0]))
	assert.Eq(t, objBytesManaged, safeBytes)
	assert.NotEq(t, unsafe.Pointer(&objBytesManaged), unsafe.Pointer(&safeBytes))
	clearBytes(&objBytesManaged)
	assert.Eq(t, 216, len(objBytesManaged))
	assert.Eq(t, 0, int(objBytesManaged[0]))
	assert.Eq(t, objBytesManaged, unsafeBytes)
	assert.Eq(t, 52, int(safeBytes[0]))
}
This test is here to make sure our flatbuffers integration is correct and mainly focuses on memory management
because of how the c-api integration is implemented (not copying C void* but mapping it to []byte).
The test covers all supported types (see entity.go in the test directory).
It creates an FB object, creates an unsafe copy (similar to the c-arrays.go) and than clears the memory behind that
unsafe copy. Afterwards, it tests that the "parsed" flatbuffers object is still the same as the written one.
this is just a test of the auxiliary functions in this file, so that we can concentrate on actual tests elsewhere
package fbutils
import (
	"fmt"
	"reflect"
	"testing"
	"unsafe"
	"github.com/google/flatbuffers/go"
	"github.com/objectbox/objectbox-go/test/assert"
)