Stricter parsing, support more phrases, use doctest #7
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.
OK this one is intentional. :)
First off I know the point of this snippet is that it's tiny and simple. It's super handy and easy to modify. So you don't gotta accept this PR but I bet someone out there will find it useful.
My two big issues with the current snippet:
text2num("one one") == 2
text2num("eleven three") == 14
text2num("thousand eighty hundred twelve hundred") == 801200
text2num("million three twenty") == 23
text2num("nineteen eighty four") == 103
text2num("one fifty") == 51
This PR fixes all those cases to do what you'd expect (throw an error or give a more sensible number). They could be guarded behind a
strict
flag if you wanna support both.And some minor stuff:
,
in the input string – this means we can round-trip output from the equally-handynum2words
package. e.g.two thousand, one hundred and three
.doctest
format in the docstring.Thanks for the excellent snippet @ghewgill!