### Question:
SpeedErrorKey extends AbstractSpecialKey implements SpecialColumnDetector { @Override public boolean markSpecialColumn(MetaDataInfo metaData, String columnName) { boolean wasDetected = false; if (!metaData.hasTypeForSpecialKey(SpeedErrorKey.DEFAULT)) { SpecialKey specialKey = detectColumn(columnName); if (specialKey != null) { metaData.setSpecialKey(columnName, specialKey, metaData); wasDetected = true; } } return wasDetected; } SpeedErrorKey();  SpeedErrorKey(SpeedUnit unit); @Override SpeedUnit getKeyUnit(); @Override boolean markSpecialColumn(MetaDataInfo metaData, String columnName); @Override SpecialKey detectColumn(String columnName); static final SpeedErrorKey DEFAULT; }### Answer:
@Test public void testMarkSpecialColumn() { DefaultMetaDataInfo metaData = new DefaultMetaDataInfo(); String column = "Speed Error (+/-mi/hr)"; metaData.addKey(column, Double.class, this); SpeedErrorKey.DEFAULT.markSpecialColumn(metaData, column); SpeedErrorKey actual = (SpeedErrorKey)metaData.getSpecialTypeForKey(column); SpeedErrorKey expected = new SpeedErrorKey(SpeedUnit.MILES_PER_HOUR); Assert.assertEquals(expected, actual); Assert.assertEquals(expected.getKeyUnit(), actual.getKeyUnit()); }