Nothing
# tests/testthat/test-seqic_indicator_8.R
testthat::test_that("seqic_indicator_8() correctly expects columns to be in the 'data'", {
# Minimal valid data
test_data <- dplyr::tibble(
id = as.character(1:10),
trauma_level = c("I", "II", "III", "IV", "V", "II", "I", "III", "IV", "II"),
mortality = c(
FALSE,
"No",
TRUE,
"Yes",
FALSE,
TRUE,
"No",
FALSE,
"Yes",
TRUE
),
risk = c(
"High",
"High",
"Moderate",
"Moderate",
"Low",
"Low",
"High",
"Moderate",
"Low",
"Moderate"
)
)
testthat::expect_error(
traumar::seqic_indicator_8(
data = test_data,
level = "fake",
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk
),
regexp = "It was not possible to validate"
)
testthat::expect_error(
traumar::seqic_indicator_8(
data = test_data,
level = trauma_level,
unique_incident_id = not_a_column,
mortality_indicator = mortality,
risk_group = risk
),
regexp = "It was not possible to validate"
)
testthat::expect_error(
traumar::seqic_indicator_8(
data = test_data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = still_alive,
risk_group = risk
),
regexp = "It was not possible to validate"
)
testthat::expect_error(
traumar::seqic_indicator_8(
data = test_data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = low_risk_group
),
regexp = "It was not possible to validate"
)
})
testthat::test_that("seqic_indicator_8() data validation - data must be a data.frame or tibble", {
testthat::expect_error(
traumar::seqic_indicator_8(
data = "not_a_data",
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk
),
"data.*must be a data frame or tibble"
)
})
testthat::test_that("seqic_indicator_8() data validation - level must be character or factor", {
data <- tibble::tibble(
trauma_level = as.numeric(1:3),
id = as.character(1:3),
mortality = c(TRUE, FALSE, TRUE),
risk = c("Low", "Moderate", "High")
)
testthat::expect_error(
traumar::seqic_indicator_8(
data = data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk
),
"level.*must be character or factor"
)
})
testthat::test_that("seqic_indicator_8() data validation - unique_incident_id must be character, numeric, or factor", {
data <- tibble::tibble(
trauma_level = as.character(c("I", "II", "III")),
id = list(1, 2, 3),
mortality = c(TRUE, FALSE, TRUE),
risk = c("Low", "Moderate", "High")
)
testthat::expect_error(
traumar::seqic_indicator_8(
data = data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk
),
"unique_incident_id.*must be of class"
)
})
testthat::test_that("seqic_indicator_8() data validation - mortality_indicator must be character, factor, or logical", {
data <- tibble::tibble(
trauma_level = as.character(c("I", "II", "III")),
id = as.character(1:3),
mortality = as.Date(c("2023-01-01", "2023-01-02", "2023-01-03")),
risk = c("Low", "Moderate", "High")
)
testthat::expect_error(
traumar::seqic_indicator_8(
data = data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk
),
"mortality_indicator.*must be character, factor, or logical"
)
})
testthat::test_that("seqic_indicator_8() data validation - risk_group must be character or factor", {
data <- tibble::tibble(
trauma_level = as.character(c("I", "II", "III")),
id = as.character(1:3),
mortality = c(TRUE, FALSE, TRUE),
risk = as.Date(c("2023-01-01", "2023-01-02", "2023-01-03"))
)
testthat::expect_error(
traumar::seqic_indicator_8(
data = data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk
),
"risk_group.*must be character or factor"
)
})
testthat::test_that("seqic_indicator_8() data validation - groups must be character vector", {
data <- tibble::tibble(
trauma_level = as.character(c("I", "II", "III")),
id = as.character(1:3),
mortality = c(TRUE, FALSE, TRUE),
risk = c("Low", "Moderate", "High")
)
testthat::expect_error(
traumar::seqic_indicator_8(
data = data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk,
groups = 1
),
"groups.*must be strings"
)
})
testthat::test_that("seqic_indicator_8() data validation - all groups must exist in data", {
data <- tibble::tibble(
trauma_level = as.character(c("I", "II", "III")),
id = as.character(1:3),
mortality = c(TRUE, FALSE, TRUE),
risk = c("Low", "Moderate", "High")
)
testthat::expect_error(
traumar::seqic_indicator_8(
data = data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk,
groups = c("nonexistent_var")
),
"Invalid grouping variable"
)
})
testthat::test_that("seqic_indicator_8() data validation - calculate_ci must be wilson or clopper-pearson", {
data <- tibble::tibble(
trauma_level = as.character(c("I", "II", "III")),
id = as.character(1:3),
mortality = c(TRUE, FALSE, TRUE),
risk = c("Low", "Moderate", "High")
)
testthat::expect_error(
traumar::seqic_indicator_8(
data = data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk,
calculate_ci = "invalid"
),
"must be.*wilson.*clopper-pearson"
)
})
testthat::test_that("seqic_indicator_8() data validation - included_levels must be character, numeric, or factor", {
data <- tibble::tibble(
trauma_level = as.character(c("I", "II", "III")),
id = as.character(1:3),
mortality = c(TRUE, FALSE, TRUE),
risk = c("Low", "Moderate", "High")
)
testthat::expect_error(
traumar::seqic_indicator_8(
data = data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk,
included_levels = list("I", "II")
),
"included_levels.*must be of class"
)
})
testthat::test_that("seqic_indicator_8 correctly calculates overall and risk group survival", {
test_data <- dplyr::tibble(
id = as.character(1:10),
trauma_level = c("I", "II", "III", "IV", "V", "II", "I", "III", "IV", "II"),
mortality = c(
FALSE,
"No",
TRUE,
"Yes",
FALSE,
TRUE,
"No",
FALSE,
"Yes",
TRUE
),
risk = c(
"High",
"High",
"Moderate",
"Moderate",
"Low",
"Low",
"High",
"Moderate",
"Low",
"Moderate"
)
)
result <- traumar::seqic_indicator_8(
data = test_data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk
)
# Check output structure
testthat::expect_named(result, c("overall", "risk_group"))
testthat::expect_s3_class(result$overall, "tbl_df")
testthat::expect_s3_class(result$risk_group, "tbl_df")
# Check correct numerators/denominators
testthat::expect_equal(result$overall$numerator_8_all, 4)
testthat::expect_equal(result$overall$denominator_8_all, 9)
testthat::expect_equal(result$overall$seqic_8_all, 4 / 9)
# Check stratified values
risk_summary <- result$risk_group
testthat::expect_true(all(
risk_summary$denominator_8_risk >= risk_summary$numerator_8_risk
))
testthat::expect_true(all(risk_summary$seqic_8_risk <= 1))
})
testthat::test_that("seqic_indicator_8 filters by included_levels", {
data <- dplyr::tibble(
id = 1:5,
trauma_level = c("I", "V", "II", "III", "IV"),
mortality = c("No", "Yes", FALSE, TRUE, "No"),
risk = rep("Moderate", 5)
)
result <- traumar::seqic_indicator_8(
data = data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk
)
# Should exclude trauma_level "V"
testthat::expect_equal(result$overall$denominator_8_all, 4)
})
testthat::test_that("seqic_indicator_8 includes confidence intervals when calculate_ci is specified", {
data <- dplyr::tibble(
id = 1:6,
trauma_level = rep("II", 6),
mortality = c("No", "Yes", "No", "No", "Yes", FALSE),
risk = c("Low", "Low", "Low", "High", "High", "High")
)
result <- traumar::seqic_indicator_8(
data = data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk,
calculate_ci = "wilson"
)
testthat::expect_true(all(
c("lower_ci_8", "upper_ci_8") %in% names(result$overall)
))
testthat::expect_true(all(
c("lower_ci_8_risk", "upper_ci_8_risk") %in% names(result$risk_group)
))
})
testthat::test_that("seqic_indicator_8 handles groupings correctly", {
data <- dplyr::tibble(
id = 1:6,
trauma_level = rep("III", 6),
mortality = c(TRUE, FALSE, FALSE, "Yes", "No", "No"),
risk = rep("Low", 6),
region = c("East", "East", "West", "West", "East", "West")
)
result <- traumar::seqic_indicator_8(
data = data,
level = trauma_level,
unique_incident_id = id,
mortality_indicator = mortality,
risk_group = risk,
groups = "region"
)
testthat::expect_true("region" %in% names(result$overall))
testthat::expect_equal(nrow(result$overall), 2)
})
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.