IODA Bundle
test_table.cc
Go to the documentation of this file.
1 /*
2  * (C) Copyright 1996-2012 ECMWF.
3  *
4  * This software is licensed under the terms of the Apache Licence Version 2.0
5  * which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
6  * In applying this licence, ECMWF does not waive the privileges and immunities
7  * granted to it by virtue of its status as an intergovernmental organisation nor
8  * does it submit to any jurisdiction.
9  */
10 
11 #include <memory>
12 
13 #include "eckit/testing/Test.h"
14 #include "eckit/filesystem/PathName.h"
15 #include "eckit/config/Resource.h"
16 
17 using namespace eckit::testing;
18 using eckit::Log;
19 
20 
21 // ------------------------------------------------------------------------------------------------------
22 
23 eckit::Resource<eckit::PathName> testDataPath("$TEST_DATA_DIRECTORY", "..");
24 
25 CASE("Table span") {
26 
27 // ASSERT(false);
28 
29 }
30 
31 
32 // ------------------------------------------------------------------------------------------------------
33 
34 //static void test()
35 //{
36 //// const char * configFile = "/tmp/p4/mars/server/dev/oda/mars/marsKeywordToODBColumn";
37 // const char * config =
38 // "DATE: andate\n"
39 // "TIME: antime\n"
40 // "REPORTYPE: reportype\n"
41 // "CLASS: class\n"
42 // "TYPE: type\n"
43 // "STREAM: stream\n"
44 // "OBSGROUP: groupid\n"
45 // "EXPVER: expver\n"
46 // ;
47 //
48 // FastODA2Request<ODA2RequestClientTraits> o;
49 // //o.parseConfig(StringTool::readFile(cfgFile));
50 // o.parseConfig(config);
51 //
52 // OffsetList offsets;
53 // LengthList lengths;
54 // vector<ODAHandle*> handles;
55 //
56 // //PathName pathName("mondb_conv.17.16001.odb.fn6x");
57 // ASSERT(getenv("odc_TEST_DATA_PATH") && "odc_TEST_DATA_PATH must be set");
58 // string e = Resource<std::string>("$odc_TEST_DATA_PATH", string("../../../odc/src/odb"));
59 // PathName pathName(e + "/mondb.1.12.odb");
60 // bool rc = o.scanFile(pathName, offsets, lengths, handles);
61 // ASSERT(rc == true);
62 //
63 // for (size_t i = 0; i < handles.size(); ++i)
64 // Log::info() << "test: handles[" << i << "]=" << *handles[i] << std::endl;
65 //
66 // string r = o.genRequest();
67 // Log::info() << "test: o.genRequest() => " << std::endl << r << std::endl;
68 //
69 // unsigned long long n = o.rowsNumber();
70 // Log::info() << "test: rowsNumber == " << n << std::endl;
71 //}
72 //
73 //
74 
75 
76 // ------------------------------------------------------------------------------------------------------
77 
78 
79 //static Length size1;
80 //static Length size2;
81 //
82 //Length createFile(const std::string& fileName, unsigned int andate, unsigned int antime, unsigned int reportype)
83 //{
84 // {
85 // odc::Writer<> oda(fileName);
86 // odc::Writer<>::iterator row = oda.begin();
87 // row->setNumberOfColumns(3);
88 // row->setColumn(0, "antime", odc::api::INTEGER);
89 // row->setColumn(1, "andate", odc::api::INTEGER);
90 // row->setColumn(2, "reportype", odc::api::INTEGER);
91 // row->writeHeader();
92 // for (size_t i = 0; i < 1; ++i, ++row)
93 // {
94 // (*row)[0] = andate;
95 // (*row)[1] = antime;
96 // (*row)[2] = reportype;
97 // ++row;
98 // }
99 // }
100 // PathName p(fileName);
101 // return p.size();
102 //}
103 //
104 //static void setUp()
105 //{
106 //
107 // size1 = createFile("TestFastODA2Request21.odb", 20110823, 0, 21);
108 // size2 = createFile("TestFastODA2Request22.odb", 20110823, 0, 22);
109 //
110 // const char *cmd =
111 // "cat "
112 // "TestFastODA2Request21.odb TestFastODA2Request21.odb TestFastODA2Request21.odb "
113 // "TestFastODA2Request22.odb TestFastODA2Request22.odb "
114 // " >TestFastODA2Request2BIG.odb"
115 // ;
116 //
117 // int catStatus = system(cmd);
118 // ASSERT(WEXITSTATUS(catStatus) == 0);
119 //
120 // catStatus = system("cat TestFastODA2Request2BIG.odb TestFastODA2Request2BIG.odb >TestFastODA2Request2BAD.odb");
121 // ASSERT(WEXITSTATUS(catStatus) == 0);
122 //}
123 //static void test()
124 //{
125 // const char * config = "let, DATE = andate, TIME = antime, REPORTYPE = reportype" ;
126 //
127 // FastODA2Request<ODA2RequestServerTraits> o;
128 // //o.parseConfig(StringTool::readFile(cfgFile));
129 // o.parseConfig(config);
130 //
131 // OffsetList offsets;
132 // LengthList lengths;
133 // vector<ODAHandle*> handles;
134 //
135 // o.scanFile("TestFastODA2Request2BIG.odb", offsets, lengths, handles);
136 //
137 // for (size_t i = 0; i < handles.size(); ++i)
138 // Log::info() << "test: handles[" << i << "]=" << *handles[i] << std::endl;
139 //
140 // ASSERT(handles.size() == 2);
141 // ASSERT(0 == handles[0]->start());
142 // ASSERT(size1 * 3 == handles[0]->end());
143 // ASSERT(size1 * 3 == handles[1]->start());
144 // ASSERT(size1 * 3 + size2 * 2 == handles[1]->end());
145 //
146 // string r = o.genRequest();
147 // Log::info() << "test: o.genRequest() => " << std::endl << r << std::endl;
148 //
149 // unsigned long long n = o.rowsNumber();
150 // Log::info() << "test: rowsNumber == " << n << std::endl;
151 // ASSERT(n == 2 * (2 + 3));
152 //
153 //
154 // OffsetList offsets2;
155 // LengthList lengths2;
156 // vector<ODAHandle*> handles2;
157 //
158 // FastODA2Request<ODA2RequestClientTraits> o2;
159 // o2.parseConfig(config);
160 // bool rc = o2.scanFile("TestFastODA2Request2BAD.odb", offsets2, lengths2, handles2);
161 // ASSERT(rc == false);
162 //
163 // OffsetList offsets3;
164 // LengthList lengths3;
165 // vector<ODAHandle*> handles3;
166 //
167 // FastODA2Request<ODA2RequestServerTraits> o3;
168 // o3.parseConfig(config);
169 //
170 // bool exceptionThrown = false;
171 // try { o3.scanFile("TestFastODA2Request2BAD.odb", offsets3, lengths3, handles3); }
172 // catch (UserError e)
173 // {
174 // exceptionThrown = true;
175 // }
176 // ASSERT(exceptionThrown);
177 //}
178 
179 
180 // ------------------------------------------------------------------------------------------------------
181 
182 //const char * cfg = "let, DATE = 'andate@desc', TIME = 'antime@desc', TYPE = type, EXPVER = expver";
183 //
184 //static void test()
185 //{
186 // odc::FastODA2Request<odc::ODA2RequestClientTraits> o;
187 // o.parseConfig(cfg);
188 // o.scanFile("2000010106.2.0.odb");
189 //
190 // string r = o.genRequest();
191 // unsigned long long n = o.rowsNumber();
192 //
193 // Log::info() << "test: request is:" << std::endl << r << std::endl;
194 // Log::info() << "test: file has " << n << " rows(s)." << std::endl;
195 //
196 // ASSERT(o.getValues("DATE").size() == 1);
197 // ASSERT(*o.getValues("DATE").begin() == "20000101");
198 //
199 // ASSERT(o.getValues("TIME").size() == 1);
200 // ASSERT(*o.getValues("TIME").begin() == "60000");
201 //
202 // ASSERT(o.getValues("TYPE").size() == 1);
203 // ASSERT(*o.getValues("TYPE").begin() == "MISSING");
204 //
205 // map<string, double> m = o.getUniqueValues();
206 // ASSERT(m["TYPE"] == odc::MDI::realMDI());
207 // ASSERT(m["DATE"] == 20000101);
208 // ASSERT(m["TIME"] == 60000);
209 //}
210 
211 // ------------------------------------------------------------------------------------------------------
212 
213 int main(int argc, char* argv[]) {
214  return run_tests(argc, argv);
215 }
216 
int main(int argc, char *argv[])
Definition: test_table.cc:213
CASE("Table span")
Definition: test_table.cc:25
eckit::Resource< eckit::PathName > testDataPath("$TEST_DATA_DIRECTORY", "..")