@Test
public void testRotate() throws MathArithmeticException, MathIllegalArgumentException {
Vector3D p1 = new Vector3D(1.2, 3.4, -5.8);
Vector3D p2 = new Vector3D(3.4, -5.8, 1.2);
Vector3D p3 = new Vector3D(-2.0, 4.3, 0.7);
Plane p = new Plane(p1, p2, p3, 1.0e-10);
Vector3D oldNormal = p.getNormal();
p = p.rotate(p2, new Rotation(p2.subtract(p1), 1.7));
Assert.assertTrue(p.contains(p1));
Assert.assertTrue(p.contains(p2));
Assert.assertTrue(! p.contains(p3));
p = p.rotate(p2, new Rotation(oldNormal, 0.1));
Assert.assertTrue(! p.contains(p1));
Assert.assertTrue(p.contains(p2));
Assert.assertTrue(! p.contains(p3));
p = p.rotate(p1, new Rotation(oldNormal, 0.1));
Assert.assertTrue(! p.contains(p1));
Assert.assertTrue(! p.contains(p2));
Assert.assertTrue(! p.contains(p3));
}