CRAN Package Check Results for Package sdcLog

Last updated on 2023-10-01 06:53:19 CEST.

Flavor Version Tinstall Tcheck Ttotal Status Flags
r-devel-linux-x86_64-debian-clang 0.5.0 7.58 84.51 92.09 OK
r-devel-linux-x86_64-debian-gcc 0.5.0 5.07 56.54 61.61 ERROR
r-devel-linux-x86_64-fedora-clang 0.5.0 99.47 ERROR
r-devel-linux-x86_64-fedora-gcc 0.5.0 112.14 ERROR
r-devel-windows-x86_64 0.5.0 7.00 84.00 91.00 ERROR
r-patched-linux-x86_64 0.5.0 5.50 76.27 81.77 OK
r-release-linux-x86_64 0.5.0 4.15 78.14 82.29 OK
r-release-macos-arm64 0.5.0 48.00 OK
r-release-macos-x86_64 0.5.0 74.00 OK
r-release-windows-x86_64 0.5.0 8.00 97.00 105.00 OK
r-oldrel-macos-arm64 0.5.0 35.00 OK
r-oldrel-macos-x86_64 0.5.0 62.00 OK
r-oldrel-windows-x86_64 0.5.0 8.00 102.00 110.00 OK

Check Details

Version: 0.5.0
Check: examples
Result: ERROR
    Running examples in ‘sdcLog-Ex.R’ failed
    The error most likely occurred in:
    
    > base::assign(".ptime", proc.time(), pos = "CheckExEnv")
    > ### Name: sdc_descriptives
    > ### Title: Disclosure control for descriptive statistics
    > ### Aliases: sdc_descriptives
    >
    > ### ** Examples
    >
    > sdc_descriptives(
    + data = sdc_descriptives_DT,
    + id_var = "id",
    + val_var = "val_1"
    + )
    Error in `[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share), :
     'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
    Calls: sdc_descriptives -> check_dominance -> [ -> [.data.table
    Execution halted
Flavor: r-devel-linux-x86_64-debian-gcc

Version: 0.5.0
Check: tests
Result: ERROR
     Running ‘spelling.R’ [0s/1s]
     Running ‘testthat.R’ [9s/16s]
    Running the tests in ‘tests/testthat.R’ failed.
    Complete output:
     > library(testthat)
     > library(sdcLog)
     >
     > test_check("sdcLog")
    
     > 1 + 1
     [1] 2
    
     > sdc_log(script_2, conn, append = TRUE)
     Log file for 'script_2.R' written to 'file connection'.
     [ FAIL 17 | WARN 5 | SKIP 0 | PASS 170 ]
    
     ══ Failed tests ════════════════════════════════════════════════════════════════
     ── Error ('test-sdc_descriptives.R:26:3'): sdc_descriptives works in simple cases ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_equal(...) at test-sdc_descriptives.R:26:2
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_descriptives(sdc_descriptives_DT, "id", "val_1")
     5. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     6. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     7. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_descriptives.R:181:3'): zeros are handles correctly ────────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_message(...) at test-sdc_descriptives.R:181:2
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. ├─testthat::expect_equal(...)
     8. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     9. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     10. └─sdcLog::sdc_descriptives(sdc_descriptives_DT, "id", "val_2")
     11. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     12. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     13. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_descriptives.R:314:3'): missing ID's are handled correctly (simple case) ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_warning(...) at test-sdc_descriptives.R:314:2
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. ├─testthat::expect_equal(...)
     8. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     9. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     10. └─sdcLog::sdc_descriptives(DT_filled[seq(2, 20, 2)], "id_na", "val_1")
     11. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     12. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     13. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_descriptives.R:493:3'): #77 is fixed ───────────────────────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::capture_warnings(...) at test-sdc_descriptives.R:493:2
     2. │ └─base::withCallingHandlers(...)
     3. ├─testthat::expect_equal(...)
     4. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     5. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     6. └─sdcLog::sdc_descriptives(df, "id", val_var = "val")
     7. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:33:5'): sdc_min_max() works in simple case ───────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_extreme.R:33:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(...)
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:58:5'): sdc_min_max() produces no result in case of sd_overlap due to dominance ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_equal(...) at test-sdc_extreme.R:58:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:84:5'): sdc_min_max() produces no result in case of sd_overlap ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_extreme.R:84:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_3")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:254:5'): sdc_min_max() does not enter an infinite loop ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_extreme.R:254:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt[1:5], "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Failure ('test-sdc_log.R:27:5'): sdc_log() works correctly with log files ───
     readLines(tf)[-exclude] (`actual`) not identical to gsub("✓", "v", readLines(log))[-exclude] (`expected`).
    
     actual[2:4] vs expected[2:28]
     ""
     "> data(\"sdc_descriptives_DT\")"
     ""
     "> sdc_descriptives(data = sdc_descriptives_DT, id_var = \"id\", val_var = \"val_1\")"
     + "-------------------------------------------------- SDC results (descriptives) --"
     + "OPTIONS: sdc.n_ids: 5 | sdc.n_ids_dominance: 2 | sdc.share_dominance: 0.85"
     + "SETTINGS: id_var: id | val_var: val_1 | zero_as_NA: FALSE"
     + "--------------------------------------------------------------------------------"
     + ""
     + "> data(\"sdc_min_max_DT\")"
     + ""
     and 17 more ...
     ── Failure ('test-sdc_log.R:28:5'): sdc_log() works correctly with log files ───
     readLines\(tf\)\[exclude\] does not match "Output complies to RDC rules.".
     Actual values:
     * <NA>
     * <NA>
     Backtrace:
     ▆
     1. └─testthat::expect_match(readLines(tf)[exclude], "Output complies to RDC rules.") at test-sdc_log.R:28:4
     2. └─testthat:::expect_match_(...)
     ── Failure ('test-sdc_log.R:46:5'): sdc_log() works correctly with connections ──
     readLines(tf_conn)[-exclude] (`actual`) not identical to gsub("✓", "v", readLines(log))[-exclude] (`expected`).
    
     actual[2:4] vs expected[2:28]
     ""
     "> data(\"sdc_descriptives_DT\")"
     ""
     "> sdc_descriptives(data = sdc_descriptives_DT, id_var = \"id\", val_var = \"val_1\")"
     + "-------------------------------------------------- SDC results (descriptives) --"
     + "OPTIONS: sdc.n_ids: 5 | sdc.n_ids_dominance: 2 | sdc.share_dominance: 0.85"
     + "SETTINGS: id_var: id | val_var: val_1 | zero_as_NA: FALSE"
     + "--------------------------------------------------------------------------------"
     + ""
     + "> data(\"sdc_min_max_DT\")"
     + ""
     and 17 more ...
     ── Failure ('test-sdc_log.R:47:5'): sdc_log() works correctly with connections ──
     readLines\(tf_conn\)\[exclude\] does not match "Output complies to RDC rules.".
     Actual values:
     * <NA>
     * <NA>
     Backtrace:
     ▆
     1. └─testthat::expect_match(readLines(tf_conn)[exclude], "Output complies to RDC rules.") at test-sdc_log.R:47:4
     2. └─testthat:::expect_match_(...)
     ── Error ('test-sdc_min_max.R:33:5'): sdc_min_max() works in simple case ───────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:33:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(...)
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:58:5'): sdc_min_max() produces no result in case of sd_overlap due to dominance ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_equal(...) at test-sdc_min_max.R:58:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:84:5'): sdc_min_max() produces no result in case of sd_overlap ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:84:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_3")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:261:5'): sdc_min_max() does not enter an infinite loop ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:261:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt[1:5], "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:287:5'): argument fill_id_var works ──────────────
     Error in ``[.data.table`(data, i = !is.na(get(id_var)) & !is.na(get(val_var)),
     j = list(distinct_ids = data.table::uniqueN(get(id_var))),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:287:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id_na", val_var = "val_1")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_distinct_ids(SD, id_var, val_var, by)
     8. ├─...[]
     9. └─data.table:::`[.data.table`(...)
    
     [ FAIL 17 | WARN 5 | SKIP 0 | PASS 170 ]
     Error: Test failures
     Execution halted
Flavor: r-devel-linux-x86_64-debian-gcc

Version: 0.5.0
Check: re-building of vignette outputs
Result: ERROR
    Error(s) in re-building vignettes:
     ...
    --- re-building ‘FAQ.Rmd’ using rmarkdown
    --- finished re-building ‘FAQ.Rmd’
    
    --- re-building ‘intro.Rmd’ using rmarkdown
    
    Quitting from lines 115-116 [descriptives_simple] (intro.Rmd)
    Error: processing vignette 'intro.Rmd' failed with diagnostics:
    'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
    --- failed re-building ‘intro.Rmd’
    
    --- re-building ‘options.Rmd’ using rmarkdown
    
    Quitting from lines 52-53 [example1_sdc.n_ids] (options.Rmd)
    Error: processing vignette 'options.Rmd' failed with diagnostics:
    'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
    --- failed re-building ‘options.Rmd’
    
    SUMMARY: processing the following files failed:
     ‘intro.Rmd’ ‘options.Rmd’
    
    Error: Vignette re-building failed.
    Execution halted
Flavor: r-devel-linux-x86_64-debian-gcc

Version: 0.5.0
Check: examples
Result: ERROR
    Running examples in ‘sdcLog-Ex.R’ failed
    The error most likely occurred in:
    
    > ### Name: sdc_descriptives
    > ### Title: Disclosure control for descriptive statistics
    > ### Aliases: sdc_descriptives
    >
    > ### ** Examples
    >
    > sdc_descriptives(
    + data = sdc_descriptives_DT,
    + id_var = "id",
    + val_var = "val_1"
    + )
    Error in `[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share), :
     'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
    Calls: sdc_descriptives -> check_dominance -> [ -> [.data.table
    Execution halted
Flavors: r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc, r-devel-windows-x86_64

Version: 0.5.0
Check: tests
Result: ERROR
     Running ‘spelling.R’
     Running ‘testthat.R’ [15s/21s]
    Running the tests in ‘tests/testthat.R’ failed.
    Complete output:
     > library(testthat)
     > library(sdcLog)
     >
     > test_check("sdcLog")
    
     > 1 + 1
     [1] 2
    
     > sdc_log(script_2, conn, append = TRUE)
     Log file for 'script_2.R' written to 'file connection'.
     [ FAIL 17 | WARN 5 | SKIP 0 | PASS 170 ]
    
     ══ Failed tests ════════════════════════════════════════════════════════════════
     ── Error ('test-sdc_descriptives.R:26:3'): sdc_descriptives works in simple cases ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_equal(...) at test-sdc_descriptives.R:26:2
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_descriptives(sdc_descriptives_DT, "id", "val_1")
     5. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     6. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     7. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_descriptives.R:181:3'): zeros are handles correctly ────────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_message(...) at test-sdc_descriptives.R:181:2
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. ├─testthat::expect_equal(...)
     8. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     9. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     10. └─sdcLog::sdc_descriptives(sdc_descriptives_DT, "id", "val_2")
     11. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     12. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     13. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_descriptives.R:314:3'): missing ID's are handled correctly (simple case) ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_warning(...) at test-sdc_descriptives.R:314:2
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. ├─testthat::expect_equal(...)
     8. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     9. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     10. └─sdcLog::sdc_descriptives(DT_filled[seq(2, 20, 2)], "id_na", "val_1")
     11. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     12. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     13. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_descriptives.R:493:3'): #77 is fixed ───────────────────────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::capture_warnings(...) at test-sdc_descriptives.R:493:2
     2. │ └─base::withCallingHandlers(...)
     3. ├─testthat::expect_equal(...)
     4. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     5. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     6. └─sdcLog::sdc_descriptives(df, "id", val_var = "val")
     7. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:33:5'): sdc_min_max() works in simple case ───────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_extreme.R:33:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(...)
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:58:5'): sdc_min_max() produces no result in case of sd_overlap due to dominance ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_equal(...) at test-sdc_extreme.R:58:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:84:5'): sdc_min_max() produces no result in case of sd_overlap ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_extreme.R:84:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_3")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:254:5'): sdc_min_max() does not enter an infinite loop ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_extreme.R:254:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt[1:5], "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Failure ('test-sdc_log.R:27:5'): sdc_log() works correctly with log files ───
     readLines(tf)[-exclude] (`actual`) not identical to gsub("✓", "v", readLines(log))[-exclude] (`expected`).
    
     actual[2:4] vs expected[2:28]
     ""
     "> data(\"sdc_descriptives_DT\")"
     ""
     "> sdc_descriptives(data = sdc_descriptives_DT, id_var = \"id\", val_var = \"val_1\")"
     + "-------------------------------------------------- SDC results (descriptives) --"
     + "OPTIONS: sdc.n_ids: 5 | sdc.n_ids_dominance: 2 | sdc.share_dominance: 0.85"
     + "SETTINGS: id_var: id | val_var: val_1 | zero_as_NA: FALSE"
     + "--------------------------------------------------------------------------------"
     + ""
     + "> data(\"sdc_min_max_DT\")"
     + ""
     and 17 more ...
     ── Failure ('test-sdc_log.R:28:5'): sdc_log() works correctly with log files ───
     readLines\(tf\)\[exclude\] does not match "Output complies to RDC rules.".
     Actual values:
     * <NA>
     * <NA>
     Backtrace:
     ▆
     1. └─testthat::expect_match(readLines(tf)[exclude], "Output complies to RDC rules.") at test-sdc_log.R:28:4
     2. └─testthat:::expect_match_(...)
     ── Failure ('test-sdc_log.R:46:5'): sdc_log() works correctly with connections ──
     readLines(tf_conn)[-exclude] (`actual`) not identical to gsub("✓", "v", readLines(log))[-exclude] (`expected`).
    
     actual[2:4] vs expected[2:28]
     ""
     "> data(\"sdc_descriptives_DT\")"
     ""
     "> sdc_descriptives(data = sdc_descriptives_DT, id_var = \"id\", val_var = \"val_1\")"
     + "-------------------------------------------------- SDC results (descriptives) --"
     + "OPTIONS: sdc.n_ids: 5 | sdc.n_ids_dominance: 2 | sdc.share_dominance: 0.85"
     + "SETTINGS: id_var: id | val_var: val_1 | zero_as_NA: FALSE"
     + "--------------------------------------------------------------------------------"
     + ""
     + "> data(\"sdc_min_max_DT\")"
     + ""
     and 17 more ...
     ── Failure ('test-sdc_log.R:47:5'): sdc_log() works correctly with connections ──
     readLines\(tf_conn\)\[exclude\] does not match "Output complies to RDC rules.".
     Actual values:
     * <NA>
     * <NA>
     Backtrace:
     ▆
     1. └─testthat::expect_match(readLines(tf_conn)[exclude], "Output complies to RDC rules.") at test-sdc_log.R:47:4
     2. └─testthat:::expect_match_(...)
     ── Error ('test-sdc_min_max.R:33:5'): sdc_min_max() works in simple case ───────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:33:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(...)
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:58:5'): sdc_min_max() produces no result in case of sd_overlap due to dominance ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_equal(...) at test-sdc_min_max.R:58:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:84:5'): sdc_min_max() produces no result in case of sd_overlap ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:84:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_3")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:261:5'): sdc_min_max() does not enter an infinite loop ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:261:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt[1:5], "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:287:5'): argument fill_id_var works ──────────────
     Error in ``[.data.table`(data, i = !is.na(get(id_var)) & !is.na(get(val_var)),
     j = list(distinct_ids = data.table::uniqueN(get(id_var))),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:287:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id_na", val_var = "val_1")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_distinct_ids(SD, id_var, val_var, by)
     8. ├─...[]
     9. └─data.table:::`[.data.table`(...)
    
     [ FAIL 17 | WARN 5 | SKIP 0 | PASS 170 ]
     Error: Test failures
     Execution halted
Flavor: r-devel-linux-x86_64-fedora-clang

Version: 0.5.0
Check: re-building of vignette outputs
Result: ERROR
    Error(s) in re-building vignettes:
    --- re-building ‘FAQ.Rmd’ using rmarkdown
    --- finished re-building ‘FAQ.Rmd’
    
    --- re-building ‘intro.Rmd’ using rmarkdown
    
    Quitting from lines 115-116 [descriptives_simple] (intro.Rmd)
    Error: processing vignette 'intro.Rmd' failed with diagnostics:
    'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
    --- failed re-building ‘intro.Rmd’
    
    --- re-building ‘options.Rmd’ using rmarkdown
    
    Quitting from lines 52-53 [example1_sdc.n_ids] (options.Rmd)
    Error: processing vignette 'options.Rmd' failed with diagnostics:
    'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
    --- failed re-building ‘options.Rmd’
    
    SUMMARY: processing the following files failed:
     ‘intro.Rmd’ ‘options.Rmd’
    
    Error: Vignette re-building failed.
    Execution halted
Flavors: r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc, r-devel-windows-x86_64

Version: 0.5.0
Check: tests
Result: ERROR
     Running ‘spelling.R’
     Running ‘testthat.R’ [15s/17s]
    Running the tests in ‘tests/testthat.R’ failed.
    Complete output:
     > library(testthat)
     > library(sdcLog)
     >
     > test_check("sdcLog")
    
     > 1 + 1
     [1] 2
    
     > sdc_log(script_2, conn, append = TRUE)
     Log file for 'script_2.R' written to 'file connection'.
     [ FAIL 17 | WARN 5 | SKIP 0 | PASS 170 ]
    
     ══ Failed tests ════════════════════════════════════════════════════════════════
     ── Error ('test-sdc_descriptives.R:26:3'): sdc_descriptives works in simple cases ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_equal(...) at test-sdc_descriptives.R:26:2
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_descriptives(sdc_descriptives_DT, "id", "val_1")
     5. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     6. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     7. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_descriptives.R:181:3'): zeros are handles correctly ────────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_message(...) at test-sdc_descriptives.R:181:2
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. ├─testthat::expect_equal(...)
     8. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     9. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     10. └─sdcLog::sdc_descriptives(sdc_descriptives_DT, "id", "val_2")
     11. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     12. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     13. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_descriptives.R:314:3'): missing ID's are handled correctly (simple case) ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_warning(...) at test-sdc_descriptives.R:314:2
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. ├─testthat::expect_equal(...)
     8. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     9. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     10. └─sdcLog::sdc_descriptives(DT_filled[seq(2, 20, 2)], "id_na", "val_1")
     11. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     12. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     13. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_descriptives.R:493:3'): #77 is fixed ───────────────────────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::capture_warnings(...) at test-sdc_descriptives.R:493:2
     2. │ └─base::withCallingHandlers(...)
     3. ├─testthat::expect_equal(...)
     4. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     5. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     6. └─sdcLog::sdc_descriptives(df, "id", val_var = "val")
     7. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:33:5'): sdc_min_max() works in simple case ───────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_extreme.R:33:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(...)
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:58:5'): sdc_min_max() produces no result in case of sd_overlap due to dominance ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_equal(...) at test-sdc_extreme.R:58:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:84:5'): sdc_min_max() produces no result in case of sd_overlap ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_extreme.R:84:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_3")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:254:5'): sdc_min_max() does not enter an infinite loop ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_extreme.R:254:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt[1:5], "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Failure ('test-sdc_log.R:27:5'): sdc_log() works correctly with log files ───
     readLines(tf)[-exclude] (`actual`) not identical to gsub("✓", "v", readLines(log))[-exclude] (`expected`).
    
     actual[2:4] vs expected[2:28]
     ""
     "> data(\"sdc_descriptives_DT\")"
     ""
     "> sdc_descriptives(data = sdc_descriptives_DT, id_var = \"id\", val_var = \"val_1\")"
     + "-------------------------------------------------- SDC results (descriptives) --"
     + "OPTIONS: sdc.n_ids: 5 | sdc.n_ids_dominance: 2 | sdc.share_dominance: 0.85"
     + "SETTINGS: id_var: id | val_var: val_1 | zero_as_NA: FALSE"
     + "--------------------------------------------------------------------------------"
     + ""
     + "> data(\"sdc_min_max_DT\")"
     + ""
     and 17 more ...
     ── Failure ('test-sdc_log.R:28:5'): sdc_log() works correctly with log files ───
     readLines\(tf\)\[exclude\] does not match "Output complies to RDC rules.".
     Actual values:
     * <NA>
     * <NA>
     Backtrace:
     ▆
     1. └─testthat::expect_match(readLines(tf)[exclude], "Output complies to RDC rules.") at test-sdc_log.R:28:4
     2. └─testthat:::expect_match_(...)
     ── Failure ('test-sdc_log.R:46:5'): sdc_log() works correctly with connections ──
     readLines(tf_conn)[-exclude] (`actual`) not identical to gsub("✓", "v", readLines(log))[-exclude] (`expected`).
    
     actual[2:4] vs expected[2:28]
     ""
     "> data(\"sdc_descriptives_DT\")"
     ""
     "> sdc_descriptives(data = sdc_descriptives_DT, id_var = \"id\", val_var = \"val_1\")"
     + "-------------------------------------------------- SDC results (descriptives) --"
     + "OPTIONS: sdc.n_ids: 5 | sdc.n_ids_dominance: 2 | sdc.share_dominance: 0.85"
     + "SETTINGS: id_var: id | val_var: val_1 | zero_as_NA: FALSE"
     + "--------------------------------------------------------------------------------"
     + ""
     + "> data(\"sdc_min_max_DT\")"
     + ""
     and 17 more ...
     ── Failure ('test-sdc_log.R:47:5'): sdc_log() works correctly with connections ──
     readLines\(tf_conn\)\[exclude\] does not match "Output complies to RDC rules.".
     Actual values:
     * <NA>
     * <NA>
     Backtrace:
     ▆
     1. └─testthat::expect_match(readLines(tf_conn)[exclude], "Output complies to RDC rules.") at test-sdc_log.R:47:4
     2. └─testthat:::expect_match_(...)
     ── Error ('test-sdc_min_max.R:33:5'): sdc_min_max() works in simple case ───────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:33:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(...)
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:58:5'): sdc_min_max() produces no result in case of sd_overlap due to dominance ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_equal(...) at test-sdc_min_max.R:58:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:84:5'): sdc_min_max() produces no result in case of sd_overlap ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:84:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_3")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:261:5'): sdc_min_max() does not enter an infinite loop ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:261:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt[1:5], "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:287:5'): argument fill_id_var works ──────────────
     Error in ``[.data.table`(data, i = !is.na(get(id_var)) & !is.na(get(val_var)),
     j = list(distinct_ids = data.table::uniqueN(get(id_var))),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:287:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id_na", val_var = "val_1")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_distinct_ids(SD, id_var, val_var, by)
     8. ├─...[]
     9. └─data.table:::`[.data.table`(...)
    
     [ FAIL 17 | WARN 5 | SKIP 0 | PASS 170 ]
     Error: Test failures
     Execution halted
Flavor: r-devel-linux-x86_64-fedora-gcc

Version: 0.5.0
Check: tests
Result: ERROR
     Running 'spelling.R' [0s]
     Running 'testthat.R' [9s]
    Running the tests in 'tests/testthat.R' failed.
    Complete output:
     > library(testthat)
     > library(sdcLog)
     >
     > test_check("sdcLog")
    
     > 1 + 1
     [1] 2
    
     > sdc_log(script_2, conn, append = TRUE)
     Log file for 'script_2.R' written to 'file connection'.
     [ FAIL 17 | WARN 5 | SKIP 0 | PASS 170 ]
    
     ══ Failed tests ════════════════════════════════════════════════════════════════
     ── Error ('test-sdc_descriptives.R:26:3'): sdc_descriptives works in simple cases ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_equal(...) at test-sdc_descriptives.R:26:2
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_descriptives(sdc_descriptives_DT, "id", "val_1")
     5. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     6. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     7. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_descriptives.R:181:3'): zeros are handles correctly ────────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_message(...) at test-sdc_descriptives.R:181:2
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. ├─testthat::expect_equal(...)
     8. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     9. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     10. └─sdcLog::sdc_descriptives(sdc_descriptives_DT, "id", "val_2")
     11. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     12. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     13. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_descriptives.R:314:3'): missing ID's are handled correctly (simple case) ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_warning(...) at test-sdc_descriptives.R:314:2
     2. │ └─testthat:::expect_condition_matching(...)
     3. │ └─testthat:::quasi_capture(...)
     4. │ ├─testthat (local) .capture(...)
     5. │ │ └─base::withCallingHandlers(...)
     6. │ └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. ├─testthat::expect_equal(...)
     8. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     9. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     10. └─sdcLog::sdc_descriptives(DT_filled[seq(2, 20, 2)], "id_na", "val_1")
     11. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     12. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     13. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_descriptives.R:493:3'): #77 is fixed ───────────────────────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::capture_warnings(...) at test-sdc_descriptives.R:493:2
     2. │ └─base::withCallingHandlers(...)
     3. ├─testthat::expect_equal(...)
     4. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     5. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     6. └─sdcLog::sdc_descriptives(df, "id", val_var = "val")
     7. └─sdcLog:::check_dominance(data, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:33:5'): sdc_min_max() works in simple case ───────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_extreme.R:33:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(...)
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:58:5'): sdc_min_max() produces no result in case of sd_overlap due to dominance ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_equal(...) at test-sdc_extreme.R:58:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:84:5'): sdc_min_max() produces no result in case of sd_overlap ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_extreme.R:84:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_3")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_extreme.R:254:5'): sdc_min_max() does not enter an infinite loop ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_extreme.R:254:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt[1:5], "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Failure ('test-sdc_log.R:27:5'): sdc_log() works correctly with log files ───
     readLines(tf)[-exclude] (`actual`) not identical to gsub("✓", "v", readLines(log))[-exclude] (`expected`).
    
     actual[2:4] vs expected[2:28]
     ""
     "> data(\"sdc_descriptives_DT\")"
     ""
     "> sdc_descriptives(data = sdc_descriptives_DT, id_var = \"id\", val_var = \"val_1\")"
     + "-------------------------------------------------- SDC results (descriptives) --"
     + "OPTIONS: sdc.n_ids: 5 | sdc.n_ids_dominance: 2 | sdc.share_dominance: 0.85"
     + "SETTINGS: id_var: id | val_var: val_1 | zero_as_NA: FALSE"
     + "--------------------------------------------------------------------------------"
     + ""
     + "> data(\"sdc_min_max_DT\")"
     + ""
     and 17 more ...
     ── Failure ('test-sdc_log.R:28:5'): sdc_log() works correctly with log files ───
     readLines\(tf\)\[exclude\] does not match "Output complies to RDC rules.".
     Actual values:
     * <NA>
     * <NA>
     Backtrace:
     ▆
     1. └─testthat::expect_match(readLines(tf)[exclude], "Output complies to RDC rules.") at test-sdc_log.R:28:4
     2. └─testthat:::expect_match_(...)
     ── Failure ('test-sdc_log.R:46:5'): sdc_log() works correctly with connections ──
     readLines(tf_conn)[-exclude] (`actual`) not identical to gsub("✓", "v", readLines(log))[-exclude] (`expected`).
    
     actual[2:4] vs expected[2:28]
     ""
     "> data(\"sdc_descriptives_DT\")"
     ""
     "> sdc_descriptives(data = sdc_descriptives_DT, id_var = \"id\", val_var = \"val_1\")"
     + "-------------------------------------------------- SDC results (descriptives) --"
     + "OPTIONS: sdc.n_ids: 5 | sdc.n_ids_dominance: 2 | sdc.share_dominance: 0.85"
     + "SETTINGS: id_var: id | val_var: val_1 | zero_as_NA: FALSE"
     + "--------------------------------------------------------------------------------"
     + ""
     + "> data(\"sdc_min_max_DT\")"
     + ""
     and 17 more ...
     ── Failure ('test-sdc_log.R:47:5'): sdc_log() works correctly with connections ──
     readLines\(tf_conn\)\[exclude\] does not match "Output complies to RDC rules.".
     Actual values:
     * <NA>
     * <NA>
     Backtrace:
     ▆
     1. └─testthat::expect_match(readLines(tf_conn)[exclude], "Output complies to RDC rules.") at test-sdc_log.R:47:4
     2. └─testthat:::expect_match_(...)
     ── Error ('test-sdc_min_max.R:33:5'): sdc_min_max() works in simple case ───────
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:33:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(...)
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:58:5'): sdc_min_max() produces no result in case of sd_overlap due to dominance ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_equal(...) at test-sdc_min_max.R:58:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:84:5'): sdc_min_max() produces no result in case of sd_overlap ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:84:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id", "val_3")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:261:5'): sdc_min_max() does not enter an infinite loop ──
     Error in ``[.data.table`(dt, id_na == TRUE, list(value_share_na = value_share),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:261:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt[1:5], "id", "val_2")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_dominance(SD, id_var, val_var, by)
     8. ├─dt[id_na == TRUE, list(value_share_na = value_share), keyby = by]
     9. └─data.table:::`[.data.table`(...)
     ── Error ('test-sdc_min_max.R:287:5'): argument fill_id_var works ──────────────
     Error in ``[.data.table`(data, i = !is.na(get(id_var)) & !is.na(get(val_var)),
     j = list(distinct_ids = data.table::uniqueN(get(id_var))),
     keyby = by)`: 'by' or 'keyby' must evaluate to a vector or a list of vectors (where 'list' includes data.table and data.frame which are lists, too)
     Backtrace:
     ▆
     1. ├─testthat::expect_identical(...) at test-sdc_min_max.R:287:4
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │ └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─sdcLog::sdc_min_max(extreme_test_dt, "id_na", val_var = "val_1")
     5. └─sdcLog:::find_SD(...)
     6. └─sdcLog:::find_SD_problems(...)
     7. └─sdcLog:::check_distinct_ids(SD, id_var, val_var, by)
     8. ├─...[]
     9. └─data.table:::`[.data.table`(...)
    
     [ FAIL 17 | WARN 5 | SKIP 0 | PASS 170 ]
     Error: Test failures
     Execution halted
Flavor: r-devel-windows-x86_64