MCPcopy Create free account
hub / github.com/Audio4Linux/JDSP4Linux / testWriteDifferentDataAmount

Method testWriteDifferentDataAmount

3rdparty/qtcsv/tests/testwriter.cpp:263–316  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

261}
262
263void TestWriter::testWriteDifferentDataAmount() {
264 auto rowsNumber = 10;
265 auto rowsMultiplier = 2;
266 auto rowCycles = 2;
267 QElapsedTimer time;
268 for (auto rc = 0; rc < rowCycles; ++rc) {
269 auto symbolsNumber = 10;
270 auto symbolsMultiplier = 5;
271 auto symbolCycles = 4;
272 for (auto sc = 0; sc < symbolCycles; ++sc) {
273 QtCSV::StringData data;
274 try {
275 data = getTestStringData(symbolsNumber, rowsNumber);
276 }
277 catch (std::exception& /*e*/) {
278 QFAIL("No enough memory to create data object");
279 }
280
281 QVERIFY2(!data.isEmpty(), "Failed to create content");
282
283 auto writeResult = false;
284 time.restart();
285 try {
286 writeResult = QtCSV::Writer::write(getFilePath(), data, ",", {});
287 }
288 catch (std::exception& /*e*/) {
289 QFAIL("No enough memory to write data to the file");
290 }
291
292 qDebug() << "symbols:" << symbolsNumber << ", rows:" << rowsNumber
293 << ", time:" << time.elapsed() << "ms";
294
295 QVERIFY2(writeResult, "Failed to write to file");
296
297 QFile csvFile(getFilePath());
298 if (!csvFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
299 QFAIL("Failed to open created csv-file");
300 }
301
302 QTextStream stream(&csvFile);
303 for (auto line = 0; line < data.rowCount(); ++line) {
304 QList<QString> lineElements = stream.readLine().split(",");
305 QVERIFY2(data.rowValues(line) == lineElements,
306 "Original and result data are not the same");
307 }
308
309 csvFile.close();
310
311 symbolsNumber *= symbolsMultiplier;
312 }
313
314 rowsNumber *= rowsMultiplier;
315 }
316}
317
318QtCSV::StringData TestWriter::getTestStringData(
319 qsizetype symbolsInRow, qsizetype rowsNumber) {

Callers

nothing calls this directly

Calls 5

readLineMethod · 0.80
isEmptyMethod · 0.45
rowCountMethod · 0.45
splitMethod · 0.45
rowValuesMethod · 0.45

Tested by

no test coverage detected