### Question:
SubSetGraph { public boolean containsSubset(ColumnCombinationBitset superset) { if (this.isEmpty()) { return false; } Queue<SubSetFindTask> openTasks = new LinkedList<>(); openTasks.add(new SubSetFindTask(this, 0, new ColumnCombinationBitset())); while (!openTasks.isEmpty()) { SubSetFindTask currentTask = openTasks.remove(); if (currentTask.subGraph.isEmpty()) { return true; } if (currentTask.subGraph.subSetEnds) { return true; } for (int i = currentTask.numberOfCheckedColumns; i < superset.size(); i++) { int currentColumnIndex = superset.getSetBits().get(i); SubSetGraph subGraph = currentTask.subGraph.subGraphs.get(currentColumnIndex); if (subGraph != null) { ColumnCombinationBitset path = new ColumnCombinationBitset(currentTask.path) .addColumn(currentColumnIndex); openTasks.add(new SubSetFindTask(subGraph, i + 1, path)); } } } return false; }  SubSetGraph add(ColumnCombinationBitset columnCombination); SubSetGraph addAll(Collection<ColumnCombinationBitset> columnCombinations); ArrayList<ColumnCombinationBitset> getExistingSubsets(
    ColumnCombinationBitset columnCombinationToQuery); boolean containsSubset(ColumnCombinationBitset superset); Set<ColumnCombinationBitset> getMinimalSubsets(); boolean isEmpty(); @Override boolean equals(Object o); @Override int hashCode();  }### Answer:
@Test public void testContainsSubset() { SubSetGraphFixture fixture = new SubSetGraphFixture(); SubSetGraph actualGraph = fixture.getGraph(); assertTrue(actualGraph.containsSubset(fixture.getExpectedIncludedColumnCombinations().get(0))); assertTrue(actualGraph.containsSubset(fixture.getColumnCombinationForSubsetQuery())); assertFalse(actualGraph.containsSubset(new ColumnCombinationBitset(1))); }
@Test public void testContainsSubsetOnEmptyGraph() { SubSetGraph actualGraph = new SubSetGraph(); assertFalse(actualGraph.containsSubset(new ColumnCombinationBitset(1, 3))); }