Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit cfdb0d5

Browse files
committed
Increase coverage of the code 02
1 parent 3480249 commit cfdb0d5

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/main/scala/com/codingmaniacs/qualified/StringChallenges.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ object StringChallenges {
44

55
sealed trait ExprToken
66

7+
final case object EmptyToken extends ExprToken
8+
79
final case class Number(n: Double) extends ExprToken
810

911
final case class BinOperator(symbol: String, op: (Double, Double) => Double) extends ExprToken
@@ -54,14 +56,15 @@ object StringChallenges {
5456
val result = solution(expr.split(" ").toList).lastOption
5557
result match {
5658
case Some(Number(n)) => n
57-
case None => 0.0
59+
case Some(EmptyToken) => 0.0
5860
}
5961
}
6062

6163
def parseTokensToExpr(strTokens: List[String]): List[ExprToken] = {
6264
strTokens.map {
6365
case tk if tk.matches("^[0-9]+(.[0-9]+)?") => Number(tk.toDouble)
6466
case tk if tk.equals("sqrt") => MonoOperator("sqrt", n => Math.sqrt(n))
67+
case tk if tk.equals("") => EmptyToken
6568
case tk => BinOperator(tk)
6669
}
6770
}

src/test/scala/com/codingmaniacs/qualified/StringChallengesSpec.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ class StringChallengesSpec extends Specification {
5252
}
5353
}
5454
"The expression evaluator" should {
55+
"evaluate a empty expresion" in {
56+
val res = StringChallenges.evaluate("")
57+
res mustEqual 0.0
58+
}
5559
"evaluate a simple number" in {
5660
val res = StringChallenges.evaluate("3")
5761
res mustEqual 3

0 commit comments

Comments
 (0)