Skip to content

Commit 663eb4c

Browse files
committed
add unit tests for delayed_datasets
1 parent 20ab78e commit 663eb4c

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed
+91
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
data <- teal.data::cdisc_data(
2+
ADSL = teal.data::rADSL,
3+
ADAE = teal.data::rADAE
4+
)
5+
6+
des_current1 <- data_extract_spec(
7+
dataname = "ADSL",
8+
select = select_spec(
9+
choices = variable_choices(
10+
data = "ADSL",
11+
subset = function(data) names(Filter(is.numeric, data))
12+
),
13+
selected = first_choice()
14+
)
15+
)
16+
17+
des_current2 <- data_extract_spec(
18+
dataname = "ADAE",
19+
select = select_spec(
20+
choices = variable_choices(
21+
data = "ADAE",
22+
subset = function(data) names(Filter(is.numeric, data))
23+
),
24+
selected = first_choice()
25+
)
26+
)
27+
28+
des_delayed <- data_extract_spec(
29+
dataname = delayed_datasets(),
30+
select = select_spec(
31+
choices = variable_choices(
32+
data = delayed_datasets(),
33+
subset = function(data) names(Filter(is.numeric, data))
34+
),
35+
selected = first_choice()
36+
)
37+
)
38+
39+
des_resolved <- list(
40+
des_current1,
41+
des_current2
42+
)
43+
44+
45+
46+
testthat::test_that("single current ddes is unchanged", {
47+
testthat::expect_identical(
48+
des_current1 |> resolve_delayed_datasets(names(data)),
49+
des_current1
50+
)
51+
})
52+
53+
testthat::test_that("single delayed ddes is resolved into list of length(names(data))", {
54+
testthat::expect_equal(
55+
des_delayed |> resolve_delayed_datasets(names(data)),
56+
des_resolved,
57+
check.environment = FALSE
58+
)
59+
})
60+
61+
testthat::test_that("resolved des replaces parent level in nested list of length 1", {
62+
# this reproduces what happens in data_extract_multiple_srv.list
63+
testthat::expect_equal(
64+
list(des_current1, des_delayed) |> resolve_delayed_datasets(names(data)),
65+
list(des_current1, des_resolved),
66+
check.environment = FALSE
67+
)
68+
testthat::expect_equal(
69+
list(list(des_current1), list(des_delayed)) |> resolve_delayed_datasets(names(data)),
70+
list(list(des_current1), des_resolved),
71+
check.environment = FALSE
72+
)
73+
})
74+
75+
testthat::test_that("ddes with specified datasets resolves to intersection of those and the available ones", {
76+
des_delayed_subset <- data_extract_spec(
77+
dataname = delayed_datasets(c("ADSL", "ADEX")),
78+
select = select_spec(
79+
choices = variable_choices(
80+
data = delayed_datasets(c("ADSL", "ADEX")),
81+
subset = function(data) names(Filter(is.numeric, data))
82+
),
83+
selected = first_choice()
84+
)
85+
)
86+
testthat::expect_equal(
87+
des_delayed_subset |> resolve_delayed_datasets(names(data)),
88+
list(des_current1),
89+
check.environment = FALSE
90+
)
91+
})

0 commit comments

Comments
 (0)