def test_cross_product_anti_commutative(): vec1 = Vector([1, 2, 3]) vec2 = Vector([4, 5, 6]) vec3 = vec2.crossProduct(vec1) assert vec3 == Vector([3, -6, 3]) assert vec1.dotProduct(vec3) == 0 assert vec2.dotProduct(vec3) == 0
def test_cross_product(): vec1 = Vector([1, 2, 3]) vec2 = Vector([4, 5, 6]) vec3 = vec1.crossProduct(vec2) assert vec3 == Vector([-3, 6, -3]) assert vec1.dotProduct(vec3) == 0 assert vec2.dotProduct(vec3) == 0
def test_cross_product_dimension_check_w(): with pytest.raises(ValueError, message="Cross product can only work for 3D vectors"): vec1 = Vector([1, 2, 3]) vec2 = Vector([1, 2, 3, 4]) vec3 = vec1.crossProduct(vec2)
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)) v5w5 = v5.crossProduct(w5) answers.append(round(v5w5.magnitude(), 3)) v6w6 = v6.crossProduct(w6) answers.append(round(v6w6.magnitude() / 2, 3)) for i in answers: print(i)