static List<String> getMatchingPrevAndCurrSnapshotPairs(String prevSnapshotDir, String currSnapshotDir)
  {
    Map<String, String> prevFilesMap = createMapFromFiles(prevSnapshotDir);
    Map<String, String> currFilesMap = createMapFromFiles(currSnapshotDir);
    List<String> filePairs = new ArrayList<>();

    currFilesMap.forEach((filename, absolutePath) ->
    {
      if (prevFilesMap.containsKey(filename))
      {
        filePairs.add(prevFilesMap.get(filename));
        filePairs.add(absolutePath);
        prevFilesMap.remove(filename);
      }
      else
      {
        filePairs.add("");
        filePairs.add(absolutePath);
      }
    });

    prevFilesMap.forEach((filename, absolutePath) ->
    {
      filePairs.add(absolutePath);
      filePairs.add("");
    });

    return filePairs;
  }
@Test(dataProvider = "matchingFilePairTestData")
  public void testGetMatchingPrevAndCurrSnapshotPairs(String preSnapshotDir, String currSnapshotDir, List<String> expectedFilePairList)
  {
    PegasusSchemaSnapshotCompatibilityChecker checker = new PegasusSchemaSnapshotCompatibilityChecker();
    List<String> actualFilePairList = checker.getMatchingPrevAndCurrSnapshotPairs(preSnapshotDir, currSnapshotDir);
    Assert.assertEquals(actualFilePairList.size(), expectedFilePairList.size());
    for (int i = 0; i < actualFilePairList.size(); i++)
    {
      Assert.assertEquals(actualFilePairList.get(0), expectedFilePairList.get(0));
    }
  }