@@ -872,6 +872,46 @@ def test_latex_repr(self):
872872 r'+ 2.3 ' + expmul + ' 10^{-45}'
873873 r'}' + suffix + '$$' )
874874 self .assertEqual (H ._repr_latex_ (), ref )
875+
876+ def test_repr (self ):
877+ """Test __repr__ printout."""
878+ Hc = TransferFunction ([- 1. , 4. ], [1. , 3. , 5. ])
879+ Hd = TransferFunction ([2. , 3. , 0. ], [1. , - 3. , 4. , 0 ], 2.0 )
880+ Hcm = TransferFunction (
881+ [ [[0 , 1 ], [2 , 3 ]], [[4 , 5 ], [6 , 7 ]] ],
882+ [ [[6 , 7 ], [4 , 5 ]], [[2 , 3 ], [0 , 1 ]] ])
883+ Hdm = TransferFunction (
884+ [ [[0 , 1 ], [2 , 3 ]], [[4 , 5 ], [6 , 7 ]] ],
885+ [ [[6 , 7 ], [4 , 5 ]], [[2 , 3 ], [0 , 1 ]] ], 0.5 )
886+
887+ refs = [
888+ "TransferFunction(array([-1., 4.]), array([1., 3., 5.]))" ,
889+ "TransferFunction(array([2., 3., 0.]),"
890+ " array([ 1., -3., 4., 0.]), 2.0)" ,
891+ "TransferFunction([[array([1]), array([2, 3])],"
892+ " [array([4, 5]), array([6, 7])]],"
893+ " [[array([6, 7]), array([4, 5])],"
894+ " [array([2, 3]), array([1])]])" ,
895+ "TransferFunction([[array([1]), array([2, 3])],"
896+ " [array([4, 5]), array([6, 7])]],"
897+ " [[array([6, 7]), array([4, 5])],"
898+ " [array([2, 3]), array([1])]], 0.5)" ]
899+ self .assertEqual (repr (Hc ), refs [0 ])
900+ self .assertEqual (repr (Hd ), refs [1 ])
901+ self .assertEqual (repr (Hcm ), refs [2 ])
902+ self .assertEqual (repr (Hdm ), refs [3 ])
903+
904+ # and reading back
905+ array = np .array
906+ for H in (Hc , Hd , Hcm , Hdm ):
907+ H2 = eval (H .__repr__ ())
908+ for p in range (len (H .num )):
909+ for m in range (len (H .num [0 ])):
910+ np .testing .assert_array_almost_equal (
911+ H .num [p ][m ], H2 .num [p ][m ])
912+ np .testing .assert_array_almost_equal (
913+ H .den [p ][m ], H2 .den [p ][m ])
914+ self .assertEqual (H .dt , H2 .dt )
875915
876916 def test_sample_system_prewarping (self ):
877917 """test that prewarping works when converting from cont to discrete time system"""
@@ -893,5 +933,6 @@ def test_sample_system_prewarping(self):
893933 evalfr (plant_d_warped , np .exp (wwarp * 1j * Ts )),
894934 decimal = 4 )
895935
936+
896937if __name__ == "__main__" :
897938 unittest .main ()
0 commit comments