## ----knitr-setup, include=FALSE----------------------------------------------- init_wd <- getwd() knitr::opts_chunk$set(echo = TRUE, comment = "#>") knitr::opts_knit$set(root.dir = tempdir(check = TRUE)) pacman::p_load(testthat, exampletestr, stringr) ## ----setup, results='hide'---------------------------------------------------- usethis::create_package("tempkg", open = FALSE) fs::file_copy( system.file("extdata", c("detect.R", "match.R"), package = "exampletestr"), "tempkg/R/" ) ## ----fake-dir-change, eval=FALSE---------------------------------------------- # setwd("tempkg/") ## ----further-knitr-setup, include=FALSE--------------------------------------- knitr::opts_knit$set(root.dir = paste0(tempdir(), "/", "tempkg")) ## ----proj-set----------------------------------------------------------------- usethis::proj_set(".") ## ----Look at match.R file, eval=FALSE----------------------------------------- # #' Detect the presence or absence of a pattern in a string. # #' # #' Vectorised over `string` and `pattern`. # #' # #' @param string Input vector. Either a character vector, or something # #' coercible to one. # #' @param pattern Pattern to look for. # #' # #' @return A logical vector. # #' # #' @export # #' @examples # #' fruit <- c("apple", "banana", "pear", "pinapple") # #' str_detect(fruit, "a") # #' str_detect(fruit, "^a") # #' str_detect(fruit, "a$") # #' str_detect(fruit, "b") # #' str_detect(fruit, "[aeiou]") # str_detect <- function(string, pattern) { # switch(type(pattern), # empty = , # bound = str_count(string, pattern) > 0, # fixed = stri_detect_fixed(string, pattern, opts_fixed = opts(pattern)), # coll = stri_detect_coll(string, pattern, opts_collator = opts(pattern)), # regex = stri_detect_regex(string, pattern, opts_regex = opts(pattern)) # ) # } ## ----make_tests_shells_pkg, eval=FALSE---------------------------------------- # make_tests_shells_pkg() ## ----test-utils.R contents, eval=FALSE---------------------------------------- # test_that("`str_detect()` works", { # fruit <- c("apple", "banana", "pear", "pinapple") # expect_equal(str_detect(fruit, "a"), ) # expect_equal(str_detect(fruit, "^a"), ) # expect_equal(str_detect(fruit, "a$"), ) # expect_equal(str_detect(fruit, "b"), ) # expect_equal(str_detect(fruit, "[aeiou]"), ) # expect_equal(str_detect("aecfg", letters), ) # }) ## ----fill in test shell, eval=FALSE------------------------------------------- # test_that("`str_detect()` works", { # fruit <- c("apple", "banana", "pear", "pinapple") # expect_equal(str_detect(fruit, "a"), rep(TRUE, 4)) # expect_equal(str_detect(fruit, "^a"), c(TRUE, rep(FALSE, 3))) # expect_equal(str_detect(fruit, "a$"), c(FALSE, TRUE, FALSE, FALSE)) # expect_equal(str_detect(fruit, "b"), c(FALSE, TRUE, FALSE, FALSE)) # expect_equal(str_detect(fruit, "[aeiou]"), rep(TRUE, 4)) # expect_equal( # str_detect("aecfg", letters), # letters %in% c("a", "c", "e", "f", "g") # ) # }) ## ----setdown0----------------------------------------------------------------- knitr::opts_knit$set(root.dir = tempdir(check = TRUE)) ## ----setdown------------------------------------------------------------------ if (fs::dir_exists("tempkg")) fs::dir_delete("tempkg") knitr::opts_knit$set(root.dir = init_wd)