intuit/CardParts

Fix Array `safeValue(at:)`

Opened this issue · 0 comments

mak-s commented

Array extension safaValue(at:) method would crash if a negative index is used.

func safeValue(at index: Int) -> Element? {
if index < self.count {
return self[index]
} else {
return nil
}
}

Though it does not introduce any bug at present as there is only one occurrence of safeValue usage, in CardPartHistogramView, which does not use a negative index, the extension method would crash if a negative index is used.

for (index, entry) in barEntries.enumerated() {
showEntry(index: index, entry: entry, animated: animated, oldEntry: oldValue.safeValue(at: index))
}

Could we add a add a check for negative value to ensure that method work for all index values.
(fix available in branch: https://github.com/mak-s/CardParts/tree/array_index_out_of_range)

Also, CardParts code coverage is less. I'd like to add some Unit tests for existing classes available in CardParts.

  • Could you please let me know if I should create a new Issue for adding Unit tests.