test_that("`str_extract_currencies()` works", {
string <- "35.00 $1.14 abc5 $3.8 77"
expect_equal(
str_extract_currencies(string),
data.frame(
string_num = 1, string = string,
curr_sym = c("", "$", "c", "$", " "),
amount = c(35, 1.14, 5, 3.8, 77),
stringsAsFactors = FALSE
)
)
string <- c(
"35.00 $1.14", "abc5 $3.8 77", "-$1.5e6",
"over £1,000"
)
reps <- c(2, 3, 1, 1)
expect_equal(
str_extract_currencies(string),
data.frame(
string_num = rep(seq_along(string), reps),
string = rep(string, reps),
curr_sym = c("", "$", "c", "$", " ", "$", "£"),
amount = c(35, 1.14, 5, 3.8, 77, -1.5e6, 1000),
stringsAsFactors = FALSE
)
)
expect_equal(
as.data.frame(str_extract_currencies(character())),
data.frame(
string_num = integer(), string = character(),
curr_sym = character(), amount = numeric(),
stringsAsFactors = FALSE
)
)
})
test_that("`str_nth_currency()` works", {
string <- c("ab3 13", "$1")
expect_equal(
str_nth_currency(string, n = 2),
data.frame(
string_num = seq_along(string), string = string,
curr_sym = c(" ", NA), amount = c(13, NA),
stringsAsFactors = FALSE
)
)
string <- c("35.00 $1.14", "abc5 $3.8", "stuff")
expect_equal(str_nth_currency(string, c(
1,
2, 1
)), data.frame(
string_num = seq_along(string), string = string,
curr_sym = c("", "$", NA), amount = c(35, 3.8, NA),
stringsAsFactors = FALSE
))
string <- c("ab3 13", "$1", "35.00 $1.14", "abc5 $3.8", "stuff")
expect_equal(
str_nth_currency(string, n = 2),
data.frame(
string_num = 1:5,
string = c("ab3 13", "$1", "35.00 $1.14", "abc5 $3.8", "stuff"),
curr_sym = c(" ", NA, "$", "$", NA),
amount = c(13, NA, 1.14, 3.8, NA),
stringsAsFactors = FALSE
)
)
expect_equal(
str_nth_currency(string, c(1, 2, 1, 2, 1)),
data.frame(
string_num = 1:5,
string = c("ab3 13", "$1", "35.00 $1.14", "abc5 $3.8", "stuff"),
curr_sym = c("b", NA, "", "$", NA),
amount = c(3, NA, 35, 3.8, NA),
stringsAsFactors = FALSE
)
)
expect_equal(
str_first_currency(string),
data.frame(
string_num = 1:5,
string = c(
"ab3 13", "$1", "35.00 $1.14",
"abc5 $3.8", "stuff"
),
curr_sym = c("b", "$", "", "c", NA),
amount = c(
3,
1, 35, 5, NA
), stringsAsFactors = FALSE
)
)
expect_equal(
str_last_currency(string),
data.frame(
string_num = 1:5, string = c(
"ab3 13", "$1", "35.00 $1.14",
"abc5 $3.8", "stuff"
), curr_sym = c(" ", "$", "$", "$", NA),
amount = c(13, 1, 1.14, 3.8, NA),
stringsAsFactors = FALSE
)
)
expect_snapshot_error(str_nth_currency(as.character(1:3), 1:7))
expect_equal(as.data.frame(str_nth_currency(string, n = -2)),
data.frame(
string_num = seq_along(string), string,
curr_sym = c("b", NA, "", "c", NA),
amount = c(3, NA, 35, 5, NA),
stringsAsFactors = FALSE
),
ignore_attr = TRUE
)
expect_equal(
as.data.frame(str_nth_currency(string, c(1, -2, 1, 2, -1))),
data.frame(
string_num = seq_along(string), string,
curr_sym = c("b", NA, "", "$", NA),
amount = c(3, NA, 35, 3.8, NA),
stringsAsFactors = FALSE
)
)
expect_equal(
as.data.frame(str_nth_currency(character(), 1)),
data.frame(
string_num = integer(), string = character(),
curr_sym = character(), amount = numeric(),
stringsAsFactors = FALSE
)
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.