X-Git-Url: https://git.auder.net/?p=epclust.git;a=blobdiff_plain;f=epclust%2Ftests%2Ftestthat%2Ftest-assignMedoids.R;h=9b55d78d5029f716f1e56e38d0d7b7917ed8fe23;hp=0192563d48e431b278c69710ef9e33d33ffc0ddc;hb=282342bafdc9ff65c5df98c6e2304d63b33b9fb2;hpb=3c5a4b0880db63367a474a568e1322b3999932fe diff --git a/epclust/tests/testthat/test-assignMedoids.R b/epclust/tests/testthat/test-assignMedoids.R index 0192563..9b55d78 100644 --- a/epclust/tests/testthat/test-assignMedoids.R +++ b/epclust/tests/testthat/test-assignMedoids.R @@ -3,35 +3,17 @@ context("assignMedoids") test_that("assignMedoids behave as expected", { # Generate a gaussian mixture - n = 999 - L = 7 - medoids = cbind( rep(0,L), rep(-5,L), rep(5,L) ) + n <- 999 + L <- 7 + medoids <- cbind( rep(0,L), rep(-5,L), rep(5,L) ) # short series... - series = t( rbind( MASS::mvrnorm(n/3, medoids[,1], diag(L)), + require("MASS", quietly=TRUE) + series <- t( rbind( MASS::mvrnorm(n/3, medoids[,1], diag(L)), MASS::mvrnorm(n/3, medoids[,2], diag(L)), MASS::mvrnorm(n/3, medoids[,3], diag(L)) ) ) # With high probability, medoids indices should resemble 1,1,1,...,2,2,2,...,3,3,3,... - mi = epclust:::assignMedoids(medoids, series) - mi_ref = rep(1:3, each=n/3) + mi <- assignMedoids(series, medoids) + mi_ref <- rep(1:3, each=n/3) expect_lt( mean(mi != mi_ref), 0.01 ) - - # Now with a random matrix, compare with (~trusted) R version - series = matrix(runif(n*L, min=-7, max=7), nrow=L) - mi = epclust:::assignMedoids(medoids, series) - mi_ref = R_assignMedoids(medoids, series) - expect_equal(mi, mi_ref) }) - -# R-equivalent of , requiring a matrix -# (thus potentially breaking "fit-in-memory" hope) -R_assignMedoids <- function(medoids, series) -{ - nb_series = ncol(series) #series in columns - - mi = rep(NA,nb_series) - for (i in 1:nb_series) - mi[i] <- which.min( colSums( sweep(medoids, 1, series[,i], '-')^2 ) ) - - mi -}