##// END OF EJS Templates
Spectrogram segfault should be fixed now, added ability to provide Spectrogram min sampling time to avoid computation when possible...
Spectrogram segfault should be fixed now, added ability to provide Spectrogram min sampling time to avoid computation when possible Spectrogram visu is still broken... Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r1421:39383389f6c1
r1467:da44adcd99e4
Show More
main.cpp
111 lines | 3.4 KiB | text/x-c | CppLexer
#include <QMainWindow>
#include <QObject>
#include <QScreen>
#include <QString>
#include <QWheelEvent>
#include <QtTest>
#include <qcustomplot.h>
#include <Common/cpp_utils.h>
#include <SqpApplication.h>
#include <Variable/VariableController2.h>
#include <GUITestUtils.h>
#include <TestProviders.h>
#include <Visualization/VisualizationGraphWidget.h>
#include <Visualization/VisualizationZoneWidget.h>
template <int GraphCount = 2>
std::tuple<std::unique_ptr<VisualizationZoneWidget>, std::vector<std::shared_ptr<Variable2>>,
std::vector<VisualizationGraphWidget*>, DateTimeRange>
build_multi_graph_test()
{
auto w = std::make_unique<VisualizationZoneWidget>();
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));
std::vector<std::shared_ptr<Variable2>> variables;
std::vector<VisualizationGraphWidget*> graphs;
for (auto i = 0; i < GraphCount; i++)
{
auto var = static_cast<SqpApplication*>(qApp)->variableController().createVariable(
QString("V%1").arg(i), { { "", "scalar" } }, provider, range);
auto graph = new VisualizationGraphWidget();
graph->addVariable(var, range);
while (!isReady(var))
QCoreApplication::processEvents();
variables.push_back(var);
graphs.push_back(graph);
w->addGraph(graph);
}
return { std::move(w), variables, graphs, range };
}
class A_MultipleSyncGraphs : public QObject
{
Q_OBJECT
public:
explicit A_MultipleSyncGraphs(QObject* parent = Q_NULLPTR) : QObject(parent) {}
private slots:
void scrolls_left_with_mouse()
{
auto [w, variables, graphs, range] = build_multi_graph_test<3>();
auto var = variables.front();
auto graph = graphs.front();
QVERIFY(prepare_gui_test(w.get()));
for (auto i = 0; i < 100; i++)
{
scroll_graph(graph, -200);
waitForVar(var);
}
auto r = variables.back()->range();
/*
* Scrolling to the left implies going forward in time
* Scroll only implies keeping the same delta T -> shift only transformation
*/
QVERIFY(r.m_TEnd > range.m_TEnd);
QVERIFY(SciQLop::numeric::almost_equal<double>(r.delta(), range.delta(), 1));
}
void scrolls_right_with_mouse()
{
auto [w, variables, graphs, range] = build_multi_graph_test<3>();
auto var = variables.front();
auto graph = graphs.front();
QVERIFY(prepare_gui_test(w.get()));
for (auto i = 0; i < 100; i++)
{
scroll_graph(graph, 200);
waitForVar(var);
}
auto r = variables.back()->range();
/*
* Scrolling to the right implies going back in time
* Scroll only implies keeping the same delta T -> shift only transformation
*/
QVERIFY(r.m_TEnd < range.m_TEnd);
QVERIFY(SciQLop::numeric::almost_equal<double>(r.delta(), range.delta(), 1));
}
};
QT_BEGIN_NAMESPACE
QTEST_ADD_GPU_BLACKLIST_SUPPORT_DEFS
QT_END_NAMESPACE
int main(int argc, char* argv[])
{
SqpApplication app { argc, argv };
app.setAttribute(Qt::AA_Use96Dpi, true);
QTEST_DISABLE_KEYPAD_NAVIGATION;
QTEST_ADD_GPU_BLACKLIST_SUPPORT;
A_MultipleSyncGraphs tc;
QTEST_SET_MAIN_SOURCE_PATH;
return QTest::qExec(&tc, argc, argv);
}
#include "main.moc"