Fix IndexError converting 0 to ordinal in Polish and Ukrainian#668
Open
santhreal wants to merge 1 commit into
Open
Fix IndexError converting 0 to ordinal in Polish and Ukrainian#668santhreal wants to merge 1 commit into
santhreal wants to merge 1 commit into
Conversation
to_ordinal split the number into 3-digit fragments and popped trailing zero fragments, but for 0 that emptied the list and the next index raised IndexError. Both languages already support ordinals for every other integer, so return the zero ordinal (zerowy / нульовий) instead.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
num2words(0, lang='pl', to='ordinal')andlang='uk'raiseIndexError: list index out of range.to_ordinalsplits the number into 3-digit fragments and pops trailing all-zero fragments; for0that empties the list and the nextfragments[-1]raises. Both languages return correct ordinals for every other integer (1 -> pierwszy/перший, 100 -> setny/сотий), and en/ru/de/fr already return a zero ordinal, so return the zero ordinal (zerowy/нульовий) which matches each module's masculine-nominative convention.Same bug class as #661 (Mongolian); this covers Polish and Ukrainian. Adds a regression case to each language's ordinal test.