Nothing
targets::tar_test("tar_map2_count()", {
skip_if_not_installed("dplyr")
targets::tar_script({
f1 <- function(arg1) {
tibble::tibble(
arg1 = arg1,
arg2 = seq_len(6)
)
}
f2 <- function(arg1, arg2) {
tibble::tibble(
result = paste(arg1, arg2),
length_arg1 = length(arg1),
length_arg2 = length(arg2),
random = sample.int(1e6, size = 1L)
)
}
tar_map2_count(
x,
command1 = f1(arg1),
command2 = f2(arg1, arg2),
values = tibble::tibble(arg1 = letters[seq_len(2)]),
names = arg1,
suffix1 = "i",
suffix2 = "ii",
batches = 3,
rep_workers = 2
)
})
# manifest
out <- targets::tar_manifest(callr_function = NULL)
out <- out[order(out$name), ]
expect_equal(
sort(out$name),
sort(
paste0("x", c("_i_a", "_i_b", "_ii_a", "_ii_b", ""))
)
)
expect_equal(
grepl("_i_", out$name),
grepl("tar_map2_group", out$command)
)
expect_equal(
grepl("_ii_", out$name),
grepl("tar_map2_run", out$command)
)
expect_equal(
grepl("^x$|^x_i_", out$name),
is.na(out$pattern)
)
expect_equal(
grepl("^x_ii", out$name),
!is.na(out$pattern)
)
expect_equal(
out$name == "x",
grepl("bind_rows", out$command)
)
# network
out <- targets::tar_network(callr_function = NULL)$edges
out <- dplyr::arrange(out, from, to)
exp <- tibble::tribble(
~from, ~to,
"f1", "x_i_a",
"f1", "x_i_b",
"f2", "x_ii_a",
"f2", "x_ii_b",
"x_i_a", "x_ii_a",
"x_i_b", "x_ii_b",
"x_ii_a", "x",
"x_ii_b", "x"
)
exp <- dplyr::arrange(exp, from, to)
expect_equal(out, exp)
# downstream output
targets::tar_make(callr_function = NULL)
targets::tar_load(
tidyselect::any_of(
c("x", "x_i_a", "x_i_b", "x_ii_a", "x_ii_b")
)
)
expect_equal(dim(x), c(12L, 10L))
out <- dplyr::arrange(x, arg1, arg2)
expect_equal(out$tar_group, rep(c(1L, 2L), each = 6L))
out$tar_group <- NULL
exp <- dplyr::arrange(dplyr::bind_rows(x_ii_a, x_ii_b), arg1, arg2)
exp$tar_group <- NULL
expect_equal(out, exp)
expect_equal(
x$result,
c(
"a 1", "a 2", "a 3", "a 4", "a 5", "a 6",
"b 1", "b 2", "b 3", "b 4", "b 5", "b 6"
)
)
expect_equal(x$length_arg1, rep(1L, 12L))
expect_equal(x$length_arg2, rep(1L, 12L))
expect_equal(x$result, paste(x$arg1, x$arg2))
expect_equal(length(unique(x$random)), nrow(x))
# upstream output
expect_equal(dim(x_i_a), c(6L, 3L))
expect_equal(dim(x_i_b), c(6L, 3L))
expect_equal(x_i_a$arg1, rep("a", 6L))
expect_equal(x_i_b$arg1, rep("b", 6L))
expect_equal(x_i_a$arg2, seq_len(6L))
expect_equal(x_i_b$arg2, seq_len(6L))
expect_equal(x_i_a$tar_group, c(1L, 1L, 2L, 2L, 3L, 3L))
expect_equal(x_i_b$tar_group, c(1L, 1L, 2L, 2L, 3L, 3L))
# metadata
expect_equal(length(unlist(tar_meta(x_ii_a)$children)), 3L)
expect_equal(length(unlist(tar_meta(x_ii_b)$children)), 3L)
})
targets::tar_test("tar_map2_count() works with one-row output", {
skip_if_not_installed("dplyr")
targets::tar_script({
f1 <- function(arg1) {
tibble::tibble(
arg1 = arg1,
arg2 = 1
)
}
f2 <- function(arg1, arg2) {
tibble::tibble(
result = paste(arg1, arg2),
length_arg1 = length(arg1),
length_arg2 = length(arg2),
random = sample.int(1e6, size = 1L)
)
}
tar_map2_count(
x,
command1 = f1(arg1),
command2 = f2(arg1, arg2),
values = tibble::tibble(arg1 = letters[seq_len(2)]),
names = arg1,
suffix1 = "i",
suffix2 = "ii",
batches = 3,
rep_workers = 1
)
})
tar_make(callr_function = NULL)
expect_equal(nrow(tar_read(x)), 2L)
})
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.