@@ -674,51 +674,55 @@ def test_sample_system_prewarping(self):
674674 decimal = 4 )
675675
676676
677- @pytest .fixture
678- def mimoss (request ):
679- """Test system with various dt values"""
680- n = 5
681- m = 3
682- p = 2
683- bx , bu = np .mgrid [1 :n + 1 , 1 :m + 1 ]
684- cy , cx = np .mgrid [1 :p + 1 , 1 :n + 1 ]
685- dy , du = np .mgrid [1 :p + 1 , 1 :m + 1 ]
686- return StateSpace (np .eye (5 ),
687- bx * bu ,
688- cy * cx ,
689- dy * du ,
690- request .param )
691-
692-
693- @pytest .mark .parametrize ("mimoss" ,
694- [None ,
695- 0 ,
696- 0.1 ,
697- 1 ,
698- True ],
699- indirect = True )
700- def test_returnScipySignalLTI (mimoss ):
701- """Test returnScipySignalLTI method with strict=False"""
702- sslti = mimoss .returnScipySignalLTI (strict = False )
703- for i in range (2 ):
704- for j in range (3 ):
705- np .testing .assert_allclose (sslti [i ][j ].A , mimoss .A )
706- np .testing .assert_allclose (sslti [i ][j ].B , mimoss .B [:, j ])
707- np .testing .assert_allclose (sslti [i ][j ].C , mimoss .C [i , :])
708- np .testing .assert_allclose (sslti [i ][j ].D , mimoss .D [i , j ])
709- if mimoss .dt == 0 :
710- assert sslti [i ][j ].dt is None
711- else :
712- assert sslti [i ][j ].dt == mimoss .dt
713-
714-
715- @pytest .mark .parametrize ("mimoss" , [None ], indirect = True )
716- def test_returnScipySignalLTI_error (mimoss ):
717- """Test returnScipySignalLTI method with dt=None and default strict=True"""
718- with pytest .raises (ValueError ):
719- mimoss .returnScipySignalLTI ()
720- with pytest .raises (ValueError ):
721- mimoss .returnScipySignalLTI (strict = True )
677+ class TestLTIConverter :
678+ """Test returnScipySignalLTI method"""
679+
680+ @pytest .fixture
681+ def mimoss (self , request ):
682+ """Test system with various dt values"""
683+ n = 5
684+ m = 3
685+ p = 2
686+ bx , bu = np .mgrid [1 :n + 1 , 1 :m + 1 ]
687+ cy , cx = np .mgrid [1 :p + 1 , 1 :n + 1 ]
688+ dy , du = np .mgrid [1 :p + 1 , 1 :m + 1 ]
689+ return StateSpace (np .eye (5 ) + np .eye (5 , 5 , 1 ),
690+ bx * bu ,
691+ cy * cx ,
692+ dy * du ,
693+ request .param )
694+
695+ @pytest .mark .parametrize ("mimoss" ,
696+ [None ,
697+ 0 ,
698+ 0.1 ,
699+ 1 ,
700+ True ],
701+ indirect = True )
702+ def test_returnScipySignalLTI (self , mimoss ):
703+ """Test returnScipySignalLTI method with strict=False"""
704+ sslti = mimoss .returnScipySignalLTI (strict = False )
705+ for i in range (mimoss .outputs ):
706+ for j in range (mimoss .inputs ):
707+ np .testing .assert_allclose (sslti [i ][j ].A , mimoss .A )
708+ np .testing .assert_allclose (sslti [i ][j ].B , mimoss .B [:,
709+ j :j + 1 ])
710+ np .testing .assert_allclose (sslti [i ][j ].C , mimoss .C [i :i + 1 ,
711+ :])
712+ np .testing .assert_allclose (sslti [i ][j ].D , mimoss .D [i :i + 1 ,
713+ j :j + 1 ])
714+ if mimoss .dt == 0 :
715+ assert sslti [i ][j ].dt is None
716+ else :
717+ assert sslti [i ][j ].dt == mimoss .dt
718+
719+ @pytest .mark .parametrize ("mimoss" , [None ], indirect = True )
720+ def test_returnScipySignalLTI_error (self , mimoss ):
721+ """Test returnScipySignalLTI method with dt=None and strict=True"""
722+ with pytest .raises (ValueError ):
723+ mimoss .returnScipySignalLTI ()
724+ with pytest .raises (ValueError ):
725+ mimoss .returnScipySignalLTI (strict = True )
722726
723727
724728if __name__ == "__main__" :
0 commit comments