@@ -349,6 +349,47 @@ def test_previous_states_with_multiple_flows(self, basic_flow_system_linopy_coor
349349 + 1e-5 ,
350350 )
351351
352+ def test_previous_states_with_multiple_flows_2 (self , basic_flow_system_linopy_coords , coords_config ):
353+ """Test that flow model constraints are correctly generated."""
354+ flow_system , coords_config = basic_flow_system_linopy_coords , coords_config
355+
356+ ub_out2 = np .linspace (1 , 1.5 , 10 ).round (2 )
357+ inputs = [
358+ fx .Flow (
359+ 'In1' ,
360+ 'Fernwärme' ,
361+ relative_minimum = np .ones (10 ) * 0.1 ,
362+ size = 100 ,
363+ previous_flow_rate = np .array ([0 , 0 , 1e-6 , 1e-5 , 1e-4 , 3 , 4 ]),
364+ on_off_parameters = fx .OnOffParameters (consecutive_on_hours_min = 3 ),
365+ ),
366+ ]
367+ outputs = [
368+ fx .Flow ('Out1' , 'Gas' , relative_minimum = np .ones (10 ) * 0.2 , size = 200 , previous_flow_rate = [3 , 4 , 5 ]),
369+ fx .Flow (
370+ 'Out2' ,
371+ 'Gas' ,
372+ relative_minimum = np .ones (10 ) * 0.3 ,
373+ relative_maximum = ub_out2 ,
374+ size = 300 ,
375+ previous_flow_rate = 20 ,
376+ ),
377+ ]
378+ comp = flixopt .elements .Component (
379+ 'TestComponent' ,
380+ inputs = inputs ,
381+ outputs = outputs ,
382+ on_off_parameters = fx .OnOffParameters (consecutive_on_hours_min = 3 ),
383+ )
384+ flow_system .add_elements (comp )
385+ create_linopy_model (flow_system )
386+
387+ assert_conequal (
388+ comp .submodel .constraints ['TestComponent|consecutive_on_hours|initial' ],
389+ comp .submodel .variables ['TestComponent|consecutive_on_hours' ].isel (time = 0 )
390+ == comp .submodel .variables ['TestComponent|on' ].isel (time = 0 ) * 5 ,
391+ )
392+
352393
353394class TestTransmissionModel :
354395 def test_transmission_basic (self , basic_flow_system , highs_solver ):
0 commit comments