feat: solved day 5 part 2

This commit is contained in:
Stevan Freeborn
2024-12-05 23:47:44 -06:00
parent a9f9dec7aa
commit e359a73266
5 changed files with 85 additions and 18 deletions
+18
View File
@@ -73,4 +73,22 @@ public class PuzzleParserTests
await Assert.That(result).IsEqualTo(6260);
}
[Test]
public async Task Parse_WhenGivenPuzzleInputOnPart2_ItShouldReturnExpectedResult()
{
var input = await GetPuzzleInput();
var parseResult = _puzzleParser.Parse(input);
var validator = new UpdateValidator(parseResult.Rules);
var result = parseResult.Updates
.Where(u => validator.Validate(u) is false)
.Select(u => validator.Sort(u))
.Select(u => u.GetMiddlePage())
.Sum();
await Assert.That(result).IsEqualTo(5346);
}
}
@@ -81,4 +81,22 @@ public class UpdateValidatorTests
await Assert.That(resultTwo).IsFalse();
await Assert.That(resultThree).IsFalse();
}
[Test]
public async Task Sort_WhenGivenInvalidUpdate_ItShouldReturnNewUpdateSorted()
{
var updateOne = new Update([75,97,47,61,53]);
var updateTwo = new Update([61,13,29]);
var updateThree = new Update([97,13,75,29,47]);
var validator = new UpdateValidator(_exampleRules);
var resultOne = validator.Sort(updateOne);
var resultTwo = validator.Sort(updateTwo);
var resultThree = validator.Sort(updateThree);
await Assert.That(resultOne).IsEquivalentTo(new Update([97,75,47,61,53]));
await Assert.That(resultTwo).IsEquivalentTo(new Update([61,29,13]));
await Assert.That(resultThree).IsEquivalentTo(new Update([97,75,47,29,13]));
}
}