input: Write a python function to add and multiply complex numbers using the ComplexNumber class.
  assert (ComplexNumber(1, 2) + ComplexNumber(3, 4)).real == 4 and (ComplexNumber(1, 2) + ComplexNumber(3, 4)).imaginary == 6
  assert (ComplexNumber(1, 2) * ComplexNumber(3, 4)).real == -5 and (ComplexNumber(1, 2) * ComplexNumber(3, 4)).imaginary == 10
  assert (ComplexNumber(0, 0) + ComplexNumber(0, 0)).real == 0 and (ComplexNumber(0, 0) + ComplexNumber(0, 0)).imaginary == 0
  assert (ComplexNumber(1, -1) * ComplexNumber(1, 1)).real == 2 and (ComplexNumber(1, -1) * ComplexNumber(1, 1)).imaginary == 0
output: class ComplexNumber:
      def __init__(self, real, imaginary):
          self.real = real
          self.imaginary = imaginary
  
      def __add__(self, other):
          return ComplexNumber(self.real + other.real, self.imaginary + other.imaginary)
  
      def __mul__(self, other):
          real_part = self.real * other.real - self.imaginary * other.imaginary
          imaginary_part = self.real * other.imaginary + self.imaginary * other.real
          return ComplexNumber(real_part, imaginary_part)