tests/testthat/test-setExtMort.R

params <- NS_params

## setExtMort ----
test_that("setExtMort works", {
    params <- NS_params
    params@species_params$z0 <- 2 * params@species_params$z0
    p2 <- setExtMort(params)
    expect_identical(2 * params@mu_b, p2@mu_b)
    # only mu_b changed
    p2@mu_b <- params@mu_b
    expect_unchanged(p2, params)
    
    # supplying ext_mort
    p2 <- setExtMort(params, 3 * params@mu_b)
    comment(p2@mu_b) <- NULL
    expect_equal(p2@mu_b, 3 * params@mu_b)
})
test_that("Comment works on mu_b", {
    params <- NS_params
    # if no comment, it is set automatically
    ext_mort <- params@mu_b
    params <- setExtMort(params, ext_mort = ext_mort)
    expect_identical(comment(params@mu_b), "set manually")
    
    # comment is stored
    comment(ext_mort) <- "test"
    params <- setExtMort(params, ext_mort = ext_mort)
    expect_identical(comment(params@mu_b), "test")
    
    # if no comment, previous comment is kept
    comment(ext_mort) <- NULL
    params <- setExtMort(params, ext_mort = ext_mort)
    expect_identical(comment(params@mu_b), "test")
    
    # no message when nothing changes
    expect_message(setExtMort(params), NA)
    # but message when a change is not stored due to comment
    params@species_params$z0 <- 1
    expect_message(setExtMort(params),  "has been commented")
    # Can reset
    p <- setExtMort(params, reset = TRUE)
    expect_equal(p@mu_b[1, 1], 1,
                 check.attributes = FALSE)
    expect_warning(setExtMort(params, ext_mort = ext_mort,
                                    reset = TRUE),
                   "Because you set `reset = TRUE`, the")
})

# getExtMort ----
test_that("getExtMort works", {
    expect_identical(getExtMort(NS_params),
                     NS_params@mu_b)
})

test_that("Can get and set slot", {
    params <- NS_params
    ext_mort <- getExtMort(params)
    expect_identical(ext_mort(params), ext_mort)
    new <- 2 * ext_mort
    comment(new) <- "test"
    ext_mort(params) <- new
    expect_identical(ext_mort(params), new)
})

Try the mizer package in your browser

Any scripts or data that you put into this service are public.

mizer documentation built on April 26, 2023, 5:12 p.m.