context("format d")
test_that("fmt_new(\"d\") can zero fill", {
f <- fmt_new("08d")
expect_equal(f(0), "00000000")
expect_equal(f(42), "00000042")
expect_equal(f(42000000), "42000000")
expect_equal(f(420000000), "420000000")
expect_equal(f(-4), "-0000004")
expect_equal(f(-42), "-0000042")
expect_equal(f(-4200000), "-4200000")
expect_equal(f(-42000000), "-42000000")
})
test_that("fmt_new(\"d\") can space fill", {
f <- fmt_new("8d")
expect_equal(f(0), " 0")
expect_equal(f(42), " 42")
expect_equal(f(42000000), "42000000")
expect_equal(f(420000000), "420000000")
expect_equal(f(-4), " -4")
expect_equal(f(-42), " -42")
expect_equal(f(-4200000), "-4200000")
expect_equal(f(-42000000), "-42000000")
})
test_that("fmt_new(\"d\") can underscore fill", {
f <- fmt_new("_>8d")
expect_equal(f(0), "_______0")
expect_equal(f(42), "______42")
expect_equal(f(42000000), "42000000")
expect_equal(f(420000000), "420000000")
expect_equal(f(-4), "______-4")
expect_equal(f(-42), "_____-42")
expect_equal(f(-4200000), "-4200000")
expect_equal(f(-42000000), "-42000000")
})
test_that("fmt_new(\"d\") can zero fill with sign and group", {
f <- fmt_new("+08,d")
expect_equal(f(0), "+0,000,000")
expect_equal(f(42), "+0,000,042")
expect_equal(f(42000000), "+42,000,000")
expect_equal(f(420000000), "+420,000,000")
expect_equal(f(-4), "-0,000,004")
expect_equal(f(-42), "-0,000,042")
expect_equal(f(-4200000), "-4,200,000")
expect_equal(f(-42000000), "-42,000,000")
})
test_that("fmt_new(\"d\") always uses zero precision", {
f <- fmt_new(".2d")
expect_equal(f(0), "0")
expect_equal(f(42), "42")
expect_equal(f(-4.2), "-4")
})
test_that("fmt_new(\"d\") rounds non-integers", {
f <- fmt_new("d")
expect_equal(f(4.2), "4")
})
test_that("fmt_new(\",d\") can group thousands", {
f <- fmt_new(",d")
expect_equal(f(0), "0")
expect_equal(f(42), "42")
expect_equal(f(42000000), "42,000,000")
expect_equal(f(420000000), "420,000,000")
expect_equal(f(-4), "-4")
expect_equal(f(-42), "-42")
expect_equal(f(-4200000), "-4,200,000")
expect_equal(f(-42000000), "-42,000,000")
# expect_equal(f(1e21), "1e+21")
})
test_that("fmt_new(\"0,d\") can group thousands and zero fill", {
expect_equal(fmt_new("01,d")(0), "0")
expect_equal(fmt_new("01,d")(0), "0")
expect_equal(fmt_new("02,d")(0), "00")
expect_equal(fmt_new("03,d")(0), "000")
expect_equal(fmt_new("04,d")(0), "0,000")
expect_equal(fmt_new("05,d")(0), "0,000")
expect_equal(fmt_new("06,d")(0), "00,000")
expect_equal(fmt_new("08,d")(0), "0,000,000")
expect_equal(fmt_new("013,d")(0), "0,000,000,000")
expect_equal(fmt_new("021,d")(0), "0,000,000,000,000,000")
expect_equal(fmt_new("013,d")(-42000000), "-0,042,000,000")
#expect_equal(fmt_new("012,d")(1e21), "0,000,001e+21")
#expect_equal(fmt_new("013,d")(1e21), "0,000,001e+21")
#expect_equal(fmt_new("014,d")(1e21), "00,000,001e+21")
#expect_equal(fmt_new("015,d")(1e21), "000,000,001e+21")
})
test_that("fmt_new(\"0,d\") can group thousands and zero fill with overflow", {
expect_equal(fmt_new("01,d")(1), "1")
expect_equal(fmt_new("01,d")(1), "1")
expect_equal(fmt_new("02,d")(12), "12")
expect_equal(fmt_new("03,d")(123), "123")
expect_equal(fmt_new("05,d")(12345), "12,345")
expect_equal(fmt_new("08,d")(12345678), "12,345,678")
#expect_equal(fmt_new("013,d")(1234567890123), "1,234,567,890,123")
})
test_that("fmt_new(\",d\") can group thousands and space fill", {
expect_equal(fmt_new("1,d")(0), "0")
expect_equal(fmt_new("1,d")(0), "0")
expect_equal(fmt_new("2,d")(0), " 0")
expect_equal(fmt_new("3,d")(0), " 0")
expect_equal(fmt_new("5,d")(0), " 0")
expect_equal(fmt_new("8,d")(0), " 0")
expect_equal(fmt_new("13,d")(0), " 0")
expect_equal(fmt_new("21,d")(0), " 0")
})
test_that("fmt_new(\",d\") can group thousands and space fill with overflow", {
expect_equal(fmt_new("1,d")(1), "1")
expect_equal(fmt_new("1,d")(1), "1")
expect_equal(fmt_new("2,d")(12), "12")
expect_equal(fmt_new("3,d")(123), "123")
expect_equal(fmt_new("5,d")(12345), "12,345")
expect_equal(fmt_new("8,d")(12345678), "12,345,678")
#expect_equal(fmt_new("13,d")(1234567890123), "1,234,567,890,123")
})
test_that("fmt_new(\"<d\") align left", {
expect_equal(fmt_new("<1,d")(0), "0")
expect_equal(fmt_new("<1,d")(0), "0")
expect_equal(fmt_new("<2,d")(0), "0 ")
expect_equal(fmt_new("<3,d")(0), "0 ")
expect_equal(fmt_new("<5,d")(0), "0 ")
expect_equal(fmt_new("<8,d")(0), "0 ")
expect_equal(fmt_new("<13,d")(0), "0 ")
expect_equal(fmt_new("<21,d")(0), "0 ")
})
test_that("fmt_new(\">d\") align right", {
expect_equal(fmt_new(">1,d")(0), "0")
expect_equal(fmt_new(">1,d")(0), "0")
expect_equal(fmt_new(">2,d")(0), " 0")
expect_equal(fmt_new(">3,d")(0), " 0")
expect_equal(fmt_new(">5,d")(0), " 0")
expect_equal(fmt_new(">8,d")(0), " 0")
expect_equal(fmt_new(">13,d")(0), " 0")
expect_equal(fmt_new(">21,d")(0), " 0")
expect_equal(fmt_new(">21,d")(1000), " 1,000")
#expect_equal(fmt_new(">21,d")(1e21), " 1e+21")
})
test_that("fmt_new(\"^d\") align center", {
expect_equal(fmt_new("^1,d")(0), "0")
expect_equal(fmt_new("^1,d")(0), "0")
expect_equal(fmt_new("^2,d")(0), "0 ")
expect_equal(fmt_new("^3,d")(0), " 0 ")
expect_equal(fmt_new("^5,d")(0), " 0 ")
expect_equal(fmt_new("^8,d")(0), " 0 ")
expect_equal(fmt_new("^13,d")(0), " 0 ")
expect_equal(fmt_new("^21,d")(0), " 0 ")
expect_equal(fmt_new("^21,d")(1000), " 1,000 ")
#expect_equal(fmt_new("^21,d")(1e21), " 1e+21 ")
})
test_that("fmt_new(\"=+,d\") pad after sign", {
expect_equal(fmt_new("=+1,d")(0), "+0")
expect_equal(fmt_new("=+1,d")(0), "+0")
expect_equal(fmt_new("=+2,d")(0), "+0")
expect_equal(fmt_new("=+3,d")(0), "+ 0")
expect_equal(fmt_new("=+5,d")(0), "+ 0")
expect_equal(fmt_new("=+8,d")(0), "+ 0")
expect_equal(fmt_new("=+13,d")(0), "+ 0")
expect_equal(fmt_new("=+21,d")(0), "+ 0")
#expect_equal(fmt_new("=+21,d")(1e21), "+ 1e+21")
})
test_that("fmt_new(\"=+$,d\") pad after sign with currency", {
expect_equal(fmt_new("=+$1,d")(0), "+$0")
expect_equal(fmt_new("=+$1,d")(0), "+$0")
expect_equal(fmt_new("=+$2,d")(0), "+$0")
expect_equal(fmt_new("=+$3,d")(0), "+$0")
expect_equal(fmt_new("=+$5,d")(0), "+$ 0")
expect_equal(fmt_new("=+$8,d")(0), "+$ 0")
expect_equal(fmt_new("=+$13,d")(0), "+$ 0")
expect_equal(fmt_new("=+$21,d")(0), "+$ 0")
#expect_equal(fmt_new("=+$21,d")(1e21), "+$ 1e+21")
})
test_that("fmt_new(\",d\") a space can denote positive numbers", {
expect_equal(fmt_new(" 1,d")(-1), "-1")
expect_equal(fmt_new(" 1,d")(0), " 0")
expect_equal(fmt_new(" 2,d")(0), " 0")
expect_equal(fmt_new(" 3,d")(0), " 0")
expect_equal(fmt_new(" 5,d")(0), " 0")
expect_equal(fmt_new(" 8,d")(0), " 0")
expect_equal(fmt_new(" 13,d")(0), " 0")
expect_equal(fmt_new(" 21,d")(0), " 0")
# expect_equal(fmt_new(" 21,d")(1e21), " 1e+21")
})
test_that("fmt_new(\"-,d\") explicitly only use a sign for negative numbers", {
expect_equal(fmt_new("-1,d")(-1), "-1")
expect_equal(fmt_new("-1,d")(0), "0")
expect_equal(fmt_new("-2,d")(0), " 0")
expect_equal(fmt_new("-3,d")(0), " 0")
expect_equal(fmt_new("-5,d")(0), " 0")
expect_equal(fmt_new("-8,d")(0), " 0")
expect_equal(fmt_new("-13,d")(0), " 0")
expect_equal(fmt_new("-21,d")(0), " 0")
})
test_that("fmt_new(\"d\") can format negative zero as zero", {
expect_equal(fmt_new("1d")(-0), "0")
expect_equal(fmt_new("1d")(-1e-12), "0")
})
test_that("fmt_new(\"d\") works with special values", {
f <- fmt_new("d")
expect_equal(f(c(NA, NaN, Inf, -Inf)), c("NA", "NaN", "Inf", "-Inf"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.