### Question:
HeadingKey extends AbstractSpecialKey implements SpecialColumnDetector { @Override public boolean markSpecialColumn(MetaDataInfo metaData, String columnName) { boolean wasDetected = false; if (!metaData.hasTypeForSpecialKey(HeadingKey.DEFAULT)) { SpecialKey specialKey = detectColumn(columnName); if (specialKey != null) { metaData.setSpecialKey(columnName, specialKey, metaData); wasDetected = true; } } return wasDetected; } HeadingKey();  HeadingKey(HeadingUnit unit); @Override HeadingUnit getKeyUnit(); @Override boolean markSpecialColumn(MetaDataInfo metaData, String columnName); @Override SpecialKey detectColumn(String columnName); static boolean isHeading(String columnName); static final HeadingKey DEFAULT; }### Answer:
@Test public void testMarkSpecialColumn() { DefaultMetaDataInfo metaData = new DefaultMetaDataInfo(); String column = "Heading (degN)"; metaData.addKey(column, Double.class, this); HeadingKey.DEFAULT.markSpecialColumn(metaData, column); HeadingKey actual = (HeadingKey)metaData.getSpecialTypeForKey(column); HeadingKey expected = new HeadingKey(HeadingUnit.DEGREES_CLOCKWISE_FROM_NORTH); Assert.assertEquals(expected, actual); Assert.assertEquals(expected.getKeyUnit(), actual.getKeyUnit()); }