@@ -666,15 +666,29 @@ def test_interconnect_params():
666666 # Create a nominally unstable system
667667 sys1 = ct .nlsys (
668668 lambda t , x , u , params : params ['a' ] * x [0 ] + u [0 ],
669- states = 1 , inputs = 'u' , outputs = 'y' , params = {'a' : 1 })
669+ states = 1 , inputs = 'u' , outputs = 'y' , params = {'a' : 2 , 'c' : 2 })
670670
671671 # Simple system for serial interconnection
672672 sys2 = ct .nlsys (
673673 None , lambda t , x , u , params : u [0 ],
674- inputs = 'r' , outputs = 'u' )
674+ inputs = 'r' , outputs = 'u' , params = { 'a' : 4 , 'b' : 3 } )
675675
676- # Create a series interconnection
676+ # Make sure default parameters get set as expected
677677 sys = ct .interconnect ([sys1 , sys2 ], inputs = 'r' , outputs = 'y' )
678+ assert sys .params == {'a' : 4 , 'c' : 2 , 'b' : 3 }
679+ assert sys .dynamics (0 , [1 ], [0 ]).item () == 4
680+
681+ # Make sure we can override the parameters
682+ sys = ct .interconnect (
683+ [sys1 , sys2 ], inputs = 'r' , outputs = 'y' , params = {'b' : 1 })
684+ assert sys .params == {'b' : 1 }
685+ assert sys .dynamics (0 , [1 ], [0 ]).item () == 2
686+ assert sys .dynamics (0 , [1 ], [0 ], params = {'a' : 5 }).item () == 5
687+
688+ # Create final series interconnection, with proper parameter values
689+ sys = ct .interconnect (
690+ [sys1 , sys2 ], inputs = 'r' , outputs = 'y' , params = {'a' : 1 })
691+ assert sys .params == {'a' : 1 }
678692
679693 # Make sure we can call the update function
680694 sys .updfcn (0 , [0 ], [0 ], {})
0 commit comments