TestVariableController2Async.cpp
67 lines
| 2.2 KiB
| text/x-c
|
CppLexer
r17 | #include <cmath> | |||
#include <algorithm> | ||||
#include <numeric> | ||||
#include <QtTest> | ||||
#include <QObject> | ||||
#include <Variable/VariableController2.h> | ||||
#include <Data/DateTimeRange.h> | ||||
#include <Data/IDataProvider.h> | ||||
#include <Data/ScalarSeries.h> | ||||
#include <Data/DataProviderParameters.h> | ||||
#include <Common/containers.h> | ||||
#include <TestUtils/TestProviders.h> | ||||
#define TEST_VC2_FIXTURE(slope) \ | ||||
VariableController2 vc; \ | ||||
auto provider = std::make_shared<SimpleRange<slope>>();\ | ||||
#define TEST_VC2_CREATE_DEFAULT_VARS(name1, name2, name3)\ | ||||
auto range = DateTimeRange::fromDateTime(QDate(2018,8,7),QTime(14,00),\ | ||||
QDate(2018,8,7),QTime(16,00));\ | ||||
auto name1 = vc.createVariable("name1", {}, provider, range);\ | ||||
auto name2 = vc.createVariable("name1", {}, provider, range);\ | ||||
auto name3 = vc.createVariable("name1", {}, provider, range);\ | ||||
vc.synchronize(name1,name2);\ | ||||
class TestVariableController2Async : public QObject | ||||
{ | ||||
Q_OBJECT | ||||
public: | ||||
explicit TestVariableController2Async(QObject *parent = nullptr) : QObject(parent){} | ||||
signals: | ||||
private slots: | ||||
void initTestCase(){} | ||||
void cleanupTestCase(){} | ||||
void testSimplePan() | ||||
{ | ||||
TEST_VC2_FIXTURE(2); | ||||
auto range = DateTimeRange::fromDateTime(QDate(2018,8,7),QTime(14,00), | ||||
QDate(2018,8,7),QTime(16,00)); | ||||
int variableUpdated=0; | ||||
auto var1 = vc.createVariable("var1", {}, provider, range); | ||||
auto var2 = vc.createVariable("var2", {}, provider, range); | ||||
auto var3 = vc.createVariable("var3", {}, provider, range); | ||||
connect(&(*var2),&Variable::updated, [&variableUpdated](){variableUpdated+=1;}); | ||||
vc.synchronize(var1,var2); | ||||
vc.asyncChangeRange(var1,range+Seconds<double>{10000.}); | ||||
vc.asyncChangeRange(var1,range+Seconds<double>{50000.}); | ||||
vc.asyncChangeRange(var1,range+Seconds<double>{100000.}); | ||||
vc.asyncChangeRange(var1,range+Seconds<double>{150000.}); | ||||
while(!vc.isReady(var1) || !vc.isReady(var2)) | ||||
{ | ||||
QCoreApplication::processEvents(); | ||||
} | ||||
} | ||||
}; | ||||
QTEST_MAIN(TestVariableController2Async) | ||||
#include "TestVariableController2Async.moc" | ||||