ben
/
aoc
1
0
Fork 0

fix out of range exception
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Ben Harris 2023-11-16 13:50:27 -05:00
parent a0d8bc1f07
commit 523407067d
1 changed files with 14 additions and 12 deletions

View File

@ -20,21 +20,24 @@ public abstract class Day(int year, int day, string puzzleName)
public abstract object Part1();
public abstract object Part2();
private void AllParts(bool verbose = true)
private void PrintDay(bool showTiming = true)
{
Console.Write($"{Year} Day {DayNumber,2}: {PuzzleName,-40} ");
var s = Stopwatch.StartNew();
ProcessInput();
s.Stop();
Console.WriteLine($"{s.ScaleMilliseconds()}ms elapsed processing input");
Console.WriteLine(showTiming ? $"{s.ScaleMilliseconds()}ms elapsed processing input" : "");
s.Reset();
s.Start();
var part1 = Part1();
s.Stop();
Console.Write($"Part 1: {part1,-45} ");
Console.WriteLine(verbose ? $"{s.ScaleMilliseconds()}ms elapsed" : "");
Console.WriteLine(showTiming ? $"{s.ScaleMilliseconds()}ms elapsed" : "");
s.Reset();
@ -42,7 +45,8 @@ public abstract class Day(int year, int day, string puzzleName)
var part2 = Part2();
s.Stop();
Console.Write($"Part 2: {part2,-45} ");
Console.WriteLine(verbose ? $"{s.ScaleMilliseconds()}ms elapsed" : "");
Console.WriteLine(showTiming ? $"{s.ScaleMilliseconds()}ms elapsed" : "");
Console.WriteLine();
}
@ -60,20 +64,18 @@ public abstract class Day(int year, int day, string puzzleName)
throw new ApplicationException("no days found");
}
if (args is [_, "--test"] or ["--test", ..])
{
UseTestInput = true;
}
UseTestInput = args is [_, "--test"] or ["--test", ..];
var verbose = args is [_, "--verbose"] or ["--verbose", ..];
if (int.TryParse(args[0], out var dayNum))
if (args.Length > 0 && int.TryParse(args[0], out var dayNum))
{
var day = days.FirstOrDefault(d => d.DayNumber == dayNum);
if (day != null) day.AllParts();
else Console.WriteLine($"Day {dayNum} invalid or not yet implemented");
if (day != null) day.PrintDay(verbose);
else throw new ApplicationException($"Day {dayNum} invalid or not yet implemented");
}
else
{
foreach (var d in days) d.AllParts();
foreach (var d in days) d.PrintDay(verbose);
}
}
}