Nothing
context("Pretty bytes")
test_that("sizes.R is standalone", {
stenv <- environment(format_bytes$pretty_bytes)
objs <- ls(stenv, all.names = TRUE)
funs <- Filter(function(x) is.function(stenv[[x]]), objs)
funobjs <- mget(funs, stenv)
for (f in funobjs) expect_identical(environmentName(topenv(f)), "base")
expect_message(
mapply(codetools::checkUsage, funobjs, funs,
MoreArgs = list(report = message)),
NA)
})
test_that("pretty_bytes gives errors on invalid input", {
expect_error(pretty_bytes(''), 'is.numeric.*is not TRUE')
expect_error(pretty_bytes('1'), 'is.numeric.*is not TRUE')
expect_error(pretty_bytes(TRUE), 'is.numeric.*is not TRUE')
expect_error(pretty_bytes(list(1,2,3)), 'is.numeric.*is not TRUE')
})
test_that("pretty_bytes converts properly", {
expect_equal(pretty_bytes(0), '0 B')
expect_equal(pretty_bytes(10), '10 B')
expect_equal(pretty_bytes(999), '999 B')
expect_equal(pretty_bytes(1001), '1.00 kB')
expect_equal(pretty_bytes(1000 * 1000 - 1), '1.00 MB')
expect_equal(pretty_bytes(1e16), '10 PB')
expect_equal(pretty_bytes(1e30), '1000000 YB')
})
test_that("pretty_bytes handles NA and NaN", {
expect_equal(pretty_bytes(NA_real_), "NA B")
expect_equal(pretty_bytes(NA_integer_), "NA B")
expect_error(pretty_bytes(NA_character_), 'is.numeric.*is not TRUE')
expect_error(pretty_bytes(NA), 'is.numeric.*is not TRUE')
expect_equal(pretty_bytes(NaN), "NaN B")
})
test_that("pretty_bytes handles vectors", {
expect_equal(pretty_bytes(1:10), paste(format(1:10), "B"))
v <- c(NA, 1, 1e4, 1e6, NaN, 1e5)
expect_equal(pretty_bytes(v),
c(" NA B", " 1 B", " 10 kB", " 1 MB", " NaN B", "100 kB"))
expect_equal(pretty_bytes(numeric()), character())
})
test_that("pretty_bytes nopad style", {
v <- c(NA, 1, 1e4, 1e6, NaN, 1e5)
expect_equal(pretty_bytes(v, style = "nopad"),
c("NA B", "1 B", "10 kB", "1 MB", "NaN B", "100 kB"))
expect_equal(pretty_bytes(numeric(), style = "nopad"), character())
})
test_that("pretty_bytes handles negative values", {
v <- c(NA, -1, 1e4, 1e6, NaN, -1e5)
expect_equal(pretty_bytes(v),
c(" NA B", " -1 B", " 10 kB", " 1 MB", " NaN B", "-100 kB"))
})
test_that("always two fraction digits", {
expect_equal(
pretty_bytes(c(5.6, 5, NA) * 1000 * 1000),
c("5.60 MB", " 5 MB", " NA B")
)
})
test_that("6 width style", {
cases <- c(
"< 0 kB" = -1e4, # 1
"< 0 kB" = -100, # 2
"< 0 kB" = -1, # 3
"0.0 kB" = 0, # 4
"0.0 kB" = 1, # 5
"0.0 kB" = 9, # 6
"0.0 kB" = 9.99999, # 7
"0.0 kB" = 10.33333, # 8
"0.1 kB" = 100, # 9
"0.1 kB" = 111.33333, # 10
"1.0 kB" = 1e3, # 11
"1.0 kB" = 1049, # 12
"1.1 kB" = 1051, # 13
"1.1 kB" = 1100, # 14
" 10 kB" = 1e4, # 15
"100 kB" = 1e5, # 16
"1.0 MB" = 1e6, # 17
"NaN kB" = NaN, # 18
" NA kB" = NA # 19
)
expect_equal(pretty_bytes(unname(cases), style = "6"), names(cases))
})
test_that("No fractional bytes (#23)", {
cases <- c(
" -1 B" = -1, # 1
" 1 B" = 1, # 2
" 16 B" = 16, # 3
" 128 B" = 128, # 4
" 1.02 kB" = 1024, # 5
"16.38 kB" = 16384, # 6
" 1.05 MB" = 1048576, # 7
"-1.05 MB" = -1048576, # 8
" NA B" = NA # 9
)
expect_equal(pretty_bytes(unname(cases)), names(cases))
})
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.