tests/testthat/test-sample_cpp.R

test_that("mixvlmc_sample2 gives identical results as sample in unbalanced cases", {
  for (k in 1:9) {
    withr::local_seed(k)
    base <- 0:k
    probs <- 0.1 + runif(k + 1, max = 0.9)
    freq <- as.integer(1000 * probs / sum(probs))
    withr::local_seed(0)
    sp_cpp <- mixvlmc_sample2(freq, 10000)
    withr::local_seed(0)
    sp_r <- sample(base, 10000, replace = TRUE, prob = freq)
    expect_equal(sp_cpp, sp_r)
  }
})

test_that("mixvlmc_sample2 gives different results as sample in balanced cases", {
  for (k in 1:9) {
    base <- 0:k
    freq <- rep(1, k + 1)
    withr::local_seed(0)
    sp_cpp <- mixvlmc_sample2(freq, 10000)
    withr::local_seed(0)
    sp_r <- sample(base, 10000, replace = TRUE, prob = freq)
    expect_false(identical(sp_cpp, sp_r))
  }
})

Try the mixvlmc package in your browser

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

mixvlmc documentation built on June 8, 2025, 12:35 p.m.