Last updated on 2026-10-22 23:56:48 CEST.
| Flavor | Version | Tinstall | Tcheck | Ttotal | Status | Flags |
|---|---|---|---|---|---|---|
| r-devel-linux-x86_64-debian-clang | 1.2.0 | 5.33 | 172.59 | 177.92 | OK | |
| r-devel-linux-x86_64-debian-gcc | 1.2.0 | 3.84 | 131.27 | 135.11 | OK | |
| r-devel-linux-x86_64-fedora-clang | 1.2.0 | 58.64 | ERROR | |||
| r-devel-linux-x86_64-fedora-gcc | 1.2.0 | 57.96 | ERROR | |||
| r-devel-windows-x86_64 | 1.2.0 | 7.00 | 241.00 | 248.00 | OK | |
| r-patched-linux-x86_64 | 1.2.0 | 5.62 | 155.97 | 161.59 | OK | |
| r-release-linux-x86_64 | 1.2.0 | 5.19 | 157.71 | 162.90 | OK | |
| r-release-macos-arm64 | 1.2.0 | 1.00 | 157.00 | 158.00 | OK | |
| r-release-macos-x86_64 | 1.2.0 | 4.00 | 277.00 | 281.00 | OK | |
| r-release-windows-x86_64 | 1.2.0 | 7.00 | 217.00 | 224.00 | OK | |
| r-oldrel-macos-arm64 | 1.2.0 | 1.00 | 160.00 | 161.00 | OK | |
| r-oldrel-macos-x86_64 | 1.2.0 | 4.00 | 309.00 | 313.00 | OK | |
| r-oldrel-windows-x86_64 | 1.2.0 | 10.00 | 247.00 | 257.00 | OK |
Version: 1.2.0
Check: tests
Result: ERROR
Running ‘testthat.R’ [20s/56s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
> library(testthat)
> library(lehdr)
lehdr 1.2.0
To enable caching of data, set `options(lehdr_use_cache = TRUE)`
To cite lehdr in published work (Chicago author-date):
Green, Jamaal, Liming Wang, and Dillon Mahmoudi. 2025.
"lehdr: Grab Longitudinal Employer-Household Dynamics
(LEHD) Flat Files." R package version 1.2.0.
https://github.com/jamgreen/lehdr/
Run citation("lehdr") for a BibTeX entry.
Use suppressPackageStartupMessages() to suppress this message.
> library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
>
> test_check("lehdr")
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Saving _problems/test-lehdr-29.R
Using cached file: lodes5_de_od_main_JT00_2009.csv.gz
Saving _problems/test-lehdr-45.R
Using cached file: lodes8_de_od_main_JT00_2015.csv.gz
Saving _problems/test-lehdr-63.R
Using cached file: lodes5_de_od_aux_JT00_2009.csv.gz
Saving _problems/test-lehdr-78.R
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Using cached file: lodes7_de_rac_S000_JT00_2014.csv.gz
Saving _problems/test-lehdr-111.R
Using cached file: lodes8_de_rac_S000_JT00_2015.csv.gz
Saving _problems/test-lehdr-125.R
Using cached file: lodes7_de_rac_SA01_JT01_2004.csv.gz
Saving _problems/test-lehdr-141.R
Using cached file: lodes5_de_wac_S000_JT01_2009.csv.gz
Saving _problems/test-lehdr-159.R
Using cached file: lodes7_de_wac_S000_JT00_2015.csv.gz
Saving _problems/test-lehdr-173.R
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-187.R
Using cached file: lodes7_vt_wac_S000_JT00_2015.csv.gz
No cached file found; downloading lodes8_vt_wac_S000_JT00_2015.csv.gz...
Download complete: lodes8_vt_wac_S000_JT00_2015.csv.gz
Using cached file: lodes5_nd_od_main_JT01_2007.csv.gz
No cached file found; downloading lodes5_vt_od_main_JT01_2007.csv.gz...
Download complete: lodes5_vt_od_main_JT01_2007.csv.gz
No cached file found; downloading lodes5_nd_od_main_JT01_2008.csv.gz...
Download complete: lodes5_nd_od_main_JT01_2008.csv.gz
No cached file found; downloading lodes5_vt_od_main_JT01_2008.csv.gz...
Download complete: lodes5_vt_od_main_JT01_2008.csv.gz
Saving _problems/test-lehdr-309.R
Using cached file: lodes8_de_od_main_JT01_2013.csv.gz
No cached file found; downloading lodes8_vt_od_main_JT01_2013.csv.gz...
Download complete: lodes8_vt_od_main_JT01_2013.csv.gz
No cached file found; downloading lodes8_de_od_main_JT01_2014.csv.gz...
Download complete: lodes8_de_od_main_JT01_2014.csv.gz
No cached file found; downloading lodes8_vt_od_main_JT01_2014.csv.gz...
Download complete: lodes8_vt_od_main_JT01_2014.csv.gz
Saving _problems/test-lehdr-326.R
Using cached file: lodes8_de_od_main_JT01_2013.csv.gz
Using cached file: lodes8_sd_od_main_JT01_2013.csv.gz
No cached file found; downloading lodes8_de_od_main_JT01_2020.csv.gz...
Download complete: lodes8_de_od_main_JT01_2020.csv.gz
No cached file found; downloading lodes8_sd_od_main_JT01_2020.csv.gz...
Download complete: lodes8_sd_od_main_JT01_2020.csv.gz
Saving _problems/test-lehdr-343.R
Using cached file: lodes7_de_wac_S000_JT00_2013.csv.gz
Using cached file: lodes7_vt_wac_S000_JT00_2013.csv.gz
No cached file found; downloading lodes7_de_wac_S000_JT00_2014.csv.gz...
Download complete: lodes7_de_wac_S000_JT00_2014.csv.gz
No cached file found; downloading lodes7_vt_wac_S000_JT00_2014.csv.gz...
Download complete: lodes7_vt_wac_S000_JT00_2014.csv.gz
Saving _problems/test-lehdr-360.R
Using cached file: lodes5_de_wac_S000_JT00_2007.csv.gz
No cached file found; downloading lodes5_vt_wac_S000_JT00_2007.csv.gz...
Download complete: lodes5_vt_wac_S000_JT00_2007.csv.gz
No cached file found; downloading lodes5_de_wac_S000_JT00_2009.csv.gz...
Download complete: lodes5_de_wac_S000_JT00_2009.csv.gz
No cached file found; downloading lodes5_vt_wac_S000_JT00_2009.csv.gz...
Download complete: lodes5_vt_wac_S000_JT00_2009.csv.gz
Saving _problems/test-lehdr-375.R
Using cached file: lodes7_de_wac_S000_JT00_2013.csv.gz
Using cached file: lodes7_vt_wac_S000_JT00_2013.csv.gz
Using cached file: lodes7_de_wac_S000_JT00_2014.csv.gz
Using cached file: lodes7_vt_wac_S000_JT00_2014.csv.gz
Saving _problems/test-lehdr-389.R
Using cached file: lodes8_de_wac_S000_JT01_2017.csv.gz
No cached file found; downloading lodes8_vt_wac_S000_JT01_2017.csv.gz...
Download complete: lodes8_vt_wac_S000_JT01_2017.csv.gz
No cached file found; downloading lodes8_de_wac_S000_JT01_2018.csv.gz...
Download complete: lodes8_de_wac_S000_JT01_2018.csv.gz
No cached file found; downloading lodes8_vt_wac_S000_JT01_2018.csv.gz...
Download complete: lodes8_vt_wac_S000_JT01_2018.csv.gz
No cached file found; downloading lodes8_de_wac_S000_JT01_2019.csv.gz...
Download complete: lodes8_de_wac_S000_JT01_2019.csv.gz
No cached file found; downloading lodes8_vt_wac_S000_JT01_2019.csv.gz...
Download complete: lodes8_vt_wac_S000_JT01_2019.csv.gz
No cached file found; downloading lodes8_de_wac_S000_JT01_2020.csv.gz...
Download complete: lodes8_de_wac_S000_JT01_2020.csv.gz
No cached file found; downloading lodes8_vt_wac_S000_JT01_2020.csv.gz...
Download complete: lodes8_vt_wac_S000_JT01_2020.csv.gz
Saving _problems/test-lehdr-405.R
Using cached file: lodes8_de_wac_S000_JT00_2019.csv.gz
No cached file found; downloading lodes8_vt_wac_S000_JT00_2019.csv.gz...
Download complete: lodes8_vt_wac_S000_JT00_2019.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
No cached file found; downloading lodes8_vt_wac_S000_JT00_2020.csv.gz...
Download complete: lodes8_vt_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-426.R
Downloading crosswalk https://lehd.ces.census.gov/data/lodes/LODES8/vt/vt_xwalk.csv.gz to lodes8_vt_xwalk.csv.gz
Download complete for lodes8_vt_xwalk.csv.gz
lodes8_vt_xwalk.csv.gz crosswalk cleared from cache.
Downloading crosswalk https://lehd.ces.census.gov/data/lodes/LODES8/wy/wy_xwalk.csv.gz to lodes8_wy_xwalk.csv.gz
Download complete for lodes8_wy_xwalk.csv.gz
Downloading crosswalk https://lehd.ces.census.gov/data/lodes/LODES8/nd/nd_xwalk.csv.gz to lodes8_nd_xwalk.csv.gz
Download complete for lodes8_nd_xwalk.csv.gz
lodes8_wy_xwalk.csv.gz crosswalk cleared from cache.
lodes8_nd_xwalk.csv.gz crosswalk cleared from cache.
Downloading crosswalk https://lehd.ces.census.gov/data/lodes/LODES7/vt/vt_xwalk.csv.gz to lodes7_vt_xwalk.csv.gz
Download complete for lodes7_vt_xwalk.csv.gz
lodes7_vt_xwalk.csv.gz crosswalk cleared from cache.
Downloading crosswalk https://lehd.ces.census.gov/data/lodes/LODES8/vt/vt_xwalk.csv.gz to lodes8_vt_xwalk.csv.gz
Download complete for lodes8_vt_xwalk.csv.gz
lodes8_vt_xwalk.csv.gz crosswalk cleared from cache.
Downloading crosswalk https://lehd.ces.census.gov/data/lodes/LODES7/vt/vt_xwalk.csv.gz to lodes7_vt_xwalk.csv.gz
Download complete for lodes7_vt_xwalk.csv.gz
lodes7_vt_xwalk.csv.gz crosswalk cleared from cache.
Using cached file: lodes5_vt_rac_SA01_JT01_2008.csv.gz
Saving _problems/test-lehdr-482.R
Using cached file: lodes5_vt_wac_SA01_JT01_2008.csv.gz
Saving _problems/test-lehdr-500.R
Using cached file: lodes8_vt_rac_SA01_JT01_2022.csv.gz
Saving _problems/test-lehdr-518.R
Using cached file: lodes8_vt_wac_SA01_JT01_2022.csv.gz
Saving _problems/test-lehdr-536.R
Using cached file: lodes5_vt_rac_SA01_JT01_2008.csv.gz
Saving _problems/test-lehdr-554.R
Using cached file: lodes5_vt_wac_SA01_JT01_2008.csv.gz
Saving _problems/test-lehdr-572.R
Saving _problems/test-lehdr-592.R
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Saving _problems/test-lehdr-617.R
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Saving _problems/test-lehdr-643.R
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Saving _problems/test-lehdr-664.R
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Saving _problems/test-lehdr-684.R
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Saving _problems/test-lehdr-705.R
Using cached file: lodes8_de_wac_S000_JT00_2017.csv.gz
Using cached file: lodes8_vt_wac_S000_JT00_2017.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2019.csv.gz
Using cached file: lodes8_vt_wac_S000_JT00_2019.csv.gz
Saving _problems/test-lehdr-757.R
Using cached file: lodes8_de_wac_S000_JT00_2017.csv.gz
Using cached file: lodes8_vt_wac_S000_JT00_2017.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2019.csv.gz
Using cached file: lodes8_vt_wac_S000_JT00_2019.csv.gz
Saving _problems/test-lehdr-788.R
Using cached file: lodes8_de_wac_S000_JT00_2018.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-816.R
Using cached file: lodes8_de_wac_S000_JT00_2015.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2017.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-837.R
Using cached file: lodes8_de_wac_S000_JT00_2018.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-868.R
Using cached file: lodes8_de_wac_S000_JT00_2018.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-905.R
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-923.R
Using cached file: lodes8_de_rac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-944.R
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-969.R
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-995.R
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-1017.R
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-1064.R
[ FAIL 42 | WARN 57 | SKIP 0 | PASS 22 ]
══ Failed tests ════════════════════════════════════════════════════════════════
── Failure ('test-lehdr.R:17:3'): grab_lodes returns correct dimensions for OD tract-level LODES8 ──
Expected `... %>% dim()` to equal `c(36671, 14)`.
Differences:
`actual`: 0.0 2.0
`expected`: 36671.0 14.0
── Failure ('test-lehdr.R:35:3'): grab_lodes returns correct dimensions for OD tract-level LODES5 ──
Expected `... %>% dim()` to equal `c(25805, 14)`.
Differences:
`actual`: 0.0 2.0
`expected`: 25805.0 14.0
── Failure ('test-lehdr.R:52:3'): grab_lodes accepts year as character string for OD block-level LODES8 ──
Expected `... %>% dim()` to equal `c(290314, 15)`.
Differences:
`actual`: 0.0 5.0
`expected`: 290314.0 15.0
── Failure ('test-lehdr.R:69:3'): grab_lodes returns correct dimensions for OD aux state_part LODES5 ──
Expected `... %>% dim()` to equal `c(68588, 15)`.
Differences:
`actual`: 0.0 5.0
`expected`: 68588.0 15.0
── Failure ('test-lehdr.R:102:3'): grab_lodes returns correct dimensions for RAC tract-level LODES7 ──
Expected `... %>% dim()` to equal `c(218, 44)`.
Differences:
`actual`: 0.0 2.0
`expected`: 218.0 44.0
── Failure ('test-lehdr.R:117:3'): grab_lodes returns correct dimensions for RAC block-level LODES8 ──
Expected `... %>% dim()` to equal `c(14436, 45)`.
Differences:
`actual`: 0.0 4.0
`expected`: 14436.0 45.0
── Failure ('test-lehdr.R:131:3'): grab_lodes returns correct dimensions for RAC with non-default job_type and segment ──
Expected `... %>% dim()` to equal `c(12596, 45)`.
Differences:
`actual`: 0.0 4.0
`expected`: 12596.0 45.0
── Failure ('test-lehdr.R:149:3'): grab_lodes returns correct dimensions for WAC tract-level LODES5 ──
Expected `... %>% dim()` to equal `c(197, 42)`.
Differences:
`actual`: 0.0 2.0
`expected`: 197.0 42.0
── Failure ('test-lehdr.R:165:3'): grab_lodes returns correct dimensions for WAC block-level LODES7 ──
Expected `... %>% dim()` to equal `c(5476, 55)`.
Differences:
`actual`: 0.0 4.0
`expected`: 5476.0 55.0
── Failure ('test-lehdr.R:179:3'): grab_lodes returns correct dimensions for WAC block-level LODES8 ──
Expected `... %>% dim()` to equal `c(6421, 55)`.
Differences:
`actual`: 0.0 4.0
`expected`: 6421.0 55.0
── Failure ('test-lehdr.R:297:3'): grab_lodes returns correct dimensions for multi-state OD LODES5 ──
Expected `... %>% dim()` to equal `c(65262, 14)`.
Differences:
`actual`: 48525.0 14.0
`expected`: 65262.0 14.0
── Failure ('test-lehdr.R:315:3'): grab_lodes returns correct dimensions for multi-state OD LODES8 ──
Expected `... %>% dim()` to equal `c(929717, 15)`.
Differences:
`actual`: 675373.0 18.0
`expected`: 929717.0 15.0
── Failure ('test-lehdr.R:332:3'): grab_lodes returns correct dimensions for cross-year multi-state OD LODES8 ──
Expected `... %>% dim()` to equal `c(1125184, 15)`.
Differences:
`actual`: 575540.0 18.0
`expected`: 1125184.0 15.0
── Failure ('test-lehdr.R:351:3'): grab_lodes returns correct dimensions for multi-state WAC tract-level LODES7 ──
Expected `... %>% dim()` to equal `c(798, 54)`.
Differences:
`actual`: 399.0 54.0
`expected`: 798.0 54.0
── Failure ('test-lehdr.R:366:3'): grab_lodes returns correct dimensions for multi-state WAC tract-level LODES5 ──
Expected `... %>% dim()` to equal `c(752, 42)`.
Differences:
`actual`: 555.0 42.0
`expected`: 752.0 42.0
── Failure ('test-lehdr.R:381:3'): grab_lodes returns correct dimensions for multi-state WAC block-level LODES7 ──
Expected `... %>% dim()` to equal `c(24132, 55)`.
Differences:
`actual`: 12174.0 57.0
`expected`: 24132.0 55.0
── Failure ('test-lehdr.R:395:3'): grab_lodes returns correct dimensions for multi-year WAC block-level LODES8 ──
Expected `... %>% dim()` to equal `c(55696, 55)`.
Differences:
`actual`: 49676.0 57.0
`expected`: 55696.0 55.0
── Failure ('test-lehdr.R:426:3'): grab_lodes multi-state result contains year and state columns ──
Expected `unique(result$state)` to have the same values as `c("DE", "VT")`.
Actual: "VT"
Expected: "DE", "VT"
Absent: "DE"
── Error ('test-lehdr.R:472:3'): grab_lodes with geometry = TRUE returns sf for RAC county-level LODES5 ──
<dplyr:::mutate_error/rlang_error/error/condition>
Error in `dplyr::mutate(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))`: i In argument: `GEOID = paste0(STATEFP, COUNTYFP)`.
Caused by error:
! object 'STATEFP' not found
Backtrace:
▆
1. ├─lehdr::grab_lodes(...) at test-lehdr.R:472:3
2. │ └─lehdr:::join_lodes_geometry(...)
3. │ └─lehdr:::grab_lodes_geometry(...)
4. │ ├─dplyr::mutate(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))
5. │ └─dplyr:::mutate.data.frame(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))
6. │ └─dplyr:::mutate_cols(.data, dplyr_quosures(...), by)
7. │ ├─base::withCallingHandlers(...)
8. │ └─dplyr:::mutate_col(dots[[i]], data, mask, new_columns)
9. │ └─mask$eval_all_mutate(quo)
10. │ └─dplyr (local) eval()
11. ├─base::paste0(STATEFP, COUNTYFP)
12. └─dplyr (local) `<fn>`(`<objctNFE>`)
13. └─rlang::abort(message, class = error_class, parent = parent, call = error_call)
── Error ('test-lehdr.R:490:3'): grab_lodes with geometry = TRUE returns sf for WAC county-level LODES5 ──
<dplyr:::mutate_error/rlang_error/error/condition>
Error in `dplyr::mutate(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))`: i In argument: `GEOID = paste0(STATEFP, COUNTYFP)`.
Caused by error:
! object 'STATEFP' not found
Backtrace:
▆
1. ├─lehdr::grab_lodes(...) at test-lehdr.R:490:3
2. │ └─lehdr:::join_lodes_geometry(...)
3. │ └─lehdr:::grab_lodes_geometry(...)
4. │ ├─dplyr::mutate(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))
5. │ └─dplyr:::mutate.data.frame(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))
6. │ └─dplyr:::mutate_cols(.data, dplyr_quosures(...), by)
7. │ ├─base::withCallingHandlers(...)
8. │ └─dplyr:::mutate_col(dots[[i]], data, mask, new_columns)
9. │ └─mask$eval_all_mutate(quo)
10. │ └─dplyr (local) eval()
11. ├─base::paste0(STATEFP, COUNTYFP)
12. └─dplyr (local) `<fn>`(`<objctNFE>`)
13. └─rlang::abort(message, class = error_class, parent = parent, call = error_call)
── Error ('test-lehdr.R:508:3'): grab_lodes with geometry = TRUE returns sf for RAC block-group LODES8 ──
Error in `dplyr::select(lehdr_sf, dplyr::all_of(cols))`: i In argument: `dplyr::all_of(cols)`.
Caused by error in `dplyr::all_of()`:
! Can't subset elements that don't exist.
x Element `GEOID` doesn't exist.
── Error ('test-lehdr.R:526:3'): grab_lodes with geometry = TRUE returns sf for WAC block-group LODES8 ──
Error in `dplyr::select(lehdr_sf, dplyr::all_of(cols))`: i In argument: `dplyr::all_of(cols)`.
Caused by error in `dplyr::all_of()`:
! Can't subset elements that don't exist.
x Element `GEOID` doesn't exist.
── Error ('test-lehdr.R:544:3'): grab_lodes with geometry = TRUE returns sf for RAC block-level LODES5 ──
Error in `dplyr::select(lehdr_sf, dplyr::all_of(cols))`: Selections can't have missing values.
Backtrace:
▆
1. └─lehdr::grab_lodes(...) at test-lehdr.R:544:3
2. └─lehdr:::join_lodes_geometry(...)
3. └─lehdr:::grab_lodes_geometry(...)
4. ├─dplyr::select(lehdr_sf, dplyr::all_of(cols))
5. └─dplyr:::select.data.frame(lehdr_sf, dplyr::all_of(cols))
6. └─tidyselect::eval_select(expr(c(...)), data = .data, error_call = error_call)
7. └─tidyselect:::eval_select_impl(...)
8. ├─tidyselect:::with_subscript_errors(...)
9. │ └─base::withCallingHandlers(...)
10. └─tidyselect:::vars_select_eval(...)
11. └─tidyselect:::loc_validate(pos, vars, call = error_call)
12. └─tidyselect:::check_missing(pos, call = call)
13. └─rlang::abort("Selections can't have missing values.", call = call)
── Error ('test-lehdr.R:562:3'): grab_lodes with geometry = TRUE returns sf for WAC block-level LODES5 ──
Error in `dplyr::select(lehdr_sf, dplyr::all_of(cols))`: Selections can't have missing values.
Backtrace:
▆
1. └─lehdr::grab_lodes(...) at test-lehdr.R:562:3
2. └─lehdr:::join_lodes_geometry(...)
3. └─lehdr:::grab_lodes_geometry(...)
4. ├─dplyr::select(lehdr_sf, dplyr::all_of(cols))
5. └─dplyr:::select.data.frame(lehdr_sf, dplyr::all_of(cols))
6. └─tidyselect::eval_select(expr(c(...)), data = .data, error_call = error_call)
7. └─tidyselect:::eval_select_impl(...)
8. ├─tidyselect:::with_subscript_errors(...)
9. │ └─base::withCallingHandlers(...)
10. └─tidyselect:::vars_select_eval(...)
11. └─tidyselect:::loc_validate(pos, vars, call = error_call)
12. └─tidyselect:::check_missing(pos, call = call)
13. └─rlang::abort("Selections can't have missing values.", call = call)
── Error ('test-lehdr.R:580:3'): grab_lodes with geometry = TRUE and lodes_type = od emits a message ──
<dplyr:::mutate_error/rlang_error/error/condition>
Error in `dplyr::mutate(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))`: i In argument: `GEOID = paste0(STATEFP, COUNTYFP)`.
Caused by error:
! object 'STATEFP' not found
Backtrace:
▆
1. ├─testthat::expect_message(...) at test-lehdr.R:580:3
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. ├─lehdr::grab_lodes(...)
8. │ └─lehdr:::join_lodes_geometry(...)
9. │ └─lehdr:::grab_lodes_geometry(...)
10. │ ├─dplyr::mutate(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))
11. │ └─dplyr:::mutate.data.frame(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))
12. │ └─dplyr:::mutate_cols(.data, dplyr_quosures(...), by)
13. │ ├─base::withCallingHandlers(...)
14. │ └─dplyr:::mutate_col(dots[[i]], data, mask, new_columns)
15. │ └─mask$eval_all_mutate(quo)
16. │ └─dplyr (local) eval()
17. ├─base::paste0(STATEFP, COUNTYFP)
18. └─dplyr (local) `<fn>`(`<objctNFE>`)
19. └─rlang::abort(message, class = error_class, parent = parent, call = error_call)
── Error ('test-lehdr.R:617:3'): compute_commute_stats returns expected columns for tract-level OD ──
Error in `compute_commute_stats(od, agg_geo = "tract")`: Column `h_tract` not found in `od_df`.
i Ensure `od_df` was retrieved with `lodes_type = "od"` and `agg_geo = "tract"` (or aggregated to that level).
Backtrace:
▆
1. └─lehdr::compute_commute_stats(od, agg_geo = "tract") at test-lehdr.R:617:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:643:3'): compute_commute_stats count columns are non-negative ──
Error in `compute_commute_stats(od, agg_geo = "tract")`: Column `h_tract` not found in `od_df`.
i Ensure `od_df` was retrieved with `lodes_type = "od"` and `agg_geo = "tract"` (or aggregated to that level).
Backtrace:
▆
1. └─lehdr::compute_commute_stats(od, agg_geo = "tract") at test-lehdr.R:643:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:664:3'): compute_commute_stats self_containment is in [0, 1] ──
Error in `compute_commute_stats(od, agg_geo = "tract")`: Column `h_tract` not found in `od_df`.
i Ensure `od_df` was retrieved with `lodes_type = "od"` and `agg_geo = "tract"` (or aggregated to that level).
Backtrace:
▆
1. └─lehdr::compute_commute_stats(od, agg_geo = "tract") at test-lehdr.R:664:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:684:3'): compute_commute_stats net_flow equals workers_in minus workers_out_total ──
Error in `compute_commute_stats(od, agg_geo = "tract")`: Column `h_tract` not found in `od_df`.
i Ensure `od_df` was retrieved with `lodes_type = "od"` and `agg_geo = "tract"` (or aggregated to that level).
Backtrace:
▆
1. └─lehdr::compute_commute_stats(od, agg_geo = "tract") at test-lehdr.R:684:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:705:3'): compute_commute_stats works at county level and returns one row per county ──
Error in `compute_commute_stats(od, agg_geo = "county")`: Column `h_county` not found in `od_df`.
i Ensure `od_df` was retrieved with `lodes_type = "od"` and `agg_geo = "county"` (or aggregated to that level).
Backtrace:
▆
1. └─lehdr::compute_commute_stats(od, agg_geo = "county") at test-lehdr.R:705:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:751:3'): compute_lodes_change wide output has expected column suffixes ──
Error in `compute_lodes_change(wac, geo_col = "w_county", base_year = 2017, compare_year = 2019, variables = c("C000", "CE01", "CE02", "CE03"))`: `lodes_df` must contain data for at least two distinct years.
i Only year 2019 found.
Backtrace:
▆
1. └─lehdr::compute_lodes_change(...) at test-lehdr.R:751:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:781:3'): compute_lodes_change long output has required columns ──
Error in `compute_lodes_change(wac, geo_col = "w_county", base_year = 2017, compare_year = 2019, variables = "C000", output = "long")`: `lodes_df` must contain data for at least two distinct years.
i Only year 2019 found.
Backtrace:
▆
1. └─lehdr::compute_lodes_change(...) at test-lehdr.R:781:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:812:3'): compute_lodes_change pct_change arithmetic is correct ──
Error in `compute_lodes_change(wac, geo_col = "w_county", variables = "C000")`: `lodes_df` must contain data for at least two distinct years.
Backtrace:
▆
1. └─lehdr::compute_lodes_change(wac, geo_col = "w_county", variables = "C000") at test-lehdr.R:812:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:837:3'): compute_lodes_change defaults base and compare to min and max year ──
Error in `compute_lodes_change(wac, geo_col = "w_county", variables = "C000")`: `lodes_df` must contain data for at least two distinct years.
Backtrace:
▆
1. └─lehdr::compute_lodes_change(wac, geo_col = "w_county", variables = "C000") at test-lehdr.R:837:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:865:3'): compute_lodes_change auto-detects geo_col and emits an inform message ──
Error in `compute_lodes_change(wac, variables = "C000")`: `lodes_df` must contain data for at least two distinct years.
Backtrace:
▆
1. ├─testthat::expect_message(...) at test-lehdr.R:865:3
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. └─lehdr::compute_lodes_change(wac, variables = "C000")
8. └─rlang::abort(...)
── Error ('test-lehdr.R:902:3'): compute_lodes_change aborts when base_year is not in the data ──
Error in `compute_lodes_change(wac, geo_col = "w_county", base_year = 2010)`: `lodes_df` must contain data for at least two distinct years.
Backtrace:
▆
1. ├─testthat::expect_error(...) at test-lehdr.R:902:3
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. └─lehdr::compute_lodes_change(wac, geo_col = "w_county", base_year = 2010)
8. └─rlang::abort(...)
── Error ('test-lehdr.R:923:3'): compute_earnings_share WAC wide output shares sum to 1 per row ──
Error in `compute_earnings_share(wac, type = "wac", geo_col = "w_county")`: Earnings columns not found: CE01, CE02, CE03.
i Retrieve data with `grab_lodes(..., lodes_type = "wac", segment = "S000")` to include earnings tier columns.
Backtrace:
▆
1. └─lehdr::compute_earnings_share(wac, type = "wac", geo_col = "w_county") at test-lehdr.R:923:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:944:3'): compute_earnings_share RAC wide output shares sum to 1 per row ──
Error in `compute_earnings_share(rac, type = "rac", geo_col = "h_county")`: Earnings columns not found: CE01, CE02, CE03.
i Retrieve data with `grab_lodes(..., lodes_type = "rac", segment = "S000")` to include earnings tier columns.
Backtrace:
▆
1. └─lehdr::compute_earnings_share(rac, type = "rac", geo_col = "h_county") at test-lehdr.R:944:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:964:3'): compute_earnings_share long output has required columns ──
Error in `compute_earnings_share(wac, type = "wac", geo_col = "w_county", output = "long")`: Earnings columns not found: CE01, CE02, CE03.
i Retrieve data with `grab_lodes(..., lodes_type = "wac", segment = "S000")` to include earnings tier columns.
Backtrace:
▆
1. └─lehdr::compute_earnings_share(wac, type = "wac", geo_col = "w_county", output = "long") at test-lehdr.R:964:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:990:3'): compute_earnings_share long shares are in [0, 1] ──
Error in `compute_earnings_share(wac, type = "wac", geo_col = "w_county", output = "long")`: Earnings columns not found: CE01, CE02, CE03.
i Retrieve data with `grab_lodes(..., lodes_type = "wac", segment = "S000")` to include earnings tier columns.
Backtrace:
▆
1. └─lehdr::compute_earnings_share(wac, type = "wac", geo_col = "w_county", output = "long") at test-lehdr.R:990:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:1014:3'): compute_earnings_share auto-detects geo_col and emits an inform message ──
Error in `compute_earnings_share(wac, type = "wac")`: Earnings columns not found: CE01, CE02, CE03.
i Retrieve data with `grab_lodes(..., lodes_type = "wac", segment = "S000")` to include earnings tier columns.
Backtrace:
▆
1. ├─testthat::expect_message(...) at test-lehdr.R:1014:3
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. └─lehdr::compute_earnings_share(wac, type = "wac")
8. └─rlang::abort(...)
── Error ('test-lehdr.R:1064:3'): compute_earnings_share count columns match raw column sums ──
Error in `compute_earnings_share(wac, type = "wac", geo_col = "w_county")`: Earnings columns not found: CE01, CE02, CE03.
i Retrieve data with `grab_lodes(..., lodes_type = "wac", segment = "S000")` to include earnings tier columns.
Backtrace:
▆
1. └─lehdr::compute_earnings_share(wac, type = "wac", geo_col = "w_county") at test-lehdr.R:1064:3
2. └─rlang::abort(...)
[ FAIL 42 | WARN 57 | SKIP 0 | PASS 22 ]
Error:
! Test failures.
Execution halted
Flavor: r-devel-linux-x86_64-fedora-clang
Version: 1.2.0
Check: tests
Result: ERROR
Running ‘testthat.R’ [20s/34s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
> library(testthat)
> library(lehdr)
lehdr 1.2.0
To enable caching of data, set `options(lehdr_use_cache = TRUE)`
To cite lehdr in published work (Chicago author-date):
Green, Jamaal, Liming Wang, and Dillon Mahmoudi. 2025.
"lehdr: Grab Longitudinal Employer-Household Dynamics
(LEHD) Flat Files." R package version 1.2.0.
https://github.com/jamgreen/lehdr/
Run citation("lehdr") for a BibTeX entry.
Use suppressPackageStartupMessages() to suppress this message.
> library(dplyr)
Attaching package: 'dplyr'
The following objects are masked from 'package:stats':
filter, lag
The following objects are masked from 'package:base':
intersect, setdiff, setequal, union
>
> test_check("lehdr")
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Saving _problems/test-lehdr-29.R
Using cached file: lodes5_de_od_main_JT00_2009.csv.gz
Saving _problems/test-lehdr-45.R
Using cached file: lodes8_de_od_main_JT00_2015.csv.gz
Saving _problems/test-lehdr-63.R
Using cached file: lodes5_de_od_aux_JT00_2009.csv.gz
Saving _problems/test-lehdr-78.R
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Using cached file: lodes7_de_rac_S000_JT00_2014.csv.gz
Saving _problems/test-lehdr-111.R
Using cached file: lodes8_de_rac_S000_JT00_2015.csv.gz
Saving _problems/test-lehdr-125.R
Using cached file: lodes7_de_rac_SA01_JT01_2004.csv.gz
Saving _problems/test-lehdr-141.R
Using cached file: lodes5_de_wac_S000_JT01_2009.csv.gz
Saving _problems/test-lehdr-159.R
Using cached file: lodes7_de_wac_S000_JT00_2015.csv.gz
Saving _problems/test-lehdr-173.R
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-187.R
Using cached file: lodes7_vt_wac_S000_JT00_2015.csv.gz
Using cached file: lodes8_vt_wac_S000_JT00_2015.csv.gz
Using cached file: lodes5_nd_od_main_JT01_2007.csv.gz
Using cached file: lodes5_vt_od_main_JT01_2007.csv.gz
Using cached file: lodes5_nd_od_main_JT01_2008.csv.gz
Using cached file: lodes5_vt_od_main_JT01_2008.csv.gz
Saving _problems/test-lehdr-309.R
Using cached file: lodes8_de_od_main_JT01_2013.csv.gz
Using cached file: lodes8_vt_od_main_JT01_2013.csv.gz
Using cached file: lodes8_de_od_main_JT01_2014.csv.gz
Using cached file: lodes8_vt_od_main_JT01_2014.csv.gz
Saving _problems/test-lehdr-326.R
Using cached file: lodes8_de_od_main_JT01_2013.csv.gz
Using cached file: lodes8_sd_od_main_JT01_2013.csv.gz
Using cached file: lodes8_de_od_main_JT01_2020.csv.gz
Using cached file: lodes8_sd_od_main_JT01_2020.csv.gz
Saving _problems/test-lehdr-343.R
Using cached file: lodes7_de_wac_S000_JT00_2013.csv.gz
Using cached file: lodes7_vt_wac_S000_JT00_2013.csv.gz
Using cached file: lodes7_de_wac_S000_JT00_2014.csv.gz
Using cached file: lodes7_vt_wac_S000_JT00_2014.csv.gz
Saving _problems/test-lehdr-360.R
Using cached file: lodes5_de_wac_S000_JT00_2007.csv.gz
Using cached file: lodes5_vt_wac_S000_JT00_2007.csv.gz
Using cached file: lodes5_de_wac_S000_JT00_2009.csv.gz
Using cached file: lodes5_vt_wac_S000_JT00_2009.csv.gz
Saving _problems/test-lehdr-375.R
Using cached file: lodes7_de_wac_S000_JT00_2013.csv.gz
Using cached file: lodes7_vt_wac_S000_JT00_2013.csv.gz
Using cached file: lodes7_de_wac_S000_JT00_2014.csv.gz
Using cached file: lodes7_vt_wac_S000_JT00_2014.csv.gz
Saving _problems/test-lehdr-389.R
Using cached file: lodes8_de_wac_S000_JT01_2017.csv.gz
Using cached file: lodes8_vt_wac_S000_JT01_2017.csv.gz
Using cached file: lodes8_de_wac_S000_JT01_2018.csv.gz
Using cached file: lodes8_vt_wac_S000_JT01_2018.csv.gz
Using cached file: lodes8_de_wac_S000_JT01_2019.csv.gz
Using cached file: lodes8_vt_wac_S000_JT01_2019.csv.gz
Using cached file: lodes8_de_wac_S000_JT01_2020.csv.gz
Using cached file: lodes8_vt_wac_S000_JT01_2020.csv.gz
Saving _problems/test-lehdr-405.R
Using cached file: lodes8_de_wac_S000_JT00_2019.csv.gz
Using cached file: lodes8_vt_wac_S000_JT00_2019.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Using cached file: lodes8_vt_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-426.R
Downloading crosswalk https://lehd.ces.census.gov/data/lodes/LODES8/vt/vt_xwalk.csv.gz to lodes8_vt_xwalk.csv.gz
Download complete for lodes8_vt_xwalk.csv.gz
lodes8_vt_xwalk.csv.gz crosswalk cleared from cache.
Downloading crosswalk https://lehd.ces.census.gov/data/lodes/LODES8/wy/wy_xwalk.csv.gz to lodes8_wy_xwalk.csv.gz
Download complete for lodes8_wy_xwalk.csv.gz
Downloading crosswalk https://lehd.ces.census.gov/data/lodes/LODES8/nd/nd_xwalk.csv.gz to lodes8_nd_xwalk.csv.gz
Download complete for lodes8_nd_xwalk.csv.gz
lodes8_wy_xwalk.csv.gz crosswalk cleared from cache.
lodes8_nd_xwalk.csv.gz crosswalk cleared from cache.
Downloading crosswalk https://lehd.ces.census.gov/data/lodes/LODES7/vt/vt_xwalk.csv.gz to lodes7_vt_xwalk.csv.gz
Download complete for lodes7_vt_xwalk.csv.gz
lodes7_vt_xwalk.csv.gz crosswalk cleared from cache.
Downloading crosswalk https://lehd.ces.census.gov/data/lodes/LODES8/vt/vt_xwalk.csv.gz to lodes8_vt_xwalk.csv.gz
Download complete for lodes8_vt_xwalk.csv.gz
lodes8_vt_xwalk.csv.gz crosswalk cleared from cache.
Downloading crosswalk https://lehd.ces.census.gov/data/lodes/LODES7/vt/vt_xwalk.csv.gz to lodes7_vt_xwalk.csv.gz
Download complete for lodes7_vt_xwalk.csv.gz
lodes7_vt_xwalk.csv.gz crosswalk cleared from cache.
Using cached file: lodes5_vt_rac_SA01_JT01_2008.csv.gz
Saving _problems/test-lehdr-482.R
Using cached file: lodes5_vt_wac_SA01_JT01_2008.csv.gz
Saving _problems/test-lehdr-500.R
Using cached file: lodes8_vt_rac_SA01_JT01_2022.csv.gz
Saving _problems/test-lehdr-518.R
Using cached file: lodes8_vt_wac_SA01_JT01_2022.csv.gz
Saving _problems/test-lehdr-536.R
Using cached file: lodes5_vt_rac_SA01_JT01_2008.csv.gz
Saving _problems/test-lehdr-554.R
Using cached file: lodes5_vt_wac_SA01_JT01_2008.csv.gz
Saving _problems/test-lehdr-572.R
Saving _problems/test-lehdr-592.R
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Saving _problems/test-lehdr-617.R
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Saving _problems/test-lehdr-643.R
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Saving _problems/test-lehdr-664.R
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Saving _problems/test-lehdr-684.R
Using cached file: lodes8_de_od_main_JT00_2020.csv.gz
Saving _problems/test-lehdr-705.R
Using cached file: lodes8_de_wac_S000_JT00_2017.csv.gz
Using cached file: lodes8_vt_wac_S000_JT00_2017.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2019.csv.gz
Using cached file: lodes8_vt_wac_S000_JT00_2019.csv.gz
Saving _problems/test-lehdr-757.R
Using cached file: lodes8_de_wac_S000_JT00_2017.csv.gz
Using cached file: lodes8_vt_wac_S000_JT00_2017.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2019.csv.gz
Using cached file: lodes8_vt_wac_S000_JT00_2019.csv.gz
Saving _problems/test-lehdr-788.R
Using cached file: lodes8_de_wac_S000_JT00_2018.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-816.R
Using cached file: lodes8_de_wac_S000_JT00_2015.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2017.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-837.R
Using cached file: lodes8_de_wac_S000_JT00_2018.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-868.R
Using cached file: lodes8_de_wac_S000_JT00_2018.csv.gz
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-905.R
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-923.R
Using cached file: lodes8_de_rac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-944.R
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-969.R
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-995.R
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-1017.R
Using cached file: lodes8_de_wac_S000_JT00_2020.csv.gz
Saving _problems/test-lehdr-1064.R
[ FAIL 42 | WARN 57 | SKIP 0 | PASS 22 ]
══ Failed tests ════════════════════════════════════════════════════════════════
── Failure ('test-lehdr.R:17:3'): grab_lodes returns correct dimensions for OD tract-level LODES8 ──
Expected `... %>% dim()` to equal `c(36671, 14)`.
Differences:
`actual`: 0.0 2.0
`expected`: 36671.0 14.0
── Failure ('test-lehdr.R:35:3'): grab_lodes returns correct dimensions for OD tract-level LODES5 ──
Expected `... %>% dim()` to equal `c(25805, 14)`.
Differences:
`actual`: 0.0 2.0
`expected`: 25805.0 14.0
── Failure ('test-lehdr.R:52:3'): grab_lodes accepts year as character string for OD block-level LODES8 ──
Expected `... %>% dim()` to equal `c(290314, 15)`.
Differences:
`actual`: 0.0 5.0
`expected`: 290314.0 15.0
── Failure ('test-lehdr.R:69:3'): grab_lodes returns correct dimensions for OD aux state_part LODES5 ──
Expected `... %>% dim()` to equal `c(68588, 15)`.
Differences:
`actual`: 0.0 5.0
`expected`: 68588.0 15.0
── Failure ('test-lehdr.R:102:3'): grab_lodes returns correct dimensions for RAC tract-level LODES7 ──
Expected `... %>% dim()` to equal `c(218, 44)`.
Differences:
`actual`: 0.0 2.0
`expected`: 218.0 44.0
── Failure ('test-lehdr.R:117:3'): grab_lodes returns correct dimensions for RAC block-level LODES8 ──
Expected `... %>% dim()` to equal `c(14436, 45)`.
Differences:
`actual`: 0.0 4.0
`expected`: 14436.0 45.0
── Failure ('test-lehdr.R:131:3'): grab_lodes returns correct dimensions for RAC with non-default job_type and segment ──
Expected `... %>% dim()` to equal `c(12596, 45)`.
Differences:
`actual`: 0.0 4.0
`expected`: 12596.0 45.0
── Failure ('test-lehdr.R:149:3'): grab_lodes returns correct dimensions for WAC tract-level LODES5 ──
Expected `... %>% dim()` to equal `c(197, 42)`.
Differences:
`actual`: 0.0 2.0
`expected`: 197.0 42.0
── Failure ('test-lehdr.R:165:3'): grab_lodes returns correct dimensions for WAC block-level LODES7 ──
Expected `... %>% dim()` to equal `c(5476, 55)`.
Differences:
`actual`: 0.0 4.0
`expected`: 5476.0 55.0
── Failure ('test-lehdr.R:179:3'): grab_lodes returns correct dimensions for WAC block-level LODES8 ──
Expected `... %>% dim()` to equal `c(6421, 55)`.
Differences:
`actual`: 0.0 4.0
`expected`: 6421.0 55.0
── Failure ('test-lehdr.R:297:3'): grab_lodes returns correct dimensions for multi-state OD LODES5 ──
Expected `... %>% dim()` to equal `c(65262, 14)`.
Differences:
`actual`: 48525.0 14.0
`expected`: 65262.0 14.0
── Failure ('test-lehdr.R:315:3'): grab_lodes returns correct dimensions for multi-state OD LODES8 ──
Expected `... %>% dim()` to equal `c(929717, 15)`.
Differences:
`actual`: 675373.0 18.0
`expected`: 929717.0 15.0
── Failure ('test-lehdr.R:332:3'): grab_lodes returns correct dimensions for cross-year multi-state OD LODES8 ──
Expected `... %>% dim()` to equal `c(1125184, 15)`.
Differences:
`actual`: 575540.0 18.0
`expected`: 1125184.0 15.0
── Failure ('test-lehdr.R:351:3'): grab_lodes returns correct dimensions for multi-state WAC tract-level LODES7 ──
Expected `... %>% dim()` to equal `c(798, 54)`.
Differences:
`actual`: 399.0 54.0
`expected`: 798.0 54.0
── Failure ('test-lehdr.R:366:3'): grab_lodes returns correct dimensions for multi-state WAC tract-level LODES5 ──
Expected `... %>% dim()` to equal `c(752, 42)`.
Differences:
`actual`: 555.0 42.0
`expected`: 752.0 42.0
── Failure ('test-lehdr.R:381:3'): grab_lodes returns correct dimensions for multi-state WAC block-level LODES7 ──
Expected `... %>% dim()` to equal `c(24132, 55)`.
Differences:
`actual`: 12174.0 57.0
`expected`: 24132.0 55.0
── Failure ('test-lehdr.R:395:3'): grab_lodes returns correct dimensions for multi-year WAC block-level LODES8 ──
Expected `... %>% dim()` to equal `c(55696, 55)`.
Differences:
`actual`: 49676.0 57.0
`expected`: 55696.0 55.0
── Failure ('test-lehdr.R:426:3'): grab_lodes multi-state result contains year and state columns ──
Expected `unique(result$state)` to have the same values as `c("DE", "VT")`.
Actual: "VT"
Expected: "DE", "VT"
Absent: "DE"
── Error ('test-lehdr.R:472:3'): grab_lodes with geometry = TRUE returns sf for RAC county-level LODES5 ──
<dplyr:::mutate_error/rlang_error/error/condition>
Error in `dplyr::mutate(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))`: i In argument: `GEOID = paste0(STATEFP, COUNTYFP)`.
Caused by error:
! object 'STATEFP' not found
Backtrace:
▆
1. ├─lehdr::grab_lodes(...) at test-lehdr.R:472:3
2. │ └─lehdr:::join_lodes_geometry(...)
3. │ └─lehdr:::grab_lodes_geometry(...)
4. │ ├─dplyr::mutate(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))
5. │ └─dplyr:::mutate.data.frame(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))
6. │ └─dplyr:::mutate_cols(.data, dplyr_quosures(...), by)
7. │ ├─base::withCallingHandlers(...)
8. │ └─dplyr:::mutate_col(dots[[i]], data, mask, new_columns)
9. │ └─mask$eval_all_mutate(quo)
10. │ └─dplyr (local) eval()
11. ├─base::paste0(STATEFP, COUNTYFP)
12. └─dplyr (local) `<fn>`(`<objctNFE>`)
13. └─rlang::abort(message, class = error_class, parent = parent, call = error_call)
── Error ('test-lehdr.R:490:3'): grab_lodes with geometry = TRUE returns sf for WAC county-level LODES5 ──
<dplyr:::mutate_error/rlang_error/error/condition>
Error in `dplyr::mutate(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))`: i In argument: `GEOID = paste0(STATEFP, COUNTYFP)`.
Caused by error:
! object 'STATEFP' not found
Backtrace:
▆
1. ├─lehdr::grab_lodes(...) at test-lehdr.R:490:3
2. │ └─lehdr:::join_lodes_geometry(...)
3. │ └─lehdr:::grab_lodes_geometry(...)
4. │ ├─dplyr::mutate(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))
5. │ └─dplyr:::mutate.data.frame(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))
6. │ └─dplyr:::mutate_cols(.data, dplyr_quosures(...), by)
7. │ ├─base::withCallingHandlers(...)
8. │ └─dplyr:::mutate_col(dots[[i]], data, mask, new_columns)
9. │ └─mask$eval_all_mutate(quo)
10. │ └─dplyr (local) eval()
11. ├─base::paste0(STATEFP, COUNTYFP)
12. └─dplyr (local) `<fn>`(`<objctNFE>`)
13. └─rlang::abort(message, class = error_class, parent = parent, call = error_call)
── Error ('test-lehdr.R:508:3'): grab_lodes with geometry = TRUE returns sf for RAC block-group LODES8 ──
Error in `dplyr::select(lehdr_sf, dplyr::all_of(cols))`: i In argument: `dplyr::all_of(cols)`.
Caused by error in `dplyr::all_of()`:
! Can't subset elements that don't exist.
x Element `GEOID` doesn't exist.
── Error ('test-lehdr.R:526:3'): grab_lodes with geometry = TRUE returns sf for WAC block-group LODES8 ──
Error in `dplyr::select(lehdr_sf, dplyr::all_of(cols))`: i In argument: `dplyr::all_of(cols)`.
Caused by error in `dplyr::all_of()`:
! Can't subset elements that don't exist.
x Element `GEOID` doesn't exist.
── Error ('test-lehdr.R:544:3'): grab_lodes with geometry = TRUE returns sf for RAC block-level LODES5 ──
Error in `dplyr::select(lehdr_sf, dplyr::all_of(cols))`: Selections can't have missing values.
Backtrace:
▆
1. └─lehdr::grab_lodes(...) at test-lehdr.R:544:3
2. └─lehdr:::join_lodes_geometry(...)
3. └─lehdr:::grab_lodes_geometry(...)
4. ├─dplyr::select(lehdr_sf, dplyr::all_of(cols))
5. └─dplyr:::select.data.frame(lehdr_sf, dplyr::all_of(cols))
6. └─tidyselect::eval_select(expr(c(...)), data = .data, error_call = error_call)
7. └─tidyselect:::eval_select_impl(...)
8. ├─tidyselect:::with_subscript_errors(...)
9. │ └─base::withCallingHandlers(...)
10. └─tidyselect:::vars_select_eval(...)
11. └─tidyselect:::loc_validate(pos, vars, call = error_call)
12. └─tidyselect:::check_missing(pos, call = call)
13. └─rlang::abort("Selections can't have missing values.", call = call)
── Error ('test-lehdr.R:562:3'): grab_lodes with geometry = TRUE returns sf for WAC block-level LODES5 ──
Error in `dplyr::select(lehdr_sf, dplyr::all_of(cols))`: Selections can't have missing values.
Backtrace:
▆
1. └─lehdr::grab_lodes(...) at test-lehdr.R:562:3
2. └─lehdr:::join_lodes_geometry(...)
3. └─lehdr:::grab_lodes_geometry(...)
4. ├─dplyr::select(lehdr_sf, dplyr::all_of(cols))
5. └─dplyr:::select.data.frame(lehdr_sf, dplyr::all_of(cols))
6. └─tidyselect::eval_select(expr(c(...)), data = .data, error_call = error_call)
7. └─tidyselect:::eval_select_impl(...)
8. ├─tidyselect:::with_subscript_errors(...)
9. │ └─base::withCallingHandlers(...)
10. └─tidyselect:::vars_select_eval(...)
11. └─tidyselect:::loc_validate(pos, vars, call = error_call)
12. └─tidyselect:::check_missing(pos, call = call)
13. └─rlang::abort("Selections can't have missing values.", call = call)
── Error ('test-lehdr.R:580:3'): grab_lodes with geometry = TRUE and lodes_type = od emits a message ──
<dplyr:::mutate_error/rlang_error/error/condition>
Error in `dplyr::mutate(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))`: i In argument: `GEOID = paste0(STATEFP, COUNTYFP)`.
Caused by error:
! object 'STATEFP' not found
Backtrace:
▆
1. ├─testthat::expect_message(...) at test-lehdr.R:580:3
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. ├─lehdr::grab_lodes(...)
8. │ └─lehdr:::join_lodes_geometry(...)
9. │ └─lehdr:::grab_lodes_geometry(...)
10. │ ├─dplyr::mutate(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))
11. │ └─dplyr:::mutate.data.frame(lehdr_sf, GEOID = paste0(STATEFP, COUNTYFP))
12. │ └─dplyr:::mutate_cols(.data, dplyr_quosures(...), by)
13. │ ├─base::withCallingHandlers(...)
14. │ └─dplyr:::mutate_col(dots[[i]], data, mask, new_columns)
15. │ └─mask$eval_all_mutate(quo)
16. │ └─dplyr (local) eval()
17. ├─base::paste0(STATEFP, COUNTYFP)
18. └─dplyr (local) `<fn>`(`<objctNFE>`)
19. └─rlang::abort(message, class = error_class, parent = parent, call = error_call)
── Error ('test-lehdr.R:617:3'): compute_commute_stats returns expected columns for tract-level OD ──
Error in `compute_commute_stats(od, agg_geo = "tract")`: Column `h_tract` not found in `od_df`.
i Ensure `od_df` was retrieved with `lodes_type = "od"` and `agg_geo = "tract"` (or aggregated to that level).
Backtrace:
▆
1. └─lehdr::compute_commute_stats(od, agg_geo = "tract") at test-lehdr.R:617:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:643:3'): compute_commute_stats count columns are non-negative ──
Error in `compute_commute_stats(od, agg_geo = "tract")`: Column `h_tract` not found in `od_df`.
i Ensure `od_df` was retrieved with `lodes_type = "od"` and `agg_geo = "tract"` (or aggregated to that level).
Backtrace:
▆
1. └─lehdr::compute_commute_stats(od, agg_geo = "tract") at test-lehdr.R:643:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:664:3'): compute_commute_stats self_containment is in [0, 1] ──
Error in `compute_commute_stats(od, agg_geo = "tract")`: Column `h_tract` not found in `od_df`.
i Ensure `od_df` was retrieved with `lodes_type = "od"` and `agg_geo = "tract"` (or aggregated to that level).
Backtrace:
▆
1. └─lehdr::compute_commute_stats(od, agg_geo = "tract") at test-lehdr.R:664:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:684:3'): compute_commute_stats net_flow equals workers_in minus workers_out_total ──
Error in `compute_commute_stats(od, agg_geo = "tract")`: Column `h_tract` not found in `od_df`.
i Ensure `od_df` was retrieved with `lodes_type = "od"` and `agg_geo = "tract"` (or aggregated to that level).
Backtrace:
▆
1. └─lehdr::compute_commute_stats(od, agg_geo = "tract") at test-lehdr.R:684:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:705:3'): compute_commute_stats works at county level and returns one row per county ──
Error in `compute_commute_stats(od, agg_geo = "county")`: Column `h_county` not found in `od_df`.
i Ensure `od_df` was retrieved with `lodes_type = "od"` and `agg_geo = "county"` (or aggregated to that level).
Backtrace:
▆
1. └─lehdr::compute_commute_stats(od, agg_geo = "county") at test-lehdr.R:705:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:751:3'): compute_lodes_change wide output has expected column suffixes ──
Error in `compute_lodes_change(wac, geo_col = "w_county", base_year = 2017, compare_year = 2019, variables = c("C000", "CE01", "CE02", "CE03"))`: `lodes_df` must contain data for at least two distinct years.
i Only year 2019 found.
Backtrace:
▆
1. └─lehdr::compute_lodes_change(...) at test-lehdr.R:751:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:781:3'): compute_lodes_change long output has required columns ──
Error in `compute_lodes_change(wac, geo_col = "w_county", base_year = 2017, compare_year = 2019, variables = "C000", output = "long")`: `lodes_df` must contain data for at least two distinct years.
i Only year 2019 found.
Backtrace:
▆
1. └─lehdr::compute_lodes_change(...) at test-lehdr.R:781:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:812:3'): compute_lodes_change pct_change arithmetic is correct ──
Error in `compute_lodes_change(wac, geo_col = "w_county", variables = "C000")`: `lodes_df` must contain data for at least two distinct years.
Backtrace:
▆
1. └─lehdr::compute_lodes_change(wac, geo_col = "w_county", variables = "C000") at test-lehdr.R:812:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:837:3'): compute_lodes_change defaults base and compare to min and max year ──
Error in `compute_lodes_change(wac, geo_col = "w_county", variables = "C000")`: `lodes_df` must contain data for at least two distinct years.
Backtrace:
▆
1. └─lehdr::compute_lodes_change(wac, geo_col = "w_county", variables = "C000") at test-lehdr.R:837:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:865:3'): compute_lodes_change auto-detects geo_col and emits an inform message ──
Error in `compute_lodes_change(wac, variables = "C000")`: `lodes_df` must contain data for at least two distinct years.
Backtrace:
▆
1. ├─testthat::expect_message(...) at test-lehdr.R:865:3
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. └─lehdr::compute_lodes_change(wac, variables = "C000")
8. └─rlang::abort(...)
── Error ('test-lehdr.R:902:3'): compute_lodes_change aborts when base_year is not in the data ──
Error in `compute_lodes_change(wac, geo_col = "w_county", base_year = 2010)`: `lodes_df` must contain data for at least two distinct years.
Backtrace:
▆
1. ├─testthat::expect_error(...) at test-lehdr.R:902:3
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. └─lehdr::compute_lodes_change(wac, geo_col = "w_county", base_year = 2010)
8. └─rlang::abort(...)
── Error ('test-lehdr.R:923:3'): compute_earnings_share WAC wide output shares sum to 1 per row ──
Error in `compute_earnings_share(wac, type = "wac", geo_col = "w_county")`: Earnings columns not found: CE01, CE02, CE03.
i Retrieve data with `grab_lodes(..., lodes_type = "wac", segment = "S000")` to include earnings tier columns.
Backtrace:
▆
1. └─lehdr::compute_earnings_share(wac, type = "wac", geo_col = "w_county") at test-lehdr.R:923:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:944:3'): compute_earnings_share RAC wide output shares sum to 1 per row ──
Error in `compute_earnings_share(rac, type = "rac", geo_col = "h_county")`: Earnings columns not found: CE01, CE02, CE03.
i Retrieve data with `grab_lodes(..., lodes_type = "rac", segment = "S000")` to include earnings tier columns.
Backtrace:
▆
1. └─lehdr::compute_earnings_share(rac, type = "rac", geo_col = "h_county") at test-lehdr.R:944:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:964:3'): compute_earnings_share long output has required columns ──
Error in `compute_earnings_share(wac, type = "wac", geo_col = "w_county", output = "long")`: Earnings columns not found: CE01, CE02, CE03.
i Retrieve data with `grab_lodes(..., lodes_type = "wac", segment = "S000")` to include earnings tier columns.
Backtrace:
▆
1. └─lehdr::compute_earnings_share(wac, type = "wac", geo_col = "w_county", output = "long") at test-lehdr.R:964:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:990:3'): compute_earnings_share long shares are in [0, 1] ──
Error in `compute_earnings_share(wac, type = "wac", geo_col = "w_county", output = "long")`: Earnings columns not found: CE01, CE02, CE03.
i Retrieve data with `grab_lodes(..., lodes_type = "wac", segment = "S000")` to include earnings tier columns.
Backtrace:
▆
1. └─lehdr::compute_earnings_share(wac, type = "wac", geo_col = "w_county", output = "long") at test-lehdr.R:990:3
2. └─rlang::abort(...)
── Error ('test-lehdr.R:1014:3'): compute_earnings_share auto-detects geo_col and emits an inform message ──
Error in `compute_earnings_share(wac, type = "wac")`: Earnings columns not found: CE01, CE02, CE03.
i Retrieve data with `grab_lodes(..., lodes_type = "wac", segment = "S000")` to include earnings tier columns.
Backtrace:
▆
1. ├─testthat::expect_message(...) at test-lehdr.R:1014:3
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. └─lehdr::compute_earnings_share(wac, type = "wac")
8. └─rlang::abort(...)
── Error ('test-lehdr.R:1064:3'): compute_earnings_share count columns match raw column sums ──
Error in `compute_earnings_share(wac, type = "wac", geo_col = "w_county")`: Earnings columns not found: CE01, CE02, CE03.
i Retrieve data with `grab_lodes(..., lodes_type = "wac", segment = "S000")` to include earnings tier columns.
Backtrace:
▆
1. └─lehdr::compute_earnings_share(wac, type = "wac", geo_col = "w_county") at test-lehdr.R:1064:3
2. └─rlang::abort(...)
[ FAIL 42 | WARN 57 | SKIP 0 | PASS 22 ]
Error:
! Test failures.
Execution halted
Flavor: r-devel-linux-x86_64-fedora-gcc