1
+ //
2
+ // Created by kifir on 11/28/24.
3
+ //
4
+
5
+ #include " pch.h"
6
+
7
+ #include " util/test_base.h"
8
+
9
+ namespace {
10
+ struct MapConditionTestData {
11
+ const std::optional<float > map;
12
+ const bool expectedMapCondition;
13
+ const char * const context;
14
+ };
15
+
16
+ class NitrousMapConditionTest : public TestBase {
17
+ protected:
18
+ static constexpr int TEST_MAP = 45 ;
19
+
20
+ void checkMapCondition (const std::vector<MapConditionTestData>& testData);
21
+ };
22
+
23
+ void NitrousMapConditionTest::checkMapCondition (const std::vector<MapConditionTestData>& testData) {
24
+ for (const MapConditionTestData& item: testData) {
25
+ updateMap (item.map );
26
+ EXPECT_EQ (engine->nitrousController .isMapConditionSatisfied , item.expectedMapCondition ) << item.context ;
27
+ }
28
+ }
29
+
30
+ TEST_F (NitrousMapConditionTest, checkDefault) {
31
+ checkMapCondition ({
32
+ { {}, false , " default" },
33
+ { { 0 .0f }, false , " 0.0" },
34
+ { { TEST_MAP - EPS5D }, false , " TEST_MAP - EPS5D" },
35
+ { { TEST_MAP }, false , " TEST_MAP" },
36
+ { { TEST_MAP + EPS5D }, false , " TEST_MAP + EPS5D" },
37
+ });
38
+ }
39
+
40
+ TEST_F (NitrousMapConditionTest, checkDefaultWithDisabledNitrousControl) {
41
+ setUpEngineConfiguration (EngineConfig ().setNitrousControlEnabled ({ false }));
42
+ checkMapCondition ({
43
+ { {}, false , " default" },
44
+ { { 0 .0f }, false , " 0.0" },
45
+ { { TEST_MAP - EPS5D }, false , " TEST_MAP - EPS5D" },
46
+ { { TEST_MAP }, false , " TEST_MAP" },
47
+ { { TEST_MAP + EPS5D }, false , " TEST_MAP + EPS5D" },
48
+ });
49
+ }
50
+
51
+ TEST_F (NitrousMapConditionTest, checkDefaultWithEnabledNitrousControl) {
52
+ setUpEngineConfiguration (EngineConfig ().setNitrousControlEnabled ({ true }));
53
+ checkMapCondition ({
54
+ { {}, true , " default" },
55
+ { { 0 .0f }, true , " 0.0" },
56
+ { { TEST_MAP - EPS5D }, true , " TEST_MAP - EPS5D" },
57
+ { { TEST_MAP }, true , " TEST_MAP" },
58
+ { { TEST_MAP + EPS5D }, true , " TEST_MAP + EPS5D" },
59
+ });
60
+ }
61
+
62
+ TEST_F (NitrousMapConditionTest, checkZeroMaximumMap) {
63
+ setUpEngineConfiguration (
64
+ EngineConfig ()
65
+ .setNitrousControlEnabled ({ true })
66
+ .setNitrousMaximumMap (0 .0f )
67
+ );
68
+ checkMapCondition ({
69
+ { {}, true , " default" },
70
+ { { 0 .0f }, true , " 0.0" },
71
+ { { TEST_MAP - EPS5D }, true , " TEST_MAp - EPS5D" },
72
+ { { TEST_MAP }, true , " TEST_MAP" },
73
+ { { TEST_MAP + EPS5D }, true , " TEST_MAP + EPS5D" },
74
+ });
75
+ }
76
+
77
+ TEST_F (NitrousMapConditionTest, checkMaximumMap) {
78
+ setUpEngineConfiguration (
79
+ EngineConfig ()
80
+ .setNitrousControlEnabled ({ true })
81
+ .setNitrousMaximumMap ({ TEST_MAP })
82
+ );
83
+ checkMapCondition ({
84
+ // { {}, false, "default" },
85
+ { { 0 .0f }, true , " 0.0" },
86
+ // { { TEST_MAP - EPS5D }, true, "TEST_MAP - EPS5D" },
87
+ // { { TEST_MAP }, false, "TEST_MAP" },
88
+ // { { TEST_MAP + EPS5D }, false, "TEST_MAP + EPS5D" },
89
+ });
90
+ }
91
+ }
0 commit comments