2024-12-06 20:16:01 +01:00
|
|
|
// 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 <http://www.gnu.org/licenses/>.
|
|
|
|
|
2024-12-11 00:42:28 +01:00
|
|
|
#include <catch2/catch_test_macros.hpp>
|
2024-12-06 20:16:01 +01:00
|
|
|
|
2024-12-11 01:12:27 +01:00
|
|
|
#include <aoc/HistorianHysteria.hpp>
|
2024-12-23 19:41:44 +01:00
|
|
|
#include <aoc/RedNosedReports.hpp>
|
|
|
|
#include <aoc/MullItOver.hpp>
|
|
|
|
#include <aoc/CeresSearch.hpp>
|
|
|
|
#include <aoc/PrintQueue.hpp>
|
|
|
|
#include <aoc/GuardGallivant.hpp>
|
|
|
|
#include <aoc/HoofIt.hpp>
|
2024-12-25 21:06:41 +01:00
|
|
|
#include <aoc/LanParty.hpp>
|
2024-12-23 18:04:59 +01:00
|
|
|
#include <aocTests/TestContext.hpp>
|
2024-12-06 20:16:01 +01:00
|
|
|
|
|
|
|
#define REQUIRE_MESSAGE(cond, msg) if (!(cond)) { INFO(msg); REQUIRE(cond); }
|
|
|
|
|
2024-12-11 00:42:28 +01:00
|
|
|
TEST_CASE("[HistorianHysteriaTests]")
|
2024-12-06 20:16:01 +01:00
|
|
|
{
|
2024-12-23 18:26:03 +01:00
|
|
|
TestContext test;
|
2024-12-23 18:04:59 +01:00
|
|
|
SECTION("FullData")
|
2024-12-11 00:42:28 +01:00
|
|
|
{
|
2024-12-23 18:26:03 +01:00
|
|
|
test.run(std::make_unique<HistorianHysteria>(), 2176849, 23384288, test.getInputPaths());
|
2024-12-06 20:16:01 +01:00
|
|
|
}
|
2024-12-23 18:04:59 +01:00
|
|
|
SECTION("ExampleData")
|
2024-12-11 00:42:28 +01:00
|
|
|
{
|
2024-12-23 18:26:03 +01:00
|
|
|
test.run(std::make_unique<HistorianHysteria>(), 11, 31, test.getExampleInputPaths());
|
2024-12-06 20:16:01 +01:00
|
|
|
}
|
|
|
|
}
|
2024-12-23 19:41:44 +01:00
|
|
|
|
|
|
|
TEST_CASE("[RedNosedReportsTests]")
|
|
|
|
{
|
|
|
|
TestContext test;
|
|
|
|
SECTION("FullData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<RedNosedReports>(), 472, 520, test.getInputPaths());
|
|
|
|
}
|
|
|
|
SECTION("ExampleData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<RedNosedReports>(), 2, 4, test.getExampleInputPaths());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_CASE("[MullItOverTests]")
|
|
|
|
{
|
|
|
|
TestContext test;
|
|
|
|
SECTION("FullData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<MullItOver>(), 187833789, 94455185, test.getInputPaths());
|
|
|
|
}
|
|
|
|
SECTION("ExampleData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<MullItOver>(), 161, 48, test.getExampleInputPaths());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_CASE("[CeresSearchTests]")
|
|
|
|
{
|
|
|
|
TestContext test;
|
|
|
|
SECTION("FullData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<CeresSearch>(), 2462, 1877, test.getInputPaths());
|
|
|
|
}
|
|
|
|
SECTION("ExampleData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<CeresSearch>(), 18, 9, test.getExampleInputPaths());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_CASE("[PrintQueueTests]")
|
|
|
|
{
|
|
|
|
TestContext test;
|
|
|
|
SECTION("FullData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<PrintQueue>(), 5087, 4971, test.getInputPaths());
|
|
|
|
}
|
|
|
|
SECTION("ExampleData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<PrintQueue>(), 143, 123, test.getExampleInputPaths());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_CASE("[GuardGallivantTests]")
|
|
|
|
{
|
|
|
|
TestContext test;
|
|
|
|
SECTION("FullData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<GuardGallivant>(), 4665, 0, test.getInputPaths());
|
|
|
|
}
|
|
|
|
SECTION("ExampleData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<GuardGallivant>(), 41, 0, test.getExampleInputPaths());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
TEST_CASE("[HoofItTests]")
|
|
|
|
{
|
|
|
|
TestContext test;
|
|
|
|
SECTION("FullData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<HoofIt>(), 611, 1380, test.getInputPaths());
|
|
|
|
}
|
|
|
|
SECTION("ExampleData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<HoofIt>(), 36, 81, test.getExampleInputPaths());
|
|
|
|
}
|
|
|
|
}
|
2024-12-25 21:06:41 +01:00
|
|
|
|
|
|
|
TEST_CASE("[LanPartyTests]")
|
|
|
|
{
|
|
|
|
TestContext test;
|
|
|
|
SECTION("FullData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<LanParty>(), 1230, 0, test.getInputPaths());
|
|
|
|
}
|
|
|
|
SECTION("ExampleData")
|
|
|
|
{
|
|
|
|
test.run(std::make_unique<LanParty>(), 7, 0, test.getExampleInputPaths());
|
|
|
|
}
|
|
|
|
}
|