input: Write a function to compute the moving average of a list of data points given a specific window size. The moving average is calculated by averaging the data points within each window as the window slides across the list. If the window size is larger than the length of the list, the moving average should still be computed, averaging all available data points. The function should be named moving_average and should take two parameters: data_points and window. It should return a list of the moving averages.
  
  def moving_average(data_points, window):
       moving_average = []
       for index in range(len(data_points)):
         start = 0 if index-window+1 < 0 else index-window+1
         window_data = data_points[start:index+1]
         average = sum(window_data)/len(window_data)
         moving_average.append(average)
   
       return moving_average
  
  assert moving_average([3, 5, 7, 2, 8, 10, 11, 65, 72, 81, 99, 100, 150], 3) == [3.0, 4.0, 5.0, 4.0, 5.666666666666667, 6.666666666666667, 9.333333333333334, 29.0, 49.0, 72.33333333333333, 84.33333333333333, 93.33333333333333, 116.33333333333333]
  assert moving_average([1, 2, 3, 4, 5], 2) == [1.0, 1.5, 2.5, 3.5, 4.5]
  assert moving_average([10, 20, 30], 5) == [10.0, 15.0, 20.0]
  assert moving_average([], 3) == []
output: def moving_average(data_points, window):
      moving_average = []
      for index in range(len(data_points)):
          start = max(0, index - window + 1)
          window_data = data_points[start:index + 1]
          average = sum(window_data) / len(window_data)
          moving_average.append(average)
      return moving_average