def test_reflecting_a_vector_off_a_slanted_surface():
    # Given
    v = Vector(0, -1, 0)
    n = Vector(sqrt(2) / 2, sqrt(2) / 2, 0)
    # When
    r = v.reflect(n)
    # Then
    assert r == Vector(1, 0, 0)
def test_reflecting_a_vector_approaching_at_45_degree():
    # Given
    v = Vector(1, -1, 0)
    n = Vector(0, 1, 0)
    # When
    r = v.reflect(n)
    # Then
    assert r == Vector(1, 1, 0)