AioNet/AioNet.LinqTest/ExtendedLinqTest.cs

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.True(foundCombinations.Count() == 3);
}
[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.True(foundCombination.Count() == subsequenceLength);
}
}
}