2 #include "MainWindow.h"
5 #include <QtTest/QtTest>
7 #include "SplinePair.h"
8 #include "Test/TestProjectedPoint.h"
14 const
double PI = 3.1415926535;
15 const
double RADIANS_TO_DEGREES = 180.0 / PI;
22 void TestProjectedPoint::cleanupTestCase ()
27 void TestProjectedPoint::initTestCase ()
29 const QString NO_ERROR_REPORT_LOG_FILE;
30 const QString NO_REGRESSION_OPEN_FILE;
31 const bool NO_GNUPLOT_LOG_FILES =
false;
32 const bool NO_REGRESSION_IMPORT =
false;
33 const bool NO_RESET =
false;
34 const bool NO_EXPORT_ONLY =
false;
35 const bool NO_EXTRACT_IMAGE_ONLY =
false;
36 const QString NO_EXTRACT_IMAGE_EXTENSION;
37 const bool DEBUG_FLAG =
false;
38 const QStringList NO_LOAD_STARTUP_FILES;
39 const QStringList NO_COMMAND_LINE;
41 initializeLogging (
"engauge_test",
46 NO_REGRESSION_OPEN_FILE,
51 NO_EXTRACT_IMAGE_ONLY,
52 NO_EXTRACT_IMAGE_EXTENSION,
53 NO_LOAD_STARTUP_FILES,
58 void TestProjectedPoint::testProjectedPoints ()
60 double radiusCircle = 1.0, radiusProjection = 2.0 * radiusCircle;
61 double xToProjectRight = radiusProjection, yToProjectRight = 0.0;
62 double xToProjectUp = 0.0, yToProjectUp = 2.0 * radiusCircle;
63 double xProjectionRight, yProjectionRight, projectedDistanceOutsideLineRight;
64 double xProjectionUp, yProjectionUp, projectedDistanceOutsideLineUp;
65 double distanceToLine;
72 int angleCriticalRight = qFloor (0.5 + qAcos (radiusCircle / radiusProjection) * RADIANS_TO_DEGREES);
73 int angleCriticalUp = qFloor (0.5 + qAsin (radiusCircle / radiusProjection) * RADIANS_TO_DEGREES);
75 for (
int angle = 0; angle <= 360; angle += angleStep) {
77 double xStart = radiusCircle * cos (angle * PI / 180.0);
78 double yStart = radiusCircle * sin (angle * PI / 180.0);
79 double xStop = -1.0 * xStart;
80 double yStop = -1.0 * yStart;
82 double xMin = qMin (xStart, xStop);
83 double yMin = qMin (yStart, yStop);
84 double xMax = qMax (xStart, xStop);
85 double yMax = qMax (yStart, yStop);
88 projectPointOntoLine (xToProjectRight,
96 &projectedDistanceOutsideLineRight,
101 if ((angleCriticalRight <= angle && angle <= 180 - angleCriticalRight) ||
102 (180 + angleCriticalRight <= angle && angle <= 360 - angleCriticalRight)) {
104 QVERIFY ((projectedDistanceOutsideLineRight == 0));
106 QVERIFY ((projectedDistanceOutsideLineRight != 0));
108 QVERIFY ((xMin <= xProjectionRight));
109 QVERIFY ((yMin <= yProjectionRight));
110 QVERIFY ((xProjectionRight <= xMax));
111 QVERIFY ((yProjectionRight <= yMax));
114 projectPointOntoLine (xToProjectUp,
122 &projectedDistanceOutsideLineUp,
127 if ((angle <= angleCriticalUp) ||
128 (180 - angleCriticalUp <= angle && angle <= 180 + angleCriticalUp) ||
129 (360 - angleCriticalUp <= angle)) {
131 QVERIFY ((projectedDistanceOutsideLineUp == 0));
133 QVERIFY ((projectedDistanceOutsideLineUp != 0));
135 QVERIFY ((xMin <= xProjectionUp));
136 QVERIFY ((yMin <= yProjectionUp));
137 QVERIFY ((xProjectionUp <= xMax));
138 QVERIFY ((yProjectionUp <= yMax));
Unit test of spline library.
Main window consisting of menu, graphics scene, status bar and optional toolbars as a Single Document...