Skip to content

Commit ce11ed6

Browse files
committed
Remove repetitive tests and rename helper functions
1 parent 13ae5e3 commit ce11ed6

File tree

1 file changed

+28
-49
lines changed

1 file changed

+28
-49
lines changed

tests/testthat/test-independent-to_integer.R

Lines changed: 28 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,5 @@
1-
# Shared summary validation function
2-
test_summary_output <- function(summary_x) {
3-
expect_s3_class(summary_x, "tbl_df")
4-
expect_equal(ncol(summary_x), 7)
5-
expect_named(summary_x, c("Design", "N", "Events", "Time", "Bound", "alpha", "Power"), ignore.order = TRUE)
6-
7-
# Ensure values are within expected ranges
8-
expect_true(all(summary_x$N > 0))
9-
expect_true(all(summary_x$Events > 0))
10-
expect_true(all(summary_x$Time > 0))
11-
expect_true(all(summary_x$alpha > 0 & summary_x$alpha < 1))
12-
expect_true(all(summary_x$Power > 0 & summary_x$Power <= 1))
13-
}
14-
15-
# Create shared test fixtures
16-
create_test_design <- function(design_fn, extra_args = list()) {
1+
# Create common fixed designs
2+
create_fixed_design <- function(design_fn, extra_args = list()) {
173
base_args <- list(
184
alpha = 0.025,
195
power = 0.9,
@@ -32,8 +18,8 @@ create_test_design <- function(design_fn, extra_args = list()) {
3218
do.call(design_fn, args)
3319
}
3420

35-
# Shared validation function
36-
validate_design_output <- function(result) {
21+
# Validate fixed design outputs
22+
check_fixed_design_output <- function(result) {
3723
# Common checks
3824
expect_s3_class(result, "fixed_design")
3925
expect_equal(result$analysis$n, round(result$analysis$n))
@@ -55,22 +41,36 @@ validate_design_output <- function(result) {
5541
expect_true(result$input$study_duration > 0)
5642
}
5743

58-
# Parameterized tests for different design types
59-
test_that("to_integer works correctly for different design types", {
44+
# Validate fixed design summary
45+
check_fixed_design_summary <- function(summary_x) {
46+
expect_s3_class(summary_x, "tbl_df")
47+
expect_equal(ncol(summary_x), 7)
48+
expect_named(summary_x, c("Design", "N", "Events", "Time", "Bound", "alpha", "Power"), ignore.order = TRUE)
49+
50+
# Ensure values are within expected ranges
51+
expect_true(all(summary_x$N > 0))
52+
expect_true(all(summary_x$Events > 0))
53+
expect_true(all(summary_x$Time > 0))
54+
expect_true(all(summary_x$alpha > 0 & summary_x$alpha < 1))
55+
expect_true(all(summary_x$Power > 0 & summary_x$Power <= 1))
56+
}
57+
58+
# Parameterized tests for different fixed design types
59+
test_that("to_integer works correctly for different fixed design types", {
6060
designs <- list(
6161
list(fn = fixed_design_ahr, name = "ahr", extra_args = list()),
6262
list(fn = fixed_design_fh, name = "fh", extra_args = list(rho = 0.5, gamma = 0.5, ratio = 1)),
6363
list(fn = fixed_design_mb, name = "mb", extra_args = list(tau = 4, ratio = 1))
6464
)
6565

6666
for (design in designs) {
67-
x <- create_test_design(design$fn, design$extra_args) %>% to_integer()
68-
validate_design_output(x)
67+
x <- create_fixed_design(design$fn, design$extra_args) |> to_integer()
68+
check_fixed_design_output(x)
6969
expect_equal(x$design, design$name)
7070

7171
# Check summary output
7272
summary_x <- summary(x)
73-
test_summary_output(summary_x)
73+
check_fixed_design_summary(summary_x)
7474
}
7575
})
7676

@@ -84,7 +84,7 @@ test_that("fixed_design_ahr handles invalid inputs", {
8484
hr = c(1, .6), dropout_rate = .001
8585
),
8686
study_duration = 36
87-
), "must have 0 < alpha < 1 - beta < 1!")
87+
), "must have 0 < alpha < 1 - beta < 1")
8888

8989
expect_error(fixed_design_ahr(
9090
alpha = 0.025, power = 1.1,
@@ -94,7 +94,7 @@ test_that("fixed_design_ahr handles invalid inputs", {
9494
hr = c(1, .6), dropout_rate = .001
9595
),
9696
study_duration = 36
97-
), "must have 0 < alpha < 1 - beta < 1!")
97+
), "must have 0 < alpha < 1 - beta < 1")
9898

9999
expect_error(fixed_design_ahr(
100100
alpha = 0.025, power = 0.9,
@@ -104,25 +104,7 @@ test_that("fixed_design_ahr handles invalid inputs", {
104104
hr = c(1, .6), dropout_rate = .001
105105
),
106106
study_duration = -36
107-
), "The input argument `analysis_times` must be NULL a numeric vector with positive increasing values!")
108-
})
109-
110-
# Test to_integer with fixed_design_ahr
111-
test_that("to_integer with fixed_design_ahr returns correct results", {
112-
x <- create_test_design(fixed_design_ahr) %>% to_integer()
113-
validate_design_output(x)
114-
})
115-
116-
# Test to_integer with fixed_design_fh
117-
test_that("to_integer with fixed_design_fh returns correct results", {
118-
x <- create_test_design(fixed_design_fh, extra_args = list(rho = 0.5, gamma = 0.5, ratio = 1)) %>% to_integer()
119-
validate_design_output(x)
120-
})
121-
122-
# Test to_integer with fixed_design_mb
123-
test_that("to_integer with fixed_design_mb returns correct results", {
124-
x <- create_test_design(fixed_design_mb, extra_args = list(tau = 4, ratio = 1)) %>% to_integer()
125-
validate_design_output(x)
107+
), "The input argument `analysis_times` must be NULL a numeric vector with positive increasing values")
126108
})
127109

128110
test_that("to_integer.gs_design rounds events and sample sizes correctly for AHR", {
@@ -147,7 +129,6 @@ test_that("to_integer.gs_design rounds events and sample sizes correctly for AHR
147129
expect_true(all(abs(rounded_sample_sizes - result$analysis$n) < 0.5))
148130
})
149131

150-
151132
test_that("to_integer.gs_design handles WLR correctly", {
152133
# Create a mock gs_design object with WLR class
153134
design_wlr <- gs_design_wlr(
@@ -170,7 +151,6 @@ test_that("to_integer.gs_design handles WLR correctly", {
170151
expect_true(all(abs(rounded_sample_sizes - result$analysis$n) < 0.5))
171152
})
172153

173-
174154
test_that("to_integer.gs_design handles RD class correctly", {
175155
# Create a mock gs_design object with RD class
176156
design_rd <- gs_design_rd(
@@ -193,7 +173,6 @@ test_that("to_integer.gs_design handles RD class correctly", {
193173
expect_true(all(abs(rounded_sample_sizes - result$analysis$n) < 0.5))
194174
})
195175

196-
197176
test_that("to_integer.gs_design handles calendar-based spending correctly", {
198177
# Create a mock gs_design object with calendar-based spending
199178
design_ahr <- gs_design_ahr(
@@ -233,6 +212,6 @@ test_that("to_integer.gs_design performs correctly with large sample sizes", {
233212
result$analysis$n <- round(result$analysis$n)
234213

235214
# Check that rounding and transformations work as expected
236-
expect_true(all(result$analysis$event %% 1 == 0)) # Ensure events are integers
237-
expect_true(all(result$analysis$n %% 1 == 0)) # Ensure sample sizes are integers
215+
expect_true(all(result$analysis$event %% 1 == 0)) # Ensure events are integers
216+
expect_true(all(result$analysis$n %% 1 == 0)) # Ensure sample sizes are integers
238217
})

0 commit comments

Comments
 (0)