Nothing
# TODO: Go through and quickly make sure the other arguments work, like `and` and `hyphenate`
test_that("`ntimes_friendly()` works", {
# Basic uses
expect_equal(
ntimes_friendly(c(1:5, 1001)),
c("once", "twice", "three times", "four times", "five times", "one thousand one times")
)
expect_equal(
ntimes_friendly(-c(1:5, 1001)),
c(
"negative once", "negative twice", "negative three times",
"negative four times", "negative five times", "negative one thousand one times"
)
)
# Special numbers
expect_equal(
ntimes_friendly(c(0, NaN, NA, -Inf, Inf)),
c(
"no times", "an undefined number of times", "an unknown number of times",
"negative infinite times", "infinite times"
)
)
# Special number arguments
expect_equal(
ntimes_friendly(
c(1, 2, 3, 0, NaN, NA, -Inf, Inf),
one = "1",
two = "2",
three = "3",
na = "NA",
nan = "NaN",
inf = "Inf",
zero = "0",
negative = "-"
),
paste(c(1, 2, 3, 0, NaN, NA, -Inf, Inf))
)
# Empty input
expect_identical(ntimes_friendly(integer()), character())
expect_identical(ntimes_friendly(numeric()), character())
})
test_that("`ntimes_friendly_safe()` enforces input types", {
expect_input_error <- function(object) {
expect_error(object, class = "friendlynumber_error_input_type")
}
int <- 1L
fraction <- 0.5
twochr <- c("a", "b")
string <- "A"
bool <- FALSE
expect_input_error(ntimes_friendly_safe(bool))
expect_input_error(ntimes_friendly_safe(fraction))
expect_input_error(ntimes_friendly_safe(int, one = int))
expect_input_error(ntimes_friendly_safe(int, two = twochr))
expect_input_error(ntimes_friendly_safe(int, three = int))
expect_input_error(ntimes_friendly_safe(int, zero = twochr))
expect_input_error(ntimes_friendly_safe(int, na = int))
expect_input_error(ntimes_friendly_safe(int, nan = twochr))
expect_input_error(ntimes_friendly_safe(int, inf = int))
expect_input_error(ntimes_friendly_safe(int, negative = twochr))
expect_input_error(ntimes_friendly_safe(int, and = int))
expect_input_error(ntimes_friendly_safe(int, hyphenate = NA))
expect_no_error(ntimes_friendly_safe(int))
expect_no_error(
ntimes_friendly_safe(
numbers = int,
one = string,
two = string,
three = string,
zero = string,
na = string,
nan = string,
negative = string,
and = bool,
hyphenate = bool
)
)
})
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.