diff options
author | Johannes Ranke <jranke@uni-bremen.de> | 2019-02-25 19:12:46 +0100 |
---|---|---|
committer | Johannes Ranke <jranke@uni-bremen.de> | 2019-02-25 19:12:46 +0100 |
commit | dd4e62ad803b74667378808aa0249cab6326d05c (patch) | |
tree | cd77e18d729a0eb8e31587dc032d284b5b2da79d | |
parent | d2712bbe66b3af861053c58a6b412eebbd9c5623 (diff) |
Test CAKE export
-rw-r--r-- | test.log | 37 | ||||
-rw-r--r-- | tests/testthat/FOCUS_2006_D.csf | 52 | ||||
-rw-r--r-- | tests/testthat/FOCUS_2006_D.txt | 0 | ||||
-rw-r--r-- | tests/testthat/test_CAKE_export.R | 51 | ||||
-rw-r--r-- | tests/testthat/test_FOCUS_D_UBA_expertise.R | 2 | ||||
-rw-r--r-- | tests/testthat/test_plots_summary_twa.R | 2 | ||||
-rw-r--r-- | tests/testthat/test_plots_twa.R | 63 |
7 files changed, 129 insertions, 78 deletions
@@ -1,9 +1,15 @@ Loading mkin Testing mkin ✔ | OK F W S | Context -
⠏ | 0 | Calculation of FOCUS chi2 error levels
⠋ | 1 | Calculation of FOCUS chi2 error levels
⠙ | 2 | Calculation of FOCUS chi2 error levels
✔ | 2 | Calculation of FOCUS chi2 error levels [2.5 s] -
⠏ | 0 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠋ | 1 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠙ | 2 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠹ | 3 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠸ | 4 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠼ | 5 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠴ | 6 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠦ | 7 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠧ | 8 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠇ | 9 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠏ | 10 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠋ | 11 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠙ | 12 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠹ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
✔ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [8.2 s] -
⠏ | 0 | Iteratively reweighted least squares (IRLS) fitting
⠋ | 1 | Iteratively reweighted least squares (IRLS) fitting
⠙ | 2 | Iteratively reweighted least squares (IRLS) fitting
⠹ | 2 1 | Iteratively reweighted least squares (IRLS) fitting
✔ | 2 1 | Iteratively reweighted least squares (IRLS) fitting [16.3 s] +
⠏ | 0 | Export dataset for reading into CAKE
⠋ | 1 | Export dataset for reading into CAKE
⠙ | 1 1 | Export dataset for reading into CAKE
⠙ | 2 | Export dataset for reading into CAKE
⠹ | 3 | Export dataset for reading into CAKE
⠸ | 4 | Export dataset for reading into CAKE
⠼ | 5 | Export dataset for reading into CAKE
⠴ | 6 | Export dataset for reading into CAKE
⠦ | 7 | Export dataset for reading into CAKE
⠧ | 8 | Export dataset for reading into CAKE
⠇ | 8 1 | Export dataset for reading into CAKE
✔ | 8 1 | Export dataset for reading into CAKE [1.4 s] +──────────────────────────────────────────────────────────────────────────────── +test_CAKE_export.R:50: skip: Test data from Appendix D are correctly evaluated +Figure not generated yet: plot-nafta-analysis.svg +Please run `vdiffr::manage_cases()` to validate the figure. +──────────────────────────────────────────────────────────────────────────────── +
⠏ | 0 | Calculation of FOCUS chi2 error levels
⠋ | 1 | Calculation of FOCUS chi2 error levels
⠙ | 2 | Calculation of FOCUS chi2 error levels
✔ | 2 | Calculation of FOCUS chi2 error levels [2.2 s] +
⠏ | 0 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠋ | 1 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠙ | 2 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠹ | 3 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠸ | 4 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠼ | 5 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠴ | 6 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠦ | 7 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠧ | 8 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠇ | 9 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠏ | 10 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠋ | 11 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠙ | 12 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
⠹ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014)
✔ | 13 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [7.8 s] +
⠏ | 0 | Iteratively reweighted least squares (IRLS) fitting
⠋ | 1 | Iteratively reweighted least squares (IRLS) fitting
⠙ | 2 | Iteratively reweighted least squares (IRLS) fitting
⠹ | 2 1 | Iteratively reweighted least squares (IRLS) fitting
✔ | 2 1 | Iteratively reweighted least squares (IRLS) fitting [15.9 s] ──────────────────────────────────────────────────────────────────────────────── test_irls.R:48: skip: Reweighting method 'tc' works Too much trouble with datasets that are randomly generated @@ -14,20 +20,23 @@ test_logistic.R:41: skip: The logistic fit can be done via differential equation Skip slow fit of logistic model using deSolve without compilation ────────────────────────────────────────────────────────────────────────────────
⠏ | 0 | Model predictions with mkinpredict
⠋ | 1 | Model predictions with mkinpredict
⠙ | 2 | Model predictions with mkinpredict
⠹ | 3 | Model predictions with mkinpredict
✔ | 3 | Model predictions with mkinpredict [0.3 s] -
⠏ | 0 | Evaluations according to 2015 NAFTA guidance
⠋ | 1 | Evaluations according to 2015 NAFTA guidance
⠙ | 1 1 | Evaluations according to 2015 NAFTA guidance
⠙ | 2 | Evaluations according to 2015 NAFTA guidance
⠹ | 3 | Evaluations according to 2015 NAFTA guidance
⠸ | 4 | Evaluations according to 2015 NAFTA guidance
⠼ | 5 | Evaluations according to 2015 NAFTA guidance
⠴ | 6 | Evaluations according to 2015 NAFTA guidance
⠦ | 7 | Evaluations according to 2015 NAFTA guidance
⠧ | 8 | Evaluations according to 2015 NAFTA guidance
⠇ | 9 | Evaluations according to 2015 NAFTA guidance
✔ | 9 | Evaluations according to 2015 NAFTA guidance [0.9 s] -
⠏ | 0 | Fitting of parent only models
⠋ | 1 | Fitting of parent only models
⠙ | 2 | Fitting of parent only models
⠹ | 3 | Fitting of parent only models
⠸ | 4 | Fitting of parent only models
⠼ | 5 | Fitting of parent only models
⠴ | 6 | Fitting of parent only models
⠦ | 7 | Fitting of parent only models
⠧ | 8 | Fitting of parent only models
⠇ | 9 | Fitting of parent only models
⠏ | 10 | Fitting of parent only models
⠋ | 11 | Fitting of parent only models
⠙ | 12 | Fitting of parent only models
⠹ | 13 | Fitting of parent only models
⠸ | 14 | Fitting of parent only models
⠼ | 15 | Fitting of parent only models
⠴ | 16 | Fitting of parent only models
⠦ | 17 | Fitting of parent only models
⠧ | 18 | Fitting of parent only models
⠇ | 19 | Fitting of parent only models
⠏ | 20 | Fitting of parent only models
⠋ | 21 | Fitting of parent only models
✔ | 21 | Fitting of parent only models [24.1 s] -
⠏ | 0 | Calculation of maximum time weighted average concentrations (TWAs)
⠋ | 1 | Calculation of maximum time weighted average concentrations (TWAs)
⠙ | 2 | Calculation of maximum time weighted average concentrations (TWAs)
⠹ | 3 | Calculation of maximum time weighted average concentrations (TWAs)
⠸ | 4 | Calculation of maximum time weighted average concentrations (TWAs)
⠼ | 5 | Calculation of maximum time weighted average concentrations (TWAs)
⠴ | 6 | Calculation of maximum time weighted average concentrations (TWAs)
⠦ | 7 | Calculation of maximum time weighted average concentrations (TWAs)
⠧ | 8 | Calculation of maximum time weighted average concentrations (TWAs)
✔ | 8 | Calculation of maximum time weighted average concentrations (TWAs) [7.3 s] -
⠏ | 0 | Summary
⠋ | 1 | Summary
✔ | 1 | Summary -
⠏ | 0 | Plotting
⠋ | 1 | Plotting
⠙ | 2 | Plotting
⠹ | 3 | Plotting
✔ | 3 | Plotting [0.3 s] +
⠏ | 0 | Evaluations according to 2015 NAFTA guidance
⠋ | 1 | Evaluations according to 2015 NAFTA guidance
⠙ | 1 1 | Evaluations according to 2015 NAFTA guidance
⠙ | 2 | Evaluations according to 2015 NAFTA guidance
⠹ | 3 | Evaluations according to 2015 NAFTA guidance
⠸ | 4 | Evaluations according to 2015 NAFTA guidance
⠼ | 5 | Evaluations according to 2015 NAFTA guidance
⠴ | 6 | Evaluations according to 2015 NAFTA guidance
⠦ | 7 | Evaluations according to 2015 NAFTA guidance
⠧ | 8 | Evaluations according to 2015 NAFTA guidance
⠇ | 9 | Evaluations according to 2015 NAFTA guidance
✔ | 9 | Evaluations according to 2015 NAFTA guidance [0.8 s] +
⠏ | 0 | Fitting of parent only models
⠋ | 1 | Fitting of parent only models
⠙ | 2 | Fitting of parent only models
⠹ | 3 | Fitting of parent only models
⠸ | 4 | Fitting of parent only models
⠼ | 5 | Fitting of parent only models
⠴ | 6 | Fitting of parent only models
⠦ | 7 | Fitting of parent only models
⠧ | 8 | Fitting of parent only models
⠇ | 9 | Fitting of parent only models
⠏ | 10 | Fitting of parent only models
⠋ | 11 | Fitting of parent only models
⠙ | 12 | Fitting of parent only models
⠹ | 13 | Fitting of parent only models
⠸ | 14 | Fitting of parent only models
⠼ | 15 | Fitting of parent only models
⠴ | 16 | Fitting of parent only models
⠦ | 17 | Fitting of parent only models
⠧ | 18 | Fitting of parent only models
⠇ | 19 | Fitting of parent only models
⠏ | 20 | Fitting of parent only models
⠋ | 21 | Fitting of parent only models
✔ | 21 | Fitting of parent only models [23.7 s]
⠏ | 0 | Calculation of maximum time weighted average concentrations (TWAs)
⠋ | 1 | Calculation of maximum time weighted average concentrations (TWAs)
⠙ | 2 | Calculation of maximum time weighted average concentrations (TWAs)
⠹ | 3 | Calculation of maximum time weighted average concentrations (TWAs)
⠸ | 4 | Calculation of maximum time weighted average concentrations (TWAs)
⠼ | 5 | Calculation of maximum time weighted average concentrations (TWAs)
⠴ | 6 | Calculation of maximum time weighted average concentrations (TWAs)
⠦ | 7 | Calculation of maximum time weighted average concentrations (TWAs)
⠧ | 8 | Calculation of maximum time weighted average concentrations (TWAs)
✔ | 8 | Calculation of maximum time weighted average concentrations (TWAs) [7.2 s] -
⠏ | 0 | Plotting
⠋ | 1 | Plotting
⠙ | 2 | Plotting
⠹ | 3 | Plotting
✔ | 3 | Plotting [0.2 s] -
⠏ | 0 | Complex test case from Schaefer et al. (2007) Piacenza paper
⠋ | 1 | Complex test case from Schaefer et al. (2007) Piacenza paper
⠙ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper
✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [6.0 s] -
⠏ | 0 | Results for synthetic data established in expertise for UBA (Ranke 2014)
⠋ | 1 | Results for synthetic data established in expertise for UBA (Ranke 2014)
⠙ | 2 | Results for synthetic data established in expertise for UBA (Ranke 2014)
⠹ | 3 | Results for synthetic data established in expertise for UBA (Ranke 2014)
⠸ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014)
✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [7.5 s] +
⠏ | 0 | Summary
⠋ | 1 | Summary
✔ | 1 | Summary +
⠏ | 0 | Plotting
⠋ | 1 | Plotting
⠙ | 1 1 | Plotting
⠹ | 2 1 | Plotting
⠸ | 3 1 | Plotting
✔ | 3 1 | Plotting [0.3 s] +──────────────────────────────────────────────────────────────────────────────── +test_plots_summary_twa.R:76: skip: Plotting mmkin objects is reproducible +Figure not generated yet: mkinparplot-for-focus-c-sfo.svg +Please run `vdiffr::manage_cases()` to validate the figure. +──────────────────────────────────────────────────────────────────────────────── +
⠏ | 0 | Complex test case from Schaefer et al. (2007) Piacenza paper
⠋ | 1 | Complex test case from Schaefer et al. (2007) Piacenza paper
⠙ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper
✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [5.9 s] +
⠏ | 0 | Results for synthetic data established in expertise for UBA (Ranke 2014)
⠋ | 1 | Results for synthetic data established in expertise for UBA (Ranke 2014)
⠙ | 2 | Results for synthetic data established in expertise for UBA (Ranke 2014)
⠹ | 3 | Results for synthetic data established in expertise for UBA (Ranke 2014)
⠸ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014)
✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [7.3 s] ══ Results ═════════════════════════════════════════════════════════════════════ -Duration: 83.6 s +Duration: 74.6 s -OK: 80 +OK: 77 Failed: 0 Warnings: 0 -Skipped: 2 +Skipped: 4 diff --git a/tests/testthat/FOCUS_2006_D.csf b/tests/testthat/FOCUS_2006_D.csf new file mode 100644 index 00000000..d695e90d --- /dev/null +++ b/tests/testthat/FOCUS_2006_D.csf @@ -0,0 +1,52 @@ +[FileInfo] +CAKE-Version: 3.3 (Release) +Name: FOCUS 2006 D +Description: +MeasurementUnits: % AR +TimeUnits: days +Comments: Created using mkin::CAKE_export +Date: 2019-02-25 +Optimiser: IRLS + +[Data] +NewDataSet: FOCUS C +Time Parent +0 85.1 +1 57.9 +3 29.9 +7 14.6 +14 9.7 +28 6.6 +63 4 +91 3.9 +119 0.6 + +NewDataSet: FOCUS D +Time Parent M1 +0 99.46 0 +0 102.04 0 +1 93.5 4.84 +1 92.5 5.64 +3 63.23 12.91 +3 68.99 12.96 +7 52.32 22.97 +7 55.13 24.47 +14 27.27 41.69 +14 26.64 33.21 +21 11.5 44.37 +21 11.64 46.44 +35 2.85 41.22 +35 2.91 37.95 +50 0.69 41.19 +50 0.63 40.01 +75 0.05 40.09 +75 0.06 33.85 +100 31.04 +100 33.13 +120 25.15 +120 33.31 + + +[ComponentNames] +Parent:parent +M1:m1 diff --git a/tests/testthat/FOCUS_2006_D.txt b/tests/testthat/FOCUS_2006_D.txt new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/tests/testthat/FOCUS_2006_D.txt diff --git a/tests/testthat/test_CAKE_export.R b/tests/testthat/test_CAKE_export.R new file mode 100644 index 00000000..aeb192c8 --- /dev/null +++ b/tests/testthat/test_CAKE_export.R @@ -0,0 +1,51 @@ +# Copyright (C) 2019 Johannes Ranke +# Contact: jranke@uni-bremen.de + +# This file is part of the R package mkin + +# mkin is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. + +# You should have received a copy of the GNU General Public License along with +# this program. If not, see <http://www.gnu.org/licenses/> + +context("Export dataset for reading into CAKE") + +test_that("Exporting is reproducible", { + CAKE_export(list("FOCUS C" = FOCUS_2006_C, + "FOCUS D" = FOCUS_2006_D), + map = c(parent = "Parent", m1 = "M1"), + filename = "FOCUS_2006_D.csf", overwrite = TRUE, + study = "FOCUS 2006 D") + csf <- readLines(con = "FOCUS_2006_D.csf") + expect_known_output(csf, "FOCUS_2006_D.txt") +}) + +test_that("Test data from Appendix D are correctly evaluated", { + expect_message(res <- nafta(MRID_555555, "MRID 555555")) + + # From Figure D.1 + dtx_sop <- matrix(c(407, 541, 429, 1352, 5192066, 2383), nrow = 3, ncol = 2) + expect_equivalent(res$distimes[, 1:2], dtx_sop, tolerance = 1, + scale = 1) + + C0_sop <- c(SFO = 83.8, IORE = 96.9, DFOP = 97.6) + C0_mkin <- sapply(res$parameters, function(x) x["parent_0", "Estimate"]) + expect_equivalent(C0_mkin, C0_sop, scale = 1, tolerance = 0.1) + + expect_equal(round(res$S_c), 717) + expect_equal(signif(res$S[["SFO"]], 3), 1.38e+3) + expect_equal(round(res$t_rep), 841) + + expect_known_output(print(res), "print_nafta_analysis.txt") + + plot_nafta <- function() plot(res) + vdiffr::expect_doppelganger("Plot NAFTA analysis", plot_nafta) +}) diff --git a/tests/testthat/test_FOCUS_D_UBA_expertise.R b/tests/testthat/test_FOCUS_D_UBA_expertise.R index 74097afa..42c4fcfb 100644 --- a/tests/testthat/test_FOCUS_D_UBA_expertise.R +++ b/tests/testthat/test_FOCUS_D_UBA_expertise.R @@ -1,4 +1,4 @@ -# Copyright (C) 2015,2018 Johannes Ranke +# Copyright (C) 2015,2019 Johannes Ranke # Contact: jranke@uni-bremen.de # This file is part of the R package mkin diff --git a/tests/testthat/test_plots_summary_twa.R b/tests/testthat/test_plots_summary_twa.R index d5f4f199..5201567d 100644 --- a/tests/testthat/test_plots_summary_twa.R +++ b/tests/testthat/test_plots_summary_twa.R @@ -68,10 +68,12 @@ context("Plotting") test_that("Plotting mmkin objects is reproducible", { skip_on_cran() plot_sep_FOCUS_C_SFO <- function() plot_sep(fits[["SFO", "FOCUS_C"]]) + mkinparplot_FOCUS_C_SFO <- function() mkinparplot(fits[["SFO", "FOCUS_C"]]) mmkin_FOCUS_C <- function() plot(fits[, "FOCUS_C"]) mmkin_SFO <- function() plot(fits["SFO",]) vdiffr::expect_doppelganger("mkinfit plot for FOCUS C with sep = TRUE", plot_sep_FOCUS_C_SFO) + vdiffr::expect_doppelganger("mkinparplot for FOCUS C SFO", mkinparplot_FOCUS_C_SFO) vdiffr::expect_doppelganger("mmkin plot for FOCUS C", mmkin_FOCUS_C) vdiffr::expect_doppelganger("mmkin plot for SFO (FOCUS C and D)", mmkin_SFO) }) diff --git a/tests/testthat/test_plots_twa.R b/tests/testthat/test_plots_twa.R deleted file mode 100644 index ff899bc9..00000000 --- a/tests/testthat/test_plots_twa.R +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright (C) 2016-2019 Johannes Ranke -# Contact: jranke@uni-bremen.de - -# This file is part of the R package mkin - -# mkin is free software: you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation, either version 3 of the License, or (at your option) any later -# version. - -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -# details. - -# You should have received a copy of the GNU General Public License along with -# this program. If not, see <http://www.gnu.org/licenses/> - -models <- c("SFO", "FOMC", "DFOP", "HS") -fits <- mmkin(models, - list(FOCUS_C = FOCUS_2006_C, FOCUS_D = FOCUS_2006_D), - quiet = TRUE, cores = if (Sys.getenv("TRAVIS") == "") 15 else 1) - -context("Calculation of maximum time weighted average concentrations (TWAs)") - -test_that("Time weighted average concentrations are correct", { - skip_on_cran() - - outtimes_10 <- seq(0, 10, length.out = 10000) - - for (ds in c("FOCUS_C", "FOCUS_D")) { - for (model in models) { - fit <- fits[[model, ds]] - bpar <- summary(fit)$bpar[, "Estimate"] - pred_10 <- mkinpredict(fit$mkinmod, - odeparms = bpar[2:length(bpar)], - odeini = c(parent = bpar[[1]]), - outtimes = outtimes_10) - twa_num <- mean(pred_10$parent) - names(twa_num) <- 10 - twa_ana <- max_twa_parent(fit, 10) - - # Test for absolute difference (scale = 1) - # The tolerance can be reduced if the length of outtimes is increased, - # but this needs more computing time so we stay with lenght.out = 10k - expect_equal(twa_num, twa_ana, tolerance = 0.003, scale = 1) - } - } -}) - -context("Plotting") - -test_that("Plotting mmkin objects is reproducible", { - skip_on_cran() - plot_sep_FOCUS_C_SFO <- function() plot_sep(fits[["SFO", "FOCUS_C"]]) - mmkin_FOCUS_C <- function() plot(fits[, "FOCUS_C"]) - mmkin_SFO <- function() plot(fits["SFO",]) - - vdiffr::expect_doppelganger("mkinfit plot for FOCUS C with sep = TRUE", plot_sep_FOCUS_C_SFO) - vdiffr::expect_doppelganger("mmkin plot for FOCUS C", mmkin_FOCUS_C) - vdiffr::expect_doppelganger("mmkin plot for SFO (FOCUS C and D)", mmkin_SFO) -}) - |