### Question:
EllipseSemiMajorAxisKey extends AbstractSpecialKey implements SpecialColumnDetector { static boolean isSemiMajor(String columnName) { return COLUMN_PATTERN.matcher(columnName).matches(); } EllipseSemiMajorAxisKey();  EllipseSemiMajorAxisKey(Class<? extends Length> semiMajorUnit); @Override boolean markSpecialColumn(MetaDataInfo metaData, String columnName); @Override SpecialKey detectColumn(String columnName); @SuppressWarnings("unchecked") Class<? extends Length> getSemiMajorUnit(); static Class<? extends Length> detectUnit(String columnName); static final EllipseSemiMajorAxisKey DEFAULT; }### Answer:
@Test public void testIsSemiMajor() { Assert.assertFalse(EllipseSemiMajorAxisKey.isSemiMajor("")); Assert.assertFalse(EllipseSemiMajorAxisKey.isSemiMajor("SEMI_MINOR")); Assert.assertTrue(EllipseSemiMajorAxisKey.isSemiMajor("Semi-Major 95 (km)")); Assert.assertTrue(EllipseSemiMajorAxisKey.isSemiMajor("SEMI_MAJOR")); Assert.assertTrue(EllipseSemiMajorAxisKey.isSemiMajor("SMA")); Assert.assertTrue(EllipseSemiMajorAxisKey.isSemiMajor("SMJ_NM")); Assert.assertTrue(EllipseSemiMajorAxisKey.isSemiMajor("SMAJ")); }