tests/testthat/test-datamodel-methods.R

## 'make_list_cdm.dm_poibin' ------------------------------------------------------------

test_that("'make_list_cdm.dm_poibin' returns expected answer - no regions", {
    classif_vars <- fake_classif_vars(sex = FALSE)
    data <- classif_vars[-1, ]
    data$count <- 1.0
    data_model <- dm_poibin(data = data,
                            prob = 0.95,
                            nm_series = "immigration")
    ans <- make_list_cdm(data_model = data_model,
                         classif_vars = classif_vars)
    is_cl <- sapply(ans, is, "Rcpp_CdmNoregPoibin")
    expect_true(all(is_cl))
    unique_cg <- unique(classif_vars[c("cohort", "gender")])
    n_unique <- nrow(unique_cg)
    n_ans <- length(ans)
    expect_identical(n_unique, n_ans)
})

test_that("'make_list_cdm.dm_poibin' returns expected answer - with regions", {
    classif_vars <- fake_classif_vars(n_region = 2)
    data <- classif_vars[-1, ]
    data$count <- seq_len(nrow(data))
    data_model <- dm_poibin(data = data,
                            prob = 0.95,
                            nm_series = "immigration")
    ans <- make_list_cdm(data_model = data_model,
                             classif_vars = classif_vars)
    is_cl <- sapply(ans, is, "Rcpp_CdmWithregPoibin")
    expect_true(all(is_cl))
    unique_cg <- unique(classif_vars[c("cohort", "sex")])
    n_unique <- nrow(unique_cg)
    n_ans <- length(ans)
    expect_identical(n_unique, n_ans)
})


## Printing -------------------------------------------------------------------

test_that("'print.dm_poibin' gives class of object", {
    data <- fake_classif_vars()
    data$count <- seq_len(nrow(data))
    data_model <- dm_poibin(data = data,
                            prob = 0.95,
                            nm_series = "immigration")
    expect_output(print(data_model),
                  "Poisson-binomial mixture \\(poibin\\) data model")
})

test_that("'print.dm_exact' gives class of object", {
    data <- fake_classif_vars()
    data$count <- seq_len(nrow(data))
    data_model <- dm_exact(data = data,
                           nm_series = "births")
    expect_output(print(data_model),
                  "Exact data model")
})
    
ONSdigital/Bayesian-demographic-accounts documentation built on Jan. 10, 2022, 12:34 a.m.