context("Analytical value tests")
snps <- c(1587L, 1451L, 910L, 1899L, 1474L, 986L, 539L, 44L, 1035L, 1054L,
1396L, 183L, 1693L, 55L, 770L, 1410L, 1845L, 328L, 607L, 1559L,
1637L, 530L, 722L, 966L, 244L, 28L, 533L, 1281L, 77L, 532L, 1805L,
564L, 79L, 1507L, 1984L, 1020L, 1289L, 1658L, 460L, 1792L, 478L,
924L, 1491L, 1386L, 975L, 1321L, 1393L, 1959L, 981L, 531L, 1760L,
836L, 516L, 1268L, 370L, 1892L, 225L, 1624L, 1765L, 1144L, 860L,
714L, 1234L, 492L, 1356L, 223L, 1996L, 609L, 1030L, 1930L, 709L,
375L, 867L, 598L, 1987L, 1493L, 60L, 1463L, 98L, 1852L, 577L,
168L, 1179L, 919L, 1677L, 899L, 138L, 686L, 927L, 473L, 1265L,
1975L, 1201L, 921L, 1788L, 1182L, 1217L, 566L, 865L, 1004L, 1849L,
989L, 1239L, 1002L, 1232L, 443L, 1271L, 604L, 1155L, 1319L, 422L,
1800L, 556L, 1751L, 1567L, 1783L, 288L, 738L, 1840L, 1391L, 813L,
1172L, 628L, 1378L, 1181L, 736L, 988L, 584L, 503L, 1242L, 1283L,
1432L, 1741L, 1654L, 1101L, 998L, 1034L, 1490L, 590L, 1154L,
1940L, 1L, 721L, 879L, 866L, 818L, 1186L, 1235L, 1350L, 578L,
458L, 1258L, 970L, 1949L, 1300L, 959L, 450L, 1339L, 812L, 437L,
1965L, 1146L, 944L, 1879L, 135L, 1371L, 56L, 1093L, 451L, 538L,
1084L, 1448L, 1661L, 1672L, 1250L, 890L, 1422L, 685L, 1660L,
1580L, 32L, 260L, 1261L, 1469L, 1614L, 493L, 362L, 316L, 1534L,
1540L, 345L, 1538L, 1470L, 181L, 1369L, 434L, 296L, 291L, 1696L,
1213L, 61L, 264L, 218L, 1088L, 23L, 717L, 776L, 352L, 546L, 599L,
909L, 815L, 1500L, 1827L, 745L, 66L, 937L, 11L, 404L, 1238L,
1280L, 549L, 1058L, 1704L, 1720L, 1698L, 1455L, 1535L, 41L, 1483L,
287L, 180L, 956L, 337L, 497L, 1556L, 512L, 1767L, 824L, 1961L,
554L, 33L, 85L, 339L, 713L, 1670L, 523L, 20L, 1665L, 432L, 1543L,
1091L, 271L, 691L, 1332L, 1132L, 254L, 1357L, 1295L, 490L, 1240L,
1963L, 374L, 38L, 1583L, 688L, 1440L, 863L, 1903L, 506L, 766L,
632L, 1163L, 1531L, 101L, 878L, 82L, 1197L, 1013L, 1545L, 1502L,
1752L, 958L, 786L, 1785L, 1428L, 1007L, 740L, 1511L, 954L, 1376L,
281L, 1995L, 1377L, 36L, 1623L, 1969L, 286L, 1630L, 6L, 1033L,
1573L, 471L, 1257L, 1367L, 859L, 614L, 480L, 1810L, 1218L, 1627L,
528L, 561L, 1143L, 1916L, 1514L, 644L, 1173L, 1537L, 1098L, 1429L,
49L, 1059L, 829L, 1781L, 543L, 505L, 911L, 429L, 1778L, 62L,
1225L, 838L, 280L, 1641L, 907L, 1488L, 1499L, 1065L, 558L, 703L,
359L, 1884L, 1921L, 129L, 994L, 400L, 1263L, 1216L, 1625L, 995L,
1971L, 1411L, 125L, 1400L, 1078L, 1528L, 1249L, 118L, 667L, 1945L,
886L, 1109L, 1900L, 552L, 948L, 1317L, 773L, 876L, 626L, 692L,
1175L, 771L, 1170L, 664L, 1292L, 1691L, 332L, 190L, 1737L, 734L,
672L, 1145L, 283L, 90L, 971L, 1418L, 1530L, 915L, 1669L, 892L,
617L, 1140L, 1564L, 206L, 502L, 1365L, 1750L, 1209L, 527L, 263L,
1923L, 1569L, 1403L, 1729L, 1318L, 600L, 819L, 239L, 1408L, 1160L,
1640L, 1503L, 1977L, 785L, 1893L, 1690L, 754L, 1207L, 1320L,
1826L, 1496L, 681L, 1842L, 1725L, 1354L, 1210L, 1557L, 1551L,
1464L, 1610L, 1956L, 586L, 1306L, 1044L, 220L, 1438L, 896L, 1643L,
1565L, 1520L, 1814L, 1843L, 491L, 279L, 849L, 1073L, 760L, 1359L,
1113L, 992L, 1412L, 1632L, 1379L, 1868L, 247L, 1711L, 1860L,
1085L, 874L, 1885L, 378L, 660L, 1703L, 1424L, 42L, 1913L, 583L,
1326L, 1313L, 485L, 925L, 796L, 834L, 1026L, 272L, 1402L, 290L,
633L, 1738L, 1414L, 1120L, 1070L, 1248L, 1323L, 515L, 96L, 187L,
1364L, 1069L, 624L, 1329L, 1125L, 1363L, 1264L, 514L, 1187L,
1766L, 1023L, 916L)
test_that("Bruvo between creates a subset of bruvo's distance", {
refdf <- data.frame(test = c("00/20/23/24", "20/24/26/43"))
refgid <- df2genind(refdf, ploidy = 4, sep="/")
querydf <- data.frame(test = c("00/20/23/24"))
querygid <- df2genind(querydf, ploidy = 4, sep="/")
addloss <- bruvo.between(querygid, refgid, add = FALSE, loss = FALSE)
ADDloss <- bruvo.between(querygid, refgid, add = TRUE, loss = FALSE)
addLOSS <- bruvo.between(querygid, refgid, add = FALSE, loss = TRUE)
ADDLOSS <- bruvo.between(querygid, refgid, add = TRUE, loss = TRUE)
# Create expected distance matrix from bruvo.between()
make_AL_expect <- function(n) {
as.dist(matrix(
c(0, 0, n,
0, 0, NaN,
n, NaN, 0),
nrow = 3, ncol = 3))
}
# Values from Bruvo et. al. (2004)
expected_addloss <- make_AL_expect(0.46875000000000)
expected_addLOSS <- make_AL_expect(0.34374987334013)
expected_ADDloss <- make_AL_expect(0.458333164453506)
expected_ADDLOSS <- make_AL_expect(0.401041518896818)
expect_equal(addloss[1:2], expected_addloss[1:2])
expect_equal(is.nan(addloss[3]), TRUE)
expect_equal(ADDloss[1:2], expected_ADDloss[1:2])
expect_equal(is.nan(ADDloss[3]), TRUE)
expect_equal(addLOSS[1:2], expected_addLOSS[1:2])
expect_equal(is.nan(addLOSS[3]), TRUE)
expect_equal(ADDLOSS[1:2], expected_ADDLOSS[1:2])
expect_equal(is.nan(ADDLOSS[3]), TRUE)
})
test_that("Bruvo between places distances in the same location has bruvo distance", {
data(nancycats)
n3 <- nancycats[pop = 3]
n4 <- nancycats[pop = 4]
btwn <- poppr:::bruvo.between(n3[1:3], n4[1:5], replen = rep(2, 9), by_locus = TRUE)
dist <- poppr:::bruvo.dist(repool(n3[1:3], n4[1:5]), replen = rep(2, 9), by_locus = TRUE)
comparisons <- c(NA, NA, TRUE, TRUE, TRUE, TRUE, TRUE, NA, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, TRUE, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)
expect_equal(btwn$fca8 == dist$fca8, comparisons)
expect_equal(btwn$fca23 == dist$fca23, comparisons)
expect_equal(btwn$fca43 == dist$fca43, comparisons)
expect_equal(btwn$fca45 == dist$fca45, comparisons)
expect_equal(btwn$fca77 == dist$fca77, comparisons)
expect_equal(btwn$fca78 == dist$fca78, comparisons)
expect_equal(btwn$fca90 == dist$fca90, comparisons)
expect_equal(btwn$fca96 == dist$fca96, comparisons)
expect_equal(btwn$fca37 == dist$fca37, comparisons)
})
test_that("Bruvo's distance works as expected.", {
testdf <- data.frame(test = c("00/20/23/24", "20/24/26/43"))
testgid <- df2genind(testdf, ploidy = 4, sep = "/")
addloss <- as.vector(bruvo.dist(testgid, add = FALSE, loss = FALSE))
ADDloss <- as.vector(bruvo.dist(testgid, add = TRUE, loss = FALSE))
addLOSS <- as.vector(bruvo.dist(testgid, add = FALSE, loss = TRUE))
ADDLOSS <- as.vector(bruvo.dist(testgid, add = TRUE, loss = TRUE))
# Values from Bruvo et. al. (2004)
expect_equal(addloss, 0.46875000000000)
expect_equal(addLOSS, 0.34374987334013)
expect_equal(ADDloss, 0.458333164453506)
expect_equal(ADDLOSS, 0.401041518896818)
})
test_that("Bruvo's distance will trim extra zeroes.", {
testdf <- data.frame(test = c("00/20/24/26/43", "00/00/20/23/24"))
testgid <- df2genind(testdf, ploidy = 5, sep = "/")
addloss <- as.vector(bruvo.dist(testgid, add = FALSE, loss = FALSE))
ADDloss <- as.vector(bruvo.dist(testgid, add = TRUE, loss = FALSE))
addLOSS <- as.vector(bruvo.dist(testgid, add = FALSE, loss = TRUE))
ADDLOSS <- as.vector(bruvo.dist(testgid, add = TRUE, loss = TRUE))
# Values from Bruvo et. al. (2004)
expect_equal(addloss, 0.46875000000000)
expect_equal(addLOSS, 0.34374987334013)
expect_equal(ADDloss, 0.458333164453506)
expect_equal(ADDLOSS, 0.401041518896818)
})
test_that("Bruvo's distance will go through the recusion", {
skip_on_cran()
testdf <- data.frame(test = c("00/00/00/00/24", "00/20/24/26/43"))
testgid <- df2genind(testdf, ploidy = 5, sep = "/")
ADDloss <- as.vector(bruvo.dist(testgid, add = TRUE, loss = FALSE))
addloss <- as.vector(bruvo.dist(testgid, add = FALSE, loss = FALSE))
addLOSS <- as.vector(bruvo.dist(testgid, add = FALSE, loss = TRUE))
ADDLOSS <- as.vector(bruvo.dist(testgid, add = TRUE, loss = TRUE))
expect_equal(ADDloss, 0.671874523162842)
expect_equal(addLOSS, 0.293456600047648)
expect_equal(addloss, 0.75)
expect_equal(ADDLOSS, 0.482665561605245)
})
test_that("Multinomial coefficient respects index, not value", {
skip_on_cran()
testdf <- data.frame(test = c("00/00/00/51/52", "00/52/52/53/55"))
testgid <- df2genind(testdf, ploidy = 5, sep = "/")
ADDloss <- as.vector(bruvo.dist(testgid, add = TRUE, loss = FALSE))
addloss <- as.vector(bruvo.dist(testgid, add = FALSE, loss = FALSE))
addLOSS <- as.vector(bruvo.dist(testgid, add = FALSE, loss = TRUE))
ADDLOSS <- as.vector(bruvo.dist(testgid, add = TRUE, loss = TRUE))
expect_equal(ADDloss, 0.4375)
expect_equal(addLOSS, 0.25)
expect_equal(addloss, 0.625)
expect_equal(ADDLOSS, 0.34375)
})
test_that("The old version of Bruvo's distance can be switched on and off", {
skip_on_cran()
testdf <- data.frame(test = c("00/00/00/51/52", "00/52/52/53/55"))
testgid <- df2genind(testdf, ploidy = 5, sep = "/")
options(old.bruvo.model = TRUE)
obm <- "old.bruvo.model"
addloss <- as.vector(bruvo.dist(testgid, add = FALSE, loss = FALSE))
expect_warning(ADDLOSS <- as.vector(bruvo.dist(testgid, add = TRUE, loss = TRUE)), obm)
options(old.bruvo.model = FALSE)
expect_equal(addloss, 0.625)
expect_equal(ADDLOSS, 0.3549479166666667)
})
test_that("Repeat lengths can be in any order and length if named", {
skip_on_cran()
data("Pram")
p10 <- Pram[sample(nInd(Pram), 10)]
# Repeat length as normal
pbruvo <- bruvo.dist(p10, replen = other(p10)$REPLEN)
# Repeat lengths mixed up
pbruvo_sampled <- bruvo.dist(p10, replen = sample(other(p10)$REPLEN))
# Extra value in repeat lengths
pbruvo_long <- bruvo.dist(p10, replen = c(other(p10)$REPLEN, NOPE = 23))
expect_equivalent(pbruvo, pbruvo_sampled)
expect_equivalent(pbruvo, pbruvo_long)
})
test_that("Bruvo's distance will throw an error if there are not enough named lengths", {
skip_on_cran()
data("Pram")
p10 <- Pram[sample(nInd(Pram), 10)]
# Repeat length as normal
names(other(p10)$REPLEN)[1] <- "WHAAA"
expect_error(bruvo.dist(p10, replen = other(p10)$REPLEN), "repeat lengths... WHAAA")
})
test_that("Bruvo's distance can be calculated per locus", {
skip_on_cran()
data("Pram")
p10 <- Pram[sample(nInd(Pram), 10)]
pbruvo <- bruvo.dist(p10, replen = other(p10)$REPLEN, by_locus = TRUE)
expect_is(pbruvo, "list")
expect_is(pbruvo[[1]], "dist")
expect_equal(length(pbruvo), nLoc(p10))
})
test_that("Infinite Alleles Model works.",{
x <- structure(list(V3 = c("228/236/242", "000/211/226"),
V6 = c("190/210/214", "000/190/203")),
.Names = c("V3", "V6"), row.names = c("1", "2"),
class = "data.frame")
gid <- df2genind(x, sep = "/", ploidy = 3)
res <- bruvo.dist(gid, replen = c(2/10000,2/10000), add = FALSE, loss = FALSE)
expect_equal(as.numeric(res), 0.833333333333333)
})
test_that("Dissimilarity distance works as expected.", {
data(nancycats, package = "adegenet")
nan1 <- popsub(nancycats, 1)
nanmat <- diss.dist(nan1, mat = TRUE)
expect_that(diss.dist(nan1), is_a("dist"))
expect_that(nanmat, is_a("matrix"))
expect_equal(diss.dist(nan1, mat = TRUE, percent = TRUE), (nanmat/2)/9)
expect_equal(nanmat[2, 1], 4)
})
test_that("Index of association works as expected.", {
data(Aeut, package = "poppr")
# Values from Grünwald and Hoheisel (2006)
res <- c(Ia = 14.3707995986407, rbarD = 0.270617053778004)
expect_equal(ia(Aeut), res)
})
test_that("Internal function fix_negative_branch works as expected.", {
the_tree <- structure(list(edge = structure(c(9L, 10L, 11L, 12L, 13L, 14L,
14L, 13L, 12L, 11L, 10L, 9L, 9L, 10L, 11L, 12L, 13L, 14L, 2L, 3L, 6L, 7L,
8L, 1L, 5L, 4L), .Dim = c(13L, 2L)),
edge.length = c(0, 0.0625, 0.0625, 0.09375, 0.15, -0.25, 0.25, -0.15,
-0.09375, -0.0625, 0, 0, 0),
tip.label = c("2340_50156.ab1 ", "2340_50149.ab1 ", "2340_50674.ab1 ",
"2370_45312.ab1 ", "2340_50406.ab1 ", "2370_45424.ab1 ", "2370_45311.ab1
", "2370_45521.ab1 "),
Nnode = 6L
),
.Names = c("edge", "edge.length", "tip.label", "Nnode"),
class = "phylo",
order = "cladewise")
fix_tree <- poppr:::fix_negative_branch(the_tree)
# Not all branch lengths are positive
expect_false(min(the_tree$edge.length) >= 0)
# After fix, all branch lengths are positive
expect_true(min(fix_tree$edge.length) >= 0)
# The difference from fixed and unfixed is unfixed. This indicates that the
# clones were set to zero and the fix set the branch lengths in the correct
# order.
expect_equivalent(min(fix_tree$edge.length - the_tree$edge.length), min(the_tree$edge.length))
})
test_that("mlg.matrix returns a matrix and not table", {
data(partial_clone)
mat4row <- poppr:::mlg.matrix(partial_clone)
pop(partial_clone) <- NULL
mat1row <- poppr:::mlg.matrix(partial_clone)
expect_that(mat4row, is_a("matrix"))
expect_that(mat1row, is_a("matrix"))
expect_false(inherits(mat1row, "table"))
expect_false(inherits(mat4row, "table"))
})
test_that("diversity_stats returns expected values", {
skip_on_cran()
data("Aeut", package = "poppr")
expected <- structure(c(4.06272002528149, 3.66843094399907, 4.55798828426928,
42.1928251121076, 28.7234042553191, 68.9723865877712, 0.976299287915825,
0.965185185185185, 0.985501444136235, 0.721008688944842, 0.725926650260449,
0.720112175857993), .Dim = 3:4, .Dimnames = structure(list(Pop = c("Athena",
"Mt. Vernon", "Total"), Index = c("H", "G", "simp", "E.5")), .Names = c("Pop",
"Index")))
atab <- mlg.table(Aeut, plot = FALSE, total = TRUE)
res <- diversity_stats(atab)
pop(Aeut) <- NULL
res_single <- diversity_stats(atab["Total", , drop = FALSE])
expect_equivalent(res, expected)
expect_false(is.matrix(res_single))
expect_equivalent(res_single, res["Total", ])
})
test_that("get_boot_x works with one pop or one stat", {
skip_on_cran()
data(Pinf)
Ptab <- mlg.table(Pinf, plot = FALSE)
pop(Pinf) <- NULL
ptab <- mlg.table(Pinf, plot = FALSE)
Pboot_all <- diversity_ci(Ptab, 20L, plot = FALSE)
Pboot_E <- diversity_ci(Ptab, 20L, G = FALSE, H = FALSE, lambda = FALSE, plot = FALSE)
pboot_all <- diversity_ci(ptab, 20L, plot = FALSE)
pboot_E <- diversity_ci(ptab, 20L, G = FALSE, H = FALSE, lambda = FALSE, plot = FALSE)
Past <- poppr:::get_boot_stats(Pboot_all$boot)
PEst <- poppr:::get_boot_stats(Pboot_E$boot)
past <- poppr:::get_boot_stats(pboot_all$boot)
pEst <- poppr:::get_boot_stats(pboot_E$boot)
expect_equivalent(dim(Past), c(2, 4))
expect_equivalent(dim(PEst), c(2, 1))
expect_equivalent(dim(past), c(1, 4))
expect_equivalent(dim(pEst), c(1, 1))
})
test_that("ia returns NA with less than three samples", {
skip_on_cran()
data(partial_clone)
pc <- partial_clone[sample(50, 2)]
expect_equivalent(rep(NA_real_, 2), ia(pc))
expect_equivalent(rep(NA_real_, 4), ia(pc, sample = 9))
})
test_that("ia and pair.ia return same values", {
skip_on_cran()
data(partial_clone)
pc_pair <- pair.ia(partial_clone, plot = FALSE, quiet = TRUE)
expect_output(print(pc_pair), "Locus_1:Locus_2")
# Randomly sample two loci
set.seed(9001)
locpair <- sample(locNames(partial_clone), 2)
# Calculate ia for those
pc_ia <- ia(partial_clone[loc = locpair])
# Find the pair in the table
pair_posi <- grepl(locpair[1], rownames(pc_pair)) & grepl(locpair[2], rownames(pc_pair))
expect_equivalent(pc_pair[pair_posi], pc_ia)
})
test_that("pair.ia can do sampling", {
skip_on_cran()
pair_res <- pair.ia(partial_clone[1:10], sample = 1L, quiet = TRUE, plot = FALSE)
expect_equal(dim(pair_res), c(45, 4))
expect_equal(sort(unique(pair_res[, "p.rD"])), c(0.5, 1))
})
test_that("bitwise.ia can handle large samples", {
# skip_on_cran()
set.seed(999)
x <- glSim(n.ind = 200, n.snp.nonstruc = 2e3, ploidy = 2, parallel = FALSE)
position(x) <- sort(sample(1e4, 2e3))
res <- bitwise.ia(x[, snps], thread = 1L)
expect_equal(res, 8.6296328853274e-06)
})
test_that("win.ia produces expected results", {
skip_on_cran()
RNGversion("3.5.0")
set.seed(999)
x <- glSim(n.ind = 10, n.snp.nonstruc = 5e2, n.snp.struc = 5e2, ploidy = 2)
position(x) <- sort(sample(1e4, 1e3))
pos.res <- c(0.0455840455840456, -0.121653107452204, -0.00595292101094314,
0.0080791417110234, -0.0168361601753453, -0.00529454073927957,
-0.00897633972053186, -0.0127370947405975, -0.0449102196309011,
-0.00973722044247706, -0.00395345516884293, -0.00365271629340326,
-0.00974233012233703, -0.00245476433207628, 0.00284396024347222,
-0.00961958529835491, 0.0131920863329584, 0.153481745744672,
0.267842562306642, 0.241714085779086, 0.218062029786597,
0.160460027459485, 0.351036788453414, 0.165485011482322,
0.275776270167356, 0.292113177590906, 0.201538950412372,
0.146277858717017, 0.171243142808176, 0.213214941672605,
0.200245399275377, 0.243007310007378, 0.12396191060666,
0.0350644169627312 )
nopos.res <- c(0.00124186533451839, 0.0334854151956646, 0.226632983481153,
0.173916930910343)
win.pos <- win.ia(x, window = 300L, quiet = TRUE)
position(x) <- NULL
win.nopos <- win.ia(x, window = 300L, quiet = TRUE)
expect_equivalent(win.pos, pos.res)
expect_equivalent(win.nopos, nopos.res)
# Making sure that the genind version does the same thing.
xmat <- as.matrix(x)
xmat[xmat == 0] <- "1/1"
xmat[xmat == "1"] <- "1/2"
xmat[xmat == "2"] <- "2/2"
xgid <- df2genind(xmat[, 1:300], sep = "/", ind.names = .genlab("", 10),
loc.names = .genlab("", 300L))
gid.res <- ia(xgid)["rbarD"]
expect_equivalent(gid.res, nopos.res[1])
RNGversion(paste(R.version[c('major', 'minor')], collapse = "."))
})
test_that("win.ia can handle missing data for haploids", {
skip_on_cran()
set.seed(999)
dat <- sample(c(0, 1, NA), 500, replace = TRUE, prob = c(0.47, 0.47, 0.06))
mat <- matrix(dat, nrow = 5, ncol = 100)
x <- new("genlight", mat, parallel = FALSE)
gid <- df2genind(mat + 1, ind.names = .genlab("", 5), ploidy = 1,
loc.names = .genlab("", 100))
bit.res <- win.ia(x, quiet = TRUE)
gid.res <- ia(gid)["rbarD"]
expect_equivalent(bit.res, gid.res)
})
test_that("win.ia can handle missing data for diploids", {
skip_on_cran()
set.seed(999)
dat <- sample(c(0, 1, 2, NA), 500, replace = TRUE, prob = c(0.22, 0.5, 0.22, 0.06))
mat <- matrix(dat, nrow = 5, ncol = 100)
x <- new("genlight", mat, parallel = FALSE)
mat[mat == 0] <- "1/1"
mat[mat == "1"] <- "1/2"
mat[mat == "2"] <- "2/2"
gid <- df2genind(mat, ind.names = .genlab("", 5), ploidy = 2, sep = "/",
loc.names = .genlab("", 100))
bit.res <- win.ia(x, quiet = TRUE)
gid.res <- ia(gid)["rbarD"]
expect_equivalent(bit.res, gid.res)
})
test_that("win.ia knows the batman theme", {
skip_on_cran()
set.seed(999)
x <- glSim(n.ind = 10, n.snp.nonstruc = 2.5e2, n.snp.struc = 2.5e2, ploidy = 2)
position(x) <- sort(sample(5e3, 5e2))
res <- win.ia(x, window = 325L, min.snps = 100L, quiet = TRUE)
expect_true(all(is.na(res)))
# NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
# BATMAN!
})
test_that("samp.ia works",{
skip_on_cran()
RNGversion("3.5.0")
set.seed(999)
x <- glSim(n.ind = 10, n.snp.nonstruc = 5e2, n.snp.struc = 5e2, ploidy = 2)
position(x) <- sort(sample(1e4, 1e3))
set.seed(900)
pos.res <- samp.ia(x, n.snp = 20, reps = 2, quiet = TRUE)
expect_equivalent(pos.res, c(0.0754028380744677, 0.0178846504949451))
# Sampling is agnostic to position
position(x) <- NULL
set.seed(900)
nopos.res <- samp.ia(x, n.snp = 20, reps = 2, quiet = TRUE)
expect_equivalent(nopos.res, pos.res)
RNGversion(paste(R.version[c('major', 'minor')], collapse = "."))
})
test_that("poppr_has_parallel returns something logical", {
expect_is(poppr_has_parallel(), "logical")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.