private object RoundTrip(IType type, object obj) { var buffer = new MemoryStream(new byte[type.SizeOf(obj)]); type.Write(buffer, obj); //assertFalse("The buffer should now be full.", buffer.hasRemaining()); buffer.Position.Should().Be(buffer.Length); buffer.Position = 0; object read = type.Read(buffer); //assertFalse("All bytes should have been read.", buffer.hasRemaining()); buffer.Position.Should().Be(buffer.Length); return read; }