use darkmatter::cosmology::boltzmann::{
coannihilation_effective_sigma_v, entropy_injection_ratio, freeze_in_relic_density,
freeze_out_x_from_solution, relic_density_from_solution, solve_boltzmann_freeze_out,
};
fn main() {
let m_dm = 100.0;
let sigma_v = 3e-26;
let g_dm = 2.0;
let solution = solve_boltzmann_freeze_out(m_dm, sigma_v, g_dm, 1.0, 50.0, 5000);
let (x_f, y_f) = solution.last().copied().unwrap();
let omega_h2 = relic_density_from_solution(y_f, m_dm, x_f);
let x_fo = freeze_out_x_from_solution(&solution, g_dm, m_dm);
let sigma_eff = coannihilation_effective_sigma_v(3e-26, 2e-26, 1e-26, 2.0, 2.0, 0.1, 20.0);
let omega_fi = freeze_in_relic_density(1e-12, 1000.0, 10.0);
let s_ratio = entropy_injection_ratio(1e4, 1e2);
let check = omega_h2 + x_fo + sigma_eff + omega_fi + s_ratio + solution.len() as f64;
assert!(check.is_finite());
}