fitgoodies-core/src/main/java/de/cologneintelligence/fitgoodies/RowFixture.java
private void multiLevelMatch(List<FitRow> expected, List<Object> computed, int col) {
        boolean cantGoDeeper = col >= columnNames.length;
        if (cantGoDeeper) {
            check(expected, computed);
        } else {
            boolean isComment = isComment(col);
            if (isComment) {
                multiLevelMatch(expected, computed, col + 1);
            } else {
                groupAndMatch(expected, computed, col);
            }
        }
    }
private void multiLevelMatch(List<FitRow> expected, List<Object> computed, int col) {
        boolean cantGoDeeper = col >= columnNames.length;
        if (cantGoDeeper) {
            check(expected, computed);
        } else {
            boolean isComment = isComment(col);
            if (isComment) {
                multiLevelMatch(expected, computed, col + 1);
            } else {
                groupAndMatch(expected, computed, col);
            }
        }
    }
Sorts and compare two lists.
It is assumed that all items in {@code expected} and {@code computed}
are equal on the {@code col - 1} columns.