about summary refs log tree commit diff
path: root/Day.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Day.cs')
-rw-r--r--Day.cs32
1 files changed, 22 insertions, 10 deletions
diff --git a/Day.cs b/Day.cs
index f08e7cf..eb3ef49 100644
--- a/Day.cs
+++ b/Day.cs
@@ -2,32 +2,44 @@
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
+using aoc2019.lib;
 
 namespace aoc2019
 {
     public abstract class Day
     {
-        public abstract int DayNumber { get; }
+        protected Day(int dayNumber, string puzzleName)
+        {
+            DayNumber = dayNumber;
+            PuzzleName = puzzleName;
+        }
+
+        public int DayNumber { get; }
+        public string PuzzleName { get; }
 
         protected virtual IEnumerable<string> Input =>
-            File.ReadLines($"input/day{DayNumber}.in");
+            File.ReadLines(FileName);
+
+        protected string FileName =>
+            Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"input/day{DayNumber,2:00}.in");
 
-        public virtual void AllParts(bool verbose = false)
+        public void AllParts(bool verbose = true)
         {
-            Console.WriteLine($"Day {DayNumber}:");
-            var s = new Stopwatch();
-            s.Start();
+            Console.WriteLine($"Day {DayNumber,2}: {PuzzleName}");
+            var s = Stopwatch.StartNew();
             var part1 = Part1();
             s.Stop();
-            if (verbose) Console.WriteLine($"part 1 elapsed ticks: {s.ElapsedTicks}");
-            Console.WriteLine(part1);
+            Console.Write($"Part1: {part1,-15} ");
+            Console.WriteLine(verbose ? $"{s.ScaleMilliseconds()}ms elapsed" : "");
 
             s.Reset();
+
             s.Start();
             var part2 = Part2();
             s.Stop();
-            if (verbose) Console.WriteLine($"part 2 elapsed ticks: {s.ElapsedTicks}");
-            Console.WriteLine(part2);
+            Console.Write($"Part2: {part2,-15} ");
+            Console.WriteLine(verbose ? $"{s.ScaleMilliseconds()}ms elapsed" : "");
+
             Console.WriteLine();
         }