input: Write a python function to generate a class in Python that creates a fraction object and adds two fraction objects.
  assert (Fraction(1, 2) + Fraction(1, 2)).numerator == 4
  assert (Fraction(1, 2) + Fraction(1, 2)).denominator == 4
  assert (Fraction(1, 3) + Fraction(1, 6)).numerator == 9
  assert (Fraction(1, 3) + Fraction(1, 6)).denominator == 18
output: def gcd(a, b):
      while b:
          a, b = b, a % b
      return a
  
  class Fraction:
      def __init__(self, numerator, denominator):
          self.numerator = numerator
          self.denominator = denominator
  
      def __add__(self, other):
          new_numerator = self.numerator * other.denominator + other.numerator * self.denominator
          new_denominator = self.denominator * other.denominator
          common_divisor = gcd(new_numerator, new_denominator)
          return Fraction(new_numerator // common_divisor, new_denominator // common_divisor)