tests/testthat/helper-setup.R

# =============================================================================
# helper-setup.R
# Fixtures compartidos para todos los tests de fb4package.
# Testthat carga automáticamente todos los archivos helper-*.R antes de correr
# cualquier test, por lo que estos objetos están disponibles en todos los tests.
# =============================================================================

# ---------------------------------------------------------------------------
# 1. Parámetros crudos de Chinook salmon (Stewart & Ibarra 1991)
# ---------------------------------------------------------------------------
chinook_species_params <- list(
  consumption = list(
    CEQ = 2, CA = 0.303, CB = -0.275,
    CQ = 3.0, CTO = 15.0, CTM = 20.0, CTL = 24.0,
    CK1 = 0.1, CK4 = 0.13
  ),
  respiration = list(
    REQ = 1, RA = 0.00264, RB = -0.217, RQ = 0.06818,
    RTO = 0.0234, RTM = 0.0, RTL = 25.0,
    RK1 = 1.0, RK4 = 0.13, RK5 = 0.0
  ),
  activity = list(ACT = 1.0, BACT = 0.0),
  sda      = list(SDA = 0.172),
  egestion = list(EGEQ = 1, FA = 0.212, FB = -0.222, FG = 0.631),
  excretion = list(EXEQ = 1, UA = 0.0314, UB = 0.58, UG = -0.299),
  predator = list(
    PREDEDEQ = 2, Alpha1 = 4500, Beta1 = 6.0,
    Alpha2 = 5500, Beta2 = 2.0, Cutoff = 250
  )
)

chinook_species_info <- list(
  scientific_name = "Oncorhynchus tshawytscha",
  common_name     = "Chinook salmon",
  family          = "Salmonidae",
  life_stage      = "adult"
)

# ---------------------------------------------------------------------------
# 2. Datos ambientales: temperatura anual simplificada (30 días)
# ---------------------------------------------------------------------------
make_temp_data <- function(n = 30, seed = 42) {
  set.seed(seed)
  days <- seq_len(n)
  data.frame(
    Day         = days,
    Temperature = round(8 + 4 * sin(2 * pi * (days - 60) / 365) + rnorm(n, 0, 0.3), 2)
  )
}

chinook_temp_data <- make_temp_data(30)

# ---------------------------------------------------------------------------
# 3. Dieta uniforme simplificada (30 días, 2 presas)
# ---------------------------------------------------------------------------
make_diet_data <- function(n = 30) {
  days <- seq_len(n)
  list(
    proportions = data.frame(
      Day     = days,
      Alewife = 0.7,
      Shrimp  = 0.3
    ),
    prey_names = c("Alewife", "Shrimp"),
    energies   = data.frame(
      Day     = days,
      Alewife = 4900,
      Shrimp  = 3200
    )
  )
}

chinook_diet_data <- make_diet_data(30)

# ---------------------------------------------------------------------------
# 4. Objeto Bioenergetic listo para simulaciones cortas (30 días)
# ---------------------------------------------------------------------------
make_bio_chinook <- function(n_days = 30, initial_weight = 800) {
  bio <- Bioenergetic(
    species_params      = chinook_species_params,
    species_info        = chinook_species_info,
    environmental_data  = list(temperature = make_temp_data(n_days)),
    diet_data           = make_diet_data(n_days),
    simulation_settings = list(initial_weight = initial_weight, duration = n_days)
  )
  bio$species_params$predator$ED_ini <- 4000
  bio$species_params$predator$ED_end <- 4500
  bio
}

bio_chinook_30 <- make_bio_chinook(30, 800)

# ---------------------------------------------------------------------------
# 5. Parámetros de consumo procesados (para tests unitarios de bajo nivel)
# ---------------------------------------------------------------------------
processed_cons_params <- fb4package:::process_consumption_params(chinook_species_params$consumption)
processed_resp_params <- fb4package:::process_respiration_params(
  chinook_species_params$respiration,
  activity_params = chinook_species_params$activity,
  sda_params      = chinook_species_params$sda
)
processed_ege_params  <- fb4package:::process_egestion_params(chinook_species_params$egestion)
processed_exc_params  <- fb4package:::process_excretion_params(chinook_species_params$excretion)

Try the fb4package package in your browser

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

fb4package documentation built on May 8, 2026, 1:07 a.m.