mirror of
https://github.com/JHUAPL/kami.git
synced 2026-01-07 22:13:51 -05:00
Make CTidy happy
This commit is contained in:
@@ -53,6 +53,9 @@
|
||||
std::shared_ptr<spdlog::logger> console = nullptr;
|
||||
std::shared_ptr<std::mt19937> rng = nullptr;
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma ide diagnostic ignored "EmptyDeclOrStmt"
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
std::string ident = "bankreserves";
|
||||
std::string log_level_option = "info";
|
||||
@@ -99,3 +102,5 @@ int main(int argc, char **argv) {
|
||||
console->info("JSON data report written to {}", output_file_name);
|
||||
console->trace("Done.");
|
||||
}
|
||||
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
@@ -85,7 +85,7 @@ std::optional<kami::AgentID> PersonAgent::do_business(std::shared_ptr<kami::Repo
|
||||
return std::nullopt;
|
||||
|
||||
// Note, here we reverse the logic from that used in the Mesa
|
||||
// implementation. We prefer the guard clause to to the nested
|
||||
// implementation. We prefer the guard clause to the nested
|
||||
// if statements. See Fowler.
|
||||
auto cell_mates = cell_mates_opt.value();
|
||||
if (cell_mates->size() < 2)
|
||||
|
||||
@@ -169,6 +169,9 @@ std::shared_ptr<kami::Model> BoltzmannWealthModel1D::step() {
|
||||
return shared_from_this();
|
||||
}
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma ide diagnostic ignored "EmptyDeclOrStmt"
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
std::string ident = "boltzmann1d";
|
||||
std::string log_level_option = "info";
|
||||
@@ -202,3 +205,5 @@ int main(int argc, char **argv) {
|
||||
|
||||
console->info("Boltzmann Wealth Model simulation complete, requiring {} seconds", sw);
|
||||
}
|
||||
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
@@ -96,11 +96,10 @@ public:
|
||||
/**
|
||||
* Execute a single time-step for the model.
|
||||
*/
|
||||
std::shared_ptr<kami::Model> step();
|
||||
std::shared_ptr<kami::Model> step() final;
|
||||
|
||||
private:
|
||||
unsigned int _step_count;
|
||||
|
||||
};
|
||||
|
||||
#endif // BOLTZMANN1D_H
|
||||
|
||||
@@ -77,7 +77,7 @@ kami::AgentID MoneyAgent2D::step(std::shared_ptr<kami::Model> model) {
|
||||
return this->get_agent_id();
|
||||
}
|
||||
|
||||
std::optional<kami::GridCoord2D> MoneyAgent2D::move_agent(std::shared_ptr<kami::Model> model) {
|
||||
std::optional<kami::GridCoord2D> MoneyAgent2D::move_agent(const std::shared_ptr<kami::Model> &model) {
|
||||
console->trace("Entering move_agent");
|
||||
auto agent_id = get_agent_id();
|
||||
|
||||
@@ -100,7 +100,7 @@ std::optional<kami::GridCoord2D> MoneyAgent2D::move_agent(std::shared_ptr<kami::
|
||||
return new_location;
|
||||
}
|
||||
|
||||
std::optional<kami::AgentID> MoneyAgent2D::give_money(std::shared_ptr<kami::Model> model) {
|
||||
std::optional<kami::AgentID> MoneyAgent2D::give_money(const std::shared_ptr<kami::Model> &model) {
|
||||
console->trace("Entering give_money");
|
||||
auto agent_id = get_agent_id();
|
||||
|
||||
@@ -170,6 +170,9 @@ std::shared_ptr<kami::Model> BoltzmannWealthModel2D::step() {
|
||||
return shared_from_this();
|
||||
}
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma ide diagnostic ignored "EmptyDeclOrStmt"
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
std::string ident = "boltzmann2d";
|
||||
std::string log_level_option = "info";
|
||||
@@ -204,3 +207,5 @@ int main(int argc, char **argv) {
|
||||
|
||||
console->info("Boltzmann Wealth Model simulation complete, requiring {} seconds", sw);
|
||||
}
|
||||
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
@@ -64,17 +64,16 @@ public:
|
||||
/**
|
||||
* Move the agent to a random location on the world
|
||||
*/
|
||||
std::optional<kami::GridCoord2D> move_agent(std::shared_ptr<kami::Model> model);
|
||||
std::optional<kami::GridCoord2D> move_agent(const std::shared_ptr<kami::Model> &model);
|
||||
|
||||
/**
|
||||
* Give money to a random agent
|
||||
*/
|
||||
std::optional<kami::AgentID> give_money(std::shared_ptr<kami::Model> model);
|
||||
std::optional<kami::AgentID> give_money(const std::shared_ptr<kami::Model> &model);
|
||||
|
||||
private:
|
||||
int _step_counter;
|
||||
int _agent_wealth;
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -99,11 +98,10 @@ public:
|
||||
/**
|
||||
* Execute a single time-step for the model.
|
||||
*/
|
||||
std::shared_ptr<kami::Model> step();
|
||||
std::shared_ptr<kami::Model> step() final;
|
||||
|
||||
private:
|
||||
unsigned int _step_count;
|
||||
|
||||
};
|
||||
|
||||
#endif // BOLTZMANN2D_H
|
||||
|
||||
@@ -132,7 +132,7 @@ namespace kami {
|
||||
* @returns false if the agent is not placed at the specified
|
||||
* location, otherwise, true.
|
||||
*/
|
||||
virtual std::optional<AgentID> add_agent(const AgentID agent_id, const GridCoord1D &coord) = 0;
|
||||
virtual std::optional<AgentID> add_agent(AgentID agent_id, const GridCoord1D &coord) = 0;
|
||||
|
||||
/**
|
||||
* @brief Remove agent from the grid.
|
||||
@@ -141,7 +141,7 @@ namespace kami {
|
||||
*
|
||||
* @returns the `AgentID` of the `Agent` deleted
|
||||
*/
|
||||
std::optional<AgentID> delete_agent(const AgentID agent_id);
|
||||
std::optional<AgentID> delete_agent(AgentID agent_id);
|
||||
|
||||
/**
|
||||
* @brief Remove agent from the grid at the specified location
|
||||
@@ -151,7 +151,7 @@ namespace kami {
|
||||
*
|
||||
* @returns the `AgentID` of the `Agent` deleted
|
||||
*/
|
||||
std::optional<AgentID> delete_agent(const AgentID agent_id, const GridCoord1D &coord);
|
||||
std::optional<AgentID> delete_agent(AgentID agent_id, const GridCoord1D &coord);
|
||||
|
||||
/**
|
||||
* @brief Move an agent to the specified location.
|
||||
@@ -159,7 +159,7 @@ namespace kami {
|
||||
* @param[in] agent_id the `AgentID` of the agent to move.
|
||||
* @param[in] coord the coordinates of the agent.
|
||||
*/
|
||||
std::optional<AgentID> move_agent(const AgentID agent_id, const GridCoord1D &coord);
|
||||
std::optional<AgentID> move_agent(AgentID agent_id, const GridCoord1D &coord);
|
||||
|
||||
/**
|
||||
* @brief Inquire if the specified location is empty.
|
||||
@@ -220,7 +220,7 @@ namespace kami {
|
||||
* for all adjacent points.
|
||||
*/
|
||||
[[nodiscard]] std::optional<std::shared_ptr<std::unordered_set<GridCoord1D>>>
|
||||
get_neighborhood(const AgentID agent_id, const bool include_center) const;
|
||||
get_neighborhood(AgentID agent_id, const bool include_center) const;
|
||||
|
||||
/**
|
||||
* @brief Return the neighborhood of the specified location
|
||||
@@ -233,7 +233,7 @@ namespace kami {
|
||||
* for all adjacent points.
|
||||
*/
|
||||
[[nodiscard]] std::optional<std::shared_ptr<std::unordered_set<GridCoord1D>>>
|
||||
get_neighborhood(const GridCoord1D &coord, const bool include_center) const;
|
||||
get_neighborhood(const GridCoord1D &coord, bool include_center) const;
|
||||
|
||||
/**
|
||||
* @brief Get the size of the grid in the `x` dimension.
|
||||
|
||||
@@ -154,7 +154,7 @@ namespace kami {
|
||||
* @returns false if the agent is not placed at the specified
|
||||
* location, otherwise, true.
|
||||
*/
|
||||
virtual std::optional<AgentID> add_agent(const AgentID agent_id, const GridCoord2D &coord) = 0;
|
||||
virtual std::optional<AgentID> add_agent(AgentID agent_id, const GridCoord2D &coord) = 0;
|
||||
|
||||
/**
|
||||
* @brief Remove agent from the grid.
|
||||
@@ -163,7 +163,7 @@ namespace kami {
|
||||
*
|
||||
* @returns false if the agent is not removed, otherwise, true.
|
||||
*/
|
||||
std::optional<AgentID> delete_agent(const AgentID agent_id);
|
||||
std::optional<AgentID> delete_agent(AgentID agent_id);
|
||||
|
||||
/**
|
||||
* @brief Remove agent from the grid at the specified location
|
||||
@@ -173,7 +173,7 @@ namespace kami {
|
||||
*
|
||||
* @returns false if the agent is not removed, otherwise, true.
|
||||
*/
|
||||
std::optional<AgentID> delete_agent(const AgentID agent_id, const GridCoord2D &coord);
|
||||
std::optional<AgentID> delete_agent(AgentID agent_id, const GridCoord2D &coord);
|
||||
|
||||
/**
|
||||
* @brief Move an agent to the specified location.
|
||||
@@ -181,7 +181,7 @@ namespace kami {
|
||||
* @param[in] agent_id the `AgentID` of the agent to move.
|
||||
* @param[in] coord the coordinates of the agent.
|
||||
*/
|
||||
std::optional<AgentID> move_agent(const AgentID agent_id, const GridCoord2D &coord);
|
||||
std::optional<AgentID> move_agent(AgentID agent_id, const GridCoord2D &coord);
|
||||
|
||||
/**
|
||||
* @brief Inquire if the specified location is empty.
|
||||
|
||||
@@ -65,7 +65,7 @@ namespace kami {
|
||||
* @returns false if the agent is not placed at the specified
|
||||
* location, otherwise, true
|
||||
*/
|
||||
std::optional<AgentID> add_agent(const AgentID agent_id, const GridCoord1D &coord) override;
|
||||
std::optional<AgentID> add_agent(AgentID agent_id, const GridCoord1D &coord) override;
|
||||
};
|
||||
|
||||
} // namespace kami
|
||||
|
||||
@@ -69,7 +69,7 @@ namespace kami {
|
||||
* @returns false if the agent is not placed at the specified
|
||||
* location, otherwise, true
|
||||
*/
|
||||
std::optional<AgentID> add_agent(const AgentID agent_id, const GridCoord2D &coord) override;
|
||||
std::optional<AgentID> add_agent(AgentID agent_id, const GridCoord2D &coord) override;
|
||||
};
|
||||
|
||||
} // namespace kami
|
||||
|
||||
@@ -36,10 +36,10 @@
|
||||
#include <kami/hexgrid.h>
|
||||
|
||||
namespace kami {
|
||||
typedef std::variant <
|
||||
kami::GridCoord1D,
|
||||
kami::GridCoord2D,
|
||||
kami::HexCoord
|
||||
typedef std::variant<
|
||||
GridCoord1D,
|
||||
GridCoord2D,
|
||||
HexCoord
|
||||
> Position;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
namespace kami {
|
||||
|
||||
/**
|
||||
* @brief A one-dimensional grid where each cell may contain one agenta
|
||||
* @brief A one-dimensional grid where each cell may contain one agents
|
||||
*
|
||||
* @details The grid is linear and may wrap around in its only dimension.
|
||||
*
|
||||
@@ -64,7 +64,7 @@ namespace kami {
|
||||
* @returns false if the agent is not placed at the specified
|
||||
* location, otherwise, true
|
||||
*/
|
||||
std::optional<AgentID> add_agent(const AgentID agent_id, const GridCoord1D &coord) override;
|
||||
std::optional<AgentID> add_agent(AgentID agent_id, const GridCoord1D &coord) override;
|
||||
};
|
||||
|
||||
} // namespace kami
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace kami {
|
||||
* @returns false if the agent is not placed at the specified
|
||||
* location, otherwise, true
|
||||
*/
|
||||
std::optional<AgentID> add_agent(const AgentID agent_id, const GridCoord2D &coord) override;
|
||||
std::optional<AgentID> add_agent(AgentID agent_id, const GridCoord2D &coord) override;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ protected:
|
||||
shared_ptr<TestModel> model_world = nullptr;
|
||||
|
||||
void SetUp() override {
|
||||
auto model_world = make_shared<TestModel>();
|
||||
model_world = make_shared<TestModel>();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ public:
|
||||
|
||||
class TestModel : public Model {
|
||||
public:
|
||||
shared_ptr<Model> step() {
|
||||
shared_ptr<Model> step() final {
|
||||
return shared_from_this();
|
||||
}
|
||||
};
|
||||
@@ -61,24 +61,24 @@ TEST(Model, DefaultConstructor) {
|
||||
|
||||
TEST(Model, set_population) {
|
||||
auto model_foo = make_shared<TestModel>();
|
||||
auto popul_foo = make_shared<Population>();
|
||||
auto pop_foo = make_shared<Population>();
|
||||
|
||||
auto popul_bar = model_foo->set_population(popul_foo);
|
||||
EXPECT_EQ(popul_foo, popul_bar);
|
||||
auto pop_bar = model_foo->set_population(pop_foo);
|
||||
EXPECT_EQ(pop_foo, pop_bar);
|
||||
}
|
||||
|
||||
TEST(Model, get_population) {
|
||||
auto model_foo = make_shared<TestModel>();
|
||||
auto popul_foo = make_shared<Population>();
|
||||
auto pop_foo = make_shared<Population>();
|
||||
|
||||
auto popul_nul = model_foo->get_population();
|
||||
auto pop_nul = model_foo->get_population();
|
||||
|
||||
auto popul_bar = model_foo->set_population(popul_foo);
|
||||
auto popul_baz = model_foo->get_population();
|
||||
auto pop_bar = model_foo->set_population(pop_foo);
|
||||
auto pop_baz = model_foo->get_population();
|
||||
|
||||
EXPECT_TRUE(popul_baz);
|
||||
EXPECT_EQ(popul_foo, popul_baz);
|
||||
EXPECT_EQ(popul_bar, popul_baz);
|
||||
EXPECT_TRUE(pop_baz);
|
||||
EXPECT_EQ(pop_foo, pop_baz);
|
||||
EXPECT_EQ(pop_bar, pop_baz);
|
||||
}
|
||||
|
||||
TEST(Model, set_scheduler) {
|
||||
|
||||
@@ -65,7 +65,7 @@ protected:
|
||||
shared_ptr<TestModel> model_world = nullptr;
|
||||
|
||||
void SetUp() override {
|
||||
auto model_world = make_shared<TestModel>();
|
||||
model_world = make_shared<TestModel>();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -65,16 +65,16 @@ protected:
|
||||
|
||||
void SetUp() override {
|
||||
mod = make_shared<TestModel>();
|
||||
auto popul_foo = make_shared<Population>();
|
||||
auto pop_foo = make_shared<Population>();
|
||||
auto sched_foo = make_shared<SequentialScheduler>();
|
||||
|
||||
// Domain is not required for this test
|
||||
static_cast<void>(mod->set_population(popul_foo));
|
||||
static_cast<void>(mod->set_population(pop_foo));
|
||||
static_cast<void>(mod->set_scheduler(sched_foo));
|
||||
|
||||
for (auto i = 0; i < 10; i++) {
|
||||
auto agent_foo = make_shared<TestAgent>();
|
||||
static_cast<void>(popul_foo->add_agent(agent_foo));
|
||||
static_cast<void>(pop_foo->add_agent(agent_foo));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -55,7 +55,7 @@ protected:
|
||||
shared_ptr<TestModel> model_world = nullptr;
|
||||
|
||||
void SetUp() override {
|
||||
auto model_world = make_shared<TestModel>();
|
||||
model_world = make_shared<TestModel>();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user