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
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
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
void Main() { while(true) { var faker = new Faker("en_GB");
}