aboutsummaryrefslogtreecommitdiff
path: root/benches/rendering.rs
diff options
context:
space:
mode:
Diffstat (limited to 'benches/rendering.rs')
-rw-r--r--benches/rendering.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/benches/rendering.rs b/benches/rendering.rs
new file mode 100644
index 0000000..549ad21
--- /dev/null
+++ b/benches/rendering.rs
@@ -0,0 +1,25 @@
+use criterion::{black_box, criterion_group, criterion_main, Criterion};
+use std::fs;
+use wmap_renderer::{render_to_png, Configuration, StageType};
+
+fn benchmark_rendering(c: &mut Criterion) {
+ // Read the huge.wmap file for realistic benchmarking
+ let source = fs::read_to_string("benches/huge.wmap").expect("Failed to read benches/huge.wmap");
+ let map = wmap_parser::parse(&source);
+ let config = Configuration::default();
+
+ c.bench_function("render huge map", |b| {
+ b.iter(|| render_to_png(black_box(&map), StageType::default(), &config))
+ });
+
+ // Also benchmark a simple map
+ let simple_source = "Tea (90, 50)\nCup (80, 40)\nTea -> Cup";
+ let simple_map = wmap_parser::parse(simple_source);
+
+ c.bench_function("render simple map", |b| {
+ b.iter(|| render_to_png(black_box(&simple_map), StageType::default(), &config))
+ });
+}
+
+criterion_group!(benches, benchmark_rendering);
+criterion_main!(benches);