def test_add_inconsistent_dimension(self): """Add two transfer function matrices of different sizes.""" sys1 = TransferFunction([[[1., 2.]]], [[[4., 5.]]]) sys2 = TransferFunction([[[4., 3.]], [[1., 2.]]], [[[1., 6.]], [[2., 4.]]]) with pytest.raises(ValueError): sys1.__add__(sys2) with pytest.raises(ValueError): sys1.__sub__(sys2) with pytest.raises(ValueError): sys1.__radd__(sys2) with pytest.raises(ValueError): sys1.__rsub__(sys2)
def test_size_mismatch(self): """Test size mismacht""" sys1 = ss2tf(rss(2, 2, 2)) # Different number of inputs sys2 = ss2tf(rss(3, 1, 2)) with pytest.raises(ValueError): TransferFunction.__add__(sys1, sys2) # Different number of outputs sys2 = ss2tf(rss(3, 2, 1)) with pytest.raises(ValueError): TransferFunction.__add__(sys1, sys2) # Inputs and outputs don't match with pytest.raises(ValueError): TransferFunction.__mul__(sys2, sys1) # Feedback mismatch (MIMO not implemented) with pytest.raises(NotImplementedError): TransferFunction.feedback(sys2, sys1)
def testAddition(self, tsys): # State space addition sys = tsys.siso_ss1 + tsys.siso_ss1d sys = tsys.siso_ss1 + tsys.siso_ss1c sys = tsys.siso_ss1c + tsys.siso_ss1 sys = tsys.siso_ss1d + tsys.siso_ss1 sys = tsys.siso_ss1c + tsys.siso_ss1c sys = tsys.siso_ss1d + tsys.siso_ss1d sys = tsys.siso_ss3d + tsys.siso_ss3d sys = tsys.siso_ss1d + tsys.siso_ss3d with pytest.raises(ValueError): StateSpace.__add__(tsys.mimo_ss1c, tsys.mimo_ss1d) with pytest.raises(ValueError): StateSpace.__add__(tsys.mimo_ss1d, tsys.mimo_ss2d) # Transfer function addition sys = tsys.siso_tf1 + tsys.siso_tf1d sys = tsys.siso_tf1 + tsys.siso_tf1c sys = tsys.siso_tf1c + tsys.siso_tf1 sys = tsys.siso_tf1d + tsys.siso_tf1 sys = tsys.siso_tf1c + tsys.siso_tf1c sys = tsys.siso_tf1d + tsys.siso_tf1d sys = tsys.siso_tf2d + tsys.siso_tf2d sys = tsys.siso_tf1d + tsys.siso_tf3d with pytest.raises(ValueError): TransferFunction.__add__(tsys.siso_tf1c, tsys.siso_tf1d) with pytest.raises(ValueError): TransferFunction.__add__(tsys.siso_tf1d, tsys.siso_tf2d) # State space + transfer function sys = tsys.siso_ss1c + tsys.siso_tf1c sys = tsys.siso_tf1c + tsys.siso_ss1c sys = tsys.siso_ss1d + tsys.siso_tf1d sys = tsys.siso_tf1d + tsys.siso_ss1d with pytest.raises(ValueError): TransferFunction.__add__(tsys.siso_tf1c, tsys.siso_ss1d)