76 lines
1.8 KiB
C#
76 lines
1.8 KiB
C#
using Numbers.NumberFactory;
|
|
|
|
namespace Numbers.Test.NumberFactory;
|
|
|
|
public sealed class EvenNumbersTests
|
|
{
|
|
[Fact]
|
|
public void LowerBound()
|
|
{
|
|
const long LowerBound = 3;
|
|
var numbers = Factory.Create(NumberType.Even, LowerBound, 9);
|
|
|
|
numbers.LowerBound.Should().Be(LowerBound);
|
|
}
|
|
|
|
[Fact]
|
|
public void UpperBound()
|
|
{
|
|
const long UpperBound = 9;
|
|
var numbers = Factory.Create(NumberType.Even, 3, UpperBound);
|
|
|
|
numbers.UpperBound.Should().Be(UpperBound);
|
|
}
|
|
|
|
[Fact]
|
|
public void Count()
|
|
{
|
|
var numbers = Factory.Create(NumberType.Even, 3, 11);
|
|
|
|
numbers.Length.Should().Be(4, "4, 6, 8, 10");
|
|
}
|
|
|
|
[Fact]
|
|
public void FirstIndex()
|
|
{
|
|
var numbers = Factory.Create(NumberType.Even, 3, 9);
|
|
|
|
numbers[0].Should().Be(4);
|
|
}
|
|
|
|
[Fact]
|
|
public void LastIndex()
|
|
{
|
|
var numbers = Factory.Create(NumberType.Even, 3, 9);
|
|
|
|
numbers[^1].Should().Be(8);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(NumberType.Even, 3, 9, new long[] { 4, 6, 8 })]
|
|
[InlineData(NumberType.Even, 2, 9, new long[] { 2, 4, 6, 8 })]
|
|
[InlineData(NumberType.Even, 3, 10, new long[] { 4, 6, 8, 10 })]
|
|
public void Content(NumberType type, long lower, long upper, long[] expected)
|
|
{
|
|
var numbers = Factory.Create(type, lower, upper);
|
|
|
|
for (var i = 0; i < numbers.Length; i++)
|
|
{
|
|
numbers[i].Should().Be(expected[i]);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void ForeachContent()
|
|
{
|
|
int i = -1;
|
|
long[] expected = [4, 6, 8];
|
|
var numbers = Factory.Create(NumberType.Even, 3, 9);
|
|
|
|
foreach (long item in numbers)
|
|
{
|
|
i++;
|
|
item.Should().Be(expected[i]);
|
|
}
|
|
}
|
|
}
|