tests/testthat/test-plotBiomassObservedVsModel.R

test_that("plotBiomassObservedVsModel works", {
    local_edition(3)
# Set up parameters
params <- NS_params

# check you get error without biomass_observed column
expect_error(plotBiomassObservedVsModel(params))

# pull out data frame for biomass comparison
species_params(params)$biomass_observed <-
  c(0.8, 61, 12, 35, 1.6, 20, 10, 7.6, 135, 60, 30, 78)
species_params(params)$biomass_cutoff <- 10
params <- calibrateBiomass(params)
dummy <- plotBiomassObservedVsModel(params, return_data = TRUE)

# Check biomasses equal those put in
expect_equal(dummy$observed, species_params(params)$biomass_observed)

# check that you get error with no species
expect_error(plotBiomassObservedVsModel(params, species = rep(FALSE, 12)))

# Try removing observed biomasses.
params2 <- params # copy over
species_params(params2)$biomass_observed[c(1, 7, 10)] <- NA
# plot without unobserved species
dummy <- plotBiomassObservedVsModel(params2, return_data = TRUE)
expect_equal(as.character(dummy$species), 
             species_params(params)$species[!is.na(species_params(params2)$biomass_observed)])
expect_equal(dummy$observed, 
             species_params(params2)$biomass_observed
             [!is.na(species_params(params2)$biomass_observed)])
# plot with unobserved species
dummy <- plotBiomassObservedVsModel(params2, return_data = TRUE,
                                   show_unobserved = TRUE)
expect_equal(as.character(dummy$species), 
             species_params(params)$species)

# # Try removing species, check it still checks out
sp_select <- c(1, 4, 7, 10, 11, 12) # choose some species
dummy <- plotBiomassObservedVsModel(params, species = sp_select, return_data = T)
expect_equal(nrow(dummy), length(sp_select))
expect_equal(dummy$observed, 
             species_params(params)$biomass_observed[sp_select])

# Finally, look at plot
dummy <- plotBiomassObservedVsModel(params, return_data = TRUE)
p <- plotBiomassObservedVsModel(params)
expect_true(is.ggplot(p))
expect_identical(p$labels$x, "observed biomass [g]")
expect_identical(p$labels$y, "model biomass [g]")
expect_identical(p$data, dummy)

vdiffr::expect_doppelganger("plotBiomassObservedVsModel", p)
})

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.