Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

postcodes for Virginia are incorrect only has one correct post code and one incorrect one #3165

Closed
7 of 10 tasks
Chromeshades opened this issue Oct 9, 2024 · 5 comments · Fixed by #3167
Closed
7 of 10 tasks
Labels
c: bug Something isn't working c: locale Permutes locale definitions m: location Something is referring to the location module p: 1-normal Nothing urgent s: awaiting more info Additional information are requested
Milestone

Comments

@Chromeshades
Copy link

Chromeshades commented Oct 9, 2024

Pre-Checks

Describe the bug

The two Zip codes for Virginia are 20040 (which is Washington D.C.) and 20041 which is in Virginia.

Minimal reproduction code

VA: '{{number.int({"min": 20040,"max": 20041})}}',

  VA: '{{number.int({"min": 20040,"max": 20041})}}',

Additional Context

There doesn't seem to be an authoritative list of zip codes, unfortunately.

There are also lots of gaps in Virginia's zip codes.

Environment Info

N/A

Which module system do you use?

  • CJS
  • ESM

Used Package Manager

npm

@Chromeshades Chromeshades added c: bug Something isn't working s: pending triage Pending Triage labels Oct 9, 2024
@Chromeshades
Copy link
Author

I'm unfortunately unsure of the best solution, but removing the DC zip code and including a larger range would be great.

@ST-DDT
Copy link
Member

ST-DDT commented Oct 9, 2024

@Chromeshades Do you have a list of valid zip codes or is there a pattern to them?

@ST-DDT ST-DDT added this to the vAnytime milestone Oct 9, 2024
@ST-DDT ST-DDT added p: 1-normal Nothing urgent s: awaiting more info Additional information are requested c: locale Permutes locale definitions m: location Something is referring to the location module and removed s: pending triage Pending Triage labels Oct 9, 2024
@Chromeshades
Copy link
Author

I do not. They seem to be all over the place.

Here's one source, but it's missing the valid 20041.

https://www.unitedstateszipcodes.org/va/

There is 200100 to 200200 but there are lots of gaps

And then there are other ranges with gaps.

@matthewmayer
Copy link
Contributor

Maybe we could pick the longest range with no gaps? The method doesn't necessarily need to return every zip. Just some valid ones.

@matthewmayer
Copy link
Contributor

matthewmayer commented Oct 10, 2024

I wrote a quick script to look for other possible mismatches

const zipState = require('zip-state');

const {
    fakerEN_US: faker
} = require('@faker-js/faker');
const outputs = new Set();
for (let i = 0; i < 1000000; i++) {
    const generatedState = faker.location.state({
        abbreviated: true
    });
    const zip = faker.location.zipCode({
        state: generatedState
    });

    // Use the zip-state library to verify the results
    const verifiedState = zipState(zip);

    if (generatedState !== verifiedState && verifiedState !== null) {
        outputs.add(`Mismatch detected: Generated ${zip} for ${generatedState} but located in ${verifiedState}`);
    }
}
const outputArray = Array.from(outputs).sort();
for (const output of outputArray) {
    console.log(output);
}

As well as 20040/20041 it picked up a lot of FL postcodes starting 340... which are actually used for "AA" military mail.

FL: '{{number.int({"min": 32004,"max": 34997})}}',

From https://en.wikipedia.org/wiki/List_of_ZIP_Code_prefixes
image

Mismatch detected: Generated 20040 for VA but located in DC
Mismatch detected: Generated 20041 for VA but located in DC
Mismatch detected: Generated 34000 for FL but located in AA
Mismatch detected: Generated 34001 for FL but located in AA
Mismatch detected: Generated 34002 for FL but located in AA
Mismatch detected: Generated 34003 for FL but located in AA
Mismatch detected: Generated 34004 for FL but located in AA
Mismatch detected: Generated 34005 for FL but located in AA
Mismatch detected: Generated 34006 for FL but located in AA
Mismatch detected: Generated 34007 for FL but located in AA
Mismatch detected: Generated 34008 for FL but located in AA
Mismatch detected: Generated 34009 for FL but located in AA
Mismatch detected: Generated 34010 for FL but located in AA
Mismatch detected: Generated 34011 for FL but located in AA
Mismatch detected: Generated 34012 for FL but located in AA
Mismatch detected: Generated 34013 for FL but located in AA
Mismatch detected: Generated 34014 for FL but located in AA
Mismatch detected: Generated 34015 for FL but located in AA
Mismatch detected: Generated 34016 for FL but located in AA
Mismatch detected: Generated 34017 for FL but located in AA
Mismatch detected: Generated 34018 for FL but located in AA
Mismatch detected: Generated 34019 for FL but located in AA
Mismatch detected: Generated 34020 for FL but located in AA
Mismatch detected: Generated 34021 for FL but located in AA
Mismatch detected: Generated 34022 for FL but located in AA
Mismatch detected: Generated 34023 for FL but located in AA
Mismatch detected: Generated 34024 for FL but located in AA
Mismatch detected: Generated 34025 for FL but located in AA
Mismatch detected: Generated 34026 for FL but located in AA
Mismatch detected: Generated 34027 for FL but located in AA
Mismatch detected: Generated 34028 for FL but located in AA
Mismatch detected: Generated 34029 for FL but located in AA
Mismatch detected: Generated 34030 for FL but located in AA
Mismatch detected: Generated 34031 for FL but located in AA
Mismatch detected: Generated 34032 for FL but located in AA
Mismatch detected: Generated 34033 for FL but located in AA
Mismatch detected: Generated 34034 for FL but located in AA
Mismatch detected: Generated 34035 for FL but located in AA
Mismatch detected: Generated 34036 for FL but located in AA
Mismatch detected: Generated 34037 for FL but located in AA
Mismatch detected: Generated 34038 for FL but located in AA
Mismatch detected: Generated 34039 for FL but located in AA
Mismatch detected: Generated 34040 for FL but located in AA
Mismatch detected: Generated 34041 for FL but located in AA
Mismatch detected: Generated 34042 for FL but located in AA
Mismatch detected: Generated 34043 for FL but located in AA
Mismatch detected: Generated 34044 for FL but located in AA
Mismatch detected: Generated 34045 for FL but located in AA
Mismatch detected: Generated 34046 for FL but located in AA
Mismatch detected: Generated 34047 for FL but located in AA
Mismatch detected: Generated 34048 for FL but located in AA
Mismatch detected: Generated 34049 for FL but located in AA
Mismatch detected: Generated 34050 for FL but located in AA
Mismatch detected: Generated 34051 for FL but located in AA
Mismatch detected: Generated 34052 for FL but located in AA
Mismatch detected: Generated 34053 for FL but located in AA
Mismatch detected: Generated 34054 for FL but located in AA
Mismatch detected: Generated 34055 for FL but located in AA
Mismatch detected: Generated 34056 for FL but located in AA
Mismatch detected: Generated 34057 for FL but located in AA
Mismatch detected: Generated 34058 for FL but located in AA
Mismatch detected: Generated 34059 for FL but located in AA
Mismatch detected: Generated 34060 for FL but located in AA
Mismatch detected: Generated 34061 for FL but located in AA
Mismatch detected: Generated 34062 for FL but located in AA
Mismatch detected: Generated 34063 for FL but located in AA
Mismatch detected: Generated 34064 for FL but located in AA
Mismatch detected: Generated 34065 for FL but located in AA
Mismatch detected: Generated 34066 for FL but located in AA
Mismatch detected: Generated 34067 for FL but located in AA
Mismatch detected: Generated 34068 for FL but located in AA
Mismatch detected: Generated 34069 for FL but located in AA
Mismatch detected: Generated 34070 for FL but located in AA
Mismatch detected: Generated 34071 for FL but located in AA
Mismatch detected: Generated 34072 for FL but located in AA
Mismatch detected: Generated 34073 for FL but located in AA
Mismatch detected: Generated 34074 for FL but located in AA
Mismatch detected: Generated 34075 for FL but located in AA
Mismatch detected: Generated 34076 for FL but located in AA
Mismatch detected: Generated 34077 for FL but located in AA
Mismatch detected: Generated 34078 for FL but located in AA
Mismatch detected: Generated 34079 for FL but located in AA
Mismatch detected: Generated 34080 for FL but located in AA
Mismatch detected: Generated 34081 for FL but located in AA
Mismatch detected: Generated 34082 for FL but located in AA
Mismatch detected: Generated 34083 for FL but located in AA
Mismatch detected: Generated 34084 for FL but located in AA
Mismatch detected: Generated 34085 for FL but located in AA
Mismatch detected: Generated 34086 for FL but located in AA
Mismatch detected: Generated 34087 for FL but located in AA
Mismatch detected: Generated 34088 for FL but located in AA
Mismatch detected: Generated 34089 for FL but located in AA
Mismatch detected: Generated 34090 for FL but located in AA
Mismatch detected: Generated 34091 for FL but located in AA
Mismatch detected: Generated 34092 for FL but located in AA
Mismatch detected: Generated 34093 for FL but located in AA
Mismatch detected: Generated 34094 for FL but located in AA
Mismatch detected: Generated 34095 for FL but located in AA
Mismatch detected: Generated 34096 for FL but located in AA
Mismatch detected: Generated 34097 for FL but located in AA
Mismatch detected: Generated 34098 for FL but located in AA
Mismatch detected: Generated 34099 for FL but located in AA
Mismatch detected: Generated 72643 for AR but located in MO
Mismatch detected: Generated 83414 for ID but located in WY
Mismatch detected: Generated 96799 for HI but located in AS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c: bug Something isn't working c: locale Permutes locale definitions m: location Something is referring to the location module p: 1-normal Nothing urgent s: awaiting more info Additional information are requested
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants