Nothing
test_that("toInteger() handles gsDesign objects", {
# Create a gsDesign object
x <- gsDesign(k = 3, test.type = 2, alpha = 0.025, beta = 0.1, delta = 0.5)
# Test toInteger() with a non-survival design
result <- toInteger(x, ratio = 1)
# Check if the output retains the class gsDesign
expect_s3_class(result, "gsDesign")
# Ensure the final count is rounded up to the nearest multiple of (ratio + 1)
expect_true(result$n.I[x$k] %% (1 + 1) == 0)
})
test_that("toInteger() handles gsDesign object integer conversion correctly", {
# Create a gsDesign object with n.fix
x <- gsDesign(k = 3, test.type = 4, alpha = 0.025, beta = 0.1, n.fix = 300)
# Test toInteger() with ratio = 3
result <- toInteger(x, ratio = 3)
# Check that all n.I values are integers
expect_true(all(result$n.I == floor(result$n.I)))
# Check that final n.I is a multiple of ratio + 1
expect_equal(result$n.I[x$k] %% (3 + 1), 0)
})
test_that("toInteger() handles gsSurv object integer conversion correctly", {
# Create a gsSurv object
x <- gsSurv(
k = 3,
test.type = 4,
alpha = 0.025,
beta = 0.1,
timing = c(0.45, 0.7),
sfu = sfHSD,
sfupar = -4,
sfl = sfLDOF,
sflpar = 0,
lambdaC = 0.001,
hr = 0.3,
hr0 = 0.7,
eta = 5e-04,
gamma = 10,
R = 16,
T = 24,
minfup = 8,
ratio = 2
)
# Test with a different ratio
result <- toInteger(x, ratio = 2)
# Test if the final sample size is a multiple of ratio + 1
expect_true(result$n.I[x$k] %% (2 + 1) == 0)
# Ensure final count is rounded up correctly when roundUpFinal is TRUE
expect_equal(result$n.I[x$k], ceiling(x$n.I[x$k]))
})
test_that("toInteger() handles edge case where no rounding is needed", {
x <- gsDesign(k = 3, test.type = 1, alpha = 0.05, beta = 0.2, n.fix = 150)
# Call toInteger() with a ratio of 0 (no adjustment needed)
result <- toInteger(x, ratio = 0)
# Check if all values are integers
expect_true(all(result$n.I == floor(result$n.I)))
})
test_that("toInteger() raises an error when n.I contains negative values", {
# Create a gsDesign object with arbitrary settings
x_test <- gsDesign(k = 3, test.type = 2, alpha = 0.025, beta = 0.1, sfu = sfHSD, sfupar = -4)
# Set n.I with a negative value
x_test$n.I <- c(100, 200, -250.5) # Negative value to trigger the error
# Check that toInteger raises an error
expect_error(
toInteger(x_test, ratio = 3, roundUpFinal = TRUE),
"maxn.IPlan not on interval \\[0, Inf\\]"
)
})
test_that("toInteger() prints a message for invalid ratio values", {
# Create a valid gsDesign object with n.fix
x_test <- gsDesign(k = 3, test.type = 1, alpha = 0.025, beta = 0.1, n.fix = 300)
# Test for negative ratio
expect_message(
toInteger(x_test, ratio = -1),
"rounding done to nearest integer since ratio was not specified as postive integer"
)
# Test for non-integer ratio (numeric)
expect_message(
toInteger(x_test, ratio = 2.5),
"rounding done to nearest integer since ratio was not specified as postive integer"
)
# Test for non-numeric ratio
expect_message(
toInteger(x_test, ratio = "two"),
"rounding done to nearest integer since ratio was not specified as postive integer"
)
# Test for NULL ratio
expect_message(
toInteger(x_test, ratio = NULL),
"rounding done to nearest integer since ratio was not specified as postive integer"
)
})
test_that("toInteger() throws an error when input is not a gsDesign object", {
invalid_object <- data.frame(a = 1, b = 2) # Not a gsDesign object
expect_error(toInteger(invalid_object), "must have class gsDesign as input")
})
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.