#' Copyright(c) 2017-2024 R. Mark Sharp
# This file is part of nprcgenekeepr
context("obfuscateId")
library(testthat)
library(stringi)
set_seed(10L)
test_that("obfuscateId creates new ID with expected size", {
id <- c("abc123", "george", "autumn")
obfuscatedId <- obfuscateId(id, 6L)
expect_length(obfuscatedId, 3L)
expect_true(all(stri_length(obfuscatedId) == 6L))
expect_length(id, length(unique(obfuscatedId)))
})
# this test is weak
test_that("obfuscateId does not create duplicates", { # this test is weak
id <- stri_c(1L:10000L)
obfuscatedId <- obfuscateId(id, 5L)
expect_length(obfuscatedId, 10000L)
expect_true(all(stri_length(obfuscatedId) == 5L))
expect_length(id, length(unique(obfuscatedId)))
})
test_that("obfuscateId fails when duplicates cannot be avoided", {
id <- stri_c(1L:10000L)
expect_error(obfuscateId(id, size = 2L))
})
test_that("obfuscateId replaces unknown ID with unknown IDs (start with 'U'", {
id <- c("U0001", "U123", "u001", "abc")
alias <- obfuscateId(id, size = 4L)
expect_true(all(stri_detect_regex(alias[1L:3L], "^U")))
expect_false(stri_detect_regex(alias[4L], "^U"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.