test_that("gracefully handles bad input works", { number_auto <- label_number_auto() expect_equal(number_auto(NULL), character()) expect_equal(number_auto(numeric()), character()) expect_equal(number_auto(NA), "NA") expect_equal(number_auto(Inf), "Inf") }) test_that("tricky breaks don't change unexpectedly", { expect_snapshot({ number_auto <- label_number_auto() number_auto(c(0, 0.000001)) number_auto(c(0.0009, 0.0010, 0.0011)) number_auto(c(0.00009, 0.00010, 0.00011)) number_auto(c(0.000009, 0.000010, 0.000011)) number_auto(c(999, 1000, 1001)) number_auto(c(999999, 1000000, 1000001)) number_auto(c(9999999, 10000000, 10000001)) number_auto(c(99999999, 100000000, 100000001)) number_auto(c(0.0000009, 0.0000010, 0.0000011)) "Years shouldn't get commas" number_auto(c(2010, 2013, 2020)) number_auto(c(-2010, -2013, -2020)) "Pick shortest individually" number_auto(10^(1:7)) }) }) test_that("single values > 1e+06 don't throw error", { expect_equal(label_number_auto()(30925005), "30 925 005") })