### Question:
FDTree extends FDTreeElement { public void addFunctionalDependency(BitSet lhs, int a) { FDTreeElement fdTreeEl; FDTreeElement currentNode = this; currentNode.addRhsAttribute(a); for (int i = lhs.nextSetBit(0); i >= 0; i = lhs.nextSetBit(i + 1)) { if (currentNode.children[i - 1] == null) { fdTreeEl = new FDTreeElement(maxAttributeNumber); currentNode.children[i - 1] = fdTreeEl; } currentNode = currentNode.getChild(i - 1); currentNode.addRhsAttribute(a); } currentNode.markAsLastVertex(a - 1); } FDTree(int maxAttributeNumber); void addMostGeneralDependencies(); void addFunctionalDependency(BitSet lhs, int a); boolean isEmpty(); void filterSpecializations(); void filterGeneralizations(); void printDependencies();  }### Answer:
@Test public void testContainsSpezialization() { FDTree fdtree = new FDTree(5); BitSet lhs = new BitSet(); lhs.set(1); lhs.set(3); lhs.set(5); fdtree.addFunctionalDependency(lhs, 4); lhs.clear(1); lhs.set(2); fdtree.addFunctionalDependency(lhs, 4); lhs.clear(3); boolean result = fdtree.containsSpecialization(lhs, 4, 0); assertTrue(result); }