2
2
#define UNITTEST_CHECKS_H
3
3
4
4
#include " Config.h"
5
+ #include " ExceptionMacros.h"
5
6
#include " TestResults.h"
6
7
#include " MemoryOutStream.h"
8
+ #include " RequiredCheckFailedException.h"
7
9
8
10
namespace UnitTest {
9
11
@@ -16,24 +18,29 @@ bool Check(Value const value)
16
18
17
19
18
20
template < typename Expected, typename Actual >
19
- void CheckEqual (TestResults& results, Expected const & expected, Actual const & actual, TestDetails const & details)
21
+ void CheckEqual (TestResults& results, Expected const & expected, Actual const & actual, TestDetails const & details, bool const required )
20
22
{
21
23
if (!(expected == actual))
22
24
{
23
25
UnitTest::MemoryOutStream stream;
24
26
stream << " Expected " << expected << " but was " << actual;
25
27
26
28
results.OnTestFailure (details, stream.GetText ());
29
+
30
+ if (required)
31
+ {
32
+ UT_THROW (RequiredCheckFailedException ());
33
+ }
27
34
}
28
35
}
29
36
30
- UNITTEST_LINKAGE void CheckEqual (TestResults& results, char const * expected, char const * actual, TestDetails const & details);
37
+ UNITTEST_LINKAGE void CheckEqual (TestResults& results, char const * expected, char const * actual, TestDetails const & details, bool const required );
31
38
32
- UNITTEST_LINKAGE void CheckEqual (TestResults& results, char * expected, char * actual, TestDetails const & details);
39
+ UNITTEST_LINKAGE void CheckEqual (TestResults& results, char * expected, char * actual, TestDetails const & details, bool const required );
33
40
34
- UNITTEST_LINKAGE void CheckEqual (TestResults& results, char * expected, char const * actual, TestDetails const & details);
41
+ UNITTEST_LINKAGE void CheckEqual (TestResults& results, char * expected, char const * actual, TestDetails const & details, bool const required );
35
42
36
- UNITTEST_LINKAGE void CheckEqual (TestResults& results, char const * expected, char * actual, TestDetails const & details);
43
+ UNITTEST_LINKAGE void CheckEqual (TestResults& results, char const * expected, char * actual, TestDetails const & details, bool const required );
37
44
38
45
template < typename Expected, typename Actual, typename Tolerance >
39
46
bool AreClose (Expected const & expected, Actual const & actual, Tolerance const & tolerance)
@@ -43,21 +50,26 @@ bool AreClose(Expected const& expected, Actual const& actual, Tolerance const& t
43
50
44
51
template < typename Expected, typename Actual, typename Tolerance >
45
52
void CheckClose (TestResults& results, Expected const & expected, Actual const & actual, Tolerance const & tolerance,
46
- TestDetails const & details)
53
+ TestDetails const & details, bool const required )
47
54
{
48
55
if (!AreClose (expected, actual, tolerance))
49
56
{
50
57
UnitTest::MemoryOutStream stream;
51
58
stream << " Expected " << expected << " +/- " << tolerance << " but was " << actual;
52
59
53
60
results.OnTestFailure (details, stream.GetText ());
61
+
62
+ if (required)
63
+ {
64
+ UT_THROW (RequiredCheckFailedException ());
65
+ }
54
66
}
55
67
}
56
68
57
69
58
70
template < typename Expected, typename Actual >
59
71
void CheckArrayEqual (TestResults& results, Expected const & expected, Actual const & actual,
60
- int const count, TestDetails const & details)
72
+ int const count, TestDetails const & details, bool const required )
61
73
{
62
74
bool equal = true ;
63
75
for (int i = 0 ; i < count; ++i)
@@ -80,6 +92,11 @@ void CheckArrayEqual(TestResults& results, Expected const& expected, Actual cons
80
92
stream << " ]" ;
81
93
82
94
results.OnTestFailure (details, stream.GetText ());
95
+
96
+ if (required)
97
+ {
98
+ UT_THROW (RequiredCheckFailedException ());
99
+ }
83
100
}
84
101
}
85
102
@@ -94,7 +111,8 @@ bool ArrayAreClose(Expected const& expected, Actual const& actual, int const cou
94
111
95
112
template < typename Expected, typename Actual, typename Tolerance >
96
113
void CheckArrayClose (TestResults& results, Expected const & expected, Actual const & actual,
97
- int const count, Tolerance const & tolerance, TestDetails const & details)
114
+ int const count, Tolerance const & tolerance, TestDetails const & details,
115
+ bool const required)
98
116
{
99
117
bool equal = ArrayAreClose (expected, actual, count, tolerance);
100
118
@@ -112,12 +130,18 @@ void CheckArrayClose(TestResults& results, Expected const& expected, Actual cons
112
130
stream << " ]" ;
113
131
114
132
results.OnTestFailure (details, stream.GetText ());
133
+
134
+ if (required)
135
+ {
136
+ UT_THROW (RequiredCheckFailedException ());
137
+ }
115
138
}
116
139
}
117
140
118
141
template < typename Expected, typename Actual, typename Tolerance >
119
142
void CheckArray2DClose (TestResults& results, Expected const & expected, Actual const & actual,
120
- int const rows, int const columns, Tolerance const & tolerance, TestDetails const & details)
143
+ int const rows, int const columns, Tolerance const & tolerance, TestDetails const & details,
144
+ bool const required)
121
145
{
122
146
bool equal = true ;
123
147
for (int i = 0 ; i < rows; ++i)
@@ -150,6 +174,11 @@ void CheckArray2DClose(TestResults& results, Expected const& expected, Actual co
150
174
stream << " ]" ;
151
175
152
176
results.OnTestFailure (details, stream.GetText ());
177
+
178
+ if (required)
179
+ {
180
+ UT_THROW (RequiredCheckFailedException ());
181
+ }
153
182
}
154
183
}
155
184
0 commit comments