tests/testthat/test-pad_c.R

# ---------------------------------------------------------------------------- #
test_that("pad_c works for 1 vector", {
  vec1 <- c("Avocado:", "Blueberry:", "Coconut:", "Dill:")
  actval <- pad_c(vec1)

  expval <- c(
    "Avocado:",
    "Blueberry:",
    "Coconut:",
    "Dill:"
  )

  expect_equal(actval, expval)
})

# ---------------------------------------------------------------------------- #
test_that("pad_c works for 2 vectors", {
  vec1 <- c("Avocado:", "Blueberry:", "Coconut:", "Dill:")
  vec2 <- c(rep("fruit", 3), "herb")
  actval <- pad_c(vec1, vec2)

  expval <- c(
    "Avocado:   fruit",
    "Blueberry: fruit",
    "Coconut:   fruit",
    "Dill:      herb"
  )

  expect_equal(actval, expval)
})

# ---------------------------------------------------------------------------- #
test_that("pad_c works for 3 vectors", {
  vec1 <- c("Avocado:", "Blueberry:", "Coconut:", "Dill:")
  vec2 <- c(rep("fruit", 3), "herb")
  vec3 <- c("green", "purple", "white", "green")
  actval <- pad_c(vec1, vec2, vec3)

  expval <- c(
    "Avocado:   fruit green",
    "Blueberry: fruit purple",
    "Coconut:   fruit white",
    "Dill:      herb  green"
  )

  expect_equal(actval, expval)
})

# ---------------------------------------------------------------------------- #
test_that("pad_c works for 1 vector with non-default collapse", {
  vec1 <- c("Avocado:", "Blueberry:", "Coconut:", "Dill:")
  actval <- pad_c(vec1, collapse = "#")

  expval <- "Avocado:#Blueberry:#Coconut:#Dill:"

  expect_equal(actval, expval)
})

# ---------------------------------------------------------------------------- #
test_that("pad_c works for 2 vectors with non-default collapse", {
  vec1 <- c("Avocado:", "Blueberry:", "Coconut:", "Dill:")
  vec2 <- c(rep("fruit", 3), "herb")
  actval <- pad_c(vec1, vec2, collapse = "; ")

  expval <- paste0(
    "Avocado:   fruit; Blueberry: fruit;",
    " Coconut:   fruit; Dill:      herb"
  )

  expect_equal(actval, expval)
})

# ---------------------------------------------------------------------------- #
test_that("pad_c works for 2 vectors with newline collapse", {
  vec1 <- c("Avocado:", "Blueberry:", "Coconut:", "Dill:")
  vec2 <- c(rep("fruit", 3), "herb")
  actval <- pad_c(vec1, vec2, collapse = "\n")

  expval <- paste0(
    "Avocado:   fruit\nBlueberry: fruit",
    "\nCoconut:   fruit\nDill:      herb"
  )

  expect_equal(actval, expval)
})

# ---------------------------------------------------------------------------- #
test_that("pad_c works for 2 vectors with non-default sep", {
  vec1 <- c("Avocado:", "Blueberry:", "Coconut:", "Dill:")
  vec2 <- c(rep("fruit", 3), "herb")
  actval <- pad_c(vec1, vec2, sep = "#")

  expval <- c(
    "Avocado:  #fruit",
    "Blueberry:#fruit",
    "Coconut:  #fruit",
    "Dill:     #herb"
  )

  expect_equal(actval, expval)
})

# ---------------------------------------------------------------------------- #
test_that("pad_c works for 2 vectors with multi-character sep", {
  vec1 <- c("Avocado:", "Blueberry:", "Coconut:", "Dill:")
  vec2 <- c(rep("fruit", 3), "herb")
  actval <- pad_c(vec1, vec2, sep = "-> ")

  expval <- c(
    "Avocado:  -> fruit",
    "Blueberry:-> fruit",
    "Coconut:  -> fruit",
    "Dill:     -> herb"
  )

  expect_equal(actval, expval)
})

# ---------------------------------------------------------------------------- #
test_that("pad_c works for 1 vector with padding applied to all vecs", {
  vec1 <- c("Avocado:", "Blueberry:", "Coconut:", "Dill:")
  actval <- pad_c(vec1, pad_last = TRUE)

  expval <- c(
    "Avocado:  ",
    "Blueberry:",
    "Coconut:  ",
    "Dill:     "
  )

  expect_equal(actval, expval)
})

# ---------------------------------------------------------------------------- #
test_that("pad_c works for 1 vec with all vecs padded + non-default collapse", {
  vec1 <- c("Avocado:", "Blueberry:", "Coconut:", "Dill:")
  actval <- pad_c(vec1, pad_last = TRUE, collapse = "#")

  expval <- "Avocado:  #Blueberry:#Coconut:  #Dill:     "

  expect_equal(actval, expval)
})

# ---------------------------------------------------------------------------- #
test_that("pad_c works for 3 vectors with padding applied to all vecs", {
  vec1 <- c("Avocado:", "Blueberry:", "Coconut:", "Dill:")
  vec2 <- c(rep("fruit", 3), "herb")
  vec3 <- c("green", "purple", "white", "green")
  actval <- pad_c(vec1, vec2, vec3, pad_last = TRUE)

  expval <- c(
    "Avocado:   fruit green ",
    "Blueberry: fruit purple",
    "Coconut:   fruit white ",
    "Dill:      herb  green "
  )

  expect_equal(actval, expval)
})

# ---------------------------------------------------------------------------- #
test_that("pad_c works for 3 vectors with newline collapse", {
  vec1 <- c("Avocado:", "Blueberry:", "Coconut:", "Dill:")
  vec2 <- c(rep("fruit", 3), "herb")
  vec3 <- c("green", "purple", "white", "green")
  actval <- pad_c(vec1, vec2, vec3, collapse = "\n")

  expval <- paste0(
    "Avocado:   fruit green\n",
    "Blueberry: fruit purple\n",
    "Coconut:   fruit white\n",
    "Dill:      herb  green"
  )

  expect_equal(actval, expval)
})

# ---------------------------------------------------------------------------- #
toniprice/jute documentation built on Jan. 11, 2023, 8:23 a.m.