/[projet1]/public/pc/shared_libraries/unittestcpp/v1.4/src/Checks.h
Defence Force logotype

Annotation of /public/pc/shared_libraries/unittestcpp/v1.4/src/Checks.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 126 - (hide annotations)
Mon Jul 13 12:20:10 2009 UTC (10 years, 8 months ago) by dbug
File MIME type: text/plain
File size: 5093 byte(s)
Added some shared libraries (UnitTest++, and FreeImage) to avoid having every single project brings its own libraries.
Ideally people should add them in a way we can upgrade versions without breaking things:
-> public/pc/shared_libraries/library_name/library_version/actuall_content
1 dbug 126 #ifndef UNITTEST_CHECKS_H
2     #define UNITTEST_CHECKS_H
3    
4     #include "Config.h"
5     #include "TestResults.h"
6     #include "MemoryOutStream.h"
7    
8     namespace UnitTest {
9    
10    
11     template< typename Value >
12     bool Check(Value const value)
13     {
14     return !!value; // doing double negative to avoid silly VS warnings
15     }
16    
17    
18     template< typename Expected, typename Actual >
19     void CheckEqual(TestResults& results, Expected const& expected, Actual const& actual, TestDetails const& details)
20     {
21     if (!(expected == actual))
22     {
23     UnitTest::MemoryOutStream stream;
24     stream << "Expected " << expected << " but was " << actual;
25    
26     results.OnTestFailure(details, stream.GetText());
27     }
28     }
29    
30     void CheckEqual(TestResults& results, char const* expected, char const* actual, TestDetails const& details);
31    
32     void CheckEqual(TestResults& results, char* expected, char* actual, TestDetails const& details);
33    
34     void CheckEqual(TestResults& results, char* expected, char const* actual, TestDetails const& details);
35    
36     void CheckEqual(TestResults& results, char const* expected, char* actual, TestDetails const& details);
37    
38     template< typename Expected, typename Actual, typename Tolerance >
39     bool AreClose(Expected const& expected, Actual const& actual, Tolerance const& tolerance)
40     {
41     return (actual >= (expected - tolerance)) && (actual <= (expected + tolerance));
42     }
43    
44     template< typename Expected, typename Actual, typename Tolerance >
45     void CheckClose(TestResults& results, Expected const& expected, Actual const& actual, Tolerance const& tolerance,
46     TestDetails const& details)
47     {
48     if (!AreClose(expected, actual, tolerance))
49     {
50     UnitTest::MemoryOutStream stream;
51     stream << "Expected " << expected << " +/- " << tolerance << " but was " << actual;
52    
53     results.OnTestFailure(details, stream.GetText());
54     }
55     }
56    
57    
58     template< typename Expected, typename Actual >
59     void CheckArrayEqual(TestResults& results, Expected const& expected, Actual const& actual,
60     int const count, TestDetails const& details)
61     {
62     bool equal = true;
63     for (int i = 0; i < count; ++i)
64     equal &= (expected[i] == actual[i]);
65    
66     if (!equal)
67     {
68     UnitTest::MemoryOutStream stream;
69    
70     stream << "Expected [ ";
71    
72     for (int expectedIndex = 0; expectedIndex < count; ++expectedIndex)
73     stream << expected[expectedIndex] << " ";
74    
75     stream << "] but was [ ";
76    
77     for (int actualIndex = 0; actualIndex < count; ++actualIndex)
78     stream << actual[actualIndex] << " ";
79    
80     stream << "]";
81    
82     results.OnTestFailure(details, stream.GetText());
83     }
84     }
85    
86     template< typename Expected, typename Actual, typename Tolerance >
87     bool ArrayAreClose(Expected const& expected, Actual const& actual, int const count, Tolerance const& tolerance)
88     {
89     bool equal = true;
90     for (int i = 0; i < count; ++i)
91     equal &= AreClose(expected[i], actual[i], tolerance);
92     return equal;
93     }
94    
95     template< typename Expected, typename Actual, typename Tolerance >
96     void CheckArrayClose(TestResults& results, Expected const& expected, Actual const& actual,
97     int const count, Tolerance const& tolerance, TestDetails const& details)
98     {
99     bool equal = ArrayAreClose(expected, actual, count, tolerance);
100    
101     if (!equal)
102     {
103     UnitTest::MemoryOutStream stream;
104    
105     stream << "Expected [ ";
106     for (int expectedIndex = 0; expectedIndex < count; ++expectedIndex)
107     stream << expected[expectedIndex] << " ";
108     stream << "] +/- " << tolerance << " but was [ ";
109    
110     for (int actualIndex = 0; actualIndex < count; ++actualIndex)
111     stream << actual[actualIndex] << " ";
112     stream << "]";
113    
114     results.OnTestFailure(details, stream.GetText());
115     }
116     }
117    
118     template< typename Expected, typename Actual, typename Tolerance >
119     void CheckArray2DClose(TestResults& results, Expected const& expected, Actual const& actual,
120     int const rows, int const columns, Tolerance const& tolerance, TestDetails const& details)
121     {
122     bool equal = true;
123     for (int i = 0; i < rows; ++i)
124     equal &= ArrayAreClose(expected[i], actual[i], columns, tolerance);
125    
126     if (!equal)
127     {
128     UnitTest::MemoryOutStream stream;
129    
130     stream << "Expected [ ";
131    
132     for (int expectedRow = 0; expectedRow < rows; ++expectedRow)
133     {
134     stream << "[ ";
135     for (int expectedColumn = 0; expectedColumn < columns; ++expectedColumn)
136     stream << expected[expectedRow][expectedColumn] << " ";
137     stream << "] ";
138     }
139    
140     stream << "] +/- " << tolerance << " but was [ ";
141    
142     for (int actualRow = 0; actualRow < rows; ++actualRow)
143     {
144     stream << "[ ";
145     for (int actualColumn = 0; actualColumn < columns; ++actualColumn)
146     stream << actual[actualRow][actualColumn] << " ";
147     stream << "] ";
148     }
149    
150     stream << "]";
151    
152     results.OnTestFailure(details, stream.GetText());
153     }
154     }
155    
156     }
157    
158     #endif

  ViewVC Help
Powered by ViewVC 1.1.26