Nothing
# GEOMETRY EXTRACTION {{{
test_that("Geometry Extraction", {
skip_on_cran()
example <- copy_example(LATEST_EPLUS_VER)
idf <- read_idf(example$idf)
expect_equal(get_geom_class(idf),
data.table(
category = c("Surface", "SubSurface", "Shading"),
class = c("BuildingSurface:Detailed", "FenestrationSurface:Detailed", "Shading:Zone:Detailed"),
type = c("BuildingSurface", "FenestrationSurface", "Shading"),
subtype = c("Detailed", "Detailed", "Zone"),
misc = c("", "", "Detailed")
)
)
expect_equal(get_geom_class(idf, 80),
data.table(
category = c("Surface"),
class = c("BuildingSurface:Detailed"),
type = c("BuildingSurface"),
subtype = c("Detailed"),
misc = c(""),
id = 80L, name = "WALL-1PF"
)
)
# global geometry rules
expect_equal(get_global_geom_rules(idf),
list(starting_vertex_position = "upperleftcorner",
vertex_entry_direction = "counterclockwise",
coordinate_system = "relative",
daylighting_reference_point_coordinate_system = "relative",
rectangular_surface_coordinate_system = "relative"
)
)
without_checking(idf$GlobalGeometryRules$Coordinate_System <- "Absolute")
expect_equal(get_global_geom_rules(idf)$coordinate_system, "world")
## can handle malformed global geometry rules
without_checking(idf$GlobalGeometryRules$set(..3 = NULL, ..4 = NULL, ..5 = NULL, .default = FALSE, .empty = TRUE))
suppressWarnings(expect_warning(rules <- get_global_geom_rules(idf)))
expect_equal(unlist(rules, FALSE, FALSE)[3:5], rep("relative", 3))
without_checking(idf$GlobalGeometryRules$set(..3 = "Invalid", ..4 = "Invalid", ..5 = "Invalid", .default = FALSE, .empty = TRUE))
suppressWarnings(expect_warning(rules <- get_global_geom_rules(idf)))
expect_equal(unlist(rules, FALSE, FALSE)[3:5], rep("relative", 3))
# building transformation
expect_equal(get_building_transformation(idf),
list(id = 3L, name = "Building", north_axis = 30)
)
## can handle malformed building object
without_checking(idf$Building$North_Axis <- NULL)
expect_warning(expect_equal(get_building_transformation(idf)$north_axis, 0))
# zone transformation
expect_equal(d <- get_zone_transformation(idf),
data.table(
id = 74:79,
name = c("PLENUM-1", "SPACE1-1", "SPACE2-1", "SPACE3-1", "SPACE4-1", "SPACE5-1"),
x = 0, y = 0, z = 0, dir_relative_north = 0
)
)
# spaces
expect_equal(get_spaces(read_idf(example$idf)),
data.table(id = integer(), name = character(), type = character(), zone = character())
)
idf <- read_idf(path_eplus_example(LATEST_EPLUS_VER, "5ZoneAirCooledWithSpaces.idf"))
expect_s3_class(spaces <- get_spaces(idf), "data.table")
expect_equal(names(spaces), c("id", "name", "type", "zone"))
expect_equal(nrow(spaces), 8L)
# detailed surface
idf <- read_idf(example$idf)
expect_type(surf_d <- extract_geom_surface_detailed(idf), "list")
expect_equal(names(surf_d), c("meta", "vertices"))
expect_equal(nrow(surf_d$meta), 40L)
expect_equal(names(surf_d$meta),
c("id", "name", "class", "surface_type", "construction_name",
"space_name", "zone_name", "outside_boundary_condition",
"outside_boundary_condition_object", "sun_exposure", "wind_exposure")
)
expect_equal(names(surf_d$vertices), c("id", "index", "x", "y", "z"))
expect_equal(nrow(surf_d$vertices), 160L)
expect_type(surf_d <- extract_geom_surface_detailed(idf, object = 80L), "list")
expect_equal(nrow(surf_d$meta), 1L)
expect_equal(nrow(surf_d$vertices), 4L)
# detailed subsurface
expect_type(subsurf_d <- extract_geom_subsurface_detailed(idf), "list")
expect_equal(names(subsurf_d), c("meta", "vertices"))
expect_equal(nrow(subsurf_d$meta), 6L)
expect_equal(names(subsurf_d$meta),
c("id", "name", "class", "surface_type", "construction_name",
"building_surface_name", "outside_boundary_condition_object")
)
expect_equal(names(subsurf_d$vertices), c("id", "index", "x", "y", "z"))
expect_equal(nrow(subsurf_d$vertices), 24L)
expect_type(subsurf_d <- extract_geom_subsurface_detailed(idf, object = 120), "list")
expect_equal(nrow(subsurf_d$meta), 1L)
expect_equal(nrow(subsurf_d$vertices), 4L)
# detailed shading
idf <- read_idf(path_eplus_example(LATEST_EPLUS_VER, "HospitalLowEnergy.idf"))
expect_type(shade_d <- extract_geom_shading_detailed(idf), "list")
expect_equal(names(shade_d), c("meta", "vertices"))
expect_equal(nrow(shade_d$meta), 25L)
expect_equal(names(shade_d$meta), c("id", "name", "class", "surface_type", "base_surface_name"))
expect_equal(names(shade_d$vertices), c("id", "index", "x", "y", "z"))
expect_equal(nrow(shade_d$vertices), 100L)
expect_type(shade_d <- extract_geom_shading_detailed(idf, object = "MOB Floor 5 Perimeter 2 Ext Wall:shading_south_1"), "list")
expect_equal(nrow(shade_d$meta), 1L)
expect_equal(nrow(shade_d$vertices), 4L)
# daylighting points
expect_type(dayl_pnts <- extract_geom_daylighting_point(idf), "list")
expect_equal(names(dayl_pnts), c("meta", "vertices"))
expect_equal(nrow(dayl_pnts$meta), 48L)
expect_equal(names(dayl_pnts$meta), c("id", "name", "class", "zone_name"))
expect_equal(names(dayl_pnts$vertices), c("id", "index", "x", "y", "z"))
expect_equal(nrow(dayl_pnts$vertices), 48L)
expect_type(dayl_pnts <- extract_geom_daylighting_point(idf, object = "MOB Floor 5 Perimeter 4_DaylRefPt1"), "list")
expect_equal(nrow(dayl_pnts$meta), 1L)
expect_equal(nrow(dayl_pnts$vertices), 1L)
# simple surfaces
idf <- read_idf(path_eplus_example(LATEST_EPLUS_VER, "4ZoneWithShading_Simple_1.idf"))
expect_type(surf_s <- extract_geom_surface_simple(idf), "list")
expect_equal(names(surf_s), c("meta", "vertices"))
expect_equal(nrow(surf_s$meta), 24L)
expect_equal(names(surf_s$meta),
c("id", "name", "class", "surface_type", "construction_name",
"space_name", "zone_name", "outside_boundary_condition",
"outside_boundary_condition_object", "sun_exposure", "wind_exposure")
)
expect_equal(names(surf_s$vertices), c("id", "index", "x", "y", "z"))
expect_equal(nrow(surf_s$vertices), 96L)
expect_type(surf_s <- extract_geom_surface_simple(idf, object = 86), "list")
expect_equal(nrow(surf_s$meta), 1L)
expect_equal(nrow(surf_s$vertices), 4L)
# simple subsurface
idf <- read_idf(path_eplus_example(LATEST_EPLUS_VER, "4ZoneWithShading_Simple_1.idf"))
idf$add(
Wall_Exterior = list("wall", "EXTERIOR", "ZONE 4", ..5 = 0),
Window = list("win", "SINGLE PANE HW WINDOW", "wall", NULL, 1, 8, 3, 3, 5),
Window = list("win2", "SINGLE PANE HW WINDOW", "Zn004:Wall003", NULL, 1, NULL, 3, 3, 5)
)
expect_type(subsurf_s <- extract_geom_subsurface_simple(idf), "list")
expect_equal(names(subsurf_s), c("meta", "vertices"))
expect_equal(nrow(subsurf_s$meta), 11L)
expect_equal(names(subsurf_s$meta),
c("id", "name", "class", "surface_type", "construction_name",
"building_surface_name", "outside_boundary_condition_object")
)
expect_equal(names(subsurf_s$vertices), c("id", "index", "x", "y", "z"))
expect_equal(nrow(subsurf_s$vertices), 44L)
expect_type(subsurf_s <- extract_geom_subsurface_simple(idf, object = 84), "list")
expect_equal(nrow(subsurf_s$meta), 1L)
expect_equal(nrow(subsurf_s$vertices), 4L)
# simple shading
idf <- read_idf(path_eplus_example(LATEST_EPLUS_VER, "4ZoneWithShading_Simple_1.idf"))
without_checking(idf$add(
Shading_Overhang_Projection = list("overhang1", NULL, 0.7, 90, 0, 0, 0.5),
Shading_Overhang_Projection = list("overhang2", "Zn001:Wall001:Win001", NULL, NULL, 0, 0, NULL),
Shading_Fin_Projection = list("fin1", "win", 0.1, 0.1, 0.1, 90, 3, 0.1, 0.1, 0.1, 90, 3),
Shading_Fin_Projection = list("fin2", "Zn001:Wall001:Win001", NULL, NULL, 0.1, 90, 3, NULL, NULL, 0.1, 90, 3)
))
expect_type(shade_s <- extract_geom_shading_simple(idf), "list")
expect_equal(names(shade_s), c("meta", "vertices"))
expect_equal(nrow(shade_s$meta), 18L)
expect_equal(names(shade_s$meta), c("id", "name", "class", "surface_type", "base_surface_name"))
expect_equal(names(shade_s$vertices), c("id", "index", "x", "y", "z"))
expect_equal(nrow(shade_s$vertices), 72L)
idf <- read_idf(path_eplus_example(LATEST_EPLUS_VER, "4ZoneWithShading_Simple_1.idf"))
expect_warning(expect_type(geom <- extract_geom(idf), "list"))
expect_equal(names(geom), c("rules", "building", "zone", "space", "surface", "subsurface", "shading", "daylighting_point", "vertices"))
})
# }}}
# SIMPLE GEOMETRY CONVERSION {{{
test_that("Simple Geometry Conversion", {
skip_on_cran()
# simple shading
idf <- read_idf(path_eplus_example(LATEST_EPLUS_VER, "4ZoneWithShading_Simple_1.idf"))
cls <- get_geom_class(idf)
expect_type(geom <- convert_geom_surface_simple(idf), "list")
expect_equal(names(geom), c("object", "value", "map"))
expect_equal(nrow(geom$object), 24L)
expect_equal(nrow(geom$value), 552L)
expect_equal(nrow(geom$map), 24L)
expect_type(geom <- convert_geom_subsurface_simple(idf), "list")
expect_equal(names(geom), c("object", "value", "map"))
expect_equal(nrow(geom$object), 9L)
expect_equal(nrow(geom$value), 189L)
expect_equal(nrow(geom$map), 9L)
expect_type(geom <- convert_geom_shading_simple(idf), "list")
expect_equal(names(geom), c("object", "value", "map"))
expect_equal(nrow(geom$object), 12L)
expect_equal(nrow(geom$value), 188L)
expect_equal(nrow(geom$map), 12L)
expect_warning(expect_type(convert_geom(idf), "list"))
expect_true(all(!cls$class %chin% get_geom_class(idf)$class))
})
# }}}
# ALIGN COORDINATE SYSTEM {{{
test_that("Align coordinate system", {
skip_on_cran()
# simple shading
idf <- read_idf(path_eplus_example(LATEST_EPLUS_VER, "4ZoneWithShading_Simple_1.idf"))
cls <- get_geom_class(idf)
expect_warning(expect_type(geoms <- extract_geom(idf), "list"))
expect_type(geoms <- align_coord_system(geoms), "list")
expect_type(geoms <- align_coord_system(geoms, "relative", "relative", "relative"), "list")
expect_equal(unlist(geoms$rules[3:5], FALSE, FALSE), rep("relative", 3L))
expect_type(geoms <- align_coord_system(geoms, "world", "world", "world"), "list")
expect_equal(unlist(geoms$rules[3:5], FALSE, FALSE), rep("world", 3L))
suppressWarnings(expect_warning(geoms <- extract_geom(empty_idf(LATEST_EPLUS_VER))))
expect_type(geoms <- align_coord_system(geoms, "world", "world", "world"), "list")
})
# }}}
# GEOMETRY SUBSET {{{
test_that("subset_geom", {
skip_on_cran()
# simple shading
idf <- read_idf(path_eplus_example(LATEST_EPLUS_VER, "4ZoneWithShading_Simple_1.idf"))
expect_warning(expect_type(geoms <- extract_geom(idf), "list"))
expect_type(l <- subset_geom(geoms, "all"), "list")
expect_equal(nrow(l$surface), 24L)
expect_equal(nrow(l$subsurface), 9L)
expect_equal(nrow(l$shading), 12L)
expect_equal(nrow(l$vertices), 180L)
expect_type(l <- subset_geom(geoms, "floor"), "list")
expect_equal(nrow(l$surface), 4L)
expect_equal(nrow(l$subsurface), 0L)
expect_equal(nrow(l$shading), 0L)
expect_equal(nrow(l$vertices), 16L)
expect_type(l <- subset_geom(geoms, "roof"), "list")
expect_equal(nrow(l$surface), 4L)
expect_equal(nrow(l$subsurface), 0L)
expect_equal(nrow(l$shading), 0L)
expect_equal(nrow(l$vertices), 16L)
expect_type(l <- subset_geom(geoms, "wall"), "list")
expect_equal(nrow(l$surface), 16L)
expect_equal(nrow(l$subsurface), 0L)
expect_equal(nrow(l$shading), 0L)
expect_equal(nrow(l$vertices), 64L)
expect_type(l <- subset_geom(geoms, c("wall", "window")), "list")
expect_equal(nrow(l$surface), 16L)
expect_equal(nrow(l$subsurface), 8L)
expect_equal(nrow(l$shading), 0L)
expect_equal(nrow(l$vertices), 96L)
expect_type(l <- subset_geom(geoms, zone = "zone 1"), "list")
expect_equal(nrow(l$surface), 6L)
expect_equal(nrow(l$subsurface), 2L)
expect_equal(nrow(l$shading), 4L)
expect_equal(nrow(l$vertices), 48L)
path_space <- path_eplus_example(LATEST_EPLUS_VER, "5ZoneAirCooledWithSpaces.idf")
expect_type(l <- subset_geom(extract_geom(read_idf(path_space)), space = "space 3 open office 1"), "list")
expect_equal(nrow(l$zone), 1L)
expect_equal(nrow(l$space), 1L)
expect_equal(nrow(l$surface), 6L)
expect_equal(nrow(l$subsurface), 1L)
expect_equal(nrow(l$shading), 0L)
expect_equal(nrow(l$vertices), 28L)
expect_type(l <- subset_geom(geoms, surface = "Zn001:Wall001"), "list")
expect_equal(nrow(l$surface), 1L)
expect_equal(nrow(l$subsurface), 0L)
expect_equal(nrow(l$shading), 0L)
expect_equal(nrow(l$vertices), 4L)
})
# }}}
# vim: set fdm=marker:
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.