using Solutions;
namespace Tests;
public static class Common
{
///
/// Asserts expected solutions for a given day.
///
/// The derived day class
/// Correct part 1 solution
/// Correct part 2 solution
/// Correct answers are for the test input
public static async Task CheckDay(Type dayType, string part1, string part2, bool testInput = false)
{
var day = Activator.CreateInstance(dayType) as Day;
await Assert.That(day).IsNotNull();
day!.UseTestInput = testInput;
await Assert.That(File.Exists(day.FileName)).IsTrue();
day.PrintProcessInput();
// part 1
var part1Actual = day.PrintPart1().ToString();
await Assert.That(part1Actual).IsEqualTo(part1);
//Assert.AreEqual(part1, part1Actual.ToString(), $"Incorrect answer for {day} Part 1");
// part 2
var part2Actual = day.PrintPart2().ToString();
await Assert.That(part2Actual).IsEqualTo(part2);
}
}