test_that("`str_locate_nth()` works", {
expect_equal(
str_locate_first(c("abcdabcxyz", "abcabc"), "abc"),
matrix(c(1, 3), nrow = 2, ncol = 2, byrow = TRUE) %>%
magrittr::set_colnames(c("start", "end"))
)
expect_equal(
str_locate_last(c("abcdabcxyz", "abcabc"), "abc"),
matrix(c(5, 7, 4, 6), nrow = 2, ncol = 2, byrow = TRUE) %>%
magrittr::set_colnames(c("start", "end"))
)
expect_equal(
str_locate_nth("abc1def2abc", "abc", 3),
matrix(NA_integer_, ncol = 2, nrow = 1) %>%
magrittr::set_colnames(c("start", "end"))
)
expect_equal(
str_locate_nth(
c(
"This old thing.",
"That beautiful thing there."
),
"\\w+", c(2, -2)
),
matrix(c(
6, 8,
16, 20
), ncol = 2, byrow = 2) %>%
magrittr::set_colnames(c("start", "end"))
)
expect_snapshot_error(str_locate_first(c("a", "b"), c("c", "d", "e")))
expect_snapshot_error(str_locate_nth(c("a", "b"), c("a", "b"), 1:5))
expect_equal(
str_locate_nth("abc", "b", c(0, 1, 1, 2)),
matrix(c(rep(NA, 2), rep(2, 4), rep(NA, 2)),
ncol = 2, byrow = TRUE
) %>%
magrittr::set_colnames(c("start", "end"))
)
expect_equal(
str_locate_nth(character(0), "b", 4),
matrix(character(0), ncol = 2) %>%
magrittr::set_colnames(c("start", "end"))
)
})
test_that("str_locate_braces() works", {
string <- c("a{](kkj)})", "ab(]c{}")
out <- str_locate_braces(string)
expect_equal(
as.data.frame(out),
data.frame(
string_num = as.integer(rep(1:2, c(6, 4))),
string = rep(string, c(6, 4)),
position = as.integer(c(
2, 3, 4, 8, 9, 10,
3, 4, 6, 7
)),
brace = c(
"{", "]", "(", ")", "}", ")", "(",
"]", "{", "}"
),
stringsAsFactors = FALSE
)
)
expect_equal(
as.data.frame(str_locate_braces(character())),
as.data.frame(out[0, ])
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.