Starting with .NET 8, Eumerable.Range returns an instance of a private RangeIterator that implements IList<T> (see also dotnet/runtime#88249). A lot of the unit tests potentially went with the assumption that Eumerable.Range returns a pure sequence. There are some operators in MoreLINQ that are optimised for sources that are collections and/or lists so tests using Eumerable.Range may be testing those optimised paths rather than the actual intended path iterating the source as an IEnumerable<>. Those tests need to be revised to avoid Enumerable.Range altogether.
Potential candidates that need revision:
Starting with .NET 8,
Eumerable.Rangereturns an instance of a privateRangeIteratorthat implementsIList<T>(see also dotnet/runtime#88249). A lot of the unit tests potentially went with the assumption thatEumerable.Rangereturns a pure sequence. There are some operators in MoreLINQ that are optimised for sources that are collections and/or lists so tests usingEumerable.Rangemay be testing those optimised paths rather than the actual intended path iterating the source as anIEnumerable<>. Those tests need to be revised to avoidEnumerable.Rangealtogether.Potential candidates that need revision:
AggregateRightTestAggregateTestAppendTestAssertCountTestAtLeastTestAtMostTestBacksertTestChooseTestCompareCountTestConsumeTestCountBetweenTestCountByTestCountDownTestExactlyTestFlattenTestFoldTestGroupAdjacentTestInsertTestMemoizeTestMoveTestPadStartTestPairwiseTestPartitionTestPermutationsTestPrependTestPreScanTestRandomSubsetTestRepeatTestScanRightTestScanTestSequenceTestShuffleTestSkipLastTestSkipUntilTestSubsetTestTakeUntilTestTestingSequenceTestToDataTableTestTraverseTestTrySingleTestWindowLeftTestWindowRightTest