input: Write a function to calculate the maximum, minimum, and average values from a given sequence of numbers. The function should return the maximum, minimum, and average values as a tuple.
  
  assert calculate_metrics([3, 4, 5, 6, 21, 8]) == (21, 3, 7.833333333333333)
  assert calculate_metrics([1, 1, 1, 1, 1]) == (1, 1, 1.0)
  assert calculate_metrics([-5, -2, 0, 2, 5]) == (5, -5, 0.0)
  assert calculate_metrics([10]) == (10, 10, 10.0)
  assert calculate_metrics([]) == (None, None, None)
output: def calculate_metrics(numbers):
      if not numbers:
          return (None, None, None)
      maximum = max(numbers)
      minimum = min(numbers)
      average = sum(numbers) / len(numbers)
      return (maximum, minimum, average)