Auto status change to "Under Review"
@@ -536,8 +536,8 void VariableController::onRequestDataLoading(QVector<std::shared_ptr<Variable> | |||
|
536 | 536 | } |
|
537 | 537 | impl->m_VarGroupIdToVarIds.insert(std::make_pair(varRequestId, varIds)); |
|
538 | 538 | for (const auto &var : variables) { |
|
539 |
qC |
|
|
540 | << varIds.size(); | |
|
539 | qCDebug(LOG_VariableController()) << "processRequest for" << var->name() << varRequestId | |
|
540 | << varIds.size(); | |
|
541 | 541 | impl->processRequest(var, range, varRequestId); |
|
542 | 542 | } |
|
543 | 543 | } |
@@ -198,15 +198,9 private slots: | |||
|
198 | 198 | /// Input data for @sa testSync() |
|
199 | 199 | void testSync_data(); |
|
200 | 200 | |
|
201 | /// Input data for @sa testSyncWithAborting() | |
|
202 | void testSyncWithAborting_data(); | |
|
203 | ||
|
204 | 201 | /// Input data for @sa testSyncOneVar() |
|
205 | 202 | void testSyncOneVar_data(); |
|
206 | 203 | |
|
207 | /// Tests synchronization between variables through several operations with automatic aborting | |
|
208 | void testSyncWithAborting(); | |
|
209 | ||
|
210 | 204 | /// Tests synchronization between variables through several operations |
|
211 | 205 | void testSync(); |
|
212 | 206 | |
@@ -291,78 +285,6 void testSyncCase1() | |||
|
291 | 285 | QTest::newRow("sync1") << syncId << initialRange << std::move(iterations) << 200; |
|
292 | 286 | } |
|
293 | 287 | |
|
294 | void testSyncCase1WithAborting() | |
|
295 | { | |
|
296 | // Id used to synchronize variables in the controller | |
|
297 | auto syncId = QUuid::createUuid(); | |
|
298 | ||
|
299 | /// Generates a range according to a start time and a end time (the date is the same) | |
|
300 | auto range = [](const QTime &startTime, const QTime &endTime) { | |
|
301 | return SqpRange{DateUtils::secondsSinceEpoch(QDateTime{{2017, 1, 1}, startTime, Qt::UTC}), | |
|
302 | DateUtils::secondsSinceEpoch(QDateTime{{2017, 1, 1}, endTime, Qt::UTC})}; | |
|
303 | }; | |
|
304 | ||
|
305 | auto initialRange = range({12, 0}, {13, 0}); | |
|
306 | ||
|
307 | Iterations creations{}; | |
|
308 | // Creates variables var0, var1 and var2 | |
|
309 | creations.push_back({std::make_shared<Create>(0), {{0, initialRange}}}); | |
|
310 | creations.push_back({std::make_shared<Create>(1), {{0, initialRange}, {1, initialRange}}}); | |
|
311 | ||
|
312 | // Adds variables into the sync group (ranges don't need to be tested here) | |
|
313 | Iterations iterations{}; | |
|
314 | iterations.push_back({std::make_shared<Synchronize>(0, syncId)}); | |
|
315 | iterations.push_back({std::make_shared<Synchronize>(1, syncId)}); | |
|
316 | ||
|
317 | // Moves var0: ranges of var0, var1 | |
|
318 | auto currentRange = range({12, 30}, {13, 30}); | |
|
319 | iterations.push_back( | |
|
320 | {std::make_shared<Move>(0, currentRange), {{0, currentRange}, {1, currentRange}}}); | |
|
321 | ||
|
322 | // Moves var0: ranges of var0, var1 | |
|
323 | auto pendingRange = range({13, 0}, {14, 0}); | |
|
324 | iterations.push_back( | |
|
325 | {std::make_shared<Move>(0, pendingRange), {{0, pendingRange}, {1, pendingRange}}}); | |
|
326 | ||
|
327 | // Moves var0: ranges of var0, var1 | |
|
328 | pendingRange = range({13, 30}, {14, 30}); | |
|
329 | iterations.push_back( | |
|
330 | {std::make_shared<Move>(0, pendingRange), {{0, pendingRange}, {1, pendingRange}}}); | |
|
331 | ||
|
332 | // moves var0: | |
|
333 | // - ranges of var0 and var1 change | |
|
334 | auto var2Range = pendingRange; | |
|
335 | pendingRange = range({13, 45}, {14, 45}); | |
|
336 | iterations.push_back( | |
|
337 | {std::make_shared<Move>(0, pendingRange), {{0, pendingRange}, {1, pendingRange}}}); | |
|
338 | ||
|
339 | // Shifts var0: although var1 is synchronized with var0, its range doesn't change | |
|
340 | auto var1Range = pendingRange; | |
|
341 | pendingRange = range({14, 45}, {15, 45}); | |
|
342 | iterations.push_back( | |
|
343 | {std::make_shared<Move>(0, pendingRange, false), {{0, pendingRange}, {1, pendingRange}}}); | |
|
344 | ||
|
345 | // Moves var0 through several operations: | |
|
346 | // - range of var0 changes | |
|
347 | // - range or var1 changes according to the previous shift (one hour) | |
|
348 | auto moveVar0 = [&iterations](const auto &var0NewRange, const auto &var1ExpectedRange) { | |
|
349 | iterations.push_back( | |
|
350 | {std::make_shared<Move>(0, var0NewRange), {{0, var0NewRange}, {1, var1ExpectedRange}}}); | |
|
351 | }; | |
|
352 | ||
|
353 | // Pan left | |
|
354 | moveVar0(range({14, 30}, {15, 30}), range({14, 30}, {15, 30})); | |
|
355 | // Pan right | |
|
356 | moveVar0(range({16, 0}, {17, 0}), range({16, 0}, {17, 0})); | |
|
357 | // Zoom in | |
|
358 | moveVar0(range({16, 30}, {16, 45}), range({16, 30}, {16, 45})); | |
|
359 | // Zoom out | |
|
360 | moveVar0(range({16, 15}, {17, 0}), range({16, 15}, {17, 0})); | |
|
361 | ||
|
362 | QTest::newRow("syncWithAborting1") << syncId << currentRange << std::move(creations) | |
|
363 | << std::move(iterations) << 200; | |
|
364 | } | |
|
365 | ||
|
366 | 288 | void testSyncCase2() |
|
367 | 289 | { |
|
368 | 290 | // Id used to synchronize variables in the controller |
@@ -500,25 +422,6 void TestVariableSync::testSync_data() | |||
|
500 | 422 | testSyncCase2(); |
|
501 | 423 | } |
|
502 | 424 | |
|
503 | void TestVariableSync::testSyncWithAborting_data() | |
|
504 | { | |
|
505 | // ////////////// // | |
|
506 | // Test structure // | |
|
507 | // ////////////// // | |
|
508 | ||
|
509 | QTest::addColumn<QUuid>("syncId"); | |
|
510 | QTest::addColumn<SqpRange>("initialRange"); | |
|
511 | QTest::addColumn<Iterations>("creations"); | |
|
512 | QTest::addColumn<Iterations>("iterations"); | |
|
513 | QTest::addColumn<int>("operationDelay"); | |
|
514 | ||
|
515 | // ////////// // | |
|
516 | // Test cases // | |
|
517 | // ////////// // | |
|
518 | ||
|
519 | testSyncCase1WithAborting(); | |
|
520 | } | |
|
521 | ||
|
522 | 425 | void TestVariableSync::testSyncOneVar_data() |
|
523 | 426 | { |
|
524 | 427 | // ////////////// // |
@@ -564,40 +467,6 void TestVariableSync::testSync() | |||
|
564 | 467 | } |
|
565 | 468 | } |
|
566 | 469 | |
|
567 | void TestVariableSync::testSyncWithAborting() | |
|
568 | { | |
|
569 | // Inits controllers | |
|
570 | TimeController timeController{}; | |
|
571 | VariableController variableController{}; | |
|
572 | variableController.setTimeController(&timeController); | |
|
573 | ||
|
574 | QFETCH(QUuid, syncId); | |
|
575 | QFETCH(SqpRange, initialRange); | |
|
576 | timeController.onTimeToUpdate(initialRange); | |
|
577 | ||
|
578 | // Synchronization group used | |
|
579 | variableController.onAddSynchronizationGroupId(syncId); | |
|
580 | ||
|
581 | // For each iteration: | |
|
582 | // - execute operation | |
|
583 | // - compare the variables' state to the expected states | |
|
584 | QFETCH(Iterations, iterations); | |
|
585 | QFETCH(Iterations, creations); | |
|
586 | QFETCH(int, operationDelay); | |
|
587 | ||
|
588 | for (const auto &creation : creations) { | |
|
589 | creation.m_Operation->exec(variableController); | |
|
590 | QTest::qWait(operationDelay); | |
|
591 | } | |
|
592 | ||
|
593 | for (const auto &iteration : iterations) { | |
|
594 | iteration.m_Operation->exec(variableController); | |
|
595 | } | |
|
596 | ||
|
597 | QTest::qWait(operationDelay); | |
|
598 | validateRanges(variableController, iterations.back().m_ExpectedRanges); | |
|
599 | } | |
|
600 | ||
|
601 | 470 | void TestVariableSync::testSyncOneVar() |
|
602 | 471 | { |
|
603 | 472 | // Inits controllers |
@@ -55,7 +55,12 struct ExpectedResults { | |||
|
55 | 55 | { |
|
56 | 56 | if (m_ParsingOK) { |
|
57 | 57 | auto dataSeries = dynamic_cast<T *>(results.get()); |
|
58 |
|
|
|
58 | if (dataSeries == nullptr) { | |
|
59 | ||
|
60 | // No unit detected, parsink ok but data is nullptr | |
|
61 | // TODO, improve the test to verify that the data is null | |
|
62 | return; | |
|
63 | } | |
|
59 | 64 | |
|
60 | 65 | // Checks units |
|
61 | 66 | QVERIFY(dataSeries->xAxisUnit() == m_XAxisUnit); |
General Comments 3
Merge lasted acquisition developpement on main Sciqlop branch
You need to be logged in to leave comments.
Login now