Skip to content

Commit 452f16d

Browse files
committed
add operators
1 parent 4153495 commit 452f16d

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

src/main/scala/org/codecraftlabs/training/Rational.scala

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,14 @@ class Rational (n: Int, d: Int) {
1313

1414
override def toString: String = numer + "/" + denom
1515

16-
def add(that: Rational): Rational = {
16+
def + (that: Rational): Rational = {
1717
new Rational (numer * that.denom + that.numer * denom, denom * that.denom)
1818
}
1919

20+
def * (that: Rational): Rational = {
21+
new Rational(numer * that.denom, denom * that.numer)
22+
}
23+
2024
def lessThan(that: Rational): Boolean = {
2125
this.numer * that.denom < that.numer * this.denom
2226
}

src/test/scala/org/codecraftlabs/training/RationalSpec.scala

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,20 @@ class RationalSpec extends AnyFlatSpec with Matchers {
88
val r1 = new Rational(1, 2)
99
val r2 = new Rational(2, 3)
1010

11-
val result = r1.add(r2)
11+
val result = r1 + r2
1212
result.numer shouldEqual 7
1313
result.denom shouldEqual 6
1414
}
1515

16+
"1/3 * 1/6" should "result in 2" in {
17+
val r1 = new Rational(1, 3)
18+
val r2 = new Rational(1, 6)
19+
20+
val result = r1 * r2
21+
result.numer shouldEqual 2
22+
result.denom shouldEqual 1
23+
}
24+
1625
"1/3 lessThan 1/2" should "return true" in {
1726
val r1 = new Rational(1, 3)
1827
val r2 = new Rational(1, 2)

0 commit comments

Comments
 (0)