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)