diff --git a/src/VoltageDividerWidget.cpp b/src/VoltageDividerWidget.cpp index ae7700e73c909bbfcdc6fba1f13c5b0dcc5b5706..e6a984e973dc65314d9f939c5a2c5d1f40c89207 100644 --- a/src/VoltageDividerWidget.cpp +++ b/src/VoltageDividerWidget.cpp @@ -106,10 +106,8 @@ void VoltageDividerWidget::onCalcRequest() disconnect(ui->lineEditRmax, &QLineEdit::editingFinished, this, &VoltageDividerWidget::onCalcRequest); - int currentIdx = ui->comboBox->currentIndex(); - - VoltageDivider::ResultingResistors resResistors = - VoltageDivider::calc(u1, u2, rMin, rMax, *resSeries[currentIdx]); + VoltageDivider::ResultingResistors resResistors = VoltageDivider::calc( + u1, u2, rMin, rMax, *resSeries[ui->comboBox->currentIndex()]); onResultRefresh(resResistors.r1, resResistors.r2); diff --git a/tests/UnitTest/VoltageDividerStub.cpp b/tests/UnitTest/VoltageDividerStub.cpp index 71966df4e5d991a2555012fc453e64d66514a689..88e6bb060e1812d30154435acccbaf0a8c5fa4a8 100644 --- a/tests/UnitTest/VoltageDividerStub.cpp +++ b/tests/UnitTest/VoltageDividerStub.cpp @@ -6,10 +6,6 @@ #include "VoltageDividerStub.h" -double VoltageDivider::u1; -double VoltageDivider::u2; -double VoltageDivider::lowerRTh; -double VoltageDivider::upperRTh; -const ESeries* VoltageDivider::resSeries; -int VoltageDivider::count; -VoltageDivider::ResultingResistors VoltageDivider::resResistors; +VoltageDivider::VoltageDivider() +{ +} diff --git a/tests/UnitTest/VoltageDividerStub.h b/tests/UnitTest/VoltageDividerStub.h index 39da58eaadf5ce8387bf81224bc845da1a2be82a..3de857001f230a367dc7891255f5d008a5fb5ba4 100644 --- a/tests/UnitTest/VoltageDividerStub.h +++ b/tests/UnitTest/VoltageDividerStub.h @@ -14,16 +14,27 @@ /// class VoltageDivider { public: - /// - /// \brief VoltageDivider Ctor - /// - struct ResultingResistors { double r1; double r2; }; + static VoltageDivider& getInstance() + { + static VoltageDivider instance; + return instance; + } + + static void resetInstance() + { + getInstance().u1 = 0; + getInstance().u2 = 0; + getInstance().lowerRTh = 0; + getInstance().upperRTh = 0; + getInstance().count = 0; + } + /// /// \brief Calculates the optimal values for R1 and R2. The base formula /// behind this calculation is \f$u1=u2 {r2 \over r2+r1}\f$. @@ -36,16 +47,16 @@ class VoltageDivider { /// \param resDecade gives the resister e-decade on which the resistor are /// calculated /// - ResultingResistors calc(double u1, double u2, double lowerRTh, - double upperRTh, const ESeries& resSerie) + static ResultingResistors calc(double u1, double u2, double lowerRTh, + double upperRTh, const ESeries& resSerie) { - this->u1 = u1; - this->u2 = u2; - this->lowerRTh = lowerRTh; - this->upperRTh = upperRTh; - this->resSeries = &resSerie; - count++; - return resResistors; + getInstance().u1 = u1; + getInstance().u2 = u2; + getInstance().lowerRTh = lowerRTh; + getInstance().upperRTh = upperRTh; + getInstance().resSeries = &resSerie; + getInstance().count++; + return getInstance().resResistors; } void setResultingResistors(double r1, double r2) @@ -107,17 +118,23 @@ class VoltageDivider { { return *resSeries; } + signals: public slots: private: - static int count; - static double u1; - static double u2; - static double lowerRTh; - static double upperRTh; - static const ESeries* resSeries; - static ResultingResistors resResistors; + /// + /// \brief VoltageDivider Ctor + /// + VoltageDivider(); + + int count; + double u1; + double u2; + double lowerRTh; + double upperRTh; + const ESeries* resSeries; + ResultingResistors resResistors; }; #endif // VOLTAGEDIVIDER_H diff --git a/tests/UnitTest/VoltageDividerWidgetTest.cpp b/tests/UnitTest/VoltageDividerWidgetTest.cpp index 4a55a954178c3cef04df2810bdd8293743c41600..4eb3971d1578a28a0486f2074105336858dbb69e 100644 --- a/tests/UnitTest/VoltageDividerWidgetTest.cpp +++ b/tests/UnitTest/VoltageDividerWidgetTest.cpp @@ -34,20 +34,20 @@ void testGUIInput(const QString& strU1, const QString& strU2, double u2, double rMin, double rMax, const ESeries& resSerie) { int callCnt = 0; - VoltageDivider vdStub; - vdStub.setResultingResistors(1, 1); + VoltageDivider::resetInstance(); + VoltageDivider::getInstance().setResultingResistors(1, 1); VoltageDividerWidget vd; QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton"); ASSERT_TRUE(pBtn != 0); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1"); ASSERT_TRUE(leU1 != 0); QTest::keyClicks(leU1, strU1); QTest::keyPress(leU1, Qt::Key_Enter); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2"); ASSERT_TRUE(leU2 != 0); @@ -64,15 +64,15 @@ void testGUIInput(const QString& strU1, const QString& strU2, QTest::keyClicks(leRmax, strRMax); QTest::keyPress(leRmax, Qt::Key_Enter); - EXPECT_EQ(vdStub.getCount(), ++callCnt); - EXPECT_EQ(vdStub.getU1(), u1); - EXPECT_EQ(vdStub.getU2(), u2); - EXPECT_EQ(vdStub.getLowerRTh(), rMin); - EXPECT_EQ(vdStub.getUpperRTh(), rMax); - EXPECT_TRUE(vdStub.getESeries() == resSerie); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), ++callCnt); + EXPECT_EQ(VoltageDivider::getInstance().getU1(), u1); + EXPECT_EQ(VoltageDivider::getInstance().getU2(), u2); + EXPECT_EQ(VoltageDivider::getInstance().getLowerRTh(), rMin); + EXPECT_EQ(VoltageDivider::getInstance().getUpperRTh(), rMax); + EXPECT_TRUE(VoltageDivider::getInstance().getESeries() == resSerie); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), ++callCnt); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), ++callCnt); } void testGUIInput(const QString& strU1, const QString& strU2, const QString& strRMin, const QString& strRMax, double u1, @@ -132,34 +132,34 @@ TEST(VoltageDividerWidgetTest, testUnits) TEST(VoltageDividerWidgetTest, testInputDefaults) { int callCnt = 0; - VoltageDivider vdStub; + VoltageDivider::resetInstance(); VoltageDividerWidget vd; QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton"); ASSERT_TRUE(pBtn != 0); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1"); ASSERT_TRUE(leU1 != 0); QTest::keyClicks(leU1, "12"); QTest::keyPress(leU1, Qt::Key_Enter); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2"); ASSERT_TRUE(leU2 != 0); QTest::keyClicks(leU2, "5"); QTest::keyPress(leU2, Qt::Key_Enter); - EXPECT_EQ(vdStub.getCount(), ++callCnt); - EXPECT_EQ(vdStub.getU1(), 12); - EXPECT_EQ(vdStub.getU2(), 5); - EXPECT_EQ(vdStub.getLowerRTh(), 1000); - EXPECT_EQ(vdStub.getUpperRTh(), 10000); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), ++callCnt); + EXPECT_EQ(VoltageDivider::getInstance().getU1(), 12); + EXPECT_EQ(VoltageDivider::getInstance().getU2(), 5); + EXPECT_EQ(VoltageDivider::getInstance().getLowerRTh(), 1000); + EXPECT_EQ(VoltageDivider::getInstance().getUpperRTh(), 10000); ESeries e24; - EXPECT_TRUE(vdStub.getESeries() == e24); + EXPECT_TRUE(VoltageDivider::getInstance().getESeries() == e24); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), ++callCnt); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), ++callCnt); } /// @@ -168,7 +168,7 @@ TEST(VoltageDividerWidgetTest, testInputDefaults) /// TEST(VoltageDividerWidgetTest, testOutput) { - VoltageDivider vdStub; + VoltageDivider::resetInstance(); VoltageDividerWidget vd; QLineEdit* leR1 = vd.findChild<QLineEdit*>("lineEditR1"); @@ -201,18 +201,15 @@ TEST(VoltageDividerWidgetTest, testOutput) ASSERT_TRUE(leU2 != 0); QTest::keyClicks(leU2, "3.3"); - // generate calc signal to set U1, U2, Rmin, and Rmax + // set result and generate calc signal to set U1, U2, Rmin, and Rmax + VoltageDivider::getInstance().setResultingResistors(470, 180); QTest::keyPress(leU2, Qt::Key_Enter); - vdStub.setResultingResistors(470, 180); - ESeries eSerie; - vdStub.calc(0, 0, 0, 0, eSerie); - - // Check Rmin + // Check R1 EXPECT_TRUE(inpValidatorR1.getIsValid()); EXPECT_EQ(inpValidatorR1.getValue(), 470); - // Check Rmax + // Check R2 EXPECT_TRUE(inpValidatorR2.getIsValid()); EXPECT_EQ(inpValidatorR2.getValue(), 180); @@ -232,7 +229,7 @@ TEST(VoltageDividerWidgetTest, testOutput) /// TEST(VoltageDividerWidgetTest, testOutputNegativeAcc) { - VoltageDivider vdStub; + VoltageDivider::resetInstance(); VoltageDividerWidget vd; QLineEdit* leR1 = vd.findChild<QLineEdit*>("lineEditR1"); @@ -266,12 +263,9 @@ TEST(VoltageDividerWidgetTest, testOutputNegativeAcc) QTest::keyClicks(leU2, "5.04"); // generate calc signal to set U1, U2, Rmin, and Rmax + VoltageDivider::getInstance().setResultingResistors(1800, 1300); QTest::keyPress(leU2, Qt::Key_Enter); - vdStub.setResultingResistors(1800, 1300); - ESeries eSerie; - vdStub.calc(0, 0, 0, 0, eSerie); - // Check Rmin EXPECT_TRUE(inpValidatorR1.getIsValid()); EXPECT_EQ(inpValidatorR1.getValue(), 1800); @@ -293,9 +287,9 @@ TEST(VoltageDividerWidgetTest, testOutputNegativeAcc) /// \brief testOutputZeroAcc /// \test test output with zero value accuracy /// -TEST(VoltageDividerWidgetTest, testOutputZeroAcc) +TEST(VoltageDividerWidgetTest, testEqualU) { - VoltageDivider vdStub; + VoltageDivider::resetInstance(); VoltageDividerWidget vd; QLineEdit* leR1 = vd.findChild<QLineEdit*>("lineEditR1"); @@ -331,25 +325,17 @@ TEST(VoltageDividerWidgetTest, testOutputZeroAcc) // generate calc signal to set U1, U2, Rmin, and Rmax QTest::keyPress(leU2, Qt::Key_Enter); - vdStub.setResultingResistors(470, 180); - ESeries eSerie; - vdStub.calc(0, 0, 0, 0, eSerie); - - // Check Rmin - EXPECT_TRUE(inpValidatorR1.getIsValid()); - EXPECT_EQ(inpValidatorR1.getValue(), 470); + // Check R1 + EXPECT_FALSE(inpValidatorR1.getIsValid()); - // Check Rmax - EXPECT_TRUE(inpValidatorR2.getIsValid()); - EXPECT_EQ(inpValidatorR2.getValue(), 180); + // Check R2 + EXPECT_FALSE(inpValidatorR2.getIsValid()); // Check Vout - EXPECT_TRUE(inpValidatorVout.getIsValid()); - EXPECT_EQ(inpValidatorVout.getValue(), 0); + EXPECT_FALSE(inpValidatorVout.getIsValid()); // Check Accuracy - EXPECT_TRUE(inpValidatorAcc.getIsValid()); - EXPECT_EQ(inpValidatorAcc.getValue(), 0); + EXPECT_FALSE(inpValidatorAcc.getIsValid()); } /// @@ -358,7 +344,7 @@ TEST(VoltageDividerWidgetTest, testOutputZeroAcc) /// TEST(VoltageDividerWidgetTest, testOutputInfAcc) { - VoltageDivider vdStub; + VoltageDivider::resetInstance(); VoltageDividerWidget vd; QLineEdit* leR1 = vd.findChild<QLineEdit*>("lineEditR1"); @@ -392,12 +378,9 @@ TEST(VoltageDividerWidgetTest, testOutputInfAcc) QTest::keyClicks(leU2, "0"); // generate calc signal to set U1, U2, Rmin, and Rmax + VoltageDivider::getInstance().setResultingResistors(470, 180); QTest::keyPress(leU2, Qt::Key_Enter); - vdStub.setResultingResistors(470, 180); - ESeries eSerie; - vdStub.calc(0, 0, 0, 0, eSerie); - // Check Rmin EXPECT_TRUE(inpValidatorR1.getIsValid()); EXPECT_EQ(inpValidatorR1.getValue(), 470); @@ -421,19 +404,19 @@ TEST(VoltageDividerWidgetTest, testOutputInfAcc) /// TEST(VoltageDividerWidgetTest, testRminInvalid) { - VoltageDivider vdStub; + VoltageDivider::resetInstance(); VoltageDividerWidget vd; QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton"); ASSERT_TRUE(pBtn != 0); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1"); ASSERT_TRUE(leU1 != 0); QTest::keyClicks(leU1, "12"); QTest::keyPress(leU1, Qt::Key_Enter); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2"); ASSERT_TRUE(leU2 != 0); @@ -445,7 +428,7 @@ TEST(VoltageDividerWidgetTest, testRminInvalid) QTest::keyClicks(leRmin, "X"); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); } /// @@ -454,19 +437,19 @@ TEST(VoltageDividerWidgetTest, testRminInvalid) /// TEST(VoltageDividerWidgetTest, testRmaxInvalid) { - VoltageDivider vdStub; + VoltageDivider::resetInstance(); VoltageDividerWidget vd; QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton"); ASSERT_TRUE(pBtn != 0); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1"); ASSERT_TRUE(leU1 != 0); QTest::keyClicks(leU1, "12"); QTest::keyPress(leU1, Qt::Key_Enter); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2"); ASSERT_TRUE(leU2 != 0); @@ -483,7 +466,7 @@ TEST(VoltageDividerWidgetTest, testRmaxInvalid) QTest::keyClicks(leRmax, "X"); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); } /// @@ -492,19 +475,19 @@ TEST(VoltageDividerWidgetTest, testRmaxInvalid) /// TEST(VoltageDividerWidgetTest, testRmaxLsRmin) { - VoltageDivider vdStub; + VoltageDivider::resetInstance(); VoltageDividerWidget vd; QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton"); ASSERT_TRUE(pBtn != 0); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1"); ASSERT_TRUE(leU1 != 0); QTest::keyClicks(leU1, "12"); QTest::keyPress(leU1, Qt::Key_Enter); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2"); ASSERT_TRUE(leU2 != 0); @@ -521,7 +504,7 @@ TEST(VoltageDividerWidgetTest, testRmaxLsRmin) QTest::keyClicks(leRmax, "10"); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); } /// @@ -530,19 +513,19 @@ TEST(VoltageDividerWidgetTest, testRmaxLsRmin) /// TEST(VoltageDividerWidgetTest, testRmaxEqRmin) { - VoltageDivider vdStub; + VoltageDivider::resetInstance(); VoltageDividerWidget vd; QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton"); ASSERT_TRUE(pBtn != 0); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1"); ASSERT_TRUE(leU1 != 0); QTest::keyClicks(leU1, "12"); QTest::keyPress(leU1, Qt::Key_Enter); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2"); ASSERT_TRUE(leU2 != 0); @@ -559,7 +542,7 @@ TEST(VoltageDividerWidgetTest, testRmaxEqRmin) QTest::keyClicks(leRmax, "100"); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); } /// @@ -568,24 +551,29 @@ TEST(VoltageDividerWidgetTest, testRmaxEqRmin) /// TEST(VoltageDividerWidgetTest, testU1EqU2) { - VoltageDivider vdStub; + VoltageDivider::resetInstance(); VoltageDividerWidget vd; QPushButton* pBtn = vd.findChild<QPushButton*>("pushButton"); ASSERT_TRUE(pBtn != 0); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU1 = vd.findChild<QLineEdit*>("lineEditU1"); ASSERT_TRUE(leU1 != 0); QTest::keyClicks(leU1, "1"); QTest::keyPress(leU1, Qt::Key_Enter); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); QLineEdit* leU2 = vd.findChild<QLineEdit*>("lineEditU2"); ASSERT_TRUE(leU2 != 0); QTest::keyClicks(leU2, "1"); QTest::mouseClick(pBtn, Qt::LeftButton); - EXPECT_EQ(vdStub.getCount(), 0); + EXPECT_EQ(VoltageDivider::getInstance().getCount(), 0); +} + +TEST(VoltageDividerWidgetTest, dummy) +{ + VoltageDivider::calc(0, 0, 0, 0, ESeries()); }