# Shared model for a novel object recognition test: each mouse's total exploration time (s) and its discrimination
# index DI = (novel - familiar) / (novel + familiar). True mean DI per group; mouse-to-mouse SD 0.25.
import numpy as np
def simulate(rng, n, mean_di, sd=0.25):
    total = rng.gamma(6, 6, n)                       # total exploration, mean 36 s
    di = np.clip(mean_di + rng.normal(0, sd, n), -0.95, 0.95)
    novel = total * (1 + di) / 2
    return np.round(novel, 1), np.round(total - novel, 1)
