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[];
35 const wreport::Var& want_var(
const Message& msg,
int shortcut);
38 inline ActualVar actual(
const Message& message,
int shortcut) {
return ActualVar(want_var(message, shortcut)); }
39 inline ActualVar actual(
const Message& message, wreport::Varcode code,
const dballe::Level& lev,
const dballe::Trange& tr) {
return ActualVar(want_var(message, code, lev, tr)); }
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"; }
117 const wreport::Vartable* table;
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"; }
163 const wreport::Vartable* table;
166 virtual std::string desc()
const {
return "RoundGeopotential"; }
172 const wreport::Vartable* table;
175 virtual std::string desc()
const {
return "HeightToGeopotential"; }
182 virtual std::string desc()
const {
return "RoundVSS"; }
192 virtual std::string desc()
const {
return "RemoveContext"; }
202 wreport::Bulletin* bulletin = 0;
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:20
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:565
A bulletin that has been decoded and physically interpreted.
Definition: message.h:25
Definition: msg/tests.h:67
Copyright (C) 2008–2010 ARPA-SIM urpsim@smr.arpa.emr.it
Definition: cmdline.h:17
Definition: msg/tests.h:186
Definition: msg/tests.h:90
Definition: msg/tests.h:147
Vertical level or layer.
Definition: types.h:515
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:131
Ordered collection of messages.
Definition: message.h:64
Definition: conversion.h:6
Definition: msg/tests.h:76
Definition: msg/tests.h:115
Definition: msg/tests.h:131
Definition: msg/tests.h:161