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

Parameters

Initialize folders in the working directory

tmp <- util_make_subdir()
files_01 <- file.path(
  tmp,
  paste0(
    "filename_",
    "0000",
    1:9,
    ".csv"
  )
)
files_02 <- file.path(
  tmp,
  paste0(
    "0000",
    1:9,
    "_filename",
    ".csv"
  )
)
sapply(
  X = files_01,
  FUN = file.create
)
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/filename_00001.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/filename_00002.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/filename_00003.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/filename_00004.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/filename_00005.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/filename_00006.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/filename_00007.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/filename_00008.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/filename_00009.csv 
#>                                                                                       TRUE
sapply(
  X = files_02,
  FUN = file.create
)
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/00001_filename.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/00002_filename.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/00003_filename.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/00004_filename.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/00005_filename.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/00006_filename.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/00007_filename.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/00008_filename.csv 
#>                                                                                       TRUE 
#> /media/jeksterslab/scripts/r/jeksterslabRutils/vignettes/tests/FnVeAmOF/00009_filename.csv 
#>                                                                                       TRUE
list.files(tmp)
#>  [1] "00001_filename.csv" "00002_filename.csv" "00003_filename.csv"
#>  [4] "00004_filename.csv" "00005_filename.csv" "00006_filename.csv"
#>  [7] "00007_filename.csv" "00008_filename.csv" "00009_filename.csv"
#> [10] "filename_00001.csv" "filename_00002.csv" "filename_00003.csv"
#> [13] "filename_00004.csv" "filename_00005.csv" "filename_00006.csv"
#> [16] "filename_00007.csv" "filename_00008.csv" "filename_00009.csv"

Results

This will search for {5 digits}_filename.csv

results_files_01 <- util_check_file_seq(
  dir = tmp,
  start = 1L,
  end = 9L,
  digits = 5L,
  fn = "filename",
  ext = "csv",
  sep = "_",
  prefix = TRUE
)

This will search for filename_{5 digits}.csv

results_files_02 <- util_check_file_seq(
  dir = tmp,
  start = 1L,
  end = 9L,
  digits = 5L,
  fn = "filename",
  ext = "csv",
  sep = "_",
  prefix = FALSE
)

This will search for {5 digits}_error.csv. Results 9 items.

results_length_09_01 <- util_check_file_seq(
  dir = tmp,
  start = 1L,
  end = 9L,
  digits = 5L,
  fn = "error",
  ext = "csv",
  sep = "_",
  prefix = TRUE
)

This will search for error_{5 digits}.csv. Results 9 items.

results_length_09_02 <- util_check_file_seq(
  dir = tmp,
  start = 1L,
  end = 9L,
  digits = 5L,
  fn = "error",
  ext = "csv",
  sep = "_",
  prefix = FALSE
)

testthat

test_that("length 0", {
  expect_equal(
    length(
      results_files_01
    ),
    length(
      results_files_02
    ),
    0
  )
})
#> Test passed 🌈
test_that("length 9", {
  expect_equal(
    length(
      results_length_09_01
    ),
    length(
      results_length_09_02
    ),
    9
  )
})
#> Test passed 🎉

Clean up files and folders

util_clean_dir(
  dir = tmp,
  create_dir = FALSE
)