From 97e60e381b16b9dadd3a829f0784473039cee3d1 Mon Sep 17 00:00:00 2001 From: mlemanczyk Date: Wed, 17 Jan 2024 20:39:09 +0100 Subject: [PATCH] IndexOfParallelShouldNotFindAnythingWhenBeyondRange test reworked to use BigSourceDataWithOutOfRangeItemIndexesWithRangeTheoryData. --- .../RecyclableLongListTests.cs | 30 +++++-------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/Recyclable.CollectionsTests/RecyclableLongListTests.cs b/Recyclable.CollectionsTests/RecyclableLongListTests.cs index dee677c..b6aa5cf 100644 --- a/Recyclable.CollectionsTests/RecyclableLongListTests.cs +++ b/Recyclable.CollectionsTests/RecyclableLongListTests.cs @@ -652,33 +652,17 @@ namespace Recyclable.CollectionsTests } [Theory] - [ClassData(typeof(BlockSizeTheoryData))] - public void IndexOfParallelShouldNotFindAnythingWhenBeyondRange(int blockSize) + [ClassData(typeof(BigSourceDataWithOutOfRangeItemIndexesWithRangeTheoryData))] + public void IndexOfParallelShouldNotFindAnythingWhenBeyondRange(string testCase, IEnumerable testData, long itemsCount, int blockSize, IEnumerable<(long itemIndex, long rangeStartItemIndex, long rangeItemsCount)> itemIndexesWithRanges) { - const long ItemsCount = RecyclableDefaults.MinItemsCountForParallelization * 3; - // Prepare - var testData = RecyclableLongListTestData.CreateTestData(ItemsCount).ToArray(); - using var list = new RecyclableLongList(testData, minBlockSize: blockSize, initialCapacity: ItemsCount); + using var list = new RecyclableLongList(testData, minBlockSize: blockSize, initialCapacity: itemsCount); + using var expectedData = testData.ToRecyclableLongList(); - var itemIndexes = RecyclableLongListTestData.CreateItemIndexVariants(ItemsCount, blockSize); - foreach (var itemIndexForGenerator in itemIndexes) + foreach (var (itemIndex, rangeStartItemIndex, rangedItemsCount) in itemIndexesWithRanges) { - var itemRanges = RecyclableLongListTestData.CombineItemIndexWithRange(itemIndexForGenerator, ItemsCount); - foreach (var (itemIndex, rangedItemsCount) in itemRanges) - { - // Try finding the item prior the given itemIndex - if (itemIndex > 0) - { - _ = list.IndexOf(testData[itemIndex - 1], (int)itemIndex, (int)rangedItemsCount).Should().Be(-1); - } - - // Try finding the item after the given item range - if (itemIndex + rangedItemsCount < ItemsCount) - { - _ = list.IndexOf(testData[itemIndex + rangedItemsCount], (int)itemIndex, (int)rangedItemsCount).Should().Be(-1); - } - } + // Act & Validate + _ = list.IndexOf(expectedData[itemIndex], (int)rangeStartItemIndex, (int)rangedItemsCount).Should().Be(-1); } }