| 9 | import org.jetbrains.skija.test.runner.*; |
| 10 | |
| 11 | public class PathMeasureTest implements Executable { |
| 12 | @Override |
| 13 | public void execute() throws Exception { |
| 14 | try (var path = new Path().moveTo(0, 0).lineTo(40, 0).moveTo(0, 40).lineTo(10, 50); |
| 15 | var measure = new PathMeasure(path, false); |
| 16 | var path2 = new Path().lineTo(10, 10);) |
| 17 | { |
| 18 | assertEquals(40f, measure.getLength()); |
| 19 | assertClose(new Point(0, 0), measure.getPosition(0)); |
| 20 | assertClose(new Point(1, 0), measure.getTangent(0)); |
| 21 | assertClose(new Point(20, 0), measure.getPosition(20)); |
| 22 | assertClose(new Point(1, 0), measure.getTangent(20)); |
| 23 | assertEquals(false, measure.isClosed()); |
| 24 | |
| 25 | assertClose(Matrix33.makeTranslate(20, 0), measure.getMatrix(20, true, false)); |
| 26 | assertClose(Matrix33.makeRotate(0), measure.getMatrix(20, false, true)); |
| 27 | assertClose(Matrix33.makeTranslate(20, 0).makeConcat(Matrix33.makeRotate(0)), measure.getMatrix(20, true, true)); |
| 28 | |
| 29 | measure.nextContour(); |
| 30 | assertClose(14.14213f, measure.getLength()); |
| 31 | assertClose(new Point(0, 40), measure.getPosition(0)); |
| 32 | assertClose(new Point(0.70710677f, 0.70710677f), measure.getTangent(0)); |
| 33 | assertClose(new Point(4.949747f, 44.949745f), measure.getPosition(7)); |
| 34 | assertClose(new Point(0.70710677f, 0.70710677f), measure.getTangent(7)); |
| 35 | |
| 36 | assertClose(Matrix33.makeTranslate(4.949747f, 44.949745f), measure.getMatrix(7, true, false)); |
| 37 | assertClose(Matrix33.makeRotate(45), measure.getMatrix(7, false, true)); |
| 38 | assertClose(Matrix33.makeTranslate(4.949747f, 44.949745f).makeConcat(Matrix33.makeRotate(45)), measure.getMatrix(7, true, true)); |
| 39 | |
| 40 | measure.setPath(path2, false); |
| 41 | assertClose(14.142136f, measure.getLength()); |
| 42 | } |
| 43 | } |
| 44 | } |
nothing calls this directly
no outgoing calls
no test coverage detected