input: Write a function to calculate the minimum and maximum values in an array. If the array is empty, return None for both the minimum and maximum values.
  def min_max(array):
      if not array:
          return None, None
      min_val = array[0]
      max_val = array[0]
  
      for val in array[1:]:
          if val > max_val:
              max_val = val
          if val < min_val:
              min_val = val
      return min_val, max_val
  
  assert min_max([3, 4, 5, 1, 2])==(1, 5)
  assert min_max([3, 5, 10, 1, 2])==(1, 10)
  assert min_max([4, 3, 1, 2])==(1, 4)
  assert min_max([])==(None, None)
  assert min_max([1])==(1, 1)
output: def min_max(array):
      if not array:
          return None, None
      min_val = array[0]
      max_val = array[0]
  
      for val in array[1:]:
          if val > max_val:
              max_val = val
          if val < min_val:
              min_val = val
      return min_val, max_val