tests/testthat/test_utils.R

context("Test utils: searchXpdfFolder")

test_that("searchXpdfFolder", {
    xpdfdir <- paste0(Sys.getenv("xpdfdir"), "bin", getOption("mach.arch"))
    
    expect_equal(dirname(searchXpdfFolder()), dirname(xpdfdir))
    expect_equal(basename(searchXpdfFolder()), basename(xpdfdir))
})


context("Test utils: enum")

test_that("enum with default arguments", {
    obj <- structure(c(msoChart=3), family="MsoShapeType")
    objs <- structure(c(msoChart=3, msoTable=19), family=rep("MsoShapeType", 2))
    
    expect_equal(enum(msoChart), obj)
    expect_equal(enum("msoChart"), obj)
    expect_equal(enum(msoChart, msoTable), objs)
    expect_equal(enum("msoChart", "msoTable"), objs)
    expect_equal(enum(c(msoChart, msoTable)), objs)
    expect_equal(enum(list("msoChart", "msoTable")), objs)
})

test_that("enum with unlist=FALSE | bare=TRUE", {
    objs <- list(msoChart=structure(3, family="MsoShapeType"), 
                 msoTable=structure(19, family="MsoShapeType"))
    
    expect_equal(enum(msoChart, msoTable, unlist=FALSE), objs)
    expect_equal(enum(msoChart, msoTable, bare=TRUE), c(3, 19))
    expect_equal(enum(msoChart, msoTable, unlist=FALSE, bare=TRUE), list(3, 19))
})

test_that("enum with family defined | out-of-range ...", {
    ENUM_unlist <- unlist(unname(ENUM))
    expect_equal(enum(msoChart, family="PpBorderType"), NA)
    expect_equal(enum(msoChart, msoTable, family="wdColor"), NA)
    
    # return all enum
    expect_equal(names(enum(NULL)), names(ENUM_unlist))
    expect_equivalent(enum(NULL), ENUM_unlist)
    expect_equivalent(enum(NA), ENUM_unlist)
    expect_equivalent(enum(NaN), ENUM_unlist)
    
    # out of range
    expect_equal(enum(InvalidKey), NA)
    expect_equal(enum(""), NA)
    expect_equal(enum(112233), NA)
})


context("Test utils: is._ helpers")

test_that("is.DateChar", {
    expect_true(is.DateChar("2000-1-1"))
    expect_false(is.DateChar("a"))

    expect_warning(is.DateChar(c("2000-1-1", "a")), "Only the 1st element")
    expect_equivalent(Vectorize(is.DateChar)(c("a", "2000-1-1")), c(FALSE, TRUE))
    
    expect_equal(is.DateChar(NA), NA)
    expect_false(is.DateChar(NULL))
})

test_that("is.TimeChar", {
    expect_true(is.TimeChar("2000-1-1 13:00"))
    expect_false(is.TimeChar("9AM"))
    
    expect_warning(is.TimeChar(c("2000-1-1 15:00", "9AM")), "Only the 1st element")
    expect_equivalent(Vectorize(is.TimeChar)(c("2000-1-1 15:00", "a")), c(TRUE, FALSE))
    
    expect_equal(is.TimeChar(NA), NA)
    expect_false(is.TimeChar(NULL))
})

test_that("isLatin", {
    expect_equal(isLatin(c("english", "chinese")), rep(TRUE, 2))
    expect_equal(isLatin(c(4, 6)), rep(TRUE, 2))
    expect_equal(isLatin(c("\u{4e2d}", "\u{6587}")), rep(FALSE, 2))
})
madlogos/aseshms documentation built on May 21, 2019, 11:03 a.m.