Nothing
# Test singlewin function #
test_that("singlewin creates an output when cinterval == day", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass$Mass~1), range = c(72, 15),
stat = "mean", func = "lin",
type = "relative", cmissing = FALSE, cinterval = "day")
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that singlewin best model is created
expect_false(is.na(test[[1]][1]))
# Test that best model data contains no NAs
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has at least 2 parameters
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -14.2)
expect_true(round(test$Dataset$ModelAICc, 1) == 274.1)
})
# Test that cinterval = week works
test_that("singlewin creates an output when cinterval = week", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass), range = c(1, 0),
stat = "mean", func = "lin",
type = "relative", cmissing = FALSE, cinterval = "week")
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that singlewin best model is created
expect_false(is.na(test[[1]][1]))
# Test that best model data contains no NAs
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has at least 2 parameters
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from github (7-9-17)
#N.B. The way we calculate week has changed slightly
expect_true(round(test$Dataset$deltaAICc, 1) == 1.3)
expect_true(round(test$Dataset$ModelAICc, 1) == 289.7)
})
# Test that cinterval = month works
test_that("singlewin creates an output when cinterval = month", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass), range = c(1, 0),
stat = "mean", func = "lin",
type = "relative", cmissing = FALSE, cinterval = "month")
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that singlewin best model is created
expect_false(is.na(test[[1]][1]))
# Test that best model data contains no NAs
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has at least 2 parameters
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -4.9)
expect_true(round(test$Dataset$ModelAICc, 1) == 283.5)
})
###############################################################################################
#Test weights work
test_that("singlewin works with weights", {
set.seed(666)
data(Mass, envir = environment())
data(MassClimate, envir = environment())
Mass$weight <- runif(nrow(Mass), 0, 1)
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, weights = weight, data = Mass), range = c(72, 15),
stat = "mean", func = "lin",
type = "relative", cmissing = FALSE, cinterval = "day")
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that singlewin best model is created
expect_false(is.na(test[[1]][1]))
# Test that best model data contains no NAs
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has at least 2 parameters
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -25.4)
expect_true(round(test$Dataset$ModelAICc, 1) == 284)
})
test_that("singlewin works with equal weights", {
set.seed(666)
data(Mass, envir = environment())
data(MassClimate, envir = environment())
Mass$weight <- 1
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, weights = weight, data = Mass), range = c(72, 15),
stat = "mean", func = "lin",
type = "relative", cmissing = FALSE, cinterval = "day")
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that singlewin best model is created
expect_false(is.na(test[[1]][1]))
# Test that best model data contains no NAs
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has at least 2 parameters
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -14.2)
expect_true(as.integer(round(test$Dataset$ModelAICc, 1)) == 274)
})
###############################################################################################
# Test different settings of cmissing #
# Test when cmissing is method1 and no NA is present#
test_that("No errors return when cmissing method1 and full dataset", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 2),
type = "relative", stat = "max",
func = "lin", cmissing = "method1")
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that singlewin best model is created
expect_false(is.na(test[[1]][1]))
# Test that best model data contains no NAs
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has at least 2 parameters
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -2.7)
expect_true(round(test$Dataset$ModelAICc, 1) == 285.6)
})
# Test when cmissing is method1 and no NA is present#
test_that("No errors return when cmissing method2 and full dataset", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 2),
type = "relative", stat = "max",
func = "lin", cmissing = "method2")
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that singlewin best model is created
expect_false(is.na(test[[1]][1]))
# Test that best model data contains no NAs
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has at least 2 parameters
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -2.7)
expect_true(round(test$Dataset$ModelAICc, 1) == 285.6)
})
#Test when cmissing is method1 and NA is present#
test_that("No errors return when cmissing method1 with NAs", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
MassClimate2 <- MassClimate[-491, ]
test <- singlewin(xvar = list(Temp = MassClimate2$Temp),
cdate = MassClimate2$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 0),
type = "relative", stat = "max",
func = "lin", cmissing = "method1")
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that singlewin best model is created
expect_false(is.na(test[[1]][1]))
# Test that best model data contains no NAs
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has at least 2 parameters
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == 1.9)
expect_true(round(test$Dataset$ModelAICc, 1) == 290.2)
})
#Test when cmissing is method1 and NA is present#
test_that("No errors return when cmissing method2 with NAs", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
MassClimate2 <- MassClimate[-300, ]
test <- singlewin(xvar = list(Temp = MassClimate2$Temp),
cdate = MassClimate2$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 0),
type = "relative", stat = "max",
func = "lin", cmissing = "method2")
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that singlewin best model is created
expect_false(is.na(test[[1]][1]))
# Test that best model data contains no NAs
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has at least 2 parameters
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == 1.9)
expect_true(round(test$Dataset$ModelAICc, 1) == 290.2)
})
#Test when cmissing is FALSE and NA is present#
test_that("Errors are returned when cmissing is FALSE with NAs", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
MassClimate2 <- MassClimate[-491, ]
# Test that an error is returned
expect_error(singlewin(xvar = list(Temp = MassClimate2$Temp),
cdate = MassClimate2$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 2),
type = "relative", stat = "max", func = "lin",
cmissing = FALSE))
})
##########################################################
# Test different types of models #
# Test glm models
test_that("glm models can run in singlewin", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = glm(Mass ~ 1, data = Mass, family = poisson),
range = c(2, 2),
type = "relative", stat = "max",
func = "lin", cmissing = FALSE)
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that singlewin best model is created
expect_false(is.na(test[[1]][1]))
# Test that best model data contains no NAs
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has at least 2 parameters
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == 1.3)
expect_true(round(test$Dataset$ModelAICc, 1) == 327.1)
})
# Test lmer models
test_that("lmer models can run in singlewin", {
data(Offspring, envir = environment())
data(OffspringClimate, envir = environment())
test <- singlewin(xvar = list(Temp = OffspringClimate$Temp),
cdate = OffspringClimate$Date,
bdate = Offspring$Date,
baseline = lmer(Offspring ~ 1 + (1|BirdID), data = Offspring),
range = c(2, 2), type = "relative",
stat = "max", func = "lin", cmissing = FALSE)
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that singlewin creates an intercept value
expect_false(is.na(fixef(test[[1]])[1]))
# Test that singlewin creates a beta estimate for climate
expect_false(is.na(fixef(test[[1]])[2]))
# Test that best model data has no NAs
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data includes at least 2 parameters
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from github (7-9-17)
#N.B. Have to use different approach as we now force mixed models to use ML
expect_true(round(test$Dataset$deltaAICc, 1) == -59.3)
expect_true(round(test$Dataset$ModelAICc, 1) == 4994.6)
})
# Test glmer models
test_that("glmer models can run in singlewin", {
data(Offspring, envir = environment())
data(OffspringClimate, envir = environment())
# Warnings created due to convergence issues with such a small data set
suppressWarnings(test <- singlewin(xvar = list(Temp = OffspringClimate$Temp),
cdate = OffspringClimate$Date,
bdate = Offspring$Date,
baseline = glmer(Offspring ~ 1 + (1|Order), data = Offspring, family = "poisson"),
range = c(2, 2), type = "relative",
stat = "max", func = "lin", cmissing = FALSE))
# Test that climatewin has produced an output
expect_true(is.list(test))
# Test that glmer model produced an intercept
expect_false(is.na(fixef(test$BestModel)[1]))
# Test that glmer model produced a beta estimate for climate
expect_false(is.na(fixef(test$BestModel)[2]))
# Test there are no NA values in best model data
expect_equal(length(which(is.na(test$BestModelData))), 0)
# Test that best model data has atleast two parameters
expect_true(ncol(test$BestModelData) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -23.3)
expect_true(round(test$Dataset$ModelAICc, 1) == 4896.9)
})
## COXPH ##
##########################################################
# Test absolute windows #
test_that("Absolute window works", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 2),
type = "absolute", refday = c(20, 5),
stat = "max", func = "lin", cmissing = FALSE)
# Test that singlewin produces an object
expect_true(is.list(test))
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -2.2)
expect_true(round(test$Dataset$ModelAICc, 1) == 286.2)
})
##########################################################
# Test slope stat #
test_that("slope stats work", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 1),
type = "relative", stat = "slope",
func = "lin", cmissing = FALSE)
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that the best model has no NAs
expect_false(is.na(test[[1]][1]))
# Test that there are no NAs in the best model data
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has atleast 2 columns
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -1.3)
expect_true(round(test$Dataset$ModelAICc, 1) == 287.1)
})
##########################################################
#Test different functions for fitting climate#
# Test quadratic function
test_that("Quadratic function works in singlewin", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 2),
type = "relative", stat = "max",
func = "quad", cmissing = FALSE)
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that the best model has no NAs
expect_false(is.na(test[[1]][1]))
# Test that there are no NAs in the best model data
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has atleast 3 columns
expect_true(ncol(test[[2]]) >= 3)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -1.0)
expect_true(round(test$Dataset$ModelAICc, 1) == 287.3)
})
#Test cubic function
test_that("Cubic function works in singlewin", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 2),
type = "relative", stat = "max",
func = "cub", cmissing = FALSE)
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that the best model has no NAs
expect_false(is.na(test[[1]][1]))
# Test that there are no NAs in the best model data
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has atleast 4 columns
expect_true(ncol(test[[2]]) >= 4)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == 1.3)
expect_true(round(test$Dataset$ModelAICc, 1) == 289.7)
})
# Test log function
test_that("Log function works in singlewin", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 2),
type = "relative", stat = "max",
func = "log", cmissing = FALSE)
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that the best model has no NAs
expect_false(is.na(test[[1]][1]))
# Test that there are no NAs in the best model data
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has atleast 2 columns
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -3.1)
expect_true(round(test$Dataset$ModelAICc, 1) == 285.3)
})
#Test log function#
test_that("Inverse function works in singlewin", {
data(Mass, envir = environment())
data(MassClimate, envir = environment())
test <- singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 2),
type = "relative", stat = "max",
func = "inv", cmissing = FALSE)
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that the best model has no NAs
expect_false(is.na(test[[1]][1]))
# Test that there are no NAs in the best model data
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has atleast 2 columns
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -3.1)
expect_true(round(test$Dataset$ModelAICc, 1) == 285.2)
})
################################################################
#Test that an error is returned when you have NAs in the biological data
test_that("singlewin gives error when NAs are present in biological data", {
data(MassClimate, envir = environment())
Mass <- data.frame(Date = c("01/01/2014", "01/02/2014"), Mass = c(NA, 1))
# Test that an error occurs
expect_error(singlewin(xvar = list(Temp = MassClimate$Temp),
cdate = MassClimate$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 2),
type = "relative", stat = "max",
func = "lin", cmissing = FALSE))
})
################################################################
#Test spatial replication#
test_that("spatial replication works with singlewin", {
data(Mass, envir = environment())
Mass$Plot <- c(rep(c("A", "B"), 23), "A")
data(MassClimate, envir = environment())
MassClimate$Plot <- "A"
MassClimate2 <- MassClimate
MassClimate2$Plot <- "B"
Clim <- rbind(MassClimate, MassClimate2)
test <- singlewin(xvar = list(Temp = Clim$Temp),
cdate = Clim$Date, bdate = Mass$Date,
baseline = lm(Mass ~ 1, data = Mass),
range = c(2, 2),
type = "relative", stat = "max",
func = "lin", cmissing = FALSE,
spatial = list(Mass$Plot, Clim$Plot))
# Test that singlewin produces an output
expect_true(is.list(test))
# Test that the best model has no NAs
expect_false(is.na(test[[1]][1]))
# Test that there are no NAs in the best model data
expect_equal(length(which(is.na(test[[2]]))), 0)
# Test that best model data has atleast 2 columns
expect_true(ncol(test[[2]]) >= 2)
#Test that values match those from previous R version
expect_true(round(test$Dataset$deltaAICc, 1) == -2.7)
expect_true(round(test$Dataset$ModelAICc, 1) == 285.6)
})
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.