about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBen Harris <ben@tilde.team>2021-12-12 15:09:41 -0500
committerBen Harris <ben@tilde.team>2021-12-12 15:09:41 -0500
commit18a5d9aae31839ba4bf64a38922d6e4b4459151a (patch)
tree81e73296a8c1bd9c05fb07d7cb5a15748051b6bb
parent7feb07944a4183f4caae4b9004bab1d4e139fd51 (diff)
refactor p1 and p2 to return objects
-rw-r--r--aoc2021.test/DayTests.cs8
-rw-r--r--aoc2021/Day.cs4
-rw-r--r--aoc2021/Day01.cs8
-rw-r--r--aoc2021/Day02.cs8
-rw-r--r--aoc2021/Day03.cs8
-rw-r--r--aoc2021/Day04.cs8
-rw-r--r--aoc2021/Day05.cs4
-rw-r--r--aoc2021/Day06.cs4
-rw-r--r--aoc2021/Day07.cs8
-rw-r--r--aoc2021/Day08.cs7
-rw-r--r--aoc2021/Day09.cs7
-rw-r--r--aoc2021/Day10.cs6
-rw-r--r--aoc2021/Day11.cs4
-rw-r--r--aoc2021/Day12.cs8
-rw-r--r--aoc2021/DayXX.cs.txt4
15 files changed, 47 insertions, 49 deletions
diff --git a/aoc2021.test/DayTests.cs b/aoc2021.test/DayTests.cs
index 723205e..04b9d4f 100644
--- a/aoc2021.test/DayTests.cs
+++ b/aoc2021.test/DayTests.cs
@@ -29,7 +29,7 @@ public class DayTests
         // part 1
         s.Reset();
         s.Start();
-        var part1Actual = day.Part1();
+        var part1Actual = day.Part1().ToString();
         s.Stop();
         Console.Write($"Part 1: {part1Actual,-25} ");
         Console.WriteLine($"{s.ScaleMilliseconds()} ms elapsed");
@@ -38,7 +38,7 @@ public class DayTests
         // part 2
         s.Reset();
         s.Start();
-        var part2Actual = day.Part2();
+        var part2Actual = day.Part2().ToString();
         s.Stop();
         Console.Write($"Part 2: {part2Actual,-25} ");
         Console.WriteLine($"{s.ScaleMilliseconds()} ms elapsed");
@@ -72,7 +72,7 @@ public class DayTests
         // part 1
         s.Reset();
         s.Start();
-        var part1Actual = day.Part1();
+        var part1Actual = day.Part1().ToString();
         s.Stop();
         Console.Write($"Part 1: {part1Actual,-25} ");
         Console.WriteLine($"{s.ScaleMilliseconds()} ms elapsed");
@@ -81,7 +81,7 @@ public class DayTests
         // part 2
         s.Reset();
         s.Start();
-        var part2Actual = day.Part2();
+        var part2Actual = day.Part2().ToString();
         s.Stop();
         Console.Write($"Part 2: {part2Actual,-25} ");
         Console.WriteLine($"{s.ScaleMilliseconds()} ms elapsed");
diff --git a/aoc2021/Day.cs b/aoc2021/Day.cs
index 15c4923..5e67d33 100644
--- a/aoc2021/Day.cs
+++ b/aoc2021/Day.cs
@@ -20,8 +20,8 @@ public abstract class Day
         Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
             $"input/{(UseTestInput ? "test" : "day")}{DayNumber,2:00}.in");
 
-    public abstract string Part1();
-    public abstract string Part2();
+    public abstract object Part1();
+    public abstract object Part2();
 
     public void AllParts(bool verbose = true)
     {
diff --git a/aoc2021/Day01.cs b/aoc2021/Day01.cs
index 529492d..e34daed 100644
--- a/aoc2021/Day01.cs
+++ b/aoc2021/Day01.cs
@@ -12,9 +12,9 @@ public sealed class Day01 : Day
         _readings = Input.Select(int.Parse).ToList();
     }
 
-    public override string Part1() =>
-        Enumerable.Range(0, _readings.Count - 1).Count(i => _readings[i + 1] > _readings[i]).ToString();
+    public override object Part1() =>
+        Enumerable.Range(0, _readings.Count - 1).Count(i => _readings[i + 1] > _readings[i]);
 
-    public override string Part2() =>
-        Enumerable.Range(0, _readings.Count - 3).Count(i => _readings[i + 3] > _readings[i]).ToString();
+    public override object Part2() =>
+        Enumerable.Range(0, _readings.Count - 3).Count(i => _readings[i + 3] > _readings[i]);
 }
diff --git a/aoc2021/Day02.cs b/aoc2021/Day02.cs
index a099520..243973c 100644
--- a/aoc2021/Day02.cs
+++ b/aoc2021/Day02.cs
@@ -9,7 +9,7 @@ public sealed class Day02 : Day
     {
     }
 
-    public override string Part1()
+    public override object Part1()
     {
         int horiz = 0, depth = 0;
         foreach (var line in Input)
@@ -30,10 +30,10 @@ public sealed class Day02 : Day
             }
         }
 
-        return $"{horiz * depth}";
+        return horiz * depth;
     }
 
-    public override string Part2()
+    public override object Part2()
     {
         int aim = 0, depth = 0, horiz = 0;
         foreach (var line in Input)
@@ -55,6 +55,6 @@ public sealed class Day02 : Day
             }
         }
 
-        return $"{horiz * depth}";
+        return horiz * depth;
     }
 }
diff --git a/aoc2021/Day03.cs b/aoc2021/Day03.cs
index f8e18dc..7579ffe 100644
--- a/aoc2021/Day03.cs
+++ b/aoc2021/Day03.cs
@@ -12,7 +12,7 @@ public sealed class Day03 : Day
         _report = Input.ToList();
     }
 
-    public override string Part1()
+    public override object Part1()
     {
         var l = _report.Count / 2;
         var g = new StringBuilder();
@@ -28,10 +28,10 @@ public sealed class Day03 : Day
         var gamma   = g.ToString().BigIntegerFromBinaryString();
         var epsilon = e.ToString().BigIntegerFromBinaryString();
 
-        return $"{gamma * epsilon}";
+        return gamma * epsilon;
     }
 
-    public override string Part2()
+    public override object Part2()
     {
         var o = _report;
         var c = _report;
@@ -57,6 +57,6 @@ public sealed class Day03 : Day
         }
         var co2 = c.Single().BigIntegerFromBinaryString();
 
-        return $"{o2 * co2}";
+        return o2 * co2;
     }
 }
diff --git a/aoc2021/Day04.cs b/aoc2021/Day04.cs
index 26a7ea5..bf5e787 100644
--- a/aoc2021/Day04.cs
+++ b/aoc2021/Day04.cs
@@ -32,7 +32,7 @@ public sealed class Day04 : Day
         _size = (int)Math.Sqrt(currentBoard.Count);
     }
 
-    public override string Part1()
+    public override object Part1()
     {
         int i = _size, b = FirstWin(i);
         while (b == -1)
@@ -42,10 +42,10 @@ public sealed class Day04 : Day
         }
 
         var called = _call.Take(i).ToHashSet();
-        return $"{called.Last() * _boards[b].Where(x => !called.Contains(x)).Sum()}";
+        return called.Last() * _boards[b].Where(x => !called.Contains(x)).Sum();
     }
 
-    public override string Part2()
+    public override object Part2()
     {
         Dictionary<int, bool> wonBoards = new();
         for (var i = 0; i < _boards.Count; i++)
@@ -62,7 +62,7 @@ public sealed class Day04 : Day
 
         var called = _call.Take(j).ToHashSet();
         var b = wonBoards.Single(kvp => !kvp.Value).Key;
-        return $"{called.Last() * _boards[b].Where(x => !called.Contains(x)).Sum()}";
+        return called.Last() * _boards[b].Where(x => !called.Contains(x)).Sum();
     }
 
     private int FirstWin(int i)
diff --git a/aoc2021/Day05.cs b/aoc2021/Day05.cs
index 83d0e62..14c0d1c 100644
--- a/aoc2021/Day05.cs
+++ b/aoc2021/Day05.cs
@@ -21,7 +21,7 @@ public sealed class Day05 : Day
             .GroupBy(k => k)
             .Count(k => k.Count() > 1);
 
-    public override string Part1() => $"{Solve()}";
+    public override object Part1() => Solve();
 
-    public override string Part2() => $"{Solve(diagonals: true)}";
+    public override object Part2() => Solve(diagonals: true);
 }
diff --git a/aoc2021/Day06.cs b/aoc2021/Day06.cs
index 60687c5..a6707cc 100644
--- a/aoc2021/Day06.cs
+++ b/aoc2021/Day06.cs
@@ -29,7 +29,7 @@ public sealed class Day06 : Day
         _p2 = counts.Values.Sum();
     }
 
-    public override string Part1() => $"{_p1}";
+    public override object Part1() => _p1;
 
-    public override string Part2() => $"{_p2}";
+    public override object Part2() => _p2;
 }
diff --git a/aoc2021/Day07.cs b/aoc2021/Day07.cs
index 0b936f3..56f88ba 100644
--- a/aoc2021/Day07.cs
+++ b/aoc2021/Day07.cs
@@ -14,17 +14,17 @@ public sealed class Day07 : Day
 
     private static long ArithmeticSumTo(long n) => n * (n + 1) / 2L;
 
-    public override string Part1()
+    public override object Part1()
     {
         var i = _tape[_tape.Count / 2];
-        return $"{_tape.Select(t => Math.Abs(t - i)).Sum()}";
+        return _tape.Select(t => Math.Abs(t - i)).Sum();
     }
 
-    public override string Part2()
+    public override object Part2()
     {
         var avg = (decimal)_tape.Sum() / _tape.Count;
         var floor = _tape.Select(t => ArithmeticSumTo(Math.Abs(t - (long)Math.Floor(avg)))).Sum();
         var ceil  = _tape.Select(t => ArithmeticSumTo(Math.Abs(t - (long)Math.Ceiling(avg)))).Sum();
-        return $"{Math.Min(floor, ceil)}";
+        return Math.Min(floor, ceil);
     }
 }
diff --git a/aoc2021/Day08.cs b/aoc2021/Day08.cs
index 27931eb..dca969f 100644
--- a/aoc2021/Day08.cs
+++ b/aoc2021/Day08.cs
@@ -75,12 +75,11 @@ public sealed class Day08 : Day
         return int.Parse(digits.ToString());
     }
 
-    public override string Part1() =>
+    public override object Part1() =>
         Input
             .Select(line => line.Split(" | ")[1].Split(' '))
             .Select(outputs => outputs.Count(o => new[] { 2, 3, 4, 7 }.Contains(o.Length)))
-            .Sum()
-            .ToString();
+            .Sum();
 
-    public override string Part2() => Input.Select(Decode).Sum().ToString();
+    public override object Part2() => Input.Select(Decode).Sum();
 }
diff --git a/aoc2021/Day09.cs b/aoc2021/Day09.cs
index 111decb..62ae66e 100644
--- a/aoc2021/Day09.cs
+++ b/aoc2021/Day09.cs
@@ -31,9 +31,9 @@ public sealed class Day09 : Day
         }
     }
 
-    public override string Part1() => _part1Sum.ToString();
+    public override object Part1() => _part1Sum;
 
-    public override string Part2()
+    public override object Part2()
     {
         var sizes = new List<long>();
         foreach (var (x, y) in _lowPoints)
@@ -66,7 +66,6 @@ public sealed class Day09 : Day
         return sizes
             .OrderByDescending(x => x)
             .Take(3)
-            .Aggregate(1L, (a, b) => a * b)
-            .ToString();
+            .Aggregate(1L, (a, b) => a * b);
     }
 }
diff --git a/aoc2021/Day10.cs b/aoc2021/Day10.cs
index bd93c77..a9f5399 100644
--- a/aoc2021/Day10.cs
+++ b/aoc2021/Day10.cs
@@ -67,11 +67,11 @@ public sealed class Day10 : Day
         }
     }
 
-    public override string Part1() => $"{_score1}";
+    public override object Part1() => _score1;
 
-    public override string Part2()
+    public override object Part2()
     {
         var sorted = _scores2.OrderBy(i => i).ToList();
-        return $"{sorted[sorted.Count / 2]}";
+        return sorted[sorted.Count / 2];
     }
 }
diff --git a/aoc2021/Day11.cs b/aoc2021/Day11.cs
index e93e180..efbdf7f 100644
--- a/aoc2021/Day11.cs
+++ b/aoc2021/Day11.cs
@@ -55,7 +55,7 @@ public sealed class Day11 : Day
             }
     }
 
-    public override string Part1() => $"{_flashesAfter100}";
+    public override object Part1() => _flashesAfter100;
 
-    public override string Part2() => $"{_totalTurns}";
+    public override object Part2() => _totalTurns;
 }
diff --git a/aoc2021/Day12.cs b/aoc2021/Day12.cs
index 7413206..876c678 100644
--- a/aoc2021/Day12.cs
+++ b/aoc2021/Day12.cs
@@ -54,9 +54,9 @@ public sealed class Day12 : Day
         return true;
     }
 
-    public override string Part1() =>
-        $"{WalkGraph(_edges, "start", new())}";
+    public override object Part1() =>
+        WalkGraph(_edges, "start", new());
 
-    public override string Part2() =>
-        $"{TraverseGraph(_edges, "start", new())}";
+    public override object Part2() =>
+        TraverseGraph(_edges, "start", new());
 }
\ No newline at end of file
diff --git a/aoc2021/DayXX.cs.txt b/aoc2021/DayXX.cs.txt
index ba02380..ee51c1a 100644
--- a/aoc2021/DayXX.cs.txt
+++ b/aoc2021/DayXX.cs.txt
@@ -9,7 +9,7 @@ public sealed class DayXX : Day
     {
     }
 
-    public override string Part1() => "";
+    public override object Part1() => "";
 
-    public override string Part2() => "";
+    public override object Part2() => "";
 }