tests/testthat/test-extract.R

test_that(
  "extract() extracts values of branched variables from multiverse data.", {
    mydf <- data.frame(
      x = c(-1, 0, 1),
      y = c(2, 3, 4)
    )
    mv <- mverse(mydf)
    mv %>%
      add_mutate_branch(
        mutate_branch(x + y, x - y, x * y, name = "m")
      ) %>%
      add_filter_branch(
        filter_branch(x > 0, x < 0, name = "f")
      ) %>%
      execute_multiverse()
    mexp <- c(
      (mydf$x + mydf$y)[c(mydf$x > 0)],
      (mydf$x + mydf$y)[c(mydf$x < 0)],
      (mydf$x - mydf$y)[c(mydf$x > 0)],
      (mydf$x - mydf$y)[c(mydf$x < 0)],
      (mydf$x * mydf$y)[c(mydf$x > 0)],
      (mydf$x * mydf$y)[c(mydf$x < 0)]
    )
    expect_equal(ncol(extract(mv)), 3)
    expect_equal(nrow(extract(mv)), 6)
    expect_identical(extract(mv)[["m"]], mexp)
  }
)

test_that("Universe is a categorical variable in the extracted table.", {
  mydf <- data.frame(
    x = c(-1, 0, 1),
    y = c(2, 3, 4)
  )
  mv <- mverse(mydf)
  mv %>%
    add_mutate_branch(
      mutate_branch(x + y, x - y, x * y, name = "m")
    ) %>%
    add_filter_branch(
      filter_branch(x > 0, x < 0, name = "f")
    ) %>%
    execute_multiverse()
  etable <- extract(mv)
  expect_true(is.factor(etable$universe))
})

Try the mverse package in your browser

Any scripts or data that you put into this service are public.

mverse documentation built on June 21, 2025, 5:09 p.m.