1 #include <dballe/core/tests.h>
2 #include <dballe/message.h>
14 Messages read_msgs_csv(
const char* filename);
20 void is_undef(
int shortcut)
const;
26 #define test_export_msgs(...) wcallchecked(export_msgs(__VA_ARGS__))
28 void track_different_msgs(
const Message& msg1,
const Message& msg2,
const std::string& prefix);
29 void track_different_msgs(
const Messages& msgs1,
const Messages& msgs2,
const std::string& prefix);
31 extern const char* bufr_files[];
32 extern const char* crex_files[];
33 extern const char* aof_files[];
41 void dump(
const std::string& tag,
const Message& msg,
const std::string& desc=
"message");
42 void dump(
const std::string& tag,
const Messages& msgs,
const std::string& desc=
"message");
43 void dump(
const std::string& tag,
const wreport::Bulletin& bul,
const std::string& desc=
"message");
44 void dump(
const std::string& tag,
const BinaryMessage& msg,
const std::string& desc=
"message");
45 void dump(
const std::string& tag,
const std::string& str,
const std::string& desc=
"message");
51 virtual std::string desc()
const = 0;
56 std::vector<MessageTweaker*> tweaks;
69 std::vector<wreport::Varcode> codes;
72 virtual std::string desc()
const {
return "StripAttrs"; }
79 virtual std::string desc()
const {
return "StripQCAttrs"; }
86 virtual std::string desc()
const {
return "StripSubstituteAttrs"; }
93 virtual std::string desc()
const {
return "StripContextAttrs"; }
99 std::vector<wreport::Varcode> codes;
102 StripVars(std::initializer_list<wreport::Varcode> codes) : codes(codes) {}
104 virtual std::string desc()
const {
return "StripVars"; }
111 virtual std::string desc()
const {
return "StripDatetimeVars"; }
120 virtual std::string desc()
const {
return "RoundLegacyVars"; }
127 virtual std::string desc()
const {
return "RemoveSynopWMOOnlyVars"; }
134 virtual std::string desc()
const {
return "RemoveTempWMOOnlyVars"; }
142 virtual std::string desc()
const {
return "RemoveOddTempTemplateOnlyVars"; }
150 virtual std::string desc()
const {
return "RemoveSynopWMOOddprec"; }
157 virtual std::string desc()
const {
return "TruncStName"; }
166 virtual std::string desc()
const {
return "RoundGeopotential"; }
175 virtual std::string desc()
const {
return "HeightToGeopotential"; }
182 virtual std::string desc()
const {
return "RoundVSS"; }
192 virtual std::string desc()
const {
return "RemoveContext"; }
218 bool verbose =
false;
221 std::string expected_template;
222 int expected_subsets = 1;
223 int expected_min_vars = 1;
224 int expected_data_category = MISSING_INT;
225 int expected_data_subcategory = MISSING_INT;
226 int expected_data_subcategory_local = MISSING_INT;
236 void configure_ecmwf_to_wmo_tweaks();
242 void run_convert(
const std::string& tplname);
250 class msg_generator :
public generator
253 dba_err fill_message(dba_msg msg,
bool mobile);
259 class msg_vector :
public dba_raw_consumer,
public std::vector<dba_msgs>
262 virtual ~msg_vector()
264 for (iterator i = begin(); i != end(); i++)
268 virtual dba_err consume(dba_rawmsg raw)
272 DBA_RUN_OR_RETURN(dba_marshal_decode(raw, &msgs));
275 return dba_error_ok();
279 template <
typename T>
280 void my_ensure_msg_equals(
const char* file,
int line, dba_msg msg,
int id,
const char* idname,
const T& value)
282 dba_var var = my_want_var(file, line, msg,
id, idname);
283 inner_ensure_var_equals(var, value);
285 #define gen_ensure_msg_equals(msg, id, value) my_ensure_msg_equals(__FILE__, __LINE__, (msg), (id), #id, (value))
286 #define inner_ensure_msg_equals(msg, id, value) my_ensure_msg_equals(file, line, (msg), (id), #id, (value))
Definition: msg/tests.h:139
Encoding
Supported encodings.
Definition: file.h:21
Definition: msg/tests.h:83
Definition: msg/tests.h:108
Definition: msg/tests.h:97
Definition: msg/tests.h:154
Definition: msg/tests.h:197
Definition: msg/tests.h:214
Information on how a value has been sampled or computed with regards to time.
Definition: types.h:587
A bulletin that has been decoded and physically interpreted.
Definition: message.h:28
Definition: msg/tests.h:67
Definition: msg/tests.h:186
Definition: msg/tests.h:90
Definition: msg/tests.h:147
Vertical level or layer.
Definition: types.h:532
Definition: msg/tests.h:179
Definition: msg/tests.h:124
Definition: msg/tests.h:170
Definition: msg/tests.h:54
Definition: msg/tests.h:47
Definition: msg/tests.h:16
Binary message.
Definition: file.h:132
Ordered collection of messages.
Definition: message.h:67
Definition: msg/tests.h:76
Definition: msg/tests.h:115
Definition: msg/tests.h:131
Definition: msg/tests.h:161