.IndexOf variants moved to Recyclable.Collections package.

This commit is contained in:
mlemanczyk committed 2023-12-18 15:28:07 +01:00
1 parent b3c8e49600
commit de3b48830c
4 files changed
+5 -106

No files matched your search

@@ -661,46 +661,6 @@ namespace Recyclable.CollectionsTests
}
}
[Theory]
[MemberData(nameof(RecyclableLongListTestData.SourceDataWithItemIndexVariants), MemberType = typeof(RecyclableLongListTestData))]
public void IndexOfShouldReturnCorrectIndexesWhenConstrainedCount(string testCase, IEnumerable<long> testData, int itemsCount, in long[] itemIndexes)
{
// Prepare
using var list = new RecyclableList<long>(testData, itemsCount);
var expectedData = testData.ToList();
foreach (var itemIndex in itemIndexes)
{
var expected = expectedData.IndexOf(expectedData[(int)itemIndex], (int)itemIndex, (int)(itemsCount - itemIndex));
// Act
var actual = list.IndexOf(expectedData[(int)itemIndex], (int)itemIndex, (int)(itemsCount - itemIndex));
// Validate
_ = actual.Should().Be((int)itemIndex).And.Be(expected);
}
}
[Theory]
[MemberData(nameof(RecyclableLongListTestData.SourceDataWithItemIndexVariants), MemberType = typeof(RecyclableLongListTestData))]
public void IndexOfShouldReturnCorrectIndexesWhenConstrainedIndex(string testCase, IEnumerable<long> testData, int itemsCount, in long[] itemIndexes)
{
// Prepare
using var list = new RecyclableList<long>(testData, itemsCount);
var expectedData = testData.ToList();
foreach (var itemIndex in itemIndexes)
{
var expected = expectedData.IndexOf(expectedData[(int)itemIndex], (int)itemIndex);
// Act
var actual = list.IndexOf(expectedData[(int)itemIndex], (int)itemIndex);
// Validate
_ = actual.Should().Be((int)itemIndex).And.Be(expected);
}
}
[Theory]
[MemberData(nameof(RecyclableLongListTestData.SourceDataWithItemIndexVariants), MemberType = typeof(RecyclableLongListTestData))]
public void InsertRangeShouldAddItemsInTheRightPosition(string testCase, IEnumerable<long> testData, int itemsCount, in long[] itemIndexes)
@@ -734,8 +734,8 @@ namespace Recyclable.CollectionsTests
}
[Theory]
[MemberData(nameof(RecyclableLongListTestData.SourceDataWithItemIndexVariants), MemberType = typeof(RecyclableLongListTestData))]
public void GetRangeShouldReturnCorrectItems(string testCase, IEnumerable<long> testData, int itemsCount, in long[] itemIndexes)
[MemberData(nameof(RecyclableLongListTestData.SourceDataWithBlockSizeWithItemIndexWithRangeVariants), MemberType = typeof(RecyclableLongListTestData))]
public void GetRangeShouldReturnCorrectItems(string testCase, IEnumerable<long> testData, int itemsCount, int minBlockSize, in (long ItemIndex, long RangedItemsCount)[] itemRanges)
{
_ = testData.Any().Should().BeTrue("we need items on the list that we can look for");
@@ -743,13 +743,12 @@ namespace Recyclable.CollectionsTests
using var list = new RecyclableLongList<long>(testData, initialCapacity: itemsCount);
var expectedData = testData.ToList();
foreach (var itemIndex in itemIndexes)
foreach (var (itemIndex, rangedItemsCount) in itemRanges)
{
int startingIndex = (int)Math.Min(1, itemIndex);
var expectedRangeItems = expectedData.GetRange(startingIndex, (int)itemIndex);
var expectedRangeItems = expectedData.GetRange((int)itemIndex, (int)rangedItemsCount);
// Act
using var rangeItems = list.GetRange(startingIndex, (int)itemIndex);
using var rangeItems = list.GetRange((int)itemIndex, (int)rangedItemsCount);
// Validate
_ = rangeItems.Count.Should().Be(expectedRangeItems.Count);
@@ -757,46 +756,6 @@ namespace Recyclable.CollectionsTests
}
}
[Theory]
[MemberData(nameof(RecyclableLongListTestData.SourceDataWithItemIndexVariants), MemberType = typeof(RecyclableLongListTestData))]
public void IndexOfShouldReturnCorrectIndexesWhenConstrainedCount(string testCase, IEnumerable<long> testData, int itemsCount, in long[] itemIndexes)
{
// Prepare
using var list = new RecyclableLongList<long>(testData, initialCapacity: itemsCount);
var expectedData = testData.ToList();
foreach (var itemIndex in itemIndexes)
{
var expected = expectedData.IndexOf(expectedData[(int)itemIndex], (int)itemIndex, (int)(itemsCount - itemIndex));
// Act
var actual = list.IndexOf(expectedData[(int)itemIndex], (int)itemIndex, (int)(itemsCount - itemIndex));
// Validate
_ = actual.Should().Be((int)itemIndex).And.Be(expected);
}
}
[Theory]
[MemberData(nameof(RecyclableLongListTestData.SourceDataWithItemIndexVariants), MemberType = typeof(RecyclableLongListTestData))]
public void IndexOfShouldReturnCorrectIndexesWhenConstrainedIndex(string testCase, IEnumerable<long> testData, int itemsCount, in long[] itemIndexes)
{
// Prepare
using var list = new RecyclableLongList<long>(testData, initialCapacity: itemsCount);
var expectedData = testData.ToList();
foreach (var itemIndex in itemIndexes)
{
var expected = expectedData.IndexOf(expectedData[(int)itemIndex], (int)itemIndex);
// Act
var actual = list.IndexOf(expectedData[(int)itemIndex], (int)itemIndex);
// Validate
_ = actual.Should().Be((int)itemIndex).And.Be(expected);
}
}
[Theory]
[MemberData(nameof(RecyclableLongListTestData.SourceDataWithItemIndexVariants), MemberType = typeof(RecyclableLongListTestData))]
public void InsertRangeShouldAddItemsInTheRightPosition(string testCase, IEnumerable<long> testData, int itemsCount, in long[] itemIndexes)
@@ -6,14 +6,6 @@ namespace Recyclable.Collections
public static class zzzRecyclableListCompatibilityListIndexOf
#pragma warning restore IDE1006 // Naming Styles
{
public static int IndexOf<T>(this RecyclableList<T> list, T item, int index) => list._count != 0
? Array.IndexOf(list._memoryBlock, item, index, list._count - index)
: RecyclableDefaults.ItemNotFoundIndex;
public static int IndexOf<T>(this RecyclableList<T> list, T item, int index, int count) => list._count != 0
? Array.IndexOf(list._memoryBlock, item, index, count)
: RecyclableDefaults.ItemNotFoundIndex;
public static int LastIndexOf<T>(this RecyclableList<T> list, T item) => list._count != 0
? Array.LastIndexOf(list._memoryBlock, item, list._count - 1)
: RecyclableDefaults.ItemNotFoundIndex;
@@ -6,18 +6,6 @@ namespace Recyclable.Collections
public static class zzzRecyclableLongListCompatibilityListIndexOf
#pragma warning restore IDE1006 // Naming Styles
{
public static int IndexOf<T>(this RecyclableLongList<T> list, T item, int index)
//=> list._count != 0
// ? Array.IndexOf(list._memoryBlock, item, index, list._count - index)
// : RecyclableDefaults.ItemNotFoundIndex;
=> throw new NotImplementedException();
public static int IndexOf<T>(this RecyclableLongList<T> list, T item, int index, int count)
//=> list._count != 0
// ? Array.IndexOf(list._memoryBlock, item, index, count)
// : RecyclableDefaults.ItemNotFoundIndex;
=> throw new NotImplementedException();
public static int LastIndexOf<T>(this RecyclableLongList<T> list, T item)
//=> list._count != 0
// ? Array.LastIndexOf(list._memoryBlock, item, list._count - 1)