| Line | Branch | Decision | Exec | Source |
|---|---|---|---|---|
| 1 | /** | |||
| 2 | * @file script_impl.cpp | |||
| 3 | * | |||
| 4 | * @date Oct 5, 2014 | |||
| 5 | * @author Andrey Belomutskiy, (c) 2012-2020 | |||
| 6 | */ | |||
| 7 | ||||
| 8 | #include "pch.h" | |||
| 9 | ||||
| 10 | #include "script_impl.h" | |||
| 11 | ||||
| 12 | using namespace rusefi::stringutil; | |||
| 13 | ||||
| 14 | static script1_Map3D_f32t scriptTable1{"script1"}; | |||
| 15 | static script2_Map3D_f32t scriptTable2{"script2"}; | |||
| 16 | static script3_Map3D_u8t scriptTable3{"script3"}; | |||
| 17 | static script4_Map3D_u8t scriptTable4{"script4"}; | |||
| 18 | ||||
| 19 | 2 | ValueProvider3D *getscriptTable(int index) { | ||
| 20 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
2 | switch (index) { | |
| 21 | ✗ | default: | ||
| 22 | ✗ | return &scriptTable1; | ||
| 23 |
1/1✓ Decision 'true' taken 2 times.
|
2 | case 1: | |
| 24 | 2 | return &scriptTable2; | ||
| 25 | ✗ | case 2: | ||
| 26 | ✗ | return &scriptTable3; | ||
| 27 | ✗ | case 3: | ||
| 28 | ✗ | return &scriptTable4; | ||
| 29 | } | |||
| 30 | } | |||
| 31 | ||||
| 32 | // todo: template this copy-pasta | |||
| 33 | /** | |||
| 34 | * @return zero-based index of curve with given name | |||
| 35 | */ | |||
| 36 | 2 | expected<int> getCurveIndexByName(const char *name) { | ||
| 37 |
1/2✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
|
1/2✓ Decision 'true' taken 8 times.
✗ Decision 'false' not taken.
|
8 | for (int i = 0;i<SCRIPT_CURVE_COUNT;i++) { |
| 38 |
3/3✓ Branch 2 taken 8 times.
✓ Branch 4 taken 2 times.
✓ Branch 5 taken 6 times.
|
2/2✓ Decision 'true' taken 2 times.
✓ Decision 'false' taken 6 times.
|
8 | if (strEqualCaseInsensitive(name, engineConfiguration->scriptCurveName[i])) { |
| 39 | 2 | return i; | ||
| 40 | } | |||
| 41 | } | |||
| 42 | ||||
| 43 | ✗ | return unexpected; | ||
| 44 | } | |||
| 45 | ||||
| 46 | ✗ | expected<int> getTableIndexByName(const char *name) { | ||
| 47 | ✗ | for (int i = 0;i<SCRIPT_TABLE_COUNT;i++) { | ||
| 48 | ✗ | if (strEqualCaseInsensitive(name, engineConfiguration->scriptTableName[i])) { | ||
| 49 | ✗ | return i; | ||
| 50 | } | |||
| 51 | } | |||
| 52 | ||||
| 53 | ✗ | return unexpected; | ||
| 54 | } | |||
| 55 | ||||
| 56 | ✗ | expected<int> getSettingIndexByName(const char *name) { | ||
| 57 | ✗ | for (int i = 0;i<SCRIPT_SETTING_COUNT;i++) { | ||
| 58 | ✗ | if (strEqualCaseInsensitive(name, engineConfiguration->scriptSettingName[i])) { | ||
| 59 | ✗ | return i; | ||
| 60 | } | |||
| 61 | } | |||
| 62 | ||||
| 63 | ✗ | return unexpected; | ||
| 64 | } | |||
| 65 | ||||
| 66 | 1 | float getCurveValue(int index, float key) { | ||
| 67 | // not great code at all :( | |||
| 68 |
1/6✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 2 not taken.
✓ Branch 3 taken 1 time.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
1 | switch (index) { | |
| 69 | ✗ | default: | ||
| 70 | ✗ | return interpolate2d(key, config->scriptCurve1Bins, config->scriptCurve1); | ||
| 71 | ✗ | case 1: | ||
| 72 | ✗ | return interpolate2d(key, config->scriptCurve2Bins, config->scriptCurve2); | ||
| 73 | ✗ | case 2: | ||
| 74 | ✗ | return interpolate2d(key, config->scriptCurve3Bins, config->scriptCurve3); | ||
| 75 |
1/1✓ Decision 'true' taken 1 time.
|
1 | case 3: | |
| 76 | 1 | return interpolate2d(key, config->scriptCurve4Bins, config->scriptCurve4); | ||
| 77 | ✗ | case 4: | ||
| 78 | ✗ | return interpolate2d(key, config->scriptCurve5Bins, config->scriptCurve5); | ||
| 79 | ✗ | case 5: | ||
| 80 | ✗ | return interpolate2d(key, config->scriptCurve6Bins, config->scriptCurve6); | ||
| 81 | } | |||
| 82 | } | |||
| 83 | ||||
| 84 | 585 | void initScriptImpl() { | ||
| 85 | 585 | scriptTable1.initTable(config->scriptTable1, config->scriptTable1RpmBins, config->scriptTable1LoadBins); | ||
| 86 | 585 | scriptTable2.initTable(config->scriptTable2, config->scriptTable2RpmBins, config->scriptTable2LoadBins); | ||
| 87 | 585 | scriptTable3.initTable(config->scriptTable3, config->scriptTable3RpmBins, config->scriptTable3LoadBins); | ||
| 88 | 585 | scriptTable4.initTable(config->scriptTable4, config->scriptTable4RpmBins, config->scriptTable4LoadBins); | ||
| 89 | 585 | } | ||
| 90 |