def test_rotation3D(): """Check 3D rotating.""" pointO = Point(0, 0, 0, 'O') pointA = Point(1, 0, 0, 'A') with pytest.raises(TypeError) as excinfo: pointA.rotate(pointO, Number(30), pointO) assert str(excinfo.value) == 'Expected either None or a Vector as '\ 'axis, found Point O(0, 0, 0) instead.' pointZ = Point(0, 0, 1, 'Z') vz = Vector(pointO, pointZ) assert pointA.rotate(pointO, Number(30), vz).coordinates \ == (Number('0.866'), Number('0.5'), Number('0')) pointY = Point(0, 1, 0, 'Y') vy = Vector(pointO, pointY) assert pointA.rotate(pointO, Number(30), vy).coordinates \ == (Number('0.866'), Number('0'), Number('-0.5'))
def test_rotation(): """Check rotating.""" pointO = Point(0, 0, 'O') pointA = Point(1, 0, 'A') with pytest.raises(TypeError) as excinfo: pointA.rotate('O', Number(30)) assert str(excinfo.value) == 'Expected a Point as rotation center, '\ 'got <class \'str\'> instead.' with pytest.raises(TypeError) as excinfo: pointA.rotate(pointO, 'a') assert str(excinfo.value) == 'Expected a number as rotation angle, '\ 'got <class \'str\'> instead.' assert pointO.rotate(pointA, Number(90)) == Point(1, -1, "O'") assert pointA.rotate(pointO, Number(90)) == Point(0, 1, "A'") assert pointA.rotate(pointO, Number(90), rename='keep_name') \ == Point(0, 1, 'A') assert pointA.rotate(pointO, Number(90), rename='B') == Point(0, 1, 'B') assert pointA.rotate(pointO, Number(30)) == Point(Number('0.866'), Number('0.5'), "A'")