17#include <nlohmann/json.hpp>
CLI argument parsing, validation, and configuration for ppforest2.
Evaluation data types: per-iteration stats and run summaries.
Definition Benchmark.hpp:21
Command-line interface: argument parsing, subcommands, and benchmark/evaluation orchestration.
Definition Benchmark.hpp:25
BenchmarkSuite parse_suite(std::string const &path)
Parse a BenchmarkSuite from a JSON file path.
void setup_benchmark(CLI::App &app, Params ¶ms)
Register benchmark subcommand options on app.
ScenarioResult run_scenario(nlohmann::json const &scenario, std::string const &binary_path)
Run a single scenario as a subprocess.
int run_benchmark(Params const ¶ms, std::string const &binary_path)
Run the benchmark subcommand.
SuiteResult run_suite(BenchmarkSuite const &suite, std::string const &binary_path, io::Output &out)
Run all scenarios in a suite via subprocess invocations.
A suite of scenarios with shared defaults.
Definition Benchmark.hpp:55
std::vector< nlohmann::json > scenarios
Definition Benchmark.hpp:60
std::string name
Definition Benchmark.hpp:59
BenchmarkSuite(std::string name="ppforest2 benchmark")
Definition Benchmark.hpp:56
All CLI options and runtime parameters.
Definition CLIOptions.hpp:33
Result of running a single benchmark scenario.
Definition Benchmark.hpp:35
double scenario_time_ms
Definition Benchmark.hpp:46
ScenarioResult(std::string name, double scenario_time_ms, nlohmann::json const &j)
Definition Benchmark.hpp:38
std::string name
Definition Benchmark.hpp:43
Aggregated results for an entire suite run.
Definition Benchmark.hpp:66
nlohmann::json to_json() const
SuiteResult(nlohmann::json const &j)
std::string timestamp
Definition Benchmark.hpp:71
double total_time_ms
Definition Benchmark.hpp:73
std::string to_csv() const
std::vector< ScenarioResult > results
Definition Benchmark.hpp:72
std::string suite_name
Definition Benchmark.hpp:70
Summary of an evaluation run.
Definition EvaluateResult.hpp:22
Quiet-aware, indentation-aware output context.
Definition Output.hpp:25