tests/testthat/test-geom.R

# IdfGeometry {{{
test_that("IdfGeometry", {
    skip_on_cran()

    # simple shading
    idf <- read_idf(path_eplus_example(LATEST_EPLUS_VER, "4ZoneWithShading_Simple_1.idf"))
    expect_warning(geom <- idf_geometry(idf$path()), "Relative")
    expect_warning(geom <- idf_geometry(idf), "Relative")
    suppressWarnings(expect_warning(idf_geometry(empty_idf(LATEST_EPLUS_VER))))

    idf$GlobalGeometryRules$Coordinate_System <- "Relative"

    expect_s3_class(geom$parent(), "Idf")
    expect_warning(expect_type(geom$rules(), "list"))
    expect_s3_class(geom$coord_system(), "IdfGeometry")
    expect_s3_class(geom$coord_system("world", "world", "world"), "IdfGeometry")
    expect_s3_class(geom$coord_system("absolute", "absolute", "absolute"), "IdfGeometry")
    expect_equal(unlist(geom$rules()[3:5], use.names = FALSE), rep("world", 3L))
    expect_equal(unlist(idf$GlobalGeometryRules$value(3:5), use.names = FALSE), rep("World", 3L))

    expect_s3_class(conv <- geom$convert(), "Idf")
    expect_s3_class(attr(conv, "mapping"), "data.table")

    expect_s3_class(geom$round_digits(4L), "Idf")

    expect_s3_class(geom$area(), "data.table")
    expect_s3_class(geom$area(class = "Shading:Zone:Detailed"), "data.table")
    expect_s3_class(geom$area(net = TRUE), "data.table")
    expect_s3_class({
        area <- read_idf(path_eplus_example(LATEST_EPLUS_VER, "5ZoneAirCooledWithSpaces.idf"))$geometry()$area()
    }, "data.table")
    expect_equal(length(!is.na(area$space)), 63L)

    expect_s3_class(geom$azimuth(), "data.table")
    expect_s3_class(geom$azimuth(class = "Shading:Zone:Detailed"), "data.table")

    expect_s3_class(geom$tilt(), "data.table")
    expect_s3_class(geom$tilt(class = "Shading:Zone:Detailed"), "data.table")

    skip_on_os("mac")
    expect_s3_class(v1 <- geom$view(render_by = "construction"), "IdfViewer")
    expect_s3_class(v2 <- geom$view(axis = FALSE), "IdfViewer")
    v1$close()
    v2$close()

    expect_output(geom$print())
})
# }}}

# vim: set fdm=marker:
hongyuanjia/eplusr documentation built on Feb. 14, 2024, 5:38 a.m.