## Test 1: missing values in `by_vars` ----
test_that("derive_expected_records Test 1: missing values in `by_vars`", {
input <- tibble::tribble(
~USUBJID, ~PARAMCD, ~AVISITN, ~AVISIT, ~AVAL,
"1", "a", 1, "WEEK 1", 10,
"1", "b", 2, "WEEK 2", 11,
NA_character_, "a", 1, "WEEK 1", 12,
NA_character_, "a", 2, "WEEK 2", 13,
NA_character_, "b", 2, "WEEK 2", 14
)
expected_obsv <- tibble::tribble(
~PARAMCD, ~AVISITN, ~AVISIT,
"a", 1, "WEEK 1",
"a", 2, "WEEK 2",
"b", 1, "WEEK 1",
"b", 2, "WEEK 2"
)
expected_output <- bind_rows(
input,
tibble::tribble(
~USUBJID, ~PARAMCD, ~AVISITN, ~AVISIT, ~AVAL,
"1", "a", 2, "WEEK 2", NA_real_,
"1", "b", 1, "WEEK 1", NA_real_,
NA_character_, "b", 1, "WEEK 1", NA_real_
) %>%
mutate(DTYPE = "DERIVED")
)
actual_output <- derive_expected_records(
dataset = input,
dataset_ref = expected_obsv,
by_vars = exprs(USUBJID),
set_values_to = exprs(DTYPE = "DERIVED")
)
expect_dfs_equal(
base = expected_output,
compare = actual_output,
keys = c("USUBJID", "PARAMCD", "AVISITN", "AVISIT", "DTYPE")
)
})
## Test 2: `by_vars` = NULL ----
test_that("derive_expected_records Test 2: `by_vars` = NULL", {
input <- tibble::tribble(
~USUBJID, ~PARAMCD, ~AVISITN, ~AVISIT, ~AVAL,
"1", "a", 1, "WEEK 1", 10,
"1", "b", 2, "WEEK 2", 11
)
expected_obsv <- tibble::tribble(
~PARAMCD, ~AVISITN, ~AVISIT,
"a", 1, "WEEK 1",
"a", 2, "WEEK 2",
"b", 1, "WEEK 1",
"b", 2, "WEEK 2"
)
expected_output <- bind_rows(
input,
tibble::tribble(
~USUBJID, ~PARAMCD, ~AVISITN, ~AVISIT, ~AVAL,
NA_character_, "a", 2, "WEEK 2", NA_real_,
NA_character_, "b", 1, "WEEK 1", NA_real_
) %>%
mutate(DTYPE = "DERIVED")
)
actual_output <- derive_expected_records(
dataset = input,
dataset_ref = expected_obsv,
by_vars = NULL,
set_values_to = exprs(DTYPE = "DERIVED")
)
expect_dfs_equal(
base = expected_output,
compare = actual_output,
keys = c("USUBJID", "PARAMCD", "AVISITN", "AVISIT", "DTYPE")
)
})
## Test 3: visit variables are parameter independent ----
test_that("derive_expected_records Test 3: visit variables are parameter independent", {
input <- tibble::tribble(
~USUBJID, ~PARAMCD, ~AVISITN, ~AVISIT, ~AVAL,
"1", "a", 1, "WEEK 1", 10,
"1", "b", 1, "WEEK 1", 11,
"2", "a", 2, "WEEK 2", 12,
"2", "b", 2, "WEEK 2", 14
)
expected_obsv <- tibble::tribble(
~AVISITN, ~AVISIT,
1, "WEEK 1",
2, "WEEK 2"
)
expected_output <- bind_rows(
input,
tibble::tribble(
~USUBJID, ~PARAMCD, ~AVISITN, ~AVISIT, ~AVAL,
"1", "a", 2, "WEEK 2", NA_real_,
"1", "b", 2, "WEEK 2", NA_real_,
"2", "a", 1, "WEEK 1", NA_real_,
"2", "b", 1, "WEEK 1", NA_real_
) %>%
mutate(DTYPE = "DERIVED")
)
actual_output <- derive_expected_records(
dataset = input,
dataset_ref = expected_obsv,
by_vars = exprs(USUBJID, PARAMCD),
set_values_to = exprs(DTYPE = "DERIVED")
)
expect_dfs_equal(
base = expected_output,
compare = actual_output,
keys = c("USUBJID", "PARAMCD", "AVISITN", "AVISIT", "DTYPE")
)
})
## Test 4: visit variables are parameter dependent ----
test_that("derive_expected_records Test 4: visit variables are parameter dependent", {
input <- tibble::tribble(
~USUBJID, ~PARAMCD, ~AVISITN, ~AVISIT, ~AVAL,
"1", "a", 1, "WEEK 1", 10,
"1", "b", 1, "WEEK 1", 11,
"2", "a", 2, "WEEK 2", 12,
"2", "b", 2, "WEEK 2", 14
)
expected_obsv <- tibble::tribble(
~PARAMCD, ~AVISITN, ~AVISIT,
"a", 1, "WEEK 1",
"a", 2, "WEEK 2",
"b", 1, "WEEK 1"
)
expected_output <- bind_rows(
input,
tibble::tribble(
~USUBJID, ~PARAMCD, ~AVISITN, ~AVISIT, ~AVAL,
"1", "a", 2, "WEEK 2", NA_real_,
"2", "a", 1, "WEEK 1", NA_real_,
"2", "b", 1, "WEEK 1", NA_real_
) %>%
mutate(DTYPE = "DERIVED")
)
actual_output <- derive_expected_records(
dataset = input,
dataset_ref = expected_obsv,
by_vars = exprs(USUBJID),
set_values_to = exprs(DTYPE = "DERIVED")
)
expect_dfs_equal(
base = expected_output,
compare = actual_output,
keys = c("USUBJID", "PARAMCD", "AVISITN", "AVISIT", "DTYPE")
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.