input: Write a python function to calculate the subtotal, tax, and total of an order with given items. 
  assert Order().calc_subtotal() == 0
  assert Order().calc_tax() == 0.0
  assert Order().calc_total() == 0.0
  
  order = Order()
  order.add_item(Item('apple', 2.0))
  order.add_item(Item('banana', 1.5))
  assert order.calc_subtotal() == 3.5
  assert order.calc_tax() == 0.28
  assert order.calc_total() == 3.78
output: class Item:
      def __init__(self, name, price):
          self.name = name
          self.price = price
  
  class Order:
      def __init__(self):
          self.items = []
          self.tax_rate = 0.08  # 8% tax rate
  
      def add_item(self, item):
          self.items.append(item)
  
      def calc_subtotal(self):
          return sum(item.price for item in self.items)
  
      def calc_tax(self):
          return self.calc_subtotal() * self.tax_rate
  
      def calc_total(self):
          return self.calc_subtotal() + self.calc_tax()