tests: add tests for actual puzzle input

This commit is contained in:
Stevan Freeborn
2023-12-09 21:25:43 -06:00
parent 225828583d
commit ca475082bb
2 changed files with 47 additions and 6 deletions
+31 -2
View File
@@ -6,7 +6,10 @@ public class UnitTest1
[MemberData(nameof(TestData.OasisReportParseTestData), MemberType = typeof(TestData))]
public void Parse_GivenAReportInput_ItShouldReturnExpectedOasisReportInstance(string[] input, OasisReport expected)
{
OasisReport.Parse(input).Should().BeEquivalentTo(expected);
OasisReport
.Parse(input)
.Should()
.BeEquivalentTo(expected);
}
[Fact]
@@ -19,11 +22,37 @@ public class UnitTest1
"10 13 16 21 30 45",
};
OasisReport.Parse(input).CalculateSumOfNextValues().Should().Be(114);
OasisReport
.Parse(input)
.CalculateSumOfNextValues()
.Should()
.Be(114);
}
[Fact]
public void CalculateSumOfNextValues_WhenGivenInput_ItShouldReturnTheSumOfAllNextValues()
{
OasisReport
.Parse(TestData.Input)
.CalculateSumOfNextValues()
.Should()
.Be(2175229206);
}
[Fact]
public void CalculateSumOfNextValues_WhenGivenInputAndBackwardsIsTrue_ItShouldReturnTheSumOfAllNextValues()
{
OasisReport
.Parse(TestData.Input)
.CalculateSumOfNextValues(true)
.Should()
.Be(942);
}
public static class TestData
{
public static readonly string[] Input = File.ReadAllLines("INPUT.txt");
public static IEnumerable<object[]> OasisReportParseTestData =>
new List<object[]>
{
@@ -6,28 +6,40 @@ public class ValueHistoryTests
[MemberData(nameof(TestData.CalculateDifferencesTestData), MemberType = typeof(TestData))]
public void CalculateDifferences_GivenAListOfValues_ItShouldReturnAListOfDifferences(List<long> values, List<long> expected)
{
new ValueHistory([]).CalculateDifferences(values).Should().BeEquivalentTo(expected);
new ValueHistory([])
.CalculateDifferences(values)
.Should()
.BeEquivalentTo(expected);
}
[Theory]
[MemberData(nameof(TestData.CalculateHistoryTestData), MemberType = typeof(TestData))]
public void CalculateHistory_GivenAListOfValues_ItShouldReturnAListOfHistoricalValues(List<long> values, List<List<long>> expected)
{
new ValueHistory(values).CalculateHistory().Should().BeEquivalentTo(expected);
new ValueHistory(values)
.CalculateHistory()
.Should()
.BeEquivalentTo(expected);
}
[Theory]
[MemberData(nameof(TestData.CalculateNextValueTestData), MemberType = typeof(TestData))]
public void CalculateNextValue_GivenAListOfValues_ItShouldReturnTheNextValue(List<long> values, long expected)
{
new ValueHistory(values).CalculateNextValue().Should().Be(expected);
new ValueHistory(values)
.CalculateNextValue()
.Should()
.Be(expected);
}
[Theory]
[MemberData(nameof(TestData.CalculateNextValueTestDataBackwards), MemberType = typeof(TestData))]
public void CalculateNextValue_GivenAListOfValuesAndBackwardsIsTrue_ItShouldReturnTheNextValue(List<long> values, long expected)
{
new ValueHistory(values).CalculateNextValue(true).Should().Be(expected);
new ValueHistory(values)
.CalculateNextValue(true)
.Should()
.Be(expected);
}
public static class TestData