From d7b7162640ab08925be3f08d73ac325faddedf77 Mon Sep 17 00:00:00 2001 From: Daniel Rosel Date: Mon, 16 Dec 2024 11:38:00 +0100 Subject: [PATCH] tests and example debug --- examples/main.cpp | 1 + tests/tests.cpp | 72 ++--------------------------------------------- 2 files changed, 4 insertions(+), 69 deletions(-) diff --git a/examples/main.cpp b/examples/main.cpp index 5e0c0da..a3b78d8 100644 --- a/examples/main.cpp +++ b/examples/main.cpp @@ -167,6 +167,7 @@ int main () { if (node) { std::cout << "Solution found!" << std::endl; State *vacuum_state = node->state.get(); + vacuum_state->print(); } else { std::cout << "Solution not found!" << std::endl; } diff --git a/tests/tests.cpp b/tests/tests.cpp index d30c35d..4d2c95d 100644 --- a/tests/tests.cpp +++ b/tests/tests.cpp @@ -8,77 +8,11 @@ -class VacuumState : public State { -public: - VacuumState() : x(0), dirty0(true), dirty1(true) {} - VacuumState(int x, bool dirty0, bool dirty1) : x(x), dirty0(dirty0), dirty1(dirty1) {} - int x; - bool dirty0; - bool dirty1; - void print() override { - std::cout << "VacuumState(" << x << ", " << dirty0 << ", " << dirty1 << ")" << std::endl; - } -}; - -class VacuumCleaner : public Problem { -public: - VacuumCleaner() { - initial_state_ = new VacuumState(); - } - ~VacuumCleaner() { - delete initial_state_; - } - bool goal_test(State *state) override { - auto *vacuum_state = dynamic_cast(state); - return !vacuum_state->dirty0 && !vacuum_state->dirty1; - } - std::vector actions(State *state) override { - auto *vacuum_state = dynamic_cast(state); - std::vector actions; - if (vacuum_state->dirty0 && vacuum_state->x == 0) { - actions.emplace_back("Suck", 1, vacuum_state, new VacuumState(vacuum_state->x, false, vacuum_state->dirty1)); - } - if (vacuum_state->dirty1 && vacuum_state->x == 1) { - actions.emplace_back("Suck", 1, vacuum_state, new VacuumState(vacuum_state->x, vacuum_state->dirty0, false)); - } - if (vacuum_state->x == 0) { - actions.emplace_back("Right", 1, vacuum_state, new VacuumState(1, vacuum_state->dirty0, vacuum_state->dirty1)); - } else { - actions.emplace_back("Left", 1, vacuum_state, new VacuumState(0, vacuum_state->dirty0, vacuum_state->dirty1)); - } - return actions; - } - double heuristic(State *state) override { - auto *vacuum_state = dynamic_cast(state); - return vacuum_state->dirty0 + vacuum_state->dirty1; - } -}; - -TEST(Problems, VacuumCleaner) { - - VacuumCleaner vacuum_cleaner; - auto *state = vacuum_cleaner.initial_state(); - EXPECT_FALSE(vacuum_cleaner.goal_test(state)); - auto actions = vacuum_cleaner.actions(state); - for (auto &action : actions) { - action.effect->print(); - } - +TEST(Definitions, State) { + State state; + EXPECT_NO_THROW(state.print()); } -TEST(Search, BreadthFirstSearch) { - VacuumCleaner vacuum_cleaner; - - auto *search = create_search(BREADTH_FIRST_SEARCH, &vacuum_cleaner); - auto node = search->search(); - - bool dirty0 = dynamic_cast(node->state)->dirty0; - bool dirty1 = dynamic_cast(node->state)->dirty1; - EXPECT_FALSE(dirty0); - EXPECT_FALSE(dirty1); -} - - int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv);