public void Allocate_UploadBuffer_CopyFrom_Range(Device device, int sourceOffset, int destinationOffset, int count) { using UploadBuffer <int> uploadBuffer = device.Get().AllocateUploadBuffer <int>(4096); new Random(42).NextBytes(uploadBuffer.Span.AsBytes()); using ReadOnlyBuffer <int> readOnlyBuffer = device.Get().AllocateReadOnlyBuffer <int>(uploadBuffer.Length); readOnlyBuffer.CopyFrom(uploadBuffer, sourceOffset, destinationOffset, count); int[] result = readOnlyBuffer.ToArray(destinationOffset, count); Assert.AreEqual(result.Length, count); Assert.IsTrue(uploadBuffer.Span.Slice(sourceOffset, count).SequenceEqual(result)); }
public void Allocate_UploadBuffer_CopyFrom_Full(Device device) { using UploadBuffer <int> uploadBuffer = device.Get().AllocateUploadBuffer <int>(4096); new Random(42).NextBytes(uploadBuffer.Span.AsBytes()); using ReadOnlyBuffer <int> readOnlyBuffer = device.Get().AllocateReadOnlyBuffer <int>(uploadBuffer.Length); readOnlyBuffer.CopyFrom(uploadBuffer); int[] result = readOnlyBuffer.ToArray(); Assert.AreEqual(uploadBuffer.Length, result.Length); Assert.IsTrue(uploadBuffer.Span.SequenceEqual(result)); }