unplugged-system/external/rappor/tests/gen_true_values_test.R

51 lines
1.2 KiB
R
Executable File

#!/usr/bin/Rscript
#
# gen_reports_test.R
source('analysis/R/util.R') # Log()
source('tests/gen_true_values.R') # module under test
library(RUnit)
TestGenerateTrueValues = function() {
num_clients <- 10
reports_per_client <- 2
num_cohorts <- 4
reports <- GenerateTrueValues('exp', 10, num_clients, reports_per_client,
num_cohorts)
print(reports)
# 10 clients, 2 reports per client
checkEquals(20, nrow(reports))
# 10 unique clients
checkEquals(10, length(unique(reports$client)))
# Whether a given client reports different values
reports_different_values <- rep(FALSE, num_clients)
for (c in 1:num_clients) {
my_reports <- reports[reports$client == c, ]
#Log("CLIENT %d", c)
#print(my_reports)
# If every report for this client isn't same, make note of it
if (length(unique(my_reports$value)) != 1) {
reports_different_values[[c]] <- TRUE
}
}
# At least one client should report different values. (Technically this
# could fail, but is unlikely with 10 clients).
checkTrue(any(reports_different_values))
checkEquals(num_cohorts, length(unique(reports$cohort)))
}
TestAll <- function(){
TestGenerateTrueValues()
}
TestAll()