public void Use_Pool() { var pool = new RememberingPool(ArrayPool <byte> .Shared); var sut = new CircularBuffer(pool); sut.WriteStream.Write(new byte[] { 7, 5, 6, 8 }, 0, 4); pool.Operations.Should().BePositive(); }
public void Return_Arrays_To_Pool_On_Dispose() { var pool = new RememberingPool(ArrayPool <byte> .Shared); var sut = new CircularBuffer(pool); sut.WriteStream.Write(new byte[] { 7, 5, 6, 8 }, 0, 4); sut.Dispose(); pool.HasCurrentRentArrays.Should().BeFalse(); }
public void Return_Rent_Arrays_In_Pool() { var seed = Guid.NewGuid().GetHashCode(); Console.WriteLine($"Seed is {seed}"); var random = new Random(seed); var input = random.NextBytes(kb * kb, 100 * kb * kb); var pool = new RememberingPool(ArrayPool <byte> .Shared); using (var sut = new CircularBuffer(pool)) { RanRandomOperations(sut, input, random); } pool.HasCurrentRentArrays.Should().BeFalse(); }
public void Return_All_Arrays_To_Pool_When_Read_To_End() { var pool = new RememberingPool(ArrayPool <byte> .Shared); using var stream = fixture.Create( output => new StreamWriter(output, Encoding.UTF8), Strings(15_000), pool, (output, animal) => { output.WriteLine(animal); } ); using var reader = new StreamReader(stream, Encoding.UTF8); reader.ReadToEnd(); pool.HasCurrentRentArrays.Should().BeFalse(); }
public void Use_Pool() { var pool = new RememberingPool(ArrayPool <byte> .Shared); using var stream = fixture.Create( output => new StreamWriter(output, Encoding.UTF8), Strings(15_000), pool, (output, animal) => { output.WriteLine(animal); } ); using var reader = new StreamReader(stream, Encoding.UTF8); reader.ReadToEnd(); pool.Operations.Should().BePositive(); }