def test_story_set_outdoor_window_shading_parameters(): """Test the Story set_outdoor_window_parameters method.""" pts_1 = (Point3D(0, 0, 3), Point3D(0, 10, 3), Point3D(10, 10, 3), Point3D(10, 0, 3)) pts_2 = (Point3D(10, 0, 3), Point3D(10, 10, 3), Point3D(20, 10, 3), Point3D(20, 0, 3)) pts_3 = (Point3D(0, 10, 3), Point3D(0, 20, 3), Point3D(10, 20, 3), Point3D(10, 10, 3)) pts_4 = (Point3D(10, 10, 3), Point3D(10, 20, 3), Point3D(20, 20, 3), Point3D(20, 10, 3)) room2d_1 = Room2D('Office1', Face3D(pts_1), 3) room2d_2 = Room2D('Office2', Face3D(pts_2), 3) room2d_3 = Room2D('Office3', Face3D(pts_3), 3) room2d_4 = Room2D('Office4', Face3D(pts_4), 3) story = Story('OfficeFloor', [room2d_1, room2d_2, room2d_3, room2d_4]) story.solve_room_2d_adjacency(0.01) ashrae_base = SimpleWindowRatio(0.4) overhang = Overhang(1) story.set_outdoor_window_parameters(ashrae_base) story.set_outdoor_shading_parameters(overhang) assert story.room_2ds[0].window_parameters[1] is None assert story.room_2ds[0].window_parameters[2] == ashrae_base assert story.room_2ds[0].shading_parameters[1] is None assert story.room_2ds[0].shading_parameters[2] == overhang assert story.exterior_wall_area == 60 * 4 assert story.exterior_aperture_area == 60 * 4 * 0.4
def test_to_dict(): """Test the Building to_dict method.""" pts_1 = (Point3D(0, 0, 2), Point3D(10, 0, 2), Point3D(10, 10, 2), Point3D(0, 10, 2)) pts_2 = (Point3D(10, 0, 3), Point3D(20, 0, 3), Point3D(20, 10, 3), Point3D(10, 10, 3)) room2d_1 = Room2D('Office1', Face3D(pts_1), 5) room2d_2 = Room2D('Office2', Face3D(pts_2), 3) story = Story('Office_Floor', [room2d_1, room2d_2]) story.solve_room_2d_adjacency(0.01) story.set_outdoor_window_parameters(SimpleWindowRatio(0.4)) story.set_outdoor_shading_parameters(Overhang(1)) story.multiplier = 4 building = Building('Office_Building', [story]) building.separate_top_bottom_floors() bd = building.to_dict() assert bd['type'] == 'Building' assert bd['identifier'] == 'Office_Building' assert bd['display_name'] == 'Office_Building' assert 'unique_stories' in bd assert len(bd['unique_stories']) == 3 assert 'properties' in bd assert bd['properties']['type'] == 'BuildingProperties'
def test_to_from_dict(): """Test the to/from dict of Story objects.""" pts_1 = (Point3D(0, 0, 2), Point3D(10, 0, 2), Point3D(10, 10, 2), Point3D(0, 10, 2)) pts_2 = (Point3D(10, 0, 3), Point3D(20, 0, 3), Point3D(20, 10, 3), Point3D(10, 10, 3)) room2d_1 = Room2D('Office1', Face3D(pts_1), 5) room2d_2 = Room2D('Office2', Face3D(pts_2), 3) story = Story('OfficeFloor', [room2d_1, room2d_2]) story.solve_room_2d_adjacency(0.01) story.set_outdoor_window_parameters(SimpleWindowRatio(0.4)) story.set_outdoor_shading_parameters(Overhang(1)) story_dict = story.to_dict() new_story = Story.from_dict(story_dict) assert isinstance(new_story, Story) assert new_story.to_dict() == story_dict
def test_building_window_shading_parameters(): """Test the Building set_outdoor_window_parameters method.""" pts_1 = (Point3D(0, 0, 3), Point3D(0, 10, 3), Point3D(10, 10, 3), Point3D(10, 0, 3)) pts_2 = (Point3D(10, 0, 3), Point3D(10, 10, 3), Point3D(20, 10, 3), Point3D(20, 0, 3)) pts_3 = (Point3D(0, 10, 3), Point3D(0, 20, 3), Point3D(10, 20, 3), Point3D(10, 10, 3)) pts_4 = (Point3D(10, 10, 3), Point3D(10, 20, 3), Point3D(20, 20, 3), Point3D(20, 10, 3)) room2d_1 = Room2D('Office1', Face3D(pts_1), 3) room2d_2 = Room2D('Office2', Face3D(pts_2), 3) room2d_3 = Room2D('Office3', Face3D(pts_3), 3) room2d_4 = Room2D('Office4', Face3D(pts_4), 3) story = Story('Office_Floor', [room2d_1, room2d_2, room2d_3, room2d_4]) story.solve_room_2d_adjacency(0.01) story.multiplier = 4 building = Building('Office_Building', [story]) assert building.exterior_aperture_area == 0 assert building.unique_room_2ds[0].window_parameters[2] is None ashrae_base = SimpleWindowRatio(0.4) story.set_outdoor_window_parameters(ashrae_base) assert building.exterior_aperture_area == 60 * 4 * 4 * 0.4 assert building.unique_room_2ds[0].window_parameters[2] == ashrae_base assert building.unique_room_2ds[0].shading_parameters[2] is None overhang = Overhang(1) story.set_outdoor_shading_parameters(overhang) assert building.unique_room_2ds[0].shading_parameters[2] == overhang assert len(building.unique_stories) == 1 assert len(building.all_stories()) == 4 assert len(building.unique_room_2ds) == 4 building.separate_top_bottom_floors() assert len(building.unique_stories) == 3 assert len(set(story.identifier for story in building.unique_stories)) == 3 assert len(building.all_stories()) == 4 assert len(building.unique_room_2ds) == 12
def test_to_dict(): """Test the Story to_dict method.""" pts_1 = (Point3D(0, 0, 2), Point3D(10, 0, 2), Point3D(10, 10, 2), Point3D(0, 10, 2)) pts_2 = (Point3D(10, 0, 3), Point3D(20, 0, 3), Point3D(20, 10, 3), Point3D(10, 10, 3)) room2d_1 = Room2D('Office1', Face3D(pts_1), 5) room2d_2 = Room2D('Office2', Face3D(pts_2), 3) story = Story('OfficeFloor', [room2d_1, room2d_2]) story.solve_room_2d_adjacency(0.01) story.set_outdoor_window_parameters(SimpleWindowRatio(0.4)) story.set_outdoor_shading_parameters(Overhang(1)) sd = story.to_dict() assert sd['type'] == 'Story' assert sd['identifier'] == 'OfficeFloor' assert sd['display_name'] == 'OfficeFloor' assert 'room_2ds' in sd assert len(sd['room_2ds']) == 2 assert sd['floor_to_floor_height'] == 5 assert sd['multiplier'] == 1 assert 'properties' in sd assert sd['properties']['type'] == 'StoryProperties'
def test_to_from_dict(): """Test the to/from dict of Building objects.""" pts_1 = (Point3D(0, 0, 2), Point3D(10, 0, 2), Point3D(10, 10, 2), Point3D(0, 10, 2)) pts_2 = (Point3D(10, 0, 3), Point3D(20, 0, 3), Point3D(20, 10, 3), Point3D(10, 10, 3)) room2d_1 = Room2D('Office1', Face3D(pts_1), 5) room2d_2 = Room2D('Office2', Face3D(pts_2), 3) story = Story('Office_Floor', [room2d_1, room2d_2]) story.solve_room_2d_adjacency(0.01) story.set_outdoor_window_parameters(SimpleWindowRatio(0.4)) story.set_outdoor_shading_parameters(Overhang(1)) story.multiplier = 4 building = Building('Office_Building', [story]) building.separate_top_bottom_floors() building_dict = building.to_dict() new_building = Building.from_dict(building_dict) assert isinstance(new_building, Building) assert new_building.to_dict() == building_dict