Running ‘testthat.R’ [29s/35s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > library(testthat)
  > library(ecocomDP)
  > 
  > test_check("ecocomDP")
  [ FAIL 110 | WARN 3 | SKIP 11 | PASS 463 ]
  
  ══ Skipped tests (11) ══════════════════════════════════════════════════════════
  • On CRAN (11): 'test_convert_to_dwca.R:8:3', 'test_create_eml.R:8:3',
    'test_read_data.R:6:3', 'test_search_data.R:8:3', 'test_search_data.R:22:3',
    'test_search_data.R:37:3', 'test_search_data.R:49:3',
    'test_search_data.R:73:3', 'test_validate_arguments.R:322:3',
    'test_validate_arguments.R:424:3', 'test_validate_data.R:421:3'
  
  ══ Failed tests ════════════════════════════════════════════════════════════════
  ── Error ('test_flatten_data.R:108:5'): Non-required columns ───────────────────
  Error in `dplyr::left_join(., tables$location %>% dplyr::select_if(not_all_NAs), 
      by = "location_id", suffix = c("", "_location"))`: Join columns in `x` must be present in the data.
  ✖ Problem with `location_id`.
  Backtrace:
      ▆
   1. ├─ecocomDP::flatten_data(tbls) at test_flatten_data.R:108:5
   2. │ └─ecocomDP:::flatten_tables(data)
   3. │   └─all_merged %>% ...
   4. ├─dplyr::left_join(...)
   5. └─dplyr:::left_join.data.frame(...)
   6.   └─dplyr:::join_mutate(...)
   7.     └─dplyr:::join_cols(...)
   8.       └─dplyr:::check_join_vars(by$x, x_names, by$condition, "x", error_call = error_call)
   9.         └─rlang::abort(bullets, call = error_call)
  ── Error ('test_read_data.R:73:3'): Reads from 1 local .rds ────────────────────
  <vctrs_error_subscript_type/vctrs_error_subscript/rlang_error/error/condition>
  Error in `data.list[[x]][[primary_key]]`: Can't extract column with `primary_key`.
  ✖ Subscript `primary_key` must be size 1, not 2.
  Backtrace:
       ▆
    1. └─ecocomDP::read_data(from = rdspath) at test_read_data.R:73:3
    2.   └─ecocomDP::validate_data(dataset = d)
    3.     └─ecocomDP:::validate_primary_keys(d)
    4.       └─base::lapply(...)
    5.         └─ecocomDP (local) FUN(X[[i]], ...)
    6.           ├─data.list[[x]][[primary_key]]
    7.           └─tibble:::`[[.tbl_df`(data.list[[x]], primary_key)
    8.             └─tibble:::tbl_subset2(x, j = i, j_arg = substitute(i))
    9.               └─tibble:::vectbl_as_col_location2(...)
   10.                 ├─tibble:::subclass_col_index_errors(...)
   11.                 │ └─base::withCallingHandlers(...)
   12.                 └─vctrs::vec_as_location2(j, n, names, call = call)
   13.                   └─vctrs:::result_get(...)
   14.                     └─rlang::cnd_signal(x$err)
  ── Error ('test_read_data.R:106:3'): Reads from > 1 local .rds ─────────────────
  <vctrs_error_subscript_type/vctrs_error_subscript/rlang_error/error/condition>
  Error in `data.list[[x]][[primary_key]]`: Can't extract column with `primary_key`.
  ✖ Subscript `primary_key` must be size 1, not 2.
  Backtrace:
       ▆
    1. └─ecocomDP::read_data(from = rdspath) at test_read_data.R:106:3
    2.   └─ecocomDP::validate_data(dataset = d[[i]])
    3.     └─ecocomDP:::validate_primary_keys(d)
    4.       └─base::lapply(...)
    5.         └─ecocomDP (local) FUN(X[[i]], ...)
    6.           ├─data.list[[x]][[primary_key]]
    7.           └─tibble:::`[[.tbl_df`(data.list[[x]], primary_key)
    8.             └─tibble:::tbl_subset2(x, j = i, j_arg = substitute(i))
    9.               └─tibble:::vectbl_as_col_location2(...)
   10.                 ├─tibble:::subclass_col_index_errors(...)
   11.                 │ └─base::withCallingHandlers(...)
   12.                 └─vctrs::vec_as_location2(j, n, names, call = call)
   13.                   └─vctrs:::result_get(...)
   14.                     └─rlang::cnd_signal(x$err)
  ── Error ('test_read_data.R:142:3'): Reads from 1 local .csv directories ───────
  Error in `as.Date.default(x, ...)`: do not know how to convert 'x' to class "Date"
  Backtrace:
      ▆
   1. └─ecocomDP::read_data(from = tempdir()) at test_read_data.R:142:3
   2.   ├─lubridate::as_date(d[[x]]$tables[[y]][[z]])
   3.   └─lubridate::as_date(d[[x]]$tables[[y]][[z]])
   4.     ├─base::as.Date(x, ...)
   5.     └─base::as.Date.default(x, ...)
  ── Error ('test_read_data.R:168:3'): Reads from > 1 local .csv directories ─────
  Error in `as.Date.default(x, ...)`: do not know how to convert 'x' to class "Date"
  Backtrace:
      ▆
   1. └─ecocomDP::read_data(from = tempdir()) at test_read_data.R:168:3
   2.   ├─lubridate::as_date(d[[x]]$tables[[y]][[z]])
   3.   └─lubridate::as_date(d[[x]]$tables[[y]][[z]])
   4.     ├─base::as.Date(x, ...)
   5.     └─base::as.Date.default(x, ...)
  ── Error ('test_read_data.R:198:3'): Reads tables with valid names in path ─────
  Error in `as.Date.default(x, ...)`: do not know how to convert 'x' to class "Date"
  Backtrace:
      ▆
   1. └─ecocomDP::read_data(from = readpath) at test_read_data.R:198:3
   2.   ├─lubridate::as_date(d[[x]]$tables[[y]][[z]])
   3.   └─lubridate::as_date(d[[x]]$tables[[y]][[z]])
   4.     ├─base::as.Date(x, ...)
   5.     └─base::as.Date.default(x, ...)
  ── Error ('test_read_data.R:221:3'): Ignores tables with invalid names in path ──
  Error in `as.Date.default(x, ...)`: do not know how to convert 'x' to class "Date"
  Backtrace:
       ▆
    1. ├─testthat::expect_warning(read_data(from = readpath), regexp = "Validation issues") at test_read_data.R:221:3
    2. │ └─testthat:::quasi_capture(...)
    3. │   ├─testthat (local) .capture(...)
    4. │   │ └─base::withCallingHandlers(...)
    5. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. └─ecocomDP::read_data(from = readpath)
    7.   ├─lubridate::as_date(d[[x]]$tables[[y]][[z]])
    8.   └─lubridate::as_date(d[[x]]$tables[[y]][[z]])
    9.     ├─base::as.Date(x, ...)
   10.     └─base::as.Date.default(x, ...)
  ── Error ('test_read_data.R:236:3'): Has datetime parsing option ───────────────
  <vctrs_error_subscript_type/vctrs_error_subscript/rlang_error/error/condition>
  Error in `data.list[[x]][[primary_key]]`: Can't extract column with `primary_key`.
  ✖ Subscript `primary_key` must be size 1, not 2.
  Backtrace:
       ▆
    1. ├─base::suppressWarnings(...) at test_read_data.R:236:3
    2. │ └─base::withCallingHandlers(...)
    3. └─ecocomDP::read_data(from = paste0(tempdir(), "/d.rds"), parse_datetime = TRUE)
    4.   └─ecocomDP::validate_data(dataset = d[[i]])
    5.     └─ecocomDP:::validate_primary_keys(d)
    6.       └─base::lapply(...)
    7.         └─ecocomDP (local) FUN(X[[i]], ...)
    8.           ├─data.list[[x]][[primary_key]]
    9.           └─tibble:::`[[.tbl_df`(data.list[[x]], primary_key)
   10.             └─tibble:::tbl_subset2(x, j = i, j_arg = substitute(i))
   11.               └─tibble:::vectbl_as_col_location2(...)
   12.                 ├─tibble:::subclass_col_index_errors(...)
   13.                 │ └─base::withCallingHandlers(...)
   14.                 └─vctrs::vec_as_location2(j, n, names, call = call)
   15.                   └─vctrs:::result_get(...)
   16.                     └─rlang::cnd_signal(x$err)
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  ── Failure ('test_validate_data.R:29:5'): validate_table_presence() ────────────
  validate_table_presence(d) is not NULL
  
  `actual` is a character vector ('Required table. Missing required table: NA')
  `expected` is NULL
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:36:7'): validate_table_presence() ────────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:93:9'): validate_column_presence() ───────────
  stringr::str_detect(...) is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Error ('test_validate_data.R:187:5'): validate_primary_keys() ───────────────
  <subscriptOutOfBoundsError/error/condition>
  Error in `.subset2(x, i, exact = exact)`: subscript out of bounds
  Backtrace:
      ▆
   1. ├─testthat::expect_null(validate_primary_keys(d)) at test_validate_data.R:187:5
   2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
   3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
   4. └─ecocomDP:::validate_primary_keys(d)
   5.   └─base::lapply(...)
   6.     └─ecocomDP (local) FUN(X[[i]], ...)
   7.       ├─data.list[[x]][[primary_key]]
   8.       └─base::`[[.data.frame`(data.list[[x]], primary_key)
   9.         └─(function(x, i, exact) if (is.matrix(i)) as.matrix(x)[[i]] else .subset2(x, ...
  ── Failure ('test_validate_data.R:237:9'): validate_composite_keys() ───────────
  stringr::str_detect(validate_composite_keys(d), "Composite keys. The composite keys composed of the columns .+") is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:237:9'): validate_composite_keys() ───────────
  stringr::str_detect(validate_composite_keys(d), "Composite keys. The composite keys composed of the columns .+") is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:237:9'): validate_composite_keys() ───────────
  stringr::str_detect(validate_composite_keys(d), "Composite keys. The composite keys composed of the columns .+") is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:237:9'): validate_composite_keys() ───────────
  stringr::str_detect(validate_composite_keys(d), "Composite keys. The composite keys composed of the columns .+") is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:237:9'): validate_composite_keys() ───────────
  stringr::str_detect(validate_composite_keys(d), "Composite keys. The composite keys composed of the columns .+") is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:237:9'): validate_composite_keys() ───────────
  stringr::str_detect(validate_composite_keys(d), "Composite keys. The composite keys composed of the columns .+") is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:237:9'): validate_composite_keys() ───────────
  stringr::str_detect(validate_composite_keys(d), "Composite keys. The composite keys composed of the columns .+") is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Failure ('test_validate_data.R:237:9'): validate_composite_keys() ───────────
  stringr::str_detect(validate_composite_keys(d), "Composite keys. The composite keys composed of the columns .+") is not TRUE
  
  `actual`:       
  `expected`: TRUE
  ── Error ('test_validate_data.R:259:5'): validate_referential_integrity() ──────
  <subscriptOutOfBoundsError/error/condition>
  Error in `.subset2(x, i, exact = exact)`: subscript out of bounds
  Backtrace:
       ▆
    1. ├─testthat::expect_null(validate_referential_integrity(d)) at test_validate_data.R:259:5
    2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
    3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
    4. └─ecocomDP:::validate_referential_integrity(d)
    5.   └─base::lapply(...)
    6.     └─ecocomDP (local) FUN(X[[i]], ...)
    7.       ├─stats::na.omit(data.list[[x]][[primary_key]])
    8.       ├─data.list[[x]][[primary_key]]
    9.       └─base::`[[.data.frame`(data.list[[x]], primary_key)
   10.         └─(function(x, i, exact) if (is.matrix(i)) as.matrix(x)[[i]] else .subset2(x, ...
  ── Error ('test_validate_data.R:489:5'): validate_data ─────────────────────────
  <subscriptOutOfBoundsError/error/condition>
  Error in `.subset2(x, i, exact = exact)`: subscript out of bounds
  Backtrace:
      ▆
   1. ├─base::suppressWarnings(validate_data(dataset = d)) at test_validate_data.R:489:5
   2. │ └─base::withCallingHandlers(...)
   3. └─ecocomDP::validate_data(dataset = d)
   4.   └─ecocomDP:::validate_primary_keys(d)
   5.     └─base::lapply(...)
   6.       └─ecocomDP (local) FUN(X[[i]], ...)
   7.         ├─data.list[[x]][[primary_key]]
   8.         └─base::`[[.data.frame`(data.list[[x]], primary_key)
   9.           └─(function(x, i, exact) if (is.matrix(i)) as.matrix(x)[[i]] else .subset2(x, ...
  
  [ FAIL 110 | WARN 3 | SKIP 11 | PASS 463 ]
  Error: Test failures
  Execution halted