Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix linter warnings #105

Merged
merged 13 commits into from
Mar 10, 2025
2 changes: 1 addition & 1 deletion .github/workflows/cpp-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ defaults:

env:
CMAKE_BUILD_PARALLEL_LEVEL: 3
CTEST_PARALLEL_LEVEL: 1
CTEST_PARALLEL_LEVEL: 4

jobs:
read-parameters:
Expand Down
6 changes: 5 additions & 1 deletion apps/gen_po_moving_block_lazy_testing.cpp
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
#include "Definitions.hpp"
#include "plog/Init.h"
#include "plog/Logger.h"
#include "plog/Severity.h"
#include "solver/mip-based/GenPOMovingBlockMIPSolver.hpp"

#include <cstdlib>
#include <gsl/span>
#include <plog/Appenders/ColorConsoleAppender.h>
#include <plog/Formatters/TxtFormatter.h>
#include <plog/Initializers/ConsoleInitializer.h>
#include <plog/Log.h>
#include <string>

// NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-pro-bounds-array-to-pointer-decay,bugprone-exception-escape)

Expand Down
8 changes: 7 additions & 1 deletion apps/gen_po_moving_block_lazy_vss_gen_testing.cpp
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
#include "Definitions.hpp"
#include "plog/Init.h"
#include "plog/Logger.h"
#include "plog/Severity.h"
#include "probleminstances/GeneralPerformanceOptimizationInstance.hpp"
#include "probleminstances/VSSGenerationTimetable.hpp"
#include "solver/mip-based/GenPOMovingBlockMIPSolver.hpp"

#include <cstdlib>
#include <gsl/span>
#include <plog/Appenders/ColorConsoleAppender.h>
#include <plog/Formatters/TxtFormatter.h>
#include <plog/Initializers/ConsoleInitializer.h>
#include <plog/Log.h>
#include <string>

// NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-pro-bounds-array-to-pointer-decay,bugprone-exception-escape)

Expand Down
6 changes: 5 additions & 1 deletion apps/gen_po_moving_block_simplified_testing.cpp
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
#include "Definitions.hpp"
#include "plog/Init.h"
#include "plog/Logger.h"
#include "plog/Severity.h"
#include "solver/mip-based/GenPOMovingBlockMIPSolver.hpp"

#include <cstdlib>
#include <gsl/span>
#include <plog/Appenders/ColorConsoleAppender.h>
#include <plog/Formatters/TxtFormatter.h>
#include <plog/Initializers/ConsoleInitializer.h>
#include <plog/Log.h>
#include <string>

// NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-pro-bounds-array-to-pointer-decay,bugprone-exception-escape)

Expand Down
8 changes: 7 additions & 1 deletion apps/gen_po_moving_block_simplified_vss_gen_testing.cpp
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
#include "Definitions.hpp"
#include "plog/Init.h"
#include "plog/Logger.h"
#include "plog/Severity.h"
#include "probleminstances/GeneralPerformanceOptimizationInstance.hpp"
#include "probleminstances/VSSGenerationTimetable.hpp"
#include "solver/mip-based/GenPOMovingBlockMIPSolver.hpp"

#include <cstdlib>
#include <gsl/span>
#include <plog/Appenders/ColorConsoleAppender.h>
#include <plog/Formatters/TxtFormatter.h>
#include <plog/Initializers/ConsoleInitializer.h>
#include <plog/Log.h>
#include <string>

// NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-pro-bounds-array-to-pointer-decay,bugprone-exception-escape)

Expand Down
8 changes: 6 additions & 2 deletions apps/vss_generation_timetable_iterative_parameter_testing.cpp
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
#include "Definitions.hpp"
#include "VSSModel.hpp"
#include "plog/Init.h"
#include "plog/Logger.h"
#include "plog/Severity.h"
#include "solver/mip-based/VSSGenTimetableSolver.hpp"

#include <cstdlib>
#include <gsl/span>
#include <plog/Appenders/ColorConsoleAppender.h>
#include <plog/Formatters/TxtFormatter.h>
#include <plog/Initializers/ConsoleInitializer.h>
#include <plog/Log.h>
#include <string>

// NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-pro-bounds-array-to-pointer-decay)

Expand Down Expand Up @@ -98,7 +102,7 @@ int main(int argc, char** argv) {
PLOGI << " output path: " << output_path;
PLOGI << " file name: " << file_name;

cda_rail::vss::Model vss_model(cda_rail::vss::ModelType::Continuous);
const cda_rail::vss::Model vss_model(cda_rail::vss::ModelType::Continuous);

// NOLINTNEXTLINE(clang-diagnostic-unused-result)
solver.solve(
Expand Down
8 changes: 6 additions & 2 deletions apps/vss_generation_timetable_mip_iterative_vss_testing.cpp
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
#include "Definitions.hpp"
#include "VSSModel.hpp"
#include "plog/Init.h"
#include "plog/Logger.h"
#include "plog/Severity.h"
#include "solver/mip-based/VSSGenTimetableSolver.hpp"

#include <cstdlib>
#include <gsl/span>
#include <plog/Appenders/ColorConsoleAppender.h>
#include <plog/Formatters/TxtFormatter.h>
#include <plog/Initializers/ConsoleInitializer.h>
#include <plog/Log.h>
#include <string>

// NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-pro-bounds-array-to-pointer-decay)

Expand Down Expand Up @@ -86,7 +90,7 @@ int main(int argc, char** argv) {
std::to_string(static_cast<int>(optimality_strategy_int)) + "_" +
std::to_string(timeout);

cda_rail::vss::Model vss_model(cda_rail::vss::ModelType::Continuous);
const cda_rail::vss::Model vss_model(cda_rail::vss::ModelType::Continuous);

// NOLINTNEXTLINE(clang-diagnostic-unused-result)
solver.solve(
Expand Down
8 changes: 6 additions & 2 deletions apps/vss_generation_timetable_mip_testing.cpp
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
#include "Definitions.hpp"
#include "VSSModel.hpp"
#include "plog/Init.h"
#include "plog/Logger.h"
#include "plog/Severity.h"
#include "solver/mip-based/VSSGenTimetableSolver.hpp"

#include <cstdlib>
#include <gsl/span>
#include <plog/Appenders/ColorConsoleAppender.h>
#include <plog/Formatters/TxtFormatter.h>
#include <plog/Initializers/ConsoleInitializer.h>
#include <plog/Log.h>
#include <string>

// NOLINTBEGIN(cppcoreguidelines-pro-type-reinterpret-cast,cppcoreguidelines-pro-bounds-array-to-pointer-decay)

Expand Down Expand Up @@ -74,7 +78,7 @@ int main(int argc, char** argv) {
std::to_string(static_cast<int>(use_schedule_cuts)) + "_" +
std::to_string(timeout);

cda_rail::vss::Model vss_model =
const cda_rail::vss::Model vss_model =
discretize_vss_positions
? cda_rail::vss::Model(cda_rail::vss::ModelType::Discrete,
{&cda_rail::vss::functions::uniform})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
#include "Definitions.hpp"
#include "VSSModel.hpp"
#include "plog/Init.h"
#include "plog/Logger.h"
#include "plog/Severity.h"
#include "probleminstances/GeneralPerformanceOptimizationInstance.hpp"
#include "solver/mip-based/VSSGenTimetableSolver.hpp"

#include <cstdlib>
#include <filesystem>
#include <gsl/span>
#include <plog/Appenders/ColorConsoleAppender.h>
#include <plog/Formatters/TxtFormatter.h>
#include <plog/Initializers/ConsoleInitializer.h>
#include <plog/Log.h>
#include <string>

Expand Down Expand Up @@ -94,7 +98,7 @@ int main(int argc, char** argv) {
} else {
const std::filesystem::path vss_instance_path =
std::filesystem::path(instance_path) / "instance";
cda_rail::instances::GeneralPerformanceOptimizationInstance
const cda_rail::instances::GeneralPerformanceOptimizationInstance
vss_instance_before_parse(vss_instance_path);
const auto vss_instance =
vss_instance_before_parse.cast_to_vss_generation(true);
Expand Down
1 change: 1 addition & 0 deletions include/CustomExceptions.hpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#pragma once
#include <cstddef>
#include <exception>
#include <string>
#include <utility>
Expand Down
28 changes: 23 additions & 5 deletions include/Definitions.hpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
#pragma once
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <filesystem>
#include <limits>
#include <stdexcept>
#include <string>
#include <system_error>
#include <utility>
#include <vector>

namespace cda_rail {
Expand All @@ -16,24 +22,36 @@ constexpr double ABS_PWL_ERROR = 10;
constexpr double LINE_SPEED_ACCURACY = 0.1;
constexpr double LINE_SPEED_TIME_ACCURACY = 0.1;

enum class VertexType { NoBorder = 0, VSS = 1, TTD = 2, NoBorderVSS = 3 };
enum class SolutionStatus {
enum class VertexType : std::uint8_t {
NoBorder = 0,
VSS = 1,
TTD = 2,
NoBorderVSS = 3
};
enum class SolutionStatus : std::uint8_t {
Optimal = 0,
Feasible = 1,
Infeasible = 2,
Timeout = 3,
Unknown = 4
};
enum class ExportOption {
enum class ExportOption : std::uint8_t {
NoExport = 0,
ExportSolution = 1,
ExportSolutionWithInstance = 2,
ExportLP = 3,
ExportSolutionAndLP = 4,
ExportSolutionWithInstanceAndLP = 5
};
enum class OptimalityStrategy { Optimal = 0, TradeOff = 1, Feasible = 2 };
enum class VelocityRefinementStrategy { None = 0, MinOneStep = 1 };
enum class OptimalityStrategy : std::uint8_t {
Optimal = 0,
TradeOff = 1,
Feasible = 2
};
enum class VelocityRefinementStrategy : std::uint8_t {
None = 0,
MinOneStep = 1
};

// Helper functions

Expand Down
3 changes: 2 additions & 1 deletion include/EOMHelper.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#pragma once

#include <cstdint>
#include <utility>

// EOM = Equations of Motion
Expand Down Expand Up @@ -74,7 +75,7 @@ double max_time_profile_from_rear_to_ma_point(double v_1, double v_2,
double v_m, double a, double d,
double s, double obd);

enum class MATimingStrategy { ExtremeProfiles = 0 };
enum class MATimingStrategy : std::uint8_t { ExtremeProfiles = 0 };

double min_time_from_rear_to_ma_point(
double v_1, double v_2, double v_min, double v_max, double a, double d,
Expand Down
2 changes: 1 addition & 1 deletion include/MultiArray.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#pragma once
#include <memory>
#include <cstddef>
#include <sstream>
#include <stdexcept>
#include <vector>
Expand Down
20 changes: 11 additions & 9 deletions include/VSSModel.hpp
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
#pragma once

#include <algorithm>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <limits>
#include <stdexcept>
#include <utility>
#include <vector>

namespace cda_rail::vss {
using SeparationFunction = std::function<double(size_t, size_t)>;

enum class ModelType {
enum class ModelType : std::uint8_t {
Discrete = 0,
Continuous = 1,
Inferred = 2,
Expand All @@ -19,9 +23,7 @@ enum class ModelType {
namespace functions {
[[nodiscard]] static double uniform(size_t i, size_t n) {
double ret_val = (static_cast<double>(i) + 1) / static_cast<double>(n);
if (ret_val > 1) {
ret_val = 1;
}
ret_val = std::min<double>(ret_val, 1);
return ret_val;
}

Expand All @@ -33,7 +35,7 @@ namespace functions {
const auto n_points = static_cast<double>(n) - 1;
const auto k = n_points - static_cast<double>(i);
constexpr double pi = 3.14159265358979323846;
return 0.5 + 0.5 * std::cos((2 * k - 1) * pi / (2 * n_points));
return 0.5 + (0.5 * std::cos((2 * k - 1) * pi / (2 * n_points)));
}

[[nodiscard]] static size_t max_n_blocks(const SeparationFunction& sep_func,
Expand All @@ -56,15 +58,15 @@ namespace functions {
}
}

return static_cast<size_t>(std::floor(1 / min_frac + eps));
return static_cast<size_t>(std::floor((1 / min_frac) + eps));
}
} // namespace functions

class Model {
private:
ModelType model_type = ModelType::Continuous;
bool only_stop_at_vss = false;
std::vector<SeparationFunction> separation_functions = {};
ModelType model_type = ModelType::Continuous;
bool only_stop_at_vss = false;
std::vector<SeparationFunction> separation_functions;

public:
// Constructors
Expand Down
22 changes: 13 additions & 9 deletions include/datastructure/GeneralTimetable.hpp
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
#pragma once

#include "CustomExceptions.hpp"
#include "Definitions.hpp"
#include "RailwayNetwork.hpp"
#include "Station.hpp"
#include "Train.hpp"
#include "nlohmann/json.hpp"
#include "nlohmann/json_fwd.hpp"

#include <algorithm>
#include <cstddef>
#include <filesystem>
#include <fstream>
#include <string>
Expand Down Expand Up @@ -83,12 +86,9 @@ class GeneralScheduledStop {

[[nodiscard]] std::pair<int, int> get_forced_stopping_interval() const {
std::pair<int, int> interval = {begin.second, end.first};
if (begin.first + min_stopping_time > interval.second) {
interval.second = begin.first + min_stopping_time;
}
if (end.second - min_stopping_time < interval.first) {
interval.first = end.second - min_stopping_time;
}
interval.second =
std::max(begin.first + min_stopping_time, interval.second);
interval.first = std::min(end.second - min_stopping_time, interval.first);
return interval;
}

Expand All @@ -100,10 +100,14 @@ class GeneralScheduledStop {
[[nodiscard]] const std::string& get_station_name() const { return station; }

// Constructor
// NOLINTBEGIN(modernize-pass-by-value)
// cpp-linter cycles here because std::move were trivial for std::pair and
// should not be used in that context
GeneralScheduledStop(std::pair<int, int> begin, std::pair<int, int> end,
int min_stopping_time, std::string station)
: begin(std::move(begin)), end(std::move(end)),
min_stopping_time(min_stopping_time), station(std::move(station)) {
: begin(begin), end(end), min_stopping_time(min_stopping_time),
station(std::move(station)) {
// NOLINTEND(modernize-pass-by-value)
if (this->begin.second < this->begin.first) {
throw exceptions::InvalidInputException(
"Interval begin has negative length");
Expand Down Expand Up @@ -464,7 +468,7 @@ class GeneralTimetable : BaseTimetable {
}

std::ofstream file(p / "schedules.json");
file << j << std::endl;
file << j << '\n';
};

Train& editable_tr(size_t index) { return train_list.editable_tr(index); };
Expand Down
Loading
Loading