Mercurial > repos > ethevenot > transformation
view tests/transformation_tests.R @ 0:eacea1349a7c draft
planemo upload for repository https://github.com/workflow4metabolomics/transformation.git commit 83f2d1045c0bf086bbe2de5204cd5c1d8354116f
author | ethevenot |
---|---|
date | Fri, 29 Jul 2016 12:11:01 -0400 |
parents | |
children |
line wrap: on
line source
library(RUnit) wrapperF <- function(argVc) { source("../transformation_script.R") #### Start_of_testing_code <- function() {} ##------------------------------ ## Initializing ##------------------------------ ## options ##-------- strAsFacL <- options()[["stringsAsFactors"]] options(stringsAsFactors=FALSE) ## constants ##---------- modNamC <- "Transformation" ## module name metVc <- c("log2", "log10") ## available methods topEnvC <- environment() flagC <- "\n" ## functions ##---------- flgF <- function(tesC, envC = topEnvC, txtC = NA) { ## management of warning and error messages tesL <- eval(parse(text = tesC), envir = envC) if(!tesL) { sink(NULL) stpTxtC <- ifelse(is.na(txtC), paste0(tesC, " is FALSE"), txtC) stop(stpTxtC, call. = FALSE) } } ## flgF ## log file ##--------- sink(argVc[["information"]]) cat("\nStart of the '", modNamC, "' module: ", format(Sys.time(), "%a %d %b %Y %X"), "\n", sep="") ## loading ##-------- datMN <- t(as.matrix(read.table(argVc[["dataMatrix_in"]], check.names = FALSE, header = TRUE, row.names = 1, sep = "\t"))) metC <- argVc[["method"]] ## checking ##--------- flgF("metC %in% metVc", txtC = paste0("Transformation method must be either '", paste(metVc, collapse = "', '"), "'")) ##------------------------------ ## Computation ##------------------------------ datMN <- transformF(datMN = datMN, ## dataMatrix metC = metC) ## transformation method ##------------------------------ ## Ending ##------------------------------ ## saving ##------- datDF <- cbind.data.frame(dataMatrix = colnames(datMN), as.data.frame(t(datMN))) write.table(datDF, file = argVc[["dataMatrix_out"]], quote = FALSE, row.names = FALSE, sep = "\t") ## ending ##------- cat("\nEnd of the '", modNamC, "' Galaxy module call: ", format(Sys.time(), "%a %d %b %Y %X"), "\n", sep = "") sink() options(stringsAsFactors = strAsFacL) #### End_of_testing_code <- function() {} return(list(datDF = datDF)) rm(list = ls()) } exaDirOutC <- "output" file.exists(exaDirOutC) || dir.create(exaDirOutC) tesArgLs <- list(input_log10 = c(method = "log10", .chkC = "checkEqualsNumeric(outLs[['datDF']]['HMDB03072', 'HU_021'], 4.817089, tolerance = 1e-6)")) for(tesC in names(tesArgLs)) tesArgLs[[tesC]] <- c(tesArgLs[[tesC]], dataMatrix_in = file.path(unlist(strsplit(tesC, "_"))[1], "dataMatrix.tsv"), dataMatrix_out = file.path(exaDirOutC, "dataMatrix.tsv"), information = file.path(exaDirOutC, "information.txt")) for(tesC in names(tesArgLs)) { print(tesC) outLs <- wrapperF(tesArgLs[[tesC]]) if(".chkC" %in% names(tesArgLs[[tesC]])) stopifnot(eval(parse(text = tesArgLs[[tesC]][[".chkC"]]))) } message("Checks successfully completed")