@Override
    public Entry next(Entry reuse) throws IOException {
        // Ignore reuse, because each HeadStream has its own reuse BinaryRowData.
        return next();
    }
@Test
    public void testOneStream() throws Exception {
        List<MutableObjectIterator<BinaryRowData>> iterators = new ArrayList<>();
        iterators.add(
                newIterator(new int[] {1, 2, 4, 5, 10}, new String[] {"1", "2", "4", "5", "10"}));

        final int[] expected = new int[] {1, 2, 4, 5, 10};

        MutableObjectIterator<BinaryRowData> iterator =
                new BinaryMergeIterator<>(
                        iterators,
                        Collections.singletonList(serializer.createInstance()),
                        (o1, o2) -> this.comparator.compare(o1, o2));

        BinaryRowData row = serializer.createInstance();

        int pos = 0;
        while ((row = iterator.next(row)) != null) {
            assertThat(row.getInt(0)).isEqualTo(expected[pos++]);
        }
    }