Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 452f16d

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /