public static void compareMergedVectors(Map<String, List<Object>> expectedRecords, Map<String, List<Object>> actualRecords) throws Exception {
for (String s : actualRecords.keySet()) {
assertNotNull("Unexpected extra column " + s + " returned by query.", expectedRecords.get(s));
List<?> expectedValues = expectedRecords.get(s);
List<?> actualValues = actualRecords.get(s);
assertEquals(
String.format(
"Incorrect number of rows returned by query.\nquery: %s\nexpected: %s\nactual: %s",
s, expectedValues, actualValues),
expectedValues.size(), actualValues.size());
for (int i = 0; i < expectedValues.size(); i++) {
try {
compareValuesErrorOnMismatch(expectedValues.get(i), actualValues.get(i), i, s);
} catch (Exception ex) {
throw new Exception(ex.getMessage() + "\n\n" + printNearbyRecords(expectedRecords, actualRecords, i), ex);
}
}
}
if (actualRecords.size() < expectedRecords.size()) {
throw new Exception(findMissingColumns(expectedRecords.keySet(), actualRecords.keySet()));
}
}