Added unit test project for HelperClasses and tests for IntegerRange.cs. Implemented IEnumerable on IntegerRange.

This commit is contained in:
2025-12-14 14:45:13 +01:00
parent bef54ff551
commit 33eb7322a8
5 changed files with 129 additions and 6 deletions
@@ -0,0 +1,25 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.2"/>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0"/>
<PackageReference Include="xunit" Version="2.9.2"/>
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2"/>
</ItemGroup>
<ItemGroup>
<Using Include="Xunit"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AdventOfCode.HelperClasses\AdventOfCode.HelperClasses.csproj" />
</ItemGroup>
</Project>
@@ -0,0 +1,60 @@
namespace AdventOfCode.HelperClasses.Tests;
public class IntegerRangeTests
{
private readonly IntegerRange _sut;
public IntegerRangeTests()
{
_sut = new IntegerRange(1, 10);
}
[Fact]
public void Range1_10_Count_equals_10()
{
var actual = _sut.Count;
Assert.Equal(10, actual);
}
[Theory]
[InlineData(10)]
[InlineData(1)]
[InlineData(5)]
public void Range1_10_Contains_data_is_true(int data)
{
var actual = _sut.Contains(data);
Assert.True(actual);
}
[Theory]
[InlineData(10)]
[InlineData(1)]
[InlineData(5)]
[InlineData(11)]
[InlineData(20)]
[InlineData(15)]
public void CombinedRange1_20_Contains_data_is_true(int data)
{
var actual = _sut.TryCombine(new IntegerRange(11, 20), out var combined);
Assert.True(actual);
actual = combined.Contains(data);
Assert.True(actual);
}
[Fact]
public void First_equals_1()
{
var actual = _sut.First();
Assert.Equal(1, actual);
}
[Fact]
public void Last_equals_10()
{
var actual = _sut.Last();
Assert.Equal(10, actual);
}
}