input: Write a function to parse a CSV and generate a new CSV that includes the total number of rows, total number of columns, and total amount of data for each attribute. The function should take the filename of the input CSV as an argument and write the output to a new CSV named 'new_csv.csv'. If the input CSV is empty, the new CSV should reflect that accordingly.
  
  assert parse_csv('test1.csv')
  """
  Rows: 2, Columns: 3, Data Totals: [[10.0, 1], [20.0, 1], [30.0, 1]]
  """
  assert parse_csv('empty.csv')
  """
  Rows: 0, Columns: 0, Data Totals: []
  """
  assert parse_csv('test2.csv')
  """
  Rows: 3, Columns: 2, Data Totals: [[15.0, 1], [25.0, 1]]
  """
output: def parse_csv(filename):
      import csv
      try:
          with open(filename, newline='') as infile:
              reader = csv.reader(infile)
              rows = list(reader)
              if not rows:
                  with open('new_csv.csv', 'w', newline='') as outfile:
                      writer = csv.writer(outfile)
                      writer.writerow(['Rows: 0', 'Columns: 0', 'Data Totals: []'])
                  return
              num_rows = len(rows)
              num_cols = len(rows[0])
              data_totals = [[0.0, 0] for _ in range(num_cols)]
              for row in rows:
                  for i, value in enumerate(row):
                      if value.strip():
                          data_totals[i][0] += float(value)
                          data_totals[i][1] += 1
              with open('new_csv.csv', 'w', newline='') as outfile:
                  writer = csv.writer(outfile)
                  writer.writerow([f'Rows: {num_rows}', f'Columns: {num_cols}', f'Data Totals: {data_totals}'])
      except FileNotFoundError:
          with open('new_csv.csv', 'w', newline='') as outfile:
              writer = csv.writer(outfile)
              writer.writerow(['Rows: 0', 'Columns: 0', 'Data Totals: []'])