### Question:
AbstractLocation implements Location { @Override public final boolean descendantOf(Location other) { Validate.notNull(other, "other must not be null"); return this.getAncestorIds().contains(other.getId()); }  @Override final boolean descendantOf(Location other); @Override final boolean childOf(Location other); @Override final boolean commonName(Location other); @Override final Set<String> collectAlternativeNames(); @Override @Deprecated final Double getLatitude(); @Override @Deprecated final Double getLongitude(); @Override String toString(); @Override boolean hasName(String name, Set<Language> languages); @Override int hashCode(); @Override boolean equals(Object obj);  }### Answer:
@Test public void testDescendantOf() { assertTrue(l1.descendantOf(l2)); assertFalse(l2.descendantOf(l1)); assertTrue(l3.descendantOf(l4)); assertFalse(l4.descendantOf(l3)); }