// Solutions to the Advent Of Code 2024.
// Copyright (C) 2024 Stefan Müller
//
// This program is free software: you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free Software
// Foundation, either version 3 of the License, or (at your option) any later
// version.
//
// This program is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with
// this program. If not, see .
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define REQUIRE_MESSAGE(cond, msg) if (!(cond)) { INFO(msg); REQUIRE(cond); }
TEST_CASE("[HistorianHysteriaTests]")
{
TestContext test;
SECTION("FullData")
{
test.run(std::make_unique(), 2176849, 23384288, test.getInputPaths());
}
SECTION("ExampleData")
{
test.run(std::make_unique(), 11, 31, test.getExampleInputPaths());
}
}
TEST_CASE("[RedNosedReportsTests]")
{
TestContext test;
SECTION("FullData")
{
test.run(std::make_unique(), 472, 520, test.getInputPaths());
}
SECTION("ExampleData")
{
test.run(std::make_unique(), 2, 4, test.getExampleInputPaths());
}
}
TEST_CASE("[MullItOverTests]")
{
TestContext test;
SECTION("FullData")
{
test.run(std::make_unique(), 187833789, 94455185, test.getInputPaths());
}
SECTION("ExampleData")
{
test.run(std::make_unique(), 161, 48, test.getExampleInputPaths());
}
}
TEST_CASE("[CeresSearchTests]")
{
TestContext test;
SECTION("FullData")
{
test.run(std::make_unique(), 2462, 1877, test.getInputPaths());
}
SECTION("ExampleData")
{
test.run(std::make_unique(), 18, 9, test.getExampleInputPaths());
}
}
TEST_CASE("[PrintQueueTests]")
{
TestContext test;
SECTION("FullData")
{
test.run(std::make_unique(), 5087, 4971, test.getInputPaths());
}
SECTION("ExampleData")
{
test.run(std::make_unique(), 143, 123, test.getExampleInputPaths());
}
}
TEST_CASE("[GuardGallivantTests]")
{
TestContext test;
SECTION("FullData")
{
test.run(std::make_unique(), 4665, 0, test.getInputPaths());
}
SECTION("ExampleData")
{
test.run(std::make_unique(), 41, 0, test.getExampleInputPaths());
}
}
TEST_CASE("[HoofItTests]")
{
TestContext test;
SECTION("FullData")
{
test.run(std::make_unique(), 611, 1380, test.getInputPaths());
}
SECTION("ExampleData")
{
test.run(std::make_unique(), 36, 81, test.getExampleInputPaths());
}
}
TEST_CASE("[LanPartyTests]")
{
TestContext test;
SECTION("FullData")
{
test.run(std::make_unique(), 1230, 0, test.getInputPaths());
}
SECTION("ExampleData")
{
test.run(std::make_unique(), 7, 0, test.getExampleInputPaths());
}
}