def test_angle_degrees(): vec1 = Vector([0, 1]) vec2 = Vector([1, 1]) angle = vec1.angle(vec2, in_degrees=True) assert angle == pytest.approx(45, abs=1e-3)
def test_angle_radians(): vec1 = Vector([0, 1]) vec2 = Vector([1, 1]) angle = vec1.angle(vec2) assert angle == pytest.approx(0.7854, abs=1e-3)
def test_angle_div_zero(): with pytest.raises(Exception, message="Cannot compute an angle with the zero vector"): vec1 = Vector([0, 0]) vec2 = Vector([1, 1]) angle = vec1.angle(vec2)
def test_angle(): vec1 = Vector([1, 1]) vec2 = Vector([1, 1]) angle = vec1.angle(vec2) assert angle == pytest.approx(0, abs=1e-3)
v5 = Vector([-8.987, -9.838, 5.031]) w5 = Vector([-4.268, -1.861, -8.866]) v6 = Vector([1.5, 9.547, 3.691]) w6 = Vector([-6.007, 0.124, 5.772]) answers = [] answers.append(round(x1 + y1, 3)) answers.append(round(x2 - y2, 3)) answers.append(round(x3.scalarMultiple(y3), 3)) answers.append(round(x4.magnitude(), 3)) answers.append(round(x5.magnitude(), 3)) answers.append(round(x6.normalise(), 3)) answers.append(round(x7.normalise(), 3)) answers.append(round(x8.dotProduct(y8), 3)) answers.append(round(x9.dotProduct(y9), 3)) answers.append(round(x10.angle(y10), 3)) answers.append(round((x11.angle(y11, in_degrees=True)), 3)) answers.append("Q1 Is parallel " + str(x12.isParallel(y12)) + " : Is orthogonal " + str(x12.isOrthogonal(y12))) answers.append("Q2 Is parallel " + str(x13.isParallel(y13)) + " : Is orthogonal " + str(x13.isOrthogonal(y13))) answers.append("Q3 Is parallel " + str(x14.isParallel(y14)) + " : Is orthogonal " + str(x14.isOrthogonal(y14))) answers.append("Q4 Is parallel " + str(x15.isParallel(y15)) + " : Is orthogonal " + str(x15.isOrthogonal(y15))) answers.append(round(v1.vProjected(b1), 3)) answers.append(round(v2.vOrthogonal(b2), 3)) answers.append( str(round(v3.vProjected(b3), 3)) + " " + str(round(v3.vOrthogonal(b3), 3))) answers.append(round(v4.crossProduct(w4), 3))