GammaLib 2.0.0
Loading...
Searching...
No Matches
GTestCase.cpp
Go to the documentation of this file.
1/***************************************************************************
2 * GTestCase.cpp - Test case class *
3 * ----------------------------------------------------------------------- *
4 * copyright (C) 2012-2013 by Jean-Baptiste Cayrou *
5 * ----------------------------------------------------------------------- *
6 * *
7 * This program is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 3 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * This program is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with this program. If not, see <http://www.gnu.org/licenses/>. *
19 * *
20 ***************************************************************************/
21/**
22 * @file GTestCase.cpp
23 * @brief Test Case class implementation
24 * @author Jean-Baptiste Cayrou
25 */
26
27/* __ Includes ___________________________________________________________ */
28#ifdef HAVE_CONFIG_H
29#include <config.h>
30#endif
31#include "GTestCase.hpp"
32
33/* __ Method name definitions ____________________________________________ */
34
35/* __ Macros _____________________________________________________________ */
36
37/* __ Coding definitions _________________________________________________ */
38
39/* __ Debug definitions __________________________________________________ */
40
41
42/*==========================================================================
43 = =
44 = Constructors/destructors =
45 = =
46 ==========================================================================*/
47
48/***********************************************************************//**
49 * @brief Void constructor
50 ***************************************************************************/
52{
53 // Initialise members
55
56 // Return
57 return;
58}
59
60
61/***********************************************************************//**
62 * @brief Type and name constructor
63 *
64 * @param[in] kind Test kind (FAIL_TEST or ERROR_TEST)
65 * @param[in] name Test case name (default: "")
66 ***************************************************************************/
67GTestCase::GTestCase(const ErrorKind& kind, const std::string& name)
68{
69 // Initialise members
71
72 // Set kind
73 m_kind = kind;
74
75 // Set name
76 m_name = name;
77
78 // Return
79 return;
80}
81
82
83/***********************************************************************//**
84 * @brief Copy constructor
85 *
86 * @param[in] test Test case.
87 ***************************************************************************/
89{
90 // Initialise members
92
93 // Copy members
94 copy_members(test);
95
96 // Return
97 return;
98}
99
100
101/***********************************************************************//**
102 * @brief Destructor
103 ***************************************************************************/
105{
106 // Free members
107 free_members();
108
109 // Return
110 return;
111}
112
113
114/*==========================================================================
115 = =
116 = Operators =
117 = =
118 ==========================================================================*/
119
120/***********************************************************************//**
121 * @brief Assignment operator
122 *
123 * @param[in] test Test case.
124 * @return Test case.
125 ***************************************************************************/
127{
128 // Execute only if object is not identical
129 if (this != &test) {
130
131 // Free members
132 free_members();
133
134 // Initialise members
135 init_members();
136
137 // Copy members
138 copy_members(test);
139
140 } // endif: object was not identical
141
142 // Return
143 return *this;
144}
145
146
147/*==========================================================================
148 = =
149 = Public methods =
150 = =
151 ==========================================================================*/
152
153/***********************************************************************//**
154 * @brief Clear test case
155 ***************************************************************************/
157{
158 // Free members
159 free_members();
160
161 // Initialise private members
162 init_members();
163
164 // Return
165 return;
166}
167
168
169/***********************************************************************//**
170 * @brief Clone test case
171 *
172 * @return Pointer to deep copy of test case.
173 ***************************************************************************/
175{
176 // Clone this image
177 return new GTestCase(*this);
178}
179
180
181/***********************************************************************//**
182 * @brief Print test case result
183 *
184 * @param[in] chatter Chattiness (defaults to NORMAL).
185 * @return String containing test case information.
186 *
187 * Returns either ".", "F" or "E", dependent on the test result.
188 ***************************************************************************/
189std::string GTestCase::print(const GChatter& chatter) const
190{
191 // Initialize string
192 std::string result;
193
194 // Continue only if chatter is not silent
195 if (chatter != SILENT) {
196
197 // Set string dependent on test result
198 if (m_has_passed) {
199 result.append(".");
200 }
201 else if (m_kind == ERROR_TEST) {
202 result.append("E");
203 }
204 else {
205 result.append("F");
206 }
207
208 } // endif: chatter was not silent
209
210 // Return result
211 return result;
212}
213
214
215/*==========================================================================
216 = =
217 = Private methods =
218 = =
219 ==========================================================================*/
220
221/***********************************************************************//**
222 * @brief Initialise class members
223 ***************************************************************************/
225{
226 // Initialise members
227 m_name = "Unnamed Error Test Case";
228 m_message = "";
229 m_type = "";
230 m_has_passed = true;
232 m_duration = 0.0;
233
234 // Return
235 return;
236}
237
238
239/***********************************************************************//**
240 * @brief Copy class members
241 *
242 * @param[in] test Test case.
243 *
244 * Copies all members from the test case class.
245 ***************************************************************************/
247{
248 // Copy members
249 m_name = test.m_name;
250 m_message = test.m_message;
251 m_type = test.m_type;
253 m_kind = test.m_kind;
254 m_duration = test.m_duration;
255
256 // Return
257 return;
258}
259
260/***********************************************************************//**
261 * @brief Delete class members
262 ***************************************************************************/
264{
265 // Return
266 return;
267}
Test case class interface definition.
GChatter
Definition GTypemaps.hpp:33
@ SILENT
Definition GTypemaps.hpp:34
Test class.
Definition GTestCase.hpp:47
void clear(void)
Clear test case.
std::string m_message
Test message.
Definition GTestCase.hpp:91
void free_members(void)
Delete class members.
const ErrorKind & kind(void) const
Return kind of test case.
void copy_members(const GTestCase &test)
Copy class members.
std::string print(const GChatter &chatter=NORMAL) const
Print test case result.
GTestCase(void)
Void constructor.
Definition GTestCase.cpp:51
bool m_has_passed
Boolean to check test success.
Definition GTestCase.hpp:93
GTestCase * clone(void) const
Clone test case.
const std::string & name(void) const
Return test case name.
GTestCase & operator=(const GTestCase &test)
Assignment operator.
void init_members(void)
Initialise class members.
std::string m_type
Test type.
Definition GTestCase.hpp:92
double m_duration
Test duration.
Definition GTestCase.hpp:95
std::string m_name
Test name.
Definition GTestCase.hpp:90
virtual ~GTestCase(void)
Destructor.
ErrorKind m_kind
Kind of test case (failure or error test)
Definition GTestCase.hpp:94