source("../../R/load_all.R", chdir = TRUE)

obs <- read.csv("../../data/digitized/optic_trial_proptosis_change.csv")
obs <- obs[obs$week > 0, ]

test_that("calibrated defaults reproduce OPTIC proptosis change within 0.3mm RMSE", {
  weeks <- c(6, 12, 18, 24)
  days <- weeks * 7

  predicted <- function(drug_id) {
    sol <- ted_simulate(drug_id, body_weight_kg = 70, trab_baseline = 1.0,
                         disease_duration_days = 190, sim_days = 170, dt = 1)
    baseline <- sol$Proptosis_mm[sol$time == 0]
    vapply(days, function(d) sol$Proptosis_mm[which.min(abs(sol$time - d))] - baseline, numeric(1))
  }

  pred <- data.frame(
    week = rep(weeks, 2),
    arm = rep(c("teprotumumab", "placebo"), each = 4),
    predicted = c(predicted("teprotumumab"), predicted("none"))
  )
  merged <- merge(pred, obs, by = c("week", "arm"))
  rmse <- sqrt(mean((merged$predicted - merged$mean_change_mm)^2))
  expect_true(rmse < 0.3)  # calibrated fit achieves ~0.24mm
})
