[TestCase(Constants.KB + 11, 256)] // content doesn't line up with buffers (extremely unlikely any array pool implementation will add exactly 11 bytes more than requested across 4 buffers) public async Task WriteStream(int dataSize, int bufferPartitionSize) { // Arrange byte[] originalData = GetRandomBuffer(dataSize); byte[] readData = new byte[dataSize]; PooledMemoryStream pooledMemoryStream = new PooledMemoryStream(ArrayPool <byte> .Shared, 0, bufferPartitionSize); // Act await pooledMemoryStream.WriteAsync(originalData, 0, dataSize); pooledMemoryStream.Position = 0; await pooledMemoryStream.ReadAsync(readData, 0, dataSize); // Also testing that clear works. pooledMemoryStream.Clear(); // Assert AssertSequenceEqual(originalData, readData); Assert.AreEqual(0, pooledMemoryStream.Position); }