DateColumn extends AbstractColumn<DateColumn, LocalDate> implements DateFilters,
        DateFillers<DateColumn>,
        DateMapFunctions,
        CategoricalColumn<LocalDate> { @Override public LocalDate min() { if (isEmpty()) { return null; } Integer min = null; for (int aData : data) { if (DateColumnType.missingValueIndicator() != aData) { if (min == null) { min = aData; } else { min = (min < aData) ? min : aData; } } } if (min == null) { return null; } return PackedLocalDate.asLocalDate(min); } private  DateColumn(String name, IntArrayList data); static DateColumn create(final String name); static DateColumn createInternal(String name, int[] data); static DateColumn create(final String name, final int initialSize); static DateColumn create(String name, Collection<LocalDate> data); static DateColumn create(String name, LocalDate... data); static DateColumn create(String name, Stream<LocalDate> stream); @Override int size(); @Override DateColumn subset(final int[] rows); DateColumn appendInternal(int f); DateColumn set(int index, int value); @Override DateColumn set(int index, LocalDate value); void setPrintFormatter(DateTimeFormatter dateTimeFormatter, String missingValueString); void setPrintFormatter(DateTimeFormatter dateTimeFormatter); @Override String getString(int row); @Override String getUnformattedString(int row); @Override DateColumn emptyCopy(); @Override DateColumn emptyCopy(int rowSize); @Override DateColumn copy(); @Override void clear(); @Override DateColumn lead(int n); @Override DateColumn lag(int n); @Override void sortAscending(); @Override void sortDescending(); @Override int countUnique(); @Override DateColumn unique(); @Override DateColumn append(final Column<LocalDate> column); @Override DateColumn append(Column<LocalDate> column, int row); @Override DateColumn set(int row, Column<LocalDate> column, int sourceRow); @Override LocalDate max(); @Override LocalDate min(); @Override DateColumn set(Selection rowSelection, LocalDate newValue); @Override DateColumn appendMissing(); @Override LocalDate get(int index); @Override boolean isEmpty(); @Override IntComparator rowComparator(); @Override DateColumn append(LocalDate value); @Override DateColumn appendObj(Object obj); @Override DateColumn appendCell(String string); @Override DateColumn appendCell(String string, AbstractColumnParser<?> parser); @Override int getIntInternal(int index); @Override Table summary(); static boolean valueIsMissing(int i); @Override int countMissing(); List<LocalDate> top(int n); List<LocalDate> bottom(int n); IntIterator intIterator(); @Override DateColumn removeMissing(); @Override List<LocalDate> asList(); @Override DateColumn where(Selection selection); Set<LocalDate> asSet(); @Override boolean contains(LocalDate localDate); @Override DateColumn setMissing(int i); double[] asDoubleArray(); DoubleColumn asDoubleColumn(); @Override boolean isMissing(int rowNumber); double getDouble(int i); @Override int byteSize(); @Override byte[] asBytes(int rowNumber); @Override Iterator<LocalDate> iterator(); @Override DateColumn fillWith(Iterator<LocalDate> iterator); @Override DateColumn fillWith(Iterable<LocalDate> iterable); @Override DateColumn fillWith(Supplier<LocalDate> supplier); @Override LocalDate[] asObjectArray(); @Override int compare(LocalDate o1, LocalDate o2);  }
@Test public void testMin() { column1.appendInternal(DateColumnType.missingValueIndicator()); column1.appendCell("2013-10-23"); LocalDate actual = column1.min(); assertEquals(DateColumnType.DEFAULT_PARSER.parse("2013-10-23"), actual); }