33 lines
1.0 KiB
C#
33 lines
1.0 KiB
C#
namespace Trebuchet.Tests;
|
|
|
|
public class PartOnePuzzleSolverTests
|
|
{
|
|
private readonly PartOnePuzzleSolver _sut = new();
|
|
|
|
[Theory]
|
|
[InlineData("1abc2", 12)]
|
|
[InlineData("pqr3stu8vwx", 38)]
|
|
[InlineData("a1b2c3d4e5f", 15)]
|
|
[InlineData("treb7uchet", 77)]
|
|
public void GetCalibrationValue_GivenAStringContainingDigits_ItShouldReturnSumOrFirstAndLastDigit(string input, int expected)
|
|
{
|
|
var result = _sut.GetCalibrationValue(input);
|
|
result.Should().Be(expected);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData(new string[] { "1abc2", "pqr3stu8vwx", "a1b2c3d4e5f", "treb7uchet" }, 142)]
|
|
public void SumCalibrationValues_GivenAnArrayOfStrings_ItShouldReturnTheSumOfAllCalibrationValues(string[] input, int expected)
|
|
{
|
|
var result = _sut.SumCalibrationValues(input);
|
|
result.Should().Be(expected);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task SumCalibrationValues_GivenAFile_ItShouldReturnTheSumOfAllCalibrationValues()
|
|
{
|
|
var input = await File.ReadAllLinesAsync("INPUT.txt");
|
|
var result = _sut.SumCalibrationValues(input);
|
|
result.Should().Be(53194);
|
|
}
|
|
} |