Unit tests extended. Missing .ToRecyclableList() & .ToRecyclableLongList() variants added. Support for all major interfaces finished. README.md updated.

This commit is contained in:
mlemanczyk committed 2023-09-10 17:42:08 +02:00
1 parent 9cd2096783
commit a315ff80d5
8 files changed
+791 -183

No files matched your search

@@ -1,6 +1,7 @@
using FluentAssertions;
using Recyclable.Collections;
using Recyclable.Collections.Linq;
using System.Collections;
#pragma warning disable xUnit1026, RCS1163, IDE0060, RCS1235
@@ -29,10 +30,34 @@ namespace Recyclable.CollectionsTests
using var list = new RecyclableList<long>();
// Act
if (testCase.Contains("ReadOnlySpan[", StringComparison.OrdinalIgnoreCase))
if (testCase.Contains("Array[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((Array)testData);
}
else if (testCase.Contains("ICollection[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((ICollection)testData);
}
else if (testCase.Contains("ICollection<T>[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((ICollection<long>)testData);
}
else if (testCase.Contains("IEnumerable[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((IEnumerable)testData);
}
else if (testCase.Contains("IReadOnlyList<T>[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((IReadOnlyList<long>)testData);
}
else if (testCase.Contains("ReadOnlySpan<T>[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange(new ReadOnlySpan<long>((long[])testData));
}
else if (testCase.Contains("Span<T>[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange(new Span<long>((long[])testData));
}
else if (testData is long[] testDataArray)
{
list.AddRange(testDataArray);
@@ -76,10 +101,34 @@ namespace Recyclable.CollectionsTests
using var list = new RecyclableList<long>();
// Act
if (testCase.Contains("ReadOnlySpan[", StringComparison.OrdinalIgnoreCase))
if (testCase.Contains("Array[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((Array)testData);
}
else if (testCase.Contains("ICollection[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((ICollection)testData);
}
else if (testCase.Contains("ICollection<T>[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((ICollection<long>)testData);
}
else if (testCase.Contains("IEnumerable[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((IEnumerable)testData);
}
else if (testCase.Contains("IReadOnlyList<T>[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((IReadOnlyList<long>)testData);
}
else if (testCase.Contains("ReadOnlySpan<T>[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange(new ReadOnlySpan<long>((long[])testData));
}
else if (testCase.Contains("Span<T>[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange(new Span<long>((long[])testData));
}
else if (testData is long[] testDataArray)
{
list.AddRange(testDataArray);
@@ -123,12 +172,43 @@ namespace Recyclable.CollectionsTests
using var list = new RecyclableList<long>();
// Act
if (testCase.Contains("ReadOnlySpan[", StringComparison.OrdinalIgnoreCase))
if (testCase.Contains("Array[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((Array)testData);
list.AddRange((Array)testData);
}
else if (testCase.Contains("ICollection[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((ICollection)testData);
list.AddRange((ICollection)testData);
}
else if (testCase.Contains("ICollection<T>[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((ICollection<long>)testData);
list.AddRange((ICollection<long>)testData);
}
else if (testCase.Contains("IEnumerable[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((IEnumerable)testData);
list.AddRange((IEnumerable)testData);
}
else if (testCase.Contains("IReadOnlyList<T>[", StringComparison.OrdinalIgnoreCase))
{
list.AddRange((IReadOnlyList<long>)testData);
list.AddRange((IReadOnlyList<long>)testData);
}
else if (testCase.Contains("ReadOnlySpan<T>[", StringComparison.OrdinalIgnoreCase))
{
var readOnlySpan = new ReadOnlySpan<long>((long[])testData);
list.AddRange(readOnlySpan);
list.AddRange(readOnlySpan);
}
else if (testCase.Contains("Span<T>[", StringComparison.OrdinalIgnoreCase))
{
var readOnlySpan = new Span<long>((long[])testData);
list.AddRange(readOnlySpan);
list.AddRange(readOnlySpan);
}
else if (testData is long[] testDataArray)
{
list.AddRange(testDataArray);