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))] [MemberData(nameof(TestData.OasisReportParseTestData), MemberType = typeof(TestData))]
public void Parse_GivenAReportInput_ItShouldReturnExpectedOasisReportInstance(string[] input, OasisReport expected) public void Parse_GivenAReportInput_ItShouldReturnExpectedOasisReportInstance(string[] input, OasisReport expected)
{ {
OasisReport.Parse(input).Should().BeEquivalentTo(expected); OasisReport
.Parse(input)
.Should()
.BeEquivalentTo(expected);
} }
[Fact] [Fact]
@@ -19,11 +22,37 @@ public class UnitTest1
"10 13 16 21 30 45", "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 class TestData
{ {
public static readonly string[] Input = File.ReadAllLines("INPUT.txt");
public static IEnumerable<object[]> OasisReportParseTestData => public static IEnumerable<object[]> OasisReportParseTestData =>
new List<object[]> new List<object[]>
{ {
@@ -6,28 +6,40 @@ public class ValueHistoryTests
[MemberData(nameof(TestData.CalculateDifferencesTestData), MemberType = typeof(TestData))] [MemberData(nameof(TestData.CalculateDifferencesTestData), MemberType = typeof(TestData))]
public void CalculateDifferences_GivenAListOfValues_ItShouldReturnAListOfDifferences(List<long> values, List<long> expected) 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] [Theory]
[MemberData(nameof(TestData.CalculateHistoryTestData), MemberType = typeof(TestData))] [MemberData(nameof(TestData.CalculateHistoryTestData), MemberType = typeof(TestData))]
public void CalculateHistory_GivenAListOfValues_ItShouldReturnAListOfHistoricalValues(List<long> values, List<List<long>> expected) 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] [Theory]
[MemberData(nameof(TestData.CalculateNextValueTestData), MemberType = typeof(TestData))] [MemberData(nameof(TestData.CalculateNextValueTestData), MemberType = typeof(TestData))]
public void CalculateNextValue_GivenAListOfValues_ItShouldReturnTheNextValue(List<long> values, long expected) 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] [Theory]
[MemberData(nameof(TestData.CalculateNextValueTestDataBackwards), MemberType = typeof(TestData))] [MemberData(nameof(TestData.CalculateNextValueTestDataBackwards), MemberType = typeof(TestData))]
public void CalculateNextValue_GivenAListOfValuesAndBackwardsIsTrue_ItShouldReturnTheNextValue(List<long> values, long expected) 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 public static class TestData