1#include "DocumentModelCoords.h"
4#include "MainWindowModel.h"
6#include <QtTest/QtTest>
7#include "Test/TestTransformation.h"
8#include "Transformation.h"
12const double EPSILON = 1.0;
21void TestTransformation::cleanupTestCase ()
26double TestTransformation::differenceMagnitude (
const QPointF &vector1,
27 const QPointF &vector2)
const
29 QPointF difference = vector1 - vector2;
30 return qSqrt (difference.x() * difference.x() +
31 difference.y() * difference.y());
33void TestTransformation::initTestCase ()
35 const QString NO_ERROR_REPORT_LOG_FILE;
36 const QString NO_REGRESSION_OPEN_FILE;
37 const bool NO_GNUPLOT_LOG_FILES =
false;
38 const bool NO_REGRESSION_IMPORT =
false;
39 const bool DEBUG_FLAG =
false;
40 const QStringList NO_LOAD_STARTUP_FILES;
42 initializeLogging (
"engauge_test",
47 NO_REGRESSION_OPEN_FILE,
50 NO_LOAD_STARTUP_FILES);
54void TestTransformation::initTransformation (
const QPointF &s0,
62 QTransform matrixScreen (s0.x(), s1.x(), s2.x(),
63 s0.y(), s1.y(), s2.y(),
65 QTransform matrixGraph (g0.x(), g1.x(), g2.x(),
66 g0.y(), g1.y(), g2.y(),
71 t.setModelCoords (modelCoords,
73 t.updateTransformFromMatrices(matrixScreen,
107void TestTransformation::testCartesianLinearLinear ()
109 QPointF s0 (10, 1000);
110 QPointF s1 (1000, 1000);
116 initTransformation (s0,
122 modelCoordsDefault());
124 QVERIFY (differenceMagnitude (s0, m_s0Transformed) < EPSILON);
125 QVERIFY (differenceMagnitude (s1, m_s1Transformed) < EPSILON);
126 QVERIFY (differenceMagnitude (s2, m_s2Transformed) < EPSILON);
127 QVERIFY (differenceMagnitude (g0, m_g0Transformed) < EPSILON);
128 QVERIFY (differenceMagnitude (g1, m_g1Transformed) < EPSILON);
129 QVERIFY (differenceMagnitude (g2, m_g2Transformed) < EPSILON);
132void TestTransformation::testCartesianLinearLog ()
134 QPointF s0 (10, 1000);
135 QPointF s1 (1000, 1000);
143 initTransformation (s0,
149 modelCoordsDefault());
151 QVERIFY (differenceMagnitude (s0, m_s0Transformed) < EPSILON);
152 QVERIFY (differenceMagnitude (s1, m_s1Transformed) < EPSILON);
153 QVERIFY (differenceMagnitude (s2, m_s2Transformed) < EPSILON);
154 QVERIFY (differenceMagnitude (g0, m_g0Transformed) < EPSILON);
155 QVERIFY (differenceMagnitude (g1, m_g1Transformed) < EPSILON);
156 QVERIFY (differenceMagnitude (g2, m_g2Transformed) < EPSILON);
159void TestTransformation::testCartesianLogLinear ()
161 QPointF s0 (10, 1000);
162 QPointF s1 (1000, 1000);
170 initTransformation (s0,
176 modelCoordsDefault());
178 QVERIFY (differenceMagnitude (s0, m_s0Transformed) < EPSILON);
179 QVERIFY (differenceMagnitude (s1, m_s1Transformed) < EPSILON);
180 QVERIFY (differenceMagnitude (s2, m_s2Transformed) < EPSILON);
181 QVERIFY (differenceMagnitude (g0, m_g0Transformed) < EPSILON);
182 QVERIFY (differenceMagnitude (g1, m_g1Transformed) < EPSILON);
183 QVERIFY (differenceMagnitude (g2, m_g2Transformed) < EPSILON);
186void TestTransformation::testCartesianLogLog ()
188 QPointF s0 (10, 1000);
189 QPointF s1 (1000, 1000);
198 initTransformation (s0,
204 modelCoordsDefault());
206 QVERIFY (differenceMagnitude (s0, m_s0Transformed) < EPSILON);
207 QVERIFY (differenceMagnitude (s1, m_s1Transformed) < EPSILON);
208 QVERIFY (differenceMagnitude (s2, m_s2Transformed) < EPSILON);
209 QVERIFY (differenceMagnitude (g0, m_g0Transformed) < EPSILON);
210 QVERIFY (differenceMagnitude (g1, m_g1Transformed) < EPSILON);
211 QVERIFY (differenceMagnitude (g2, m_g2Transformed) < EPSILON);
214void TestTransformation::testPolarLinear ()
216 QPointF s0 (500, 1000);
217 QPointF s1 (1000, 500);
218 QPointF s2 (500, 500);
219 QPointF g0 (-90, 100);
225 initTransformation (s0,
231 modelCoordsDefault());
233 QVERIFY (differenceMagnitude (s0, m_s0Transformed) < EPSILON);
234 QVERIFY (differenceMagnitude (s1, m_s1Transformed) < EPSILON);
235 QVERIFY (differenceMagnitude (s2, m_s2Transformed) < EPSILON);
236 QVERIFY (differenceMagnitude (g0, m_g0Transformed) < EPSILON);
237 QVERIFY (differenceMagnitude (g1, m_g1Transformed) < EPSILON);
238 QVERIFY (differenceMagnitude (g2, m_g2Transformed) < EPSILON);
241void TestTransformation::testPolarLogOffset1 ()
243 QPointF s0 (500, 1000);
244 QPointF s1 (1000, 500);
245 QPointF s2 (500, 500);
246 QPointF g0 (-90, 100);
254 initTransformation (s0,
260 modelCoordsDefault());
262 QVERIFY (differenceMagnitude (s0, m_s0Transformed) < EPSILON);
263 QVERIFY (differenceMagnitude (s1, m_s1Transformed) < EPSILON);
264 QVERIFY (differenceMagnitude (s2, m_s2Transformed) < EPSILON);
265 QVERIFY (differenceMagnitude (g0, m_g0Transformed) < EPSILON);
266 QVERIFY (differenceMagnitude (g1, m_g1Transformed) < EPSILON);
267 QVERIFY (differenceMagnitude (g2, m_g2Transformed) < EPSILON);
270void TestTransformation::testPolarLogOffset10 ()
272 QPointF s0 (500, 1000);
273 QPointF s1 (1000, 500);
274 QPointF s2 (500, 500);
275 QPointF g0 (-90, 100);
283 initTransformation (s0,
289 modelCoordsDefault());
291 QVERIFY (differenceMagnitude (s0, m_s0Transformed) < EPSILON);
292 QVERIFY (differenceMagnitude (s1, m_s1Transformed) < EPSILON);
293 QVERIFY (differenceMagnitude (s2, m_s2Transformed) < EPSILON);
294 QVERIFY (differenceMagnitude (g0, m_g0Transformed) < EPSILON);
295 QVERIFY (differenceMagnitude (g1, m_g1Transformed) < EPSILON);
296 QVERIFY (differenceMagnitude (g2, m_g2Transformed) < EPSILON);
Model for DlgSettingsCoords and CmdSettingsCoords.
void setCoordUnitsY(CoordUnitsNonPolarTheta coordUnits)
Set method for y units.
void setOriginRadius(double originRadius)
Set method for origin radius in polar mode.
void setCoordUnitsX(CoordUnitsNonPolarTheta coordUnits)
Set method for x units.
void setCoordUnitsRadius(CoordUnitsNonPolarTheta coordUnits)
Set method for radius units.
void setCoordUnitsDate(CoordUnitsDate coordUnits)
Set method for date units.
void setCoordsType(CoordsType coordsType)
Set method for coordinates type.
void setCoordScaleXTheta(CoordScale coordScale)
Set method for linear/log scale on x/theta.
void setCoordUnitsTime(CoordUnitsTime coordUnits)
Set method for time units.
void setCoordScaleYRadius(CoordScale coordScale)
Set method for linear/log scale on y/radius.
void setCoordUnitsTheta(CoordUnitsPolarTheta coordUnits)
Set method for theta units.
Model for DlgSettingsMainWindow.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...