main.cpp
95 lines
| 2.8 KiB
| text/x-c
|
CppLexer
r1420 | #include <QMainWindow> | |||
r1359 | #include <QObject> | |||
#include <QScreen> | ||||
r1420 | #include <QString> | |||
r1360 | #include <QWheelEvent> | |||
r1420 | #include <QtTest> | |||
r1359 | ||||
r1360 | #include <qcustomplot.h> | |||
r1359 | ||||
r1420 | #include <Common/cpp_utils.h> | |||
r1359 | #include <SqpApplication.h> | |||
#include <Variable/VariableController2.h> | ||||
r1360 | #include <GUITestUtils.h> | |||
r1420 | #include <TestProviders.h> | |||
#include <Variable/Variable2.h> | ||||
#include <Visualization/VisualizationGraphWidget.h> | ||||
r1361 | ||||
r1420 | std::tuple<std::unique_ptr<VisualizationGraphWidget>, std::shared_ptr<Variable2>, DateTimeRange> | |||
r1369 | build_simple_graph_test() | |||
{ | ||||
auto w = std::make_unique<VisualizationGraphWidget>(); | ||||
r1420 | 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(); | ||||
r1369 | w->addVariable(var, range); | |||
r1420 | while (!isReady(var)) | |||
QCoreApplication::processEvents(); | ||||
return { std::move(w), var, range }; | ||||
r1369 | } | |||
r1361 | ||||
r1420 | class A_SimpleGraph : public QObject | |||
{ | ||||
r1359 | Q_OBJECT | |||
public: | ||||
r1420 | explicit A_SimpleGraph(QObject* parent = Q_NULLPTR) : QObject(parent) {} | |||
r1359 | ||||
private slots: | ||||
r1363 | void scrolls_left_with_mouse() | |||
r1359 | { | |||
r1369 | auto [w, var, range] = build_simple_graph_test(); | |||
QVERIFY(prepare_gui_test(w.get())); | ||||
r1420 | for (auto i = 0; i < 100; i++) | |||
{ | ||||
r1370 | scroll_graph(w.get(), 200); | |||
waitForVar(var); | ||||
r1360 | } | |||
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 | ||||
r1420 | */ | |||
r1361 | QVERIFY(r.m_TEnd < range.m_TEnd); | |||
r1420 | QVERIFY(SciQLop::numeric::almost_equal<double>(r.delta(), range.delta(), 1)); | |||
r1359 | } | |||
r1363 | ||||
void scrolls_right_with_mouse() | ||||
{ | ||||
r1369 | auto [w, var, range] = build_simple_graph_test(); | |||
QVERIFY(prepare_gui_test(w.get())); | ||||
r1420 | for (auto i = 0; i < 100; i++) | |||
{ | ||||
r1370 | scroll_graph(w.get(), -200); | |||
waitForVar(var); | ||||
r1363 | } | |||
auto r = var->range(); | ||||
/* | ||||
* Scrolling to the right implies going forward in time | ||||
* Scroll only implies keeping the same delta T -> shit only transformation | ||||
r1420 | */ | |||
r1363 | QVERIFY(r.m_TEnd > range.m_TEnd); | |||
r1420 | QVERIFY(SciQLop::numeric::almost_equal<double>(r.delta(), range.delta(), 1)); | |||
r1363 | } | |||
r1359 | }; | |||
QT_BEGIN_NAMESPACE | ||||
QTEST_ADD_GPU_BLACKLIST_SUPPORT_DEFS | ||||
r1361 | QT_END_NAMESPACE | |||
r1420 | int main(int argc, char* argv[]) | |||
r1359 | { | |||
r1420 | SqpApplication app { argc, argv }; | |||
r1359 | 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" | ||||