### Question:
AngleUnitsProvider extends AbstractUnitsProvider<Coordinates> { @Override public <T extends Coordinates> T convert(Class<T> desiredType, Coordinates source) throws InvalidUnitsException { return Coordinates.create(desiredType, source); } AngleUnitsProvider(); @Override T convert(Class<T> desiredType, Coordinates source); @Override T fromUnitsAndMagnitude(Class<T> type, Number magnitude); @Override Class<? extends Coordinates> getDisplayClass(Coordinates value); @Override String getLongLabel(Class<? extends Coordinates> type, boolean plural); @Override String getSelectionLabel(Class<? extends Coordinates> type); @Override String getShortLabel(Class<? extends Coordinates> type, boolean plural); @Override Class<Coordinates> getSuperType(); @Override Class<? extends Coordinates> getUnitsWithLongLabel(String label); @Override String toShortLabelString(Coordinates obj);  }### Answer:
@Test public void testConvert() { DecimalDegrees dd = new DecimalDegrees(34.5451235); Assert.assertSame(dd, new AngleUnitsProvider().convert(DecimalDegrees.class, dd)); Assert.assertEquals(dd, new AngleUnitsProvider().convert(DecimalDegrees.class, new DegreesMinutesSeconds(34.5451235))); }