@Test
void test4ary() {

  // GIVEN
  ColumnIdentifier c1 = new ColumnIdentifier("c", "1");
  ColumnIdentifier c4 = new ColumnIdentifier("c", "4");
  ColumnIdentifier c5 = new ColumnIdentifier("c", "5");
  ColumnIdentifier c12 = new ColumnIdentifier("c", "12");
  ColumnIdentifier d1 = new ColumnIdentifier("d", "1");
  ColumnIdentifier d3 = new ColumnIdentifier("d", "3");
  ColumnIdentifier d4 = new ColumnIdentifier("d", "4");
  InclusionDependency ind = new InclusionDependency(new ColumnPermutation(c4, c12, c1, c5),
      new ColumnPermutation(d3, d1, d4, d1));
  Set<InclusionDependency> expectedInds = ImmutableSet.of(
      new InclusionDependency(new ColumnPermutation(c4, c1, c5),
          new ColumnPermutation(d3, d4, d1)),
      new InclusionDependency(new ColumnPermutation(c4, c12, c1),
          new ColumnPermutation(d3, d1, d4)));
  // WHEN
  Set<InclusionDependency> dedupedInds = IndDeduplicator.deduplicateColumnIdentifier(ind);
  // THEN
  assertThat(dedupedInds).isEqualTo(expectedInds);
}