Nothing
# ==================================================================================================
# setup
# ==================================================================================================
## Original objects in env
ols <- ls()
# ==================================================================================================
# split_parallel_symmetric in UTILS-utils.R
# ==================================================================================================
test_that("The indices for load balancing always cover the whole distance matrix.", {
## random test
set.seed(as.integer(Sys.time()))
for (i in seq_len(30L)) {
num_series <- round(runif(1L, 5, 100))
num_workers <- round(runif(1L, 3, 100))
info <- paste("#series = ", num_series, ", #workers = ", num_workers, collapse = "")
x <- data_reinterpolated[1L:num_series]
distmat <- matrix(0, num_series, num_series)
indices <- dtwclust:::split_parallel_symmetric(num_series, num_workers)
for (ids in indices) {
if (isTRUE(attr(ids, "trimat"))) {
## assign upper part of lower triangular
ul <- ids$ul
if (length(ul) > 1L)
distmat[ul,ul] <- base::as.matrix(do.call(
proxy::dist,
list(x = x[ul],
y = NULL,
method = "L2")
))
## assign lower part of lower triangular
ll <- ids$ll
if (length(ll) > 1L)
distmat[ll,ll] <- base::as.matrix(do.call(
proxy::dist,
list(x = x[ll],
y = NULL,
method = "L2")
))
} else {
rows <- attr(ids, "rows")
mat_chunk <- base::as.matrix(do.call(
proxy::dist,
list(x = x[rows],
y = x[ids],
method = "L2")
))
## assign matrix chunks
distmat[rows,ids] <- mat_chunk
distmat[ids,rows] <- t(mat_chunk)
}
}
diagonal_is_zero <- all.equal(diag(distmat), rep(0, num_series))
lt <- all(distmat[lower.tri(distmat)] > 0)
ut <- all(distmat[upper.tri(distmat)] > 0)
nondiagonal_is_nonzero <- lt & ut
expect_true(diagonal_is_zero, info = info)
expect_true(nondiagonal_is_nonzero, info = info)
}
})
# ==================================================================================================
# clean
# ==================================================================================================
rm(list = setdiff(ls(), ols))
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.