namespace AioNet.LinqTest; using AioNet.Linq; public class ExtendedLinqTest { [Fact] public void FindOneCombinationFor3Elements_SubsequenceLength3() { var foundCombinations = new[] { 1, 2, 3 }.Combinations(3); Assert.Single(foundCombinations); var onlyCombination = foundCombinations.First(); Assert.Contains(1, onlyCombination); Assert.Contains(2, onlyCombination); Assert.Contains(3, onlyCombination); } [Fact] public void FindThreeCombinationsFor3Elements_SubsequenceLength2() { var foundCombinations = new[] { 1, 2, 3 }.Combinations(2); Assert.Equal(3, foundCombinations.Count()); } [Theory] [InlineData(1)] [InlineData(2)] [InlineData(3)] [InlineData(4)] [InlineData(5)] public void EachSubsequenceIsCorrectLength(int subsequenceLength) { var foundCombinations = new[] { 1, 2, 3, 4, 5, 6 }.Combinations(subsequenceLength); foreach (var foundCombination in foundCombinations) { Assert.Equal(subsequenceLength, foundCombination.Count()); } } }