Skip to content

Commit

Permalink
Merge pull request #102 from DeluxeAlonso/automation-tests
Browse files Browse the repository at this point in the history
Automation tests
  • Loading branch information
DeluxeAlonso committed Feb 19, 2024
2 parents 9cb507b + 221c81a commit 19b19f1
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 4 deletions.
15 changes: 14 additions & 1 deletion CalculatorReplicaSwiftUI/Extensions/String+Digits.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@ extension String {
return fractionDigitsCount() > 0
}
}


func extractLastCharactersOf(_ buttonRepresentable: CalculatorButtonRepresentable) -> Self {
extractLastCharactersOf(buttonRepresentable.character)
}

func extractLastCharactersOf(_ character: Character) -> Self {
var array: [String] = []
var mutableString = self
Expand All @@ -40,6 +44,11 @@ extension String {
}
return array.joined()
}

func extractLastCharactersOf(_ buttonRepresentables: [CalculatorButtonRepresentable],
withCutCharacter cutButtonRepresentable: CalculatorButtonRepresentable? = nil) -> Self {
extractLastCharactersOf(buttonRepresentables.compactMap { $0.character }, withCutCharacter: cutButtonRepresentable?.character)
}

func extractLastCharactersOf(_ characters: [Character], withCutCharacter cutCharacter: Character? = nil) -> Self {
var array: [String] = []
Expand All @@ -51,6 +60,10 @@ extension String {
}
return array.joined()
}

func trimLeadingOcurrencesOf(_ buttonRepresentable: CalculatorButtonRepresentable) -> Self {
return String(drop { $0 == buttonRepresentable.character })
}

func trimLeadingOcurrencesOf(_ character: Character) -> Self {
return String(drop { $0 == character })
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ struct CalculatorDisplayTrimmer: CalculatorDisplayTrimmerProtocol {
// MARK: - CalculatorDisplayTrimmerProtocol

func getTrimmedCalculatorDisplay(_ calculatorDisplay: String) -> String {
var trimmedCalculatorDisplay = calculatorDisplay.trimLeadingOcurrencesOf(CalculatorButtonRepresentable.zero.character)
var trimmedCalculatorDisplay = calculatorDisplay.trimLeadingOcurrencesOf(.zero)

if trimmedCalculatorDisplay.first == CalculatorButtonRepresentable.decimal.character {
trimmedCalculatorDisplay.insert(CalculatorButtonRepresentable.zero.character, at: trimmedCalculatorDisplay.startIndex)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ struct CalculatorOperationValidator: CalculatorOperationValidatorProtocol {

func isEnteringSignificantNumber(_ calculatorButton: CalculatorButtonProtocol,
in calculatorDisplay: String) -> Bool {
guard calculatorButton.title == "0" else { return true }
let numberOfZeros = calculatorDisplay.extractLastCharactersOf("0").count
guard calculatorButton.title == CalculatorButtonRepresentable.zero.rawValue else { return true }
let numberOfZeros = calculatorDisplay.extractLastCharactersOf(.zero).count
return !(numberOfZeros == calculatorDisplay.count && numberOfZeros > 0)
}
}

0 comments on commit 19b19f1

Please sign in to comment.