public void TestClone() { // Define variables and constants const ResourceUsage USAGE = ResourceUsage.Write; const uint NUM_INDICES = 21515; IndexBuffer firstBuffer = BufferFactory.NewIndexBuffer().WithUsage(USAGE).WithLength(NUM_INDICES); // Set up context // Execute IndexBuffer secondBuffer = firstBuffer.Clone(); IndexBuffer thirdBuffer = secondBuffer.Clone().WithLength(NUM_INDICES * 2U); // Assert outcome Assert.AreEqual(USAGE, secondBuffer.Usage); Assert.AreEqual(firstBuffer.Usage, secondBuffer.Usage); Assert.AreEqual(NUM_INDICES, secondBuffer.Length); Assert.AreEqual(firstBuffer.Length, secondBuffer.Length); Assert.AreEqual(USAGE, thirdBuffer.Usage); Assert.AreEqual(secondBuffer.Length * 2U, thirdBuffer.Length); firstBuffer.Dispose(); secondBuffer.Dispose(); thirdBuffer.Dispose(); }
public void TestCopyTo() { // Define variables and constants IndexBuffer srcBuffer = BufferFactory.NewIndexBuffer() .WithUsage(ResourceUsage.Immutable) .WithInitialData(Enumerable.Range(0, 3000).Select(@int => (uint)@int).ToArray()); IndexBuffer dstBuffer = srcBuffer.Clone() .WithUsage(ResourceUsage.DiscardWrite); // Set up context // Execute srcBuffer.CopyTo(dstBuffer); srcBuffer.CopyTo(dstBuffer, 100, 2000, 500); try { dstBuffer.CopyTo(srcBuffer); Assert.Fail(); } catch (ResourceOperationUnavailableException) { } #if !DEVELOPMENT && !RELEASE try { srcBuffer.CopyTo(dstBuffer, 1600, 2000, 500); Assert.Fail(); } catch (AssuranceFailedException) { } try { srcBuffer.CopyTo(dstBuffer, 0, 2000, 2000); Assert.Fail(); } catch (AssuranceFailedException) { } #endif // Assert outcome Assert.IsFalse(srcBuffer.CanBeCopyDestination); Assert.IsTrue(dstBuffer.CanBeCopyDestination); srcBuffer.Dispose(); dstBuffer.Dispose(); }