From 898c1f78af8afa898f93a392c4a5ec045d0c50d0 Mon Sep 17 00:00:00 2001 From: Rich FitzJohn Date: Tue, 11 Jul 2023 09:55:58 +0100 Subject: [PATCH 1/2] Implement str for pmcmc_samples objects Fixes #226 --- DESCRIPTION | 2 +- NAMESPACE | 1 + R/pmcmc_utils.R | 7 +++++++ tests/testthat/test-pmcmc.R | 11 +++++++++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 8042b0ab..5c758864 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: mcstate Title: Monte Carlo Methods for State Space Models -Version: 0.9.15 +Version: 0.9.16 Authors@R: c(person("Rich", "FitzJohn", role = c("aut", "cre"), email = "rich.fitzjohn@gmail.com"), person("Marc", "Baguelin", role = "aut"), diff --git a/NAMESPACE b/NAMESPACE index 97306f80..38c556a0 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -7,6 +7,7 @@ S3method(format,mcstate_pmcmc) S3method(predict,mcstate_pmcmc) S3method(predict,smc2_result) S3method(print,mcstate_pmcmc) +S3method(str,mcstate_pmcmc) export(adaptive_proposal_control) export(array_bind) export(array_drop) diff --git a/R/pmcmc_utils.R b/R/pmcmc_utils.R index 7c68e9ad..d73218f5 100644 --- a/R/pmcmc_utils.R +++ b/R/pmcmc_utils.R @@ -126,6 +126,13 @@ print.mcstate_pmcmc <- function(x, ...) { } +##' @export +str.mcstate_pmcmc <- function(object, ...) { + object <- unclass(object) + NextMethod("str") +} + + ## NOTE: we need to expose a 'force' argument here for testing, as ## otherwise under R CMD check the progress bar does not run. pmcmc_progress <- function(n_steps, progress, simple = FALSE, force = FALSE) { diff --git a/tests/testthat/test-pmcmc.R b/tests/testthat/test-pmcmc.R index c6d022ec..a1c06daf 100644 --- a/tests/testthat/test-pmcmc.R +++ b/tests/testthat/test-pmcmc.R @@ -785,3 +785,14 @@ test_that("can run pmcmc for ode models", { expect_equal(results1$predict$model_time, results1$predict$time) expect_identical(results1$predict$filter, p1$inputs()) }) + + +test_that("can use str() without error on samples object", { + dat <- example_uniform() + control <- pmcmc_control(10, save_state = FALSE, save_trajectories = FALSE) + res <- pmcmc(dat$pars, dat$filter, control = control) + cmp <- structure(res, class = NULL) + expect_output(str(res), + paste(capture.output(str(cmp)), collapse = "\n"), + fixed = TRUE) +}) From 7832a7c93c7bf73ea56bc0a7d38e72c586540f4f Mon Sep 17 00:00:00 2001 From: Rich FitzJohn Date: Tue, 11 Jul 2023 09:59:49 +0100 Subject: [PATCH 2/2] Minimal gha updates --- .github/workflows/R-CMD-check.yaml | 2 +- .github/workflows/make-release.yaml | 2 +- .github/workflows/pkgdown.yaml | 2 +- .github/workflows/test-coverage.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml index 56bcba0b..cb779963 100644 --- a/.github/workflows/R-CMD-check.yaml +++ b/.github/workflows/R-CMD-check.yaml @@ -34,7 +34,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: r-lib/actions/setup-r@v1 + - uses: r-lib/actions/setup-r@v2 with: r-version: ${{ matrix.config.r }} diff --git a/.github/workflows/make-release.yaml b/.github/workflows/make-release.yaml index 5f2ada55..6044d392 100644 --- a/.github/workflows/make-release.yaml +++ b/.github/workflows/make-release.yaml @@ -27,7 +27,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: r-lib/actions/setup-r@v1 + - uses: r-lib/actions/setup-r@v2 with: r-version: ${{ matrix.config.r }} diff --git a/.github/workflows/pkgdown.yaml b/.github/workflows/pkgdown.yaml index 0f8079bb..ffe21ba3 100644 --- a/.github/workflows/pkgdown.yaml +++ b/.github/workflows/pkgdown.yaml @@ -12,7 +12,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: r-lib/actions/setup-r@v1 + - uses: r-lib/actions/setup-r@v2 - uses: r-lib/actions/setup-pandoc@v1 diff --git a/.github/workflows/test-coverage.yaml b/.github/workflows/test-coverage.yaml index 05cc58ec..a4739db1 100644 --- a/.github/workflows/test-coverage.yaml +++ b/.github/workflows/test-coverage.yaml @@ -17,7 +17,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: r-lib/actions/setup-r@v1 + - uses: r-lib/actions/setup-r@v2 - uses: r-lib/actions/setup-pandoc@v1