about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Day.cs7
-rw-r--r--Day1.cs7
-rw-r--r--Day2.cs7
-rw-r--r--Day3.cs2
-rw-r--r--Day4.cs4
-rw-r--r--Day5.cs7
6 files changed, 24 insertions, 10 deletions
diff --git a/Day.cs b/Day.cs
index e12d7eb..ccd06c6 100644
--- a/Day.cs
+++ b/Day.cs
@@ -1,16 +1,23 @@
 using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
 
 namespace aoc2019
 {
     public abstract class Day
     {
         public abstract int DayNumber { get; }
+        public virtual IEnumerable<string> Input =>
+            File.ReadLines($"input/day{DayNumber}.in");
+
         public virtual void AllParts()
         {
             Console.WriteLine($"Day {DayNumber}:");
             Console.WriteLine(Part1());
             Console.WriteLine(Part2());
         }
+
         public abstract string Part1();
         public abstract string Part2();
     }
diff --git a/Day1.cs b/Day1.cs
index dd57645..0cc0176 100644
--- a/Day1.cs
+++ b/Day1.cs
@@ -8,8 +8,11 @@ namespace aoc2019
     {
         public override int DayNumber => 1;
 
-        private readonly IEnumerable<int> masses =
-            File.ReadLines("input/day1.in").Select(int.Parse);
+        private readonly IEnumerable<int> masses;
+        public Day1()
+        {
+            masses = Input.Select(int.Parse);
+        }
 
         private static int FuelCost(int weight) => weight / 3 - 2;
         private static int FullCost(int cost)
diff --git a/Day2.cs b/Day2.cs
index 1549e28..f474c45 100644
--- a/Day2.cs
+++ b/Day2.cs
@@ -8,8 +8,11 @@ namespace aoc2019
     {
         public override int DayNumber => 2;
 
-        private readonly IEnumerable<int> input =
-            File.ReadLines("input/day2.in").First().Split(',').Select(int.Parse);
+        private readonly IEnumerable<int> input;
+        public Day2()
+        {
+            input = Input.First().Split(',').Select(int.Parse);
+        }
 
         public int RunIntCode(int noun, int verb)
         {
diff --git a/Day3.cs b/Day3.cs
index e3f998f..442c58a 100644
--- a/Day3.cs
+++ b/Day3.cs
@@ -14,7 +14,7 @@ namespace aoc2019
 
         public Day3()
         {
-            wires = File.ReadAllLines("input/day3.in").Select(ParseWire).ToList();
+            wires = Input.Select(ParseWire).ToList();
             intersections = wires[0].Keys.Intersect(wires[1].Keys);
         }
 
diff --git a/Day4.cs b/Day4.cs
index 1a7ece7..fad209d 100644
--- a/Day4.cs
+++ b/Day4.cs
@@ -12,9 +12,7 @@ namespace aoc2019
 
         public Day4()
         {
-            var range = File.ReadLines("input/day4.in")
-                .First().Split('-').Select(int.Parse).ToList();
-
+            var range = Input.First().Split('-').Select(int.Parse).ToList();
             start = range[0]; end = range[1];
         }
 
diff --git a/Day5.cs b/Day5.cs
index ca9a08f..ecfa14e 100644
--- a/Day5.cs
+++ b/Day5.cs
@@ -8,8 +8,11 @@ namespace aoc2019
     {
         public override int DayNumber => 5;
 
-        private readonly IEnumerable<int> tape =
-            File.ReadLines("input/day5.in").First().Split(',').Select(int.Parse);
+        private readonly IEnumerable<int> tape;
+        public Day5()
+        {
+            tape = Input.First().Split(',').Select(int.Parse);
+        }
 
         private int output;
         public void RunIntCode(List<int> v, int input)