### Question:
Span implements TextFontInfo { public Rectangle blockSize() { List<TxtGlyph> txtGlyphs = glyphList(); double width = 0; double height = 0; for (TxtGlyph glyph : txtGlyphs) { width += glyph.getW(); height = glyph.getH(); } return new Rectangle(width, height); } protected  Span();  Span(Font font, Double fontSize, String text);  Span(String text); int[] getColor(); Span setColor(int[] rgb); Span setColor(int r, int g, int b); int length(); @Override Font getFont(); Span setFont(Font font); @Override Double getFontSize(); Span setFontSize(Double fontSize); @Override Double getLetterSpacing(); Span setLetterSpacing(Double letterSpacing); boolean isBold(); Span setBold(boolean bold); boolean isItalic(); Span setItalic(boolean italic); boolean isUnderline(); Span setUnderline(boolean underline); String getText(); Span setText(String text); Boolean isIntegrity(); Span setIntegrity(Boolean integrity); List<TxtGlyph> glyphList(); Double[] getDeltaX(); Rectangle blockSize(); Span[] split(int index); Span setLinebreak(boolean linebreak); boolean hasLinebreak(); LinkedList<Span> splitLineBreak(); @Override Span clone();  }### Answer:
@Test public void blockSize() { Span span = new Span("你好OFD R&W") .setFontSize(10d); Rectangle rectangle = span.blockSize(); Assertions.assertEquals(rectangle.getHeight(), 10); Assertions.assertEquals(rectangle.getWidth(), 20 + 7 * 6); Assertions.assertEquals( span.blockSize().getWidth(), 20 + 7 * 6); span.setLetterSpacing(3d); Assertions.assertEquals(span.blockSize().getWidth(), 20 + 7 * 6 + 9 * 3); }