From e49f9c2b382b450ce0175f64d40f8c44df29588e Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 26 Jan 2017 01:14:58 +0100 Subject: [PATCH] Fixed output of PQ null values --- samples/blackmiscquantities/main.cpp | 3 ++- .../samplesphysicalquantities.cpp | 4 ++++ src/blackmisc/pq/physicalquantity.cpp | 16 ++++++++-------- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/samples/blackmiscquantities/main.cpp b/samples/blackmiscquantities/main.cpp index 616b4bb15..90659c2af 100644 --- a/samples/blackmiscquantities/main.cpp +++ b/samples/blackmiscquantities/main.cpp @@ -28,9 +28,10 @@ using namespace BlackCore; //! main int main(int argc, char *argv[]) { - QCoreApplication(argc, argv); + QCoreApplication qa(argc, argv); CApplication a; Q_UNUSED(a); + Q_UNUSED(qa); QTextStream out(stdout, QIODevice::WriteOnly); CSamplesPhysicalQuantities::samples(out); diff --git a/samples/blackmiscquantities/samplesphysicalquantities.cpp b/samples/blackmiscquantities/samplesphysicalquantities.cpp index 4ef7fb7fa..ad9056bc1 100644 --- a/samples/blackmiscquantities/samplesphysicalquantities.cpp +++ b/samples/blackmiscquantities/samplesphysicalquantities.cpp @@ -58,6 +58,10 @@ namespace BlackSample l3 = l3 * 2; out << "doubled l3: " << l3 << endl; + // null test + CLength nullLength(0, CLengthUnit::nullUnit()); + out << "Null PQ: " << nullLength << " converted " << nullLength.valueRoundedWithUnit(CLengthUnit::m(), 2) << endl; + // more tests CFrequency f1(1E6, CFrequencyUnit::Hz()); // 1MHz out << f1 << " " << f1.valueRoundedWithUnit(CFrequencyUnit::MHz()) << " " << f1.valueRoundedWithUnit(CFrequencyUnit::GHz(), 3); diff --git a/src/blackmisc/pq/physicalquantity.cpp b/src/blackmisc/pq/physicalquantity.cpp index 4caf14a2d..28bd7d303 100644 --- a/src/blackmisc/pq/physicalquantity.cpp +++ b/src/blackmisc/pq/physicalquantity.cpp @@ -257,10 +257,7 @@ namespace BlackMisc template double CPhysicalQuantity::value() const { - if (this->isNull()) - { - return 0.0; - } + if (this->isNull()) { return 0.0; } return this->m_value; } @@ -282,24 +279,29 @@ namespace BlackMisc template QString CPhysicalQuantity::valueRoundedWithUnit(const MU &unit, int digits, bool i18n) const { + Q_ASSERT_X(!unit.isNull(), Q_FUNC_INFO, "Cannot convert to null"); + if (this->isNull()) { return this->convertToQString(i18n); } return unit.makeRoundedQStringWithUnit(this->value(unit), digits, i18n); } template QString CPhysicalQuantity::valueRoundedWithUnit(int digits, bool i18n) const { + if (this->isNull()) { return this->convertToQString(i18n); } return this->valueRoundedWithUnit(this->m_unit, digits, i18n); } template double CPhysicalQuantity::valueRounded(const MU &unit, int digits) const { + Q_ASSERT_X(!unit.isNull(), Q_FUNC_INFO, "Cannot convert to null"); return unit.roundValue(this->value(unit), digits); } template int CPhysicalQuantity::valueInteger(const MU &unit) const { + Q_ASSERT_X(!unit.isNull(), Q_FUNC_INFO, "Cannot convert to null"); double v = unit.roundValue(this->value(unit), 0); return static_cast(v); } @@ -313,16 +315,14 @@ namespace BlackMisc template double CPhysicalQuantity::value(const MU &unit) const { + Q_ASSERT_X(!unit.isNull(), Q_FUNC_INFO, "Cannot convert to null"); return unit.convertFrom(this->m_value, this->m_unit); } template QString CPhysicalQuantity::convertToQString(bool i18n) const { - if (this->isNull()) - { - return i18n ? QCoreApplication::translate("CPhysicalQuantity", "undefined") : "undefined"; - } + if (this->isNull()) { return i18n ? QCoreApplication::translate("CPhysicalQuantity", "undefined") : "undefined"; } return this->valueRoundedWithUnit(this->getUnit(), -1, i18n); }