test_GModel.hpp
7.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
/***************************************************************************
* test_GModel.hpp - Test model module *
* ----------------------------------------------------------------------- *
* copyright (C) 2012-2022 by Jean-Baptiste Cayrou *
* ----------------------------------------------------------------------- *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
* *
***************************************************************************/
/**
* @file test_GModel.cpp
* @brief Test model classes
* @author Jean-Baptiste Cayrou
*/
#ifndef TEST_GMODEL_HPP
#define TEST_GMODEL_HPP
/* __ Includes ___________________________________________________________ */
#include "GammaLib.hpp"
/***********************************************************************//**
* @class TestGModel
*
* @brief Test suite for model module testing
***************************************************************************/
class TestGModel : public GTestSuite
{
public:
// Constructors and destructors
TestGModel(void) : GTestSuite() {}
virtual ~TestGModel(void) {}
// Methods
virtual void set(void);
virtual TestGModel* clone(void) const;
virtual std::string classname(void) const { return "TestGModel"; }
void test_model_par(void);
void test_model_association(void);
void test_model_associations(void);
void test_sky_model(void);
void test_point_source(void);
void test_diffuse_const(void);
void test_diffuse_cube(void);
void test_diffuse_map(void);
void test_radial_disk(void);
void test_radial_ring(void);
void test_radial_gauss(void);
void test_radial_general_gauss();
void test_radial_shell(void);
void test_profile_dmburkert(void);
void test_profile_dmeinasto(void);
void test_profile_dmzhao(void);
void test_elliptical_disk(void);
void test_elliptical_gauss(void);
void test_elliptical_general_gauss(void);
void test_spatial_composite(void);
void test_spatial_model(void);
void test_const(void);
void test_gauss(void);
void test_plaw(void);
void test_plaw_phflux(void);
void test_plaw_eflux(void);
void test_eplaw(void);
void test_einvplaw(void);
void test_exponential(void);
void test_bplaw(void);
void test_smoothbplaw(void);
void test_supeplaw(void);
void test_logparabola(void);
void test_multiplicative(void);
void test_bins(void);
void test_nodes(void);
void test_filefct(void);
void test_spectral_composite(void);
void test_spectral_model(void);
void test_table(void);
void test_temp_const(void);
void test_temp_lightcurve(void);
void test_temp_phasecurve(void);
void test_model(void);
void test_models(void);
void test_model_registry(void);
void test_legacy_model_radial_disk(void);
void test_legacy_model_radial_gauss(void);
void test_legacy_model_radial_shell(void);
void test_legacy_model_elliptical_gauss(void);
void test_legacy_model_diffuse_const(void);
void test_legacy_model_diffuse_map(void);
void test_legacy_model_diffuse_cube(void);
void test_legacy_model_point_const(void);
void test_legacy_model_point_plaw(void);
void test_legacy_model_point_plaw2(void);
void test_legacy_model_point_smoothbplaw(void);
void test_legacy_model_point_eplaw(void);
void test_legacy_model_point_supeplaw(void);
void test_legacy_model_point_logparabola(void);
void test_flux(void);
private:
// Private methods
void test_xml_model(const std::string& name, const std::string& filename);
void test_sky_model_content(const GModelSky& model);
// Test files
std::string m_map_file;
std::string m_cube_file;
std::string m_filefct;
std::string m_table;
std::string m_temp_lightcurve;
std::string m_temp_phasecurve;
std::string m_xml_file;
std::string m_assoc_file;
// Model definiton XML files
std::string m_xml_model_point_const;
std::string m_xml_model_point_gauss;
std::string m_xml_model_point_plaw;
std::string m_xml_model_point_plaw_phflux;
std::string m_xml_model_point_plaw_eflux;
std::string m_xml_model_point_eplaw;
std::string m_xml_model_point_einvplaw;
std::string m_xml_model_point_bplaw;
std::string m_xml_model_point_smoothbplaw;
std::string m_xml_model_point_supeplaw;
std::string m_xml_model_point_logparabola;
std::string m_xml_model_point_bins;
std::string m_xml_model_point_nodes;
std::string m_xml_model_point_filefct;
std::string m_xml_model_point_table;
std::string m_xml_point_multiplicative;
std::string m_xml_point_exponential;
std::string m_xml_model_spectral_composite;
std::string m_xml_model_diffuse_const;
std::string m_xml_model_diffuse_cube;
std::string m_xml_model_diffuse_map;
std::string m_xml_model_radial_disk;
std::string m_xml_model_radial_ring;
std::string m_xml_model_radial_gauss;
std::string m_xml_model_radial_general_gauss;
std::string m_xml_model_radial_shell;
std::string m_xml_model_profile_dmburkert;
std::string m_xml_model_profile_dmeinasto;
std::string m_xml_model_profile_dmzhao;
std::string m_xml_model_elliptical_disk;
std::string m_xml_model_elliptical_gauss;
std::string m_xml_model_elliptical_general_gauss;
std::string m_xml_model_spatial_composite;
std::string m_xml_model_point_temp_lightcurve;
std::string m_xml_model_point_temp_phasecurve;
// Legacy model definition XML files
std::string m_xml_legacy_radial_disk;
std::string m_xml_legacy_radial_gauss;
std::string m_xml_legacy_radial_shell;
std::string m_xml_legacy_elliptical_gauss;
std::string m_xml_legacy_diffuse_const;
std::string m_xml_legacy_diffuse_map;
std::string m_xml_legacy_diffuse_cube;
std::string m_xml_legacy_point_const;
std::string m_xml_legacy_point_plaw;
std::string m_xml_legacy_point_plaw2;
std::string m_xml_legacy_point_smoothbplaw;
std::string m_xml_legacy_point_eplaw;
std::string m_xml_legacy_point_supeplaw;
std::string m_xml_legacy_point_logparabola;
};
#endif /* TEST_GMODEL_HPP */