diff --git a/crates/fidc-core/src/data.rs b/crates/fidc-core/src/data.rs index cf978ae..de3a361 100644 --- a/crates/fidc-core/src/data.rs +++ b/crates/fidc-core/src/data.rs @@ -4403,6 +4403,16 @@ fn normalize_factor_snapshots( } }) .collect(); + if snapshot + .extra_factors + .contains_key(BACKWARD_ADJUSTMENT_FACTOR_FIELD) + { + return Err(DataSetError::ReservedTypedFactorInExtraMap { + date: snapshot.date, + symbol: snapshot.symbol, + field: BACKWARD_ADJUSTMENT_FACTOR_FIELD, + }); + } Ok(snapshot) }) .collect() @@ -6349,6 +6359,21 @@ mod tests { normalize_factor_snapshots(vec![snapshot(Some(0.0), BTreeMap::new())]), Err(DataSetError::InvalidBackwardAdjustmentFactor { .. }) )); + for field in [ + " ADJUSTMENT_FACTOR_BACKWARD1 ", + "\"adjustment_factor_backward1\"", + "'adjustment_factor_backward1'", + ] { + for typed_value in [None, Some(1.0)] { + assert!(matches!( + normalize_factor_snapshots(vec![snapshot( + typed_value, + BTreeMap::from([(Cow::Borrowed(field), 2.0)]), + )]), + Err(DataSetError::ReservedTypedFactorInExtraMap { .. }) + ), "reserved alias accepted: {field}"); + } + } } #[test]