diff --git a/crates/trace/src/params.rs b/crates/trace/src/params.rs index 6ce6ce241..dd5bc9929 100644 --- a/crates/trace/src/params.rs +++ b/crates/trace/src/params.rs @@ -247,5 +247,5 @@ pub fn presets() -> Vec<(&'static str, TraceParams)> { /// Gradients stay an option to turn on. Flat Logo, a preset of our own, has none. pub fn enhanced_preset(name: &str) -> Option { let p = preset(name).filter(|p| p.mode != Mode::Logo)?; - Some(TraceParams { auto_grouping: true, shapes: !name.eq_ignore_ascii_case("High Fidelity Photo"), ..p }) + Some(TraceParams { auto_grouping: true, shapes: p != preset("High Fidelity Photo")?, ..p }) } diff --git a/crates/trace/tests/enhanced_preset_name.rs b/crates/trace/tests/enhanced_preset_name.rs new file mode 100644 index 000000000..b84bb6e6a --- /dev/null +++ b/crates/trace/tests/enhanced_preset_name.rs @@ -0,0 +1,13 @@ +//! `enhanced_preset` resolves a name the way `preset` does (trimmed, brackets stripped, any case), +//! so Shapes is off for High Fidelity Photo however its name is written. + +use vectorcraft_trace::enhanced_preset; + +#[test] +fn enhanced_high_fidelity_photo_ignores_name_decoration() { + let plain = enhanced_preset("High Fidelity Photo").unwrap(); + assert!(!plain.shapes); + for name in ["[High Fidelity Photo]", " High Fidelity Photo ", " high fidelity photo "] { + assert_eq!(enhanced_preset(name), Some(plain.clone()), "{name:?}"); + } +}