### Question:
ImageSource implements IconSource { @Override public Shape getShape(CoordinateSystem coordinateSystem) { switch (coordinateSystem) { case USER: return source.getShape(); case FONT: return transformToFontCoordinateSystem(); } throw new UnsupportedOperationException(); } ImageSource(SvgDocument source); @Override Shape getShape(CoordinateSystem coordinateSystem); @Override double getAscent(); @Override double getDescent(); @Override double getHorizontalAdvance(); @Override String toString();  }### Answer:
@Test public void standalone() throws IOException, UnableToCompleteException { SvgDocument svg = TestIcons.get("heart.svg"); SVGRoot root = svg.getDiagram().getRoot(); Shape shape = root.getShape(); assertThat(shape.getBounds().getWidth(), equalTo(32d)); assertThat(shape.getBounds().getHeight(), equalTo(29d)); System.out.println(TestIcons.awesome("fa-music").getSource() .getShape(IconSource.CoordinateSystem.FONT).getBounds()); ImageSource source = new ImageSource(svg); shape = source.getShape(IconSource.CoordinateSystem.FONT); System.out.println(shape.getBounds()); assertThat(shape.getBounds().getX(), equalTo(0d)); assertThat(shape.getBounds().getY(), lessThan(0d)); ProtoFontBuilder fontBuilder = new ProtoFontBuilder(); fontBuilder.addGlyph(0xf001, source); ProtoFont font = fontBuilder.build(); ProtoGlyph glyph = font.getGlyphs().get(0xf001); System.out.println(glyph.getShape().getBounds()); }