Tidy Day baseclass and add empty day4
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Ben Harris 2020-12-03 21:14:04 -05:00
parent b78203fb09
commit 8bf051f52c
Signed by: ben
GPG Key ID: 4E0AF802FFF7960C
5 changed files with 63 additions and 32 deletions

View File

@ -26,4 +26,4 @@ namespace aoc.tests
Assert.AreEqual("1718180100", _day3.Part2());
}
}
}
}

29
aoc.tests/Day4Test.cs Normal file
View File

@ -0,0 +1,29 @@
using aoc2020;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace aoc.tests
{
[TestClass]
public class Day4Test
{
private Day4 _day4;
[TestInitialize]
public void Initialize()
{
_day4 = new Day4();
}
[TestMethod]
public void TestPart1()
{
Assert.AreEqual("", _day4.Part1());
}
[TestMethod]
public void TestPart2()
{
Assert.AreEqual("", _day4.Part2());
}
}
}

View File

@ -9,8 +9,8 @@ namespace aoc2020
{
public abstract int DayNumber { get; }
public virtual IEnumerable<string> Input =>
File.ReadLines($"input/day{DayNumber}.in");
protected virtual IEnumerable<string> Input =>
File.ReadLines(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"input/day{DayNumber}.in"));
public abstract string Part1();
public abstract string Part2();
@ -20,33 +20,24 @@ namespace aoc2020
Console.WriteLine($"Day {DayNumber}:");
var s = new Stopwatch();
if (verbose) s.Start();
s.Start();
var part1 = Part1();
if (verbose)
{
s.Stop();
Console.WriteLine($"Part 1 elapsed: {s.ElapsedMilliseconds}ms");
}
s.Stop();
Console.WriteLine(part1);
if (verbose)
{
s.Reset();
s.Start();
}
Console.WriteLine($"{s.ElapsedMilliseconds}ms elapsed");
s.Reset();
s.Start();
var part2 = Part2();
s.Stop();
Console.WriteLine(part2);
if (verbose)
{
s.Stop();
Console.WriteLine($"Part 2 elapsed: {s.ElapsedMilliseconds}ms");
}
Console.WriteLine($"{s.ElapsedMilliseconds}ms elapsed");
Console.WriteLine(part2);
Console.WriteLine();
}
}

View File

@ -32,19 +32,13 @@ namespace aoc2020
public override string Part2()
{
var slopes = new[]
{
(1, 1),
(3, 1),
(5, 1),
(7, 1),
(1, 2)
};
var xSlopes = new[] {1, 3, 5, 7, 1};
var ySlopes = new[] {1, 1, 1, 1, 2};
return slopes
return xSlopes.Zip(ySlopes)
.Select(s => CountSlope(s.Item1, s.Item2))
.Aggregate((acc, i) => acc * i)
.ToString();
}
}
}
}

17
aoc2020/Day4.cs Normal file
View File

@ -0,0 +1,17 @@
namespace aoc2020
{
public sealed class Day4 : Day
{
public override int DayNumber => 4;
public override string Part1()
{
return "";
}
public override string Part2()
{
return "";
}
}
}