Beispiel #1
0
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'))
Beispiel #2
0
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'")