@Override public MarkupDocBuilder apply(MarkupDocBuilder markupDocBuilder, Parameters params) { DataFrame dataFrame = params.dataFrame; java.util.List<MarkupTableColumn> columnSpecs = dataFrame.getColumns().map(column -> { Integer widthRatio = Integer.valueOf(column.getMetaData().get(WIDTH_RATIO).getOrElse("0")); return new MarkupTableColumn(column.getId().getName()) .withWidthRatio(widthRatio) .withHeaderColumn(Boolean.parseBoolean(column.getMetaData().get(HEADER_COLUMN).getOrElse("false"))) .withMarkupSpecifiers(MarkupLanguage.ASCIIDOC, ".^" + widthRatio + "a"); } ).toJavaList(); IndexedSeq<IndexedSeq<String>> columnValues = dataFrame.getColumns() .map(column -> ((StringColumn) column).getValues()); java.util.List<java.util.List<String>> cells = Array.range(0, dataFrame.getRowCount()) .map(rowNumber -> columnValues.map(values -> values.get(rowNumber)).toJavaList()).toJavaList(); return markupDocBuilder.tableWithColumnSpecs(columnSpecs, cells); }
@Test public void csvWithEmptyValues() { String validButWithEmptyValues = "First,Last\n" + "String,String\n" + "Barack,Obama\n" + "Homer,\n" + ",Clinton\n"; DataFrame df = Parser.csv(new StringReader(validButWithEmptyValues)); assertEquals(2, df.getColumnCount()); assertEquals(3, df.getRowCount()); }
@Test public void tsvWithEmptyValues() { String validButWithEmptyValues = "First\tLast\n" + "String\tString\n" + "Barack\tObama\n" + "Homer\t\n" + "\tClinton\n"; DataFrame df = Parser.tsv(new StringReader(validButWithEmptyValues)); assertEquals(2, df.getColumnCount()); assertEquals(3, df.getRowCount()); }
@Override public MarkupDocBuilder apply(MarkupDocBuilder markupDocBuilder, Parameters params) { DataFrame dataFrame = params.dataFrame; java.util.List<MarkupTableColumn> columnSpecs = dataFrame.getColumns().map(column -> { Integer widthRatio = Integer.valueOf(column.getMetaData().get(WIDTH_RATIO).getOrElse("0")); return new MarkupTableColumn(column.getId().getName()) .withWidthRatio(widthRatio) .withHeaderColumn(Boolean.parseBoolean(column.getMetaData().get(HEADER_COLUMN).getOrElse("false"))) .withMarkupSpecifiers(MarkupLanguage.ASCIIDOC, ".^" + widthRatio + "a"); } ).toJavaList(); IndexedSeq<IndexedSeq<String>> columnValues = dataFrame.getColumns() .map(column -> ((StringColumn) column).getValues()); java.util.List<java.util.List<String>> cells = Array.range(0, dataFrame.getRowCount()) .map(rowNumber -> columnValues.map(values -> values.get(rowNumber)).toJavaList()).toJavaList(); return markupDocBuilder.tableWithColumnSpecs(columnSpecs, cells); }
@Override public MarkupDocBuilder apply(MarkupDocBuilder markupDocBuilder, Parameters params) { DataFrame dataFrame = params.dataFrame; java.util.List<MarkupTableColumn> columnSpecs = dataFrame.getColumns().map(column -> { Integer widthRatio = Integer.valueOf(column.getMetaData().get(WIDTH_RATIO).getOrElse("0")); return new MarkupTableColumn(column.getId().getName()) .withWidthRatio(widthRatio) .withHeaderColumn(Boolean.parseBoolean(column.getMetaData().get(HEADER_COLUMN).getOrElse("false"))) .withMarkupSpecifiers(MarkupLanguage.ASCIIDOC, ".^" + widthRatio + "a"); } ).toJavaList(); IndexedSeq<IndexedSeq<String>> columnValues = dataFrame.getColumns() .map(column -> ((StringColumn) column).getValues()); java.util.List<java.util.List<String>> cells = Array.range(0, dataFrame.getRowCount()) .map(rowNumber -> columnValues.map(values -> values.get(rowNumber)).toJavaList()).toJavaList(); return markupDocBuilder.tableWithColumnSpecs(columnSpecs, cells); }
@Test public void customColumnTypes() { GenericColumnId fileColumnId = new GenericColumnId("File", new ColumnType<>("File", GenericColumnId.class)); File fileA = new File("/path/to/a.txt"); File fileB = new File("/path/to/b.txt"); GenericColumn<File, GenericColumnId> fileColumn = GenericColumn.ofAll(fileColumnId, fileA, fileB); DataFrame df = DataFrame.of(fileColumn); assertEquals(2, df.getRowCount()); assertEquals(1, df.getColumnCount()); GenericColumn<File, GenericColumnId> column = df.getColumn(fileColumnId); assertEquals(fileColumn, column); File fileValue = df.getValueAt(1, fileColumnId); assertEquals(fileB, fileValue); }
@Test public void empty() { DataFrame dataFrame = DataFrame.empty(); assertEquals(0, dataFrame.getRowCount()); assertEquals(0, dataFrame.getColumnCount()); assertTrue(dataFrame.getColumnIds().isEmpty()); assertTrue(dataFrame.getColumnNames().isEmpty()); assertTrue(dataFrame.getColumns().isEmpty()); }
assertEquals(3, df.getRowCount()); assertEquals(6, df.getColumnCount());