library(optedr)
test_that("rounding works", {
design_test <- data.frame("Point" = seq(1, 5, length.out = 7), "Weight" = c(0.1, 0.0001, 0.2, 0.134, 0.073, 0.2111, 0.2818))
eff1 <- evaluate_promise(efficient_round(design_test, 21))
rounded1 <- data.frame("Point" = c(1.000000, 1.666667, 2.333333, 3, 3.666667, 4.333333, 5), "Weight" = c(2, 1, 4, 3, 2, 4, 5))
expect_true(all(mapply(`==`, round(eff1$result, 6), round(rounded1, 6))))
eff2 <- evaluate_promise(efficient_round(design_test, 20))
rounded2 <- data.frame("Point" = c(1.000000, 1.666667, 2.333333, 3, 3.666667, 4.333333, 5), "Weight" = c(2, 1, 4, 3, 1, 4, 5))
expect_true(all(mapply(`==`, round(eff2$result, 6), round(rounded2, 6))))
expect_equal(eff2$messages, c("i The proposed size of rounding is greater than n: \n2 1 4 3 2 4 5\n", "i An alternative with size n is returned\n" ))
})
test_that("rounding errors", {
design_test <- data.frame("Point" = seq(1, 5, length.out = 7), "Weight" = c(0.1, 0.0001, 0.2, 0.134, 0.073, 0.2111, 0.2818))
# Negative n
expect_error(efficient_round(design_test, -21), "n must be a possitive integer")
# Decimal n
expect_error(efficient_round(design_test, 6.3), "n must be a possitive integer")
# Wrong column names
design_test2 <- data.frame("Points" = seq(1, 5, length.out = 7), "Weight" = c(0.1, 0.0001, 0.2, 0.134, 0.073, 0.2111, 0.2818))
expect_error(efficient_round(design_test2, 15), "'Point' and 'Weight'")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.