1 #include "DocumentModelCoords.h"
2 #include "DocumentModelGridDisplay.h"
3 #include "GridLineLimiter.h"
5 #include "MainWindow.h"
6 #include "MainWindowModel.h"
8 #include <QtTest/QtTest>
9 #include "Test/TestGridLineLimiter.h"
10 #include "Transformation.h"
21 void TestGridLineLimiter::cleanupTestCase ()
25 void TestGridLineLimiter::initTestCase ()
27 const QString NO_ERROR_REPORT_LOG_FILE;
28 const QString NO_REGRESSION_OPEN_FILE;
29 const bool NO_GNUPLOT_LOG_FILES =
false;
30 const bool NO_REGRESSION_IMPORT =
false;
31 const bool NO_RESET =
false;
32 const bool NO_EXPORT_ONLY =
false;
33 const bool NO_EXTRACT_IMAGE_ONLY =
false;
34 const QString NO_EXTRACT_IMAGE_EXTENSION;
35 const bool DEBUG_FLAG =
false;
36 const QStringList NO_LOAD_STARTUP_FILES;
37 const QStringList NO_COMMAND_LINE;
39 initializeLogging (
"engauge_test",
44 NO_REGRESSION_OPEN_FILE,
49 NO_EXTRACT_IMAGE_ONLY,
50 NO_EXTRACT_IMAGE_EXTENSION,
51 NO_LOAD_STARTUP_FILES,
56 void TestGridLineLimiter::testBadStepLinearX ()
58 bool success = testLinearX (0,
68 void TestGridLineLimiter::testBadStepLinearY ()
70 bool success = testLinearY (0,
80 void TestGridLineLimiter::testBadStepLogX ()
82 bool success = testLogX (0,
92 void TestGridLineLimiter::testBadStepLogY ()
94 bool success = testLogY (0,
104 bool TestGridLineLimiter::testLinearX (
double start,
107 double x1,
double y1,
108 double x2,
double y2,
109 double x3,
double y3)
118 double startX, stepX, stopX;
125 document.addPointAxisWithSpecifiedIdentifier (QPointF (0 , 0), QPointF (x1, y1), QString (
"axis1"), 0.0,
false);
126 document.addPointAxisWithSpecifiedIdentifier (QPointF (100, 0), QPointF (x2, y2), QString (
"axis2"), 0.0,
false);
127 document.addPointAxisWithSpecifiedIdentifier (QPointF (0 , 100), QPointF (x3, y3), QString (
"axis3"), 0.0,
false);
142 int gridLineCount = 1 + (stopX - startX) / stepX;
143 success = (gridLineCount <= 20);
147 success = (startX == stopX);
154 bool TestGridLineLimiter::testLinearY (
double start,
157 double x1,
double y1,
158 double x2,
double y2,
159 double x3,
double y3)
168 double startY, stepY, stopY;
175 document.addPointAxisWithSpecifiedIdentifier (QPointF (0 , 0), QPointF (x1, y1), QString (
"axis1"), 0.0,
false);
176 document.addPointAxisWithSpecifiedIdentifier (QPointF (100, 0), QPointF (x2, y2), QString (
"axis2"), 0.0,
false);
177 document.addPointAxisWithSpecifiedIdentifier (QPointF (0 , 100), QPointF (x3, y3), QString (
"axis3"), 0.0,
false);
192 int gridLineCount = 1 + (stopY - startY) / stepY;
193 success = (gridLineCount <= 20);
197 success = (startY == stopY);
204 bool TestGridLineLimiter::testLogX (
double start,
207 double x1,
double y1,
208 double x2,
double y2,
209 double x3,
double y3)
218 double startX, stepX, stopX;
225 document.addPointAxisWithSpecifiedIdentifier (QPointF (0 , 0), QPointF (x1, y1), QString (
"axis1"), 0.0,
false);
226 document.addPointAxisWithSpecifiedIdentifier (QPointF (100, 0), QPointF (x2, y2), QString (
"axis2"), 0.0,
false);
227 document.addPointAxisWithSpecifiedIdentifier (QPointF (0 , 100), QPointF (x3, y3), QString (
"axis3"), 0.0,
false);
238 bool success = (startX > 0) && (stepX > 0);
242 int gridLineCount = 1 + (qLn (stopX) - qLn (startX)) / qLn (stepX);
243 success = (gridLineCount <= 20);
250 bool TestGridLineLimiter::testLogY (
double start,
253 double x1,
double y1,
254 double x2,
double y2,
255 double x3,
double y3)
264 double startY, stepY, stopY;
271 document.addPointAxisWithSpecifiedIdentifier (QPointF (0 , 0), QPointF (x1, y1), QString (
"axis1"), 0.0,
false);
272 document.addPointAxisWithSpecifiedIdentifier (QPointF (100, 0), QPointF (x2, y2), QString (
"axis2"), 0.0,
false);
273 document.addPointAxisWithSpecifiedIdentifier (QPointF (0 , 100), QPointF (x3, y3), QString (
"axis3"), 0.0,
false);
284 bool success = (startY > 0) && (stepY > 0);
288 int gridLineCount = 1 + (qLn (stopY) - qLn (startY)) / qLn (stepY);
289 success = (gridLineCount <= 20);
296 void TestGridLineLimiter::testTransitionLinearToLogX ()
298 bool success = testLogX (0,
308 void TestGridLineLimiter::testTransitionLinearToLogY ()
310 bool success = testLogY (0,
void limitForXTheta(const Document &document, const Transformation &transformation, const DocumentModelCoords &modelCoords, const MainWindowModel &modelMainWindow, const DocumentModelGridDisplay &modelGrid, double &startX, double &stepX, double &stopX) const
Limit step value for x/theta coordinate. This is a noop if the maximum grid line limit in MainWindowM...
void limitForYRadius(const Document &document, const Transformation &transformation, const DocumentModelCoords &modelCoords, const MainWindowModel &modelMainWindow, const DocumentModelGridDisplay &modelGrid, double &startY, double &stepY, double &stopY) const
Limit step value for y/range coordinate. This is a noop if the maximum grid line limit in MainWindowM...
void setStartX(double startX)
Set method for x grid line lower bound (inclusive).
Model for DlgSettingsGridDisplay and CmdSettingsGridDisplay.
void setStepX(double stepX)
Set method for x grid line increment.
void setCoordScaleYRadius(CoordScale coordScale)
Set method for linear/log scale on y/radius.
void setStepY(double yStep)
Set method for y grid line increment.
void setStopX(double stopX)
Set method for x grid line upper bound (inclusive).
Model for DlgSettingsMainWindow.
void setStopY(double yStop)
Set method for y grid line upper bound (inclusive).
Model for DlgSettingsCoords and CmdSettingsCoords.
Storage of one imported image and the data attached to that image.
void setMaximumGridLines(int maximumGridLines)
Set method for maximum number of grid lines.
void setStartY(double yStart)
Set method for y grid line lower bound (inclusive).
Unit test of GridLineLimiter class.
Limit the number of grid lines so a bad combination of start/step/stop value will not lead to extreme...
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.