RecyclableLongListTestData.BigSourceDataWithBlockSizeVariants(), .BigSourceDataWithOutOfRangeItemIndexesWithRangeVariants() & there corresponding .Create...() methods added.
This commit is contained in:
1 parent
506ea0c2c8
commit
8d14689d8f
1 file changed
+42
@@ -184,6 +184,25 @@ namespace Recyclable.Collections.TestData
|
||||
}
|
||||
}
|
||||
|
||||
public static IEnumerable<(string TestCase, IEnumerable<long> TestData, long ItemsCount, int BlockSize)> CreateBigSourceDataWithBlockSize()
|
||||
{
|
||||
long itemsCount = Array.MaxLength;
|
||||
using var testData = CreateTestData(itemsCount).ToRecyclableLongList();
|
||||
foreach (var blockSize in BlockSizeVariants)
|
||||
{
|
||||
yield return ($"long[{itemsCount}]", testData, itemsCount, blockSize);
|
||||
}
|
||||
}
|
||||
|
||||
public static IEnumerable<(string TestCase, IEnumerable<long> TestData, long ItemsCount, int BlockSize, IEnumerable<(long ItemIndex, long RangeStartItemIndex, long RangeItemsCount)> ItemIndexesWithRange)> CreateBigSourceDataWithOutOfRangeItemIndexesWithRange()
|
||||
{
|
||||
foreach (var tc in CreateBigSourceDataWithBlockSize())
|
||||
{
|
||||
var outOfRangeItemIndexesWithRanges = CreateOutOfRangeItemIndexesWithRanges(tc.ItemsCount, tc.BlockSize).ToArray();
|
||||
yield return (tc.TestCase, tc.TestData, tc.ItemsCount, tc.BlockSize, outOfRangeItemIndexesWithRanges);
|
||||
}
|
||||
}
|
||||
|
||||
public static IEnumerable<long> CreateItemIndexVariants(long itemsCount, int blockSize)
|
||||
{
|
||||
if (itemsCount == 0)
|
||||
@@ -252,6 +271,27 @@ namespace Recyclable.Collections.TestData
|
||||
//return CreateItemIndexVariants();
|
||||
}
|
||||
|
||||
public static IEnumerable<(long ItemIndex, long RangeStartItemIndex, long RangeItemsCount)> CreateOutOfRangeItemIndexesWithRanges(long itemsCount, int blockSize)
|
||||
{
|
||||
var itemIndexes = CreateItemIndexVariants(itemsCount, blockSize);
|
||||
foreach (var itemIndexForGenerator in itemIndexes)
|
||||
{
|
||||
var itemRanges = CombineItemIndexWithRange(itemIndexForGenerator, itemsCount);
|
||||
foreach (var (itemIndex, rangedItemsCount) in itemRanges)
|
||||
{
|
||||
if (itemIndex > 0)
|
||||
{
|
||||
yield return (itemIndex - 1, itemIndex, rangedItemsCount);
|
||||
}
|
||||
|
||||
if (itemIndex + rangedItemsCount < itemsCount)
|
||||
{
|
||||
yield return (itemIndex + rangedItemsCount, itemIndex, rangedItemsCount);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static IEnumerable<object> CreateRefTestData(long itemsCount)
|
||||
{
|
||||
for (long index = 1; index <= itemsCount; index++)
|
||||
@@ -406,6 +446,8 @@ namespace Recyclable.Collections.TestData
|
||||
1, 2, 4, 16, RecyclableDefaults.MinPooledArrayLength - 5, (int)BitOperations.RoundUpToPowerOf2(RecyclableDefaults.MinPooledArrayLength)
|
||||
};
|
||||
|
||||
public static IEnumerable<(string TestCase, IEnumerable<long> TestData, long ItemsCount, int BlockSize)> BigSourceDataWithBlockSizeVariants { get; } = CreateBigSourceDataWithBlockSize();
|
||||
public static IEnumerable<(string TestCase, IEnumerable<long> TestData, long ItemsCount, int BlockSize, IEnumerable<(long ItemIndex, long RangeStartItemIndex, long RangeItemsCount)> ItemIndexesWithRange)> BigSourceDataWithOutOfRangeItemIndexesWithRangeVariants { get; } = CreateBigSourceDataWithOutOfRangeItemIndexesWithRange();
|
||||
public static IEnumerable<object[]> BlockSizeTestCases { get; } = BlockSizeVariants.Select(x => new object[] { x });
|
||||
|
||||
public static IEnumerable<(string TestCase, IEnumerable<long> TestData, long ItemsCount)> EmptySourceDataVariants { get; } = CreateSourceDataVariants(0);
|
||||
|
||||
Reference in new issue
Block a user