def test_add_remove_door(): """Test the adding and removing of an door to a Face.""" face_face3d = Face3D.from_rectangle(10, 10, Plane(o=Point3D(0, 0, 3))) ap_face3d = Face3D.from_rectangle(2, 2, Plane(o=Point3D(2, 2, 3))) face = Face('Test_Roof', face_face3d) door = Door('Test_Trap_Door', ap_face3d) face.add_door(door) assert len(face.doors) == 1 assert len(face.doors[0].geometry.vertices) == 4 assert face.doors[0].area == pytest.approx(4, rel=1e-2) assert face.doors[0].parent is face assert len(face.punched_vertices) == 10 assert face.punched_geometry.area == 96 assert face.check_doors_valid(0.01, 1) face.remove_doors() assert len(face.doors) == 0 assert len(face.punched_vertices) == 4 assert face.punched_geometry.area == 100
def test_add_remove_doors(): """Test the adding and removing of multiple doors to a Face.""" face_face3d = Face3D.from_rectangle(10, 10, Plane(o=Point3D(0, 0, 3))) ap_face3d_1 = Face3D.from_rectangle(2, 2, Plane(o=Point3D(2, 2, 3))) ap_face3d_2 = Face3D.from_rectangle(2, 2, Plane(o=Point3D(7, 7, 3))) face = Face('Test_Roof', face_face3d) door_1 = Door('Test_Trap_Door_1', ap_face3d_1) door_2 = Door('Test_Trap_Door_2', ap_face3d_2) face.add_doors([door_1, door_2]) assert len(face.doors) == 2 assert face.doors[0].parent is face assert face.doors[1].parent is face assert len(face.punched_vertices) == 16 assert face.punched_geometry.area == 92 assert face.check_doors_valid(0.01, 1) face.remove_doors() assert len(face.doors) == 0 assert len(face.punched_vertices) == 4 assert face.punched_geometry.area == 100