src/Providers/Address.ps1
|
# Providers/Address.ps1 $script:_CityPrefix = @('North','East','West','South','New','Lake','Port','Fort','Mount','Saint') $script:_CitySuffix = @('ville','berg','burgh','borough','bury','view','port','mouth','stad','furt','chester','ton','fort','haven','side','shire') $script:_StreetSuffix= @('Alley','Avenue','Branch','Bridge','Brook','Brooks','Burg','Burgs','Bypass', 'Camp','Canyon','Cape','Causeway','Center','Circle','Cliff','Club','Common','Corner', 'Court','Cove','Creek','Crescent','Drive','Estate','Expressway','Extension','Fall', 'Falls','Ferry','Field','Fields','Flat','Flats','Ford','Forge','Fork','Forks', 'Fort','Freeway','Garden','Gardens','Gateway','Glen','Green','Grove','Harbor', 'Haven','Heights','Highway','Hill','Hills','Hollow','Inlet','Island','Junction', 'Key','Knoll','Lake','Lane','Light','Loaf','Lock','Lodge','Loop','Mall', 'Manor','Meadow','Mill','Mission','Mount','Mountain','Neck','Orchard','Oval', 'Park','Parkway','Pass','Path','Pike','Pine','Place','Plain','Plaza','Point', 'Port','Prairie','Radial','Ramp','Ranch','Rapid','Rest','Ridge','River','Road', 'Row','Run','Shoal','Shore','Skyway','Spring','Springs','Square','Station', 'Stravenue','Stream','Street','Summit','Terrace','Throughway','Trace','Track', 'Trail','Tunnel','Turnpike','Underpass','Union','Valley','Via','Viaduct','View', 'Village','Vista','Walk','Wall','Way','Well','Wells') $script:_State = @( 'Alabama','Alaska','Arizona','Arkansas','California','Colorado','Connecticut', 'Delaware','Florida','Georgia','Hawaii','Idaho','Illinois','Indiana','Iowa', 'Kansas','Kentucky','Louisiana','Maine','Maryland','Massachusetts','Michigan', 'Minnesota','Mississippi','Missouri','Montana','Nebraska','Nevada','New Hampshire', 'New Jersey','New Mexico','New York','North Carolina','North Dakota','Ohio', 'Oklahoma','Oregon','Pennsylvania','Rhode Island','South Carolina','South Dakota', 'Tennessee','Texas','Utah','Vermont','Virginia','Washington','West Virginia', 'Wisconsin','Wyoming' ) $script:_StateAbbr = @( 'AL','AK','AZ','AR','CA','CO','CT','DE','FL','GA','HI','ID','IL','IN','IA', 'KS','KY','LA','ME','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ', 'NM','NY','NC','ND','OH','OK','OR','PA','RI','SC','SD','TN','TX','UT','VT', 'VA','WA','WV','WI','WY' ) $script:_Country = @( 'Afghanistan','Albania','Algeria','Andorra','Angola','Argentina','Armenia','Australia', 'Austria','Azerbaijan','Bahamas','Bangladesh','Belarus','Belgium','Belize','Benin', 'Bolivia','Bosnia','Botswana','Brazil','Bulgaria','Burkina Faso','Cambodia','Cameroon', 'Canada','Chad','Chile','China','Colombia','Congo','Costa Rica','Croatia','Cuba', 'Cyprus','Czech Republic','Denmark','Ecuador','Egypt','Estonia','Ethiopia','Finland', 'France','Germany','Ghana','Greece','Guatemala','Honduras','Hungary','Iceland','India', 'Indonesia','Iran','Iraq','Ireland','Israel','Italy','Jamaica','Japan','Jordan', 'Kenya','Latvia','Lebanon','Libya','Lithuania','Luxembourg','Madagascar','Malaysia', 'Mali','Malta','Mexico','Moldova','Morocco','Mozambique','Nepal','Netherlands', 'New Zealand','Nigeria','Norway','Pakistan','Panama','Paraguay','Peru','Philippines', 'Poland','Portugal','Romania','Russia','Rwanda','Saudi Arabia','Senegal','Serbia', 'Singapore','Slovakia','Slovenia','Somalia','South Africa','Spain','Sri Lanka','Sudan', 'Sweden','Switzerland','Syria','Taiwan','Tanzania','Thailand','Tunisia','Turkey', 'Uganda','Ukraine','United Kingdom','United States','Uruguay','Uzbekistan','Venezuela', 'Vietnam','Yemen','Zimbabwe' ) $script:_AddressFirstNames = @( 'James','John','Robert','Michael','William','David','Richard','Joseph','Thomas','Charles', 'Mary','Patricia','Jennifer','Linda','Barbara','Elizabeth','Susan','Jessica','Sarah','Karen', 'Christopher','Daniel','Matthew','Anthony','Mark','Donald','Steven','Paul','Andrew','Joshua', 'Lisa','Nancy','Betty','Margaret','Sandra','Ashley','Dorothy','Kimberly','Emily','Donna' ) function Get-FakeCityPrefix { [CmdletBinding()] param(); return Get-FakeRandomElement $script:_CityPrefix } function Get-FakeCitySuffix { [CmdletBinding()] param(); return Get-FakeRandomElement $script:_CitySuffix } function Get-FakeCity { <#.SYNOPSIS Random city name.#> [CmdletBinding()] param() $r = (_Rng).Next(0,4) switch ($r) { 0 { return (Get-FakeCityPrefix) + ' ' + (Get-FakeRandomElement $script:_AddressFirstNames) + (Get-FakeCitySuffix) } 1 { return (Get-FakeCityPrefix) + ' ' + (Get-FakeLastName) } 2 { return (Get-FakeRandomElement $script:_AddressFirstNames) + (Get-FakeCitySuffix) } 3 { return (Get-FakeLastName) + (Get-FakeCitySuffix) } } } function Get-FakeState { [CmdletBinding()] param(); return Get-FakeRandomElement $script:_State } function Get-FakeStateAbbr { [CmdletBinding()] param(); return Get-FakeRandomElement $script:_StateAbbr } function Get-FakeCountry { [CmdletBinding()] param(); return Get-FakeRandomElement $script:_Country } function Get-FakeBuildingNumber { <#.SYNOPSIS Building number (1-9999).#> [CmdletBinding()] param() return ((_Rng).Next(1, 10000)).ToString() } function Get-FakeStreetSuffix { return Get-FakeRandomElement $script:_StreetSuffix } function Get-FakeStreetName { <#.SYNOPSIS Street name.#> [CmdletBinding()] param() $name = if ((_Rng).Next(0,2) -eq 0) { Get-FakeLastName } else { Get-FakeFirstName } return "$name $(Get-FakeStreetSuffix)" } function Get-FakeSecondaryAddress { <#.SYNOPSIS Secondary address e.g. 'Suite 961'.#> [CmdletBinding()] param() $type = if ((_Rng).Next(0,2) -eq 0) { 'Suite' } else { 'Apt.' } return "$type $((_Rng).Next(1,1000))" } function Get-FakeStreetAddress { <#.SYNOPSIS Full street address line.#> [CmdletBinding()] param() $base = "$(Get-FakeBuildingNumber) $(Get-FakeStreetName)" if ((_Rng).Next(0,4) -eq 0) { return "$base $(Get-FakeSecondaryAddress)" } return $base } function Get-FakePostcode { <#.SYNOPSIS US-style postcode.#> [CmdletBinding()] param() $zip = ((_Rng).Next(10000,99999)).ToString() if ((_Rng).Next(0,4) -eq 0) { $zip += '-' + ((_Rng).Next(1000,9999)).ToString() } return $zip } function Get-FakeAddress { <#.SYNOPSIS Full postal address.#> [CmdletBinding()] param() return "$(Get-FakeStreetAddress), $(Get-FakeCity), $(Get-FakeStateAbbr) $(Get-FakePostcode)" } function Get-FakeLatitude { <#.SYNOPSIS Decimal latitude.#> [CmdletBinding()] param([double]$Min=-90,[double]$Max=90) return [Math]::Round($Min + ((_Rng).NextDouble() * ($Max-$Min)), 6) } function Get-FakeLongitude { <#.SYNOPSIS Decimal longitude.#> [CmdletBinding()] param([double]$Min=-180,[double]$Max=180) return [Math]::Round($Min + ((_Rng).NextDouble() * ($Max-$Min)), 6) } |