input: Write a function to format a given piece of text with different options for font-style, size, and color. The function should take three optional parameters: font, size, and color, each corresponding to the desired font style, size, and color of the text. If any of these parameters are not provided, default values should be used. The function should return the formatted text wrapped in a span tag with the appropriate style attributes.
  def format_text(text, font="Times New Roman", size='14px', color='#000000'):
    return "<span style='font-family: {} font-size: {} color: {}'>{}</span>".format(font, size, color, text)
  
  assert format_text('Hello World', 'Arial', '20px', '#FF0000') == "<span style='font-family: Arial font-size: 20px color: #FF0000'>Hello World</span>"
  assert format_text('Sample Text', 'Courier New', '16px', '#00FF00') == "<span style='font-family: Courier New font-size: 16px color: #00FF00'>Sample Text</span>"
  assert format_text('Default Style') == "<span style='font-family: Times New Roman font-size: 14px color: #000000'>Default Style</span>"
  assert format_text('Custom Size', size='30px') == "<span style='font-family: Times New Roman font-size: 30px color: #000000'>Custom Size</span>"
  assert format_text('Only Font Change', font='Verdana') == "<span style='font-family: Verdana font-size: 14px color: #000000'>Only Font Change</span>"
output: def format_text(text, font="Times New Roman", size='14px', color='#000000'):
    return "<span style='font-family: {}; font-size: {}; color: {};'>{}</span>".format(font, size, color, text)