Generalize coordinates to location

This commit is contained in:
James P. Howard, II
2022-09-16 16:51:41 -04:00
parent f0295e9891
commit 0f1f1ad41a
9 changed files with 11 additions and 11 deletions

View File

@@ -18,11 +18,11 @@ namespace kami::error {
explicit AgentNotFound(const std::string &s) : std::logic_error(s) {};
};
class CoordinatesInvalid : public std::domain_error {
class LocationInvalid : public std::domain_error {
public:
explicit CoordinatesInvalid(const char *s) : std::domain_error(s) {};
explicit LocationInvalid(const char *s) : std::domain_error(s) {};
explicit CoordinatesInvalid(const std::string &s) : std::domain_error(s) {};
explicit LocationInvalid(const std::string &s) : std::domain_error(s) {};
};
class LocationUnavailable : public std::domain_error {

View File

@@ -38,7 +38,7 @@ namespace kami {
AgentID MultiGrid1D::add_agent(const AgentID agent_id, const GridCoord1D &coord) {
if (!is_location_valid(coord))
throw error::CoordinatesInvalid(fmt::format("Coordinates {} are invalid", coord.to_string()));
throw error::LocationInvalid(fmt::format("Coordinates {} are invalid", coord.to_string()));
_agent_index->insert(std::pair<AgentID, GridCoord1D>(agent_id, coord));
_agent_grid->insert(std::pair<GridCoord1D, AgentID>(coord, agent_id));

View File

@@ -38,7 +38,7 @@ namespace kami {
AgentID MultiGrid2D::add_agent(const AgentID agent_id, const GridCoord2D &coord) {
if (!is_location_valid(coord))
throw error::CoordinatesInvalid(fmt::format("Coordinates {} are invalid", coord.to_string()));
throw error::LocationInvalid(fmt::format("Coordinates {} are invalid", coord.to_string()));
_agent_index->insert(std::pair<AgentID, GridCoord2D>(agent_id, coord));
_agent_grid->insert(std::pair<GridCoord2D, AgentID>(coord, agent_id));

View File

@@ -36,7 +36,7 @@ namespace kami {
AgentID SoloGrid1D::add_agent(const AgentID agent_id, const GridCoord1D &coord) {
if (!is_location_valid(coord))
throw error::CoordinatesInvalid(fmt::format("Coordinates {} are invalid", coord.to_string()));
throw error::LocationInvalid(fmt::format("Coordinates {} are invalid", coord.to_string()));
if (!is_location_empty(coord))
throw error::LocationUnavailable(fmt::format("Coordinates {} already occupied", coord.to_string()));

View File

@@ -38,7 +38,7 @@ namespace kami {
AgentID SoloGrid2D::add_agent(const AgentID agent_id, const GridCoord2D &coord) {
if (!is_location_valid(coord))
throw error::CoordinatesInvalid(fmt::format("Coordinates {} are invalid", coord.to_string()));
throw error::LocationInvalid(fmt::format("Coordinates {} are invalid", coord.to_string()));
if (!is_location_empty(coord))
throw error::LocationUnavailable(fmt::format("Coordinates {} already occupied", coord.to_string()));

View File

@@ -197,7 +197,7 @@ TEST(MultiGrid1D, move_agent) {
MultiGrid1D multigrid1d_foo(10, true);
static_cast<void>(multigrid1d_foo.add_agent(agent_id_foo, coord2));
EXPECT_THROW(auto agent_id_baz = multigrid1d_foo.move_agent(agent_id_foo, coord10), CoordinatesInvalid);
EXPECT_THROW(auto agent_id_baz = multigrid1d_foo.move_agent(agent_id_foo, coord10), LocationInvalid);
}
{
MultiGrid1D multigrid1d_foo(10, true);

View File

@@ -198,7 +198,7 @@ TEST(MultiGrid2D, move_agent) {
MultiGrid2D multigrid2d_foo(10, 10, true, true);
static_cast<void>(multigrid2d_foo.add_agent(agent_id_foo, coord2));
EXPECT_THROW(auto agent_id_baz = multigrid2d_foo.move_agent(agent_id_foo, coord10), CoordinatesInvalid);
EXPECT_THROW(auto agent_id_baz = multigrid2d_foo.move_agent(agent_id_foo, coord10), LocationInvalid);
}
{
MultiGrid2D multigrid2d_foo(10, 10, true, true);

View File

@@ -195,7 +195,7 @@ TEST(SoloGrid1D, move_agent) {
SoloGrid1D sologrid1d_foo(10, true);
static_cast<void>(sologrid1d_foo.add_agent(agent_id_foo, coord2));
EXPECT_THROW(auto agent_id_baz = sologrid1d_foo.move_agent(agent_id_foo, coord10), CoordinatesInvalid);
EXPECT_THROW(auto agent_id_baz = sologrid1d_foo.move_agent(agent_id_foo, coord10), LocationInvalid);
}
{
SoloGrid1D sologrid1d_foo(10, true);

View File

@@ -193,7 +193,7 @@ TEST(SoloGrid2D, move_agent) {
SoloGrid2D sologrid2d_foo(10, 10, true, true);
static_cast<void>(sologrid2d_foo.add_agent(agent_id_foo, coord2));
EXPECT_THROW(auto agent_id_baz = sologrid2d_foo.move_agent(agent_id_foo, coord10), CoordinatesInvalid);
EXPECT_THROW(auto agent_id_baz = sologrid2d_foo.move_agent(agent_id_foo, coord10), LocationInvalid);
}
{
SoloGrid2D sologrid2d_foo(10, 10, true, true);