input: Write a function to calculate the maximum, minimum, and average values from a given sequence of numbers. The function should return these values as a tuple (maximum, minimum, average). If the given sequence is empty, it should return (None, None, None).
  assert calculate_metrics([3, 4, 5, 6, 21, 8])==(21, 3, 8.166666666666666)
  assert calculate_metrics([1, 1, 1, 1])==(1, 1, 1.0)
  assert calculate_metrics([-10, 0, 10])==(10, -10, 0.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)