### Question:
ColumnCombinationBitset implements Comparable<ColumnCombinationBitset> { public ColumnCombination createColumnCombination(String relationName, List<String> columnNames) { ColumnIdentifier[] identifierList = new ColumnIdentifier[size()]; int i = 0; for (Integer columnIndex : getSetBits()) { identifierList[i] = new ColumnIdentifier(relationName, columnNames.get(columnIndex.intValue())); i++; } return new ColumnCombination(identifierList); } ColumnCombinationBitset(int... columnIndeces);  ColumnCombinationBitset(List<Integer> columnIndices);  ColumnCombinationBitset(ColumnCombinationBitset columnCombination); ColumnCombinationBitset addColumn(int columnIndex); ColumnCombinationBitset removeColumn(int columnIndex); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString(); boolean isSubsetOf(ColumnCombinationBitset potentialSuperset); boolean isProperSubsetOf(ColumnCombinationBitset potentialProperSuperSet); boolean containsSubset(ColumnCombinationBitset potentialSubset); boolean containsProperSubset(ColumnCombinationBitset potentialProperSubset); List<ColumnCombinationBitset> getAllSubsets(); List<ColumnCombinationBitset> getNSubsetColumnCombinations(int n); List<ColumnCombinationBitset> getNSubsetColumnCombinationsSupersetOf(
    ColumnCombinationBitset subSet, int n); List<Integer> getSetBits(); List<Integer> getClearedBits(int numberOfColumns); ColumnCombinationBitset minus(
    ColumnCombinationBitset otherColumnCombination); List<ColumnCombinationBitset> getContainedOneColumnCombinations(); ColumnCombinationBitset union(ColumnCombinationBitset other); ColumnCombinationBitset intersect(ColumnCombinationBitset other); List<ColumnCombinationBitset> getDirectSupersets(int numberOfColumns); List<ColumnCombinationBitset> getDirectSupersets(ColumnCombinationBitset maximalSuperset); List<ColumnCombinationBitset> getDirectSubsets(); List<ColumnCombinationBitset> getDirectSubsetsSupersetOf(ColumnCombinationBitset subSet); int size(); boolean isEmpty(); ColumnCombination createColumnCombination(String relationName,
                                                   List<String> columnNames); ColumnCombinationBitset setAllBits(int dimension); boolean containsColumn(int columnIndex); boolean containsColumn(int... columnIndices); ColumnCombinationBitset invert(int size); @Override int compareTo(ColumnCombinationBitset other);  }### Answer:
@Test public void testCreateColumnCombination() { ColumnCombinationBitsetFixture fixture = new ColumnCombinationBitsetFixture(); ColumnCombinationBitset columnCombination = fixture.getColumnCombination1(); String expectedRelationName = "relation1"; ImmutableList<String> expectedColumnNames = ImmutableList.of("column1", "column2", "column3", "column4", "column5"); ColumnCombination actualColumnCombination = columnCombination.createColumnCombination( expectedRelationName, expectedColumnNames); for (int setColumnIndex : columnCombination.getSetBits()) { assertTrue(actualColumnCombination.getColumnIdentifiers().contains( new ColumnIdentifier(expectedRelationName, expectedColumnNames.get(setColumnIndex)))); } assertEquals(columnCombination.size(), actualColumnCombination.getColumnIdentifiers().size()); }
@Test public void testCreateColumnCombinationFromEmpty() { ColumnCombinationBitset emptyColumnCombinationBitset = new ColumnCombinationBitset(); ColumnCombination actualColumnCombination = emptyColumnCombinationBitset.createColumnCombination( "someRelation", ImmutableList.of("someColumn")); assertEquals(actualColumnCombination, new ColumnCombination()); }