38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
#include "../examples/agent/Environments.h"
|
|
#include "agent/Agent.h"
|
|
#include "grid/GridProjection.h"
|
|
#include "ui/Layout.h"
|
|
#include "zeroerr/unittest.h"
|
|
|
|
using namespace eve::agent;
|
|
|
|
TEST_CASE("agent.productionGridGame") {
|
|
agent_examples::GridGame game;
|
|
Config c;
|
|
c.featureCount = 2;
|
|
c.actionCount = 4;
|
|
c.horizon = 24;
|
|
auto result = run(c, game);
|
|
REQUIRE(result.ok());
|
|
REQUIRE_EQ(result.value().failures, 0u);
|
|
REQUIRE(result.value().best.steps.back().observation.outcome == Outcome::Success);
|
|
REQUIRE(replay(result.value().best, game).ok());
|
|
REQUIRE(result.value().trainingSamples > 0);
|
|
}
|
|
|
|
TEST_CASE("agent.productionUiLayout") {
|
|
agent_examples::UiLayout ui;
|
|
Config c;
|
|
c.featureCount = 4;
|
|
c.actionCount = 5;
|
|
c.population = 12;
|
|
c.elites = 3;
|
|
c.generations = 2;
|
|
c.strategy = Strategy::Random;
|
|
auto result = run(c, ui);
|
|
REQUIRE(result.ok());
|
|
REQUIRE_EQ(result.value().failures, 0u);
|
|
REQUIRE(result.value().coverage.size() > 15);
|
|
REQUIRE(replay(result.value().best, ui).ok());
|
|
}
|