use atmosim::prelude::*;
#[test]
fn heat_capacity_caching_works() {
let engine = Atmosim::default();
let mut mix = engine.create_mixture(
gases! {
Gas::Ammonia | Gas::CarbonDioxide | Gas::Frezon |
Gas::Nitrogen | Gas::NitrousOxide | Gas::Oxygen |
Gas::Plasma | Gas::Tritium | Gas::WaterVapor => 100.,
_ => 0.,
},
500.,
);
for tick in 0..7200 {
assert!(
mix.react(),
"The mix stopped reacting too soon, only lasted {tick} ticks"
);
let cached = mix.get_heat_capacity();
let real = GasMixture::calculate_heat_capacity(mix.moles(), &engine);
assert!(
(cached - real).abs() / cached < 0.00001,
"Caching precision wasn't good enough, only lasted {tick} ticks"
)
}
}