Adds a couple fixed tests from here that are unambiguously correct by the spec (the '34 567890' one is unclear on its correctness, and the author solution disagrees with the issue on how it should be handled).
Adds random tests with somewhat decent coverage, please suggest more cases.
Looks like there are not enough tests for the numbers that start with region code.
Namely, '0034 567890' and '34 567890' should not yield a match.
Most of the published solutions fail on these examples.
hkmt and friends are the only ones who nailed it. All glory to them!
' 034 567890' (with a leading space) probably should yield a match (there were tests with a leading space before the country code that were supposed to yeald a match).
This one fails for all published solutions. Including mine :)
Also, some of the published solutions fail on '0012 34 567890'.
How on earth could they be submitted in the first place?
The first one has 5 digits instead of 6, and the other has only two digits and no leading 0:
These phone numbers can be split up into a nation code (without prefix), an area code with 2 digits (with the leading 0 if it's at the beginning of the whole number) and the local number with 6 digits.
The nation code, area code and local number may never contain a 0 at the start unless it is the prefix for dialing out of the country or it is at the beginning of the area code if there is no country code.
Python fork
'34 567890'
one is unclear on its correctness, and the author solution disagrees with the issue on how it should be handled).No random tests
Python tests beyond busted.
I spent a full day on it, but when it finally worked, it gave me pure satisfaction. Great kata!
I'm confused about what our function is supposed to return -- phone numbers that are valid or the regex pattern used to match them?
Looks like there are not enough tests for the numbers that start with region code.
Namely, '0034 567890' and '34 567890' should not yield a match.
Most of the published solutions fail on these examples.
hkmt and friends are the only ones who nailed it. All glory to them!
' 034 567890' (with a leading space) probably should yield a match (there were tests with a leading space before the country code that were supposed to yeald a match).
This one fails for all published solutions. Including mine :)
Also, some of the published solutions fail on '0012 34 567890'.
How on earth could they be submitted in the first place?
Helral - bruh - how do you sleep at night.
This was amazing - thank you.
I thought - prior to today - that I was getting good at regex.
Thanks.
The first one has 5 digits instead of 6, and the other has only two digits and no leading 0:
Why '67890' and '04 567890' should not be a match? These phone numbers seem to be valid according to the instructions.
I must admit this was a bit sadistic :)
Updated the description to mention this
great kata
There should be tests with nation code but no area code.
There's a comment about this buried somewhere below, I'll state it explicitly because the description doesn't:
The local number has to be exactly 6 digits long.
Loading more items...