also check test input
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
469c05f5e5
commit
f0df492eca
|
@ -11,6 +11,8 @@ public class DayTests
|
|||
var day = Activator.CreateInstance(dayType) as Day;
|
||||
s.Stop();
|
||||
Assert.IsNotNull(day, "failed to instantiate day object");
|
||||
Assert.IsTrue(File.Exists(day.FileName));
|
||||
Console.Write($"Day {day.DayNumber}: {day.PuzzleName,-15} ");
|
||||
Console.WriteLine($"{s.ScaleMilliseconds()} ms elapsed in constructor");
|
||||
|
||||
// part 1
|
||||
|
@ -18,7 +20,8 @@ public class DayTests
|
|||
s.Start();
|
||||
var part1Actual = day.Part1();
|
||||
s.Stop();
|
||||
Console.WriteLine($"{s.ScaleMilliseconds()} ms elapsed in part1");
|
||||
Console.Write($"Part1: {part1Actual,-15} ");
|
||||
Console.WriteLine($"{s.ScaleMilliseconds()} ms elapsed");
|
||||
Assert.AreEqual(part1, part1Actual, $"Incorrect answer for Day {day.DayNumber} Part1");
|
||||
|
||||
// part 2
|
||||
|
@ -26,7 +29,40 @@ public class DayTests
|
|||
s.Start();
|
||||
var part2Actual = day.Part2();
|
||||
s.Stop();
|
||||
Console.WriteLine($"{s.ScaleMilliseconds()} ms elapsed in part2");
|
||||
Console.Write($"Part2: {part2Actual,-15} ");
|
||||
Console.WriteLine($"{s.ScaleMilliseconds()} ms elapsed");
|
||||
Assert.AreEqual(part2, part2Actual, $"Incorrect answer for Day {day.DayNumber} Part2");
|
||||
}
|
||||
|
||||
[DataTestMethod]
|
||||
[DataRow(typeof(Day01), "7", "5")]
|
||||
public void CheckTestInputs(Type dayType, string part1, string part2)
|
||||
{
|
||||
Day.UseTestInput = true;
|
||||
var s = Stopwatch.StartNew();
|
||||
var day = Activator.CreateInstance(dayType) as Day;
|
||||
s.Stop();
|
||||
Assert.IsNotNull(day, "failed to instantiate day object");
|
||||
Assert.IsTrue(File.Exists(day.FileName));
|
||||
Console.Write($"Day {day.DayNumber}: {day.PuzzleName,-15} ");
|
||||
Console.WriteLine($"{s.ScaleMilliseconds()} ms elapsed in constructor");
|
||||
|
||||
// part 1
|
||||
s.Reset();
|
||||
s.Start();
|
||||
var part1Actual = day.Part1();
|
||||
s.Stop();
|
||||
Console.Write($"Part1: {part1Actual,-15} ");
|
||||
Console.WriteLine($"{s.ScaleMilliseconds()} ms elapsed");
|
||||
Assert.AreEqual(part1, part1Actual, $"Incorrect answer for Day {day.DayNumber} Part1");
|
||||
|
||||
// part 2
|
||||
s.Reset();
|
||||
s.Start();
|
||||
var part2Actual = day.Part2();
|
||||
s.Stop();
|
||||
Console.Write($"Part2: {part2Actual,-15} ");
|
||||
Console.WriteLine($"{s.ScaleMilliseconds()} ms elapsed");
|
||||
Assert.AreEqual(part2, part2Actual, $"Incorrect answer for Day {day.DayNumber} Part2");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,14 +8,17 @@ public abstract class Day
|
|||
PuzzleName = puzzleName;
|
||||
}
|
||||
|
||||
public static bool UseTestInput { get; set; }
|
||||
|
||||
public int DayNumber { get; }
|
||||
public string PuzzleName { get; }
|
||||
|
||||
protected IEnumerable<string> Input =>
|
||||
File.ReadLines(FileName);
|
||||
|
||||
protected string FileName =>
|
||||
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"input/day{DayNumber,2:00}.in");
|
||||
public string FileName =>
|
||||
Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
|
||||
$"input/{(UseTestInput ? "test" : "day")}{DayNumber,2:00}.in");
|
||||
|
||||
public abstract string Part1();
|
||||
public abstract string Part2();
|
||||
|
|
|
@ -27,9 +27,7 @@ public sealed class Day01 : Day
|
|||
var c = 0;
|
||||
for (var i = 0; i < _readings.Count - 3; i++)
|
||||
{
|
||||
var prev = _readings[i] + _readings[i + 1] + _readings[i + 2];
|
||||
var curr = _readings[i + 1] + _readings[i + 2] + _readings[i + 3];
|
||||
if (curr > prev) c++;
|
||||
if (_readings[i + 3] > _readings[i]) c++;
|
||||
}
|
||||
return $"{c}";
|
||||
}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="input\day*.in">
|
||||
<None Update="input\*.in">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
199
|
||||
200
|
||||
208
|
||||
210
|
||||
200
|
||||
207
|
||||
240
|
||||
269
|
||||
260
|
||||
263
|
Loading…
Reference in New Issue