Nothing
context("testing partitionGeneral GMP")
test_that("partitionGeneral Distinct Parallel Lower GMP", {
#######################################################################
## See commentary above
########********************** Lower Only *******************##########
## partitionsDesign(1000, 15)[c("num_partitions", "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 3649675516801903698
##
## $partition_type
## [1] "DstctNoZero"
bench <- partitionsGeneral(1000, 15, lower = "3649675516801803698")
expect_identical(partitionsGeneral(1000, 15, lower = "3649675516801803698",
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 1000),
gmp::as.bigz("3649675516801803698"))
expect_equal(gmp::sub.bigz("3649675516801903698",
"3649675516801803698") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 1000))
## partitionsDesign((1:1000) * 2e9, 15)[c("num_partitions",
## "partition_type",
## "mapped_target")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 3649675516801903698
##
## $partition_type
## [1] "DstctNoZero"
##
## $mapped_target
## [1] 1000
bench <- partitionsGeneral((1:1000) * 2e9, 15,
lower = "3649675516801803698")
expect_identical(partitionsGeneral((1:1000) * 2e9, 15,
lower = "3649675516801803698",
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = (1:1000) * 2e9),
gmp::as.bigz("3649675516801803698"))
expect_equal(gmp::sub.bigz("3649675516801903698",
"3649675516801803698") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 1000 * 2e9))
## partitionsDesign(0:1000, 15)[c("num_partitions",
## "partition_type",
## "mapped_target")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 4556757507869210155
##
## $partition_type
## [1] "DstctOneZero"
##
## $mapped_target
## [1] 1015
bench <- partitionsGeneral(0:1000, 15,
lower = "4556757507869110155")
expect_identical(partitionsGeneral(0:1000, 15,
lower = "4556757507869110155",
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 0:1000),
gmp::as.bigz("4556757507869110155"))
expect_equal(gmp::sub.bigz("4556757507869210155",
"4556757507869110155") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 1000))
## partitionsDesign(0:1000 * 2e9, 15)[c("num_partitions",
## "partition_type",
## "mapped_target")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 4556757507869210155
##
## $partition_type
## [1] "DstctOneZero"
##
## $mapped_target
## [1] 1015
bench <- partitionsGeneral(0:1000 * 2e9, 15,
lower = "4556757507869110155")
expect_identical(partitionsGeneral(0:1000 * 2e9, 15,
lower = "4556757507869110155",
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = (0:1000) * 2e9),
gmp::as.bigz("4556757507869110155"))
expect_equal(gmp::sub.bigz("4556757507869210155",
"4556757507869110155") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 1000 * 2e9))
## partitionsDesign(0:1000, 12,
## freqs = c(3, rep(1, 1000)))[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 39228755152043560
##
## $mapped_target
## [1] 1000
##
## $partition_type
## [1] "DstctMultiZero"
bench <- partitionsGeneral(0:1000, 12,
lower = "39228755151943560",
freqs = c(3, rep(1, 1000)))
expect_identical(partitionsGeneral(0:1000, 12,
lower = "39228755151943560",
freqs = c(3, rep(1, 1000)),
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 0:1000,
freqs = c(3, rep(1, 1000))),
gmp::as.bigz("39228755151943560"))
expect_equal(gmp::sub.bigz("39228755152043560",
"39228755151943560") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 1000))
#### Mapped version
##
## 15 * 12 + 1000 * 3 = 3180
##
## partitionsDesign(15 + 0:1000 * 3, 12,
## freqs = c(3, rep(1, 1000)),
## target = 3180)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 39228755152043560
##
## $mapped_target
## [1] 1000
##
## $partition_type
## [1] "DstctMultiZero"
bench <- partitionsGeneral(15 + 0:1000 * 3, 12,
lower = "39228755151943560",
freqs = c(3, rep(1, 1000)),
target = 3180)
expect_identical(partitionsGeneral(15 + 0:1000 * 3, 12,
lower = "39228755151943560",
freqs = c(3, rep(1, 1000)),
target = 3180, nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 15 + 0:1000 * 3,
freqs = c(3, rep(1, 1000)),
target = 3180),
gmp::as.bigz("39228755151943560"))
expect_equal(gmp::sub.bigz("39228755152043560",
"39228755151943560") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 3180))
## partitionsDesign(0:1000, 12,
## freqs = c(13, rep(1, 1000)))[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 39233351450439724
##
## $mapped_target
## [1] 1000
##
## $partition_type
## [1] "DstctMultiZero"
bench <- partitionsGeneral(0:1000, 12,
lower = "39233351450339724",
freqs = c(13, rep(1, 1000)))
expect_identical(partitionsGeneral(0:1000, 12,
freqs = c(13, rep(1, 1000)),
lower = "39233351450339724",
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 0:1000,
freqs = c(13, rep(1, 1000))),
gmp::as.bigz("39233351450339724"))
expect_equal(gmp::sub.bigz("39233351450439724",
"39233351450339724") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 1000))
#### Mapped version
##
## 19 * 12 + 1000 * 2 = 2228
##
## partitionsDesign(19 + 0:1000 * 2, 12, target = 2228,
## freqs = c(13, rep(1, 1000)))[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 39233351450439724
##
## $mapped_target
## [1] 1000
##
## $partition_type
## [1] "DstctMultiZero"
bench <- partitionsGeneral(19 + 0:1000 * 2, 12, target = 2228,
lower = "39233351450339724",
freqs = c(13, rep(1, 1000)))
expect_identical(partitionsGeneral(19 + 0:1000 * 2, 12, target = 2228,
freqs = c(13, rep(1, 1000)),
lower = "39233351450339724",
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 19 + 0:1000 * 2,
target = 2228,
freqs = c(13, rep(1, 1000))),
gmp::as.bigz("39233351450339724"))
expect_equal(gmp::sub.bigz("39233351450439724",
"39233351450339724") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 2228))
########************* These take a few seconds ***************#######
## partitionsDesign(500, 10, target = 1380)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 9605186196368891
##
## $mapped_target
## [1] 1380
##
## $partition_type
## [1] "DistCapped"
bench <- partitionsGeneral(500, 10, lower = "9605186196218891",
target = 1380)
expect_identical(partitionsGeneral(500, 10, lower = "9605186196218891",
target = 1380, nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 500, target = 1380),
gmp::as.bigz("9605186196218891"))
expect_equal(gmp::sub.bigz("9605186196368891",
"9605186196218891") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 1380))
## partitionsDesign(0:500, 10, target = 1380,
## freqs = c(3, rep(1, 500)))[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 10236925075643716
##
## $mapped_target
## [1] 1380
##
## $partition_type
## [1] "DstctCappedMZ"
bench <- partitionsGeneral(0:500, 10, freqs = c(3, rep(1, 500)),
lower = "10236925075443716", target = 1380)
expect_identical(partitionsGeneral(0:500, 10, freqs = c(3, rep(1, 500)),
lower = "10236925075443716", target = 1380,
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 0:500,
freqs = c(3, rep(1, 500)),
target = 1380),
gmp::as.bigz("10236925075443716"))
expect_equal(gmp::sub.bigz("10236925075643716",
"10236925075443716") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 1380))
})
test_that("partition/compositionsGeneral and Repetition Parallel Lower GMP", {
#######################################################################
## See commentary above
########********************** Lower Only *******************##########
## partitionsDesign(0:300, repetition = T)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 9253082936723602
##
## $mapped_target
## [1] 300
##
## $partition_type
## [1] "RepStdAll"
bench <- partitionsGeneral(0:300, repetition = TRUE,
lower = "9253082936523602")
expect_identical(partitionsGeneral(0:300, repetition = TRUE,
lower = "9253082936523602",
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 0:300,
repetition = TRUE),
gmp::as.bigz("9253082936523602"))
expect_equal(gmp::sub.bigz("9253082936723602",
"9253082936523602") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 300))
#### Mapped version
##
## 3 * 300 + 17 * 300 = 6000
##
## partitionsDesign(3L + (0:300) * 17L, 300, repetition = TRUE,
## target = 6000L)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 9253082936723602
##
## $mapped_target
## [1] 600
##
## $partition_type
## [1] "RepNoZero"
bench <- partitionsGeneral(3L + (0:300) * 17L, 300, repetition = TRUE,
lower = "9253082936523602", target = 6000L)
expect_identical(partitionsGeneral(3L + (0:300) * 17L, 300, repetition = TRUE,
lower = "9253082936523602", target = 6000L,
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 3L + (0:300) * 17L,
target = 6000L, repetition = TRUE),
gmp::as.bigz("9253082936523602"))
expect_equal(gmp::sub.bigz("9253082936723602",
"9253082936523602") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 6000L))
########********************** Lower Only *******************##########
## compositionsDesign(0:60, repetition = T)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 576460752303423488
##
## $mapped_target
## [1] 60
##
## $partition_type
## [1] "RepStdAll"
bench <- compositionsGeneral(0:60, repetition = TRUE,
lower = "576460752303223488")
expect_identical(compositionsGeneral(0:60, repetition = TRUE,
lower = "576460752303223488",
nThreads = 2), bench)
expect_identical(compositionsRank(bench[1:5, ], v = 0:60,
repetition = TRUE),
gmp::as.bigz("576460752303223488") + 0:4)
expect_equal(gmp::sub.bigz("576460752303423488",
"576460752303223488") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 60))
#### Mapped version
##
## compositionsDesign((0:60) * 19, repetition = T)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 576460752303423488
##
## $mapped_target
## [1] 60
##
## $partition_type
## [1] "RepShort"
bench <- compositionsGeneral((0:60) * 19, repetition = TRUE,
lower = "576460752303223488")
expect_identical(compositionsGeneral((0:60) * 19, repetition = TRUE,
lower = "576460752303223488",
nThreads = 2), bench)
expect_identical(compositionsRank(bench[1:5, ], v = (0:60) * 19,
repetition = TRUE),
gmp::as.bigz("576460752303223488") + 0:4)
expect_equal(gmp::sub.bigz("576460752303423488",
"576460752303223488") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 60 * 19))
## Weak = TRUE
##
## compositionsDesign(0:60, repetition = T, weak = T)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 48307454420181661301946569760686328
##
## $mapped_target
## [1] 120
##
## $partition_type
## [1] "RepNoZero"
bench <- compositionsGeneral(0:60, repetition = TRUE, weak = TRUE,
lower = "48307454420181661301946569760486328")
expect_identical(compositionsGeneral(0:60, repetition = TRUE, weak = TRUE,
lower = "48307454420181661301946569760486328",
nThreads = 2), bench)
expect_identical(compositionsRank(bench[1:5, ], v = 0:60,
repetition = TRUE, weak = TRUE),
gmp::as.bigz("48307454420181661301946569760486328") + 0:4)
expect_equal(gmp::sub.bigz("48307454420181661301946569760686328",
"48307454420181661301946569760486328") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 60))
## Mapped Version; Weak = TRUE
##
## compositionsDesign((0:60) * 19, 60, repetition = T,
## weak = T)[c("num_partitions", "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 48307454420181661301946569760686328
##
## $mapped_target
## [1] 120
##
## $partition_type
## [1] "RepNoZero"
bench <- compositionsGeneral((0:60) * 19, 60, repetition = TRUE, weak = TRUE,
lower = "48307454420181661301946569760486328")
expect_identical(compositionsGeneral((0:60) * 19, 60, repetition = TRUE, weak = TRUE,
lower = "48307454420181661301946569760486328",
nThreads = 2), bench)
expect_identical(compositionsRank(bench[1:5, ], v = (0:60) * 19,
repetition = TRUE, weak = TRUE),
gmp::as.bigz("48307454420181661301946569760486328") + 0:4)
expect_equal(gmp::sub.bigz("48307454420181661301946569760686328",
"48307454420181661301946569760486328") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 60 * 19))
## partitionsDesign(6000, 10, TRUE)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 7856063261819197461639
##
## $mapped_target
## [1] 6000
##
## $partition_type
## [1] "RepNoZero"
bench <- partitionsGeneral(6000, 10, TRUE, lower = "7856063261819197261639")
expect_identical(partitionsGeneral(6000, 10, TRUE,
lower = "7856063261819197261639",
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 6000,
repetition = TRUE),
gmp::as.bigz("7856063261819197261639"))
expect_equal(gmp::sub.bigz("7856063261819197461639",
"7856063261819197261639") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 6000L))
#### Mapped version
##
## partitionsDesign(2e9 * 1:6000, 10, TRUE)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 7856063261819197461639
##
## $mapped_target
## [1] 6000
##
## $partition_type
## [1] "RepNoZero"
bench <- partitionsGeneral(2e9 * 1:6000, 10, TRUE,
lower = "7856063261819197261639")
expect_identical(partitionsGeneral(2e9 * 1:6000, 10, TRUE,
lower = "7856063261819197261639",
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 2e9 * 1:6000,
repetition = TRUE),
gmp::as.bigz("7856063261819197261639"))
expect_equal(gmp::sub.bigz("7856063261819197461639",
"7856063261819197261639") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 1.2e+13))
## compositionsDesign(1000, 10, TRUE)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 2634095604619702128324
##
## $mapped_target
## [1] 1000
##
## $partition_type
## [1] "RepNoZero"
bench <- compositionsGeneral(1000, 10, TRUE, lower = "2634095604619701928324")
expect_identical(compositionsGeneral(1000, 10, TRUE,
lower = "2634095604619701928324",
nThreads = 2), bench)
expect_identical(compositionsRank(bench[1:11, ], v = 1000,
repetition = TRUE),
gmp::as.bigz("2634095604619701928324") + 0:10)
expect_equal(gmp::sub.bigz("2634095604619702128324",
"2634095604619701928324") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 1000L))
#### Mapped version
##
## compositionsDesign(23 + (1:1000) * 123e8, 10, TRUE
## target = 12300000000230)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 2634095604619702128324
##
## $mapped_target
## [1] 1000
##
## $partition_type
## [1] "RepNoZero"
bench <- compositionsGeneral(23 + (1:1000) * 123e8, 10, TRUE,
lower = "2634095604619701928324",
target = 12300000000230)
expect_identical(compositionsGeneral(23 + (1:1000) * 123e8, 10, TRUE,
lower = "2634095604619701928324",
target = 12300000000230,
nThreads = 2), bench)
expect_identical(compositionsRank(bench[1:11, ], v = 23 + (1:1000) * 123e8,
target = 12300000000230,
repetition = TRUE),
gmp::as.bigz("2634095604619701928324") + 0:10)
expect_equal(gmp::sub.bigz("2634095604619702128324",
"2634095604619701928324") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 12300000000230))
## partitionsDesign(0:6000, 10, TRUE)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 7974346430545135003177
##
## $mapped_target
## [1] 6010
##
## $partition_type
## [1] "RepShort"
bench <- partitionsGeneral(0:6000, 10, TRUE, lower = "7974346430545134803177")
expect_identical(partitionsGeneral(0:6000, 10, TRUE,
lower = "7974346430545134803177",
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 0:6000,
repetition = TRUE),
gmp::as.bigz("7974346430545134803177"))
expect_equal(gmp::sub.bigz("7974346430545135003177",
"7974346430545134803177") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 6000L))
#### Mapped version
##
## partitionsDesign(2e9 * 0:6000, 10, TRUE)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 7974346430545135003177
##
## $mapped_target
## [1] 6010
##
## $partition_type
## [1] "RepNoZero"
bench <- partitionsGeneral(2e9 * 0:6000, 10, TRUE,
lower = "7974346430545134803177")
expect_identical(partitionsGeneral(2e9 * 0:6000, 10, TRUE,
lower = "7974346430545134803177",
nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 2e9 * 0:6000,
repetition = TRUE),
gmp::as.bigz("7974346430545134803177"))
expect_equal(gmp::sub.bigz("7974346430545135003177",
"7974346430545134803177") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 1.2e+13))
## partitionsDesign(200, 12, TRUE,
## target = 1000)[c("num_partitions",
## "mapped_target",
## "partition_type")]
## $num_partitions
## Big Integer ('bigz') :
## [1] 14001484381527012
##
## $mapped_target
## [1] 1000
##
## $partition_type
## [1] "RepCapped"
bench <- partitionsGeneral(200, 12, TRUE, target = 1000,
lower = "14001484381327012")
expect_identical(partitionsGeneral(200, 12, TRUE, lower = "14001484381327012",
target = 1000, nThreads = 2), bench)
expect_identical(partitionsRank(bench[1, ], v = 200,
target = 1000,
repetition = TRUE),
gmp::as.bigz("14001484381327012"))
expect_equal(gmp::sub.bigz("14001484381527012",
"14001484381327012") + 1, nrow(bench))
expect_true(all(rowSums(bench) == 1000))
})
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.