Export the metric set in CSV format

Property definitions

nitc $ MetricSet :: to_csv
	# Export the metric set in CSV format
	fun to_csv: CsvDocument do
		var csv = new CsvDocument
		csv.separator = ';'

		# set csv headers
		csv.header.add("entry")
		for metric in metrics do csv.header.add(metric.name)

		# collect all entries to merge metric results
		var entries = new HashSet[ELM]
		for metric in metrics do
			for entry in metric.values.keys do entries.add(entry)
		end

		# collect results
		for entry in entries do
			var line = [entry.to_s]
			for metric in metrics do
				if metric.has_element(entry) then
					line.add(metric[entry].to_s)
				else
					line.add("n/a")
				end
			end
			csv.records.add(line)
		end
		return csv
	end
src/metrics/metrics_base.nit:398,2--426,4