def test_room2d_init_from_polygon(): """Test the initialization of Room2D objects from a Polygon2D.""" pts = (Point2D(0, 0), Point2D(10, 0), Point2D(10, 10), Point2D(0, 10)) polygon = Polygon2D(pts) ashrae_base = SimpleWindowRatio(0.4) overhang = Overhang(1) boundarycs = (bcs.outdoors, bcs.ground, bcs.outdoors, bcs.ground) window = (ashrae_base, None, ashrae_base, None) shading = (overhang, None, None, None) room2d = Room2D.from_polygon('SquareShoebox', polygon, 3, 3, boundarycs, window, shading) assert len(room2d.floor_geometry.vertices) == 4 assert len(room2d) == 4 assert room2d.floor_to_ceiling_height == 3 assert isinstance(room2d.boundary_conditions[0], Outdoors) assert isinstance(room2d.boundary_conditions[1], Ground) assert room2d.window_parameters[0] == ashrae_base assert room2d.window_parameters[1] is None assert room2d.shading_parameters[0] == overhang assert room2d.shading_parameters[1] is None assert room2d.floor_height == 3 assert room2d.ceiling_height == 6 assert room2d.volume == 300 assert room2d.floor_area == 100 assert room2d.exterior_wall_area == 60 assert room2d.exterior_aperture_area == 60 * 0.4
def test_room2d_init_from_polygon_clockwise(): """Test the initialization of Room2D objects from a clockwise Polygon2D.""" pts_3d = (Point3D(0, 10, 3), Point3D(10, 10, 3), Point3D(10, 0, 3), Point3D(0, 0, 3)) pts = (Point2D(0, 10), Point2D(10, 10), Point2D(10, 0), Point2D(0, 0)) polygon = Polygon2D(pts) ashrae_base = SimpleWindowRatio(0.4) overhang = Overhang(1) boundarycs = (bcs.outdoors, bcs.outdoors, bcs.ground, bcs.ground) window = (ashrae_base, ashrae_base, None, None) shading = (overhang, None, None, None) room2d = Room2D.from_polygon('SquareShoebox', polygon, 3, 3, boundarycs, window, shading) assert room2d.floor_geometry.boundary == tuple(reversed(pts_3d)) assert room2d.boundary_conditions == tuple(reversed(boundarycs)) assert room2d.window_parameters == tuple(reversed(window)) assert room2d.shading_parameters == tuple(reversed(shading))