def add(self, a, b): if isinstance(a, float): if isinstance(b, float): return a + b elif isinstance(b, Complex): return Complex.add(Complex(a), b) elif isinstance(b, Matrix): raise ComputorException('Illegal operation: Rational + Matrix') elif isinstance(a, Complex): if isinstance(b, float): return Complex.add(a, Complex(b)) elif isinstance(b, Complex): return Complex.add(a, b) elif isinstance(b, Matrix): raise ComputorException('Illegal operation: Complex + Matrix') elif isinstance(a, Matrix): if isinstance(b, float): raise ComputorException('Illegal operation: Matrix + Rational') elif isinstance(b, Complex): raise ComputorException('Illegal operation: Matrix + Complex') elif isinstance(b, Matrix): return Matrix.add(a, b) raise ComputorException('Computor.add(): something bad happened 🤷')
def test_add(self): c1 = Complex(10, 4) c2 = Complex(12, -2) self.assertEqual(str(c1.add(c2)), "22.00 + 2.00i", "Should equal '22.00 + 2.00i'")
from complex import Complex A = Complex(1,3) print(A.toString()) A.add(Complex(1,3)) print(A.toString())