s <- spiro(spiro_example("zan_gxt"))
nbb <- suppressWarnings(spiro(test_path("testdata/cosmed.xlsx")))
test_that("smooth argument is correctly matched", {
expect_identical(smooth_match(40), list(type = "time", param = 40))
expect_identical(smooth_match(20), list(type = "time", param = 20))
expect_identical(smooth_match("20"), list(type = "time", param = 20))
expect_identical(smooth_match("20b"), list(type = "breath", param = 20))
expect_identical(
smooth_match("f"),
list(type = "bw", param = list(W = NULL, n = NULL))
)
expect_identical(
smooth_match("0.1f"),
list(type = "bw", param = list(W = 0.1, n = NULL))
)
expect_identical(
smooth_match("f4"),
list(type = "bw", param = list(W = NULL, n = 4))
)
expect_identical(
smooth_match("0.05f2"),
list(type = "bw", param = list(W = 0.05, n = 2))
)
expect_identical(
smooth_match("fz"),
list(type = "bw_zl", param = list(W = NULL, n = NULL))
)
expect_identical(
smooth_match("0.1fz"),
list(type = "bw_zl", param = list(W = 0.1, n = NULL))
)
expect_identical(
smooth_match("fz4"),
list(type = "bw_zl", param = list(W = NULL, n = 4))
)
expect_identical(
smooth_match("0.05fz2"),
list(type = "bw_zl", param = list(W = 0.05, n = 2))
)
})
test_that("time averaging works", {
expect_snapshot_output(spiro_smooth(s))
expect_snapshot_output(spiro_smooth(s, columns = c("VO2", "RER")))
expect_error(spiro_smooth(s, columns = c("RR", "CVO2")))
})
test_that("breath averaging works", {
expect_snapshot_output(spiro_smooth(s, "20b"))
expect_snapshot_output(spiro_smooth(s, "20b", columns = c("VO2", "VCO2")))
expect_warning(spiro_smooth(s, "10b", columns = c("VO2", "RER")))
expect_error(spiro_smooth(s, "40b", c("VE", "SSF")))
expect_equal(
suppressWarnings(spiro_smooth(s, "3b", "RER")),
spiro_smooth(s, 3, "RER"),
ignore_attr = "smooth_method"
)
})
test_that("Butterworth filter work", {
# this snapshot lead to rounding errors based on the machine run
expect_snapshot_output(round(spiro_smooth(s, "f"), 4))
expect_snapshot_output(spiro_smooth(s, "0.02f4", c("VO2", "VE")))
expect_warning(spiro_smooth(s, "fz", "RER"))
expect_error(spiro_smooth(s, "0.02fz4", c("VCO2", "VO3")))
})
test_that("Non breath-by-breath data is detected", {
expect_snapshot_warning(spiro_smooth(nbb, "2b", "VO2"))
expect_snapshot_error(
suppressWarnings(spiro_smooth(nbb, "2b", c("VO2", "RERER")))
)
})
test_that("input is validated", {
expect_snapshot_error(spiro_smooth("abc"))
expect_snapshot_error(spiro_smooth(s, "0b"))
expect_snapshot_error(spiro_smooth(s, "50k"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.