예제 #1
0
def test_condition_list():
    xy = DotProduct(x, y)
    Ay = DotProduct(A, y)

    assert str(xy + Ay) == 'dot(x, y) + dot(A, y)'

    assert str(2 * (xy + Ay)) == '2 * dot(x, y) + 2 * dot(A, y)'
    assert str((xy + Ay) * 2) == '2 * dot(x, y) + 2 * dot(A, y)'
    assert str(2 * (xy + Ay) * 2) == '4 * dot(x, y) + 4 * dot(A, y)'

    assert str(2 * (xy + Ay) / 2) == 'dot(x, y) + dot(A, y)'
    assert str(2 * (xy + Ay) / 0.5) == '4 * dot(x, y) + 4 * dot(A, y)'

    assert str(xy + Ay + xy) == 'dot(x, y) + dot(A, y) + dot(x, y)'
    assert str((xy + Ay) + xy) == 'dot(x, y) + dot(A, y) + dot(x, y)'
    assert str(2 * (xy + Ay) +
               xy) == '2 * dot(x, y) + 2 * dot(A, y) + dot(x, y)'
    assert str(xy + (Ay + xy)) == 'dot(x, y) + dot(A, y) + dot(x, y)'

    assert str(xy + (Ay - xy)) == 'dot(x, y) + dot(A, y) + -dot(x, y)'
    assert str((xy + Ay) - xy) == 'dot(x, y) + dot(A, y) + -dot(x, y)'
    assert str(xy - (Ay + xy)) == 'dot(x, y) + -dot(A, y) + -dot(x, y)'

    assert str((xy + Ay) - 1) == 'dot(x, y) + dot(A, y) + -1'
    assert str((xy + Ay) + 1) == 'dot(x, y) + dot(A, y) + 1'
    assert str(1 - (xy + Ay)) == '-dot(x, y) + -dot(A, y) + 1'
    assert str(1 + (xy + Ay)) == 'dot(x, y) + dot(A, y) + 1'

    assert str((xy + Ay) + A) == 'dot(x, y) + dot(A, y) + A'
예제 #2
0
def test_dotproduct():
    assert str(DotProduct(x, y)) == 'dot(x, y)'
    assert str(DotProduct(x, A)) == 'dot(x, A)'
    assert str(DotProduct(B, y)) == 'dot(B, y)'

    with pytest.raises(TypeError):
        DotProduct(B, A)
    with pytest.raises(TypeError):
        DotProduct(A, "B")
    with pytest.raises(TypeError):
        DotProduct(1, A)

    assert str(0.5 * DotProduct(x, y)) == '0.5 * dot(x, y)'
    assert str(0.5 * (0.5 * DotProduct(x, y))) == '0.25 * dot(x, y)'
    assert str(DotProduct(B, y) * 2) == '2 * dot(B, y)'

    with pytest.raises(TypeError):
        A * DotProduct(x, y)
    with pytest.raises(TypeError):
        DotProduct(x, y) * B

    assert str(DotProduct(x, y) / 2) == '0.5 * dot(x, y)'
    assert str((DotProduct(x, y) / 2) / 2) == '0.25 * dot(x, y)'
    assert str(2 * DotProduct(B, y) / 2) == 'dot(B, y)'

    with pytest.raises(TypeError):
        DotProduct(x, y) / B

    assert str(DotProduct(x, y) + 1) == 'dot(x, y) + 1'
    assert str(1 + DotProduct(x, y)) == 'dot(x, y) + 1'
    assert str(DotProduct(x, y) + DotProduct(B, y)) == 'dot(x, y) + dot(B, y)'
    assert str(DotProduct(x, y) + A) == 'dot(x, y) + A'
    assert str(B + DotProduct(x, y)) == 'dot(x, y) + B'

    assert str(-DotProduct(x, y)) == '-dot(x, y)'
    assert str(-(-DotProduct(x, y))) == 'dot(x, y)'

    assert str(DotProduct(x, y) - 1) == 'dot(x, y) + -1'
    assert str(1 - DotProduct(x, y)) == '-dot(x, y) + 1'
    assert str(DotProduct(x, y) - DotProduct(B, y)) == 'dot(x, y) + -dot(B, y)'
    assert str(DotProduct(x, y) - A) == 'dot(x, y) + -A'
    assert str(B - DotProduct(x, y)) == '-dot(x, y) + B'
예제 #3
0
def test_dotproduct():
    assert str(DotProduct(x, y)) == "dot(x, y)"
    assert str(DotProduct(x, A)) == "dot(x, A)"
    assert str(DotProduct(B, y)) == "dot(B, y)"

    with pytest.raises(SpaParseError):
        DotProduct(B, A)
    with pytest.raises(SpaParseError):
        DotProduct(A, "B")
    with pytest.raises(SpaParseError):
        DotProduct(1, A)

    assert str(0.5 * DotProduct(x, y)) == "0.5 * dot(x, y)"
    assert str(0.5 * (0.5 * DotProduct(x, y))) == "0.25 * dot(x, y)"
    assert str(DotProduct(B, y) * 2) == "2 * dot(B, y)"

    with pytest.raises(TypeError):
        A * DotProduct(x, y)
    with pytest.raises(TypeError):
        DotProduct(x, y) * B

    assert str(DotProduct(x, y) / 2) == "0.5 * dot(x, y)"
    assert str((DotProduct(x, y) / 2) / 2) == "0.25 * dot(x, y)"
    assert str(2 * DotProduct(B, y) / 2) == "dot(B, y)"

    with pytest.raises(TypeError):
        DotProduct(x, y) / B

    assert str(DotProduct(x, y) + 1) == "dot(x, y) + 1"
    assert str(1 + DotProduct(x, y)) == "dot(x, y) + 1"
    assert str(DotProduct(x, y) + DotProduct(B, y)) == "dot(x, y) + dot(B, y)"
    assert str(DotProduct(x, y) + A) == "dot(x, y) + A"
    assert str(B + DotProduct(x, y)) == "dot(x, y) + B"

    assert str(-DotProduct(x, y)) == "-dot(x, y)"
    assert str(-(-DotProduct(x, y))) == "dot(x, y)"

    assert str(DotProduct(x, y) - 1) == "dot(x, y) + -1"
    assert str(1 - DotProduct(x, y)) == "-dot(x, y) + 1"
    assert str(DotProduct(x, y) - DotProduct(B, y)) == "dot(x, y) + -dot(B, y)"
    assert str(DotProduct(x, y) - A) == "dot(x, y) + -A"
    assert str(B - DotProduct(x, y)) == "-dot(x, y) + B"