Nothing
context("aglm-input")
library(aglm)
createX <- function(nobs, nvar_int, nvar_numeric, nvar_ordered, nvar_factor, seed=12345) {
set.seed(seed)
nobs <- nobs
nvar <- nvar_int + nvar_numeric + nvar_ordered + nvar_factor
data <- list()
if (nvar_int > 0) for (i in 1:nvar_int) data[[paste0("Int", i)]] <- sample(1:10, size=nobs, replace=TRUE)
if (nvar_numeric > 0) for (i in 1:nvar_numeric) data[[paste0("Num", i)]] <- rnorm(nobs)
if (nvar_ordered > 0) for (i in 1:nvar_ordered) data[[paste0("Ord", i)]] <- ordered(sample(1:5, size=nobs, replace=TRUE))
if (nvar_factor > 0) for (i in 1:nvar_factor) data[[paste0("Fac", i)]] <- factor(sample(c("A", "B", "C"), nobs, replace=TRUE))
return(data.frame(data))
}
test_that("Check returned values of newInput() for each input type", {
x <- newInput(createX(10, 1, 1, 1, 1))
expect_equal(x@vars_info[[1]]$id, 1)
expect_equal(x@vars_info[[1]]$data_column_idx, 1)
expect_equal(x@vars_info[[1]]$type, "quan")
expect_equal(x@vars_info[[1]]$use_linear, TRUE)
expect_equal(x@vars_info[[1]]$use_UD, FALSE)
expect_equal(x@vars_info[[1]]$use_OD, TRUE)
expect_true(!is.null(x@vars_info[[1]]$OD_info))
expect_true(is.null(x@vars_info[[1]]$UD_info))
expect_equal(x@vars_info[[2]]$id, 2)
expect_equal(x@vars_info[[2]]$data_column_idx, 2)
expect_equal(x@vars_info[[2]]$type, "quan")
expect_equal(x@vars_info[[2]]$use_linear, TRUE)
expect_equal(x@vars_info[[2]]$use_UD, FALSE)
expect_equal(x@vars_info[[2]]$use_OD, TRUE)
expect_true(!is.null(x@vars_info[[2]]$OD_info))
expect_true(is.null(x@vars_info[[2]]$UD_info))
expect_equal(x@vars_info[[3]]$id, 3)
expect_equal(x@vars_info[[3]]$data_column_idx, 3)
expect_equal(x@vars_info[[3]]$type, "qual")
expect_equal(x@vars_info[[3]]$use_linear, FALSE)
expect_equal(x@vars_info[[3]]$use_UD, TRUE)
expect_equal(x@vars_info[[3]]$use_OD, TRUE)
expect_true(!is.null(x@vars_info[[3]]$UD_info))
expect_true(!is.null(x@vars_info[[3]]$OD_info))
expect_equal(x@vars_info[[4]]$id, 4)
expect_equal(x@vars_info[[4]]$data_column_idx, 4)
expect_equal(x@vars_info[[4]]$type, "qual")
expect_equal(x@vars_info[[4]]$use_linear, FALSE)
expect_equal(x@vars_info[[4]]$use_UD, TRUE)
expect_equal(x@vars_info[[4]]$use_OD, FALSE)
expect_true(!is.null(x@vars_info[[4]]$UD_info))
expect_true(is.null(x@vars_info[[4]]$OD_info))
})
test_that("Check add_xxx flags of newInput()", {
x <- newInput(createX(10, 1, 1, 1, 1), add_interaction_columns=FALSE)
expect_equal(length(x@vars_info), 4)
x <- newInput(createX(10, 1, 1, 1, 1), add_linear_columns=FALSE, add_interaction_columns=FALSE)
expect_true(all(sapply(x@vars_info, function(var) {!var$use_linear})))
x <- newInput(createX(10, 1, 1, 1, 1), add_OD_columns_of_qualitatives=FALSE, add_interaction_columns=FALSE)
expect_true(all(sapply(x@vars_info, function(var) {var$type=="quan" | !var$use_OD})))
})
test_that("Check bins_list of newInput()", {
bins_list <- list(c(0, 1, 2))
x <- newInput(createX(10, 0, 5, 0, 0), bins_list=bins_list)
expect_equal(x@vars_info[[1]]$OD_info$breaks, bins_list[[1]])
bins_names <- list(3)
x <- newInput(createX(10, 0, 5, 0, 0), bins_list=bins_list, bins_names=bins_names)
expect_equal(x@vars_info[[3]]$OD_info$breaks, bins_list[[1]])
bins_names <- list("Num5")
x <- newInput(createX(10, 0, 5, 0, 0), bins_list=bins_list, bins_names=bins_names)
#expect_equal(x@vars_info[[5]]$OD_info$breaks, bins_list[[1]])
})
test_that("Check return values of getDesignMatrix()", {
x_int <- newInput(createX(10, 1, 0, 0, 0), add_interaction_columns=FALSE)
mat_int <- getDesignMatrix(x_int)
#print("")
#print(t(x_int@data))
#print(mat_int)
expect_equal(mat_int[,1], x_int@data[,1])
expect_equal(dim(mat_int), c(10, dim(getODummyMatForOneVec(mat_int[,1])$dummy_mat)[2] + 1))
x_num <- newInput(createX(10, 0, 1, 0, 0), add_interaction_columns=FALSE)
mat_num <- getDesignMatrix(x_num)
#print("")
#print(t(x_num@data))
#print(mat_num)
expect_equal(mat_num[,1], x_num@data[,1])
expect_equal(dim(mat_num), c(10, dim(getODummyMatForOneVec(mat_num[,1])$dummy_mat)[2] + 1))
x_ord <- newInput(createX(10, 0, 0, 1, 0), add_interaction_columns=FALSE)
mat_ord <- getDesignMatrix(x_ord)
#print("")
#print(t(x_ord@data))
#print(mat_ord)
expect_equal(dim(mat_ord), c(10,
dim(getODummyMatForOneVec(x_ord@data[,1])$dummy_mat)[2]
+ dim(getUDummyMatForOneVec(x_ord@data[,1], drop_last=FALSE)$dummy_mat)[2]))
x_fac <- newInput(createX(10, 0, 0, 0, 1), add_interaction_columns=FALSE)
mat_fac <- getDesignMatrix(x_fac)
#print("")
#print(t(x_fac@data))
#print(mat_fac)
expect_equal(dim(mat_fac), c(10, dim(getUDummyMatForOneVec(x_fac@data[,1], drop_last=FALSE)$dummy_mat)[2]))
x_all <- newInput(data.frame(x_int@data, x_num@data, x_ord@data, x_fac@data), add_interaction_columns=FALSE)
mat_all <- getDesignMatrix(x_all)
expect_equal(mat_all, cbind(mat_int, mat_num, mat_ord, mat_fac))
## Check interaction columns
x_inter <- newInput(data.frame(x_int@data, x_fac@data), add_interaction_columns=TRUE)
mat_inter <- getDesignMatrix(x_inter)
a <- dim(mat_int)[2] + dim(mat_fac)[2]
b <- dim(x_int@data)[2] + dim(mat_fac)[2]
expect_equal(dim(mat_inter), c(10, a + b * (b - 1) / 2))
})
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.