// SPDX-License-Identifier: LGPL-2.1-or-later #include #include #include #include "Gui/QuantitySpinBox.h" #include // NOLINTBEGIN(readability-magic-numbers) class testQuantitySpinBox: public QObject { Q_OBJECT public: testQuantitySpinBox() { tests::initApplication(); qsb = std::make_unique(); } private Q_SLOTS: void init() {} void cleanup() {} void test_SimpleBaseUnit() // NOLINT { auto result = qsb->valueFromText("1mm"); QCOMPARE(result, Base::Quantity(1, "mm")); } void test_UnitInNumerator() // NOLINT { auto result = qsb->valueFromText("1mm/10"); QCOMPARE(result, Base::Quantity(0.1, "mm")); } void test_UnitInDenominator() // NOLINT { auto result = qsb->valueFromText("1/10mm"); QCOMPARE(result, Base::Quantity(0.1, "mm")); } void test_KeepFormat() // NOLINT { auto quant = qsb->value(); auto format = quant.getFormat(); format.setPrecision(7); quant.setFormat(format); qsb->setValue(quant); auto val1 = qsb->value(); QCOMPARE(val1.getFormat().getPrecision(), 7); // format shouldn't change after setting a double qsb->setValue(3.5); auto val2 = qsb->value(); QCOMPARE(val2.getFormat().getPrecision(), 7); } private: std::unique_ptr qsb; }; // NOLINTEND(readability-magic-numbers) QTEST_MAIN(testQuantitySpinBox) #include "QuantitySpinBox.moc"