@Test public void of() { DoubleColumn column = DoubleColumn.of(ID, 42d); assertEquals(ID, column.getId()); assertEquals(1, column.getRowCount()); assertEquals(42d, column.getValueAt(0), DELTA); assertArrayEquals(new double[]{42}, column.valueStream().toArray(), DELTA); }
private static void assertMultipleValues(DoubleColumn column) { assertEquals(ID, column.getId()); assertEquals(4, column.getRowCount()); assertEquals(1, column.getValueAt(0), DELTA); assertEquals(0, column.getValueAt(column.getRowCount() - 1), DELTA); assertArrayEquals(new double[]{1, 2, 9, 0}, column.valueStream().toArray(), DELTA); }
@Test public void demo() { // Type-safe column identifiers final StringColumnId NAME = StringColumnId.of("Name"); final CategoryColumnId COLOR = CategoryColumnId.of("Color"); final DoubleColumnId SERVING_SIZE = DoubleColumnId.of("Serving Size (g)"); // Convenient column creation StringColumn nameColumn = StringColumn.ofAll(NAME, "Banana", "Blueberry", "Lemon", "Apple"); CategoryColumn colorColumn = CategoryColumn.ofAll(COLOR, "Yellow", "Blue", "Yellow", "Green"); DoubleColumn servingSizeColumn = DoubleColumn.ofAll(SERVING_SIZE, 118, 148, 83, 182); // Grouping columns into a data frame DataFrame dataFrame = DataFrame.ofAll(nameColumn, colorColumn, servingSizeColumn); // Typed random access to individual values (based on rowIndex / columnId) String lemon = dataFrame.getValueAt(2, NAME); double appleServingSize = dataFrame.getValueAt(3, SERVING_SIZE); // Typed stream-based access to all values DoubleStream servingSizes = servingSizeColumn.valueStream(); double maxServingSize = servingSizes.summaryStatistics().getMax(); // Smart column implementations Set<String> colors = colorColumn.getCategories(); }
assertArrayEquals(new double[]{1.74, 1.20, 1.70}, heightColumn.valueStream().toArray(), 0.01);
assertEquals(HEIGHT, df.getColumnId(2, ColumnType.DOUBLE)); assertEquals(heightColumn, df.getColumn(HEIGHT)); assertArrayEquals(new double[]{1.74, 1.20, 1.70}, heightColumn.valueStream().toArray(), 0.01);