Skip to content

Commit 5e6aed9

Browse files
committed
Allow falling back to single successor meters in grid formulas
Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 6d178cd commit 5e6aed9

File tree

1 file changed

+10
-5
lines changed
  • src/graph/formulas/generators

1 file changed

+10
-5
lines changed

src/graph/formulas/generators/grid.rs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ where
3535
for comp in self.graph.successors(self.graph.root_id)? {
3636
let comp = self
3737
.graph
38-
.fallback_expr([comp.component_id()], true, false)?;
38+
.fallback_expr([comp.component_id()], true, true)?;
3939
expr = match expr {
4040
None => Some(comp),
4141
Some(e) => Some(comp + e),
@@ -59,14 +59,19 @@ mod tests {
5959

6060
// Add a grid meter and a battery chain behind it.
6161
let grid_meter = builder.meter();
62-
let meter_bat_chain = builder.meter_bat_chain(1, 1);
6362
builder.connect(grid, grid_meter);
64-
builder.connect(grid_meter, meter_bat_chain);
6563

6664
let graph = builder.build(None)?;
6765
let formula = graph.grid_formula()?.to_string();
6866
assert_eq!(formula, "#1");
6967

68+
let meter_bat_chain = builder.meter_bat_chain(1, 1);
69+
builder.connect(grid_meter, meter_bat_chain);
70+
71+
let graph = builder.build(None)?;
72+
let formula = graph.grid_formula()?.to_string();
73+
assert_eq!(formula, "COALESCE(#1, #2)");
74+
7075
// Add an additional dangling meter, and a PV chain and a battery chain
7176
// to the grid
7277
let dangling_meter = builder.meter();
@@ -84,7 +89,7 @@ mod tests {
8489
let formula = graph.grid_formula()?.to_string();
8590
assert_eq!(
8691
formula,
87-
"#1 + #5 + COALESCE(#6, #7, 0.0) + COALESCE(#9, #10, 0.0)"
92+
"COALESCE(#1, #2) + #5 + COALESCE(#6, #7, 0.0) + COALESCE(#9, #10, 0.0)"
8893
);
8994

9095
// Add a PV inverter to the grid, without a meter.
@@ -97,7 +102,7 @@ mod tests {
97102
let formula = graph.grid_formula()?.to_string();
98103
assert_eq!(
99104
formula,
100-
"#1 + #5 + COALESCE(#6, #7, 0.0) + COALESCE(#9, #10, 0.0) + COALESCE(#11, 0.0)"
105+
"COALESCE(#1, #2) + #5 + COALESCE(#6, #7, 0.0) + COALESCE(#9, #10, 0.0) + COALESCE(#11, 0.0)"
101106
);
102107

103108
Ok(())

0 commit comments

Comments
 (0)