### Question:
BoundedItemIcon extends BoundedItem implements IBoundedItemIcon { @Override public Icon getIcon() { return icon; } BoundedItemIcon(String label, Coord2d position, Icon icon);  BoundedItemIcon(Pair<String,? extends Icon> labelIcon);  BoundedItemIcon(String label, Icon icon);  BoundedItemIcon(Object o, Icon icon);  BoundedItemIcon(Object o, Icon icon, float margin);  BoundedItemIcon(Object o, Pair<String,? extends Icon> labelIcon);  BoundedItemIcon(Object o, String label, Icon icon);  BoundedItemIcon(Object o, String label, Icon icon, float margin); @Override void setIcon(Icon icon); @Override void setIcon(Icon icon, float margin); @Override Icon getIcon(); @Override Coord2d getScale(); @Override void setScale(Coord2d scale); @Override IBoundedItem clone();  }### Answer:
@Test public void testIconItemSize(){ Icon icon = IconSet.ROUTER; int expectedWidth = 151; int expectedHeight = 89; Assert.assertEquals(icon.getIconWidth(), expectedWidth); Assert.assertEquals(icon.getIconHeight(), expectedHeight); IBoundedItemIcon item = new BoundedItemIcon("node", icon); Assert.assertTrue(item.getIcon()==icon); Assert.assertEquals(expectedWidth, item.getRawRectangleBounds().width, 0.001); float expectedRadius = (float)(Math.hypot(expectedWidth+BoundedItemIcon.DEFAULT_SLOT_HEIGHT*2, expectedHeight+BoundedItemIcon.DEFAULT_SLOT_HEIGHT*2)/2); Assert.assertTrue(item.getRadialBounds(Math.PI/2)<=expectedRadius); }