use of testthat and post processing
This commit is contained in:
parent
0d9d551fd9
commit
cfd6a1f7be
@ -31,7 +31,8 @@ calibMuso <- function(settings=NULL, calibrationPar=NULL,
|
|||||||
silent=FALSE, aggressive=FALSE,
|
silent=FALSE, aggressive=FALSE,
|
||||||
keepBinary=FALSE,
|
keepBinary=FALSE,
|
||||||
binaryPlace="./", fileToChange="epc",
|
binaryPlace="./", fileToChange="epc",
|
||||||
skipSpinup = TRUE, modifyOriginal =FALSE, prettyOut = FALSE){
|
skipSpinup = TRUE, modifyOriginal =FALSE, prettyOut = FALSE,
|
||||||
|
postProcString = NULL){ #
|
||||||
########################################################################
|
########################################################################
|
||||||
###########################Set local variables and places###############
|
###########################Set local variables and places###############
|
||||||
########################################################################
|
########################################################################
|
||||||
@ -321,6 +322,9 @@ calibMuso <- function(settings=NULL, calibrationPar=NULL,
|
|||||||
stop("Modell Failure")
|
stop("Modell Failure")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(timee=="d"){
|
if(timee=="d"){
|
||||||
if(!prettyOut){
|
if(!prettyOut){
|
||||||
colnames(Reva) <- unlist(settings$outputVars[[1]])
|
colnames(Reva) <- unlist(settings$outputVars[[1]])
|
||||||
@ -338,7 +342,9 @@ calibMuso <- function(settings=NULL, calibrationPar=NULL,
|
|||||||
colnames(Reva) <- unlist(settings$outputVars[[2]])
|
colnames(Reva) <- unlist(settings$outputVars[[2]])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!is.null(postProcString)){
|
||||||
|
Reva <- postProcMuso(Reva,postProcString)
|
||||||
|
}
|
||||||
|
|
||||||
## if(leapYear){
|
## if(leapYear){
|
||||||
## Reva <- corrigMuso(settings,Reva)
|
## Reva <- corrigMuso(settings,Reva)
|
||||||
@ -372,5 +378,6 @@ calibMuso <- function(settings=NULL, calibrationPar=NULL,
|
|||||||
|
|
||||||
} else{
|
} else{
|
||||||
setwd(whereAmI)
|
setwd(whereAmI)
|
||||||
return(Reva)}
|
return(Reva)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
10
RBBGCMuso/R/postProc.R
Normal file
10
RBBGCMuso/R/postProc.R
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
postProcMuso <- function(modelData, procString){
|
||||||
|
cNames <- colnames(modelData)
|
||||||
|
tocalc <- gsub("(@)(\\d)","modelData[,\\2]",procString)
|
||||||
|
newVarName <- gsub("\\s","",unlist(strsplit(procString,"<-"))[1])
|
||||||
|
assign(newVarName,eval(parse(text = unlist(strsplit(tocalc,"<-"))[2])))
|
||||||
|
modelData <- cbind.data.frame(modelData,eval(parse(text = newVarName)))
|
||||||
|
colnames(modelData) <- c(cNames,newVarName)
|
||||||
|
modelData
|
||||||
|
}
|
||||||
|
|
||||||
0
RBBGCMuso/inst/examples/hhs/muso
Normal file → Executable file
0
RBBGCMuso/inst/examples/hhs/muso
Normal file → Executable file
21
RBBGCMuso/inst/tests/test_postProcMuso.R
Normal file
21
RBBGCMuso/inst/tests/test_postProcMuso.R
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
context("Post processing")
|
||||||
|
library(testthat)
|
||||||
|
library(RBBGCMuso)
|
||||||
|
setwd(system.file("examples/hhs","",package = "RBBGCMuso"))
|
||||||
|
|
||||||
|
test_that("Post processing string",{
|
||||||
|
testMatrix1 <- data.frame(first = rep(1,5), second = rep(2,5), third = rep(3,5))
|
||||||
|
testMatrix1c <- testMatrix1
|
||||||
|
testMatrix1c[,"newCol"] <- testMatrix1c[,2] + 3 * testMatrix1c[,3]
|
||||||
|
expect_equal(postProcMuso(testMatrix1,"newCol <- @2 + 3*@3"),testMatrix1c)
|
||||||
|
})
|
||||||
|
|
||||||
|
test_that("calibMuso with postprocessing",{
|
||||||
|
model <- calibMuso(skipSpinup = FALSE, silent = TRUE)
|
||||||
|
modelc<- model
|
||||||
|
newCol <- modelc[,1]
|
||||||
|
modelc<- cbind.data.frame(modelc,newCol)
|
||||||
|
modelc[,"newCol"]<- model[,5]+3*model[,7]
|
||||||
|
expect_equal(calibMuso(skipSpinup = FALSE,silent = TRUE, postProcString = "newCol <- @5 + 3* @7"), modelc)
|
||||||
|
})
|
||||||
|
|
||||||
@ -5,11 +5,11 @@
|
|||||||
\title{optiMuso}
|
\title{optiMuso}
|
||||||
\usage{
|
\usage{
|
||||||
optiMuso(measuredData, parameters = NULL, startDate, endDate,
|
optiMuso(measuredData, parameters = NULL, startDate, endDate,
|
||||||
formatString = "\%Y-\%m-\%d", leapYear = TRUE, dataVar,
|
formatString = "\%Y-\%m-\%d", leapYearHandling = TRUE, dataVar,
|
||||||
outLoc = "./calib", preTag = "cal-", settings = NULL,
|
outLoc = "./calib", preTag = "cal-", settings = NULL,
|
||||||
outVars = NULL, iterations = 30, skipSpinup = TRUE,
|
outVars = NULL, iterations = 30, skipSpinup = TRUE,
|
||||||
constrains = NULL, plotName = "calib.jpg", likelihood = function(x,
|
constrains = NULL, plotName = "calib.jpg", likelihood = function(x,
|
||||||
y) { exp(-sqrt(mean((x - y)^2))) }, calPar = 3009)
|
y) { exp(-sqrt(mean((x - y)^2))) }, continious, modelVar = 3009)
|
||||||
}
|
}
|
||||||
\arguments{
|
\arguments{
|
||||||
\item{parameters}{b}
|
\item{parameters}{b}
|
||||||
@ -20,8 +20,6 @@ optiMuso(measuredData, parameters = NULL, startDate, endDate,
|
|||||||
|
|
||||||
\item{formatString}{a}
|
\item{formatString}{a}
|
||||||
|
|
||||||
\item{leapYear}{b}
|
|
||||||
|
|
||||||
\item{outLoc}{c}
|
\item{outLoc}{c}
|
||||||
|
|
||||||
\item{settings}{e}
|
\item{settings}{e}
|
||||||
@ -36,8 +34,6 @@ optiMuso(measuredData, parameters = NULL, startDate, endDate,
|
|||||||
|
|
||||||
\item{likelihood}{d}
|
\item{likelihood}{d}
|
||||||
|
|
||||||
\item{calPar}{a}
|
|
||||||
|
|
||||||
\item{measuredDataFile}{a}
|
\item{measuredDataFile}{a}
|
||||||
|
|
||||||
\item{sep}{c}
|
\item{sep}{c}
|
||||||
@ -49,6 +45,10 @@ optiMuso(measuredData, parameters = NULL, startDate, endDate,
|
|||||||
\item{selVar}{c}
|
\item{selVar}{c}
|
||||||
|
|
||||||
\item{pretag}{a}
|
\item{pretag}{a}
|
||||||
|
|
||||||
|
\item{calPar}{a}
|
||||||
|
|
||||||
|
\item{leapYear}{b}
|
||||||
}
|
}
|
||||||
\description{
|
\description{
|
||||||
This function calculates the -users specified- likelihood for random model input.
|
This function calculates the -users specified- likelihood for random model input.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user