Refactoring. Fix bug in reading vector from Json.
--HG-- branch : develop
This commit is contained in:
parent
1cede87cc6
commit
833a092b27
|
@ -115,13 +115,7 @@ void AbstractTest::VectorFromJson(const QString &json, QVector<VSAPoint> &vector
|
||||||
PrepareDocument(json, saveData);
|
PrepareDocument(json, saveData);
|
||||||
QJsonDocument loadDoc(QJsonDocument::fromJson(saveData));
|
QJsonDocument loadDoc(QJsonDocument::fromJson(saveData));
|
||||||
|
|
||||||
const int defaultAngle = static_cast<int>(PieceNodeAngle::ByLength);
|
|
||||||
|
|
||||||
const QString vectorKey = QStringLiteral("vector");
|
const QString vectorKey = QStringLiteral("vector");
|
||||||
const QString typeKey = QStringLiteral("type");
|
|
||||||
const QString saBeforeKey = QStringLiteral("saBefore");
|
|
||||||
const QString saAfterKey = QStringLiteral("saAfter");
|
|
||||||
const QString angleKey = QStringLiteral("angle");
|
|
||||||
|
|
||||||
QJsonObject vectorObject = loadDoc.object();
|
QJsonObject vectorObject = loadDoc.object();
|
||||||
TestRoot(vectorObject, vectorKey, json);
|
TestRoot(vectorObject, vectorKey, json);
|
||||||
|
@ -132,12 +126,11 @@ void AbstractTest::VectorFromJson(const QString &json, QVector<VSAPoint> &vector
|
||||||
QJsonObject pointObject = vectorArray[i].toObject();
|
QJsonObject pointObject = vectorArray[i].toObject();
|
||||||
|
|
||||||
QString type;
|
QString type;
|
||||||
AbstractTest::ReadStringValue(pointObject, typeKey, type);
|
AbstractTest::ReadStringValue(pointObject, QStringLiteral("type"), type);
|
||||||
|
|
||||||
if (pointObject[typeKey].toString() != QLatin1String("VSAPoint"))
|
if (type != QLatin1String("VSAPoint"))
|
||||||
{
|
{
|
||||||
const QString error = QStringLiteral("Invalid json file '%1'. Unexpected class '%2'.")
|
const QString error = QStringLiteral("Invalid json file '%1'. Unexpected class '%2'.").arg(json, type);
|
||||||
.arg(json, pointObject[typeKey].toString());
|
|
||||||
QFAIL(qUtf8Printable(error));
|
QFAIL(qUtf8Printable(error));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,50 +144,18 @@ void AbstractTest::VectorFromJson(const QString &json, QVector<VSAPoint> &vector
|
||||||
AbstractTest::ReadDoubleValue(pointObject, QStringLiteral("y"), y);
|
AbstractTest::ReadDoubleValue(pointObject, QStringLiteral("y"), y);
|
||||||
point.setY(y);
|
point.setY(y);
|
||||||
|
|
||||||
|
qreal saBefore;
|
||||||
|
AbstractTest::ReadDoubleValue(pointObject, QStringLiteral("saBefore"), saBefore, QStringLiteral("-1"));
|
||||||
|
point.SetSABefore(saBefore);
|
||||||
|
|
||||||
|
qreal saAfter;
|
||||||
|
AbstractTest::ReadDoubleValue(pointObject, QStringLiteral("saAfter"), saAfter, QStringLiteral("-1"));
|
||||||
|
point.SetSAAfter(saAfter);
|
||||||
|
|
||||||
if (pointObject.contains(saBeforeKey))
|
PieceNodeAngle angleType;
|
||||||
{
|
AbstractTest::ReadDoubleValue(pointObject, QStringLiteral("angle"), angleType,
|
||||||
QJsonValue saBeforeValue = pointObject[saBeforeKey];
|
QString::number(static_cast<int>(PieceNodeAngle::ByLength)));
|
||||||
if (saBeforeValue.isDouble())
|
point.SetAngleType(angleType);
|
||||||
{
|
|
||||||
point.SetSABefore(saBeforeValue.toDouble(-1));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const QString error = QStringLiteral("SABefore is not double '%1'.").arg(saBeforeValue.toString());
|
|
||||||
QFAIL(qUtf8Printable(error));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pointObject.contains(saAfterKey))
|
|
||||||
{
|
|
||||||
QJsonValue saAfterValue = pointObject[saAfterKey];
|
|
||||||
if (saAfterValue.isDouble())
|
|
||||||
{
|
|
||||||
point.SetSABefore(saAfterValue.toDouble(-1));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const QString error = QStringLiteral("SAAfter is not double '%1'.").arg(saAfterValue.toString());
|
|
||||||
QFAIL(qUtf8Printable(error));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pointObject.contains(angleKey))
|
|
||||||
{
|
|
||||||
QJsonValue angleValue = pointObject[angleKey];
|
|
||||||
if (angleValue.isDouble())
|
|
||||||
{
|
|
||||||
const int angle = static_cast<int>(angleValue.toDouble(defaultAngle));
|
|
||||||
point.SetAngleType(static_cast<PieceNodeAngle>(angle));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const QString error = QStringLiteral("Angle type is not double '%1'.").arg(angleValue.toString());
|
|
||||||
QFAIL(qUtf8Printable(error));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
vector.append(point);
|
vector.append(point);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user