void TestPlan::testVpmbMetricMultiLevelAir() { char *cache = NULL; setupPrefsVpmb(); prefs.unit_system = METRIC; prefs.units.length = units::METERS; struct diveplan testPlan = { 0 }; setupPlanVpmbMultiLevelAir(&testPlan); setCurrentAppState("PlanDive"); plan(&testPlan, &cache, 1, 0); #if DEBUG free(displayed_dive.notes); displayed_dive.notes = NULL; save_dive(stdout, &displayed_dive); #endif // print first ceiling printf("First ceiling %.1f m\n", (mbar_to_depth(first_ceiling_pressure.mbar, &displayed_dive) * 0.001)); // check benchmark run time of 167 minutes, and known Subsurface runtime of 169 minutes QVERIFY(compareDecoTime(displayed_dive.dc.duration.seconds, 167u * 60u + 20u, 169u * 60u + 20u)); }
void TestPlan::testVpmbMetricMultiLevelAir() { struct deco_state *cache = NULL; setupPrefsVpmb(); prefs.unit_system = METRIC; prefs.units.length = units::METERS; struct diveplan testPlan = {}; setupPlanVpmbMultiLevelAir(&testPlan); setAppState(ApplicationState::PlanDive); plan(&test_deco_state, &testPlan, &displayed_dive, 60, stoptable, &cache, 1, 0); #if DEBUG free(displayed_dive.notes); displayed_dive.notes = NULL; save_dive(stdout, &displayed_dive, false); #endif // check minimum gas result struct divedatapoint *dp = testPlan.dp; while (!dp->minimum_gas.mbar && dp->next) dp = dp->next; QCOMPARE(lrint(dp->minimum_gas.mbar / 1000.0), 101l); // print first ceiling printf("First ceiling %.1f m\n", (mbar_to_depth(test_deco_state.first_ceiling_pressure.mbar, &displayed_dive) * 0.001)); // check benchmark run time of 167 minutes, and known Subsurface runtime of 169 minutes QVERIFY(compareDecoTime(displayed_dive.dc.duration.seconds, 167u * 60u + 20u, 169u * 60u + 20u)); }