Nothing
drake_context("queue")
test_with_dir("empty queue", {
skip_on_cran() # CRAN gets essential tests only (check time limits).
config <- drake_config(drake_plan(x = 1))
config$envir_graph <- ht_new()
config$envir_graph$graph <- igraph::make_empty_graph()
q <- priority_queue(config)
expect_equal(sort(colnames(q$data)), sort(c("target", "ndeps", "priority")))
expect_equal(nrow(q$data), 0)
})
test_with_dir("the priority queue works", {
skip_on_cran() # CRAN gets essential tests only (check time limits).
targets <- c("foo", "bar", "baz", "Bob", "Amy", "Joe", "soup", "spren")
ndeps <- c(8, 2, 3, 7, 4, 1, 7, 5)
priorities <- c(rep(2, 4), rep(1, 4))
ndeps[4] <- ndeps[7]
expect_false(identical(ndeps, sort(ndeps, decreasing = TRUE)))
x <- refclass_priority_queue$new(
data = data.frame(
target = targets,
ndeps = ndeps,
priority = priorities,
stringsAsFactors = FALSE
)
)
x$sort()
expect_equal(sort(colnames(x$data)), sort(c("target", "ndeps", "priority")))
y <- data.frame(
target = c("Joe", "bar", "baz", "Amy", "spren", "soup", "Bob", "foo"),
ndeps = c(1, 2, 3, 4, 5, 7, 7, 8),
priority = c(1, 2, 2, 1, 1, 1, 2, 2),
stringsAsFactors = FALSE
)
expect_equivalent(x$data, y)
expect_null(x$peek0())
expect_null(x$pop0())
expect_equivalent(x$data, y)
for (i in 1:2) {
x$adjust_key(c("bar", "spren"), -1L)
}
for (i in 1:3) {
x$adjust_key("spren", -1L)
}
y <- data.frame(
target = c("spren", "bar", "Joe", "baz", "Amy", "soup", "Bob", "foo"),
ndeps = c(0, 0, 1, 3, 4, 7, 7, 8),
priority = c(1, 2, 1, 2, 1, 1, 2, 2),
stringsAsFactors = FALSE
)
expect_equivalent(x$data, y)
expect_equal(x$peek0(), "spren")
expect_equal(sort(x$list0()), sort(c("bar", "spren")))
expect_equivalent(x$data, y)
expect_equal(x$pop0(), "spren")
expect_equal(x$peek0(), "bar")
expect_equivalent(x$data, y[-1, ])
expect_equal(x$pop0(), "bar")
expect_equivalent(x$data, y[-1:-2, ])
expect_null(x$peek0())
expect_null(x$pop0())
expect_equivalent(x$data, y[-1:-2, ])
priorities[targets == "bar"] <- 1
priorities[targets == "spren"] <- 2
x <- refclass_priority_queue$new(
data = data.frame(
target = targets,
ndeps = ndeps,
priority = priorities,
stringsAsFactors = FALSE
)
)
for (i in 1:2) {
x$adjust_key(c("bar", "spren"), -1L)
}
for (i in 1:3) {
x$adjust_key("spren", -1L)
}
y <- data.frame(
target = c("bar", "spren", "Joe", "baz", "Amy", "soup", "Bob", "foo"),
ndeps = c(0, 0, 1, 3, 4, 7, 7, 8),
priority = c(1, 2, 1, 2, 1, 1, 2, 2),
stringsAsFactors = FALSE
)
expect_equivalent(x$data, y)
expect_equal(x$peek0(), "bar")
expect_equivalent(x$data, y)
expect_equal(x$pop0(), "bar")
expect_equal(x$peek0(), "spren")
expect_equivalent(x$data, y[-1, ])
expect_equal(x$pop0(), "spren")
expect_equivalent(x$data, y[-1:-2, ])
expect_null(x$peek0())
expect_null(x$pop0())
expect_equivalent(x$data, y[-1:-2, ])
expect_null(x$list0())
z <- y[-1:-2, ]
expect_true(all(c("soup", "Bob") %in% x$data$target))
expect_equal(nrow(x$data), 6)
x$remove(c("soup", "Bob"))
expect_false(all(c("soup", "Bob") %in% x$data$target))
expect_equal(nrow(x$data), 4)
expect_equivalent(x$data, z[-4:-5, ])
x$remove(c("soup", "Bob"))
expect_equivalent(x$data, z[-4:-5, ])
data <- x$data
x$push(c("a", "b"), 2)
exp <- data.frame(
target = c("Joe", "a", "b", "baz", "Amy", "foo"),
ndeps = c(1, 2, 2, 3, 4, 8),
priority = c(1, Inf, Inf, 2, 1, 2),
stringsAsFactors = FALSE
)
expect_equivalent(x$data, exp)
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.