input: Write a function to calculate the total cost of a shopping cart. The function should consider the item prices, quantity, shipping cost, and any applicable taxes. It should return the total cost as a float.
  assert calculate_total_cost([
   {"name": "widget", "price": 10, "quantity": 5 },
   {"name": "thingy", "price": 7, "quantity": 3 },
   {"name": "doodad", "price": 5, "quantity": 2 }
  ], 7.50, 0.095)==104.66
  assert calculate_total_cost([
   {"name": "item1", "price": 2, "quantity": 10 },
   {"name": "item2", "price": 3, "quantity": 5 }
  ], 5.00, 0.10)==60.50
  assert calculate_total_cost([], 0.00, 0.00)==0.00
  assert calculate_total_cost([
   {"name": "expensive", "price": 100, "quantity": 1 }
  ], 10.00, 0.15)==125.00
  assert calculate_total_cost([
   {"name": "cheap", "price": 1, "quantity": 1000 }
  ], 20.00, 0.05)==1070.00
output: def calculate_total_cost(items, shipping_cost, tax_rate):
      subtotal = sum(item['price'] * item['quantity'] for item in items)
      total_cost = subtotal + shipping_cost
      total_cost += total_cost * tax_rate
      return round(total_cost, 2)