Add AddRange overloads for priority queue

This commit is contained in:
Marek Lemańczyk committed 2025-09-16 13:52:10 +02:00
1 parent 67630e3797
commit d8440fe8c9
2 files changed
+305

No files matched your search

@@ -93,6 +93,53 @@ namespace Recyclable.CollectionsTests
_ = result.Should().Equal(expected);
}
[Fact]
public void AddRangeArrayShouldAddItemsInSortedOrder()
{
using var queue = new RecyclablePriorityQueue<int>();
queue.AddRange(_testData);
var result = new List<int>();
while (queue.LongCount > 0)
{
result.Add(queue.Dequeue());
}
_ = result.Should().Equal(_testData.Order());
}
[Fact]
public void AddRangeListShouldAddItemsInSortedOrder()
{
using var queue = new RecyclablePriorityQueue<int>();
queue.AddRange(new List<int>(_testData));
var result = new List<int>();
while (queue.LongCount > 0)
{
result.Add(queue.Dequeue());
}
_ = result.Should().Equal(_testData.Order());
}
[Fact]
public void AddRangeArrayShouldNotOverrideItems()
{
using var queue = new RecyclablePriorityQueue<int>();
queue.AddRange(_testData);
queue.AddRange(_testData);
var expected = _testData.Concat(_testData).Order().ToArray();
var result = new List<int>();
while (queue.LongCount > 0)
{
result.Add(queue.Dequeue());
}
_ = result.Should().Equal(expected);
}
[Fact]
public void AddRangeShouldAcceptNulls()
{