Skip to content

Commit

Permalink
Merge branch 'hi-fi-input-interaction-views-validation' into temp-int…
Browse files Browse the repository at this point in the history
…egration-pt3
  • Loading branch information
BenHenning committed Dec 4, 2019
2 parents e5e4b20 + 889813a commit 5fb1395
Showing 1 changed file with 3 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ import org.oppia.app.R
import org.oppia.app.customview.interaction.FractionInputInteractionView
import org.oppia.app.model.Fraction
import org.oppia.domain.util.normalizeWhitespace
import java.lang.Integer.parseInt
import java.util.regex.Pattern

/** This class contains method that helps to parse string to fraction. */
class StringToFractionParser {
Expand All @@ -24,7 +22,7 @@ class StringToFractionParser {
*/
fun getSubmitTimeError(text: String): FractionParsingError {
// No need to check for real-time errors since the following logically include them.
val fraction = parseFraction(text)
val fraction = getFractionFromString(text)
return when {
fraction == null -> FractionParsingError.INVALID_FORMAT
fraction.denominator == 0 -> FractionParsingError.DIVISION_BY_ZERO
Expand All @@ -49,13 +47,13 @@ class StringToFractionParser {
}
}

fun getFractionFromString(text: String): Fraction {
fun getFractionFromString(text: String): Fraction? {
// Normalize whitespace to ensure that answer follows a simpler subset of possible patterns.
val inputText: String = text.normalizeWhitespace()
return parseMixedNumber(inputText)
?: parseFraction(inputText)
?: parseWholeNumber(inputText)
?: throw IllegalArgumentException("Incorrectly formatted fraction: $text")
?: null
}

private fun parseMixedNumber(inputText: String): Fraction? {
Expand Down

0 comments on commit 5fb1395

Please sign in to comment.