Mercurial > public > hwos_code
comparison src/Tests/deco_volume_test.cpp @ 285:cd2320cd6f9a
NEW unit tests for gas volumes...
author | jdg@air |
---|---|
date | Fri, 29 May 2015 01:25:45 +0200 |
parents | |
children | 729b01914098 |
comparison
equal
deleted
inserted
replaced
284:d1117b99fd99 | 285:cd2320cd6f9a |
---|---|
1 ////////////////////////////////////////////////////////////////////////////// | |
2 /// deco_volume_test.cpp | |
3 /// Unit test for gas consumption c code. | |
4 /// Copyright (c) 2015, JD Gascuel, HeinrichsWeikamp, all right reserved. | |
5 ////////////////////////////////////////////////////////////////////////////// | |
6 // HISTORY | |
7 // 2015-05-27 jDG: Creation for gas volum re-introduction in hwOS 1.80 | |
8 | |
9 extern "C" { | |
10 # include "p2_deco.c" | |
11 } | |
12 | |
13 #include <gtest/gtest.h> | |
14 | |
15 ////////////////////////////////////////////////////////////////////////////// | |
16 /// \brief Defines a default OC gas list | |
17 static void setup_gas() | |
18 { | |
19 char_I_first_gas = 1; | |
20 char_I_const_ppO2 = 0; // Default to OC mode | |
21 | |
22 #define DEFINE_GAS(gas, o2, he, depth, role) \ | |
23 char_I_deco_N2_ratio [gas-1] = 100 - o2 - he; \ | |
24 char_I_deco_He_ratio [gas-1] = he; \ | |
25 char_I_deco_gas_change[gas-1] = depth; | |
26 | |
27 DEFINE_GAS(1, 21, 0, 0, 1); // Gas#1 : Air FIRST | |
28 DEFINE_GAS(2, 18, 30, 0, 2); // Gas#2 : Tx18/30 TRAVEL | |
29 DEFINE_GAS(3, 80, 0, 9, 3); // Gas#3 : Nx80 @ 9m DECO | |
30 DEFINE_GAS(4, 21, 0, 10, 0); // Gas#2 : air @ 10m DISABLED | |
31 DEFINE_GAS(5, 21, 0, 40, 0); // Gas#2 : air @ 40m DISABLED | |
32 } | |
33 | |
34 ////////////////////////////////////////////////////////////////////////////// | |
35 /// \brief Define a default deco plan. | |
36 static void setup_plan() | |
37 { | |
38 // 1 min at 12m | |
39 char_O_deco_time [0] = 1; | |
40 char_O_deco_depth[0] =12; | |
41 char_O_deco_gas [0] = 1; // Gas#1 | |
42 // 1 min at 9m | |
43 char_O_deco_time [1] = 1; | |
44 char_O_deco_depth[1] = 9; | |
45 char_O_deco_gas [1] = 3; // Gas#3 | |
46 // 3min at 6m | |
47 char_O_deco_time [2] = 3; | |
48 char_O_deco_depth[2] = 6; | |
49 char_O_deco_gas [2] = 3; // Gas#3 | |
50 // 12 min at 3m | |
51 char_O_deco_time [3] =12; | |
52 char_O_deco_depth[3] = 3; | |
53 char_O_deco_gas [3] = 3; // Gas#3 | |
54 // Done | |
55 for(int s=4; s<NUM_STOPS; ++s) { | |
56 char_O_deco_time [s] = 0; | |
57 char_O_deco_depth[s] = 0; | |
58 char_O_deco_gas [s] = 0; | |
59 } | |
60 } | |
61 | |
62 static void setup_dive(int bottom, int depth) | |
63 { | |
64 setup_gas(); | |
65 setup_plan(); | |
66 | |
67 char_I_bottom_depth = bottom; | |
68 char_I_bottom_time = depth; | |
69 } | |
70 | |
71 ////////////////////////////////////////////////////////////////////////////// | |
72 | |
73 TEST(gas_volume, run) | |
74 { | |
75 setup_dive(30, 40); // 30' @ 40m | |
76 | |
77 EXPECT_NO_THROW( deco_gas_volumes() ); | |
78 } |