en_GB (UK) phone numbers are sometimes invalid
- Dominant language
- C#
- Stars
- 9.7k
- Forks
- 538
- PR merge metrics
- No merged PRs in 30d
Description
### Bogus NuGet Package
35.6.0
### .NET Version
NET 8.0.400
### Visual Studio Version
Rider 2024.1.4
### What operating system are you using?
Windows
### What locale are you using with Bogus?
en_GB
### Problem Description
Some phone numbers generated by Faker.Phone.PhoneNumber() when using the en_GB locale are invalid
### LINQPad Example or Reproduction Steps
- Bogus 35.6.0
- libphonenumber-csharp 8.13.43
```csharp
using Bogus;
using PhoneNumbers;
void Main()
{
while(true)
{
var faker = new Faker("en_GB");
string phoneNumber = faker.Phone.PhoneNumber();
PhoneNumberUtil? phoneNumberUtil = PhoneNumberUtil.GetInstance();
PhoneNumbers.PhoneNumber? parsedPhoneNumber = phoneNumberUtil.Parse(phoneNumber, "GB");
if (!phoneNumberUtil.IsValidNumberForRegion(parsedPhoneNumber, "GB"))
{
throw new Exception("Invalid phone number " + phoneNumber);
}
}
}
```
### Expected Behavior
All UK phone numbers generated by `faker.Phone.PhoneNumber();` should be valid.
See Google's libPhoneNumber: https://github.com/google/libphonenumber/blob/master/resources/PhoneNumberMetadata.xml#L11093
### Actual Behavior
`faker.Phone.PhoneNumber();` sometimes generates invalid UK phone numbers, such as:
- 016977 0004
- 0961 296 3851
- 016977 8550
- 0887 603 2383
### Known Workarounds
`Faker.Phone.PhoneNumber("07#########")` is a suitable workaround.
### Could you help with a pull-request?
No
Contributor guide
Research direction
Start at the Faker.Phone.PhoneNumber() entry point for the en_GB locale and compare its generated patterns with the linked Google libPhoneNumber UK metadata. Use the provided libphonenumber-csharp reproduction and listed invalid examples to verify that generated numbers are valid for GB, including the documented 07######### workaround pattern.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- localization
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100