public void Should_ThrowException_When_ZeroOrNegativePreamble(int preamble) { var inputLines = new long[] { 1, 2, 3 }; var sut = new XmasCypherHelpers(inputLines); Assert.Throws <ArgumentOutOfRangeException>(() => sut.Validate(preamble, out var firstInvalidNumber)); }
public void Should_ThrowException_When_ZeroOrNegativeTarget(long target) { var inputLines = new long[] { 1, 2, 3 }; var preamble = 1; var sut = new XmasCypherHelpers(inputLines); Assert.Throws <ArgumentOutOfRangeException>(() => sut.FindContiguousSetAddingUpTo(target)); }
public void Should_Validate_When_ValidInput() { var inputLines = new long[] { 35, 20, 15, 25, 47, 40, 62, 55, 65, 95, 102, 117, 150, 182 }; var preamble = 5; var sut = new XmasCypherHelpers(inputLines); Assert.That(sut.Validate(preamble, out var firstInvalidNumber), Is.EqualTo(true)); }
public void Should_FindContiguousSetAddingUpTo_When_ValidInput() { var inputLines = new long[] { 35, 20, 15, 25, 47, 40, 62, 55, 65, 95, 102, 117, 150, 182, 127, 219, 299, 277, 309, 576 }; const long target = 127; var expectedSet = new long[] { 15, 25, 47, 40 }; var sut = new XmasCypherHelpers(inputLines); Assert.That(sut.FindContiguousSetAddingUpTo(target), Is.EqualTo(expectedSet)); }
public void Should_FindFirstInvalidNumber_When_InvalidInput() { var inputLines = new long[] { 35, 20, 15, 25, 47, 40, 62, 55, 65, 95, 102, 117, 150, 182, 127, 219, 299, 277, 309, 576 }; var preamble = 5; var sut = new XmasCypherHelpers(inputLines); sut.Validate(preamble, out var actualFirstInvalidNumber); var expectedFirstInvalidNumber = 127; Assert.That(actualFirstInvalidNumber == expectedFirstInvalidNumber); }