tests/testthat/test.combn_limited.r

context("combn_limited")

library(magrittr)
#library(testthat)

rm(list = ls())

#### parameters invalid on its face ####

# bad df
expect_error(
  combn_limited(NULL, 1, 2),
  'x %>% is.vector(mode = "character")',
  fixed = T)

# bad df (v2)
expect_error(
  combn_limited(c(1, 2, 3), 1, 2),
  'x %>% is.vector(mode = "character")',
  fixed = T)

# bad m
expect_error(
  combn_limited(c("a", "b", "c"), NULL, 2),
  "m %>% is.numeric()",
  fixed = T)

# m too small
expect_error(
  combn_limited(c("a", "b", "c"), 0, 2),
  "m > 0",
  fixed = T)

# bad limit
expect_error(
  combn_limited(c("a", "b", "c"), 1, NULL),
  "limit %>% is.numeric()",
  fixed = T)

# limit too cmall
expect_error(
  combn_limited(c("a", "b", "c"), 1, 0),
  "limit > 0",
  fixed = T)

# too many requirments
expect_error(
  combn_limited(c("a", "b", "c"), 4, 10),
  "n >= m",
  fixed = T)

#### normal operation ####

# single choice
actual <- combn_limited(c("a"), 1, 10)
expected <- matrix(
  nrow = 1,
  c("a"))
expect_equal(actual, expected)

# single choice (v2)
actual <- combn_limited(c("a", "b"), 1, 10)
expected <- matrix(
  nrow = 1,
  c("a", "b"))
expect_equal(actual, expected)

# single choice (v3)
actual <- combn_limited(c("a", "b", "c", "d"), 1, 10)
expected <- matrix(
  nrow = 1,
  c("a", "b", "c", "d"))
expect_equal(actual, expected)

# single choice (v4)
actual <- combn_limited(c("a"), 1, 1)
expected <- matrix(
  nrow = 1,
  c("a"))
expect_equal(actual, expected)

# single choice (v5)
actual <- combn_limited(c("a", "b"), 1, 1)
expected <- matrix(
  nrow = 1,
  c("a"))
expect_equal(actual, expected)

# choose everything
actual <- combn_limited(c("a", "b"), 2, 10)
expected <- matrix(
  nrow = 2,
  c("a", "b"))
expect_equal(actual, expected)

# choose everything (v2)
actual <- combn_limited(c("a", "b", "c", "d"), 4, 10)
expected <- matrix(
  nrow = 4,
  c("a", "b", "c", "d"))
expect_equal(actual, expected)

# normal choose
actual <- combn_limited(c("a", "b", "c"), 2, 10)
expected <- matrix(
  nrow = 2,
  c("a", "b", "a", "c", "b", "c"))
expect_equal(actual, expected)

# normal choose (v2)
actual <- combn_limited(c("a", "b", "c", "d"), 2, 10)
expected <- matrix(
  nrow = 2,
  c("a", "b", "a", "c", "a", "d", "b", "c", "b", "d", "c", "d"))
expect_equal(actual, expected)

# limited choice
actual <- combn_limited(c("a", "b", "c", "d"), 2, 4)
expected <- matrix(
  nrow = 2,
  c("a", "b", "a", "c", "a", "d", "b", "c"))
expect_equal(actual, expected)
markanewman/mndredge documentation built on May 9, 2019, 5:52 a.m.