library(testthat)
library(jeksterslabRutils)
context("Test util_list2vector.")

Parameters

index <- vector(mode = "list", length = 3)
index[[1]] <- list(
  firstname = "Ivan Jacob",
  lastname = "Pesigan",
  province = "BC",
  number = 27
)
index[[2]] <- list(
  firstname = "John",
  lastname = "Doe",
  province = "Ontario",
  number = 98
)
index[[3]] <- list(
  firstname = "Hakuna",
  lastname = "Matata",
  number = 12
)
knitr::kable(
  x = data.frame(
    Variable = "`index`",
    Description = "List."
  ),
  row.names = FALSE
)
Variable Description
index List.
index
#> [[1]]
#> [[1]]$firstname
#> [1] "Ivan Jacob"
#> 
#> [[1]]$lastname
#> [1] "Pesigan"
#> 
#> [[1]]$province
#> [1] "BC"
#> 
#> [[1]]$number
#> [1] 27
#> 
#> 
#> [[2]]
#> [[2]]$firstname
#> [1] "John"
#> 
#> [[2]]$lastname
#> [1] "Doe"
#> 
#> [[2]]$province
#> [1] "Ontario"
#> 
#> [[2]]$number
#> [1] 98
#> 
#> 
#> [[3]]
#> [[3]]$firstname
#> [1] "Hakuna"
#> 
#> [[3]]$lastname
#> [1] "Matata"
#> 
#> [[3]]$number
#> [1] 12
null_index <- vector(mode = "list", length = 3)
null_index[[1]] <- list(
  firstname = NULL,
  lastname = "Pesigan",
  province = "BC",
  number = 27
)
null_index[[2]] <- list(
  firstname = NULL,
  lastname = "Doe",
  province = "Ontario",
  number = 98
)
null_index[[3]] <- list(
  firstname = NULL,
  lastname = "Matata",
  number = 12
)
knitr::kable(
  x = data.frame(
    Variable = "`index`",
    Description = "List."
  ),
  row.names = FALSE
)
Variable Description
index List.
knitr::kable(
  x = data.frame(
    Variable = "`index`",
    Description = "List."
  ),
  row.names = FALSE
)
Variable Description
index List.
null_index
#> [[1]]
#> [[1]]$firstname
#> NULL
#> 
#> [[1]]$lastname
#> [1] "Pesigan"
#> 
#> [[1]]$province
#> [1] "BC"
#> 
#> [[1]]$number
#> [1] 27
#> 
#> 
#> [[2]]
#> [[2]]$firstname
#> NULL
#> 
#> [[2]]$lastname
#> [1] "Doe"
#> 
#> [[2]]$province
#> [1] "Ontario"
#> 
#> [[2]]$number
#> [1] 98
#> 
#> 
#> [[3]]
#> [[3]]$firstname
#> NULL
#> 
#> [[3]]$lastname
#> [1] "Matata"
#> 
#> [[3]]$number
#> [1] 12

Run test

results_01 <- util_list2vector(
  fields = c("firstname", "lastname", "province", "number"),
  index = index[[1]]
)
results_02 <- util_list2vector(
  fields = c("firstname", "lastname", "province", "number"),
  index = index[[2]]
)
results_03 <- util_list2vector(
  fields = c("firstname", "lastname", "province", "number"),
  index = index[[3]]
)
results_04 <- util_list2vector(
  fields = c("firstname", "lastname", "province", "number"),
  index = null_index[[1]]
)
results_05 <- util_list2vector(
  fields = c("firstname", "lastname", "province", "number"),
  index = null_index[[2]]
)
results_06 <- util_list2vector(
  fields = c("firstname", "lastname", "province", "number"),
  index = null_index[[3]]
)

Results

Description <- c(
  "Index 1",
  "Index 2",
  "Index 3"
)
Parameter <- c(
  paste(index[[1]], collapse = ", "),
  paste(index[[2]], collapse = ", "),
  paste(index[[3]], collapse = ", ")
)
Result <- c(
  paste(results_01, collapse = ", "),
  paste(results_02, collapse = ", "),
  paste(results_03, collapse = ", ")
)
knitr::kable(
  x = data.frame(
    Description,
    Parameter,
    Result
  ),
  row.names = FALSE
)
Description Parameter Result
Index 1 Ivan Jacob, Pesigan, BC, 27 Ivan Jacob, Pesigan, BC, 27
Index 2 John, Doe, Ontario, 98 John, Doe, Ontario, 98
Index 3 Hakuna, Matata, 12 Hakuna, Matata, NA, 12
test_that("result_01_01", {
  expect_equivalent(
    results_01[1],
    "Ivan Jacob"
  )
})
#> Test passed 🎉
test_that("result_01_02", {
  expect_equivalent(
    results_01[2],
    "Pesigan"
  )
})
#> Test passed 🎉
test_that("result_01_03", {
  expect_equivalent(
    results_01[3],
    "BC"
  )
})
#> Test passed 🌈
test_that("result_01_04", {
  expect_equivalent(
    results_01[4],
    "27"
  )
})
#> Test passed 🎉
test_that("result_02_01", {
  expect_equivalent(
    results_02[1],
    "John"
  )
})
#> Test passed 😸
test_that("result_02_02", {
  expect_equivalent(
    results_02[2],
    "Doe"
  )
})
#> Test passed 🌈
test_that("result_02_03", {
  expect_equivalent(
    results_02[3],
    "Ontario"
  )
})
#> Test passed 🥳
test_that("result_02_04", {
  expect_equivalent(
    results_02[4],
    "98"
  )
})
#> Test passed 🎉
test_that("result_03_01", {
  expect_equivalent(
    results_03[1],
    "Hakuna"
  )
})
#> Test passed 🎉
test_that("result_03_02", {
  expect_equivalent(
    results_03[2],
    "Matata"
  )
})
#> Test passed 🥳
test_that("result_03_02", {
  expect_equivalent(
    results_03[3],
    NA_character_
  )
})
#> Test passed 😀
test_that("result_03_02", {
  expect_equivalent(
    results_03[4],
    "12"
  )
})
#> Test passed 🥇
test_that("result_04_01", {
  expect_true(
    is.na(results_04[1]),
    TRUE
  )
})
#> Test passed 🎉
test_that("result_05_01", {
  expect_true(
    is.na(results_05[1]),
    TRUE
  )
})
#> Test passed 😸
test_that("result_06_01", {
  expect_true(
    is.na(results_06[1]),
    TRUE
  )
})
#> Test passed 🥳