From de3b48830c85977f66d8e088e1304bcfeddc0504 Mon Sep 17 00:00:00 2001 From: mlemanczyk Date: Mon, 18 Dec 2023 15:28:07 +0100 Subject: [PATCH] .IndexOf variants moved to Recyclable.Collections package. --- .../RecyclableListCompatibilityListTests.cs | 40 --------------- ...ecyclableLongListCompatibilityListTests.cs | 51 ++----------------- ...cyclableList.Compatibility.List.IndexOf.cs | 8 --- ...ableLongList.Compatibility.List.IndexOf.cs | 12 ----- 4 files changed, 5 insertions(+), 106 deletions(-) diff --git a/Recyclable.Collections.Compatibility.List.Tests/RecyclableListCompatibilityListTests.cs b/Recyclable.Collections.Compatibility.List.Tests/RecyclableListCompatibilityListTests.cs index 8fedcca..f895f30 100644 --- a/Recyclable.Collections.Compatibility.List.Tests/RecyclableListCompatibilityListTests.cs +++ b/Recyclable.Collections.Compatibility.List.Tests/RecyclableListCompatibilityListTests.cs @@ -661,46 +661,6 @@ namespace Recyclable.CollectionsTests } } - [Theory] - [MemberData(nameof(RecyclableLongListTestData.SourceDataWithItemIndexVariants), MemberType = typeof(RecyclableLongListTestData))] - public void IndexOfShouldReturnCorrectIndexesWhenConstrainedCount(string testCase, IEnumerable testData, int itemsCount, in long[] itemIndexes) - { - // Prepare - using var list = new RecyclableList(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 testData, int itemsCount, in long[] itemIndexes) - { - // Prepare - using var list = new RecyclableList(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 testData, int itemsCount, in long[] itemIndexes) diff --git a/Recyclable.Collections.Compatibility.List.Tests/RecyclableLongListCompatibilityListTests.cs b/Recyclable.Collections.Compatibility.List.Tests/RecyclableLongListCompatibilityListTests.cs index 2dbe68a..fea8045 100644 --- a/Recyclable.Collections.Compatibility.List.Tests/RecyclableLongListCompatibilityListTests.cs +++ b/Recyclable.Collections.Compatibility.List.Tests/RecyclableLongListCompatibilityListTests.cs @@ -734,8 +734,8 @@ namespace Recyclable.CollectionsTests } [Theory] - [MemberData(nameof(RecyclableLongListTestData.SourceDataWithItemIndexVariants), MemberType = typeof(RecyclableLongListTestData))] - public void GetRangeShouldReturnCorrectItems(string testCase, IEnumerable testData, int itemsCount, in long[] itemIndexes) + [MemberData(nameof(RecyclableLongListTestData.SourceDataWithBlockSizeWithItemIndexWithRangeVariants), MemberType = typeof(RecyclableLongListTestData))] + public void GetRangeShouldReturnCorrectItems(string testCase, IEnumerable 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(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 testData, int itemsCount, in long[] itemIndexes) - { - // Prepare - using var list = new RecyclableLongList(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 testData, int itemsCount, in long[] itemIndexes) - { - // Prepare - using var list = new RecyclableLongList(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 testData, int itemsCount, in long[] itemIndexes) diff --git a/Recyclable.Collections.Compatibility.List/RecyclableList.Compatibility.List.IndexOf.cs b/Recyclable.Collections.Compatibility.List/RecyclableList.Compatibility.List.IndexOf.cs index f3cfdde..b78d7a0 100644 --- a/Recyclable.Collections.Compatibility.List/RecyclableList.Compatibility.List.IndexOf.cs +++ b/Recyclable.Collections.Compatibility.List/RecyclableList.Compatibility.List.IndexOf.cs @@ -6,14 +6,6 @@ namespace Recyclable.Collections public static class zzzRecyclableListCompatibilityListIndexOf #pragma warning restore IDE1006 // Naming Styles { - public static int IndexOf(this RecyclableList list, T item, int index) => list._count != 0 - ? Array.IndexOf(list._memoryBlock, item, index, list._count - index) - : RecyclableDefaults.ItemNotFoundIndex; - - public static int IndexOf(this RecyclableList list, T item, int index, int count) => list._count != 0 - ? Array.IndexOf(list._memoryBlock, item, index, count) - : RecyclableDefaults.ItemNotFoundIndex; - public static int LastIndexOf(this RecyclableList list, T item) => list._count != 0 ? Array.LastIndexOf(list._memoryBlock, item, list._count - 1) : RecyclableDefaults.ItemNotFoundIndex; diff --git a/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.IndexOf.cs b/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.IndexOf.cs index f5cb176..3f065ca 100644 --- a/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.IndexOf.cs +++ b/Recyclable.Collections.Compatibility.List/RecyclableLongList.Compatibility.List.IndexOf.cs @@ -6,18 +6,6 @@ namespace Recyclable.Collections public static class zzzRecyclableLongListCompatibilityListIndexOf #pragma warning restore IDE1006 // Naming Styles { - public static int IndexOf(this RecyclableLongList 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(this RecyclableLongList 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(this RecyclableLongList list, T item) //=> list._count != 0 // ? Array.LastIndexOf(list._memoryBlock, item, list._count - 1)