input: Write a Python function to create and initialize a SQLite database with tables for products, orders, and customers.
  assert initialize_db('test.db') == True
output: def initialize_db(db_name):
      import sqlite3
      
      try:
          conn = sqlite3.connect(db_name)
          cursor = conn.cursor()
          
          cursor.execute('''
              CREATE TABLE IF NOT EXISTS products (
                  product_id INTEGER PRIMARY KEY,
                  name TEXT NOT NULL,
                  price REAL NOT NULL,
                  stock INTEGER NOT NULL
              )
          ''')
          
          cursor.execute('''
              CREATE TABLE IF NOT EXISTS customers (
                  customer_id INTEGER PRIMARY KEY,
                  name TEXT NOT NULL,
                  email TEXT NOT NULL
              )
          ''')
          
          cursor.execute('''
              CREATE TABLE IF NOT EXISTS orders (
                  order_id INTEGER PRIMARY KEY,
                  customer_id INTEGER,
                  order_date TEXT NOT NULL,
                  total REAL NOT NULL,
                  FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
              )
          ''')
          
          conn.commit()
          conn.close()
          return True
      except Exception as e:
          return False