Skip to content

Commit de7e78b

Browse files
committed
MARS-962 extended date tests
1 parent 3965bce commit de7e78b

File tree

1 file changed

+22
-48
lines changed

1 file changed

+22
-48
lines changed

tests/test_date.cc

+22-48
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
#include "metkit/mars/TypeDate.h"
2020
#include "metkit/mars/MarsExpandContext.h"
21+
#include "metkit/mars/MarsLanguage.h"
2122

2223
using namespace eckit;
2324
using namespace eckit::testing;
@@ -26,24 +27,34 @@ namespace metkit::mars::test {
2627

2728
//-----------------------------------------------------------------------------
2829

30+
void assertTypeExpansion(const std::string& name, std::vector<std::string> values,
31+
const std::vector<std::string>& expected) {
32+
std::cout << "comparing " << values << " with " << expected;
33+
static MarsLanguage language("retrieve");
34+
language.type(name)->expand(DummyContext(), values);
35+
std::cout << " ==> got " << values << std::endl;
36+
ASSERT(values == expected);
37+
}
38+
2939
CASE("Test TypeDate expansions") {
3040

3141
TypeDate tdate("date", Value());
3242
Type& td(tdate);
3343
DummyContext ctx;
3444

35-
// 1 and 2-digit times
45+
assertTypeExpansion("date", {"20140506"}, {"20140506"});
46+
assertTypeExpansion("date", {"2014-05-06"}, {"20140506"});
47+
assertTypeExpansion("date", {"20140506", "20140507"}, {"20140506", "20140507"});
48+
assertTypeExpansion("date", {"20140506", "to", "20140506"}, {"20140506"});
49+
assertTypeExpansion("date", {"20140506", "to", "20140507"}, {"20140506", "20140507"});
50+
assertTypeExpansion("date", {"20140506", "to", "20140508"}, {"20140506", "20140507", "20140508"});
51+
assertTypeExpansion("date", {"20140504", "20140506", "to", "20140508"}, {"20140504", "20140506", "20140507", "20140508"});
52+
assertTypeExpansion("date", {"2"}, {"2"});
53+
assertTypeExpansion("date", {"jan"}, {"1"});
54+
assertTypeExpansion("date", {"1-01"}, {"101"});
55+
assertTypeExpansion("date", {"jan-01"}, {"101"});
56+
assertTypeExpansion("date", {"feb-23"}, {"223"});
3657

37-
{
38-
std::string value = "20140506";
39-
td.expand(ctx, value);
40-
EXPECT(value == "20140506");
41-
}
42-
{
43-
std::string value = "2014-05-06";
44-
td.expand(ctx, value);
45-
EXPECT(value == "20140506");
46-
}
4758
{
4859
std::string value = "20141506";
4960
EXPECT_THROWS(td.expand(ctx, value)); // throws BadDate that is not exported
@@ -53,43 +64,6 @@ CASE("Test TypeDate expansions") {
5364
td.expand(ctx, value);
5465
// EXPECT(value == "0600");
5566
}
56-
{
57-
std::vector<std::string> values{"20140506", "20140507"};
58-
td.expand(ctx, values);
59-
EXPECT(values.size() == 2);
60-
EXPECT(values[0] == "20140506");
61-
EXPECT(values[1] == "20140507");
62-
}
63-
{
64-
std::vector<std::string> values{"20140506", "to", "20140506"};
65-
td.expand(ctx, values);
66-
EXPECT(values.size() == 1);
67-
EXPECT(values[0] == "20140506");
68-
}
69-
{
70-
std::vector<std::string> values{"20140506", "to", "20140507"};
71-
td.expand(ctx, values);
72-
EXPECT(values.size() == 2);
73-
EXPECT(values[0] == "20140506");
74-
EXPECT(values[1] == "20140507");
75-
}
76-
{
77-
std::vector<std::string> values{"20140506", "to", "20140508"};
78-
td.expand(ctx, values);
79-
EXPECT(values.size() == 3);
80-
EXPECT(values[0] == "20140506");
81-
EXPECT(values[1] == "20140507");
82-
EXPECT(values[2] == "20140508");
83-
}
84-
{
85-
std::vector<std::string> values{"20140504", "20140506", "to", "20140508"};
86-
td.expand(ctx, values);
87-
EXPECT(values.size() == 4);
88-
EXPECT(values[0] == "20140504");
89-
EXPECT(values[1] == "20140506");
90-
EXPECT(values[2] == "20140507");
91-
EXPECT(values[3] == "20140508");
92-
}
9367
}
9468

9569

0 commit comments

Comments
 (0)