summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGravatar Robert C. Helling <helling@atdotde.de>2017-02-09 18:12:44 +0100
committerGravatar Dirk Hohndel <dirk@hohndel.org>2017-02-11 08:31:42 -0800
commite31714d9b260b37ea2060e051594ad704137d844 (patch)
treefcdd054a99ac485f307804ade01864f9604290b0 /tests
parent057419fa8528504b5f84dbdb6d7acdb4141d03ee (diff)
downloadsubsurface-e31714d9b260b37ea2060e051594ad704137d844.tar.gz
Set up gaslist only in the beginning of diveplan
In the beginning of the diveplan, divedatapoints of zero duration indicate available gases with the depth giving the suggested switch depth. Zero-duration datapoints in the middle of the dive do not have this meaning and should thus be ignored when composing the gaslist. The tests should have these gas defining segments in the beginning. This fixes a problem when replanning a dive that would change to random gases during deco. Signed-off-by: Robert C. Helling <helling@atdotde.de>
Diffstat (limited to 'tests')
-rw-r--r--tests/testplan.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/tests/testplan.cpp b/tests/testplan.cpp
index a60b3d2ab..3be4497e4 100644
--- a/tests/testplan.cpp
+++ b/tests/testplan.cpp
@@ -56,10 +56,10 @@ void setupPlan(struct diveplan *dp)
free_dps(dp);
int droptime = M_OR_FT(79, 260) * 60 / M_OR_FT(23, 75);
- plan_add_segment(dp, droptime, M_OR_FT(79, 260), 0, 0, 1);
- plan_add_segment(dp, 30*60 - droptime, M_OR_FT(79, 260), 0, 0, 1);
plan_add_segment(dp, 0, gas_mod(&ean36, po2, &displayed_dive, M_OR_FT(3,10)).mm, 1, 0, 1);
plan_add_segment(dp, 0, gas_mod(&oxygen, po2, &displayed_dive, M_OR_FT(3,10)).mm, 2, 0, 1);
+ plan_add_segment(dp, droptime, M_OR_FT(79, 260), 0, 0, 1);
+ plan_add_segment(dp, 30*60 - droptime, M_OR_FT(79, 260), 0, 0, 1);
}
void setupPlanVpmb60m30minAir(struct diveplan *dp)
@@ -97,9 +97,9 @@ void setupPlanVpmb60m30minEan50(struct diveplan *dp)
free_dps(dp);
int droptime = M_OR_FT(60, 200) * 60 / M_OR_FT(99, 330);
+ plan_add_segment(dp, 0, gas_mod(&ean50, po2, &displayed_dive, M_OR_FT(3,10)).mm, 1, 0, 1);
plan_add_segment(dp, droptime, M_OR_FT(60, 200), 0, 0, 1);
plan_add_segment(dp, 30*60 - droptime, M_OR_FT(60, 200), 0, 0, 1);
- plan_add_segment(dp, 0, gas_mod(&ean50, po2, &displayed_dive, M_OR_FT(3,10)).mm, 1, 0, 1);
}
void setupPlanVpmb60m30minTx(struct diveplan *dp)
@@ -119,9 +119,9 @@ void setupPlanVpmb60m30minTx(struct diveplan *dp)
free_dps(dp);
int droptime = M_OR_FT(60, 200) * 60 / M_OR_FT(99, 330);
+ plan_add_segment(dp, 0, gas_mod(&ean50, po2, &displayed_dive, M_OR_FT(3,10)).mm, 1, 0, 1);
plan_add_segment(dp, droptime, M_OR_FT(60, 200), 0, 0, 1);
plan_add_segment(dp, 30*60 - droptime, M_OR_FT(60, 200), 0, 0, 1);
- plan_add_segment(dp, 0, gas_mod(&ean50, po2, &displayed_dive, M_OR_FT(3,10)).mm, 1, 0, 1);
}
void setupPlanVpmbMultiLevelAir(struct diveplan *dp)
@@ -163,10 +163,10 @@ void setupPlanVpmb100m60min(struct diveplan *dp)
free_dps(dp);
int droptime = M_OR_FT(100, 330) * 60 / M_OR_FT(99, 330);
- plan_add_segment(dp, droptime, M_OR_FT(100, 330), 0, 0, 1);
- plan_add_segment(dp, 60*60 - droptime, M_OR_FT(100, 330), 0, 0, 1);
plan_add_segment(dp, 0, gas_mod(&ean50, po2, &displayed_dive, M_OR_FT(3,10)).mm, 1, 0, 1);
plan_add_segment(dp, 0, gas_mod(&oxygen, po2, &displayed_dive, M_OR_FT(3,10)).mm, 2, 0, 1);
+ plan_add_segment(dp, droptime, M_OR_FT(100, 330), 0, 0, 1);
+ plan_add_segment(dp, 60*60 - droptime, M_OR_FT(100, 330), 0, 0, 1);
}
void setupPlanVpmb100m10min(struct diveplan *dp)
@@ -188,10 +188,10 @@ void setupPlanVpmb100m10min(struct diveplan *dp)
free_dps(dp);
int droptime = M_OR_FT(100, 330) * 60 / M_OR_FT(99, 330);
- plan_add_segment(dp, droptime, M_OR_FT(100, 330), 0, 0, 1);
- plan_add_segment(dp, 10*60 - droptime, M_OR_FT(100, 330), 0, 0, 1);
plan_add_segment(dp, 0, gas_mod(&ean50, po2, &displayed_dive, M_OR_FT(3,10)).mm, 1, 0, 1);
plan_add_segment(dp, 0, gas_mod(&oxygen, po2, &displayed_dive, M_OR_FT(3,10)).mm, 2, 0, 1);
+ plan_add_segment(dp, droptime, M_OR_FT(100, 330), 0, 0, 1);
+ plan_add_segment(dp, 10*60 - droptime, M_OR_FT(100, 330), 0, 0, 1);
}
void setupPlanVpmb30m20min(struct diveplan *dp)
@@ -233,13 +233,13 @@ void setupPlanVpmb100mTo70m30min(struct diveplan *dp)
free_dps(dp);
int droptime = M_OR_FT(100, 330) * 60 / M_OR_FT(18, 60);
+ plan_add_segment(dp, 0, gas_mod(&tx21_35, po2, &displayed_dive, M_OR_FT(3,10)).mm, 1, 0, 1);
+ plan_add_segment(dp, 0, gas_mod(&ean50, po2, &displayed_dive, M_OR_FT(3,10)).mm, 2, 0, 1);
+ plan_add_segment(dp, 0, gas_mod(&oxygen, po2, &displayed_dive, M_OR_FT(3,10)).mm, 3, 0, 1);
plan_add_segment(dp, droptime, M_OR_FT(100, 330), 0, 0, 1);
plan_add_segment(dp, 20*60 - droptime, M_OR_FT(100, 330), 0, 0, 1);
plan_add_segment(dp, 3*60, M_OR_FT(70, 230), 0, 0, 1);
plan_add_segment(dp, (30 - 20 - 3) * 60, M_OR_FT(70, 230), 0, 0, 1);
- plan_add_segment(dp, 0, gas_mod(&tx21_35, po2, &displayed_dive, M_OR_FT(3,10)).mm, 1, 0, 1);
- plan_add_segment(dp, 0, gas_mod(&ean50, po2, &displayed_dive, M_OR_FT(3,10)).mm, 2, 0, 1);
- plan_add_segment(dp, 0, gas_mod(&oxygen, po2, &displayed_dive, M_OR_FT(3,10)).mm, 3, 0, 1);
}
/* We compare the calculated runtimes against two values: