def test_cylinder_duplicate(): """Test the Cylinder duplicate method.""" c = Cylinder(Point3D(0, 0.5, 2), Vector3D(1, 0.5, 2.5), 0.75) test = c.duplicate() assert test.radius == 0.75 assert c.center.x == pytest.approx(0, rel=1e-3) assert c.center.y == pytest.approx(0.5, rel=1e-3) assert c.center.z == pytest.approx(2, rel=1e-3) assert c.axis.x == pytest.approx(1, rel=1e-3) assert c.axis.y == pytest.approx(0.5, rel=1e-3) assert c.axis.z == pytest.approx(2.5, rel=1e-3)
def test_equality(): """Test the equality of Cylinder objects.""" cylinder = Cylinder(Point3D(2, 0, 2), Vector3D(0, 2, 2), 0.7) cylinder_dup = cylinder.duplicate() cylinder_alt = Cylinder(Point3D(2, 0.1, 2), Vector3D(0, 2, 2), 0.7) assert cylinder is cylinder assert cylinder is not cylinder_dup assert cylinder == cylinder_dup assert hash(cylinder) == hash(cylinder_dup) assert cylinder != cylinder_alt assert hash(cylinder) != hash(cylinder_alt)