query.setLabels(labels);
QueryFormat format = new QueryFormat();
format.addPattern(selectedColumn, "'$'@@@");
query.setUserFormatOptions(format);
DataTable data = MockDataSource.getData(1);
// Also tests different locale (note the commas in the numbers)
DataTable res = QueryEngine.executeQuery(query, data, ULocale.FRENCH);
List<ColumnDescription> columnDescriptions = res.getColumnDescriptions();
assertEquals(5, columnDescriptions.size());
assertEquals("", res.getRow(0).getCell(0).getFormattedValue()); // null
assertEquals("$2,29", res.getRow(0).getCell(1).getFormattedValue());
assertEquals("$1,14", res.getRow(0).getCell(2).getFormattedValue());
assertEquals("$4,57", res.getRow(0).getCell(3).getFormattedValue());
assertEquals("$0,571", res.getRow(0).getCell(4).getFormattedValue());
assertEquals("Collection,2.0 foo", columnDescriptions.get(0).getLabel());
assertEquals("Contraband,2.0 foo", columnDescriptions.get(1).getLabel());
assertEquals("Contraband,4.0 foo", columnDescriptions.get(2).getLabel());
assertEquals("Youthanasia,2.0 foo", columnDescriptions.get(3).getLabel());
assertEquals("Youthanasia,4.0 foo", columnDescriptions.get(4).getLabel());