// create a circle
Mark circle = sb.createMark("circle", null, sb.createStroke(500));
Graphic g = sb.createGraphic(null, circle, null);
// a point symbolizer with the specified circle
PointSymbolizer ps = sb.createPointSymbolizer(g);
// first see it in feet
ps.setUnitOfMeasure(NonSI.FOOT);
// rescale it
UomRescaleStyleVisitor visitor = new UomRescaleStyleVisitor(10);
ps.accept(visitor);
PointSymbolizer rps = (PointSymbolizer) visitor.getCopy();
Mark rm = (Mark) rps.getGraphic().graphicalSymbols().get(0);
assertEquals(1524.0, rm.getStroke().getWidth().evaluate(null, Double.class), 0d);
// now let's see the same in meters
ps.setUnitOfMeasure(SI.METER);
// rescale it
visitor = new UomRescaleStyleVisitor(10);
ps.accept(visitor);
rps = (PointSymbolizer) visitor.getCopy();
rm = (Mark) rps.getGraphic().graphicalSymbols().get(0);
assertEquals(5000.0, rm.getStroke().getWidth().evaluate(null, Double.class), 0d);
}