### Question:
Angle extends AAngularMeasure implements IAngle { @Override public IAngle subtract(final IAngularMeasure angle) { return subtract(angle.asRad()); } private  Angle(); private  Angle(double rad); static Angle zero(); static Angle ofRad(double rad); static Angle ofDeg(double deg); static Angle ofRotation(double turns); static Angle ofVec(IVector2 vector); static Angle ofAngularMeasure(IAngularMeasure angularMeasure); @Override IAngle add(final IAngularMeasure angle); @Override IAngle add(final double angle); @Override IAngle subtract(final IAngularMeasure angle); @Override IAngle subtract(final double angle); @Override IAngle multiply(final double factor);  }### Answer:
@Test public void subtract() { assertEquals(0, Angle.zero().subtract(Math.PI / 2).subtract(Angle.ofDeg(270)).asRad(), ACCURACY); assertEquals(-3, Angle.zero().subtract(Angle.ofDeg(1)).subtract(Angle.ofDeg(2)).asDeg(), ACCURACY); }