void TestPlan::testImperial() { char *cache = NULL; setupPrefs(); prefs.unit_system = IMPERIAL; prefs.units.length = units::FEET; prefs.deco_mode = BUEHLMANN; struct diveplan testPlan = { 0 }; setupPlan(&testPlan); plan(&testPlan, &cache, 1, 0); #if DEBUG free(displayed_dive.notes); displayed_dive.notes = NULL; save_dive(stdout, &displayed_dive); #endif // check first gas change to EAN36 at 33m struct event *ev = displayed_dive.dc.events; QVERIFY(ev != NULL); QCOMPARE(ev->gas.index, 1); QCOMPARE(ev->value, 36); QCOMPARE(get_depth_at_time(&displayed_dive.dc, ev->time.seconds), 33528); // check second gas change to Oxygen at 6m ev = ev->next; QVERIFY(ev != NULL); QCOMPARE(ev->gas.index, 2); QCOMPARE(ev->value, 100); QCOMPARE(get_depth_at_time(&displayed_dive.dc, ev->time.seconds), 6096); // check expected run time of 110 minutes QVERIFY(compareDecoTime(displayed_dive.dc.duration.seconds, 110u * 60u - 2u, 110u * 60u - 2u)); }
void SPxSteepPR::setType(SPxSolver::Type type) { workRhs.setEpsilon(thesolver->epsilon()); pref.reSize (thesolver->coDim()); coPref.reSize(thesolver->dim()); setupPrefs(type); setupWeights(type); workVec.clear(); workRhs.clear(); refined = false; if( type == SPxSolver::ENTER && thesolver->hyperPricingEnter ) { if( thesolver->sparsePricingEnter ) { bestPrices.clear(); bestPrices.setMax(thesolver->dim()); prices.reMax(thesolver->dim()); } if( thesolver->sparsePricingEnterCo ) { bestPricesCo.clear(); bestPricesCo.setMax(thesolver->coDim()); pricesCo.reMax(thesolver->coDim()); } } if( type == SPxSolver::LEAVE && thesolver->sparsePricingLeave && thesolver->hyperPricingLeave ) { bestPrices.clear(); bestPrices.setMax(thesolver->dim()); prices.reMax(thesolver->dim()); } }
void TestPlan::testImperial() { struct deco_state *cache = NULL; setupPrefs(); prefs.unit_system = IMPERIAL; prefs.units.length = units::FEET; prefs.planner_deco_mode = BUEHLMANN; struct diveplan testPlan = {}; setupPlan(&testPlan); 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), 154l); // check first gas change to EAN36 at 33m struct event *ev = displayed_dive.dc.events; QVERIFY(ev != NULL); QCOMPARE(ev->gas.index, 1); QCOMPARE(ev->value, 36); QCOMPARE(get_depth_at_time(&displayed_dive.dc, ev->time.seconds), 33528); // check second gas change to Oxygen at 6m ev = ev->next; QVERIFY(ev != NULL); QCOMPARE(ev->gas.index, 2); QCOMPARE(ev->value, 100); QCOMPARE(get_depth_at_time(&displayed_dive.dc, ev->time.seconds), 6096); // check expected run time of 111 minutes QVERIFY(compareDecoTime(displayed_dive.dc.duration.seconds, 111u * 60u - 2u, 111u * 60u - 2u)); }