public MultiplePinotSegmentRecordReader(List<File> indexDirs)
      throws Exception {
    this(indexDirs, null, null);
  }
@Test
  public void testMultiplePinotSegmentRecordReader()
      throws Exception {
    List<GenericRow> outputRows = new ArrayList<>();
    try (MultiplePinotSegmentRecordReader pinotSegmentRecordReader = new MultiplePinotSegmentRecordReader(
        _segmentIndexDirList)) {
      while (pinotSegmentRecordReader.hasNext()) {
        outputRows.add(pinotSegmentRecordReader.next());
      }
    }

    Assert.assertEquals(outputRows.size(), NUM_SEGMENTS * NUM_ROWS,
        "Number of rows returned by PinotSegmentRecordReader is incorrect");

    int outputRowIndex = 0;
    for (List<GenericRow> rows : _rowsList) {
      for (GenericRow row : rows) {
        GenericRow outputRow = outputRows.get(outputRowIndex++);
        Assert.assertEquals(outputRow.getValue(D_SV_1), row.getValue(D_SV_1));
        Assert.assertEquals(outputRow.getValue(D_SV_2), row.getValue(D_SV_2));
        Assert.assertTrue(PinotSegmentUtil.compareMultiValueColumn(outputRow.getValue(D_MV_1), row.getValue(D_MV_1)));
        Assert.assertEquals(outputRow.getValue(M1), row.getValue(M1));
        Assert.assertEquals(outputRow.getValue(M2), row.getValue(M2));
        Assert.assertEquals(outputRow.getValue(TIME_1), row.getValue(TIME_1));
        Assert.assertEquals(outputRow.getValue(TIME_2), row.getValue(TIME_2));
      }
    }
  }