tests/testthat/test-cut.R

test_that("cut works the same by default (with certain sep and format_fun)", {
  x <- runif(10)
  breaks <- seq(0, 1, by = 0.25)
  for (right in c(FALSE, TRUE)) {
    for (include.lowest in c(FALSE, TRUE)) {
      eval(bquote(
        expect_identical(
          cut_format(x, breaks,
            right = .(right), include.lowest = .(include.lowest),
            format_fun = formatC, sep = ","
          ),
          cut(x, breaks, right = .(right), include.lowest = .(include.lowest))
        )
      ))
    }
  }
})

test_that("cut is better", {
  x <- seq(0.1, 0.9, by = 0.2)
  breaks <- seq(0, 1, by = 0.25)
  expect_identical(
    cut_format(x, breaks),
    structure(
      c(1L, 2L, 2L, 3L, 4L),
      .Label = c("(0.00, 0.25]", "(0.25, 0.50]", "(0.50, 0.75]", "(0.75, 1.00]"),
      class = "factor"
    )
  )
})

test_that("custom parentheses", {
  x <- seq(0.1, 0.9, by = 0.2)
  breaks <- seq(0, 1, by = 0.25)
  expect_identical(
    cut_format(x, breaks, paren = c("<", "{", ">", "}")),
    structure(
      c(1L, 2L, 2L, 3L, 4L),
      .Label = c("<0.00, 0.25}", "<0.25, 0.50}", "<0.50, 0.75}", "<0.75, 1.00}"),
      class = "factor"
    )
  )
})

test_that("custom parentheses", {
  expect_error(cut_format(1:10, breaks = 10L), "breaks")
})

test_that("cut_format has same interface", {
  common_names <- intersect(names(formals(cut.default)), names(formals(cut_format)))
  expect_true(all(diff(match(common_names, names(formals(cut.default)))) > 0))
  expect_true(all(diff(match(common_names, names(formals(cut_format)))) > 0))
  expect_identical(
    setdiff(names(formals(cut.default)), common_names),
    c("labels", "dig.lab")
  )
  expect_identical(
    setdiff(names(formals(cut_format)), common_names),
    c("format_fun", "sep", "paren")
  )
})

Try the kimisc package in your browser

Any scripts or data that you put into this service are public.

kimisc documentation built on April 3, 2025, 6:39 p.m.