diff options
Diffstat (limited to 'benchmark/agbenchmark/reports/processing/gen_combined_chart.py')
-rw-r--r-- | benchmark/agbenchmark/reports/processing/gen_combined_chart.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/benchmark/agbenchmark/reports/processing/gen_combined_chart.py b/benchmark/agbenchmark/reports/processing/gen_combined_chart.py new file mode 100644 index 000000000..f7140de68 --- /dev/null +++ b/benchmark/agbenchmark/reports/processing/gen_combined_chart.py @@ -0,0 +1,45 @@ +import json +import os +from pathlib import Path + +from agbenchmark.reports.processing.graphs import ( + save_combined_bar_chart, + save_combined_radar_chart, +) +from agbenchmark.reports.processing.process_report import ( + all_agent_categories, + get_reports_data, +) + + +def generate_combined_chart() -> None: + all_agents_path = Path(__file__).parent.parent.parent.parent / "reports" + + combined_charts_folder = all_agents_path / "combined_charts" + + reports_data = get_reports_data(str(all_agents_path)) + + categories = all_agent_categories(reports_data) + + # Count the number of directories in this directory + num_dirs = len([f for f in combined_charts_folder.iterdir() if f.is_dir()]) + + run_charts_folder = combined_charts_folder / f"run{num_dirs + 1}" + + if not os.path.exists(run_charts_folder): + os.makedirs(run_charts_folder) + + info_data = { + report_name: data.benchmark_start_time + for report_name, data in reports_data.items() + if report_name in categories + } + with open(Path(run_charts_folder) / "run_info.json", "w") as f: + json.dump(info_data, f) + + save_combined_radar_chart(categories, Path(run_charts_folder) / "radar_chart.png") + save_combined_bar_chart(categories, Path(run_charts_folder) / "bar_chart.png") + + +if __name__ == "__main__": + generate_combined_chart() |