test_that("C_uuid_v7 works", { # Generates correct number of UUIDs uuids <- .Call(beautils:::C_uuid_v7, 5L) expect_type(uuids, "character") expect_length(uuids, 5) # Check format (v7 has '7' at position 15) expect_true(all(grepl("^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", uuids))) }) test_that("C_uuid_v5 works", { ns <- "7ac1a295-ef95-4f7c-8a35-3eed97cb256d" names <- c("apple", "banana", "cherry") uuids <- .Call(beautils:::C_uuid_v5, ns, names) expect_type(uuids, "character") expect_length(uuids, 3) # Determinism check uuids2 <- .Call(beautils:::C_uuid_v5, ns, names) expect_equal(uuids, uuids2) # V5 format check (v5 has '5' at position 15) expect_true(all(grepl("^[0-9a-f]{8}-[0-9a-f]{4}-5[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$", uuids))) # Test with NA names_na <- c("apple", NA, "cherry") uuids_na <- .Call(beautils:::C_uuid_v5, ns, names_na) expect_true(is.na(uuids_na[2])) expect_false(is.na(uuids_na[1])) expect_false(is.na(uuids_na[3])) })