MCPcopy Create free account
hub / github.com/OpenOrienteering/mapper / crtFileTest

Method crtFileTest

test/map_t.cpp:295–344  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

293
294
295void MapTest::crtFileTest()
296{
297 auto original = symbol_set_dir.absoluteFilePath(QString::fromLatin1("src/ISOM2000_15000.xmap"));
298 Map original_map;
299 QVERIFY(original_map.loadFrom(original));
300 QVERIFY(original_map.getNumSymbols() > 100);
301
302 auto crt_data = QByteArray{
303 "101 104\n"
304 "102 105_text \n"
305 "123456 106 \n"
306 };
307 QBuffer buffer{&crt_data};
308 buffer.open(QIODevice::ReadOnly);
309 QTextStream stream{&buffer};
310 auto r = SymbolRuleSet::loadCrt(stream, original_map);
311 QCOMPARE(stream.status(), QTextStream::Ok);
312 QCOMPARE(r.size(), std::size_t(3));
313
314 QCOMPARE(r[0].type, SymbolRule::DefinedAssignment);
315 QCOMPARE(r[0].symbol->getNumberAsString(), QString::fromLatin1("101"));
316 QCOMPARE(r[0].query.getOperator(), ObjectQuery::OperatorSearch);
317 QCOMPARE(r[0].query.tagOperands()->value, QString::fromLatin1("104"));
318 QVERIFY(r[0].query.tagOperands()->key.isEmpty());
319
320 QCOMPARE(r[1].type, SymbolRule::DefinedAssignment);
321 QCOMPARE(r[1].symbol->getNumberAsString(), QString::fromLatin1("102"));
322 QCOMPARE(r[1].query.getOperator(), ObjectQuery::OperatorSearch);
323 QCOMPARE(r[1].query.tagOperands()->value, QString::fromLatin1("105_text"));
324 QVERIFY(r[1].query.tagOperands()->key.isEmpty());
325
326 QCOMPARE(r[2].type, SymbolRule::NoAssignment); // no 123456 in ISOM2000
327 QCOMPARE(r[2].query.getOperator(), ObjectQuery::OperatorSearch);
328 QCOMPARE(r[2].query.tagOperands()->value, QString::fromLatin1("106"));
329 QVERIFY(r[2].query.tagOperands()->key.isEmpty());
330
331 QCOMPARE(r.squeezed().size(), std::size_t(2));
332
333 QBuffer out_buffer;
334 out_buffer.open(QIODevice::WriteOnly);
335 QTextStream out_stream{&out_buffer};
336 r.writeCrt(out_stream);
337 out_stream.flush();
338 out_buffer.close();
339 const auto result = QString::fromLatin1(out_buffer.buffer());
340 QVERIFY(result.contains(QRegularExpression(QLatin1String("^101 *104$", QRegularExpression::MultilineOption))));
341 QVERIFY(result.contains(QRegularExpression(QLatin1String("102 *105_text$", QRegularExpression::MultilineOption))));
342 QVERIFY(!result.contains(QLatin1String("123456")));
343 QVERIFY(!result.contains(QLatin1String("106")));
344}
345
346
347

Callers

nothing calls this directly

Calls 12

QLatin1StringClass · 0.85
getNumSymbolsMethod · 0.80
openMethod · 0.80
getNumberAsStringMethod · 0.80
getOperatorMethod · 0.80
tagOperandsMethod · 0.80
squeezedMethod · 0.80
writeCrtMethod · 0.80
loadFromMethod · 0.45
sizeMethod · 0.45
isEmptyMethod · 0.45
containsMethod · 0.45

Tested by

no test coverage detected