Nothing
# library(testthat)
# test_file("tests/testthat/test-inspect.R")
# covr::file_coverage("R/inspect.R", "tests/testthat/test-inspect.R")
# cvr <- covr::package_coverage()
# covr::report(cvr)
# covr::report(covr::package_coverage())
capture.output({ ## stops printing console outputs on assigning
if (!identical(Sys.getenv("NOT_CRAN"), "true")) return()
skip_on_cran()
{ # Testing objects
base <- select(intermittent.rd, 1,2)
base[[3]] <- intermittent.rd[[2]]
names(base) <- c("Time", "oxy1", "oxy2")
}
test_that("inspect - works on 2-column data",
expect_error(inspect(sardine.rd, plot = F),
regexp = NA))
test_that("inspect - works on multi-column data", {
## defaults to columns 1:2
expect_equal(ncol(suppressWarnings(inspect(urchins.rd, plot = F)$dataframe)),
2)
## differnt 2 columns
expect_equal(ncol(suppressWarnings(inspect(urchins.rd, time = 1, oxygen = 3, plot = F)$dataframe)),
2)
## multiple columns
expect_equal(ncol(suppressWarnings(inspect(urchins.rd, time = 1, oxygen = 3:6, plot = F)$dataframe)),
5)
})
ur2c <- suppressWarnings(inspect(urchins.rd, plot = F))
test_that("inspect - produces plot with 2-column data", {
expect_output(plot(ur2c))
expect_error(plot(ur2c),
regexp = NA)
})
ur3c <- suppressWarnings(inspect(urchins.rd, oxygen = 2:3, plot = F))
test_that("inspect - produces plot with multi-column data",
expect_error(plot(ur3c),
regexp = NA))
ur2c <- suppressWarnings(inspect(urchins.rd,
width = 0.5, plot = F))
test_that("inspect - produces plot with higher width values",
expect_error(plot(ur2c),
regexp = NA))
test_that("inspect - produces plot with extra options passed",
expect_error(plot(ur2c, legend = FALSE, rate.rev = FALSE,
quiet = TRUE, width = 0.05),
regexp = NA))
urmultrates <- suppressWarnings(inspect(urchins.rd, time =1, oxygen = 2:8,
plot = F))
test_that("inspect - gives multiple column message", {
expect_message((plot(urmultrates)),
regexp = "inspect: Rolling Regression plot is only avalilable for a 2-column dataframe output.")
})
test_that("inspect - produces plot with 'pos' input passed", {
expect_output(suppressWarnings(plot(urmultrates, pos = 2)))
expect_error(suppressWarnings(plot(urmultrates, pos = 2)),
regexp = NA)
})
test_that("inspect - produces plot with 'add.data' input passed", {
expect_output(suppressWarnings(inspect(urchins.rd, time =1, oxygen = 2, add.data = 3,
plot = T)))
expect_error(suppressWarnings(inspect(urchins.rd, time =1, oxygen = 2, add.data = 3)),
NA)
expect_output(suppressWarnings(inspect(urchins.rd, time =1, oxygen = 2:3, add.data = 3,
plot = T)))
expect_message(suppressWarnings(inspect(urchins.rd, time =1, oxygen = 2:3, add.data = 3,
plot = T)),
"plot.inspect: Additional data source cannot be plotted for multiple columns.")
})
test_that("inspect - gives error with plot and 'pos' too high", {
expect_error((plot(urmultrates, pos = 100)),
regexp = "plot.inspect: Invalid 'pos' rank: only 7 oxygen columns found.")
})
# suppressWarnings(file.remove("Rplots.pdf"))
test_that("inspect - objects can be printed", {
expect_output(print(ur2c))
expect_output(print(ur3c))
expect_output(summary(ur2c))
expect_output(summary(ur3c))
})
test_that("inspect - mean S3 returns message", {
expect_message(mean(ur2c),
"inspect: mean\\() is not available for 'inspect' objects.")
})
test_that("inspect - objects with lots of results (20+) can be printed", {
# time Inf
urch <- urchins.rd[,1:2]
urch$time.min[c(2:4, 30:35, 120:127, 180:190, 200:204)] <- Inf
urch_insp <- suppressWarnings(inspect(urch, plot = F))
expect_output(print(urch_insp))
# time NA
urch <- urchins.rd[,1:2]
urch$time.min[c(2:4, 30:35, 120:127, 180:190, 200:204)] <- NA
urch_insp <- suppressWarnings(inspect(urch))
expect_output(print(urch_insp))
# time non seq
urch <- urchins.rd[,1:2]
urch$time.min[c(2:4, 30:35, 120:127, 180:190, 200:204)] <-
rev(urch$time.min[c(2:4, 30:35, 120:127, 180:190, 200:204)])
urch_insp <- suppressWarnings(inspect(urch))
expect_output(print(urch_insp))
# time dup
urch <- urchins.rd[,1:2]
urch$time.min[c(2:4, 30:35, 120:127, 180:190, 200:204)] <- 44.3
urch_insp <- suppressWarnings(inspect(urch))
expect_output(print(urch_insp))
# oxy Inf
urch <- urchins.rd[,1:2]
urch$a[c(2:4, 30:35, 120:127, 180:190, 200:204)] <- Inf
urch_insp <- suppressWarnings(inspect(urch))
expect_output(print(urch_insp))
# oxy NA
urch <- urchins.rd[,1:2]
urch$a[c(2:4, 30:35, 120:127, 180:190, 200:204)] <- NA
urch_insp <- suppressWarnings(inspect(urch))
expect_output(print(urch_insp))
})
test_that("inspect - works with NULL inputs", {
expect_error(inspect(intermittent.rd, time = NULL, oxygen = NULL, width = NULL, plot = F),
regexp = NA)
expect_error(inspect(intermittent.rd, time = NULL, plot = F),
regexp = NA)
expect_message(inspect(intermittent.rd, time = NULL, plot = F),
regexp = "inspect: Applying column default of 'time = 1'")
expect_equal(inspect(intermittent.rd, time = NULL, plot = F)$inputs$time,
1)
expect_error(inspect(intermittent.rd, oxygen = NULL, plot = F),
regexp = NA)
expect_message(inspect(intermittent.rd, time = NULL, plot = F),
regexp = "inspect: Applying column default of 'oxygen = 2'")
expect_equal(inspect(intermittent.rd, time = NULL, plot = F)$inputs$oxygen,
2)
expect_error(inspect(intermittent.rd, width = NULL, plot = F),
regexp = NA)
expect_message(inspect(intermittent.rd, width = NULL, plot = F),
regexp = "inspect: Applying default of 'width = 0.1'")
expect_equal(inspect(intermittent.rd, width = NULL, plot = F)$inputs$width,
0.1)
})
test_that("inspect - stops if input not df", {
expect_error(inspect(as.matrix(urchins.rd), plot = F),
"inspect: 'x' must be data.frame object.")
expect_error(inspect(urchins.rd[[1]], plot = F),
"inspect: 'x' must be data.frame object.")
expect_error(inspect(3435, plot = F),
"inspect: 'x' must be data.frame object.")
})
test_that("inspect - stops if time/oxygen/width column inputs malformed", {
# not integer
expect_error(inspect(urchins.rd, time = 0.2, plot = F),
"inspect: 'time' - some column inputs are not integers.")
# too many
expect_error(inspect(urchins.rd, time = 1:2, plot = F),
"inspect: 'time' - cannot enter more than 1 column\\(s\\) with this input or this dataset.")
# out of range
expect_error(inspect(urchins.rd, time = 20, plot = F),
"inspect: 'time' - one or more column inputs are out of range of allowed data columns.")
# conflicts
expect_error(inspect(urchins.rd, time = 2, oxygen = 2, plot = F),
"inspect: 'oxygen' - one or more column inputs conflicts with other inputs.")
expect_error(inspect(urchins.rd, time = 1, oxygen = 0.5, plot = F),
"inspect: 'oxygen' - some column inputs are not integers.")
expect_error(inspect(urchins.rd, time = 1, oxygen = 2:20, plot = F),
"inspect: 'oxygen' - one or more column inputs are out of range of allowed data columns.")
expect_error(inspect(urchins.rd, time = 3, oxygen = 3, plot = F),
"inspect: 'oxygen' - one or more column inputs conflicts with other inputs.")
expect_error(inspect(urchins.rd, width = 1.5, plot = F),
"inspect: 'width' - one or more inputs are outside the range of allowed values.")
expect_error(inspect(urchins.rd, width = 2:20, plot = F),
"inspect: 'width' - only 1 inputs allowed.")
expect_error(inspect(urchins.rd, width = "string", plot = F),
"inspect: 'width' - input is not numeric.")
})
test_that("inspect - correctly identifies column name strings", {
# single time and oxygen columns work without error
expect_error(inspect(base, time = "Time", oxygen = "oxy1", plot = FALSE),
NA)
# same as using numbers
# Everything except the $call should be the same
expect_equal(inspect(base, time = "Time", oxygen = "oxy1", plot = FALSE)[2:7],
inspect(base, time = 1, oxygen = 2, plot = FALSE)[2:7])
# multiple oxygen columns
expect_error(inspect(base, time = "Time", oxygen = c("oxy1", "oxy2"), plot = FALSE),
NA)
# same as using numbers
# Everything except the $call should be the same
expect_equal(inspect(base, time = "Time", oxygen = c("oxy1", "oxy2"), plot = FALSE)[2:7],
inspect(base, time = 1, oxygen = 2:3, plot = FALSE)[2:7])
# add.data
expect_error(inspect(base, time = 1, oxygen = 2, add.data = "oxy2", plot = FALSE),
NA)
# same as using numbers
# Everything except the $call should be the same
expect_equal(inspect(base, time = 1, oxygen = 2, add.data = "oxy2", plot = FALSE)$add.data,
inspect(base, time = 1, oxygen = 2, add.data = 3, plot = FALSE)$add.data)
})
test_that("inspect - unevenly spaced time detected message", {
expect_warning(inspect(urchins.rd, plot = F),
"Time values are not evenly-spaced \\(numerically).")
})
test_that("inspect - Non-numeric in time detected", {
input <- as.data.frame(base)
input[100,1] <- "99"
expect_warning(inspect(input, plot = T),
"inspect: Time column not numeric. Other column checks skipped.")
})
test_that("inspect - Inf in time detected", {
input <- as.data.frame(base)
input[100,1] <- Inf
input[200:205,1] <- -Inf
expect_warning(inspect(input, plot = F),
"inspect: Inf/-Inf values detected in Time column. Remove or replace before proceeding.")
})
test_that("inspect - NA in time detected", {
input <- base
input[100,1] <- NA
input[200:205,1] <- NA
expect_warning(inspect(input, plot = F),
"NA/NaN values detected in Time column.")
})
test_that("inspect - Non-numeric in oxygen detected", {
input <- as.data.frame(base)
input[100,2] <- "7.09"
expect_warning(inspect(input, plot = T),
"inspect: Oxygen column\\(s) not numeric. Other column checks skipped.")
})
test_that("inspect - Inf in oxygen detected", {
input <- as.data.frame(base)
input[100,2] <- Inf
input[200:205,2] <- -Inf
expect_warning(inspect(input, plot = F),
"inspect: Inf/-Inf values detected in Oxygen column\\(s). Remove or replace before proceeding.")
})
test_that("inspect - NA in oxygen detected", {
input <- base
input[100,2] <- NA
input[200:205,2] <- NA
expect_warning(inspect(input, plot = F),
"NA/NaN values detected in Oxygen column\\(s).")
})
test_that("inspect - NA in oxygen detected in multiple columns", {
input <- base
input[100,2] <- NA
input[200:205,3] <- NA
expect_warning(inspect(input, plot = F),
"NA/NaN values detected in Oxygen column\\(s).")
})
test_that("inspect - non-sequential time detected", {
input <- base
input[9,1] <- 9
input[10,1] <- 8
input[325,1] <- 325
input[326,1] <- 324
expect_warning(inspect(input, plot = F),
"Non-sequential Time values found.")
})
test_that("inspect - non-sequential time detected", {
input <- base
input[12,1] <- 10
input[100,1] <- 98
expect_warning(inspect(input, plot = F),
"Duplicate Time values found.")
})
test_that("inspect - all good message if no errors", {
input <- base
expect_message(suppressWarnings(inspect(input, plot = F)),
"No issues detected while inspecting data frame.")
})
test_that("inspect - plot defaults are correctly restored", {
# reset plotting first
dev.off()
# save par before
parb4 <- par(no.readonly = TRUE)
# now use a fn with plot
inspect(sardine.rd, 1, 2)
# save after
paraft <- par(no.readonly = TRUE)
# mai is something changed from the default,
# so if par settings not restored properly this should fail
expect_identical(parb4$mai,
paraft$mai)
})
}) ## turns console printing back on
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.