Skip to content

Commit

Permalink
Merge pull request #268 from jonbev/master
Browse files Browse the repository at this point in the history
Add UK Counties
  • Loading branch information
victorquinn committed Jul 19, 2016
2 parents 3cce042 + e912272 commit 3cb1746
Show file tree
Hide file tree
Showing 2 changed files with 136 additions and 0 deletions.
107 changes: 107 additions & 0 deletions chance.js
Original file line number Diff line number Diff line change
Expand Up @@ -1361,6 +1361,15 @@
return fsa + " " + ldu;
};

Chance.prototype.counties = function (options) {
options = initOptions(options, { country: 'uk' });
return this.get("counties")[options.country.toLowerCase()];
};

Chance.prototype.county = function (options) {
return this.pick(this.counties(options)).name;
};

Chance.prototype.provinces = function (options) {
options = initOptions(options, { country: 'ca' });
return this.get("provinces")[options.country.toLowerCase()];
Expand Down Expand Up @@ -1403,6 +1412,10 @@
break;
case 'it':
states = this.get("country_regions")[options.country.toLowerCase()];
break;
case 'uk':
states = this.get("counties")[options.country.toLowerCase()];
break;
}

return states;
Expand Down Expand Up @@ -2150,6 +2163,100 @@
// Data taken from https://github.com/umpirsky/country-list/blob/master/data/en_US/country.json
countries: [{"name":"Afghanistan","abbreviation":"AF"},{"name":"Åland Islands","abbreviation":"AX"},{"name":"Albania","abbreviation":"AL"},{"name":"Algeria","abbreviation":"DZ"},{"name":"American Samoa","abbreviation":"AS"},{"name":"Andorra","abbreviation":"AD"},{"name":"Angola","abbreviation":"AO"},{"name":"Anguilla","abbreviation":"AI"},{"name":"Antarctica","abbreviation":"AQ"},{"name":"Antigua & Barbuda","abbreviation":"AG"},{"name":"Argentina","abbreviation":"AR"},{"name":"Armenia","abbreviation":"AM"},{"name":"Aruba","abbreviation":"AW"},{"name":"Ascension Island","abbreviation":"AC"},{"name":"Australia","abbreviation":"AU"},{"name":"Austria","abbreviation":"AT"},{"name":"Azerbaijan","abbreviation":"AZ"},{"name":"Bahamas","abbreviation":"BS"},{"name":"Bahrain","abbreviation":"BH"},{"name":"Bangladesh","abbreviation":"BD"},{"name":"Barbados","abbreviation":"BB"},{"name":"Belarus","abbreviation":"BY"},{"name":"Belgium","abbreviation":"BE"},{"name":"Belize","abbreviation":"BZ"},{"name":"Benin","abbreviation":"BJ"},{"name":"Bermuda","abbreviation":"BM"},{"name":"Bhutan","abbreviation":"BT"},{"name":"Bolivia","abbreviation":"BO"},{"name":"Bosnia & Herzegovina","abbreviation":"BA"},{"name":"Botswana","abbreviation":"BW"},{"name":"Brazil","abbreviation":"BR"},{"name":"British Indian Ocean Territory","abbreviation":"IO"},{"name":"British Virgin Islands","abbreviation":"VG"},{"name":"Brunei","abbreviation":"BN"},{"name":"Bulgaria","abbreviation":"BG"},{"name":"Burkina Faso","abbreviation":"BF"},{"name":"Burundi","abbreviation":"BI"},{"name":"Cambodia","abbreviation":"KH"},{"name":"Cameroon","abbreviation":"CM"},{"name":"Canada","abbreviation":"CA"},{"name":"Canary Islands","abbreviation":"IC"},{"name":"Cape Verde","abbreviation":"CV"},{"name":"Caribbean Netherlands","abbreviation":"BQ"},{"name":"Cayman Islands","abbreviation":"KY"},{"name":"Central African Republic","abbreviation":"CF"},{"name":"Ceuta & Melilla","abbreviation":"EA"},{"name":"Chad","abbreviation":"TD"},{"name":"Chile","abbreviation":"CL"},{"name":"China","abbreviation":"CN"},{"name":"Christmas Island","abbreviation":"CX"},{"name":"Cocos (Keeling) Islands","abbreviation":"CC"},{"name":"Colombia","abbreviation":"CO"},{"name":"Comoros","abbreviation":"KM"},{"name":"Congo - Brazzaville","abbreviation":"CG"},{"name":"Congo - Kinshasa","abbreviation":"CD"},{"name":"Cook Islands","abbreviation":"CK"},{"name":"Costa Rica","abbreviation":"CR"},{"name":"Côte d'Ivoire","abbreviation":"CI"},{"name":"Croatia","abbreviation":"HR"},{"name":"Cuba","abbreviation":"CU"},{"name":"Curaçao","abbreviation":"CW"},{"name":"Cyprus","abbreviation":"CY"},{"name":"Czech Republic","abbreviation":"CZ"},{"name":"Denmark","abbreviation":"DK"},{"name":"Diego Garcia","abbreviation":"DG"},{"name":"Djibouti","abbreviation":"DJ"},{"name":"Dominica","abbreviation":"DM"},{"name":"Dominican Republic","abbreviation":"DO"},{"name":"Ecuador","abbreviation":"EC"},{"name":"Egypt","abbreviation":"EG"},{"name":"El Salvador","abbreviation":"SV"},{"name":"Equatorial Guinea","abbreviation":"GQ"},{"name":"Eritrea","abbreviation":"ER"},{"name":"Estonia","abbreviation":"EE"},{"name":"Ethiopia","abbreviation":"ET"},{"name":"Falkland Islands","abbreviation":"FK"},{"name":"Faroe Islands","abbreviation":"FO"},{"name":"Fiji","abbreviation":"FJ"},{"name":"Finland","abbreviation":"FI"},{"name":"France","abbreviation":"FR"},{"name":"French Guiana","abbreviation":"GF"},{"name":"French Polynesia","abbreviation":"PF"},{"name":"French Southern Territories","abbreviation":"TF"},{"name":"Gabon","abbreviation":"GA"},{"name":"Gambia","abbreviation":"GM"},{"name":"Georgia","abbreviation":"GE"},{"name":"Germany","abbreviation":"DE"},{"name":"Ghana","abbreviation":"GH"},{"name":"Gibraltar","abbreviation":"GI"},{"name":"Greece","abbreviation":"GR"},{"name":"Greenland","abbreviation":"GL"},{"name":"Grenada","abbreviation":"GD"},{"name":"Guadeloupe","abbreviation":"GP"},{"name":"Guam","abbreviation":"GU"},{"name":"Guatemala","abbreviation":"GT"},{"name":"Guernsey","abbreviation":"GG"},{"name":"Guinea","abbreviation":"GN"},{"name":"Guinea-Bissau","abbreviation":"GW"},{"name":"Guyana","abbreviation":"GY"},{"name":"Haiti","abbreviation":"HT"},{"name":"Honduras","abbreviation":"HN"},{"name":"Hong Kong SAR China","abbreviation":"HK"},{"name":"Hungary","abbreviation":"HU"},{"name":"Iceland","abbreviation":"IS"},{"name":"India","abbreviation":"IN"},{"name":"Indonesia","abbreviation":"ID"},{"name":"Iran","abbreviation":"IR"},{"name":"Iraq","abbreviation":"IQ"},{"name":"Ireland","abbreviation":"IE"},{"name":"Isle of Man","abbreviation":"IM"},{"name":"Israel","abbreviation":"IL"},{"name":"Italy","abbreviation":"IT"},{"name":"Jamaica","abbreviation":"JM"},{"name":"Japan","abbreviation":"JP"},{"name":"Jersey","abbreviation":"JE"},{"name":"Jordan","abbreviation":"JO"},{"name":"Kazakhstan","abbreviation":"KZ"},{"name":"Kenya","abbreviation":"KE"},{"name":"Kiribati","abbreviation":"KI"},{"name":"Kosovo","abbreviation":"XK"},{"name":"Kuwait","abbreviation":"KW"},{"name":"Kyrgyzstan","abbreviation":"KG"},{"name":"Laos","abbreviation":"LA"},{"name":"Latvia","abbreviation":"LV"},{"name":"Lebanon","abbreviation":"LB"},{"name":"Lesotho","abbreviation":"LS"},{"name":"Liberia","abbreviation":"LR"},{"name":"Libya","abbreviation":"LY"},{"name":"Liechtenstein","abbreviation":"LI"},{"name":"Lithuania","abbreviation":"LT"},{"name":"Luxembourg","abbreviation":"LU"},{"name":"Macau SAR China","abbreviation":"MO"},{"name":"Macedonia","abbreviation":"MK"},{"name":"Madagascar","abbreviation":"MG"},{"name":"Malawi","abbreviation":"MW"},{"name":"Malaysia","abbreviation":"MY"},{"name":"Maldives","abbreviation":"MV"},{"name":"Mali","abbreviation":"ML"},{"name":"Malta","abbreviation":"MT"},{"name":"Marshall Islands","abbreviation":"MH"},{"name":"Martinique","abbreviation":"MQ"},{"name":"Mauritania","abbreviation":"MR"},{"name":"Mauritius","abbreviation":"MU"},{"name":"Mayotte","abbreviation":"YT"},{"name":"Mexico","abbreviation":"MX"},{"name":"Micronesia","abbreviation":"FM"},{"name":"Moldova","abbreviation":"MD"},{"name":"Monaco","abbreviation":"MC"},{"name":"Mongolia","abbreviation":"MN"},{"name":"Montenegro","abbreviation":"ME"},{"name":"Montserrat","abbreviation":"MS"},{"name":"Morocco","abbreviation":"MA"},{"name":"Mozambique","abbreviation":"MZ"},{"name":"Myanmar (Burma)","abbreviation":"MM"},{"name":"Namibia","abbreviation":"NA"},{"name":"Nauru","abbreviation":"NR"},{"name":"Nepal","abbreviation":"NP"},{"name":"Netherlands","abbreviation":"NL"},{"name":"New Caledonia","abbreviation":"NC"},{"name":"New Zealand","abbreviation":"NZ"},{"name":"Nicaragua","abbreviation":"NI"},{"name":"Niger","abbreviation":"NE"},{"name":"Nigeria","abbreviation":"NG"},{"name":"Niue","abbreviation":"NU"},{"name":"Norfolk Island","abbreviation":"NF"},{"name":"North Korea","abbreviation":"KP"},{"name":"Northern Mariana Islands","abbreviation":"MP"},{"name":"Norway","abbreviation":"NO"},{"name":"Oman","abbreviation":"OM"},{"name":"Pakistan","abbreviation":"PK"},{"name":"Palau","abbreviation":"PW"},{"name":"Palestinian Territories","abbreviation":"PS"},{"name":"Panama","abbreviation":"PA"},{"name":"Papua New Guinea","abbreviation":"PG"},{"name":"Paraguay","abbreviation":"PY"},{"name":"Peru","abbreviation":"PE"},{"name":"Philippines","abbreviation":"PH"},{"name":"Pitcairn Islands","abbreviation":"PN"},{"name":"Poland","abbreviation":"PL"},{"name":"Portugal","abbreviation":"PT"},{"name":"Puerto Rico","abbreviation":"PR"},{"name":"Qatar","abbreviation":"QA"},{"name":"Réunion","abbreviation":"RE"},{"name":"Romania","abbreviation":"RO"},{"name":"Russia","abbreviation":"RU"},{"name":"Rwanda","abbreviation":"RW"},{"name":"Samoa","abbreviation":"WS"},{"name":"San Marino","abbreviation":"SM"},{"name":"São Tomé and Príncipe","abbreviation":"ST"},{"name":"Saudi Arabia","abbreviation":"SA"},{"name":"Senegal","abbreviation":"SN"},{"name":"Serbia","abbreviation":"RS"},{"name":"Seychelles","abbreviation":"SC"},{"name":"Sierra Leone","abbreviation":"SL"},{"name":"Singapore","abbreviation":"SG"},{"name":"Sint Maarten","abbreviation":"SX"},{"name":"Slovakia","abbreviation":"SK"},{"name":"Slovenia","abbreviation":"SI"},{"name":"Solomon Islands","abbreviation":"SB"},{"name":"Somalia","abbreviation":"SO"},{"name":"South Africa","abbreviation":"ZA"},{"name":"South Georgia & South Sandwich Islands","abbreviation":"GS"},{"name":"South Korea","abbreviation":"KR"},{"name":"South Sudan","abbreviation":"SS"},{"name":"Spain","abbreviation":"ES"},{"name":"Sri Lanka","abbreviation":"LK"},{"name":"St. Barthélemy","abbreviation":"BL"},{"name":"St. Helena","abbreviation":"SH"},{"name":"St. Kitts & Nevis","abbreviation":"KN"},{"name":"St. Lucia","abbreviation":"LC"},{"name":"St. Martin","abbreviation":"MF"},{"name":"St. Pierre & Miquelon","abbreviation":"PM"},{"name":"St. Vincent & Grenadines","abbreviation":"VC"},{"name":"Sudan","abbreviation":"SD"},{"name":"Suriname","abbreviation":"SR"},{"name":"Svalbard & Jan Mayen","abbreviation":"SJ"},{"name":"Swaziland","abbreviation":"SZ"},{"name":"Sweden","abbreviation":"SE"},{"name":"Switzerland","abbreviation":"CH"},{"name":"Syria","abbreviation":"SY"},{"name":"Taiwan","abbreviation":"TW"},{"name":"Tajikistan","abbreviation":"TJ"},{"name":"Tanzania","abbreviation":"TZ"},{"name":"Thailand","abbreviation":"TH"},{"name":"Timor-Leste","abbreviation":"TL"},{"name":"Togo","abbreviation":"TG"},{"name":"Tokelau","abbreviation":"TK"},{"name":"Tonga","abbreviation":"TO"},{"name":"Trinidad & Tobago","abbreviation":"TT"},{"name":"Tristan da Cunha","abbreviation":"TA"},{"name":"Tunisia","abbreviation":"TN"},{"name":"Turkey","abbreviation":"TR"},{"name":"Turkmenistan","abbreviation":"TM"},{"name":"Turks & Caicos Islands","abbreviation":"TC"},{"name":"Tuvalu","abbreviation":"TV"},{"name":"U.S. Outlying Islands","abbreviation":"UM"},{"name":"U.S. Virgin Islands","abbreviation":"VI"},{"name":"Uganda","abbreviation":"UG"},{"name":"Ukraine","abbreviation":"UA"},{"name":"United Arab Emirates","abbreviation":"AE"},{"name":"United Kingdom","abbreviation":"GB"},{"name":"United States","abbreviation":"US"},{"name":"Uruguay","abbreviation":"UY"},{"name":"Uzbekistan","abbreviation":"UZ"},{"name":"Vanuatu","abbreviation":"VU"},{"name":"Vatican City","abbreviation":"VA"},{"name":"Venezuela","abbreviation":"VE"},{"name":"Vietnam","abbreviation":"VN"},{"name":"Wallis & Futuna","abbreviation":"WF"},{"name":"Western Sahara","abbreviation":"EH"},{"name":"Yemen","abbreviation":"YE"},{"name":"Zambia","abbreviation":"ZM"},{"name":"Zimbabwe","abbreviation":"ZW"}],

counties: {
// Data taken from http://www.downloadexcelfiles.com/gb_en/download-excel-file-list-counties-uk
"uk": [
{name: 'Bath and North East Somerset'},
{name: 'Bedford'},
{name: 'Blackburn with Darwen'},
{name: 'Blackpool'},
{name: 'Bournemouth'},
{name: 'Bracknell Forest'},
{name: 'Brighton & Hove'},
{name: 'Bristol'},
{name: 'Buckinghamshire'},
{name: 'Cambridgeshire'},
{name: 'Central Bedfordshire'},
{name: 'Cheshire East'},
{name: 'Cheshire West and Chester'},
{name: 'Cornwall'},
{name: 'County Durham'},
{name: 'Cumbria'},
{name: 'Darlington'},
{name: 'Derby'},
{name: 'Derbyshire'},
{name: 'Devon'},
{name: 'Dorset'},
{name: 'East Riding of Yorkshire'},
{name: 'East Sussex'},
{name: 'Essex'},
{name: 'Gloucestershire'},
{name: 'Greater London'},
{name: 'Greater Manchester'},
{name: 'Halton'},
{name: 'Hampshire'},
{name: 'Hartlepool'},
{name: 'Herefordshire'},
{name: 'Hertfordshire'},
{name: 'Hull'},
{name: 'Isle of Wight'},
{name: 'Isles of Scilly'},
{name: 'Kent'},
{name: 'Lancashire'},
{name: 'Leicester'},
{name: 'Leicestershire'},
{name: 'Lincolnshire'},
{name: 'Luton'},
{name: 'Medway'},
{name: 'Merseyside'},
{name: 'Middlesbrough'},
{name: 'Milton Keynes'},
{name: 'Norfolk'},
{name: 'North East Lincolnshire'},
{name: 'North Lincolnshire'},
{name: 'North Somerset'},
{name: 'North Yorkshire'},
{name: 'Northamptonshire'},
{name: 'Northumberland'},
{name: 'Nottingham'},
{name: 'Nottinghamshire'},
{name: 'Oxfordshire'},
{name: 'Peterborough'},
{name: 'Plymouth'},
{name: 'Poole'},
{name: 'Portsmouth'},
{name: 'Reading'},
{name: 'Redcar and Cleveland'},
{name: 'Rutland'},
{name: 'Shropshire'},
{name: 'Slough'},
{name: 'Somerset'},
{name: 'South Gloucestershire'},
{name: 'South Yorkshire'},
{name: 'Southampton'},
{name: 'Southend-on-Sea'},
{name: 'Staffordshire'},
{name: 'Stockton-on-Tees'},
{name: 'Stoke-on-Trent'},
{name: 'Suffolk'},
{name: 'Surrey'},
{name: 'Swindon'},
{name: 'Telford and Wrekin'},
{name: 'Thurrock'},
{name: 'Torbay'},
{name: 'Tyne and Wear'},
{name: 'Warrington'},
{name: 'Warwickshire'},
{name: 'West Berkshire'},
{name: 'West Midlands'},
{name: 'West Sussex'},
{name: 'West Yorkshire'},
{name: 'Wiltshire'},
{name: 'Windsor and Maidenhead'},
{name: 'Wokingham'},
{name: 'Worcestershire'},
{name: 'York'}]
},
provinces: {
"ca": [
{name: 'Alberta', abbreviation: 'AB'},
Expand Down
29 changes: 29 additions & 0 deletions test/test.address.js
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,13 @@ describe("Address", function () {
});
});

it("state({country: 'uk', full: true}) returns a random (long) state name", function () {
_(1000).times(function () {
state = chance.state({country: 'uk', full: true});
expect(state.length).to.be.above(2);
});
});

it("states() returns all 50 US States and DC", function () {
expect(chance.states()).to.have.length(51);
});
Expand Down Expand Up @@ -135,6 +142,10 @@ describe("Address", function () {
it("states({country: 'it') returns 20 Italian Regions", function () {
expect(chance.states({country: 'it'})).to.have.length(20);
});

it("states({country: 'uk') returns 90 UK Conties", function () {
expect(chance.states({country: 'uk'})).to.have.length(90);
});
});

describe("Province", function () {
Expand Down Expand Up @@ -165,6 +176,24 @@ describe("Address", function () {
});
});

describe("Counties", function () {
it("provinces() returns an array of counties", function () {
expect(chance.counties()).to.be.an('array');
});

it("counties({full: true}) returns a random (long) county name", function () {
_(1000).times(function () {
expect(chance.counties({full: true})).to.have.length.above(2);
});
});

it("province({ country: 'uk', full: true}) returns a random (long) county name", function () {
_(1000).times(function () {
expect(chance.counties({country: 'uk', full: true})).to.have.length.above(2);
});
});
});

describe("Address", function () {
it("address() returns a string", function () {
expect(chance.address()).to.be.an('string');
Expand Down

0 comments on commit 3cb1746

Please sign in to comment.