DateTimeColumn extends AbstractColumn<DateTimeColumn, LocalDateTime> implements DateTimeMapFunctions,
        DateTimeFilters,
        TemporalFillers<LocalDateTime, DateTimeColumn>,
        CategoricalColumn<LocalDateTime> { @Override public int countUnique() { LongSet ints = new LongOpenHashSet(data.size()); for (long i : data) { ints.add(i); } return ints.size(); } private  DateTimeColumn(String name, LongArrayList data); static DateTimeColumn createInternal(String name, long[] longs); static DateTimeColumn create(String name); static DateTimeColumn create(String name, int initialSize); static DateTimeColumn create(String name, Collection<LocalDateTime> data); static DateTimeColumn create(String name, Stream<LocalDateTime> stream); @Override DateTimeColumn plus(long amountToAdd, ChronoUnit unit); static DateTimeColumn create(String name, LocalDateTime... data); static boolean valueIsMissing(long value); @Override boolean isMissing(int rowNumber); @Override DateTimeColumn subset(final int[] rows); @Override DateTimeColumn removeMissing(); @Override boolean contains(LocalDateTime dateTime); @Override DateTimeColumn setMissing(int i); DateTimeColumn where(Selection selection); void setPrintFormatter(DateTimeFormatter dateTimeFormatter, String missingValueString); void setPrintFormatter(DateTimeFormatter dateTimeFormatter); void setPrintFormatter(DateTimeColumnFormatter formatter); @Override DateTimeColumn lag(int n); @Override DateTimeColumn appendCell(String stringValue); @Override DateTimeColumn appendCell(String stringValue, AbstractColumnParser<?> parser); DateTimeColumn append(LocalDateTime dateTime); @Override DateTimeColumn appendObj(Object obj); int size(); DateTimeColumn appendInternal(long dateTime); @Override String getString(int row); @Override String getUnformattedString(int row); @Override DateTimeColumn emptyCopy(); @Override DateTimeColumn emptyCopy(int rowSize); @Override DateTimeColumn copy(); @Override void clear(); @Override void sortAscending(); @Override void sortDescending(); @Override Table summary(); @Override int countUnique(); @Override DateTimeColumn unique(); @Override boolean isEmpty(); long getLongInternal(int index); LocalDateTime get(int index); @Override IntComparator rowComparator(); @Override DateTimeColumn set(Selection rowSelection, LocalDateTime newValue); @Override int countMissing(); long[] asEpochSecondArray(); long[] asEpochSecondArray(ZoneOffset offset); long[] asEpochMillisArray(); long[] asEpochMillisArray(ZoneOffset offset); InstantColumn asInstantColumn(); InstantColumn asInstantColumn(ZoneId zone); @Override DateTimeColumn append(Column<LocalDateTime> column); @Override DateTimeColumn append(Column<LocalDateTime> column, int row); @Override DateTimeColumn set(int row, Column<LocalDateTime> column, int sourceRow); LocalDateTime max(); @Override DateTimeColumn appendMissing(); @Override LocalDateTime min(); DateTimeColumn set(int index, long value); @Override DateTimeColumn set(int index, LocalDateTime value); List<LocalDateTime> top(int n); List<LocalDateTime> bottom(int n); LongIterator longIterator(); Set<LocalDateTime> asSet(); int byteSize(); @Override byte[] asBytes(int rowNumber); double getDouble(int i); double[] asDoubleArray(); DoubleColumn asDoubleColumn(); @Override Iterator<LocalDateTime> iterator(); @Override DateTimeColumn fillWith(Iterator<LocalDateTime> iterator); @Override DateTimeColumn fillWith(Iterable<LocalDateTime> iterable); @Override DateTimeColumn fillWith(Supplier<LocalDateTime> supplier); @Override LocalDateTime[] asObjectArray(); @Override int compare(LocalDateTime o1, LocalDateTime o2);  }
@Test public void testCountUnique() { column1.append(LocalDateTime.of(2000, 1, 1, 0, 0)); column1.append(LocalDateTime.of(2000, 1, 1, 0, 0)); column1.append(LocalDateTime.of(2000, 2, 1, 0, 0)); column1.appendMissing(); assertEquals(3, column1.countUnique()); }