test_that("process_prune_recipe() removes correct queries", {
# Full syntax, a single rule without except
expect_equal(
object = process_prune_recipe(
df = tibble::tibble(
query_normalized = c("aaa", "bbb", "ccc", "ddd")
),
recipe = list(
type = "remove",
rules = list(
list(
match = c("aaa", "ccc")
)
)
)
),
expected = tibble::tibble(
query_normalized = c("bbb", "ddd")
)
)
# Full syntax, multiple rules without except
expect_equal(
object = process_prune_recipe(
df = tibble::tibble(
query_normalized = c("aaa", "bbb", "ccc", "ddd")
),
recipe = list(
type = "remove",
rules = list(
list(
match = c("aaa", "ccc")
),
list(
match = c("aaa", "ddd")
)
)
)
),
expected = tibble::tibble(
query_normalized = c("bbb")
)
)
# Full syntax, a single rule with except
expect_equal(
object = process_prune_recipe(
df = tibble::tibble(
query_normalized = c("aaa iii", "bbb iii", "bbb jjj")
),
recipe = list(
type = "remove",
rules = list(
list(
match = "bbb",
except = "iii"
)
)
)
),
expected = tibble::tibble(
query_normalized = c("aaa iii", "bbb iii")
)
)
# Full syntax, multiple rules with except
expect_equal(
object = process_prune_recipe(
df = tibble::tibble(
query_normalized = c("aaa iii", "aaa jjj", "bbb iii", "bbb jjj")
),
recipe = list(
type = "remove",
rules = list(
list(
match = "aaa",
except = "iii"
),
list(
match = "bbb",
except = "jjj"
)
)
)
),
expected = tibble::tibble(
query_normalized = c("aaa iii", "bbb jjj")
)
)
})
test_that("kwr_prune() prunes clean data", {
kwr <- kwresearch(
queries = tibble::tibble(
query = c("aaa", "bbb", "ccc", "ccc xxx", "ddd"),
volume = c(10, 20, 30, 40, 50)
)
) |> kwr_prune("../test-data/recipes-prune-1.yml", quiet = TRUE)
expect_equal(kwr$status, "pruned")
expect_s3_class(kwr$pruned_data, "tbl_df")
expect_equal(
kwr$pruned_data,
tibble::tibble(
query_normalized = c("ddd", "ccc xxx", "bbb"),
n_queries = 1,
volume = c(50, 40, 20),
cpc = NA_real_,
query_original = c("ddd", "ccc xxx", "bbb"),
input = NA_character_,
source = NA_character_
)
)
})
test_that("kwr_queries() returns pruned data if available", {
kwr <- kwresearch(
queries = tibble::tibble(
query = c("aaa", "bbb", "ccc", "ccc xxx", "ddd"),
volume = c(10, 20, 30, 40, 50)
)
) |> kwr_prune("../test-data/recipes-prune-1.yml", quiet = TRUE)
expect_equal(kwr_queries(kwr), kwr$pruned_data)
})
test_that("kwr_long_queries() returns a correct data", {
expect_equal(
object = kwr_long_queries(
kwresearch(
queries = tibble::tibble(
query = c(
"aaa",
"bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb"
),
volume = c(10, 1)
)
)
),
expected = tibble::tibble(
query_normalized = "bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb",
volume = 1
)
)
})
test_that("kwr_prune_long_queries() removes a long query", {
expect_equal(
object = kwr_prune_long_queries(
kwr = kwresearch(
queries = tibble::tibble(
query = c(
"aaa",
"bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb bbbb"
),
volume = c(10, 1)
)
),
longer_than = 60
) |> kwr_queries(),
expected = tibble::tibble(
query_normalized = "aaa",
n_queries = 1,
volume = 10,
cpc = NA_real_,
query_original = "aaa",
input = NA_character_,
source = NA_character_
)
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.