diff --git a/NAMESPACE b/NAMESPACE index 998b1cbf2..6bc64584f 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -5,20 +5,16 @@ S3method(as.data.frame,multi_epidist) S3method(as.function,epidist) S3method(as_epidist,data.frame) S3method(cdf,epidist) -S3method(cdf,vb_epidist) S3method(convert_params_to_summary_stats,character) S3method(convert_params_to_summary_stats,epidist) S3method(convert_summary_stats_to_params,character) S3method(convert_summary_stats_to_params,epidist) S3method(density,epidist) -S3method(density,vb_epidist) S3method(discretise,default) S3method(discretise,epidist) S3method(family,epidist) S3method(format,epidist) -S3method(format,vb_epidist) S3method(generate,epidist) -S3method(generate,vb_epidist) S3method(get_citation,epidist) S3method(get_citation,multi_epidist) S3method(get_parameters,epidist) @@ -29,9 +25,7 @@ S3method(plot,epidist) S3method(print,epidist) S3method(print,multi_epidist) S3method(print,parameter_tbl) -S3method(print,vb_epidist) S3method(quantile,epidist) -S3method(quantile,vb_epidist) S3method(tbl_sum,p_tbl) export(as_epidist) export(calc_disc_dist_quantile) @@ -59,11 +53,8 @@ export(is_epidist_params) export(is_parameterised) export(is_parameterized) export(is_truncated) -export(is_vb_epidist) export(parameter_tbl) export(validate_epidist) -export(validate_vb_epidist) -export(vb_epidist) importFrom(distributional,cdf) importFrom(distributional,generate) importFrom(pillar,tbl_sum) diff --git a/R/epidist.R b/R/epidist.R index 4c90520b0..e0004009b 100644 --- a/R/epidist.R +++ b/R/epidist.R @@ -371,12 +371,6 @@ validate_epidist <- function(epidist) { #' Print method for `` class #' #' @param x An `` object. -#' @param header Boolean `logical` determining whether the header (first part) -#' of the print method is printed. This is used internally for plotting the -#' `` class. -#' @param vb A `character` string containing whether it is the intrinsic -#' (`"Intrinsic"`) or extrinsic (`"Extrinsic"`) distribution for vector-borne -#' diseases. #' @param ... [dots] Extra arguments to be passed to the method. #' #' @return Invisibly returns an ``. Called for side-effects. @@ -390,18 +384,13 @@ validate_epidist <- function(epidist) { #' prob_distribution_params = c(shape = 1, scale = 1) #' ) #' epidist -print.epidist <- function(x, header = TRUE, vb = NULL, ...) { - format(x, header = header, vb = vb, ...) +print.epidist <- function(x, ...) { + format(x, ...) } #' Format method for `` class #' #' @inheritParams print.epidist -#' @param header Boolean logical determining whether the header (first part) of -#' the print method is printed. This is used internally for plotting the -#' vb_epidist class -#' @param vb Either NULL (default) or a character string of either "Intrinsic" -#' or "Extrinsic" which is used internally for plotting the vb_epidist class #' #' @return Invisibly returns an ``. Called for printing side-effects. #' @export @@ -414,8 +403,7 @@ print.epidist <- function(x, header = TRUE, vb = NULL, ...) { #' prob_distribution_params = c(shape = 1, scale = 1) #' ) #' format(epidist) -format.epidist <- function(x, header = TRUE, vb = NULL, ...) { - if (header) { +format.epidist <- function(x, ...) { writeLines( c( sprintf("Disease: %s", x$disease), @@ -424,11 +412,6 @@ format.epidist <- function(x, header = TRUE, vb = NULL, ...) { sprintf("Study: %s", format(x$citation)) ) ) - } - - if (!is.null(vb)) { - writeLines(sprintf(vb)) - } if (is.object(x$prob_dist) || is.character(x$prob_dist)) { dist_string <- ifelse( @@ -496,8 +479,7 @@ is_epidist <- function(x) { inherits(x, "epidist") } -#' PDF, CDF, PMF, quantiles and random number generation for `` and -#' `` objects +#' PDF, CDF, PMF, quantiles and random number generation for `` objects #' #' @description The `` object holds a probability distribution which #' can either be a continuous or discrete distribution. These are the density, @@ -505,7 +487,7 @@ is_epidist <- function(x) { #' These operate on any distribution that can be included in an `` #' object. #' -#' @param x An `` or `` object. +#' @param x An `` object. #' @param at The quantiles to evaluate at. #' @param q The quantiles to evaluate at. #' @param p The probabilities to evaluate at. @@ -513,9 +495,7 @@ is_epidist <- function(x) { #' @inheritParams print.epidist #' @inheritParams distributional::cdf #' -#' @return If an `` object is given a numeric vector is returned, if an -#' `` object is given a list of two elements each with a numeric -#' vector is returned. +#' @return `numeric` vector. #' #' @name epidist_distribution_functions #' @keywords epidist_distribution_functions @@ -533,32 +513,6 @@ is_epidist <- function(x) { #' distributional::cdf(edist, q = 1) #' stats::quantile(edist, p = 0.2) #' distributional::generate(edist, times = 10) -#' -#' vb_edist <- vb_epidist( -#' intrinsic_epidist = epidist( -#' disease = "dengue", -#' epi_dist = "incubation_period", -#' prob_distribution = "gamma", -#' prob_distribution_params = c(shape = 1, scale = 1), -#' metadata = create_epidist_metadata(transmission_mode = "vector_borne") -#' ), -#' extrinsic_epidist = epidist( -#' disease = "dengue", -#' epi_dist = "incubation_period", -#' prob_distribution = "gamma", -#' prob_distribution_params = c(shape = 1, scale = 1), -#' metadata = create_epidist_metadata( -#' transmission_mode = "vector_borne", -#' extrinsic = TRUE -#' ) -#' ) -#' ) -#' -#' # example of each distribution method for an `vb_epidist` object -#' stats::density(vb_edist, at = 1) -#' distributional::cdf(vb_edist, q = 1) -#' stats::quantile(vb_edist, p = 0.2) -#' distributional::generate(vb_edist, times = 10) NULL #' @rdname epidist_distribution_functions diff --git a/R/vb_epidist.R b/R/vb_epidist.R deleted file mode 100644 index d58c36c46..000000000 --- a/R/vb_epidist.R +++ /dev/null @@ -1,285 +0,0 @@ -#' Constructor for `` class -#' -#' @description Create an `` object by binding two -#' `` objects and assigning the `` class. -#' -#' @inheritParams vb_epidist -#' -#' @return `` object -#' @keywords internal -new_vb_epidist <- function(intrinsic_epidist, - extrinsic_epidist) { - # input checking is done in epidist() - - # return vb_epidist object - structure( - list( - intrinsic = intrinsic_epidist, - extrinsic = extrinsic_epidist - ), - class = "vb_epidist" - ) -} - -#' Create a `` object -#' -#' @param intrinsic_epidist An `` object. -#' @param extrinsic_epidist An `` object. -#' -#' @description The `` class is an extension of the -#' `` class (although not a subclass of ``). It is is -#' used to store epidemiological parameters for vector-borne diseases. -#' It has the same methods (`print()`, `format()`, `plot()`, `generate()`, -#' `cdf()`, `density()`, `quantile()`) as the `` class and -#' therefore they are used identically. -#' -#' @details The `` objects should contain metadata -#' (`epidist$metadata`) indicating it is a vector-borne disease -#' (`epidist$metadata$transmission_mode = "vector_borne"`) and the extrinsic -#' distribution should indicate in the metadata that it is the extrinsic -#' distribution (`epidist$metadata$extrinsic = TRUE`). If these two aspects -#' are not given the construction of the class will throw a warning. -#' -#' @seealso [epidist()] -#' -#' @return `` object -#' @export -#' -#' @examples -#' vb <- vb_epidist( -#' intrinsic_epidist = epidist( -#' disease = "dengue", -#' pathogen = "dengue_virus", -#' epi_dist = "incubation_period", -#' prob_distribution = "gamma", -#' prob_distribution_params = c(shape = 1, scale = 1), -#' metadata = create_epidist_metadata( -#' transmission_mode = "vector_borne", -#' extrinsic = FALSE -#' ) -#' ), -#' extrinsic_epidist = epidist( -#' disease = "dengue", -#' pathogen = "dengue_virus", -#' epi_dist = "incubation_period", -#' prob_distribution = "gamma", -#' prob_distribution_params = c(shape = 2, scale = 2), -#' metadata = create_epidist_metadata( -#' transmission_mode = "vector_borne", -#' extrinsic = TRUE -#' ) -#' ) -#' ) -vb_epidist <- function(intrinsic_epidist, - extrinsic_epidist) { - # check input - validate_epidist(intrinsic_epidist) - validate_epidist(extrinsic_epidist) - - # call vb_epidist constructor - vb_epidist <- new_vb_epidist( - intrinsic_epidist = intrinsic_epidist, - extrinsic_epidist = extrinsic_epidist - ) - - # call epidist validator - validate_vb_epidist(vb_epidist) - - # return vb_epidist object - vb_epidist -} - -#' Validator for `` class -#' -#' @param vb_epidist A `` object -#' -#' @return Invisibly returns a ``. Called for side-effects (errors -#' when invalid `` object is provided). -#' @export -validate_vb_epidist <- function(vb_epidist) { - if (!is_vb_epidist(vb_epidist)) { - stop("Object should be of class vb_epidist", call. = FALSE) - } - - stopifnot( - "diseases in intrinsic and extrinsic distribution are different" = - identical( - vb_epidist$intrinsic$disease, - vb_epidist$extrinsic$disease - ), - "epi distribution in intrinsic and extrinsic distributions are different" = - identical( - vb_epidist$intrinsic$epi_dist, - vb_epidist$extrinsic$epi_dist - ) - ) - - intrinsic_vb <- grepl( - pattern = "vector_borne", - x = vb_epidist$intrinsic$metadata$transmission_mode, - ignore.case = TRUE - ) - extrinsic_vb <- grepl( - pattern = "vector_borne", - x = vb_epidist$extrinsic$metadata$transmission_mode, - ignore.case = TRUE - ) - if (isFALSE(intrinsic_vb) || isFALSE(extrinsic_vb)) { - warning( - "Distributions in vb_epidist class are not vector-borne. Check metadata", - call. = FALSE - ) - } - - if (isTRUE(vb_epidist$intrinsic$metadata$extrinsic)) { - warning( - "The intrinsic distribution is specified extrinsic. Check metadata", - call. = FALSE - ) - } - - if (!isTRUE(vb_epidist$extrinsic$metadata$extrinsic)) { - warning( - "The extrinsic distribution is not specified extrinsic. Check metadata", - call. = FALSE - ) - } - - lapply(vb_epidist, validate_epidist) - - invisible(vb_epidist) -} - -#' Print method for `` class -#' -#' @param x A `` object. -#' @inheritParams print.epidist -#' -#' @return Invisibly returns a ``. Called for printing -#' side-effects. -#' @export -#' -#' @examples -#' vb_epidist <- vb_epidist( -#' intrinsic_epidist = epidist( -#' disease = "ebola", -#' epi_dist = "incubation_period", -#' prob_distribution = "gamma", -#' prob_distribution_params = c(shape = 1, scale = 1) -#' ), -#' extrinsic_epidist = epidist( -#' disease = "ebola", -#' epi_dist = "incubation_period", -#' prob_distribution = "gamma", -#' prob_distribution_params = c(shape = 1, scale = 1) -#' ) -#' ) -#' vb_epidist -print.vb_epidist <- function(x, ...) { - format(x, ...) -} - -#' Format method for `` class -#' -#' @inheritParams print.vb_epidist -#' -#' @inherit print.vb_epidist return -#' @export -#' -#' @examples -#' vb_epidist <- vb_epidist( -#' intrinsic_epidist = epidist( -#' disease = "ebola", -#' epi_dist = "incubation_period", -#' prob_distribution = "gamma", -#' prob_distribution_params = c(shape = 1, scale = 1) -#' ), -#' extrinsic_epidist = epidist( -#' disease = "ebola", -#' epi_dist = "incubation_period", -#' prob_distribution = "gamma", -#' prob_distribution_params = c(shape = 1, scale = 1) -#' ) -#' ) -#' format(vb_epidist) -format.vb_epidist <- function(x, ...) { - # use epidist printing function - print(x$intrinsic, header = TRUE, vb = "\n \n", ...) - print(x$extrinsic, header = FALSE, vb = "\n \n", ...) - - invisible(x) -} - -#' Check object is a `` -#' -#' @inheritParams is_epidist -#' -#' @return A boolean `logical`, `TRUE` if the object is a `` and -#' `FALSE` if not. -#' @export -#' -#' @examples -#' vb_edist <- vb_epidist( -#' intrinsic_epidist = epidist( -#' disease = "dengue", -#' epi_dist = "incubation_period", -#' prob_distribution = "gamma", -#' prob_distribution_params = c(shape = 1, scale = 1), -#' metadata = create_epidist_metadata(transmission_mode = "vector_borne") -#' ), -#' extrinsic_epidist = epidist( -#' disease = "dengue", -#' epi_dist = "incubation_period", -#' prob_distribution = "gamma", -#' prob_distribution_params = c(shape = 1, scale = 1), -#' metadata = create_epidist_metadata( -#' transmission_mode = "vector_borne", -#' extrinsic = TRUE -#' ) -#' ) -#' ) -#' -#' is_vb_epidist(vb_edist) -is_vb_epidist <- function(x) { - inherits(x, "vb_epidist") -} - -#' @rdname epidist_distribution_functions -#' @export -density.vb_epidist <- function(x, at, ...) { - # call epidist density method - list( - intrinsic = stats::density(x$intrinsic, at = at, ...), - extrinsic = stats::density(x$extrinsic, at = at, ...) - ) -} - -#' @rdname epidist_distribution_functions -#' @export -cdf.vb_epidist <- function(x, q, ...) { - # call epidist density method - list( - intrinsic = distributional::cdf(x$intrinsic, q = q, ...), - extrinsic = distributional::cdf(x$extrinsic, q = q, ...) - ) -} - -#' @rdname epidist_distribution_functions -#' @export -quantile.vb_epidist <- function(x, p, ...) { - # call epidist quantile method - list( - intrinsic = quantile(x$intrinsic, p = p, ...), - extrinsic = quantile(x$extrinsic, p = p, ...) - ) -} - -#' @rdname epidist_distribution_functions -#' @export -generate.vb_epidist <- function(x, times, ...) { - # call epidist generate method - list( - intrinsic = distributional::generate(x$intrinsic, times = times, ...), - extrinsic = distributional::generate(x$extrinsic, times = times, ...) - ) -} diff --git a/README.Rmd b/README.Rmd index 3e5639fa9..95346bf1d 100644 --- a/README.Rmd +++ b/README.Rmd @@ -24,7 +24,7 @@ knitr::opts_chunk$set( [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.11110881.svg)](https://doi.org/10.5281/zenodo.11110881) -`{epiparameter}` is an `R` package that contains a library of epidemiological parameters for infectious diseases and a set of classes and helper functions to work with the data. It also includes functions to extract and convert parameters from reported summary statistics. +`{epiparameter}` is an `R` package that contains a library of epidemiological parameters for infectious diseases as well as classes and helper functions to work with the data. It also includes functions to extract and convert parameters from reported summary statistics. `{epiparameter}` is developed at the [Centre for the Mathematical Modelling of Infectious Diseases](https://www.lshtm.ac.uk/research/centres/centre-mathematical-modelling-infectious-diseases) at the [London School of Hygiene and Tropical Medicine](https://www.lshtm.ac.uk/) as part of [Epiverse-TRACE](https://data.org/initiatives/epiverse/). @@ -58,7 +58,7 @@ epidists <- epidist_db() epidists ``` -This results a list of database entries. Each entry of the library is an `` object. +This results in a list of database entries. Each entry of the library is an `` object. Alternatively, the library of epiparameters can be viewed as a vignette locally (`vignette("database", package = "epiparameter")`) or on the [{epiparameter} website](https://epiverse-trace.github.io/epiparameter/articles/database.html). diff --git a/README.md b/README.md index 6a21eeb08..3d3b814b4 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ experimental](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](h `{epiparameter}` is an `R` package that contains a library of -epidemiological parameters for infectious diseases and a set of classes +epidemiological parameters for infectious diseases as well as classes and helper functions to work with the data. It also includes functions to extract and convert parameters from reported summary statistics. @@ -112,8 +112,8 @@ epidists #> # ℹ Explore database online at: https://epiverse-trace.github.io/epiparameter/articles/database.html ``` -This results a list of database entries. Each entry of the library is an -`` object. +This results in a list of database entries. Each entry of the library is +an `` object. Alternatively, the library of epiparameters can be viewed as a vignette locally (`vignette("database", package = "epiparameter")`) or on the diff --git a/_pkgdown.yml b/_pkgdown.yml index 58c9af8b6..54d06da5e 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -21,14 +21,6 @@ reference: - validate_epidist - ends_with("\\.multi_epidist") - - subtitle: vb_epdist object - desc: Class constructor, validator, and methods - contents: - - vb_epidist - - ends_with("\\.vb_epidist") - - -has_keyword("epidist_distribution_functions") - - validate_vb_epidist - - title: Accessors desc: Get data from epi classes contents: @@ -57,7 +49,7 @@ reference: - parameter_tbl - title: Distribution functions - desc: Functions for operating on `` and `` distributions + desc: Functions for operating on `` distributions contents: - cdf.epidist diff --git a/inst/WORDLIST b/inst/WORDLIST index 4a91e4dc4..fec184ee7 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -50,5 +50,4 @@ stochasticity th un unparameterised -vb zenodo \ No newline at end of file diff --git a/man/epidist_distribution_functions.Rd b/man/epidist_distribution_functions.Rd index 54ab059cc..c95707312 100644 --- a/man/epidist_distribution_functions.Rd +++ b/man/epidist_distribution_functions.Rd @@ -1,17 +1,12 @@ % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/epidist.R, R/vb_epidist.R +% Please edit documentation in R/epidist.R \name{epidist_distribution_functions} \alias{epidist_distribution_functions} \alias{density.epidist} \alias{cdf.epidist} \alias{quantile.epidist} \alias{generate.epidist} -\alias{density.vb_epidist} -\alias{cdf.vb_epidist} -\alias{quantile.vb_epidist} -\alias{generate.vb_epidist} -\title{PDF, CDF, PMF, quantiles and random number generation for \verb{} and -\verb{} objects} +\title{PDF, CDF, PMF, quantiles and random number generation for \verb{} objects} \usage{ \method{density}{epidist}(x, at, ...) @@ -20,17 +15,9 @@ \method{quantile}{epidist}(x, p, ...) \method{generate}{epidist}(x, times, ...) - -\method{density}{vb_epidist}(x, at, ...) - -\method{cdf}{vb_epidist}(x, q, ...) - -\method{quantile}{vb_epidist}(x, p, ...) - -\method{generate}{vb_epidist}(x, times, ...) } \arguments{ -\item{x}{An \verb{} or \verb{} object.} +\item{x}{An \verb{} object.} \item{at}{The quantiles to evaluate at.} @@ -45,9 +32,7 @@ \item{times}{The number of random samples.} } \value{ -If an \verb{} object is given a numeric vector is returned, if an -\verb{} object is given a list of two elements each with a numeric -vector is returned. +\code{numeric} vector. } \description{ The \verb{} object holds a probability distribution which @@ -69,31 +54,5 @@ stats::density(edist, at = 1) distributional::cdf(edist, q = 1) stats::quantile(edist, p = 0.2) distributional::generate(edist, times = 10) - -vb_edist <- vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) -) - -# example of each distribution method for an `vb_epidist` object -stats::density(vb_edist, at = 1) -distributional::cdf(vb_edist, q = 1) -stats::quantile(vb_edist, p = 0.2) -distributional::generate(vb_edist, times = 10) } \keyword{epidist_distribution_functions} diff --git a/man/format.epidist.Rd b/man/format.epidist.Rd index e8e8c283a..2403893b6 100644 --- a/man/format.epidist.Rd +++ b/man/format.epidist.Rd @@ -4,18 +4,11 @@ \alias{format.epidist} \title{Format method for \verb{} class} \usage{ -\method{format}{epidist}(x, header = TRUE, vb = NULL, ...) +\method{format}{epidist}(x, ...) } \arguments{ \item{x}{An \verb{} object.} -\item{header}{Boolean logical determining whether the header (first part) of -the print method is printed. This is used internally for plotting the -vb_epidist class} - -\item{vb}{Either NULL (default) or a character string of either "Intrinsic" -or "Extrinsic" which is used internally for plotting the vb_epidist class} - \item{...}{\link{dots} Extra arguments to be passed to the method.} } \value{ diff --git a/man/format.vb_epidist.Rd b/man/format.vb_epidist.Rd deleted file mode 100644 index 0a21d83e7..000000000 --- a/man/format.vb_epidist.Rd +++ /dev/null @@ -1,37 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/vb_epidist.R -\name{format.vb_epidist} -\alias{format.vb_epidist} -\title{Format method for \verb{} class} -\usage{ -\method{format}{vb_epidist}(x, ...) -} -\arguments{ -\item{x}{A \verb{} object.} - -\item{...}{\link{dots} Extra arguments to be passed to the method.} -} -\value{ -Invisibly returns a \verb{}. Called for printing -side-effects. -} -\description{ -Format method for \verb{} class -} -\examples{ -vb_epidist <- vb_epidist( - intrinsic_epidist = epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1) - ), - extrinsic_epidist = epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1) - ) -) -format(vb_epidist) -} diff --git a/man/is_vb_epidist.Rd b/man/is_vb_epidist.Rd deleted file mode 100644 index 79b8fd7b3..000000000 --- a/man/is_vb_epidist.Rd +++ /dev/null @@ -1,41 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/vb_epidist.R -\name{is_vb_epidist} -\alias{is_vb_epidist} -\title{Check object is a \verb{}} -\usage{ -is_vb_epidist(x) -} -\arguments{ -\item{x}{An \R object.} -} -\value{ -A boolean \code{logical}, \code{TRUE} if the object is a \verb{} and -\code{FALSE} if not. -} -\description{ -Check object is a \verb{} -} -\examples{ -vb_edist <- vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) -) - -is_vb_epidist(vb_edist) -} diff --git a/man/new_vb_epidist.Rd b/man/new_vb_epidist.Rd deleted file mode 100644 index 7650e5575..000000000 --- a/man/new_vb_epidist.Rd +++ /dev/null @@ -1,21 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/vb_epidist.R -\name{new_vb_epidist} -\alias{new_vb_epidist} -\title{Constructor for \verb{} class} -\usage{ -new_vb_epidist(intrinsic_epidist, extrinsic_epidist) -} -\arguments{ -\item{intrinsic_epidist}{An \verb{} object.} - -\item{extrinsic_epidist}{An \verb{} object.} -} -\value{ -\verb{} object -} -\description{ -Create an \verb{} object by binding two -\verb{} objects and assigning the \verb{} class. -} -\keyword{internal} diff --git a/man/print.epidist.Rd b/man/print.epidist.Rd index ac3ef6a6f..8ce721a8a 100644 --- a/man/print.epidist.Rd +++ b/man/print.epidist.Rd @@ -4,19 +4,11 @@ \alias{print.epidist} \title{Print method for \verb{} class} \usage{ -\method{print}{epidist}(x, header = TRUE, vb = NULL, ...) +\method{print}{epidist}(x, ...) } \arguments{ \item{x}{An \verb{} object.} -\item{header}{Boolean \code{logical} determining whether the header (first part) -of the print method is printed. This is used internally for plotting the -\verb{} class.} - -\item{vb}{A \code{character} string containing whether it is the intrinsic -(\code{"Intrinsic"}) or extrinsic (\code{"Extrinsic"}) distribution for vector-borne -diseases.} - \item{...}{\link{dots} Extra arguments to be passed to the method.} } \value{ diff --git a/man/print.vb_epidist.Rd b/man/print.vb_epidist.Rd deleted file mode 100644 index 4b0649f1a..000000000 --- a/man/print.vb_epidist.Rd +++ /dev/null @@ -1,37 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/vb_epidist.R -\name{print.vb_epidist} -\alias{print.vb_epidist} -\title{Print method for \verb{} class} -\usage{ -\method{print}{vb_epidist}(x, ...) -} -\arguments{ -\item{x}{A \verb{} object.} - -\item{...}{\link{dots} Extra arguments to be passed to the method.} -} -\value{ -Invisibly returns a \verb{}. Called for printing -side-effects. -} -\description{ -Print method for \verb{} class -} -\examples{ -vb_epidist <- vb_epidist( - intrinsic_epidist = epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1) - ), - extrinsic_epidist = epidist( - disease = "ebola", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1) - ) -) -vb_epidist -} diff --git a/man/validate_vb_epidist.Rd b/man/validate_vb_epidist.Rd deleted file mode 100644 index 994b144ad..000000000 --- a/man/validate_vb_epidist.Rd +++ /dev/null @@ -1,18 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/vb_epidist.R -\name{validate_vb_epidist} -\alias{validate_vb_epidist} -\title{Validator for \verb{} class} -\usage{ -validate_vb_epidist(vb_epidist) -} -\arguments{ -\item{vb_epidist}{A \verb{} object} -} -\value{ -Invisibly returns a \verb{}. Called for side-effects (errors -when invalid \verb{} object is provided). -} -\description{ -Validator for \verb{} class -} diff --git a/man/vb_epidist.Rd b/man/vb_epidist.Rd deleted file mode 100644 index 5fcc5ddc8..000000000 --- a/man/vb_epidist.Rd +++ /dev/null @@ -1,61 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/vb_epidist.R -\name{vb_epidist} -\alias{vb_epidist} -\title{Create a \verb{} object} -\usage{ -vb_epidist(intrinsic_epidist, extrinsic_epidist) -} -\arguments{ -\item{intrinsic_epidist}{An \verb{} object.} - -\item{extrinsic_epidist}{An \verb{} object.} -} -\value{ -\verb{} object -} -\description{ -The \verb{} class is an extension of the -\verb{} class (although not a subclass of \verb{}). It is is -used to store epidemiological parameters for vector-borne diseases. -It has the same methods (\code{print()}, \code{format()}, \code{plot()}, \code{generate()}, -\code{cdf()}, \code{density()}, \code{quantile()}) as the \verb{} class and -therefore they are used identically. -} -\details{ -The \verb{} objects should contain metadata -(\code{epidist$metadata}) indicating it is a vector-borne disease -(\code{epidist$metadata$transmission_mode = "vector_borne"}) and the extrinsic -distribution should indicate in the metadata that it is the extrinsic -distribution (\code{epidist$metadata$extrinsic = TRUE}). If these two aspects -are not given the construction of the class will throw a warning. -} -\examples{ -vb <- vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - pathogen = "dengue_virus", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = FALSE - ) - ), - extrinsic_epidist = epidist( - disease = "dengue", - pathogen = "dengue_virus", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) -) -} -\seealso{ -\code{\link[=epidist]{epidist()}} -} diff --git a/tests/testthat/_snaps/vb_epidist.md b/tests/testthat/_snaps/vb_epidist.md deleted file mode 100644 index 1342e3a77..000000000 --- a/tests/testthat/_snaps/vb_epidist.md +++ /dev/null @@ -1,118 +0,0 @@ -# vb_epidist print & format method works as expected - - Code - dengue_dist <- suppressMessages(vb_epidist(intrinsic_epidist = epidist(disease = "dengue", - epi_dist = "incubation", prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), metadata = create_epidist_metadata( - transmission_mode = "vector_borne")), extrinsic_epidist = epidist(disease = "dengue", - epi_dist = "incubation", prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), metadata = create_epidist_metadata( - transmission_mode = "vector_borne", extrinsic = TRUE)))) - ---- - - Code - print(dengue_dist) - Output - Disease: dengue - Pathogen: NA - Epi Distribution: incubation - Study: (????). "No citation." - - - - Distribution: gamma - Parameters: - shape: 1.000 - scale: 1.000 - - - - Distribution: gamma - Parameters: - shape: 2.000 - scale: 2.000 - ---- - - Code - format(dengue_dist) - Output - Disease: dengue - Pathogen: NA - Epi Distribution: incubation - Study: (????). "No citation." - - - - Distribution: gamma - Parameters: - shape: 1.000 - scale: 1.000 - - - - Distribution: gamma - Parameters: - shape: 2.000 - scale: 2.000 - ---- - - Code - dengue_dist <- suppressMessages(vb_epidist(intrinsic_epidist = epidist(disease = "dengue", - epi_dist = "incubation", prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), metadata = create_epidist_metadata( - transmission_mode = "vector_borne"), discretise = TRUE), extrinsic_epidist = epidist( - disease = "dengue", epi_dist = "incubation", prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), metadata = create_epidist_metadata( - transmission_mode = "vector_borne", extrinsic = TRUE), discretise = TRUE))) - ---- - - Code - print(dengue_dist) - Output - Disease: dengue - Pathogen: NA - Epi Distribution: incubation - Study: (????). "No citation." - - - - Distribution: discrete gamma - Parameters: - shape: 1.000 - scale: 1.000 - - - - Distribution: discrete gamma - Parameters: - shape: 2.000 - scale: 2.000 - ---- - - Code - format(dengue_dist) - Output - Disease: dengue - Pathogen: NA - Epi Distribution: incubation - Study: (????). "No citation." - - - - Distribution: discrete gamma - Parameters: - shape: 1.000 - scale: 1.000 - - - - Distribution: discrete gamma - Parameters: - shape: 2.000 - scale: 2.000 - diff --git a/tests/testthat/test-vb_epidist.R b/tests/testthat/test-vb_epidist.R deleted file mode 100644 index feff93428..000000000 --- a/tests/testthat/test-vb_epidist.R +++ /dev/null @@ -1,1065 +0,0 @@ -test_that("vb_epidist works with minimal viable input", { - # message about missing citation suppressed - dengue_dist <- suppressMessages( - vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = FALSE - ) - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - ) - ) - - expect_s3_class(dengue_dist, class = "vb_epidist") - expect_length(dengue_dist, 2) - expect_named(dengue_dist, c("intrinsic", "extrinsic")) - expect_s3_class(dengue_dist$intrinsic, "epidist") - expect_s3_class(dengue_dist$extrinsic, "epidist") -}) - -test_that("vb_epidist works with all arguements set", { - # message about missing citation suppressed - dengue_dist <- suppressMessages( - vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - pathogen = "dengue_virus", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - uncertainty = create_epidist_uncertainty(), - summary_stats = create_epidist_summary_stats(), - citation = create_epidist_citation(), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = FALSE - ), - method_assess = create_epidist_method_assess(), - discretise = FALSE, - truncation = NA, - notes = "No notes" - ), - extrinsic_epidist = epidist( - disease = "dengue", - pathogen = "dengue_virus", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - uncertainty = create_epidist_uncertainty(), - summary_stats = create_epidist_summary_stats(), - citation = create_epidist_citation(), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ), - method_assess = create_epidist_method_assess(), - discretise = FALSE, - truncation = NA, - notes = "No notes" - ) - ) - ) - - expect_s3_class(dengue_dist, class = "vb_epidist") - expect_length(dengue_dist, 2) - expect_named(dengue_dist, c("intrinsic", "extrinsic")) - expect_s3_class(dengue_dist$intrinsic, "epidist") - expect_s3_class(dengue_dist$extrinsic, "epidist") -}) - -test_that("vb_epidist throws warning when expected", { - expect_warning( - suppressMessages( - vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "natural_human_to_human", - extrinsic = FALSE - ) - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - ) - ), - regexp = paste0( - "(Distributions in vb_epidist class are not vector-borne)" - ) - ) - - expect_warning( - suppressMessages( - vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = FALSE - ) - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "natural_human_to_human", - extrinsic = TRUE - ) - ) - ) - ), - regexp = paste0( - "(Distributions in vb_epidist class are not vector-borne)" - ) - ) - - expect_warning( - suppressMessages( - vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = FALSE - ) - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = FALSE - ) - ) - ) - ), - regexp = paste0( - "(The extrinsic distribution is not specified extrinsic)" - ) - ) - - expect_warning( - suppressMessages( - vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - ) - ), - regexp = paste0( - "(The intrinsic distribution is specified extrinsic)" - ) - ) -}) - -test_that("vb_epidist fails as expected", { - expect_error( - suppressMessages( - vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = FALSE - ) - ), - extrinsic_epidist = epidist( - disease = "chikungunya", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - ) - ), - regexp = "diseases in intrinsic and extrinsic distribution are different" - ) - - expect_error( - suppressMessages( - vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = FALSE - ) - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "serial_interval", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - ) - ), - regexp = "(epi distribution in intrinsic and extrinsic distributions)" - ) -}) - -test_that("validate_vb_epidist fails as expected with input class", { - expect_error( - validate_vb_epidist(vb_epidist = 1), - regexp = "Object should be of class vb_epidist" - ) -}) - -test_that("vb_epidist print & format method works as expected", { - expect_snapshot( - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - ) - - expect_output(print(dengue_dist)) - expect_snapshot(print(dengue_dist)) - - expect_output(format(dengue_dist)) - expect_snapshot(format(dengue_dist)) - - expect_snapshot( - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne"), - discretise = TRUE - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ), - discretise = TRUE - ) - )) - ) - - expect_output(print(dengue_dist)) - expect_snapshot(print(dengue_dist)) - - expect_output(format(dengue_dist)) - expect_snapshot(format(dengue_dist)) -}) - -test_that("density works as expected on continuous vb_epidist object", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - - res <- stats::density(dengue_dist, at = 0.5) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) - - res <- stats::density(dengue_dist, at = 0) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) - - res <- stats::density(dengue_dist, at = 1.5) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) - - res <- stats::density(dengue_dist, at = 10) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) -}) - -test_that("density works as expected on discrete vb_epidist object", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne"), - discretise = TRUE - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ), - discretise = TRUE - ) - )) - - res <- stats::density(dengue_dist, at = 0.5) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) - - res <- stats::density(dengue_dist, at = 0) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) - - res <- stats::density(dengue_dist, at = 1.5) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) - - res <- stats::density(dengue_dist, at = 10) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) -}) - -test_that("density works as expected on continuous vb_epidist object with - vector input", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - res <- stats::density(dengue_dist, at = seq(0.1, 0.9, by = 0.1)) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_length(res$intrinsic, 9) - expect_length(res$extrinsic, 9) - expect_true(all(res$intrinsic >= 0)) - expect_true(all(res$extrinsic >= 0)) -}) - -test_that("density works as expected on discrete vb_epidist object with - vector input", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne"), - discretise = TRUE - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ), - discretise = TRUE - ) - )) - - res <- stats::density(dengue_dist, at = seq(0.1, 0.9, by = 0.1)) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_length(res$intrinsic, 9) - expect_length(res$extrinsic, 9) - expect_true(all(res$intrinsic >= 0)) - expect_true(all(res$extrinsic >= 0)) -}) - -test_that("cdf works as expected on continuous vb_epidist object", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - - res <- distributional::cdf(dengue_dist, q = 0.5) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_lte(res$intrinsic, 1) - expect_gte(res$extrinsic, 0) - expect_lte(res$extrinsic, 1) - - res <- distributional::cdf(dengue_dist, q = 0) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_lte(res$intrinsic, 1) - expect_gte(res$extrinsic, 0) - expect_lte(res$extrinsic, 1) - - res <- distributional::cdf(dengue_dist, q = 1.5) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_lte(res$intrinsic, 1) - expect_gte(res$extrinsic, 0) - expect_lte(res$extrinsic, 1) - - res <- distributional::cdf(dengue_dist, q = 10) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_lte(res$intrinsic, 1) - expect_gte(res$extrinsic, 0) - expect_lte(res$extrinsic, 1) -}) - -test_that("cdf works as expected on discrete vb_epidist object", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne"), - discretise = TRUE - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ), - discretise = TRUE - ) - )) - - res <- distributional::cdf(dengue_dist, q = 0.5) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_lte(res$intrinsic, 1) - expect_gte(res$extrinsic, 0) - expect_lte(res$extrinsic, 1) - - res <- distributional::cdf(dengue_dist, q = 0) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_lte(res$intrinsic, 1) - expect_gte(res$extrinsic, 0) - expect_lte(res$extrinsic, 1) - - res <- distributional::cdf(dengue_dist, q = 1.5) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_lte(res$intrinsic, 1) - expect_gte(res$extrinsic, 0) - expect_lte(res$extrinsic, 1) - - res <- distributional::cdf(dengue_dist, q = 10) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_lte(res$intrinsic, 1) - expect_gte(res$extrinsic, 0) - expect_lte(res$extrinsic, 1) -}) - -test_that("cdf works as expected on continuous vb_epidist object with - vector input", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - - res <- distributional::cdf(dengue_dist, q = seq(0.1, 0.9, by = 0.1)) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_length(res$intrinsic, 9) - expect_length(res$extrinsic, 9) - expect_true(all(res$intrinsic >= 0)) - expect_true(all(res$intrinsic <= 1)) - expect_true(all(res$extrinsic >= 0)) - expect_true(all(res$extrinsic <= 1)) -}) - -test_that("cdf works as expected on discrete vb_epidist object with - vector input", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne"), - discretise = TRUE - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ), - discretise = TRUE - ) - )) - - res <- distributional::cdf(dengue_dist, q = seq(0.1, 0.9, by = 0.1)) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_length(res$intrinsic, 9) - expect_length(res$extrinsic, 9) - expect_true(all(res$intrinsic >= 0)) - expect_true(all(res$intrinsic <= 1)) - expect_true(all(res$extrinsic >= 0)) - expect_true(all(res$extrinsic <= 1)) -}) - -test_that("quantile works as expected on continuous vb_epidist object", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - - res <- quantile(dengue_dist, p = 0.5) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) - - res <- quantile(dengue_dist, p = 0) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) - - res <- quantile(dengue_dist, p = 1) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) -}) - -test_that("quantile works as expected on discrete epidist object", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne"), - discretise = TRUE - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ), - discretise = TRUE - ) - )) - - res <- quantile(dengue_dist, p = 0.5) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) - - res <- quantile(dengue_dist, p = 0) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) - - res <- quantile(dengue_dist, p = 1) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) -}) - -test_that("quantile works as expected on continuous vb_epidist object with - vector input", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - - res <- quantile(dengue_dist, p = seq(0.1, 0.9, by = 0.1)) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_true(all(res$intrinsic >= 0)) - expect_true(all(res$extrinsic >= 0)) -}) - -test_that("quantile works as expected on discrete vb_epidist object with - vector input", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne"), - discretise = TRUE - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ), - discretise = TRUE - ) - )) - - res <- quantile(dengue_dist, p = seq(0.1, 0.9, by = 0.1)) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_true(all(res$intrinsic >= 0)) - expect_true(all(res$extrinsic >= 0)) -}) - -test_that("generate works as expected on continuous vb_epidist object", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - - res <- distributional::generate(dengue_dist, times = 1) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) - - res <- distributional::generate(dengue_dist, times = 10) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_length(res$intrinsic, 10) - expect_length(res$extrinsic, 10) - expect_true(all(res$intrinsic >= 0)) - expect_true(all(res$extrinsic >= 0)) -}) - -test_that("generate works as expected on discrete vb_epidist object", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne"), - discretise = TRUE - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ), - discretise = TRUE - ) - )) - - res <- distributional::generate(dengue_dist, times = 1) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_gte(res$intrinsic, 0) - expect_gte(res$extrinsic, 0) - - res <- distributional::generate(dengue_dist, times = 10) - expect_length(res, 2) - expect_type(res, "list") - expect_type(res$intrinsic, "double") - expect_type(res$extrinsic, "double") - expect_length(res$intrinsic, 10) - expect_length(res$extrinsic, 10) - expect_true(all(res$intrinsic >= 0)) - expect_true(all(res$extrinsic >= 0)) -}) - -test_that("generate fails as expected on continuous vb_epidist object with - vector input", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - - expect_error(distributional::generate(dengue_dist, times = c(10, 15))) -}) - -test_that("generate fails as expected on discrete vb_epidist object with - vector input", { - # suppress messages about citation - dengue_dist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne"), - discretise = TRUE - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 2, scale = 2), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ), - discretise = TRUE - ) - )) - - expect_error(distributional::generate(dengue_dist, times = c(10, 15))) -}) - -test_that("is_vb_epidist returns TRUE when expected", { - # suppress message about citation - vb_edist <- suppressMessages(vb_epidist( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - - expect_true(is_vb_epidist(vb_edist)) -}) - -test_that("is_vb_epidist returns FALSE when expected", { - # suppress message about citation - vb_edist <- suppressMessages(list( - intrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata(transmission_mode = "vector_borne") - ), - extrinsic_epidist = epidist( - disease = "dengue", - epi_dist = "incubation_period", - prob_distribution = "gamma", - prob_distribution_params = c(shape = 1, scale = 1), - metadata = create_epidist_metadata( - transmission_mode = "vector_borne", - extrinsic = TRUE - ) - ) - )) - - expect_false(is_vb_epidist(vb_edist)) -})