Running ‘testthat.R’ [133s/181s]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > library(testthat)
  > library(ipumsr)
  
  Attaching package: 'ipumsr'
  
  The following object is masked from 'package:testthat':
  
      matches
  
  > 
  > test_check("ipumsr", reporter = "location")
  Start test: Can define a USA extract
    'test_api_define_extract.R:6:3' [success]
    'test_api_define_extract.R:7:3' [success]
    'test_api_define_extract.R:9:3' [success]
    'test_api_define_extract.R:13:3' [success]
    'test_api_define_extract.R:28:3' [success]
    'test_api_define_extract.R:29:3' [success]
    'test_api_define_extract.R:30:3' [success]
    'test_api_define_extract.R:31:3' [success]
    'test_api_define_extract.R:32:3' [success]
    'test_api_define_extract.R:33:3' [success]
    'test_api_define_extract.R:34:3' [success]
    'test_api_define_extract.R:35:3' [success]
  End test: Can define a USA extract
  
  Start test: Can define a CPS extract
    'test_api_define_extract.R:41:3' [success]
    'test_api_define_extract.R:42:3' [success]
    'test_api_define_extract.R:44:3' [success]
    'test_api_define_extract.R:48:3' [success]
    'test_api_define_extract.R:71:3' [success]
    'test_api_define_extract.R:72:3' [success]
    'test_api_define_extract.R:73:3' [success]
    'test_api_define_extract.R:74:3' [success]
    'test_api_define_extract.R:75:3' [success]
    'test_api_define_extract.R:76:3' [success]
    'test_api_define_extract.R:77:3' [success]
    'test_api_define_extract.R:78:3' [success]
  End test: Can define a CPS extract
  
  Start test: Can define an IPUMSI extract
    'test_api_define_extract.R:84:3' [success]
    'test_api_define_extract.R:88:3' [success]
    'test_api_define_extract.R:107:3' [success]
    'test_api_define_extract.R:108:3' [success]
    'test_api_define_extract.R:109:3' [success]
    'test_api_define_extract.R:110:3' [success]
    'test_api_define_extract.R:111:3' [success]
    'test_api_define_extract.R:112:3' [success]
    'test_api_define_extract.R:113:3' [success]
    'test_api_define_extract.R:114:3' [success]
  End test: Can define an IPUMSI extract
  
  Start test: Can define an NHGIS extract
    'test_api_define_extract.R:121:3' [success]
    'test_api_define_extract.R:122:3' [success]
    'test_api_define_extract.R:124:3' [success]
    'test_api_define_extract.R:134:3' [success]
    'test_api_define_extract.R:137:3' [success]
    'test_api_define_extract.R:141:3' [success]
    'test_api_define_extract.R:150:3' [success]
    'test_api_define_extract.R:151:3' [success]
    'test_api_define_extract.R:152:3' [success]
    'test_api_define_extract.R:154:3' [success]
    'test_api_define_extract.R:155:3' [success]
    'test_api_define_extract.R:156:3' [success]
    'test_api_define_extract.R:157:3' [success]
    'test_api_define_extract.R:159:3' [success]
    'test_api_define_extract.R:160:3' [success]
  End test: Can define an NHGIS extract
  
  Start test: NHGIS extract fields get correct default values
    'test_api_define_extract.R:167:3' [success]
    'test_api_define_extract.R:168:3' [success]
    'test_api_define_extract.R:172:3' [success]
    'test_api_define_extract.R:177:3' [success]
    'test_api_define_extract.R:178:3' [success]
  End test: NHGIS extract fields get correct default values
  
  Start test: Microdata variables get correct default values
    'test_api_define_extract.R:185:3' [success]
    'test_api_define_extract.R:186:3' [success]
    'test_api_define_extract.R:187:3' [success]
    'test_api_define_extract.R:188:3' [success]
    'test_api_define_extract.R:189:3' [success]
    'test_api_define_extract.R:191:3' [success]
  End test: Microdata variables get correct default values
  
  Start test: We cast vectors to `ipums_spec` objects
    'test_api_define_extract.R:201:3' [success]
    'test_api_define_extract.R:202:3' [success]
    'test_api_define_extract.R:203:3' [success]
    'test_api_define_extract.R:204:3' [success]
    'test_api_define_extract.R:210:3' [success]
    'test_api_define_extract.R:222:3' [success]
  End test: We cast vectors to `ipums_spec` objects
  
  Start test: Vector to `ipums_spec` casting logic is as expected
    'test_api_define_extract.R:226:3' [success]
    'test_api_define_extract.R:230:3' [success]
    'test_api_define_extract.R:234:3' [success]
    'test_api_define_extract.R:238:3' [success]
    'test_api_define_extract.R:242:3' [success]
    'test_api_define_extract.R:246:3' [success]
    'test_api_define_extract.R:250:3' [success]
    'test_api_define_extract.R:253:3' [success]
  End test: Vector to `ipums_spec` casting logic is as expected
  
  Start test: Attempt to rectangularize on H records throws an error
    'test_api_define_extract.R:261:3' [success]
    'test_api_define_extract.R:270:3' [success]
  End test: Attempt to rectangularize on H records throws an error
  
  Start test: Succesful validation returns identical object
    'test_api_define_extract.R:287:3' [success]
    'test_api_define_extract.R:288:3' [success]
    'test_api_define_extract.R:289:3' [success]
    'test_api_define_extract.R:290:3' [success]
  End test: Succesful validation returns identical object
  
  Start test: Can validate core microdata extract fields
    'test_api_define_extract.R:294:3' [success]
    'test_api_define_extract.R:298:3' [success]
    'test_api_define_extract.R:302:3' [success]
    'test_api_define_extract.R:306:3' [success]
    'test_api_define_extract.R:326:3' [success]
    'test_api_define_extract.R:343:3' [success]
  End test: Can validate core microdata extract fields
  
  Start test: Can validate core NHGIS extract fields
    'test_api_define_extract.R:362:3' [success]
    'test_api_define_extract.R:366:3' [success]
    'test_api_define_extract.R:374:3' [success]
    'test_api_define_extract.R:378:3' [success]
    'test_api_define_extract.R:392:3' [success]
    'test_api_define_extract.R:403:3' [success]
  End test: Can validate core NHGIS extract fields
  
  Start test: We require `*_spec` objects in appropriate extract fields
    'test_api_define_extract.R:413:3' [success]
    'test_api_define_extract.R:426:3' [success]
    'test_api_define_extract.R:439:3' [success]
    'test_api_define_extract.R:450:3' [success]
    'test_api_define_extract.R:457:3' [success]
  End test: We require `*_spec` objects in appropriate extract fields
  
  Start test: Can validate `*_spec` objects within extracts
    'test_api_define_extract.R:472:3' [success]
    'test_api_define_extract.R:483:3' [success]
    'test_api_define_extract.R:495:3' [success]
    'test_api_define_extract.R:510:3' [success]
    'test_api_define_extract.R:518:3' [success]
    'test_api_define_extract.R:534:3' [success]
    'test_api_define_extract.R:547:3' [success]
  End test: Can validate `*_spec` objects within extracts
  
  Start test: We avoid adding multiple `*_spec` objects of same name
    'test_api_define_extract.R:562:3' [success]
    'test_api_define_extract.R:570:3' [success]
    'test_api_define_extract.R:578:3' [success]
    'test_api_define_extract.R:584:3' [success]
  End test: We avoid adding multiple `*_spec` objects of same name
  
  Start test: Can add full fields to a microdata extract
    'test_api_define_extract.R:609:3' [success]
    'test_api_define_extract.R:613:3' [success]
    'test_api_define_extract.R:617:3' [success]
    'test_api_define_extract.R:621:3' [success]
    'test_api_define_extract.R:625:3' [success]
    'test_api_define_extract.R:626:3' [success]
    'test_api_define_extract.R:627:3' [success]
    'test_api_define_extract.R:628:3' [success]
  End test: Can add full fields to a microdata extract
  
  Start test: Can add full fields to an NHGIS extract
    'test_api_define_extract.R:654:3' [success]
    'test_api_define_extract.R:655:3' [success]
    'test_api_define_extract.R:659:3' [success]
    'test_api_define_extract.R:660:3' [success]
    'test_api_define_extract.R:662:3' [success]
    'test_api_define_extract.R:663:3' [success]
    'test_api_define_extract.R:664:3' [success]
  End test: Can add full fields to an NHGIS extract
  
  Start test: Can add subfields to existing `ipums_*` fields
    'test_api_define_extract.R:696:3' [success]
    'test_api_define_extract.R:700:3' [success]
    'test_api_define_extract.R:707:3' [success]
    'test_api_define_extract.R:714:3' [success]
    'test_api_define_extract.R:718:3' [success]
    'test_api_define_extract.R:722:3' [success]
    'test_api_define_extract.R:729:3' [success]
    'test_api_define_extract.R:734:3' [success]
    'test_api_define_extract.R:738:3' [success]
    'test_api_define_extract.R:742:3' [success]
    'test_api_define_extract.R:746:3' [success]
    'test_api_define_extract.R:750:3' [success]
  End test: Can add subfields to existing `ipums_*` fields
  
  Start test: Can remove full fields from a microdata extract
    'test_api_define_extract.R:774:3' [success]
    'test_api_define_extract.R:778:3' [success]
  End test: Can remove full fields from a microdata extract
  
  Start test: Can remove full fields from an NHGIS extract
    'test_api_define_extract.R:803:3' [success]
    'test_api_define_extract.R:804:3' [success]
    'test_api_define_extract.R:805:3' [success]
    'test_api_define_extract.R:806:3' [success]
  End test: Can remove full fields from an NHGIS extract
  
  Start test: Unused revisions do not alter unsubmitted extracts
    'test_api_define_extract.R:814:3' [success]
    'test_api_define_extract.R:815:3' [success]
    'test_api_define_extract.R:816:3' [success]
    'test_api_define_extract.R:820:3' [success]
    'test_api_define_extract.R:826:3' [success]
    'test_api_define_extract.R:827:3' [success]
    'test_api_define_extract.R:833:3' [success]
    'test_api_define_extract.R:834:3' [success]
    'test_api_define_extract.R:841:3' [success]
    'test_api_define_extract.R:842:3' [success]
    'test_api_define_extract.R:844:3' [success]
  End test: Unused revisions do not alter unsubmitted extracts
  
  Start test: Can remove subfields from existing spec fields
    'test_api_define_extract.R:859:3' [success]
    'test_api_define_extract.R:863:3' [success]
    'test_api_define_extract.R:880:3' [success]
    'test_api_define_extract.R:883:3' [success]
    'test_api_define_extract.R:887:3' [success]
    'test_api_define_extract.R:888:3' [success]
  End test: Can remove subfields from existing spec fields
  
  Start test: Can remove full fields and subfields simultaneously
    'test_api_define_extract.R:902:3' [success]
    'test_api_define_extract.R:903:3' [success]
  End test: Can remove full fields and subfields simultaneously
  
  Start test: Improper extract revisions throw warnings or errors
    'test_api_define_extract.R:910:3' [success]
    'test_api_define_extract.R:922:3' [success]
    'test_api_define_extract.R:933:3' [success]
    'test_api_define_extract.R:941:3' [success]
    'test_api_define_extract.R:948:3' [success]
    'test_api_define_extract.R:952:3' [success]
    'test_api_define_extract.R:956:3' [success]
    'test_api_define_extract.R:964:3' [success]
    'test_api_define_extract.R:974:3' [success]
    'test_api_define_extract.R:981:3' [success]
  End test: Improper extract revisions throw warnings or errors
  
  Start test: Can reproduce extract specs from JSON definition
    'test_api_define_extract.R:1004:3' [success]
    'test_api_define_extract.R:1005:3' [success]
    'test_api_define_extract.R:1006:3' [success]
    'test_api_define_extract.R:1008:3' [success]
    'test_api_define_extract.R:1012:3' [success]
    'test_api_define_extract.R:1016:3' [success]
  End test: Can reproduce extract specs from JSON definition
  
  Start test: Can export to and import from JSON
    'test_api_define_extract.R:1038:3' [success]
    'test_api_define_extract.R:1039:3' [success]
    'test_api_define_extract.R:1041:3' [success]
    'test_api_define_extract.R:1048:3' [success]
  End test: Can export to and import from JSON
  
  Start test: Throw error when defining from JSON with old API version
    'test_api_define_extract.R:1062:3' [success]
  End test: Throw error when defining from JSON with old API version
  
  Start test: Can check microdata extract status
    'test_api_extract_info.R:50:3' [success]
    'test_api_extract_info.R:51:3' [success]
    'test_api_extract_info.R:52:3' [success]
    'test_api_extract_info.R:54:3' [success]
    'test_api_extract_info.R:55:3' [success]
    'test_api_extract_info.R:67:3' [success]
  End test: Can check microdata extract status
  
  Start test: Can check NHGIS extract status
    'test_api_extract_info.R:93:3' [success]
    'test_api_extract_info.R:94:3' [success]
    'test_api_extract_info.R:95:3' [success]
    'test_api_extract_info.R:97:3' [success]
    'test_api_extract_info.R:98:3' [success]
    'test_api_extract_info.R:110:3' [success]
  End test: Can check NHGIS extract status
  
  Start test: Cannot check status for an extract with no number
    'test_api_extract_info.R:114:3' [success]
    'test_api_extract_info.R:122:3' [success]
  End test: Cannot check status for an extract with no number
  
  Start test: We avoid superfluous checks when getting extract status
    'test_api_extract_info.R:143:3' [success]
    'test_api_extract_info.R:152:3' [success]
    'test_api_extract_info.R:156:3' [success]
    'test_api_extract_info.R:165:3' [success]
    'test_api_extract_info.R:169:3' [success]
    'test_api_extract_info.R:174:3' [success]
  End test: We avoid superfluous checks when getting extract status
  
  Start test: Can parse default collection
    'test_api_extract_info.R:178:3' [success]
    'test_api_extract_info.R:178:3' [success]
    'test_api_extract_info.R:178:3' [success]
    'test_api_extract_info.R:178:3' [success]
    'test_api_extract_info.R:178:3' [success]
    'test_api_extract_info.R:198:3' [success]
    'test_api_extract_info.R:198:3' [success]
    'test_api_extract_info.R:198:3' [success]
    'test_api_extract_info.R:205:3' [success]
    'test_api_extract_info.R:212:3' [success]
  End test: Can parse default collection
  
  Start test: Can get extract info for default collection
    'test_api_extract_info.R:230:3' [success]
    'test_api_extract_info.R:230:3' [success]
    'test_api_extract_info.R:254:3' [success]
  End test: Can get extract info for default collection
  
  Start test: Can get extract history for all records
    'test_api_extract_info.R:295:3' [success]
    'test_api_extract_info.R:296:3' [success]
  End test: Can get extract history for all records
  
  Start test: Can get extract history for more records than page size
    'test_api_extract_info.R:337:3' [success]
    'test_api_extract_info.R:341:3' [success]
  End test: Can get extract history for more records than page size
  
  Start test: Tibble of recent micro extracts has expected structure
    'test_api_extract_info.R:362:3' [success]
    'test_api_extract_info.R:382:3' [success]
    'test_api_extract_info.R:384:3' [success]
    'test_api_extract_info.R:386:3' [success]
    'test_api_extract_info.R:387:3' [success]
    'test_api_extract_info.R:391:3' [success]
    'test_api_extract_info.R:395:3' [success]
    'test_api_extract_info.R:399:3' [success]
    'test_api_extract_info.R:403:3' [success]
    'test_api_extract_info.R:407:3' [success]
  End test: Tibble of recent micro extracts has expected structure
  
  Start test: Tibble of recent NHGIS extracts has expected structure
    'test_api_extract_info.R:425:3' [success]
    'test_api_extract_info.R:458:3' [success]
    'test_api_extract_info.R:459:3' [success]
    'test_api_extract_info.R:461:3' [success]
    'test_api_extract_info.R:465:3' [success]
    'test_api_extract_info.R:469:3' [success]
    'test_api_extract_info.R:473:3' [success]
    'test_api_extract_info.R:477:3' [success]
    'test_api_extract_info.R:481:3' [success]
    'test_api_extract_info.R:485:3' [success]
  End test: Tibble of recent NHGIS extracts has expected structure
  
  Start test: Can get specific number of recent extracts in tibble format
    'test_api_extract_info.R:493:3' [success]
    'test_api_extract_info.R:501:3' [success]
    'test_api_extract_info.R:510:3' [success]
    'test_api_extract_info.R:514:3' [success]
  End test: Can get specific number of recent extracts in tibble format
  
  Start test: Error on invalid number of records
    'test_api_extract_info.R:518:3' [success]
  End test: Error on invalid number of records
  
  Start test: Microdata tbl/list conversion works
    'test_api_extract_info.R:529:3' [success]
    'test_api_extract_info.R:538:3' [success]
    'test_api_extract_info.R:545:3' [success]
    'test_api_extract_info.R:549:3' [success]
    'test_api_extract_info.R:550:3' [success]
  End test: Microdata tbl/list conversion works
  
  Start test: NHGIS tbl/list conversion works
    'test_api_extract_info.R:559:3' [success]
    'test_api_extract_info.R:568:3' [success]
    'test_api_extract_info.R:572:3' [success]
    'test_api_extract_info.R:576:3' [success]
    'test_api_extract_info.R:577:3' [success]
    'test_api_extract_info.R:579:3' [success]
    'test_api_extract_info.R:597:3' [success]
  End test: NHGIS tbl/list conversion works
  
  Start test: NHGIS shapefile-only tbl/list conversion works
    'test_api_extract_info.R:616:3' [success]
    'test_api_extract_info.R:625:3' [success]
    'test_api_extract_info.R:629:3' [success]
  End test: NHGIS shapefile-only tbl/list conversion works
  
  Start test: Can print microdata extracts
    'test_api_helpers.R:4:3' [success]
    'test_api_helpers.R:14:3' [success]
    'test_api_helpers.R:24:3' [success]
  End test: Can print microdata extracts
  
  Start test: Can print NHGIS extracts
    'test_api_helpers.R:37:3' [success]
    'test_api_helpers.R:60:3' [success]
  End test: Can print NHGIS extracts
  
  Start test: NHGIS extract print coloring works
    [34mtest_api_helpers.R:73:3[39m [success]
    [34mtest_api_helpers.R:91:3[39m [success]
    'test_api_helpers.R:114:3' [success]
  End test: NHGIS extract print coloring works
  
  Start test: set_ipums_envvar sets environment variable
    'test_api_helpers.R:143:3' [success]
  End test: set_ipums_envvar sets environment variable
  
  Start test: set_ipums_envvar sets environment variable and saves to .Renviron
    'test_api_helpers.R:169:3' [success]
    'test_api_helpers.R:170:3' [success]
    'test_api_helpers.R:171:3' [success]
    'test_api_helpers.R:172:3' [success]
  End test: set_ipums_envvar sets environment variable and saves to .Renviron
  
  Start test: set_ipums_envvar works with existing .Renviron file
    'test_api_helpers.R:199:3' [success]
    'test_api_helpers.R:200:3' [success]
    'test_api_helpers.R:201:3' [success]
    'test_api_helpers.R:203:3' [success]
    'test_api_helpers.R:207:3' [success]
    'test_api_helpers.R:218:3' [success]
    'test_api_helpers.R:219:3' [success]
    'test_api_helpers.R:221:3' [success]
    'test_api_helpers.R:222:3' [success]
    'test_api_helpers.R:224:3' [success]
    'test_api_helpers.R:226:3' [success]
    'test_api_helpers.R:230:3' [success]
    'test_api_helpers.R:231:3' [success]
  End test: set_ipums_envvar works with existing .Renviron file
  
  Start test: We handle API auth errors for extract and metadata endpoints
    'test_api_helpers.R:239:3' [success]
    'test_api_helpers.R:239:3' [success]
  End test: We handle API auth errors for extract and metadata endpoints
  
  Start test: Can parse API request error details in basic requests
    'test_api_helpers.R:256:3' [success]
    'test_api_helpers.R:256:3' [success]
    'test_api_helpers.R:256:3' [success]
    'test_api_helpers.R:312:3' [success]
    'test_api_helpers.R:312:3' [success]
    'test_api_helpers.R:312:3' [success]
    'test_api_helpers.R:312:3' [success]
  End test: Can parse API request error details in basic requests
  
  Start test: Can parse API request error details in paged requests
    'test_api_helpers.R:335:3' [success]
  End test: Can parse API request error details in paged requests
  
  Start test: We inform user about invalid extract number request
    'test_api_helpers.R:355:3' [success]
  End test: We inform user about invalid extract number request
  
  Start test: We catch invalid collection specifications during requests
    'test_api_helpers.R:373:3' [success]
    'test_api_helpers.R:380:3' [success]
  End test: We catch invalid collection specifications during requests
  
  Start test: We warn users about unsupported features detected in an extract
    'test_api_helpers.R:420:3' [success]
  End test: We warn users about unsupported features detected in an extract
  
  Start test: We can get correct API version info for each collection
    'test_api_helpers.R:443:3' [success]
    'test_api_helpers.R:444:3' [success]
    'test_api_helpers.R:445:3' [success]
    'test_api_helpers.R:446:3' [success]
  End test: We can get correct API version info for each collection
  
  Start test: standardize_extract_identifier handles unusual cases
    'test_api_helpers.R:453:3' [success]
    'test_api_helpers.R:457:3' [success]
    'test_api_helpers.R:461:3' [success]
    'test_api_helpers.R:465:3' [success]
    'test_api_helpers.R:469:3' [success]
  End test: standardize_extract_identifier handles unusual cases
  
  Start test: Can toggle demo API URL
    'test_api_helpers.R:478:3' [success]
    'test_api_helpers.R:484:3' [success]
    'test_api_helpers.R:490:3' [success]
  End test: Can toggle demo API URL
  
  Start test: We can get summary metadata
    'test_api_metadata.R:11:3' [success]
    'test_api_metadata.R:12:3' [success]
    'test_api_metadata.R:13:3' [success]
    'test_api_metadata.R:15:3' [success]
    'test_api_metadata.R:16:3' [success]
    'test_api_metadata.R:17:3' [success]
  End test: We can get summary metadata
  
  Start test: We can iterate through pages to get all records
    'test_api_metadata.R:50:3' [success]
    'test_api_metadata.R:51:3' [success]
    'test_api_metadata.R:55:3' [success]
  End test: We can iterate through pages to get all records
  
  Start test: We can get metadata for single dataset
    'test_api_metadata.R:67:3' [success]
    'test_api_metadata.R:68:3' [success]
    'test_api_metadata.R:69:3' [success]
    'test_api_metadata.R:77:3' [success]
    'test_api_metadata.R:78:3' [success]
  End test: We can get metadata for single dataset
  
  Start test: We can get metadata for single time series table
    'test_api_metadata.R:98:3' [success]
    'test_api_metadata.R:99:3' [success]
    'test_api_metadata.R:100:3' [success]
    'test_api_metadata.R:107:3' [success]
    'test_api_metadata.R:108:3' [success]
  End test: We can get metadata for single time series table
  
  Start test: We can get metadata for single data table
    'test_api_metadata.R:127:3' [success]
    'test_api_metadata.R:128:3' [success]
    'test_api_metadata.R:135:3' [success]
    'test_api_metadata.R:136:3' [success]
  End test: We can get metadata for single data table
  
  Start test: We throw errors on bad metadata specs prior to making request
    'test_api_metadata.R:141:3' [success]
    'test_api_metadata.R:145:3' [success]
    'test_api_metadata.R:149:3' [success]
    'test_api_metadata.R:155:3' [success]
    'test_api_metadata.R:159:3' [success]
  End test: We throw errors on bad metadata specs prior to making request
  
  Start test: Can submit a USA extract
    'test_api_process_extract.R:54:3' [success]
    'test_api_process_extract.R:55:3' [success]
    'test_api_process_extract.R:56:3' [success]
    'test_api_process_extract.R:57:3' [success]
    'test_api_process_extract.R:58:3' [success]
    'test_api_process_extract.R:59:3' [success]
    'test_api_process_extract.R:61:3' [success]
    'test_api_process_extract.R:63:3' [success]
    'test_api_process_extract.R:67:3' [success]
    'test_api_process_extract.R:75:3' [success]
    'test_api_process_extract.R:79:3' [success]
    'test_api_process_extract.R:79:3' [success]
    'test_api_process_extract.R:79:3' [success]
    'test_api_process_extract.R:79:3' [success]
    'test_api_process_extract.R:79:3' [success]
    'test_api_process_extract.R:79:3' [success]
    'test_api_process_extract.R:79:3' [success]
    'test_api_process_extract.R:79:3' [success]
  End test: Can submit a USA extract
  
  Start test: Can submit a CPS extract
    'test_api_process_extract.R:114:3' [success]
    'test_api_process_extract.R:115:3' [success]
    'test_api_process_extract.R:116:3' [success]
    'test_api_process_extract.R:117:3' [success]
    'test_api_process_extract.R:118:3' [success]
    'test_api_process_extract.R:119:3' [success]
    'test_api_process_extract.R:121:3' [success]
    'test_api_process_extract.R:123:3' [success]
    'test_api_process_extract.R:127:3' [success]
    'test_api_process_extract.R:135:3' [success]
    'test_api_process_extract.R:139:3' [success]
    'test_api_process_extract.R:139:3' [success]
    'test_api_process_extract.R:139:3' [success]
    'test_api_process_extract.R:139:3' [success]
    'test_api_process_extract.R:139:3' [success]
    'test_api_process_extract.R:139:3' [success]
    'test_api_process_extract.R:139:3' [success]
    'test_api_process_extract.R:139:3' [success]
    'test_api_process_extract.R:139:3' [success]
    'test_api_process_extract.R:139:3' [success]
    'test_api_process_extract.R:139:3' [success]
    'test_api_process_extract.R:139:3' [success]
  End test: Can submit a CPS extract
  
  Start test: Can submit an NHGIS extract of multiple types
    'test_api_process_extract.R:174:3' [success]
    'test_api_process_extract.R:175:3' [success]
    'test_api_process_extract.R:176:3' [success]
    'test_api_process_extract.R:177:3' [success]
    'test_api_process_extract.R:178:3' [success]
    'test_api_process_extract.R:179:3' [success]
    'test_api_process_extract.R:180:3' [success]
    'test_api_process_extract.R:181:3' [success]
    'test_api_process_extract.R:182:3' [success]
  End test: Can submit an NHGIS extract of multiple types
  
  Start test: Can submit an NHGIS extract of a single type
    'test_api_process_extract.R:194:3' [success]
    'test_api_process_extract.R:198:3' [success]
    'test_api_process_extract.R:199:3' [success]
    'test_api_process_extract.R:200:3' [success]
    'test_api_process_extract.R:201:3' [success]
    'test_api_process_extract.R:205:3' [success]
    'test_api_process_extract.R:206:3' [success]
    'test_api_process_extract.R:207:3' [success]
  End test: Can submit an NHGIS extract of a single type
  
  Start test: Can resubmit an extract
    'test_api_process_extract.R:229:3' [success]
    'test_api_process_extract.R:233:3' [success]
  End test: Can resubmit an extract
  
  Start test: Revisions update status of submitted extract
    'test_api_process_extract.R:250:3' [success]
    'test_api_process_extract.R:251:3' [success]
    'test_api_process_extract.R:252:3' [success]
    'test_api_process_extract.R:253:3' [success]
    'test_api_process_extract.R:254:3' [success]
    'test_api_process_extract.R:257:3' [success]
    'test_api_process_extract.R:258:3' [success]
  End test: Revisions update status of submitted extract
  
  Start test: Can download microdata extract with extract object
    'test_api_process_extract.R:282:3' [success]
    'test_api_process_extract.R:287:3' [success]
    'test_api_process_extract.R:292:3' [success]
    'test_api_process_extract.R:308:3' [success]
    'test_api_process_extract.R:309:3' [success]
    'test_api_process_extract.R:312:3' [success]
  End test: Can download microdata extract with extract object
  
  Start test: Can download NHGIS extract with extract object
    'test_api_process_extract.R:333:3' [success]
    'test_api_process_extract.R:337:3' [success]
    'test_api_process_extract.R:342:3' [success]
    'test_api_process_extract.R:353:3' [success]
    'test_api_process_extract.R:362:3' [success]
    'test_api_process_extract.R:363:3' [success]
    'test_api_process_extract.R:375:3' [success]
    'test_api_process_extract.R:376:3' [success]
    'test_api_process_extract.R:378:3' [success]
    'test_api_process_extract.R:379:3' [success]
  End test: Can download NHGIS extract with extract object
  
  Start test: Can download extract with extract id
    'test_api_process_extract.R:400:3' [success]
    'test_api_process_extract.R:411:3' [success]
    'test_api_process_extract.R:422:3' [success]
    'test_api_process_extract.R:429:3' [success]
    'test_api_process_extract.R:430:3' [success]
    'test_api_process_extract.R:433:3' [success]
  End test: Can download extract with extract id
  
  Start test: Can download shapefile-only extract
    'test_api_process_extract.R:456:3' [success]
    'test_api_process_extract.R:467:3' [success]
    'test_api_process_extract.R:468:3' [success]
    'test_api_process_extract.R:475:3' [success]
    'test_api_process_extract.R:476:3' [success]
  End test: Can download shapefile-only extract
  
  Start test: Download extract errors on incomplete extract
    'test_api_process_extract.R:480:3' [success]
  End test: Download extract errors on incomplete extract
  
  Start test: Can read downloaded files with ipumsr readers
    'test_api_process_extract.R:527:3' [success]
  End test: Can read downloaded files with ipumsr readers
  
  Start test: We validate extract before submission
    'test_api_process_extract.R:533:3' [success]
    'test_api_process_extract.R:540:3' [success]
    'test_api_process_extract.R:544:3' [success]
  End test: We validate extract before submission
  
  Start test: Can add to a submitted extract
    'test_api_process_extract.R:567:3' [success]
    'test_api_process_extract.R:568:3' [success]
    'test_api_process_extract.R:572:3' [success]
  End test: Can add to a submitted extract
  
  Start test: We can export to and import from JSON, submitted extract
    'test_api_process_extract.R:593:3' [success]
  End test: We can export to and import from JSON, submitted extract
  
  Start test: fostr_detect works as expected
    'test_fostr.R:2:3' [success]
  End test: fostr_detect works as expected
  
  Start test: fostr_named_capture works as expected
    'test_fostr.R:9:3' [success]
    'test_fostr.R:17:3' [success]
    'test_fostr.R:26:3' [success]
  End test: fostr_named_capture works as expected
  
  Start test: fostr_named_capture_single works as expected
    'test_fostr.R:36:3' [success]
  End test: fostr_named_capture_single works as expected
  
  Start test: fostr_replace works as expected
    'test_fostr.R:46:3' [success]
    'test_fostr.R:47:3' [success]
  End test: fostr_replace works as expected
  
  Start test: fostr_replace_all works as expected
    'test_fostr.R:51:3' [success]
    'test_fostr.R:52:3' [success]
  End test: fostr_replace_all works as expected
  
  Start test: fostr_split works as expected
    'test_fostr.R:56:3' [success]
  End test: fostr_split works as expected
  
  Start test: fostr_sub works as expected
    'test_fostr.R:63:3' [success]
    'test_fostr.R:64:3' [success]
    'test_fostr.R:65:3' [success]
  End test: fostr_sub works as expected
  
  Start test: fostr_subset works as expected
    'test_fostr.R:69:3' [success]
  End test: fostr_subset works as expected
  
  Start test: fostr_wrap works as expected
    'test_fostr.R:76:3' [success]
  End test: fostr_wrap works as expected
  
  Start test: simple bind rows example
    'test_ipums_bind_rows.R:16:3' [success]
    'test_ipums_bind_rows.R:17:3' [success]
    'test_ipums_bind_rows.R:18:3' [success]
  End test: simple bind rows example
  
  Start test: mismatched attributes in bind rows
    'test_ipums_bind_rows.R:35:3' [success]
    'test_ipums_bind_rows.R:37:3' [success]
    'test_ipums_bind_rows.R:38:3' [success]
  End test: mismatched attributes in bind rows
  
  Start test: ipums_bind_rows can handle list of data.frames
    'test_ipums_bind_rows.R:57:3' [success]
    'test_ipums_bind_rows.R:58:3' [success]
  End test: ipums_bind_rows can handle list of data.frames
  
  Start test: ipums_bind_rows throws error for nested list of data.frames
    'test_ipums_bind_rows.R:75:3' [success]
  End test: ipums_bind_rows throws error for nested list of data.frames
  
  Start test: Var info/var desc/var label/value labels works on DDI
    'test_ipums_info.R:16:3' [success]
    'test_ipums_info.R:17:3' [success]
    'test_ipums_info.R:19:3' [success]
    'test_ipums_info.R:21:3' [success]
    'test_ipums_info.R:23:3' [success]
  End test: Var info/var desc/var label/value labels works on DDI
  
  Start test: Var info/var desc/var label/value labels works on data
    'test_ipums_info.R:29:3' [success]
    'test_ipums_info.R:30:3' [success]
    'test_ipums_info.R:32:3' [success]
    'test_ipums_info.R:34:3' [success]
    'test_ipums_info.R:36:3' [success]
  End test: Var info/var desc/var label/value labels works on data
  
  Start test: File info works on ddi
    'test_ipums_info.R:42:3' [success]
    'test_ipums_info.R:43:3' [success]
  End test: File info works on ddi
  
  Start test: lbl_na_if: Simple example with both .lbl and .val keywords
    'test_lbls.R:32:3' [success]
  End test: lbl_na_if: Simple example with both .lbl and .val keywords
  
  Start test: lbl_na_if: Respects environment
    'test_lbls.R:40:3' [success]
  End test: lbl_na_if: Respects environment
  
  Start test: lbl_na_if: Explicit function
    'test_lbls.R:47:3' [success]
  End test: lbl_na_if: Explicit function
  
  Start test: lbl_na_if: Function name
    'test_lbls.R:55:3' [success]
  End test: lbl_na_if: Function name
  
  Start test: lbl_collapse: basic
    'test_lbls.R:68:3' [success]
  End test: lbl_collapse: basic
  
  Start test: lbl_collapse maintains old label values (even if not first)
    'test_lbls.R:81:3' [success]
  End test: lbl_collapse maintains old label values (even if not first)
  
  Start test: lbl_relabel: basic
    'test_lbls.R:94:3' [success]
  End test: lbl_relabel: basic
  
  Start test: lbl_relabel: multiple dots
    'test_lbls.R:107:3' [success]
  End test: lbl_relabel: multiple dots
  
  Start test: lbl_relabel: to existing by just value
    'test_lbls.R:124:3' [success]
  End test: lbl_relabel: to existing by just value
  
  Start test: lbl_relabel: to existing by single unnamed argument to label
    'test_lbls.R:137:3' [success]
  End test: lbl_relabel: to existing by single unnamed argument to label
  
  Start test: lbl_relabel: to existing by single named argument to value
    'test_lbls.R:150:3' [success]
  End test: lbl_relabel: to existing by single named argument to value
  
  Start test: lbl_relabel: error when to nonexisting by single unnamed argument
    'test_lbls.R:157:3' [success]
  End test: lbl_relabel: error when to nonexisting by single unnamed argument
  
  Start test: lbl_relabel: error when to existing value with new label
    'test_lbls.R:163:3' [success]
  End test: lbl_relabel: error when to existing value with new label
  
  Start test: lbl_relabel: can flip labels
    'test_lbls.R:169:3' [success]
  End test: lbl_relabel: can flip labels
  
  Start test: lbl_relabel: error when x has no labels
    'test_lbls.R:180:3' [success]
  End test: lbl_relabel: error when x has no labels
  
  Start test: lbl_define: basic
    'test_lbls.R:195:3' [success]
  End test: lbl_define: basic
  
  Start test: lbl_define: error when x is already labelled
    'test_lbls.R:210:3' [success]
  End test: lbl_define: error when x is already labelled
  
  Start test: lbl_add: can add a single label
    'test_lbls.R:228:3' [success]
  End test: lbl_add: can add a single label
  
  Start test: lbl_add: can add more than one label
    'test_lbls.R:244:3' [success]
  End test: lbl_add: can add more than one label
  
  Start test: lbl_add: error if trying to add new label for old value
    'test_lbls.R:251:3' [success]
  End test: lbl_add: error if trying to add new label for old value
  
  Start test: lbl_add_vals: basic
    'test_lbls.R:262:3' [success]
  End test: lbl_add_vals: basic
  
  Start test: lbl_clean: basic
    'test_lbls.R:273:3' [success]
  End test: lbl_clean: basic
  
  Start test: error if cannot coerce to lbl_function
    'test_lbls.R:284:3' [success]
  End test: error if cannot coerce to lbl_function
  
  Start test: Listing files from nhgis csv zip works
    'test_list_files.R:10:3' [success]
    'test_list_files.R:11:3' [success]
    'test_list_files.R:13:3' [success]
    'test_list_files.R:16:3' [success]
    'test_list_files.R:18:3' [success]
    'test_list_files.R:21:3' [success]
    'test_list_files.R:23:3' [success]
    'test_list_files.R:26:3' [success]
  End test: Listing files from nhgis csv zip works
  
  Start test: Listing files from nhgis shape zip works
    'test_list_files.R:35:3' [success]
    'test_list_files.R:36:3' [success]
    'test_list_files.R:41:3' [success]
    'test_list_files.R:41:3' [success]
    'test_list_files.R:41:3' [success]
  End test: Listing files from nhgis shape zip works
  
  Start test: Reading variables in lowercase is okay - DDI
    'test_lower_names.R:8:3' [success]
    'test_lower_names.R:17:3' [success]
    'test_lower_names.R:25:3' [success]
  End test: Reading variables in lowercase is okay - DDI
  
  Start test: Reading variables in lowercase is okay - rect micro data
    'test_lower_names.R:41:3' [success]
    'test_lower_names.R:47:3' [success]
  End test: Reading variables in lowercase is okay - rect micro data
  
  Start test: Reading variables in lowercase is okay - hier micro data
    'test_lower_names.R:64:3' [success]
    'test_lower_names.R:70:3' [success]
  End test: Reading variables in lowercase is okay - hier micro data
  
  Start test: lower_vars = TRUE warning on rectangular .dat.gz
    'test_lower_names.R:76:3' [success]
    'test_lower_names.R:80:3' [success]
  End test: lower_vars = TRUE warning on rectangular .dat.gz
  
  Start test: lower_vars = TRUE warning on hierarchical .dat.gz
    'test_lower_names.R:87:3' [success]
    'test_lower_names.R:91:3' [success]
  End test: lower_vars = TRUE warning on hierarchical .dat.gz
  
  Start test: lower_vars arg works on .csv.gz file
    'test_lower_names.R:103:3' [success]
    'test_lower_names.R:112:3' [success]
  End test: lower_vars arg works on .csv.gz file
  
  Start test: lower_vars arg works on chunked rectangular .dat.gz
    'test_lower_names.R:118:3' [success]
    'test_lower_names.R:127:3' [success]
    'test_lower_names.R:136:3' [success]
    'test_lower_names.R:145:3' [success]
  End test: lower_vars arg works on chunked rectangular .dat.gz
  
  Start test: lower_vars arg works on chunked hierarchical .dat.gz
    'test_lower_names.R:152:3' [success]
    'test_lower_names.R:169:3' [success]
    'test_lower_names.R:190:3' [success]
    'test_lower_names.R:210:3' [success]
  End test: lower_vars arg works on chunked hierarchical .dat.gz
  
  Start test: lower_vars arg works on chunked .csv.gz file
    'test_lower_names.R:225:3' [success]
    'test_lower_names.R:235:3' [success]
  End test: lower_vars arg works on chunked .csv.gz file
  
  Start test: lower_vars arg works with _yield on rectangular .dat.gz
    'test_lower_names.R:241:3' [success]
    'test_lower_names.R:255:3' [success]
    'test_lower_names.R:269:3' [success]
    'test_lower_names.R:283:3' [success]
  End test: lower_vars arg works with _yield on rectangular .dat.gz
  
  Start test: lower_vars arg works with _yield on hierarchical .dat.gz
    'test_lower_names.R:290:3' [success]
    'test_lower_names.R:311:3' [success]
    'test_lower_names.R:332:3' [success]
    'test_lower_names.R:352:3' [success]
  End test: lower_vars arg works with _yield on hierarchical .dat.gz
  
  Start test: Can read Rectangular .dat.gz
    'test_micro.R:28:3' [success]
    'test_micro.R:29:3' [success]
    'test_micro.R:30:3' [success]
    'test_micro.R:31:3' [success]
    'test_micro.R:32:3' [success]
    'test_micro.R:33:3' [success]
    'test_micro.R:34:3' [success]
  End test: Can read Rectangular .dat.gz
  
  Start test: Can read Rectangular .dat
    'test_micro.R:50:3' [success]
    'test_micro.R:51:3' [success]
    'test_micro.R:52:3' [success]
    'test_micro.R:53:3' [success]
    'test_micro.R:54:3' [success]
    'test_micro.R:55:3' [success]
    'test_micro.R:56:3' [success]
  End test: Can read Rectangular .dat
  
  Start test: Can read Rectangular .csv.gz
    'test_micro.R:66:3' [success]
    'test_micro.R:67:3' [success]
    'test_micro.R:68:3' [success]
    'test_micro.R:69:3' [success]
    'test_micro.R:70:3' [success]
    'test_micro.R:71:3' [success]
    'test_micro.R:72:3' [success]
  End test: Can read Rectangular .csv.gz
  
  Start test: Can read Hierarchical into long format
    'test_micro.R:81:3' [success]
    'test_micro.R:82:3' [success]
    'test_micro.R:83:3' [success]
    'test_micro.R:84:3' [success]
    'test_micro.R:85:3' [success]
    'test_micro.R:86:3' [success]
    'test_micro.R:87:3' [success]
  End test: Can read Hierarchical into long format
  
  Start test: Can read Hierarchical into list format
    'test_micro.R:96:3' [success]
    'test_micro.R:97:3' [success]
    'test_micro.R:98:3' [success]
    'test_micro.R:99:3' [success]
    'test_micro.R:100:3' [success]
    'test_micro.R:101:3' [success]
    'test_micro.R:102:3' [success]
    'test_micro.R:103:3' [success]
    'test_micro.R:104:3' [success]
    'test_micro.R:108:3' [success]
    'test_micro.R:109:3' [success]
  End test: Can read Hierarchical into list format
  
  Start test: Can't read Rectangular into list format
    'test_micro.R:119:3' [success]
  End test: Can't read Rectangular into list format
  
  Start test: Arguments n_max and vars work
    'test_micro.R:136:3' [success]
    'test_micro.R:137:3' [success]
  End test: Arguments n_max and vars work
  
  Start test: Arguments n_max and vars work for csv files (#26)
    'test_micro.R:148:3' [success]
    'test_micro.R:149:3' [success]
  End test: Arguments n_max and vars work for csv files (#26)
  
  Start test: Setting argument var_attrs to NULL works
    'test_micro.R:161:3' [success]
  End test: Setting argument var_attrs to NULL works
  
  Start test: Informative error when no ddi file
    'test_micro.R:165:3' [success]
    'test_micro.R:169:3' [success]
  End test: Informative error when no ddi file
  
  Start test: keyvar is loaded regardless of selection in hierarchical
    'test_micro.R:181:3' [success]
    'test_micro.R:182:3' [success]
  End test: keyvar is loaded regardless of selection in hierarchical
  
  Start test: Don't duplicate rectype vars in ATUS hierarchical extracts (#43)
    'test_micro.R:198:3' [success]
    'test_micro.R:209:3' [success]
  End test: Don't duplicate rectype vars in ATUS hierarchical extracts (#43)
  
  Start test: Empty vars selection is handled
    'test_micro.R:220:3' [success]
  End test: Empty vars selection is handled
  
  Start test: basic chunk reading - long .dat.gz
    'test_micro_chunked.R:20:3' [success]
  End test: basic chunk reading - long .dat.gz
  
  Start test: basic chunk reading - long .csv.gz
    'test_micro_chunked.R:24:3' [skip]
  End test: basic chunk reading - long .csv.gz
  
  Start test: basic chunk reading - list
    'test_micro_chunked.R:63:3' [success]
  End test: basic chunk reading - list
  
  Start test: biglm is equivalent to lm
    'test_micro_chunked.R:90:3' [success]
    'test_micro_chunked.R:91:3' [success]
  End test: biglm is equivalent to lm
  
  Start test: basic yield reading - long .dat.gz rect matches chunked
    'test_micro_yield.R:21:3' [success]
  End test: basic yield reading - long .dat.gz rect matches chunked
  
  Start test: basic yield reading - long .dat.gz hier matches chunked
    'test_micro_yield.R:44:3' [success]
  End test: basic yield reading - long .dat.gz hier matches chunked
  
  Start test: basic yield reading - list .dat.gz hier matches chunked
    'test_micro_yield.R:67:3' [success]
  End test: basic yield reading - list .dat.gz hier matches chunked
  
  Start test: basic yield reading - list .dat.gz rect matches chunked
    'test_micro_yield.R:90:3' [success]
  End test: basic yield reading - list .dat.gz rect matches chunked
  
  Start test: read_ipums_micro_yield can't read from .csv file
    'test_micro_yield.R:94:3' [success]
  End test: read_ipums_micro_yield can't read from .csv file
  
  Start test: Can read NHGIS extract: single dataset
    'test_nhgis.R:15:3' [success]
    'test_nhgis.R:20:3' [success]
    'test_nhgis.R:25:3' [success]
    'test_nhgis.R:26:3' [success]
    'test_nhgis.R:27:3' [success]
    'test_nhgis.R:31:3' [success]
    'test_nhgis.R:35:3' [success]
    'test_nhgis.R:39:3' [success]
  End test: Can read NHGIS extract: single dataset
  
  Start test: Can read NHGIS extract: fixed-width files
    'test_nhgis.R:43:3' [success]
    'test_nhgis.R:53:3' [success]
    'test_nhgis.R:54:3' [success]
    'test_nhgis.R:55:3' [success]
    'test_nhgis.R:56:3' [success]
    'test_nhgis.R:60:3' [success]
    'test_nhgis.R:67:3' [success]
    'test_nhgis.R:74:3' [success]
    'test_nhgis.R:75:3' [success]
    'test_nhgis.R:77:3' [success]
    'test_nhgis.R:85:3' [success]
    'test_nhgis.R:90:3' [success]
    'test_nhgis.R:98:3' [success]
    'test_nhgis.R:107:3' [success]
    'test_nhgis.R:117:3' [success]
    'test_nhgis.R:125:3' [success]
    'test_nhgis.R:126:3' [success]
  End test: Can read NHGIS extract: fixed-width files
  
  Start test: Can read NHGIS extract: single time series table
    'test_nhgis.R:142:3' [success]
    'test_nhgis.R:147:3' [success]
    'test_nhgis.R:152:3' [success]
    'test_nhgis.R:153:3' [success]
    'test_nhgis.R:154:3' [success]
    'test_nhgis.R:155:3' [success]
    'test_nhgis.R:157:3' [success]
  End test: Can read NHGIS extract: single time series table
  
  Start test: Can select data files by index
    'test_nhgis.R:172:3' [success]
    'test_nhgis.R:173:3' [success]
    'test_nhgis.R:175:3' [success]
    'test_nhgis.R:177:3' [success]
    'test_nhgis.R:178:3' [success]
    'test_nhgis.R:180:3' [success]
    'test_nhgis.R:185:3' [success]
  End test: Can select data files by index
  
  Start test: Can select data files with tidyselect
    'test_nhgis.R:204:3' [success]
    'test_nhgis.R:205:3' [success]
    'test_nhgis.R:207:3' [success]
    'test_nhgis.R:209:3' [success]
    'test_nhgis.R:210:3' [success]
    'test_nhgis.R:212:3' [success]
    'test_nhgis.R:217:3' [success]
  End test: Can select data files with tidyselect
  
  Start test: Can still find codebook if file_select matches data file only
    'test_nhgis.R:236:3' [success]
    'test_nhgis.R:238:3' [success]
  End test: Can still find codebook if file_select matches data file only
  
  Start test: Can still find codebook if direct data file path provided
    'test_nhgis.R:252:3' [success]
    'test_nhgis.R:257:3' [success]
    'test_nhgis.R:262:3' [success]
  End test: Can still find codebook if direct data file path provided
  
  Start test: We can specify available readr options in read_nhgis()
    'test_nhgis.R:271:3' [success]
    'test_nhgis.R:280:3' [success]
    'test_nhgis.R:298:3' [success]
    'test_nhgis.R:299:3' [success]
    'test_nhgis.R:300:3' [success]
    'test_nhgis.R:302:3' [success]
    'test_nhgis.R:303:3' [success]
    'test_nhgis.R:304:3' [success]
    'test_nhgis.R:309:3' [success]
    'test_nhgis.R:311:3' [success]
  End test: We can specify available readr options in read_nhgis()
  
  Start test: We get informative error messages when reading NHGIS extracts
    'test_nhgis.R:318:3' [success]
    'test_nhgis.R:323:3' [success]
    'test_nhgis.R:328:3' [success]
    'test_nhgis.R:332:3' [success]
    'test_nhgis.R:340:3' [success]
    'test_nhgis.R:349:3' [success]
    'test_nhgis.R:353:3' [success]
  End test: We get informative error messages when reading NHGIS extracts
  
  Start test: Can read NHGIS codebook
    'test_nhgis.R:364:3' [success]
    'test_nhgis.R:397:3' [success]
    'test_nhgis.R:398:3' [success]
    'test_nhgis.R:399:3' [success]
    'test_nhgis.R:402:3' [success]
    'test_nhgis.R:408:3' [success]
    'test_nhgis.R:412:3' [success]
  End test: Can read NHGIS codebook
  
  Start test: Can read certain unzipped structures
    'test_nhgis.R:426:3' [success]
    'test_nhgis.R:430:3' [success]
    'test_nhgis.R:437:3' [success]
    'test_nhgis.R:443:3' [success]
    'test_nhgis.R:447:3' [success]
    'test_nhgis.R:448:3' [success]
    'test_nhgis.R:451:3' [success]
    'test_nhgis.R:457:3' [failure]
    'test_nhgis.R:463:3' [success]
  End test: Can read certain unzipped structures
  
  Start test: Numeric parsing works on examples
    'test_parse_manual_code.R:9:3' [success]
  End test: Numeric parsing works on examples
  
  Start test: Character parsing works on examples
    'test_parse_manual_code.R:23:3' [success]
  End test: Character parsing works on examples
  
  Start test: can read DDI with labeled string variable
    'test_read_ddi.R:10:3' [success]
  End test: can read DDI with labeled string variable
  
  Start test: We ignore layer selection for direct .xml files
    'test_read_ddi.R:21:3' [success]
  End test: We ignore layer selection for direct .xml files
  
  Start test: Can read ddi from zip archives
    'test_read_ddi.R:27:3' [success]
    'test_read_ddi.R:32:3' [success]
    'test_read_ddi.R:37:3' [success]
    'test_read_ddi.R:41:3' [success]
    'test_read_ddi.R:46:3' [success]
    'test_read_ddi.R:50:3' [success]
  End test: Can read ddi from zip archives
  
  Start test: select_var_rows respects tidyselect syntax
    'test_select_style.R:13:3' [success]
    'test_select_style.R:19:3' [success]
    'test_select_style.R:26:3' [success]
    'test_select_style.R:35:3' [success]
    'test_select_style.R:41:3' [success]
  End test: select_var_rows respects tidyselect syntax
  
  Start test: find_files_in respects tidyselect syntax
    'test_select_style.R:52:3' [success]
    'test_select_style.R:58:3' [success]
    'test_select_style.R:63:3' [success]
    'test_select_style.R:69:3' [success]
    'test_select_style.R:79:3' [success]
    'test_select_style.R:90:3' [success]
    'test_select_style.R:101:3' [success]
  End test: find_files_in respects tidyselect syntax
  
  Start test: can set attributes altogether
    'test_set_var_attributes.R:7:3' [success]
    'test_set_var_attributes.R:8:3' [success]
    'test_set_var_attributes.R:15:3' [success]
    'test_set_var_attributes.R:16:3' [success]
  End test: can set attributes altogether
  
  Start test: setting variable attributes one at a time (#34)
    'test_set_var_attributes.R:32:3' [success]
    'test_set_var_attributes.R:37:3' [success]
    'test_set_var_attributes.R:42:3' [success]
    'test_set_var_attributes.R:47:3' [success]
    'test_set_var_attributes.R:52:3' [success]
    'test_set_var_attributes.R:58:3' [success]
    'test_set_var_attributes.R:63:3' [success]
    'test_set_var_attributes.R:68:3' [success]
    'test_set_var_attributes.R:73:3' [success]
    'test_set_var_attributes.R:79:3' [success]
    'test_set_var_attributes.R:84:3' [success]
    'test_set_var_attributes.R:89:3' [success]
    'test_set_var_attributes.R:94:3' [success]
  End test: setting variable attributes one at a time (#34)
  
  Start test: Basic join works (sf)
    'test_shape_join.R:9:3' [success]
    'test_shape_join.R:10:3' [success]
    'test_shape_join.R:11:3' [success]
  End test: Basic join works (sf)
  
  Start test: Basic join works (sp)
    'test_shape_join.R:18:3' [success]
    'test_shape_join.R:27:3' [success]
    'test_shape_join.R:28:3' [success]
  End test: Basic join works (sp)
  
  Start test: suffix argument works (sf)
    'test_shape_join.R:44:3' [success]
    'test_shape_join.R:45:3' [success]
  End test: suffix argument works (sf)
  
  Start test: complicated by works (sf)
    'test_shape_join.R:71:3' [success]
  End test: complicated by works (sf)
  
  Start test: error for missing a by variable (sf)
    'test_shape_join.R:79:3' [success]
  End test: error for missing a by variable (sf)
  
  Start test: Join failures are mentioned
    'test_shape_join.R:96:3' [success]
    'test_shape_join.R:97:3' [success]
    'test_shape_join.R:98:3' [success]
    'test_shape_join.R:99:3' [success]
    'test_shape_join.R:103:3' [success]
    'test_shape_join.R:104:3' [success]
    'test_shape_join.R:105:3' [success]
  End test: Join failures are mentioned
  
  Start test: Character -> Integer conversion works (#16)
    'test_shape_join.R:122:3' [success]
    'test_shape_join.R:123:3' [success]
    'test_shape_join.R:124:3' [success]
  End test: Character -> Integer conversion works (#16)
  
  Start test: Can read single shapefile: sf
    'test_shape_read.R:13:3' [success]
    'test_shape_read.R:17:3' [success]
    'test_shape_read.R:18:3' [success]
    'test_shape_read.R:19:3' [success]
    'test_shape_read.R:20:3' [success]
  End test: Can read single shapefile: sf
  
  Start test: Can read NHGIS extract: single shapefile (sp)
    'test_shape_read.R:27:3' [success]
    'test_shape_read.R:31:3' [success]
    'test_shape_read.R:40:3' [success]
    'test_shape_read.R:41:3' [success]
    'test_shape_read.R:42:3' [success]
    'test_shape_read.R:43:3' [success]
  End test: Can read NHGIS extract: single shapefile (sp)
  
  Start test: Can row bind multiple sf files
    'test_shape_read.R:52:3' [success]
    'test_shape_read.R:60:3' [success]
    'test_shape_read.R:65:3' [success]
    'test_shape_read.R:66:3' [success]
  End test: Can row bind multiple sf files
  
  Start test: Can row bind multiple sp files
    'test_shape_read.R:85:3' [success]
    'test_shape_read.R:90:3' [success]
    'test_shape_read.R:91:3' [success]
  End test: Can row bind multiple sp files
  
  Start test: Can read extract at multiple file levels
    'test_shape_read.R:110:3' [success]
    'test_shape_read.R:116:3' [success]
    'test_shape_read.R:119:3' [success]
    'test_shape_read.R:136:3' [success]
    'test_shape_read.R:137:3' [success]
  End test: Can read extract at multiple file levels
  
  Start test: sf and sp geometries are consistent with each other
    'test_shape_read.R:154:3' [success]
    'test_shape_read.R:158:3' [success]
  End test: sf and sp geometries are consistent with each other
  
  Start test: We get informative errors when reading shapefiles
    'test_shape_read.R:203:3' [success]
    'test_shape_read.R:208:3' [success]
    'test_shape_read.R:216:3' [success]
    'test_shape_read.R:228:3' [success]
  End test: We get informative errors when reading shapefiles
  
  Start test: Careful rbind handles various data types (sf)
    'test_shape_read.R:257:3' [success]
    'test_shape_read.R:262:3' [success]
    'test_shape_read.R:272:3' [success]
    'test_shape_read.R:281:3' [success]
    'test_shape_read.R:292:3' [success]
    'test_shape_read.R:293:3' [success]
  End test: Careful rbind handles various data types (sf)
  
  Start test: Careful rbind handles various data types (sp)
    'test_shape_read.R:329:3' [success]
    'test_shape_read.R:334:3' [success]
  End test: Careful rbind handles various data types (sp)
  
  Start test: Can read and combine with read_nhgis_sf() (deprecated)
    'test_shape_read.R:356:3' [success]
    'test_shape_read.R:362:3' [success]
    'test_shape_read.R:373:3' [success]
    'test_shape_read.R:383:3' [success]
    'test_shape_read.R:384:3' [success]
    'test_shape_read.R:385:3' [success]
  End test: Can read and combine with read_nhgis_sf() (deprecated)
  
  Start test: Can read and combine with read_nhgis_sp() (deprecated)
    'test_shape_read.R:404:3' [success]
    'test_shape_read.R:415:3' [success]
    'test_shape_read.R:426:3' [success]
    'test_shape_read.R:436:3' [success]
    'test_shape_read.R:437:3' [success]
    'test_shape_read.R:438:3' [success]
  End test: Can read and combine with read_nhgis_sp() (deprecated)
  
  Start test: normal ddi doesn't error
    'test_viewer.R:7:3' [success]
  End test: normal ddi doesn't error
  
  Start test: empty ddi doesn't error
    'test_viewer.R:16:3' [success]
  End test: empty ddi doesn't error
  
  Start test: normal microdata doesn't error
    'test_viewer.R:25:3' [success]
  End test: normal microdata doesn't error
  
  Start test: attribute-less microdata doesn't error
    'test_viewer.R:37:3' [success]
  End test: attribute-less microdata doesn't error
  
  Start test: nhgis codebook doesn't error
    'test_viewer.R:46:3' [success]
  End test: nhgis codebook doesn't error
  
  Error: Test failures
  Execution halted