12#include <unordered_map>
31 std::optional<std::reference_wrapper<ScenarioResult const>>
find(std::string
const& name)
const {
32 auto it = index_.find(name);
34 if (it == index_.end()) {
38 return std::cref(*it->second);
42 std::unordered_map<std::string, ScenarioResult const*> index_;
71 virtual std::string
good(std::string
const& s)
const = 0;
72 virtual std::string
bad(std::string
const& s)
const = 0;
73 virtual std::string
neutral(std::string
const& s)
const = 0;
75 using Columns = std::vector<ppforest2::io::layout::Column>;
77 virtual std::string
format_title(std::string
const& name, std::string
const& timestamp)
const = 0;
81 virtual std::string
format_footer(std::size_t count,
double total_ms)
const = 0;
101 std::optional<Baseline>
const& baseline;
103 static double delta_pct(
double current,
double baseline);
104 static std::vector<ppforest2::io::layout::Column> make_columns(
bool has_baseline);
107 std::optional<double> time;
108 std::optional<double> rss;
109 std::optional<double> tr_err;
110 std::optional<double> te_err;
118 std::string
good(std::string
const& s)
const override;
119 std::string
bad(std::string
const& s)
const override;
120 std::string
neutral(std::string
const& s)
const override;
122 std::string
format_title(std::string
const& name, std::string
const& ts)
const override;
126 std::string
format_footer(std::size_t count,
double total_ms)
const override;
131 std::string
good(std::string
const& s)
const override;
132 std::string
bad(std::string
const& s)
const override;
133 std::string
neutral(std::string
const& s)
const override;
135 std::string
format_title(std::string
const& name, std::string
const& ts)
const override;
139 std::string
format_footer(std::size_t count,
double total_ms)
const override;
Benchmark scenario types, JSON parsing, and subprocess-based execution.
Quiet-aware output context for CLI subcommands.
ANSI-safe column-driven table formatting.
Command-line interface: argument parsing, subcommands, and benchmark/evaluation orchestration.
Definition Benchmark.hpp:25
std::vector< std::string > Row
A row of pre-formatted cell strings.
Definition Table.hpp:77
A baseline suite with a pre-built name → result index.
Definition BenchmarkReport.hpp:22
Baseline(SuiteResult suite)
Definition BenchmarkReport.hpp:23
std::optional< std::reference_wrapper< ScenarioResult const > > find(std::string const &name) const
Find a scenario by name.
Definition BenchmarkReport.hpp:31
Markdown style with emoji indicators.
Definition BenchmarkReport.hpp:130
std::string format_header(Columns const &columns) const override
std::string format_footer(std::size_t count, double total_ms) const override
std::string good(std::string const &s) const override
std::string format_row(Columns const &columns, ppforest2::io::layout::Row const &cells) const override
std::string format_baseline_label(std::string const &ts) const override
std::string format_title(std::string const &name, std::string const &ts) const override
std::string bad(std::string const &s) const override
std::string neutral(std::string const &s) const override
Display style for benchmark report output.
Definition BenchmarkReport.hpp:65
virtual std::string neutral(std::string const &s) const =0
virtual std::string format_footer(std::size_t count, double total_ms) const =0
friend struct BenchmarkReport
Definition BenchmarkReport.hpp:69
std::vector< ppforest2::io::layout::Column > Columns
Definition BenchmarkReport.hpp:75
virtual std::string format_header(Columns const &columns) const =0
virtual std::string format_row(Columns const &columns, ppforest2::io::layout::Row const &cells) const =0
virtual std::string format_baseline_label(std::string const ×tamp) const =0
virtual std::string good(std::string const &s) const =0
virtual std::string format_title(std::string const &name, std::string const ×tamp) const =0
virtual std::string bad(std::string const &s) const =0
Terminal style with ANSI color decorators.
Definition BenchmarkReport.hpp:117
std::string neutral(std::string const &s) const override
std::string format_header(Columns const &columns) const override
std::string format_baseline_label(std::string const &ts) const override
std::string bad(std::string const &s) const override
std::string format_footer(std::size_t count, double total_ms) const override
std::string format_row(Columns const &columns, ppforest2::io::layout::Row const &cells) const override
std::string format_title(std::string const &name, std::string const &ts) const override
std::string good(std::string const &s) const override
nlohmann::json to_json() const
Export report as JSON, including deltas when baseline is present.
BenchmarkReport(SuiteResult const &r, std::optional< Baseline > const &b=std::nullopt)
Definition BenchmarkReport.hpp:55
double delta_threshold
Definition BenchmarkReport.hpp:53
void print(io::Output &out, Style const &style) const
Print formatted results to the given output.
std::string to_csv() const
Export report as CSV, including delta columns when baseline is present.
Result of running a single benchmark scenario.
Definition Benchmark.hpp:35
Aggregated results for an entire suite run.
Definition Benchmark.hpp:66
std::vector< ScenarioResult > results
Definition Benchmark.hpp:72
Quiet-aware, indentation-aware output context.
Definition Output.hpp:25