ppforest2 v0.1.0
Projection Pursuit Decision Trees and Random Forests
Loading...
Searching...
No Matches
Benchmark.hpp File Reference

Benchmark scenario types, JSON parsing, and subprocess-based execution. More...

#include "cli/CLIOptions.hpp"
#include "io/EvaluateResult.hpp"
#include <nlohmann/json.hpp>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  ppforest2::cli::BenchmarkSuite
 A suite of scenarios with shared defaults. More...
 
struct  ppforest2::cli::ScenarioResult
 Result of running a single benchmark scenario. More...
 
struct  ppforest2::cli::SuiteResult
 Aggregated results for an entire suite run. More...
 

Namespaces

namespace  CLI
 
namespace  ppforest2
 Binarization strategies for multiclass-to-binary reduction.
 
namespace  ppforest2::cli
 Command-line interface: argument parsing, subcommands, and benchmark/evaluation orchestration.
 

Functions

BenchmarkSuite ppforest2::cli::parse_suite (nlohmann::json const &j)
 Parse a BenchmarkSuite from a JSON object.
 
BenchmarkSuite ppforest2::cli::parse_suite (std::string const &path)
 Parse a BenchmarkSuite from a JSON file path.
 
int ppforest2::cli::run_benchmark (Params const &params, std::string const &binary_path)
 Run the benchmark subcommand.
 
ScenarioResult ppforest2::cli::run_scenario (nlohmann::json const &scenario, std::string const &binary_path)
 Run a single scenario as a subprocess.
 
SuiteResult ppforest2::cli::run_suite (BenchmarkSuite const &suite, std::string const &binary_path, io::Output &out)
 Run all scenarios in a suite via subprocess invocations.
 
void ppforest2::cli::setup_benchmark (CLI::App &app, Params &params)
 Register benchmark subcommand options on app.
 

Detailed Description

Benchmark scenario types, JSON parsing, and subprocess-based execution.

Each benchmark scenario runs as a separate ppforest2 evaluate process, giving accurate per-scenario peak RSS measurements.

Scenarios are represented as plain JSON objects throughout — no intermediate typed struct. Default merging, validation, and config extraction all operate on JSON directly.