main.cpp
101 lines
| 3.1 KiB
| text/x-c
|
CppLexer
r1359 | #include <QtTest> | |||
#include <QObject> | ||||
#include <QString> | ||||
#include <QScreen> | ||||
#include <QMainWindow> | ||||
r1360 | #include <QWheelEvent> | |||
r1359 | ||||
r1360 | #include <qcustomplot.h> | |||
r1359 | ||||
#include <SqpApplication.h> | ||||
#include <Variable/VariableController2.h> | ||||
r1361 | #include <Common/cpp_utils.h> | |||
r1359 | ||||
#include <Visualization/VisualizationGraphWidget.h> | ||||
#include <TestProviders.h> | ||||
r1360 | #include <GUITestUtils.h> | |||
r1359 | ||||
r1361 | ||||
ALIAS_TEMPLATE_FUNCTION(isReady, static_cast<SqpApplication *>(qApp)->variableController().isReady) | ||||
#define A_SIMPLE_GRAPH_FIXTURE \ | ||||
r1363 | VisualizationGraphWidget w;\ | |||
PREPARE_GUI_TEST(w);\ | ||||
auto provider = std::make_shared<SimpleRange<10> >();\ | ||||
auto range = DateTimeRange::fromDateTime(QDate(2018, 8, 7), QTime(14, 00), QDate(2018, 8, 7),\ | ||||
QTime(16, 00));\ | ||||
auto var = static_cast<SqpApplication *>(qApp)->variableController().createVariable(\ | ||||
"V1", {{"", "scalar"}}, provider, range);\ | ||||
while (!isReady(var))\ | ||||
QCoreApplication::processEvents();\ | ||||
w.addVariable(var, range);\ | ||||
auto cent = center(&w); | ||||
r1361 | ||||
r1359 | class A_SimpleGraph : public QObject { | |||
Q_OBJECT | ||||
public: | ||||
r1361 | explicit A_SimpleGraph(QObject *parent = Q_NULLPTR) : QObject(parent) {} | |||
r1359 | ||||
private slots: | ||||
r1363 | void scrolls_left_with_mouse() | |||
r1359 | { | |||
r1363 | A_SIMPLE_GRAPH_FIXTURE; | |||
r1361 | ||||
r1363 | for (auto i = 0; i < 100; i++) { | |||
QTest::mousePress(&w, Qt::LeftButton, Qt::NoModifier, cent, 1); | ||||
r1362 | mouseMove(&w, {cent.x() + 200, cent.y()}, Qt::LeftButton); | |||
QTest::mouseRelease(&w, Qt::LeftButton); | ||||
r1361 | while (!isReady(var)) | |||
QCoreApplication::processEvents(); | ||||
r1360 | } | |||
r1361 | while (!isReady(var)) | |||
r1363 | QCoreApplication::processEvents(); | |||
r1361 | auto r = var->range(); | |||
r1362 | /* | |||
* Scrolling to the left implies going back in time | ||||
* Scroll only implies keeping the same delta T -> shit only transformation | ||||
*/ | ||||
r1361 | QVERIFY(r.m_TEnd < range.m_TEnd); | |||
QVERIFY(SciQLop::numeric::almost_equal<double>(r.delta(),range.delta(),1)); | ||||
r1359 | } | |||
r1363 | ||||
void scrolls_right_with_mouse() | ||||
{ | ||||
A_SIMPLE_GRAPH_FIXTURE; | ||||
for (auto i = 0; i < 100; i++) { | ||||
QTest::mousePress(&w, Qt::LeftButton, Qt::NoModifier, cent, 1); | ||||
mouseMove(&w, {cent.x() - 200, cent.y()}, Qt::LeftButton); | ||||
QTest::mouseRelease(&w, Qt::LeftButton); | ||||
while (!isReady(var)) | ||||
QCoreApplication::processEvents(); | ||||
} | ||||
while (!isReady(var)) | ||||
QCoreApplication::processEvents(); | ||||
auto r = var->range(); | ||||
/* | ||||
* Scrolling to the right implies going forward in time | ||||
* Scroll only implies keeping the same delta T -> shit only transformation | ||||
*/ | ||||
QVERIFY(r.m_TEnd > range.m_TEnd); | ||||
QVERIFY(SciQLop::numeric::almost_equal<double>(r.delta(),range.delta(),1)); | ||||
} | ||||
r1359 | }; | |||
QT_BEGIN_NAMESPACE | ||||
QTEST_ADD_GPU_BLACKLIST_SUPPORT_DEFS | ||||
r1361 | QT_END_NAMESPACE | |||
r1359 | int main(int argc, char *argv[]) | |||
{ | ||||
SqpApplication app{argc, argv}; | ||||
app.setAttribute(Qt::AA_Use96Dpi, true); | ||||
r1363 | QTEST_DISABLE_KEYPAD_NAVIGATION; | |||
QTEST_ADD_GPU_BLACKLIST_SUPPORT; | ||||
r1359 | A_SimpleGraph tc; | |||
r1363 | QTEST_SET_MAIN_SOURCE_PATH; | |||
r1359 | return QTest::qExec(&tc, argc, argv); | |||
} | ||||
#include "main.moc" | ||||