input: Write a function to solve a quadratic equation given the coefficients a, b, and c. The function should return a dictionary with a key 'status' indicating if a solution exists and a key 'roots' containing the roots of the equation. If the equation has no real roots, the function should return a dictionary with 'status' as False and 'roots' as an empty list. If there is only one real root, the function should return a dictionary with 'status' as True and 'roots' as a list containing the single root. If there are two real roots, the function should return a dictionary with 'status' as True and 'roots' as a list containing both roots.
  
  import math
  
  def solveQuadratic(a, b, c): 
      discriminant = (b**2) - (4*a*c)
      
      if discriminant < 0: 
          return {"status": False, "roots": []}
      elif discriminant == 0:
          x = -b / (2 * a)
          return {"status": True, "roots": [x]}
      else:
          x1 = (-b + math.sqrt(discriminant)) / (2 * a)
          x2 = (-b - math.sqrt(discriminant)) / (2 * a)
          return {"status": True, "roots": [x1, x2]}
  
  a = 1
  b = 3
  c = -4
  
  assert solveQuadratic(a, b, c) == {"status": True, "roots": [-4.0, 1.0]}
  assert solveQuadratic(1, 2, 1) == {"status": True, "roots": [-1.0]}
  assert solveQuadratic(1, 0, 1) == {"status": False, "roots": []}
  assert solveQuadratic(1, 3, 3) == {"status": True, "roots": [-1.5 + 0.8660254037844386j, -1.5 - 0.8660254037844386j]}
output: 
  import math
  
  def solveQuadratic(a, b, c): 
      discriminant = (b**2) - (4*a*c)
      
      if discriminant < 0: 
          return {"status": False, "roots": []}
      elif discriminant == 0:
          x = -b / (2 * a)
          return {"status": True, "roots": [x]}
      else:
          x1 = (-b + math.sqrt(discriminant)) / (2 * a)
          x2 = (-b - math.sqrt(discriminant)) / (2 * a)
          return {"status": True, "roots": [x1, x2]}
  