# Test toInteger
test_that("Test: toInteger with invalid input", {
M <- "a"
expect_error(
toInteger(x = M),
info = "Test toInteger with invalid input"
)
})
test_that("Test: toInteger for fractional and negative values", {
x <- gsDesign(n.fix = 100)
M <- 55.9
expect_message(
toInteger(x, ratio = M),
info = "Test toInteger for floating values"
)
M <- -1
expect_message(
toInteger(x, ratio = M),
info = "Test toInteger for negative value of ratio"
)
# Note that x$ratio = NULL
expect_message(
toInteger(x),
info = "Test toInteger for NULL value of ratio"
)
})
test_that("Test: toInteger for even sample size", {
x <- gsDesign(n.fix = 100)
expect_true(
max(toInteger(x, ratio = 1)$n.I) %% 2 == 0,
info = "Test toInteger for floating value with decimal value 0"
)
})
test_that("Test: toInteger for multiple of 5", {
x <- gsDesign(n.fix = 100)
expect_true(
max(toInteger(x, ratio = 4)$n.I) %% 5 == 0,
info = "Test toInteger for floating value with decimal value 0"
)
})
# Now test survival endpoint
test_that("Test: toInteger for survival endpoint event count works properly", {
# This gives 252.1852 as sample size, 227.1393 as final event count
x <- gsSurvCalendar(hr = 0.64)
# Should round event counts (up for final) and
# round up final event count final sample size only as well
y <- toInteger(x)
# Interim event counts rounded
expect_equal(min(abs(round(x$n.I[1:x$k - 1]) - y$n.I[1:x$k - 1])), 0)
# Final event count round up
expect_true(
(y$n.I - x$n.I)[x$k] >= 0,
info = "Test toInteger of gsSurv rounds up final event count"
)
# Final sample size rounds to even
expect_true(as.integer((y$eNC + y$eNE)[x$k]) %% 2 == 0)
# Final event count rounds up
expect_gte((y$eNC + y$eNE - x$eNC - x$eNE)[x$k], 0)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.