test_that("createMockDuckdbOmopCdm creates OMOP 5.4 tables and 100 people", { skip_if_not_installed("duckdb") skip_if_not_installed("DBI") mock <- OdysseusCostModule::createMockDuckdbOmopCdm(nPersons = 100L, seed = 42L) expect_type(mock, "list") expect_true(DBI::dbIsValid(mock$connection)) on.exit(DBI::dbDisconnect(mock$connection, shutdown = TRUE), add = TRUE) expectedTables <- c( "cdm_source", "person", "observation_period", "visit_occurrence", "visit_detail", "condition_occurrence", "drug_exposure", "procedure_occurrence", "device_exposure", "measurement", "observation", "death", "note", "note_nlp", "specimen", "fact_relationship", "location", "care_site", "provider", "payer_plan_period", "cost", "drug_era", "dose_era", "condition_era", "metadata", "episode", "episode_event", "concept", "vocabulary", "domain", "concept_class", "concept_relationship", "relationship", "concept_synonym", "concept_ancestor", "source_to_concept_map", "drug_strength" ) dbTables <- DBI::dbListTables(mock$connection) expect_true(all(expectedTables %in% dbTables)) expect_true(all(expectedTables %in% mock$tableNames)) personCount <- DBI::dbGetQuery(mock$connection, "SELECT COUNT(*) AS n FROM person")$n[[1]] costCount <- DBI::dbGetQuery(mock$connection, "SELECT COUNT(*) AS n FROM cost")$n[[1]] expect_equal(as.integer(personCount), 100L) expect_equal(as.integer(costCount), 100L) })