Package: annotater
Check: tests
New result: ERROR
    Running ‘testthat.R’ [4s/4s]
  Running the tests in ‘tests/testthat.R’ failed.
  Complete output:
    > library(testthat)
    > library(annotater)
    > 
    > test_check("annotater")
    [ FAIL 2 | WARN 0 | SKIP 0 | PASS 35 ]
    
    ══ Failed tests ════════════════════════════════════════════════════════════════
    ── Error ('test-overall-annotation.R:78:3'): if statement for pacman calls works ──
    Error in `stringi::stri_replace_all_fixed(str = string_og, pattern = pck_descs$call, 
        replacement = pck_descs$annotated, vectorize_all = FALSE)`: vector length not consistent with other arguments
    Backtrace:
        ▆
     1. ├─testthat::expect_match(annotate_repostitle(test_string), "# Functional") at test-overall-annotation.R:78:3
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─annotater::annotate_repostitle(test_string)
     5.   └─stringi::stri_replace_all_fixed(...)
    ── Failure ('test-overall-annotation.R:86:3'): if statement for pacman + base calls works ──
    annotate_repostitle\(test_string\) does not match "# Functional".
    Actual value: "p_load\(purrr\)\\nlibrary\(tidyr\) # Tidy Messy Data CRAN v1\.3\.1"
    Backtrace:
        ▆
     1. └─testthat::expect_match(annotate_repostitle(test_string), "# Functional") at test-overall-annotation.R:86:3
     2.   └─testthat:::expect_match_(...)
    
    [ FAIL 2 | WARN 0 | SKIP 0 | PASS 35 ]
    Error: Test failures
    Execution halted

Package: cfr
Check: examples
New result: ERROR
  Running examples in ‘cfr-Ex.R’ failed
  The error most likely occurred in:
  
  > base::assign(".ptime", proc.time(), pos = "CheckExEnv")
  > ### Name: cfr_rolling
  > ### Title: Estimate static severity for an expanding time series
  > ### Aliases: cfr_rolling
  > 
  > ### ** Examples
  > 
  > # load package data
  > data("ebola1976")
  > 
  > # estimate severity without correcting for delays
  > cfr_static(ebola1976)
  Error in cfr_static(ebola1976) : 
    Input data must have sequential dates with none missing or duplicated
  Calls: cfr_static -> stopifnot
  Execution halted

Package: cfr
Check: re-building of vignette outputs
New result: ERROR
  Error(s) in re-building vignettes:
    ...
  --- re-building ‘cfr.Rmd’ using rmarkdown
  
  Quitting from lines 93-97 [unnamed-chunk-3] (cfr.Rmd)
  Error: processing vignette 'cfr.Rmd' failed with diagnostics:
  Input data must have sequential dates with none missing or duplicated
  --- failed re-building ‘cfr.Rmd’
  
  --- re-building ‘data_from_incidence2.Rmd’ using rmarkdown
  --- finished re-building ‘data_from_incidence2.Rmd’
  
  --- re-building ‘delay_distributions.Rmd’ using rmarkdown
  
  Quitting from lines 90-98 [unnamed-chunk-4] (delay_distributions.Rmd)
  Error: processing vignette 'delay_distributions.Rmd' failed with diagnostics:
  Input data must have sequential dates with none missing or duplicated
  --- failed re-building ‘delay_distributions.Rmd’
  
  --- re-building ‘estimate_ascertainment.Rmd’ using rmarkdown
  
  Quitting from lines 115-121 [unnamed-chunk-3] (estimate_ascertainment.Rmd)
  Error: processing vignette 'estimate_ascertainment.Rmd' failed with diagnostics:
  Input data must have sequential dates with none missing or duplicated
  --- failed re-building ‘estimate_ascertainment.Rmd’
  
  --- re-building ‘estimate_static_severity.Rmd’ using rmarkdown
  
  Quitting from lines 120-130 [unnamed-chunk-4] (estimate_static_severity.Rmd)
  Error: processing vignette 'estimate_static_severity.Rmd' failed with diagnostics:
  Input data must have sequential dates with none missing or duplicated
  --- failed re-building ‘estimate_static_severity.Rmd’
  
  --- re-building ‘estimate_time_varying_severity.Rmd’ using rmarkdown
  
  Quitting from lines 113-133 [unnamed-chunk-4] (estimate_time_varying_severity.Rmd)
  Error: processing vignette 'estimate_time_varying_severity.Rmd' failed with diagnostics:
  Input data must have sequential dates with none missing or duplicated
  --- failed re-building ‘estimate_time_varying_severity.Rmd’
  
  --- re-building ‘software-permissions.Rmd’ using rmarkdown
  --- finished re-building ‘software-permissions.Rmd’
  
  SUMMARY: processing the following files failed:
    ‘cfr.Rmd’ ‘delay_distributions.Rmd’ ‘estimate_ascertainment.Rmd’
    ‘estimate_static_severity.Rmd’ ‘estimate_time_varying_severity.Rmd’
  
  Error: Vignette re-building failed.
  Execution halted

Package: cfr
Check: tests
New result: ERROR
    Running ‘spelling.R’ [0s/0s]
    Running ‘testthat.R’ [3s/3s]
  Running the tests in ‘tests/testthat.R’ failed.
  Complete output:
    > # This file is part of the standard setup for testthat.
    > # It is recommended that you do not modify it.
    > #
    > # Where should you do additional test configuration?
    > # Learn more about the roles of various files in:
    > # * https://r-pkgs.org/tests.html
    > # * https://testthat.r-lib.org/reference/test_package.html#special-files
    > 
    > library(testthat)
    > library(cfr)
    > 
    > test_check("cfr")
    `cfr_rolling()` is a convenience function to help understand how additional data influences the overall (static) severity. Use `cfr_time_varying()` instead to estimate severity changes over the course of the outbreak.
    Total deaths = 99 and expected outcomes = 0 so setting expected outcomes = NA. If we were to assume
            total deaths = expected outcomes, it would produce an estimate of 1.
    [ FAIL 11 | WARN 1 | SKIP 4 | PASS 34 ]
    
    ══ Skipped tests (4) ═══════════════════════════════════════════════════════════
    • On CRAN (4): 'test-estimate_outcomes.R:46:3',
      'test-estimate_severity.R:47:3', 'test-prepare_data.R:35:3',
      'test-prepare_data.R:126:3'
    
    ══ Failed tests ════════════════════════════════════════════════════════════════
    ── Error ('test-delay_density.R:9:3'): CFR functions work with delay_density as lambda ──
    Error in `cfr_static(ebola1976, delay_density = ddens)`: Input data must have sequential dates with none missing or duplicated
    Backtrace:
        ▆
     1. ├─testthat::expect_no_warning(cfr_static(ebola1976, delay_density = ddens)) at test-delay_density.R:9:3
     2. │ └─testthat:::expect_no_(...)
     3. │   └─testthat:::quasi_capture(enquo(object), NULL, capture)
     4. │     ├─testthat (local) .capture(...)
     5. │     │ └─rlang::try_fetch(...)
     6. │     │   └─base::withCallingHandlers(...)
     7. │     └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     8. └─cfr::cfr_static(ebola1976, delay_density = ddens)
     9.   └─base::stopifnot(...)
    ── Error ('test-delay_density.R:34:3'): CFR functions work with delay_density as <distcrete> ──
    Error in `cfr_static(ebola1976, delay_density = ddens)`: Input data must have sequential dates with none missing or duplicated
    Backtrace:
        ▆
     1. ├─testthat::expect_no_warning(cfr_static(ebola1976, delay_density = ddens)) at test-delay_density.R:34:3
     2. │ └─testthat:::expect_no_(...)
     3. │   └─testthat:::quasi_capture(enquo(object), NULL, capture)
     4. │     ├─testthat (local) .capture(...)
     5. │     │ └─rlang::try_fetch(...)
     6. │     │   └─base::withCallingHandlers(...)
     7. │     └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     8. └─cfr::cfr_static(ebola1976, delay_density = ddens)
     9.   └─base::stopifnot(...)
    ── Error ('test-delay_density.R:59:3'): Input checking on delay_density works ──
    Error in `cfr_static(ebola1976, delay_density = ddens)`: Input data must have sequential dates with none missing or duplicated
    Backtrace:
        ▆
     1. ├─testthat::expect_error(...) at test-delay_density.R:59:3
     2. │ └─testthat:::expect_condition_matching(...)
     3. │   └─testthat:::quasi_capture(...)
     4. │     ├─testthat (local) .capture(...)
     5. │     │ └─base::withCallingHandlers(...)
     6. │     └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. └─cfr::cfr_static(ebola1976, delay_density = ddens)
     8.   └─base::stopifnot(...)
    ── Error ('test-estimate_ascertainment.R:10:3'): Basic expectations for static ascertainment ──
    Error in `cfr_static(data, delay_density = delay_density)`: Input data must have sequential dates with none missing or duplicated
    Backtrace:
        ▆
     1. └─cfr::estimate_ascertainment(data = ebola1976, severity_baseline = 0.7) at test-estimate_ascertainment.R:10:3
     2.   └─cfr::cfr_static(data, delay_density = delay_density)
     3.     └─base::stopifnot(...)
    ── Error ('test-estimate_ascertainment.R:40:3'): Correct for delays for static ascertainment ──
    Error in `cfr_static(data, delay_density = delay_density)`: Input data must have sequential dates with none missing or duplicated
    Backtrace:
        ▆
     1. └─cfr::estimate_ascertainment(...) at test-estimate_ascertainment.R:40:3
     2.   └─cfr::cfr_static(data, delay_density = delay_density)
     3.     └─base::stopifnot(...)
    ── Error ('test-estimate_ascertainment.R:81:3'): Static ascertainment from vignette ──
    Error in `cfr_static(data, delay_density = delay_density)`: Input data must have sequential dates with none missing or duplicated
    Backtrace:
        ▆
     1. └─testthat::expect_snapshot(...) at test-estimate_ascertainment.R:81:3
     2.   └─rlang::cnd_signal(state$error)
    ── Error ('test-estimate_ascertainment.R:94:3'): Ascertainment > 1.0 throws a warning ──
    Error in `cfr_static(data, delay_density = delay_density)`: Input data must have sequential dates with none missing or duplicated
    Backtrace:
        ▆
     1. ├─testthat::expect_warning(...) at test-estimate_ascertainment.R:94:3
     2. │ └─testthat:::expect_condition_matching(...)
     3. │   └─testthat:::quasi_capture(...)
     4. │     ├─testthat (local) .capture(...)
     5. │     │ └─base::withCallingHandlers(...)
     6. │     └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
     7. └─cfr::estimate_ascertainment(...)
     8.   └─cfr::cfr_static(data, delay_density = delay_density)
     9.     └─base::stopifnot(...)
    ── Error ('test-estimate_ascertainment.R:119:3'): Ascertainment is statistically correct ──
    Error in `cfr_static(data, delay_density = delay_density)`: Input data must have sequential dates with none missing or duplicated
    Backtrace:
        ▆
     1. ├─testthat::expect_identical(...) at test-estimate_ascertainment.R:119:3
     2. │ └─testthat::quasi_label(enquo(object), label, arg = "object")
     3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
     4. └─cfr::estimate_ascertainment(data, severity_baseline = 0.01)
     5.   └─cfr::cfr_static(data, delay_density = delay_density)
     6.     └─base::stopifnot(...)
    ── Error ('test-estimate_rolling.R:8:1'): (code run outside of `test_that()`) ──
    Error in `cfr_rolling(data = ebola1976)`: Input data must have sequential dates with none missing or duplicated
    Backtrace:
        ▆
     1. └─cfr::cfr_rolling(data = ebola1976) at test-estimate_rolling.R:8:1
     2.   └─base::stopifnot(...)
    ── Error ('test-estimate_static.R:11:1'): (code run outside of `test_that()`) ──
    Error in `cfr_static(data = ebola1976)`: Input data must have sequential dates with none missing or duplicated
    Backtrace:
        ▆
     1. └─cfr::cfr_static(data = ebola1976) at test-estimate_static.R:11:1
     2.   └─base::stopifnot(...)
    ── Error ('test-estimate_time_varying.R:11:1'): (code run outside of `test_that()`) ──
    Error in `cfr_time_varying(ebola1976)`: Input data must have sequential dates with none missing or duplicated
    Backtrace:
        ▆
     1. └─cfr::cfr_time_varying(ebola1976) at test-estimate_time_varying.R:11:1
     2.   └─base::stopifnot(...)
    
    [ FAIL 11 | WARN 1 | SKIP 4 | PASS 34 ]
    Error: Test failures
    Execution halted

Package: dibble
Check: tests
New result: ERROR
    Running ‘testthat.R’ [4s/4s]
  Running the tests in ‘tests/testthat.R’ failed.
  Complete output:
    > library(testthat)
    > library(dibble)
    
    Attaching package: 'dibble'
    
    The following object is masked from 'package:stats':
    
        filter
    
    The following objects are masked from 'package:base':
    
        apply, colnames, diag, diag<-, ifelse, ncol, nrow, pmax, pmin,
        rownames
    
    > 
    > test_check("dibble")
    [ FAIL 1 | WARN 0 | SKIP 0 | PASS 181 ]
    
    ══ Failed tests ════════════════════════════════════════════════════════════════
    ── Failure ('test-dim_names.R:15:3'): dim_names ────────────────────────────────
    intersect_dim_names(list(dimnames(x), dimnames(y))) (`actual`) not equal to list(axis1 = letters[2], axis2 = tibble::tibble(col1 = 2:3, col2 = 3:4)) (`expected`).
    
    `actual` is length 3
    `expected` is length 2
    
    `names(actual)`:   "axis1" "axis2" "axis3"
    `names(expected)`: "axis1" "axis2"        
    
    `actual$axis3` is a character vector ()
    `expected$axis3` is absent
    
    [ FAIL 1 | WARN 0 | SKIP 0 | PASS 181 ]
    Error: Test failures
    Execution halted

Package: meteoland
Check: examples
New result: ERROR
  Running examples in ‘meteoland-Ex.R’ failed
  The error most likely occurred in:
  
  > base::assign(".ptime", proc.time(), pos = "CheckExEnv")
  > ### Name: create_meteo_interpolator
  > ### Title: Meteoland interpolator creation
  > ### Aliases: create_meteo_interpolator
  > 
  > ### ** Examples
  > 
  > 
  > # example meteo data
  > data(meteoland_meteo_example)
  > 
  > # create the interpolator with default params
  > with_meteo(meteoland_meteo_example) |>
  +   create_meteo_interpolator()
  ℹ Checking meteorology object...
  ✔ meteorology object ok
  ℹ Creating interpolator...
  Warning: No interpolation parameters provided, using defaults
  ℹ Set the `params` argument to modify parameter default values
  Error in `/.difftime`(diff(range(ud)), mean(ud)) : 
    second argument of / cannot be a "difftime" object
  Calls: create_meteo_interpolator ... <Anonymous> -> regular_intervals -> isTRUE -> /.difftime
  Execution halted

Package: meteoland
Check: re-building of vignette outputs
New result: ERROR
  Error(s) in re-building vignettes:
    ...
  --- re-building ‘reshaping-meteo.Rmd’ using rmarkdown
  
  Quitting from lines 140-143 [raster_meteo_preparing] (reshaping-meteo.Rmd)
  Error: processing vignette 'reshaping-meteo.Rmd' failed with diagnostics:
  second argument of / cannot be a "difftime" object
  --- failed re-building ‘reshaping-meteo.Rmd’
  
  --- re-building ‘tidy-meteoland.Rmd’ using rmarkdown
  
  Quitting from lines 118-126 [quick_interpolation] (tidy-meteoland.Rmd)
  Error: processing vignette 'tidy-meteoland.Rmd' failed with diagnostics:
  second argument of / cannot be a "difftime" object
  --- failed re-building ‘tidy-meteoland.Rmd’
  
  SUMMARY: processing the following files failed:
    ‘reshaping-meteo.Rmd’ ‘tidy-meteoland.Rmd’
  
  Error: Vignette re-building failed.
  Execution halted

Package: meteoland
Check: tests
New result: ERROR
    Running ‘testthat.R’ [139s/109s]
  Running the tests in ‘tests/testthat.R’ failed.
  Complete output:
    > library(testthat)
    > library(meteoland)
    Package 'meteoland' [ver. 2.2.3]
    > 
    > test_check("meteoland")
    Starting 2 test processes
    [ FAIL 8 | WARN 0 | SKIP 0 | PASS 333 ]
    
    ══ Failed tests ════════════════════════════════════════════════════════════════
    ── Error ('test-03_interpolator_object.R:11:3'): create_meteo_interpolator works as expected ──
    Error in ``/.difftime`(diff(range(ud)), mean(ud))`: second argument of / cannot be a "difftime" object
    Backtrace:
         ▆
      1. ├─testthat::expect_warning(...) at test-03_interpolator_object.R:11:3
      2. │ └─testthat:::expect_condition_matching(...)
      3. │   └─testthat:::quasi_capture(...)
      4. │     ├─testthat (local) .capture(...)
      5. │     │ └─base::withCallingHandlers(...)
      6. │     └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
      7. └─meteoland::create_meteo_interpolator(meteo_test_correct, params = list(debig = FALSE))
      8.   ├─stars::st_dimensions(date = dates, station = stations)
      9.   └─stars:::st_dimensions.default(date = dates, station = stations)
     10.     ├─stars:::create_dimensions(...)
     11.     └─base::mapply(...)
     12.       └─stars (local) `<fn>`(...)
     13.         └─stars:::regular_intervals(values)
     14.           ├─base::isTRUE(as.numeric(abs(diff(range(ud))/mean(ud))) < epsilon)
     15.           └─base::`/.difftime`(diff(range(ud)), mean(ud))
    ── Error ('test-03_interpolator_object.R:161:1'): (code run outside of `test_that()`) ──
    Error in ``/.difftime`(diff(range(ud)), mean(ud))`: second argument of / cannot be a "difftime" object
    Backtrace:
         ▆
      1. ├─base::suppressWarnings(interpolator_test <- create_meteo_interpolator(meteo_test_correct)) at test-03_interpolator_object.R:161:1
      2. │ └─base::withCallingHandlers(...)
      3. └─meteoland::create_meteo_interpolator(meteo_test_correct)
      4.   ├─stars::st_dimensions(date = dates, station = stations)
      5.   └─stars:::st_dimensions.default(date = dates, station = stations)
      6.     ├─stars:::create_dimensions(...)
      7.     └─base::mapply(...)
      8.       └─stars (local) `<fn>`(...)
      9.         └─stars:::regular_intervals(values)
     10.           ├─base::isTRUE(as.numeric(abs(diff(range(ud))/mean(ud))) < epsilon)
     11.           └─base::`/.difftime`(diff(range(ud)), mean(ud))
    ── Error ('test-04_interpolation_framework.R:62:3'): interpolation process works as intended ──
    <dplyr:::mutate_error/rlang_error/error/condition>
    Error in `dplyr::mutate(dplyr::as_tibble(spatial_data), interpolated_data = res_list)`: i In argument: `interpolated_data = res_list`.
    Caused by error in `/.difftime`:
    ! second argument of / cannot be a "difftime" object
    Backtrace:
         ▆
      1. ├─testthat::expect_warning(...) at test-04_interpolation_framework.R:62:3
      2. │ └─testthat:::expect_condition_matching(...)
      3. │   └─testthat:::quasi_capture(...)
      4. │     ├─testthat (local) .capture(...)
      5. │     │ └─base::withCallingHandlers(...)
      6. │     └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
      7. ├─meteoland::interpolate_data(...)
      8. │ ├─meteoland:::.binding_interpolation_results(...)
      9. │ │ ├─sf::st_as_sf(dplyr::mutate(dplyr::as_tibble(spatial_data), interpolated_data = res_list))
     10. │ │ ├─dplyr::mutate(dplyr::as_tibble(spatial_data), interpolated_data = res_list)
     11. │ │ └─dplyr:::mutate.data.frame(dplyr::as_tibble(spatial_data), interpolated_data = res_list)
     12. │ │   └─dplyr:::mutate_cols(.data, dplyr_quosures(...), by)
     13. │ │     ├─base::withCallingHandlers(...)
     14. │ │     └─dplyr:::mutate_col(dots[[i]], data, mask, new_columns)
     15. │ │       └─mask$eval_all_mutate(quo)
     16. │ │         └─dplyr (local) eval()
     17. │ └─meteoland:::.interpolation_spatial_dispatcher(...)
     18. │   └─meteoland:::.interpolation_point(...)
     19. │     ├─dplyr::filter(interpolator, as.Date(date) %in% as.Date(dates))
     20. │     └─stars:::filter.stars(interpolator, as.Date(date) %in% as.Date(dates))
     21. │       ├─stars::st_as_stars(cb$mets, dimensions = get_dims(cb$dims, st_dimensions(.data)))
     22. │       ├─stars:::st_as_stars.list(...)
     23. │       └─stars:::get_dims(cb$dims, st_dimensions(.data))
     24. │         └─stars:::create_dimension(...)
     25. │           └─stars:::regular_intervals(values)
     26. │             ├─base::isTRUE(as.numeric(abs(diff(range(ud))/mean(ud))) < epsilon)
     27. │             └─base::`/.difftime`(diff(range(ud)), mean(ud))
     28. │               └─base::stop("second argument of / cannot be a \"difftime\" object")
     29. └─base::.handleSimpleError(...)
     30.   └─dplyr (local) h(simpleError(msg, call))
     31.     └─rlang::abort(message, class = error_class, parent = parent, call = error_call)
    ── Error ('test-04_interpolation_framework.R:447:3'): interpolation cross validation works as expected ──
    <purrr_error_indexed/rlang_error/error/condition>
    Error in `purrr::map(stations, .station_cross_validation, interpolator = interpolator, 
        .progress = verbose)`: i In index: 1.
    Caused by error in `/.difftime`:
    ! second argument of / cannot be a "difftime" object
    Backtrace:
         ▆
      1. ├─testthat::expect_type(...) at test-04_interpolation_framework.R:447:3
      2. │ └─testthat::quasi_label(enquo(object), arg = "object")
      3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
      4. ├─meteoland::interpolation_cross_validation(meteoland_interpolator_example)
      5. │ ├─meteoland:::.set_predicted_nas(...)
      6. │ ├─purrr::list_rbind(...)
      7. │ │ └─purrr:::check_list_of_data_frames(x)
      8. │ │   └─vctrs::obj_check_list(x, call = error_call)
      9. │ └─purrr::map(...)
     10. │   └─purrr:::map_("list", .x, .f, ..., .progress = .progress)
     11. │     ├─purrr:::with_indexed_errors(...)
     12. │     │ └─base::withCallingHandlers(...)
     13. │     ├─purrr:::call_with_cleanup(...)
     14. │     └─meteoland (local) .f(.x[[i]], ...)
     15. │       ├─dplyr::rename(...)
     16. │       ├─dplyr::mutate(...)
     17. │       ├─base::suppressMessages(...)
     18. │       │ └─base::withCallingHandlers(...)
     19. │       ├─base::suppressWarnings(...)
     20. │       │ └─base::withCallingHandlers(...)
     21. │       └─meteoland:::.interpolation_point(...)
     22. │         ├─dplyr::filter(interpolator, as.Date(date) %in% as.Date(dates))
     23. │         └─stars:::filter.stars(interpolator, as.Date(date) %in% as.Date(dates))
     24. │           ├─stars::st_as_stars(cb$mets, dimensions = get_dims(cb$dims, st_dimensions(.data)))
     25. │           ├─stars:::st_as_stars.list(...)
     26. │           └─stars:::get_dims(cb$dims, st_dimensions(.data))
     27. │             └─stars:::create_dimension(...)
     28. │               └─stars:::regular_intervals(values)
     29. │                 ├─base::isTRUE(as.numeric(abs(diff(range(ud))/mean(ud))) < epsilon)
     30. │                 └─base::`/.difftime`(diff(range(ud)), mean(ud))
     31. │                   └─base::stop("second argument of / cannot be a \"difftime\" object")
     32. └─base::.handleSimpleError(...)
     33.   └─purrr (local) h(simpleError(msg, call))
     34.     └─cli::cli_abort(...)
     35.       └─rlang::abort(...)
    ── Error ('test-05_summary_interpolated_data.R:2:3'): summarise_interpolated_data for sf works as expected ──
    <dplyr:::mutate_error/rlang_error/error/condition>
    Error in `dplyr::mutate(dplyr::as_tibble(spatial_data), interpolated_data = res_list)`: i In argument: `interpolated_data = res_list`.
    Caused by error in `/.difftime`:
    ! second argument of / cannot be a "difftime" object
    Backtrace:
         ▆
      1. ├─meteoland::interpolate_data(...) at test-05_summary_interpolated_data.R:2:3
      2. │ ├─meteoland:::.binding_interpolation_results(...)
      3. │ │ ├─sf::st_as_sf(dplyr::mutate(dplyr::as_tibble(spatial_data), interpolated_data = res_list))
      4. │ │ ├─dplyr::mutate(dplyr::as_tibble(spatial_data), interpolated_data = res_list)
      5. │ │ └─dplyr:::mutate.data.frame(dplyr::as_tibble(spatial_data), interpolated_data = res_list)
      6. │ │   └─dplyr:::mutate_cols(.data, dplyr_quosures(...), by)
      7. │ │     ├─base::withCallingHandlers(...)
      8. │ │     └─dplyr:::mutate_col(dots[[i]], data, mask, new_columns)
      9. │ │       └─mask$eval_all_mutate(quo)
     10. │ │         └─dplyr (local) eval()
     11. │ └─meteoland:::.interpolation_spatial_dispatcher(...)
     12. │   └─meteoland:::.interpolation_point(...)
     13. │     ├─dplyr::filter(interpolator, as.Date(date) %in% as.Date(dates))
     14. │     └─stars:::filter.stars(interpolator, as.Date(date) %in% as.Date(dates))
     15. │       ├─stars::st_as_stars(cb$mets, dimensions = get_dims(cb$dims, st_dimensions(.data)))
     16. │       ├─stars:::st_as_stars.list(...)
     17. │       └─stars:::get_dims(cb$dims, st_dimensions(.data))
     18. │         └─stars:::create_dimension(...)
     19. │           └─stars:::regular_intervals(values)
     20. │             ├─base::isTRUE(as.numeric(abs(diff(range(ud))/mean(ud))) < epsilon)
     21. │             └─base::`/.difftime`(diff(range(ud)), mean(ud))
     22. │               └─base::stop("second argument of / cannot be a \"difftime\" object")
     23. └─base::.handleSimpleError(...)
     24.   └─dplyr (local) h(simpleError(msg, call))
     25.     └─rlang::abort(message, class = error_class, parent = parent, call = error_call)
    ── Error ('test-05_summary_interpolated_data.R:225:3'): summarise_interpolated_data for stars works as expected ──
    Error in ``/.difftime`(diff(range(ud)), mean(ud))`: second argument of / cannot be a "difftime" object
    Backtrace:
         ▆
      1. └─meteoland::interpolate_data(...) at test-05_summary_interpolated_data.R:225:3
      2.   ├─meteoland:::.binding_interpolation_results(...)
      3.   │ ├─stars::st_dimensions(...)
      4.   │ └─stars:::st_dimensions.default(...)
      5.   └─meteoland:::.interpolation_spatial_dispatcher(...)
      6.     └─meteoland:::.interpolation_point(...)
      7.       ├─dplyr::filter(interpolator, as.Date(date) %in% as.Date(dates))
      8.       └─stars:::filter.stars(interpolator, as.Date(date) %in% as.Date(dates))
      9.         ├─stars::st_as_stars(cb$mets, dimensions = get_dims(cb$dims, st_dimensions(.data)))
     10.         ├─stars:::st_as_stars.list(...)
     11.         └─stars:::get_dims(cb$dims, st_dimensions(.data))
     12.           └─stars:::create_dimension(...)
     13.             └─stars:::regular_intervals(values)
     14.               ├─base::isTRUE(as.numeric(abs(diff(range(ud))/mean(ud))) < epsilon)
     15.               └─base::`/.difftime`(diff(range(ud)), mean(ud))
    ── Error ('test-05_summary_interpolated_data.R:381:3'): summarise_interpolator works as expected ──
    Error in ``/.difftime`(diff(range(ud)), mean(ud))`: second argument of / cannot be a "difftime" object
    Backtrace:
         ▆
      1. ├─testthat::expect_error(...) at test-05_summary_interpolated_data.R:381:3
      2. │ └─testthat:::expect_condition_matching(...)
      3. │   └─testthat:::quasi_capture(...)
      4. │     ├─testthat (local) .capture(...)
      5. │     │ └─base::withCallingHandlers(...)
      6. │     └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
      7. ├─meteoland::summarise_interpolator(...)
      8. │ ├─assertthat::assert_that(.is_interpolator(interpolator))
      9. │ │ └─assertthat::see_if(..., env = env, msg = msg)
     10. │ │   ├─base::tryCatch(...)
     11. │ │   │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
     12. │ │   │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
     13. │ │   │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
     14. │ │   └─base::eval(assertion, env)
     15. │ │     └─base::eval(assertion, env)
     16. │ └─meteoland:::.is_interpolator(interpolator)
     17. │   └─meteoland::get_interpolation_params(interpolator)
     18. └─meteoland::interpolate_data(...)
     19.   ├─meteoland:::.binding_interpolation_results(...)
     20.   │ ├─stars::st_dimensions(...)
     21.   │ └─stars:::st_dimensions.default(...)
     22.   └─meteoland:::.interpolation_spatial_dispatcher(...)
     23.     └─meteoland:::.interpolation_point(...)
     24.       ├─dplyr::filter(interpolator, as.Date(date) %in% as.Date(dates))
     25.       └─stars:::filter.stars(interpolator, as.Date(date) %in% as.Date(dates))
     26.         ├─stars::st_as_stars(cb$mets, dimensions = get_dims(cb$dims, st_dimensions(.data)))
     27.         ├─stars:::st_as_stars.list(...)
     28.         └─stars:::get_dims(cb$dims, st_dimensions(.data))
     29.           └─stars:::create_dimension(...)
     30.             └─stars:::regular_intervals(values)
     31.               ├─base::isTRUE(as.numeric(abs(diff(range(ud))/mean(ud))) < epsilon)
     32.               └─base::`/.difftime`(diff(range(ud)), mean(ud))
    ── Error ('test-21_meteoland_utils.R:293:3'): precipitation_rainfall_erosivity works as expected ──
    <dplyr:::mutate_error/rlang_error/error/condition>
    Error in `dplyr::mutate(dplyr::as_tibble(spatial_data), interpolated_data = res_list)`: i In argument: `interpolated_data = res_list`.
    Caused by error in `/.difftime`:
    ! second argument of / cannot be a "difftime" object
    Backtrace:
         ▆
      1. ├─testthat::expect_s3_class(...) at test-21_meteoland_utils.R:293:3
      2. │ └─testthat::quasi_label(enquo(object), arg = "object")
      3. │   └─rlang::eval_bare(expr, quo_get_env(quo))
      4. ├─dplyr::mutate(...)
      5. ├─meteoland::interpolate_data(...)
      6. │ ├─meteoland:::.binding_interpolation_results(...)
      7. │ │ ├─sf::st_as_sf(dplyr::mutate(dplyr::as_tibble(spatial_data), interpolated_data = res_list))
      8. │ │ ├─dplyr::mutate(dplyr::as_tibble(spatial_data), interpolated_data = res_list)
      9. │ │ └─dplyr:::mutate.data.frame(dplyr::as_tibble(spatial_data), interpolated_data = res_list)
     10. │ │   └─dplyr:::mutate_cols(.data, dplyr_quosures(...), by)
     11. │ │     ├─base::withCallingHandlers(...)
     12. │ │     └─dplyr:::mutate_col(dots[[i]], data, mask, new_columns)
     13. │ │       └─mask$eval_all_mutate(quo)
     14. │ │         └─dplyr (local) eval()
     15. │ └─meteoland:::.interpolation_spatial_dispatcher(...)
     16. │   └─meteoland:::.interpolation_point(...)
     17. │     ├─dplyr::filter(interpolator, as.Date(date) %in% as.Date(dates))
     18. │     └─stars:::filter.stars(interpolator, as.Date(date) %in% as.Date(dates))
     19. │       ├─stars::st_as_stars(cb$mets, dimensions = get_dims(cb$dims, st_dimensions(.data)))
     20. │       ├─stars:::st_as_stars.list(...)
     21. │       └─stars:::get_dims(cb$dims, st_dimensions(.data))
     22. │         └─stars:::create_dimension(...)
     23. │           └─stars:::regular_intervals(values)
     24. │             ├─base::isTRUE(as.numeric(abs(diff(range(ud))/mean(ud))) < epsilon)
     25. │             └─base::`/.difftime`(diff(range(ud)), mean(ud))
     26. │               └─base::stop("second argument of / cannot be a \"difftime\" object")
     27. └─base::.handleSimpleError(...)
     28.   └─dplyr (local) h(simpleError(msg, call))
     29.     └─rlang::abort(message, class = error_class, parent = parent, call = error_call)
    
    [ FAIL 8 | WARN 0 | SKIP 0 | PASS 333 ]
    Error: Test failures
    Execution halted

Package: phenofit
Check: tests
New result: ERROR
    Running ‘testthat.R’ [57s/57s]
  Running the tests in ‘tests/testthat.R’ failed.
  Complete output:
    > library(testthat)
    > library(phenofit)
    > 
    > test_check("phenofit")
    List of 5
     $ AG    : tibble [6 × 8] (S3: tbl_df/tbl/data.frame)
     $ Beck  : tibble [6 × 7] (S3: tbl_df/tbl/data.frame)
     $ Elmore: tibble [6 × 8] (S3: tbl_df/tbl/data.frame)
     $ Gu    : tibble [6 × 10] (S3: tbl_df/tbl/data.frame)
     $ Zhang : tibble [6 × 8] (S3: tbl_df/tbl/data.frame)
    NULL
    # A tibble: 6 × 8
      flag      t0    mn    mx     rsp    a3     rau    a5
      <chr>  <dbl> <dbl> <dbl>   <dbl> <dbl>   <dbl> <dbl>
    1 1999_1 -135. 0.201 0.636 0.00932  2.85 0.00852  2   
    2 2000_1  189. 0.238 0.635 0.0126   2.47 0.00801  3.21
    3 2001_1  569. 0.252 0.626 0.0108   2.96 0.00950  2.96
    4 2002_1  892. 0.253 0.614 0.0159   2    0.00724  3.08
    5 2003_1 1268. 0.236 0.577 0.0121   2.88 0.00723  2.88
    6 2004_1 1677. 0.202 0.576 0.00832  2.84 0.00990  3.48
         meth        R2       NSE         R         RMSE        pvalue n_sim
       <char>     <num>     <num>     <num>        <num>         <num> <num>
    1:     AG 0.9986908 0.9985845 0.9993452 9.940385e-03  4.489925e-65    46
    2:   Beck 1.0000000 1.0000000 1.0000000 1.389780e-09  0.000000e+00    46
    3: Elmore 1.0000000 1.0000000 1.0000000 4.161813e-10  0.000000e+00    46
    4:     Gu 1.0000000 1.0000000 1.0000000 4.891365e-11  0.000000e+00    46
    5:  Zhang 1.0000000 1.0000000 1.0000000 5.529073e-06 8.043461e-208    46
    $AG
     formula:	mn + (mx - mn) * exp(-((t0 - t) * rsp)^a3)
      formula:	mn + (mx - mn) * exp(-((t - t0) * rau)^a5)
    pars:
                 t0        mn        mx         rsp a3         rau a5
    nlminb 149.8926 0.1020656 0.7095242 0.009389263  6 0.009367765  6
    
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 1.65502e-16); attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.19427e-17); attempting approx solution
    
    warning: solve(): system is singular (rcond: 1.65502e-16); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 1.33432e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.38811e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.03034e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 1.33432e-17); attempting approx solution
    
    warning: solve(): system is singular (rcond: 3.31005e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 3.08395e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.36432e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 6.97437e-18); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 1.85037e-16); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.80681e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 5.43896e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.38811e-17); attempting approx solution
    
    warning: solve(): system is singular (rcond: 3.05447e-17); attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.11109e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 6.04329e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 1.85037e-16); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.80681e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 5.43896e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 3.31005e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.38811e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 3.31005e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.38811e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 1.94249e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 3.84957e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 3.31005e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 8.58712e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.38811e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.09346e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 3.82199e-17); attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.38705e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.38811e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 5.88785e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 1.85037e-16); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 7.40149e-17); attempting approx solution
    
    warning: solve(): system is singular (rcond: 6.20634e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.38811e-17); attempting approx solution
    
    warning: solve(): system is singular (rcond: 3.05447e-17); attempting approx solution
    
    warning: solve(): system is singular (rcond: 2.11109e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 5.43896e-17); attempting approx solution
    
    warning: solve(): system is singular (rcond: 4.38854e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 1.00786e-16); attempting approx solution
    
    warning: solve(): system is singular (rcond: 1.46031e-17); attempting approx solution
    
    warning: solve(): system is singular (rcond: 5.02097e-17); attempting approx solution
    
    warning: solve(): system is singular (rcond: 1.25524e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 3.31005e-17); attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular; attempting approx solution
    
    warning: solve(): system is singular (rcond: 3.31005e-17); attempting approx solution
    [ FAIL 1 | WARN 2 | SKIP 0 | PASS 69 ]
    
    ══ Failed tests ════════════════════════════════════════════════════════════════
    ── Failure ('test-curvefit.R:18:5'): curvefit works ────────────────────────────
    all.equal(p1, p2, tolerance = 1e-06) is not TRUE
    
    `actual` is a character vector ('Component "Elmore": Component "mn": Mean relative difference: 1.990404e-06')
    `expected` is a logical vector (TRUE)
    
    [ FAIL 1 | WARN 2 | SKIP 0 | PASS 69 ]
    Error: Test failures
    Execution halted