Nothing
context("testing comboGeneral and permuteGeneral results")
test_that("comboGeneral produces correct results with constraintFun only", {
set.seed(13)
## N.B. No longer need keepResult = TRUE if user only declares constraintFun
######********************** All Results *******************#########
#### NO Repetition
## comboCount(15, 8)
## [1] 6435
expect_equal(rowSums(comboGeneral(15, 8)),
comboGeneral(15, 8, constraintFun = "sum")[, 9])
#### With Repetition
## comboCount(10, 5, T)
## [1] 2002
numVec <- rnorm(10)
expect_equal(apply(comboGeneral(numVec, 5, TRUE), 1, prod),
comboGeneral(numVec, 5, TRUE, constraintFun = "prod")[, 6])
#### Multisets
## comboCount(10, 7, freqs = rep(1:5, 2))
## [1] 5932
numVec <- runif(10)
expect_equal(rowMeans(comboGeneral(numVec, 7, freqs = rep(1:5, 2))),
comboGeneral(numVec, 7, freqs = rep(1:5, 2), constraintFun = "mean")[,8])
######********************** Upper Only *******************#########
#### NO Repetition
expect_equal(apply(comboGeneral(50, 10, upper = 3000), 1, max),
comboGeneral(50, 10, upper = 3000, constraintFun = "max")[,11])
#### With Repetition
numVec <- rnorm(25)
expect_equal(apply(comboGeneral(numVec, 8, TRUE, upper = 3000), 1, min),
comboGeneral(numVec, 8, TRUE, upper = 3000, constraintFun = "min")[,9])
#### Multisets
numVec <- rnorm(50)
expect_equal(rowSums(comboGeneral(numVec, 7, freqs = rep(1:5, 10), upper = 3000)),
comboGeneral(numVec, 7, freqs = rep(1:5, 10), upper = 3000, constraintFun = "sum")[,8])
######********************** Lower Only *******************#########
#### NO Repetition
total = comboCount(50, 10)
expect_equal(apply(comboGeneral(50, 10, lower = total - 3000), 1, prod),
comboGeneral(50, 10, lower = total - 3000, constraintFun = "prod")[,11])
#### With Repetition
numVec <- rnorm(25)
total = comboCount(25, 8, TRUE)
expect_equal(rowMeans(comboGeneral(numVec, 8, TRUE, lower = total - 3000)),
comboGeneral(numVec, 8, TRUE, lower = total - 3000, constraintFun = "mean")[,9])
#### Multisets
total = comboCount(50, 7, freqs = rep(1:5, 10))
expect_equal(apply(comboGeneral(50, 7, freqs = rep(1:5, 10),
lower = total - 3000), 1, max),
comboGeneral(50, 7, freqs = rep(1:5, 10), lower = total - 3000,
constraintFun = "max")[,8])
######********************** Upper & Lower *******************#########
#### NO Repetition
expect_equal(rowMeans(comboGeneral(50, 10, lower = 100000, upper = 103000)),
comboGeneral(50, 10, lower = 100000, upper = 103000, constraintFun = "mean")[,11])
#### With Repetition
numVec <- rnorm(25)
expect_equal(apply(comboGeneral(numVec, 8, TRUE,
lower = 100000, upper = 103000), 1, prod),
comboGeneral(numVec, 8, TRUE,
lower = 100000, upper = 103000, constraintFun = "prod")[,9])
#### Multisets
expect_equal(rowMeans(comboGeneral(50, 7, freqs = rep(1:5, 10),
lower = 100000, upper = 103000)),
comboGeneral(50, 7, freqs = rep(1:5, 10), lower = 100000,
upper = 103000, constraintFun = "mean")[,8])
set.seed(12345)
myNums = rnorm(15)
expect_equal(comboGeneral(myNums, 8, constraintFun = "sum", keepResults = TRUE)[, 9],
rowSums(comboGeneral(myNums, 8)))
expect_equal(comboGeneral(myNums, 5, TRUE, constraintFun = "sum", keepResults = TRUE)[, 6],
rowSums(comboGeneral(myNums, 5, TRUE)))
expect_equal(comboGeneral(myNums, 5, freqs = rep(2, 15),
constraintFun = "sum", keepResults = TRUE)[, 6],
rowSums(comboGeneral(myNums, 5, freqs = rep(2, 15))))
## test product
expect_equal(comboGeneral(myNums, 8, constraintFun = "prod", keepResults = TRUE)[, 9],
apply(comboGeneral(myNums, 8), 1, prod))
## test mean
expect_equal(comboGeneral(myNums, 5, freqs = rep(2, 15),
constraintFun = "mean", keepResults = TRUE)[, 6],
rowMeans(comboGeneral(myNums, 5, freqs = rep(2, 15))))
## test max
expect_equal(comboGeneral(myNums, 8, constraintFun = "max", keepResults = TRUE)[, 9],
apply(comboGeneral(myNums, 8), 1, max))
## test min
expect_equal(comboGeneral(myNums, 5, TRUE, constraintFun = "min", keepResults = TRUE)[, 6],
apply(comboGeneral(myNums, 5, TRUE), 1, min))
})
test_that("comboGeneral produces correct results with GMP and constrainFun enabled", {
set.seed(17)
######********************** lower Only *******************#########
#### NO Repetition
## comboCount(100, 50) - 30000
## Big Integer ('bigz') :
## [1] 100891344545564193334812467256
expect_equal(rowSums(comboGeneral(100, 50,
lower = "100891344545564193334812467256")),
comboGeneral(100, 50, lower = "100891344545564193334812467256",
constraintFun = "sum")[,51])
#### With Repetition
## comboCount(100, 20, T) - 30000
## Big Integer ('bigz') :
## [1] 24551856075980529735105
numVec <- rnorm(100)
expect_equal(apply(comboGeneral(numVec, 20, TRUE,
lower = "24551856075980529735105"), 1, prod),
comboGeneral(numVec, 20, TRUE,
lower = "24551856075980529735105",
constraintFun = "prod")[,21])
#### Multisets
## comboCount(100, 20, freqs = rep(1:5, 20)) - 100000
## Big Integer ('bigz') :
## [1] 12298205197060077177152
expect_equal(rowMeans(comboGeneral(numVec, 20, freqs = rep(1:5, 20),
lower = "12298205197060077177152")),
comboGeneral(numVec, 20, freqs = rep(1:5, 20),
lower = "12298205197060077177152",
constraintFun = "mean")[,21])
######********************** Upper & Lower *******************#########
#### NO Repetition
expect_equal(apply(comboGeneral(100, 50,
lower = "100891344545564193334812000000",
upper = "100891344545564193334812003000"), 1, max),
comboGeneral(100, 50,
lower = "100891344545564193334812000000",
upper = "100891344545564193334812003000",
constraintFun = "max")[,51])
#### With Repetition
numVec <- rnorm(100)
expect_equal(apply(comboGeneral(numVec, 20, TRUE,
lower = "24551856075980529000000",
upper = "24551856075980529003000"), 1, min),
comboGeneral(numVec, 20, TRUE,
lower = "24551856075980529000000",
upper = "24551856075980529003000",
constraintFun = "min")[,21])
#### Multisets
expect_equal(rowSums(comboGeneral(numVec, 20, freqs = rep(1:5, 20),
lower = "12298205197060077000000",
upper = "12298205197060077003000")),
comboGeneral(numVec, 20, freqs = rep(1:5, 20),
lower = "12298205197060077000000",
upper = "12298205197060077003000",
constraintFun = "sum")[,21])
})
test_that("permuteGeneral produces correct results with constrainFun only", {
set.seed(15)
## N.B. No longer need keepResult = TRUE if user only declares constraintFun
######********************** All Results *******************#########
#### NO Repetition
expect_equal(rowSums(permuteGeneral(11, 5)),
permuteGeneral(11, 5, constraintFun = "sum")[,6])
#### NO Repetition
## permuteCount(8)
## [1] 40320
expect_equal(permuteGeneral(8, constraintFun = "sum", nThreads = 2),
permuteGeneral(8, constraintFun = "sum"))
#### With Repetition
numVec <- rnorm(9)
expect_equal(apply(permuteGeneral(numVec, 5, TRUE), 1, prod),
permuteGeneral(numVec, 5, TRUE, constraintFun = "prod")[,6])
#### Multisets
numVec <- runif(9)
expect_equal(rowMeans(permuteGeneral(numVec, 5, freqs = rep(1:3, 3))),
permuteGeneral(numVec, 5, freqs = rep(1:3, 3), constraintFun = "mean")[,6])
#### Multisets
## permuteCount(4, freqs = c(1:3, 6))
## [1] 55440
expect_equal(permuteGeneral(4, constraintFun = "sum", freqs = c(1:3, 6),
nThreads = 2),
permuteGeneral(4, constraintFun = "sum", freqs = c(1:3, 6)))
######********************** Upper Only *******************#########
#### NO Repetition
expect_equal(apply(permuteGeneral(30, 10, upper = 3000), 1, max),
permuteGeneral(30, 10, upper = 3000, constraintFun = "max")[,11])
#### With Repetition
numVec <- rnorm(10)
expect_equal(apply(permuteGeneral(numVec, 8, TRUE, upper = 3000), 1, min),
permuteGeneral(numVec, 8, TRUE, upper = 3000, constraintFun = "min")[,9])
#### Multisets
numVec <- rnorm(10)
expect_equal(rowSums(permuteGeneral(numVec, 7, freqs = rep(1:5, 2), upper = 3000)),
permuteGeneral(numVec, 7, freqs = rep(1:5, 2), upper = 3000, constraintFun = "sum")[,8])
######********************** Lower Only *******************#########
#### NO Repetition
total = permuteCount(30, 10)
expect_equal(apply(permuteGeneral(30, 10, lower = total - 3000), 1, prod),
permuteGeneral(30, 10, lower = total - 3000, constraintFun = "prod")[,11])
#### With Repetition
numVec <- rnorm(12)
total = permuteCount(12, 8, TRUE)
expect_equal(rowMeans(permuteGeneral(numVec, 8, TRUE, lower = total - 3000)),
permuteGeneral(numVec, 8, TRUE, lower = total - 3000, constraintFun = "mean")[,9])
#### Multisets
total = permuteCount(10, 7, freqs = rep(1:5, 2))
expect_equal(apply(permuteGeneral(10, 7, freqs = rep(1:5, 2),
lower = total - 3000), 1, max),
permuteGeneral(10, 7, freqs = rep(1:5, 2), lower = total - 3000,
constraintFun = "max")[,8])
######********************** Upper & Lower *******************#########
#### NO Repetition
expect_equal(rowMeans(permuteGeneral(30, 10, lower = 100000, upper = 103000)),
permuteGeneral(30, 10, lower = 100000, upper = 103000, constraintFun = "mean")[,11])
#### With Repetition
numVec <- rnorm(12)
expect_equal(apply(permuteGeneral(numVec, 8, TRUE, lower = 100000,
upper = 103000), 1, prod),
permuteGeneral(numVec, 8, TRUE, lower = 100000, upper = 103000,
constraintFun = "prod")[,9])
#### Multisets
expect_equal(rowMeans(permuteGeneral(10, 7, freqs = rep(1:5, 2),
lower = 100000, upper = 103000)),
permuteGeneral(10, 7, freqs = rep(1:5, 2), lower = 100000,
upper = 103000, constraintFun = "mean")[,8])
})
test_that("permuteGeneral produces correct results with GMP and constrainFun", {
set.seed(19)
######********************** Lower Only *******************#########
#### NO Repetition
# permuteCount(30, 15) - 30000
# Big Integer ('bigz') :
# [1] 202843204931727330000
expect_equal(rowSums(permuteGeneral(30, 15,
lower = "202843204931727330000")),
permuteGeneral(30, 15, lower = "202843204931727330000",
constraintFun = "sum")[,16])
#### With Repetition
# permuteCount(15, 15, TRUE) - 30000
# Big Integer ('bigz') :
# [1] 437893890380829375
numVec <- rnorm(15)
expect_equal(apply(permuteGeneral(numVec, 15, TRUE,
lower = "437893890380829375"), 1, prod),
permuteGeneral(numVec, 15, TRUE,
lower = "437893890380829375",
constraintFun = "prod")[,16])
#### Multisets
# permuteCount(30, 15, freqs = rep(1:5, 6)) - 30000
# Big Integer ('bigz') :
# [1] 7260161756223012226620
numVec <- runif(30)
expect_equal(rowMeans(permuteGeneral(numVec, 15, freqs = rep(1:5, 6),
lower = "7260161756223012226620")),
permuteGeneral(numVec, 15, freqs = rep(1:5, 6),
lower = "7260161756223012226620",
constraintFun = "mean")[,16])
######********************** Upper & Lower *******************#########
#### NO Repetition
expect_equal(apply(permuteGeneral(30, 15,
lower = "202843204931727100000",
upper = "202843204931727103000"), 1, max),
permuteGeneral(30, 15,
lower = "202843204931727100000",
upper = "202843204931727103000",
constraintFun = "max")[,16])
#### With Repetition
numVec <- rnorm(15)
expect_equal(apply(permuteGeneral(numVec, 15, TRUE,
lower = "437893890380000000",
upper = "437893890380003000"), 1, min),
permuteGeneral(numVec, 15, TRUE,
lower = "437893890380000000",
upper = "437893890380003000",
constraintFun = "min")[,16])
#### Multisets
numVec <- runif(30)
expect_equal(rowSums(permuteGeneral(numVec, 15, freqs = rep(1:5, 6),
lower = "7260161756223012000000",
upper = "7260161756223012003000")),
permuteGeneral(numVec, 15, freqs = rep(1:5, 6),
lower = "7260161756223012000000",
upper = "7260161756223012003000",
constraintFun = "sum")[,16])
})
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.