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