14#include <QtTest/QtTest>
51bool TestExport::checkCommasInFunctionsForDelimiter (
ExportDelimiter delimiter,
52 QLocale::Country country,
59 QTextStream str (&output);
66 unsigned int numWritesSoFar = 0;
70 exportFile.exportAllPerLineXThetaValuesMerged (m_modelExportOverride,
92bool TestExport::checkCommasInRelationsForDelimiter (
ExportDelimiter delimiter,
93 QLocale::Country country,
100 QTextStream str (&output);
105 bool isLogXTheta = (m_modelCoords.coordScaleXTheta() ==
COORD_SCALE_LOG);
106 bool isLogYRadius = (m_modelCoords.coordScaleYRadius() ==
COORD_SCALE_LOG);
107 unsigned int numWritesSoFar = 0;
109 ExportFileRelations exportFile;
110 exportFile.exportAllPerLineXThetaValuesMerged (m_modelExportOverride,
129void TestExport::cleanupTestCase ()
133void TestExport::initData (
bool isLog,
135 QLocale::Country country)
137 const QString CURVE_NAME (
"Curve1");
138 const int LINE_WIDTH = 2, POINT_LINE_WIDTH = 1;
140 const int RADIUS = 5;
143 m_document =
new Document (nullImage);
145 m_curvesIncluded.clear ();
146 m_curvesIncluded << CURVE_NAME;
148 CurveStyles curveStyles (m_document->coordSystem ());
149 CurveStyle curveStyle (LineStyle (LINE_WIDTH,
156 curveStyles.setCurveStyle (CURVE_NAME, curveStyle);
165 m_modelGeneral.setCursorSize (3);
166 m_modelGeneral.setExtraPrecision (1);
169 m_modelExportOverride.setDelimiter (delimiter);
171 m_document->setModelExport (m_modelExportOverride);
172 m_document->setModelCurveStyles (curveStyles);
173 m_document->setModelCoords (m_modelCoords);
174 m_document->setModelGeneral (m_modelGeneral);
176 m_modelMainWindow.setLocale (QLocale::English,
179 m_document->addPointGraphWithSpecifiedIdentifier (CURVE_NAME, QPointF (845, 305),
"Curve1\t0", 0);
180 m_document->addPointGraphWithSpecifiedIdentifier (CURVE_NAME, QPointF (850, 294),
"Curve1\t1", 1);
181 m_document->addPointGraphWithSpecifiedIdentifier (CURVE_NAME, QPointF (862, 272),
"Curve1\t2", 2);
182 m_document->addPointGraphWithSpecifiedIdentifier (CURVE_NAME, QPointF (876, 244),
"Curve1\t3", 3);
183 m_document->addPointGraphWithSpecifiedIdentifier (CURVE_NAME, QPointF (887, 222),
"Curve1\t4", 4);
184 m_document->addPointGraphWithSpecifiedIdentifier (CURVE_NAME, QPointF (899, 200),
"Curve1\t5", 5);
185 m_document->addPointGraphWithSpecifiedIdentifier (CURVE_NAME, QPointF (910, 177),
"Curve1\t6", 6);
186 m_document->addPointGraphWithSpecifiedIdentifier (CURVE_NAME, QPointF (922, 155),
"Curve1\t7", 7);
187 m_document->addPointGraphWithSpecifiedIdentifier (CURVE_NAME, QPointF (933, 133),
"Curve1\t8", 8);
188 m_document->addPointGraphWithSpecifiedIdentifier (CURVE_NAME, QPointF (945, 110),
"Curve1\t9", 9);
190 m_xThetaValues.clear ();
191 m_xThetaValues << 0.0009999;
192 m_xThetaValues << 0.001;
193 m_xThetaValues << 0.01;
194 m_xThetaValues << 0.1;
196 m_xThetaValues << 10;
197 m_xThetaValues << 100;
198 m_xThetaValues << 1000;
199 QTransform matrixScreen ( 51, 52, 1123,
202 QTransform matrixGraph (qLn (0.001), qLn (0.001), qLn (1000),
203 qLn ( 1), qLn ( 100), qLn ( 1),
205 m_transformation.updateTransformFromMatrices (matrixScreen,
207 m_transformation.setModelCoords (m_modelCoords,
212void TestExport::initTestCase ()
232 DocumentModelExportFormat exportDefault;
233 m_modelExportOverride = exportDefault;
235 m_mainWindow->show ();
238void TestExport::testCommasInFunctionsForCommasSwitzerland ()
240 QString outputExpectedIfCommaSeparator =
242 "\"0,001\",\"-1,27563\"\n"
243 "\"0,001\",\"-1,27563\"\n"
244 "\"0,01\",\"-1,26683\"\n"
245 "\"0,1\",\"-1,17881\"\n"
247 "10,\"-706,15184\"\n"
248 "100,\"-3997814,14355\"\n"
249 "1000,\"-4541901224,06376\"\n";
250 QString outputExpectedIfPeriodSeparator =
258 "100,-3997814.14355\n"
259 "1000,-4541901224.06376\n";
263 QLocale::Switzerland,
269 QVERIFY (outputGot == outputExpectedIfCommaSeparator ||
270 outputGot == outputExpectedIfPeriodSeparator);
273void TestExport::testCommasInFunctionsForCommasUnitedStates ()
275 QString outputExpected =
283 "100,-3997814.14355\n"
284 "1000,-4541901224.06376\n";
288 QLocale::UnitedStates,
294 QVERIFY (outputGot == outputExpected);
297void TestExport::testCommasInFunctionsForTabsSwitzerland ()
299 QString outputExpectedIfCommaSeparator =
307 "100\t-3997814,14355\n"
308 "1000\t-4541901224,06376\n";
309 QString outputExpectedIfPeriodSeparator =
317 "100\t-3997814.14355\n"
318 "1000\t-4541901224.06376\n";
322 QLocale::Switzerland,
328 QVERIFY (outputGot == outputExpectedIfCommaSeparator ||
329 outputGot == outputExpectedIfPeriodSeparator);
332void TestExport::testCommasInFunctionsForTabsUnitedStates ()
334 QString outputExpected =
342 "100\t-3997814.14355\n"
343 "1000\t-4541901224.06376\n";
347 QLocale::UnitedStates,
353 QVERIFY (outputGot == outputExpected);
356void TestExport::testCommasInRelationsForCommasSwitzerland ()
358 QString outputExpectedIfCommaSeparator =
360 "\"3,3192\",\"2,08003\"\n"
361 "\"3,3723\",\"2,15796\"\n"
362 "\"3,432\",\"2,23368\"\n"
363 "\"3,4935\",\"2,30883\"\n"
364 "\"3,5539\",\"2,38438\"\n"
365 "\"3,6113\",\"2,46094\"\n"
366 "\"3,6687\",\"2,5375\"\n"
367 "\"3,7261\",\"2,61406\"\n"
368 "\"3,7836\",\"2,69062\"\n"
369 "\"3,841\",\"2,76718\"\n"
370 "\"3,9012\",\"2,84276\"\n"
371 "\"3,9628\",\"2,91791\"\n"
372 "\"4,0231\",\"2,99345\"\n"
373 "\"4,0785\",\"3,07067\"\n"
374 "\"4,1339\",\"3,14789\"\n"
375 "\"4,1932\",\"3,22378\"\n"
376 "\"4,2547\",\"3,29893\"\n"
377 "\"4,3156\",\"3,37426\"\n"
378 "\"4,3731\",\"3,45082\"\n"
379 "\"4,4305\",\"3,52738\"\n"
380 "\"4,4892\",\"3,60349\"\n"
381 "\"4,5486\",\"3,67938\"\n";
382 QString outputExpectedIfPeriodSeparator =
409 QLocale::Switzerland,
415 QVERIFY (outputGot == outputExpectedIfCommaSeparator ||
416 outputGot == outputExpectedIfPeriodSeparator);
419void TestExport::testCommasInRelationsForCommasUnitedStates ()
421 QString outputExpected =
448 QLocale::UnitedStates,
454 QVERIFY (outputGot == outputExpected);
457void TestExport::testCommasInRelationsForTabsSwitzerland ()
459 QString outputExpectedIfCommaSeparator =
483 QString outputExpectedIfPeriodSeparator =
510 QLocale::Switzerland,
516 QVERIFY (outputGot == outputExpectedIfCommaSeparator ||
517 outputGot == outputExpectedIfPeriodSeparator);
520void TestExport::testCommasInRelationsForTabsUnitedStates ()
522 QString outputExpected =
549 QLocale::UnitedStates,
555 QVERIFY (outputGot == outputExpected);
558void TestExport::testExportOnlyNonRegressionLowerCase ()
563 QString outputGot = m_mainWindow->fileNameForExportOnly ();
565 outputWanted = outputWanted.replace (
".dig",
".csv");
567 QVERIFY (outputGot == outputWanted);
570void TestExport::testExportOnlyNonRegressionUpperCase ()
575 QString outputGot = m_mainWindow->fileNameForExportOnly ();
577 outputWanted = outputWanted.replace (
".DIG",
".csv");
579 QVERIFY (outputGot == outputWanted);
582void TestExport::testExportOnlyRegressionLowerCase ()
587 QString outputGot = m_mainWindow->fileNameForExportOnly ();
589 outputWanted = outputWanted.replace (
".dig",
".csv_actual_1");
591 QVERIFY (outputGot == outputWanted);
594void TestExport::testExportOnlyRegressionUpperCase ()
599 QString outputGot = m_mainWindow->fileNameForExportOnly ();
601 outputWanted = outputWanted.replace (
".DIG",
".csv_actual_1");
603 QVERIFY (outputGot == outputWanted);
606void TestExport::testLogExtrapolationFunctionsAll ()
610 QLocale::UnitedStates);
614 QTextStream str (&dummy);
617 bool isLogXTheta = (m_modelCoords.coordScaleXTheta() ==
COORD_SCALE_LOG);
618 bool isLogYRadius = (m_modelCoords.coordScaleYRadius() ==
COORD_SCALE_LOG);
619 unsigned int numWritesSoFar = 0;
621 ExportFileFunctions exportFile;
623 exportFile.exportAllPerLineXThetaValuesMerged (m_modelExportOverride,
@ CONNECT_AS_FUNCTION_SMOOTH
QHash< QString, double > CurveLimits
QString exportDelimiterToText(ExportDelimiter exportDelimiter, bool isGnuplotDelimiter)
ExportDelimiter
Delimiter values that may or may not be overridden by DOCUMENT_SERIALIZE_EXPORT_DELIMITER_OVERRIDE_CS...
@ EXPORT_POINTS_SELECTION_FUNCTIONS_INTERPOLATE_FIRST_CURVE
void initializeLogging(const QString &name, const QString &filename, bool isDebug)
const bool NO_EXPORT_ONLY
const QStringList NO_COMMAND_LINE
const QString NO_EXTRACT_IMAGE_EXTENSION
const QString STARTUP_DIG_LOWER_CASE("/tmp/export_only.dig")
const bool REGRESSION_IMPORT
const QString STARTUP_DIG_UPPER_CASE("/tmp/export_only.DIG")
const QString NO_ERROR_REPORT_LOG_FILE
const bool NO_GNUPLOT_LOG_FILES
const QString NO_REGRESSION_OPEN_FILE
const QStringList NO_LOAD_STARTUP_FILES
const bool NO_REGRESSION_IMPORT
const QStringList ONE_LOAD_STARTUP_FILE_LOWER_CASE(STARTUP_DIG_LOWER_CASE)
const QStringList ONE_LOAD_STARTUP_FILE_UPPER_CASE(STARTUP_DIG_UPPER_CASE)
const bool NOT_USING_GNUPLOT
const bool NO_EXTRACT_IMAGE_ONLY
const bool NO_DROP_REGRESSION
CoordScale coordScaleYRadius() const
Get method for linear/log scale on y/radius.
CoordScale coordScaleXTheta() const
Get method for linear/log scale on x/theta.
Strategy class for exporting to a file. This strategy is external to the Document class so that class...
Unit test of Export classes.
TestExport(QObject *parent=0)
Single constructor.