Nothing
context("Test if attribute functions work as expected")
#-----------------------
# Test attr_xls function
test_that("attr_xls correctly takes attributes from excel file", {
res <- attr_xls(system.file("example/Attr.Template.xlsx",package = "amp.dm"))
expect_equal(res$ID$label,"Unique subject identifier")
expect_null(res$ID$remark)
expect_equal(res$AMT$remark,"Original dose units set to mg")
expect_equal(res$TIME$label,"Time (h)")
expect_named(res$CMT$format)
expect_equal(res$CMT$format[1],c("1"="Dosing compartment"))
expect_equal(res$CMT$format[2],c("2"="Central compartment"))
expect_equal(res$MDV$format[1],c("0"="Other"))
res2 <- attr_xls(system.file("example/Attr.Template.xlsx", package = "amp.dm"),sepfor=",")
expect_length(res2$CMT$format,1)
})
#-----------------------
# Test attr_extract function
test_that("attr_extract correctly extracts attributes from data frame", {
attrl <- attr_xls(system.file("example/Attr.Template.xlsx",package = "amp.dm"))
nm <- read.csv(system.file("example/NM.theoph.V1.csv",package = "amp.dm"))
nmf <- attr_add(nm, attrl, verbose = FALSE)
attrl2 <- attr_extract(nmf)
expect_equal(attrl,attrl2)
expect_error(attr_extract(c("1"=1)),"Could not create")
})
#-----------------------
# Test attr_add function
test_that("attr_add correctly assigns attributes and does proper checking", {
xmpl <- system.file("example/Attr.Template.xlsx",package = "amp.dm")
attrl <- attr_xls(xmpl)
data <- read.csv(system.file("example/NM.theoph.V1.csv",package = "amp.dm"), na.strings = ".")
attrl2 <- attrl[5:19]
data2 <- data[,!names(data)%in%c("ID","WEIGHT")]
inatt <- attrl2[names(attrl2)%in%names(data2)]
expect_message(attr_add(data2,attrl),"ID.*WEIGHT")
expect_message(attr_add(data,attrl2),"ID.*TRT")
data3 <- data
names(data3)[1] <- "ThisNameIsTooLong"
expect_message(attr_add(data3,attrl),"> 8 characters")
expect_message(attr_add(data,attrl),"> 24 characters")
attrl3 <- attrl
attrl3$CMT$format <- c("1"="Dosing compartment")
attrl3$CNTRY$format <- c(attrl3$CNTRY$format,"99"="Missing")
expect_message(attr_add(data,attrl3),"more categories.*CMT")
expect_message(attr_add(data,attrl3),"less categories.*CNTRY")
res <- attr_add(data,attrl, verbose = FALSE)
expect_equal(attr(res$ID,'label'),"Unique subject identifier")
expect_equal(attr(res$TIME,'label'),"Time (h)")
expect_equal(attr(res$AMT,'remark'),"Original dose units set to mg")
expect_equal(attr(res$CMT,'format')[1],c("1"="Dosing compartment"))
expect_equal(attr(res$CMT,'format')[2],c("2"="Central compartment"))
expect_null(attr(res$TIME,'remark'))
expect_null(attr(res$ID,'format'))
})
#-----------------------
# Test attr_factor function
test_that("attr_factor correctly sets formats and leave othe attributes in tact", {
xmpl <- system.file("example/Attr.Template.xlsx",package = "amp.dm")
attrl <- attr_xls(xmpl)
data <- read.csv(system.file("example/NM.theoph.V1.csv",package = "amp.dm"), na.strings = ".")
data2 <- attr_add(data,attrl, verbose = FALSE)
data3 <- attr_factor(data2)
expect_equal(dim(data2),dim(data3))
expect_equal(names(data2),names(data3))
expect_equal(attr(data3$TIME,'label'),"Time (h)")
expect_null(attr(data3$TIME,'remark'))
expect_equal(attr(data3$AMT,'remark'),"Original dose units set to mg")
expect_s3_class(data3$TRT, "factor")
expect_equal(sort(levels(data3$SEX)), c("Female","Male"))
attrl2 <- attrl
attrl2$charvar <- list(format=c("a"="AA", "b"="BB"))
data4 <- data
data4$charvar <- sample(letters[1:2], nrow(data4), replace = TRUE)
data4 <- attr_add(data4,attrl2, verbose = FALSE)
data4 <- attr_factor(data4)
expect_s3_class(data4$charvar, "factor")
expect_equal(sort(levels(data4$charvar)), c("AA","BB"))
attrl3 <- attrl
attrl3$CMT$format <- c("1"="Dosing compartment")
attrl3$CNTRY$format <- c(attrl3$CNTRY$format,"99"="Missing")
data5 <- attr_add(data,attrl3, verbose = FALSE)
expect_message(attr_factor(data5),"More categories.*CMT")
expect_message(attr_factor(data5),"More formats.*CNTRY")
data6 <- data.frame(CAT=c(rep(0,1),rep(1,3),rep(2,8)), CATC = c(rep("A",1),rep("B",8),rep("C",3)),
RESULT=rnorm(12) )
attr(data6$CAT,'format') <- c('1' = 'CAT2', '0' = 'CAT1', '2'='CAT3')
attr(data6$CATC,'format') <- c('A' = 'CATA', 'B' = 'CATB', 'C'='CATC')
data7 <- attr_factor(data6)
expect_equal(levels(data7$CAT),unname(attr(data6$CAT,'format')))
data8 <- attr_factor(data6, largestfirst = TRUE)
expect_equal(levels(data8$CAT)[1], "CAT3")
expect_equal(levels(data8$CATC)[1], "CATB")
data9 <- attr_factor(data6, largestfirst = "CATC")
expect_equal(levels(data9$CAT),unname(attr(data6$CAT,'format')))
expect_equal(levels(data9$CATC)[1], "CATB")
})
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.