division
This commit is contained in:
parent
e245ab83a1
commit
0e6e7268ee
3 changed files with 39 additions and 0 deletions
19
fraction.cpp
19
fraction.cpp
|
@ -183,4 +183,23 @@ namespace FractionNS {
|
|||
reduce();
|
||||
return *this;
|
||||
}
|
||||
|
||||
Fraction& Fraction::operator/(const int n) const {
|
||||
return *new Fraction(m_numerator, m_denominator * n);
|
||||
}
|
||||
Fraction& Fraction::operator/(const Fraction& other) const {
|
||||
return *new Fraction(m_numerator * other.getDenominator(), m_denominator * other.getNumerator());
|
||||
}
|
||||
|
||||
Fraction& Fraction::operator/=(const int n) {
|
||||
m_denominator *= n;
|
||||
reduce();
|
||||
return *this;
|
||||
}
|
||||
Fraction& Fraction::operator/=(const Fraction& other) {
|
||||
m_numerator *= other.getDenominator();
|
||||
m_denominator *= other.getNumerator();
|
||||
reduce();
|
||||
return *this;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,5 +49,11 @@ namespace FractionNS {
|
|||
|
||||
Fraction& operator*=(const int);
|
||||
Fraction& operator*=(const Fraction&);
|
||||
|
||||
Fraction& operator/(const int) const;
|
||||
Fraction& operator/(const Fraction&) const;
|
||||
|
||||
Fraction& operator/=(const int);
|
||||
Fraction& operator/=(const Fraction&);
|
||||
};
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ private slots:
|
|||
void test_inequivalence();
|
||||
void test_substraction();
|
||||
void test_multiplication();
|
||||
void test_division();
|
||||
};
|
||||
|
||||
FractionTest::FractionTest() {};
|
||||
|
@ -196,6 +197,19 @@ void FractionTest::test_multiplication()
|
|||
QCOMPARE(f1 * Fraction(2, 3), 4);
|
||||
}
|
||||
|
||||
void FractionTest::test_division() {
|
||||
Fraction f1 = Fraction(1, 1);
|
||||
const Fraction f2 = Fraction(1, 2);
|
||||
QCOMPARE(f1 / 2, f2);
|
||||
|
||||
f1 /= 2;
|
||||
qDebug() << f1.display();
|
||||
QCOMPARE(f1, 0.5);
|
||||
QCOMPARE(f1 / 2, 0.25);
|
||||
|
||||
QCOMPARE((f1 / 2) / Fraction(2, 3), Fraction(3, 8));
|
||||
}
|
||||
|
||||
QTEST_APPLESS_MAIN(FractionTest)
|
||||
|
||||
#include "tst_fractiontest.moc"
|
||||
|
|
Reference in a new issue