diff --git a/tests/include/aocTests/Part1TestContext.hpp b/tests/include/aocTests/Part1TestContext.hpp
deleted file mode 100644
index 1b50e77..0000000
--- a/tests/include/aocTests/Part1TestContext.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// 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 .
-
-#pragma once
-
-#include
-
-class Part1TestContext
- : public TestContext
-{
-public:
- Part1TestContext(std::vector inputPaths);
- virtual long long int getResult(Solver& solver) const override;
-};
diff --git a/tests/include/aocTests/Part2TestContext.hpp b/tests/include/aocTests/Part2TestContext.hpp
deleted file mode 100644
index 80a79d0..0000000
--- a/tests/include/aocTests/Part2TestContext.hpp
+++ /dev/null
@@ -1,26 +0,0 @@
-// 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 .
-
-#pragma once
-
-#include
-
-class Part2TestContext
- : public TestContext
-{
-public:
- Part2TestContext(std::vector inputPaths);
- virtual long long int getResult(Solver& solver) const override;
-};
diff --git a/tests/include/aocTests/TestContext.hpp b/tests/include/aocTests/TestContext.hpp
index 7219fff..93e16e2 100644
--- a/tests/include/aocTests/TestContext.hpp
+++ b/tests/include/aocTests/TestContext.hpp
@@ -24,9 +24,7 @@ class TestContext
{
public:
TestContext(std::vector inputPaths);
- virtual ~TestContext() {};
std::vector getInputPaths() const;
- virtual long long int getResult(Solver& solver) const = 0;
private:
std::vector inputPaths_;
};
diff --git a/tests/src/Part1TestContext.cpp b/tests/src/Part1TestContext.cpp
deleted file mode 100644
index 260baa4..0000000
--- a/tests/src/Part1TestContext.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// 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
-
-Part1TestContext::Part1TestContext(std::vector inputPaths)
- : TestContext{ inputPaths } {}
-
-long long int Part1TestContext::getResult(Solver& solver) const
-{
- return solver.getResultPart1();
-}
diff --git a/tests/src/Part2TestContext.cpp b/tests/src/Part2TestContext.cpp
deleted file mode 100644
index d5d02b0..0000000
--- a/tests/src/Part2TestContext.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-// 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
-
-Part2TestContext::Part2TestContext(std::vector inputPaths)
- : TestContext{ inputPaths } {}
-
-long long int Part2TestContext::getResult(Solver& solver) const
-{
- return solver.getResultPart2();
-}
diff --git a/tests/src/TestCases.cpp b/tests/src/TestCases.cpp
index a8376df..4eec29b 100644
--- a/tests/src/TestCases.cpp
+++ b/tests/src/TestCases.cpp
@@ -19,24 +19,23 @@
#include
#include
-#include
-#include
+#include
#define REQUIRE_MESSAGE(cond, msg) if (!(cond)) { INFO(msg); REQUIRE(cond); }
class TestCaseBase
{
public:
- Part1TestContext part1TestContext{ getInputPaths() };
- Part2TestContext part2TestContext{ getInputPaths() };
- Part1TestContext part1ExampleTestContext{ getExampleInputPaths() };
- Part2TestContext part2ExampleTestContext{ getExampleInputPaths() };
- void run(std::unique_ptr&& solver, const long long int expected, const TestContext& context)
+ TestContext fullDataContext{ getInputPaths() };
+ TestContext exampleDataContext{ getExampleInputPaths() };
+ void run(const std::unique_ptr&& solver, const long long int expected1,
+ const long long int expected2, const TestContext& context)
{
SolverEngine solverEngine{ context.getInputPaths() };
solverEngine.run(*solver);
- REQUIRE(expected == context.getResult(*solver));
+ REQUIRE(expected1 == solver->getResultPart1());
+ REQUIRE(expected2 == solver->getResultPart2());
}
private:
std::vector getInputPaths() const
@@ -53,20 +52,12 @@ class TestCaseBase
TEST_CASE("[HistorianHysteriaTests]")
{
TestCaseBase test;
- SECTION("FullData1")
+ SECTION("FullData")
{
- test.run(std::make_unique(), 2176849, test.part1TestContext);
+ test.run(std::make_unique(), 2176849, 23384288, test.fullDataContext);
}
- SECTION("FullData2")
+ SECTION("ExampleData")
{
- test.run(std::make_unique(), 23384288, test.part2TestContext);
- }
- SECTION("ExampleData1")
- {
- test.run(std::make_unique(), 11, test.part1ExampleTestContext);
- }
- SECTION("ExampleData2")
- {
- test.run(std::make_unique(), 31, test.part2ExampleTestContext);
+ test.run(std::make_unique(), 11, 31, test.exampleDataContext);
}
}