Translated computeCounts() (#3)

This commit is contained in:
Waldir Leoncio 2022-07-28 11:16:59 +02:00
parent 40854fe253
commit 31ab81a215
2 changed files with 34 additions and 0 deletions

25
R/computeCounts.R Normal file
View file

@ -0,0 +1,25 @@
computeCounts <- function(cliques, separators, npops, PARTITION) {
ncliq <- size(cliques, 1)
nsep <- size(separators, 1)
cliqPartition <- zeros(ncliq, size(cliques, 2))
sepPartition <- zeros(nsep, size(separators, 2))
apuCliq <- find(cliques > 0)
apuSep <- find(separators > 0)
cliqPartition[apuCliq] <- PARTITION[cliques[apuCliq]]
sepPartition[apuSep] <- PARTITION[separators[apuSep]]
cliqcounts <- zeros(ncliq, npops)
for (i in 1:npops) {
cliqcounts[, i] <- rowSums(cliqPartition == i)
}
sepcounts <- zeros(nsep, npops)
for (i in 1:npops) {
sepcounts[, i] <- rowSums(sepPartition == i)
}
return(list(cliqcounts = cliqcounts, sepcounts = sepcounts))
}

View file

@ -0,0 +1,9 @@
context("Spatial mixture")
test_that("functions work with basic input", {
x <- c(1, 3, 0, 2)
y <- array(c(1, 3, 2, 4, 5, 7, 6, 8), c(2, 2, 2))
z <- computeCounts(x, 4, 5, y)
expect_equal(z$cliqcounts, t(c(1, 1, 1, 0, 0)))
expect_equal(z$sepcounts, t(c(0, 0, 0, 1, 0)))
})