R Under development (unstable) (2025-04-18 r88159 ucrt) -- "Unsuffered Consequences" Copyright (C) 2025 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > if (!interactive()) options(warn=2, error = function() { sink(stderr()) ; traceback(3) ; q(status = 1) }) > library(unittest) > > library(gadget3) > > comven12 <- g3_fleet("comven12") > st_imm <- g3_stock(c(species = "st", maturity = "imm"), c(10, 20, 30)) |> g3s_age(1, 5) > st_mat <- g3_stock(c(species = "st", maturity = "mat"), c(10, 20, 30)) |> g3s_age(1, 5) > stocks_st <- list(st_imm, st_mat) > > actions <- list( + g3a_time(2000, 2005, step_lengths = c(6,6), project_years = 0), + g3a_otherfood_normalcv( + st_imm, + factor_f = g3_parameterized( + 'of_abund', by_year = TRUE, by_stock = TRUE, + ifmissing = "of_abund.proj" )), + g3a_otherfood_normalcv( + st_mat, + factor_f = g3_parameterized( + 'of_abund', by_year = TRUE, by_stock = TRUE, + ifmissing = "of_abund.proj" )), + + g3a_predate_fleet( + fleet_stock = comven12, + prey_stocks = stocks_st, + suitabilities = g3_suitability_exponentiall50( + l50 = g3_timevariable('com.l50', list( + "init" = g3_parameterized('com.l50.early'), + "2003" = g3_parameterized('com.l50.late') ))), + catchability_f = g3a_predate_catchability_totalfleet(100) ), + + # NB: Dummy parameter so model will compile in TMB + ~{nll <- nll + g3_param("x", value = 0)} ) > full_actions <- c(actions, list( + g3a_report_detail(actions) )) > model_fn <- g3_to_r(full_actions) > model_cpp <- g3_to_tmb(full_actions) > > attr(model_cpp, 'parameter_template') |> + g3_init_val("st_*.of_abund.#", 1e6) |> + + g3_init_val("*.K", 0.3, lower = 0.04, upper = 1.2) |> + g3_init_val("*.Linf", max(g3_stock_def(st_imm, "midlen")), spread = 0.2) |> + g3_init_val("*.t0", g3_stock_def(st_imm, "minage") - 0.8, spread = 2) |> + g3_init_val("*.lencv", 0.1, optimise = FALSE) |> + g3_init_val("*.walpha", 0.01, optimise = FALSE) |> + g3_init_val("*.wbeta", 3, optimise = FALSE) |> + + g3_init_val("*.*.alpha", 1) |> + g3_init_val("com.l50.early", 5) |> + g3_init_val("com.l50.late", 25) |> + identity() -> params.in > nll <- model_fn(params.in) ; r <- attributes(nll) ; nll <- as.vector(nll) > > ok(gadget3:::ut_cmp_df(as.data.frame(g3_array_agg(r$detail_st_imm_comven12__cons, c("year", "length"))), " + 2000 2001 2002 2003 2004 2005 + 10:20 12.17300 12.17300 12.17300 4.7026e-04 4.7026e-04 4.7026e-04 + 20:30 86.86000 86.86000 86.86000 9.7822e+01 9.7822e+01 9.7822e+01 + 30:Inf 0.96607 0.96607 0.96607 2.1768e+00 2.1768e+00 2.1768e+00 + ", tolerance = 1e-3), "detail_st_imm_comven12__cons: Suitability changes after 2003") ok - detail_st_imm_comven12__cons: Suitability changes after 2003 > > ok(gadget3:::ut_cmp_df(as.data.frame(g3_array_agg(r$detail_st_mat_comven12__cons, c("year", "length"))), " + 2000 2001 2002 2003 2004 2005 + 10:20 12.17300 12.17300 12.17300 4.7026e-04 4.7026e-04 4.7026e-04 + 20:30 86.86000 86.86000 86.86000 9.7822e+01 9.7822e+01 9.7822e+01 + 30:Inf 0.96607 0.96607 0.96607 2.1768e+00 2.1768e+00 2.1768e+00 + ", tolerance = 1e-3), "detail_st_mat_comven12__cons: Suitability changes after 2003") ok - detail_st_mat_comven12__cons: Suitability changes after 2003 > > gadget3:::ut_tmb_r_compare2(model_fn, model_cpp, params.in) # skip: not running TMB tests NULL > > proc.time() user system elapsed 2.43 0.15 2.57 1..2 # Looks like you passed all 2 tests.