Commit | Line | Data |
---|---|---|
6ad3f3fd BA |
1 | context("computeMedoidsIndices") |
2 | ||
3 | test_that("serialization + getDataInFile retrieve original data / from matrix", | |
4 | { | |
5 | data_bin_file = "/tmp/epclust_test_m.bin" | |
6 | unlink(data_bin_file) | |
7 | ||
8 | #dataset 200 lignes / 30 columns | |
9 | data_ascii = matrix(runif(200*30,-10,10),ncol=30) | |
10 | nbytes = 4 #lead to a precision of 1e-7 / 1e-8 | |
11 | endian = "little" | |
12 | ||
13 | #Simulate serialization in one single call | |
14 | binarize(data_ascii, data_bin_file, 500, ",", nbytes, endian) | |
15 | expect_equal(file.info(data_bin_file)$size, length(data_ascii)*nbytes+8) | |
16 | for (indices in list(c(1,3,5), 3:13, c(5,20,50), c(75,130:135), 196:200)) | |
17 | { | |
18 | data_lines = getDataInFile(indices, data_bin_file, nbytes, endian) | |
19 | expect_equal(data_lines, data_ascii[indices,], tolerance=1e-6) | |
20 | } | |
21 | unlink(data_bin_file) | |
22 | ||
23 | #...in several calls (last call complete, next call NULL) | |
24 | for (i in 1:20) | |
25 | binarize(data_ascii[((i-1)*10+1):(i*10),], data_bin_file, 20, ",", nbytes, endian) | |
26 | expect_equal(file.info(data_bin_file)$size, length(data_ascii)*nbytes+8) | |
27 | for (indices in list(c(1,3,5), 3:13, c(5,20,50), c(75,130:135), 196:200)) | |
28 | { | |
29 | data_lines = getDataInFile(indices, data_bin_file, nbytes, endian) | |
30 | expect_equal(data_lines, data_ascii[indices,], tolerance=1e-6) | |
31 | } | |
32 | unlink(data_bin_file) | |
33 | }) | |
34 | ||
35 | TODO: test computeMedoids + filter | |
36 | # #R-equivalent, requiring a matrix (thus potentially breaking "fit-in-memory" hope) | |
37 | # mat_meds = medoids[,] | |
38 | # mi = rep(NA,nb_series) | |
39 | # for (i in 1:nb_series) | |
40 | # mi[i] <- which.min( rowSums( sweep(mat_meds, 2, ref_series[i,], '-')^2 ) ) | |
41 | # rm(mat_meds); gc() | |
42 |