@Test public void testRotatePoint() { IPoint pt = ShapeFactory.createPoint(); assertNull(pt.rotatePoint(null, 0)); assertNull(pt.rotatePoint(null, 0)); assertNull(pt.rotatePoint(ShapeFactory.createPoint(), Double.NaN)); assertNull(pt.rotatePoint(ShapeFactory.createPoint(), Double.NEGATIVE_INFINITY)); assertNull(pt.rotatePoint(ShapeFactory.createPoint(), Double.POSITIVE_INFINITY)); assertEquals( ShapeFactory.createPoint(0, 1), ShapeFactory.createPoint(1, 0).rotatePoint(ShapeFactory.createPoint(), Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(-1, 0), ShapeFactory.createPoint(0, 1).rotatePoint(ShapeFactory.createPoint(), Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(0, -1), ShapeFactory.createPoint(-1, 0).rotatePoint(ShapeFactory.createPoint(), Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(1, 0), ShapeFactory.createPoint(0, -1).rotatePoint(ShapeFactory.createPoint(), Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(0, 1), ShapeFactory.createPoint(1, 0).rotatePoint(pt, -3. * Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(-1, 0), ShapeFactory.createPoint(0, 1).rotatePoint(pt, -3. * Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(0, -1), ShapeFactory.createPoint(-1, 0).rotatePoint(pt, -3. * Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(1, 0), ShapeFactory.createPoint(0, -1).rotatePoint(pt, -3. * Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(-1, 0), ShapeFactory.createPoint(1, 0).rotatePoint(pt, Math.PI)); assertEquals( ShapeFactory.createPoint(0, -1), ShapeFactory.createPoint(0, 1).rotatePoint(pt, Math.PI)); assertEquals( ShapeFactory.createPoint(1, 0), ShapeFactory.createPoint(-1, 0).rotatePoint(pt, Math.PI)); assertEquals( ShapeFactory.createPoint(0, 1), ShapeFactory.createPoint(0, -1).rotatePoint(pt, Math.PI)); assertEquals( ShapeFactory.createPoint(-1, 0), ShapeFactory.createPoint(1, 0).rotatePoint(pt, -Math.PI)); assertEquals( ShapeFactory.createPoint(0, -1), ShapeFactory.createPoint(0, 1).rotatePoint(pt, -Math.PI)); assertEquals( ShapeFactory.createPoint(1, 0), ShapeFactory.createPoint(-1, 0).rotatePoint(pt, -Math.PI)); assertEquals( ShapeFactory.createPoint(0, 1), ShapeFactory.createPoint(0, -1).rotatePoint(pt, -Math.PI)); assertEquals( ShapeFactory.createPoint(0, -1), ShapeFactory.createPoint(1, 0).rotatePoint(pt, 3. * Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(1, 0), ShapeFactory.createPoint(0, 1).rotatePoint(pt, 3. * Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(0, 1), ShapeFactory.createPoint(-1, 0).rotatePoint(pt, 3. * Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(-1, 0), ShapeFactory.createPoint(0, -1).rotatePoint(pt, 3. * Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(0, -1), ShapeFactory.createPoint(1, 0).rotatePoint(pt, -Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(1, 0), ShapeFactory.createPoint(0, 1).rotatePoint(pt, -Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(0, 1), ShapeFactory.createPoint(-1, 0).rotatePoint(pt, -Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(-1, 0), ShapeFactory.createPoint(0, -1).rotatePoint(pt, -Math.PI / 2.)); assertEquals( ShapeFactory.createPoint(1, 0), ShapeFactory.createPoint(1, 0).rotatePoint(pt, 2. * Math.PI)); assertEquals( ShapeFactory.createPoint(0, 1), ShapeFactory.createPoint(0, 1).rotatePoint(pt, 2. * Math.PI)); assertEquals( ShapeFactory.createPoint(-1, 0), ShapeFactory.createPoint(-1, 0).rotatePoint(pt, 2. * Math.PI)); assertEquals( ShapeFactory.createPoint(0, -1), ShapeFactory.createPoint(0, -1).rotatePoint(pt, 2. * Math.PI)); assertEquals( ShapeFactory.createPoint(1, 0), ShapeFactory.createPoint(1, 0).rotatePoint(pt, -2. * Math.PI)); assertEquals( ShapeFactory.createPoint(0, 1), ShapeFactory.createPoint(0, 1).rotatePoint(pt, -2. * Math.PI)); assertEquals( ShapeFactory.createPoint(-1, 0), ShapeFactory.createPoint(-1, 0).rotatePoint(pt, -2. * Math.PI)); assertEquals( ShapeFactory.createPoint(0, -1), ShapeFactory.createPoint(0, -1).rotatePoint(pt, -2. * Math.PI)); assertEquals(ShapeFactory.createPoint(1, 0), ShapeFactory.createPoint(1, 0).rotatePoint(pt, 0)); assertEquals(ShapeFactory.createPoint(0, 1), ShapeFactory.createPoint(0, 1).rotatePoint(pt, 0)); assertEquals( ShapeFactory.createPoint(-1, 0), ShapeFactory.createPoint(-1, 0).rotatePoint(pt, 0)); assertEquals( ShapeFactory.createPoint(0, -1), ShapeFactory.createPoint(0, -1).rotatePoint(pt, 0)); }