protected Map<IFullPath, List<TimeValuePair>> readSourceFiles(
      List<IFullPath> timeseriesPaths, List<TSDataType> dataTypes) throws IOException {
    Map<IFullPath, List<TimeValuePair>> sourceData = new LinkedHashMap<>();
    for (IFullPath path : timeseriesPaths) {
      List<TimeValuePair> dataList = new ArrayList<>();
      sourceData.put(path, dataList);
      IDataBlockReader tsBlockReader =
          new SeriesDataBlockReader(
              path,
              FragmentInstanceContext.createFragmentInstanceContextForCompaction(
                  EnvironmentUtils.TEST_QUERY_CONTEXT.getQueryId()),
              tsFileManager.getTsFileList(true),
              tsFileManager.getTsFileList(false),
              true);
      while (tsBlockReader.hasNextBatch()) {
        TsBlock block = tsBlockReader.nextBatch();
        IBatchDataIterator iterator = block.getTsBlockAlignedRowIterator();
        while (iterator.hasNext()) {
          dataList.add(
              new TimeValuePair(
                  iterator.currentTime(), ((TsPrimitiveType[]) iterator.currentValue())[0]));
          iterator.next();
        }
      }
    }
    return sourceData;
  }
@param fileNum the number of file
@param deviceIndexes device index in each file
@param measurementIndexes measurement index in each device of each file
@param pointNum data point number of each timeseries in each file
@param startTime start time of each timeseries
@param timeInterval time interval of each timeseries between files
@param isAlign when it is true, it will create mix tsfile which contains aligned and nonAligned
    timeseries
@param isSeq
iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/AbstractCompactionTest.java