tests/testthat/test-guess-delim.R

test_that("detect comma delimiter", {
  f <- system.file(package = "fpeek", "datafiles", "test-comma.csv")
  result <- peek_guess_delim(f)
  expect_equal(result$delim, ",")
  expect_equal(result$quote, "\"")
  expect_equal(result$decimal_mark, ".")
})

test_that("detect semicolon delimiter", {
  f <- system.file(package = "fpeek", "datafiles", "test-semicolon.csv")
  result <- peek_guess_delim(f)
  expect_equal(result$delim, ";")
  expect_equal(result$quote, "\"")
  expect_equal(result$decimal_mark, ",")
})

test_that("detect tab delimiter", {
  f <- system.file(package = "fpeek", "datafiles", "test-tab.csv")
  result <- peek_guess_delim(f)
  expect_equal(result$delim, "\t")
  expect_equal(result$quote, "\"")
})

test_that("detect pipe delimiter", {
  f <- system.file(package = "fpeek", "datafiles", "test-pipe.csv")
  result <- peek_guess_delim(f)
  expect_equal(result$delim, "|")
  expect_equal(result$quote, "\"")
})

test_that("empty file returns NULLs", {
  f <- tempfile(fileext = ".csv")
  writeLines(character(0), f)
  result <- peek_guess_delim(f)
  expect_null(result$delim)
  expect_null(result$quote)
  expect_null(result$decimal_mark)
  unlink(f)
})

test_that("single column file returns NULLs", {
  f <- tempfile(fileext = ".csv")
  writeLines(c("a", "b", "c"), f)
  result <- peek_guess_delim(f)
  expect_null(result$delim)
  expect_null(result$quote)
  expect_null(result$decimal_mark)
  unlink(f)
})

test_that("result is a named list", {
  f <- system.file(package = "fpeek", "datafiles", "test-comma.csv")
  result <- peek_guess_delim(f)
  expect_type(result, "list")
  expect_named(result, c("delim", "quote", "decimal_mark"))
})

Try the fpeek package in your browser

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

fpeek documentation built on April 2, 2026, 5:07 p.m.