1 #include "DocumentModelCoords.h" 2 #include "DocumentModelGeneral.h" 4 #include "MainWindow.h" 5 #include "MainWindowModel.h" 7 #include <QtTest/QtTest> 8 #include "Test/TestTransformation.h" 9 #include "Transformation.h" 13 const double EPSILON = 1.0;
22 void TestTransformation::cleanupTestCase ()
27 double TestTransformation::differenceMagnitude (
const QPointF &vector1,
28 const QPointF &vector2)
const 30 QPointF difference = vector1 - vector2;
31 return qSqrt (difference.x() * difference.x() +
32 difference.y() * difference.y());
34 void TestTransformation::initTestCase ()
36 const QString NO_ERROR_REPORT_LOG_FILE;
37 const QString NO_REGRESSION_OPEN_FILE;
38 const bool NO_GNUPLOT_LOG_FILES =
false;
39 const bool NO_REGRESSION_IMPORT =
false;
40 const bool NO_RESET =
false;
41 const bool NO_EXPORT_ONLY =
false;
42 const bool NO_EXTRACT_IMAGE_ONLY =
false;
43 const QString NO_EXTRACT_IMAGE_EXTENSION;
44 const bool DEBUG_FLAG =
false;
45 const QStringList NO_LOAD_STARTUP_FILES;
46 const QStringList NO_COMMAND_LINE;
48 initializeLogging (
"engauge_test",
53 NO_REGRESSION_OPEN_FILE,
58 NO_EXTRACT_IMAGE_ONLY,
59 NO_EXTRACT_IMAGE_EXTENSION,
60 NO_LOAD_STARTUP_FILES,
65 void TestTransformation::initTransformation (
const QPointF &s0,
74 QTransform matrixScreen (s0.x(), s1.x(), s2.x(),
75 s0.y(), s1.y(), s2.y(),
77 QTransform matrixGraph (g0.x(), g1.x(), g2.x(),
78 g0.y(), g1.y(), g2.y(),
83 t.setModelCoords (modelCoords,
86 t.updateTransformFromMatrices(matrixScreen,
131 void TestTransformation::testCartesianLinearLinear ()
133 QPointF s0 (10, 1000);
134 QPointF s1 (1000, 1000);
140 initTransformation (s0,
146 modelCoordsDefault(),
147 modelGeneralDefault());
149 QVERIFY ((differenceMagnitude (s0, m_s0Transformed) < EPSILON));
150 QVERIFY ((differenceMagnitude (s1, m_s1Transformed) < EPSILON));
151 QVERIFY ((differenceMagnitude (s2, m_s2Transformed) < EPSILON));
152 QVERIFY ((differenceMagnitude (g0, m_g0Transformed) < EPSILON));
153 QVERIFY ((differenceMagnitude (g1, m_g1Transformed) < EPSILON));
154 QVERIFY ((differenceMagnitude (g2, m_g2Transformed) < EPSILON));
157 void TestTransformation::testCartesianLinearLog ()
159 QPointF s0 (10, 1000);
160 QPointF s1 (1000, 1000);
168 initTransformation (s0,
174 modelCoordsDefault(),
175 modelGeneralDefault());
177 QVERIFY ((differenceMagnitude (s0, m_s0Transformed) < EPSILON));
178 QVERIFY ((differenceMagnitude (s1, m_s1Transformed) < EPSILON));
179 QVERIFY ((differenceMagnitude (s2, m_s2Transformed) < EPSILON));
180 QVERIFY ((differenceMagnitude (g0, m_g0Transformed) < EPSILON));
181 QVERIFY ((differenceMagnitude (g1, m_g1Transformed) < EPSILON));
182 QVERIFY ((differenceMagnitude (g2, m_g2Transformed) < EPSILON));
185 void TestTransformation::testCartesianLogLinear ()
187 QPointF s0 (10, 1000);
188 QPointF s1 (1000, 1000);
196 initTransformation (s0,
202 modelCoordsDefault(),
203 modelGeneralDefault());
205 QVERIFY ((differenceMagnitude (s0, m_s0Transformed) < EPSILON));
206 QVERIFY ((differenceMagnitude (s1, m_s1Transformed) < EPSILON));
207 QVERIFY ((differenceMagnitude (s2, m_s2Transformed) < EPSILON));
208 QVERIFY ((differenceMagnitude (g0, m_g0Transformed) < EPSILON));
209 QVERIFY ((differenceMagnitude (g1, m_g1Transformed) < EPSILON));
210 QVERIFY ((differenceMagnitude (g2, m_g2Transformed) < EPSILON));
213 void TestTransformation::testCartesianLogLog ()
215 QPointF s0 (10, 1000);
216 QPointF s1 (1000, 1000);
225 initTransformation (s0,
231 modelCoordsDefault(),
232 modelGeneralDefault());
234 QVERIFY ((differenceMagnitude (s0, m_s0Transformed) < EPSILON));
235 QVERIFY ((differenceMagnitude (s1, m_s1Transformed) < EPSILON));
236 QVERIFY ((differenceMagnitude (s2, m_s2Transformed) < EPSILON));
237 QVERIFY ((differenceMagnitude (g0, m_g0Transformed) < EPSILON));
238 QVERIFY ((differenceMagnitude (g1, m_g1Transformed) < EPSILON));
239 QVERIFY ((differenceMagnitude (g2, m_g2Transformed) < EPSILON));
242 void TestTransformation::testPolarLinear ()
244 QPointF s0 (500, 1000);
245 QPointF s1 (1000, 500);
246 QPointF s2 (500, 500);
247 QPointF g0 (-90, 100);
253 initTransformation (s0,
259 modelCoordsDefault(),
260 modelGeneralDefault());
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));
270 void TestTransformation::testPolarLogOffset1 ()
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(),
290 modelGeneralDefault());
292 QVERIFY ((differenceMagnitude (s0, m_s0Transformed) < EPSILON));
293 QVERIFY ((differenceMagnitude (s1, m_s1Transformed) < EPSILON));
294 QVERIFY ((differenceMagnitude (s2, m_s2Transformed) < EPSILON));
295 QVERIFY ((differenceMagnitude (g0, m_g0Transformed) < EPSILON));
296 QVERIFY ((differenceMagnitude (g1, m_g1Transformed) < EPSILON));
297 QVERIFY ((differenceMagnitude (g2, m_g2Transformed) < EPSILON));
300 void TestTransformation::testPolarLogOffset10 ()
302 QPointF s0 (500, 1000);
303 QPointF s1 (1000, 500);
304 QPointF s2 (500, 500);
305 QPointF g0 (-90, 100);
313 initTransformation (s0,
319 modelCoordsDefault(),
320 modelGeneralDefault());
322 QVERIFY ((differenceMagnitude (s0, m_s0Transformed) < EPSILON));
323 QVERIFY ((differenceMagnitude (s1, m_s1Transformed) < EPSILON));
324 QVERIFY ((differenceMagnitude (s2, m_s2Transformed) < EPSILON));
325 QVERIFY ((differenceMagnitude (g0, m_g0Transformed) < EPSILON));
326 QVERIFY ((differenceMagnitude (g1, m_g1Transformed) < EPSILON));
327 QVERIFY ((differenceMagnitude (g2, m_g2Transformed) < EPSILON));
void setCoordUnitsTime(CoordUnitsTime coordUnits)
Set method for time units.
Model for DlgSettingsGeneral and CmdSettingsGeneral.
void setCoordUnitsDate(CoordUnitsDate coordUnits)
Set method for date units.
void setCursorSize(int cursorSize)
Set method for effective cursor size.
void setCoordUnitsY(CoordUnitsNonPolarTheta coordUnits)
Set method for y units.
void setCoordUnitsX(CoordUnitsNonPolarTheta coordUnits)
Set method for x units.
void setCoordScaleYRadius(CoordScale coordScale)
Set method for linear/log scale on y/radius.
Model for DlgSettingsMainWindow.
void setCoordUnitsTheta(CoordUnitsPolarTheta coordUnits)
Set method for theta units.
Model for DlgSettingsCoords and CmdSettingsCoords.
void setOriginRadius(double originRadius)
Set method for origin radius in polar mode.
void setCoordUnitsRadius(CoordUnitsNonPolarTheta coordUnits)
Set method for radius units.
void setExtraPrecision(int extraPrecision)
Set method for extra digits of precision.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...
void setCoordScaleXTheta(CoordScale coordScale)
Set method for linear/log scale on x/theta.
void setCoordsType(CoordsType coordsType)
Set method for coordinates type.