use of org.molgenis.oneclickimporter.model.Column in project molgenis by molgenis.
the class OneClickImporterServiceImpl method buildDataCollectionsFromExcel.
@Override
public List<DataCollection> buildDataCollectionsFromExcel(List<Sheet> sheets) {
List<DataCollection> dataCollections = newArrayList();
sheets.forEach(sheet -> {
List<Column> columns = newArrayList();
Row headerRow = sheet.getRow(0);
headerRow.cellIterator().forEachRemaining(cell -> columns.add(createColumnFromCell(sheet, cell)));
dataCollections.add(DataCollection.create(sheet.getSheetName(), columns));
});
return dataCollections;
}
use of org.molgenis.oneclickimporter.model.Column in project molgenis by molgenis.
the class OneClickImporterServiceTest method testBuildDataSheetBuildsColumnsOfEqualLength.
@Test
public void testBuildDataSheetBuildsColumnsOfEqualLength() throws IOException, InvalidFormatException, URISyntaxException, EmptySheetException {
List<Sheet> sheets = loadSheetFromFile(OneClickImporterServiceTest.class, "/valid-with-blank-values.xlsx");
DataCollection actual = oneClickImporterService.buildDataCollectionsFromExcel(sheets).get(0);
Column c1 = Column.create("name", 0, newArrayList("Mark", "Bart", "Tommy", "Sido", "Connor", null));
Column c2 = Column.create("favorite food", 1, newArrayList("Fries", null, "Vegan food", "Pizza", null, "Spinache"));
DataCollection expected = DataCollection.create("Sheet1", newArrayList(c1, c2));
assertEquals(actual, expected);
assertEquals(6, c1.getDataValues().size());
assertEquals(6, c2.getDataValues().size());
}
use of org.molgenis.oneclickimporter.model.Column in project molgenis by molgenis.
the class OneClickImporterServiceTest method testBuildDataSheetWithDates.
@Test
public void testBuildDataSheetWithDates() throws IOException, InvalidFormatException, URISyntaxException, EmptySheetException {
List<Sheet> sheets = loadSheetFromFile(OneClickImporterServiceTest.class, "/valid-with-dates.xlsx");
DataCollection actual = oneClickImporterService.buildDataCollectionsFromExcel(sheets).get(0);
Column c1 = Column.create("dates", 0, newArrayList("2018-01-03T00:00", "2018-01-04T00:00", "2018-01-05T00:00", "2018-01-06T00:00", "2018-01-07T00:00"));
Column c2 = Column.create("event", 1, newArrayList("being cool day", "bike day", "sleep day", "bye bye day", "work day"));
DataCollection expected = DataCollection.create("Sheet1", newArrayList(c1, c2));
assertEquals(actual, expected);
}
use of org.molgenis.oneclickimporter.model.Column in project molgenis by molgenis.
the class OneClickImporterServiceTest method testBuildDataSheetWithComplexFile.
@Test
public void testBuildDataSheetWithComplexFile() throws IOException, InvalidFormatException, URISyntaxException, EmptySheetException {
List<Sheet> sheets = loadSheetFromFile(OneClickImporterServiceTest.class, "/complex-valid.xlsx");
DataCollection actual = oneClickImporterService.buildDataCollectionsFromExcel(sheets).get(0);
Column c1 = Column.create("first name", 0, newArrayList("Mark", "Fleur", "Dennis", "Bart", "Sido", "Mariska", "Tommy", "Connor", "Piet", "Jan"));
Column c2 = Column.create("last name", 1, newArrayList("de Haan", "Kelpin", "Hendriksen", "Charbon", "Haakma", "Slofstra", "de Boer", "Stroomberg", "Klaassen", null));
Column c3 = Column.create("full name", 2, newArrayList("Mark de Haan", "Fleur Kelpin", "Dennis Hendriksen", "Bart Charbon", "Sido Haakma", "Mariska Slofstra", "Tommy de Boer", "Connor Stroomberg", "Piet Klaassen", null));
Column c4 = Column.create("UMCG employee", 3, newArrayList(true, true, true, true, true, true, true, true, false, false));
Column c5 = Column.create("Age", 4, newArrayList(26.0, null, null, null, null, 22.0, 27.0, null, 53.0, 32.0));
DataCollection expected = DataCollection.create("Sheet1", newArrayList(c1, c2, c3, c4, c5));
assertEquals(actual, expected);
}
use of org.molgenis.oneclickimporter.model.Column in project molgenis by molgenis.
the class OneClickImporterServiceTest method testIsFirstColumnUnique.
@Test
public void testIsFirstColumnUnique() {
Column column = Column.create("col", 0, Arrays.asList(1, 2, 3));
assertTrue(oneClickImporterService.hasUniqueValues(column), "should return true for unique int list");
column = Column.create("col", 0, Arrays.asList("a", "b", "c"));
assertTrue(oneClickImporterService.hasUniqueValues(column), "should return true for unique string list");
column = Column.create("col", 0, Arrays.asList(1, 2, 1));
assertFalse(oneClickImporterService.hasUniqueValues(column), "should return false for non-unique int list");
column = Column.create("col", 0, Arrays.asList(1, null, 2));
assertFalse(oneClickImporterService.hasUniqueValues(column), "should return false a list containing null's ");
column = Column.create("col", 0, Arrays.asList(1, "1"));
assertFalse(oneClickImporterService.hasUniqueValues(column), "should return false if types differ ");
}
Aggregations