Switch to side-by-side view

--- a
+++ b/tests/testthat/test-utils.R
@@ -0,0 +1,66 @@
+context("utils")
+
+# # from timeOmics
+# check_matrix <- function(X){
+#     # add rownames and colnames if absent, cast into matrix
+#     if(!(is.matrix(X) || is.data.frame(X))) return(FALSE)
+#     
+#     if(is.data.frame(X)){
+#         X <- as.matrix(X)
+#     }
+#     if(is.null(rownames(X))){
+#         rownames(X) <- 1:nrow(X)
+#     }
+#     if(is.null(colnames(X))){
+#         colnames(X) <- paste0("V", 1:ncol(X))
+#     }
+#     return(X)
+# }
+
+test_that("check_matrix", {
+    expect_false(check_matrix(c(1,2,3)))
+    X = data.frame("a" = c(1,2,3), 'b'= c(2,3,4))
+    expect_is(check_matrix(X), 'matrix')
+    X = matrix(c(1,2,3,2,3,4), nrow = 2)
+    expect_is(check_matrix(X), 'matrix')
+    rownames(X) <-  NULL
+    expect_is(check_matrix(X), 'matrix')
+    colnames(X) <-  NULL
+   expect_is(check_matrix(X), 'matrix')
+})
+    
+# validate_matrix_X <- function(X){
+#     # X should be a numeric matrix
+#     X <- check_matrix(X)
+#     if(!is.numeric(X)){
+#         stop("'X' must be a numeric matrix/data.frame")
+#     }
+#     # if(any(!X)) stop("'X' must be a numeric matrix/data.frame")
+#     return(X)
+# }
+
+test_that("validate_matrix_X", {
+    X = data.frame("a" = c("A","B", "C"), 'b'= c(NA))
+    expect_error(validate_matrix_X(X), "'X' must be a numeric matrix/data.frame", fixed = TRUE)
+})
+
+# validate_list_matrix_X <- function(X){
+#     if(!is.list(X)){
+#         stop("'X' must be a list of matrix/data.frame")
+#     }
+#     X <- lapply(X, validate_matrix_X)
+#     return(X)
+# }
+
+test_that("validate_list_matrix_X", {
+    expect_error(validate_list_matrix_X(X = 2), "'X' must be a list of matrix/data.frame", fixed=TRUE)
+    X <- list(data.frame("a" = c(1,2,3), 'b'= c(2,3,4)), data.frame("a" = c(1,2,3), 'b'= c(2,3,4)))
+    expect_is(validate_list_matrix_X(X), "list")
+})
+    
+
+
+
+
+
+