AioNet/AioNet.LinqTest/ExtendedLinqTest.cs
2024-05-07 22:08:21 +02:00

42 lines
1.1 KiB
C#

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());
}
}
}