def test_angle_about():
extrusion = Vector(0, 0, 1)
a = Vector(1, 0, 0)
b = Vector(1, 1, 0)
assert math.isclose(a.angle_between(b), math.pi / 4)
assert math.isclose(extrusion.angle_about(a, b), math.pi / 4)
extrusion = Vector(0, 0, -1)
assert math.isclose(a.angle_between(b), math.pi / 4)
assert math.isclose(extrusion.angle_about(a, b), (-math.pi / 4) % math.tau)
extrusion = Vector(0, 0, 1)
a = Vector(1, 1, 0)
b = Vector(1, 1, 0)
assert math.isclose(a.angle_between(b), 0, abs_tol=1e-5)
assert math.isclose(extrusion.angle_about(a, b), 0)
extrusion = Vector(0, 1, 0)
a = Vector(1, 1, 0)
b = Vector(0, 1, -1)
assert math.isclose(a.angle_between(b), math.pi / 3, abs_tol=1e-5)
c = a.cross(b)
assert math.isclose(a.angle_between(b), c.angle_about(a, b))
assert math.isclose(extrusion.angle_about(a, b), math.pi / 2)