if ($env:MVNW_REPOURL) {
$MVNW_REPO_PATTERN = if ($USE_MVND -eq $False) { "/org/apache/maven/" } else { "/maven/mvnd/" }
$distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace "^.*$MVNW_REPO_PATTERN",'')"
}
$distributionUrlName = $distributionUrl -replace '^.*/',''
$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$',''
$MAVEN_M2_PATH = "$HOME/.m2"
if ($env:MAVEN_USER_HOME) {
$MAVEN_M2_PATH = "$env:MAVEN_USER_HOME"
}
if (-not (Test-Path -Path $MAVEN_M2_PATH)) {
New-Item -Path $MAVEN_M2_PATH -ItemType Directory | Out-Null
}
$MAVEN_WRAPPER_DISTS = $null
if ((Get-Item $MAVEN_M2_PATH).Target[0] -eq $null) {
$MAVEN_WRAPPER_DISTS = "$MAVEN_M2_PATH/wrapper/dists"
} else {
$MAVEN_WRAPPER_DISTS = (Get-Item $MAVEN_M2_PATH).Target[0] + "/wrapper/dists"
}
$MAVEN_HOME_PARENT = "$MAVEN_WRAPPER_DISTS/$distributionUrlNameMain"
$MAVEN_HOME_NAME = ([System.Security.Cryptography.SHA256]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join ''
$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME"
if (Test-Path -Path "$MAVEN_HOME" -PathType Container) {
Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME"
Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
exit $?
}
if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) {
Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl"
}
# prepare tmp dir
$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile
$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir"
$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null
trap {
if ($TMP_DOWNLOAD_DIR.Exists) {
try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
}
}
New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null
# Download and Install Apache Maven
Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
Write-Verbose "Downloading from: $distributionUrl"
Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
$webclient = New-Object System.Net.WebClient
if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) {
$webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD)
}
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null
# If specified, validate the SHA-256 sum of the Maven distribution zip file
$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum
if ($distributionSha256Sum) {
if ($USE_MVND) {
Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties."
}
Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash
if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) {
Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property."
}
}
# unzip and move
Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null
# Find the actual extracted directory name (handles snapshots where filename != directory name)
$actualDistributionDir = ""
# First try the expected directory name (for regular distributions)
$expectedPath = Join-Path "$TMP_DOWNLOAD_DIR" "$distributionUrlNameMain"
$expectedMvnPath = Join-Path "$expectedPath" "bin/$MVN_CMD"
if ((Test-Path -Path $expectedPath -PathType Container) -and (Test-Path -Path $expectedMvnPath -PathType Leaf)) {
$actualDistributionDir = $distributionUrlNameMain
}
# If not found, search for any directory with the Maven executable (for snapshots)
if (!$actualDistributionDir) {
Get-ChildItem -Path "$TMP_DOWNLOAD_DIR" -Directory | ForEach-Object {
$testPath = Join-Path $_.FullName "bin/$MVN_CMD"
if (Test-Path -Path $testPath -PathType Leaf) {
$actualDistributionDir = $_.Name
}
}
}
if (!$actualDistributionDir) {
Write-Error "Could not find Maven distribution directory in extracted archive"
}
Write-Verbose "Found extracted Maven distribution directory: $actualDistributionDir"
Rename-Item -Path "$TMP_DOWNLOAD_DIR/$actualDistributionDir" -NewName $MAVEN_HOME_NAME | Out-Null
try {
Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null
} catch {
if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) {
Write-Error "fail to move MAVEN_HOME"
}
} finally {
try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
}
Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
================================================
FILE: pom.xml
================================================
4.0.0
com.devskiller
jfairy
${revision}
jFairy
Java fake data generator
https://github.com/Devskiller/jfairy
2013
Apache 2
https://www.apache.org/licenses/LICENSE-2.0.txt
repo
A business-friendly OSS license
jkubrynski
Jakub Kubrynski
mariuszs
Mariusz Smykuła
szpak
Marcin Zajączkowski
olga.maciaszek
Olga Maciaszek-Sharma
kdebski85
Krzysztof Dębski
spannm
Markus Spann
scm:git:https://github.com/Devskiller/jfairy
scm:git:git@github.com:Devskiller/jfairy
https://github.com/Devskiller/jfairy
HEAD
GitHub Issues
https://github.com/Devskiller/jfairy/issues
GitHub Actions
https://github.com/SkillPanel/jfairy/actions
central
Central Repository
https://central.sonatype.com/api/v1/publisher
central
Central Repository Snapshots
https://central.sonatype.com/api/v1/publisher
0.8.3-SNAPSHOT
17
UTF-8
UTF-8
yyyy-MM-dd HH:mm:ss z
3.0.1
1.0.0
2.0.17
1.8.4
1.10.1
2.4-groovy-4.0
4.0.31
1.18.8
3.5
5.14.3
3.6.1
0.10.0
3.6.0
3.15.0
4.3.0
3.1.4
3.6.2
2.42.0
1.7.3
4.3.1
3.2.8
0.8.14
3.12.0
3.5.0
3.3.1
3.5.0
4.0.0
3.4.0
3.5.5
2.21.0
org.snakeyaml
snakeyaml-engine
${dep.snakeyaml-engine.version}
org.jspecify
jspecify
${dep.jspecify.version}
org.slf4j
slf4j-api
${dep.slf4j.version}
de.speedbanking
iban-commons
${dep.iban-commons.version}
commons-validator
commons-validator
${dep.commons-validator.version}
test
commons-logging
commons-logging
org.slf4j
slf4j-simple
${dep.slf4j.version}
test
org.spockframework
spock-core
${dep.spock.version}
test
org.apache.groovy
groovy
${dep.groovy.version}
test
net.bytebuddy
byte-buddy
${dep.byte-buddy.version}
test
org.objenesis
objenesis
${dep.objenesis.version}
test
org.junit.jupiter
junit-jupiter
${dep.junit-jupiter.version}
test
clean verify
com.github.ekryd.sortpom
sortpom-maven-plugin
${dep.plugin.sortpom.version}
false
false
-1
org.apache.maven.plugins
maven-resources-plugin
${dep.plugin.resources.version}
org.codehaus.mojo
build-helper-maven-plugin
${dep.plugin.build-helper.version}
add-test-source
add-test-source
generate-test-sources
${project.basedir}/src/test/java
org.apache.maven.plugins
maven-compiler-plugin
${dep.plugin.compiler.version}
${javaVersion}
true
true
-XDcompilePolicy=simple
-XDaddTypeAnnotationsToSymbol=true
--should-stop=ifError=FLOW
-Xplugin:ErrorProne -Xep:MissingSummary:WARN -Xep:InvalidBlockTag:WARN
-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED
-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED
com.google.errorprone
error_prone_core
${dep.plugin.error-prone.version}
org.codehaus.gmavenplus
gmavenplus-plugin
${dep.plugin.gmavenplus.version}
${project.basedir}/src/test/groovy
**/*.groovy
compileTests
org.apache.maven.plugins
maven-enforcer-plugin
${dep.plugin.enforcer.version}
[3.9.0,)
[${javaVersion},)
Please always define Maven plugin versions
true
org.apache.maven.plugins:maven-clean-plugin,
org.apache.maven.plugins:maven-dependency-plugin,
org.apache.maven.plugins:maven-install-plugin,
org.apache.maven.plugins:maven-site-plugin
default-enforce
enforce
validate
org.apache.maven.plugins
maven-checkstyle-plugin
${dep.plugin.checkstyle.version}
${project.basedir}/src/test/resources/team/checkstyle-rules.xml
true
true
true
true
checkstyle-check
check
verify
org.apache.maven.plugins
maven-surefire-plugin
${dep.plugin.surefire.version}
**/*Spec.java
**/*Test.java
org.eluder.coveralls
coveralls-maven-plugin
${dep.plugin.coveralls.version}
org.jacoco
jacoco-maven-plugin
${dep.plugin.jacoco.version}
prepare-agent
prepare-agent
org.codehaus.mojo
flatten-maven-plugin
${dep.plugin.flatten.version}
${project.build.directory}
true
oss
flatten
flatten
prepare-package
flatten-clean
clean
clean
org.apache.maven.plugins
maven-jar-plugin
${dep.plugin.jar.version}
false
true
false
false
true
true
false
true
${maven.build.timestamp}
${project.url}
${project.inceptionYear}
org.apache.maven.plugins
maven-deploy-plugin
${dep.plugin.deploy.version}
true
org.apache.maven.plugins
maven-release-plugin
${dep.plugin.release.version}
release
org.codehaus.mojo
versions-maven-plugin
${dep.plugin.versions.version}
regex
.*(?i)(alpha|beta|rc|cr|preview|milestone|[mb][0-9]+).*
fast
false
true
true
true
errorprone-fatal
check.fail-errorprone
true
org.apache.maven.plugins
maven-compiler-plugin
-Werror
release
org.apache.maven.plugins
maven-gpg-plugin
${dep.plugin.gpg.version}
sign-artifacts
sign
verify
org.apache.maven.plugins
maven-source-plugin
${dep.plugin.source.version}
attach-sources
jar-no-fork
org.apache.maven.plugins
maven-javadoc-plugin
${dep.plugin.javadoc.version}
none
attach-javadocs
jar
org.sonatype.central
central-publishing-maven-plugin
${dep.plugin.central-publishing.version}
true
central
true
published
central-publish
publish
deploy
================================================
FILE: src/main/java/com/devskiller/jfairy/Bootstrap.java
================================================
package com.devskiller.jfairy;
import java.io.IOException;
import java.util.Locale;
import java.util.function.Supplier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.data.MapBasedDataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.RandomGenerator;
import com.devskiller.jfairy.producer.TimeProvider;
import com.devskiller.jfairy.producer.company.CompanyFactory;
import com.devskiller.jfairy.producer.company.CompanyFactoryImpl;
import com.devskiller.jfairy.producer.net.IPNumberProducer;
import com.devskiller.jfairy.producer.payment.CreditCardProvider;
import com.devskiller.jfairy.producer.payment.IBANFactory;
import com.devskiller.jfairy.producer.payment.IBANFactoryImpl;
import com.devskiller.jfairy.producer.person.PersonFactory;
import com.devskiller.jfairy.producer.person.PersonFactoryImpl;
import com.devskiller.jfairy.producer.text.TextProducerInternal;
/**
*
* Using a {@link #builder()}, you can configure the following fields:
*
*
* locale : Specifies the locale for the random data file.
* filePrefix : Specifies the file prefix.
* (So if you specify "jfairy" here and English for Locale, the data file will be
* "jfairy_en.yml" under the classpath.)
*
* random : The Random object to use.
* randomSeed : A specific random seed to use. Use this if you want the resulting
* data to be deterministic based on it, such as if you want the same test
* ID in a database to always result in the same fake name.
*
*
*
* Obviously, don't set both random and randomSeed , only the last one you set will
* actually take effect.
*
* @author Jakub Kubrynski
* @author Olga Maciaszek-Sharma
*/
public final class Bootstrap {
private static final Logger LOG = LoggerFactory.getLogger(Bootstrap.class);
private static final String DATA_FILE_PREFIX = "jfairy";
private Bootstrap() {
}
public static Fairy createFairy(DataMaster dataMaster, Locale locale, RandomGenerator randomGenerator) {
LOG.debug("Creating Fairy instance for locale {}", locale);
// Create base components
BaseProducer baseProducer = new BaseProducer(randomGenerator);
TimeProvider timeProvider = new TimeProvider();
DateProducer dateProducer = new DateProducer(baseProducer, timeProvider);
// Create locale-specific providers
LocaleSpecificProviders localeProviders = LocaleSpecificProvidersFactory.createProvidersForLocale(
locale, dataMaster, baseProducer, dateProducer);
// Create company factory first (needed by PersonFactory)
CompanyFactory companyFactory = new CompanyFactoryImpl(
baseProducer, dataMaster, localeProviders.vatIdentificationNumberProvider()
);
// Create person factory
PersonFactory personFactory = new PersonFactoryImpl(
dataMaster, dateProducer, baseProducer,
localeProviders.addressProvider(),
localeProviders.nationalIdentificationNumberFactory(),
localeProviders.nationalIdentityCardNumberProvider(),
localeProviders.passportNumberProvider(),
timeProvider,
companyFactory
);
IBANFactory ibanFactory = new IBANFactoryImpl(baseProducer, dataMaster);
// Create other producers
CreditCardProvider creditCardProvider = new CreditCardProvider(dataMaster, baseProducer, dateProducer);
TextProducerInternal textProducerInternal = new TextProducerInternal(dataMaster, baseProducer);
IPNumberProducer ipNumberProducer = new IPNumberProducer(baseProducer);
// Create fairy factory
FairyFactory fairyFactory = new FairyFactoryImpl(
textProducerInternal, baseProducer, personFactory,
ipNumberProducer, dateProducer, creditCardProvider,
companyFactory, ibanFactory
);
LOG.trace("Fairy components initialized");
return fairyFactory.createFairy();
}
private static void fillDefaultDataMaster(MapBasedDataMaster dataMaster, Locale locale, String filePrefix) {
try {
String baseFile = filePrefix + ".yml";
String localeFile = filePrefix + "_" + locale.getLanguage() + ".yml";
LOG.debug("Loading data resources: {}, {}", baseFile, localeFile);
dataMaster.readResources(baseFile);
dataMaster.readResources(localeFile);
} catch (IOException ex) {
LOG.error("Failed to load data resources for locale {}", locale);
throw new IllegalStateException(ex);
}
}
/**
* Creates a Builder that will let you configure a Fairy's fields one by one.
*
* @return a Builder instance.
*/
public static Builder builder() {
return new Builder();
}
/**
* Use this factory method to create dataset containing default jfairy.yml and jfairy_{langCode}.yml files
* merged with custom files with the same name
*
* @return Fairy instance
*/
public static Fairy create() {
return builder().build();
}
/**
* Use this factory method to create dataset containing default jfairy.yml and jfairy_{langCode}.yml files
* merged with custom files with the same name
*
* @param locale will be used to assess langCode for data file
* @return Fairy instance
*/
public static Fairy create(Locale locale) {
return builder().withLocale(locale).build();
}
/**
* Use this factory method to create your own dataset overriding bundled one
*
* @param locale will be used to assess langCode for data file
* @param dataFilePrefix prefix of the data file - final pattern will be jfairy.yml and dataFilePrefix_{langCode}.yml
* @return Fairy instance
*/
public static Fairy create(Locale locale, String dataFilePrefix) {
return builder().withLocale(locale)
.withFilePrefix(dataFilePrefix)
.build();
}
public static Fairy create(Supplier dataMaster, Locale locale) {
return builder().withDataMasterProvider(dataMaster).withLocale(locale).build();
}
public static final class Builder {
private Locale locale = Locale.ENGLISH;
private String filePrefix = DATA_FILE_PREFIX;
private RandomGenerator randomGenerator = new RandomGenerator();
private DataMaster dataMaster;
private MapBasedDataMaster getDefaultDataMaster(BaseProducer baseProducer) {
return new MapBasedDataMaster(baseProducer);
}
private Builder() {
}
/**
* Sets the locale for the resulting Fairy.
*
* @param locale The Locale to set.
* @return the same Builder (for chaining).
*/
public Builder withLocale(Locale locale) {
this.locale = locale;
return this;
}
/**
* Sets the data file prefix for the resulting Fairy.
*
* @param filePrefix The prefix of the file (such as "jfairy" for "jfairy_en.yml").
* @return the same Builder (for chaining).
*/
public Builder withFilePrefix(String filePrefix) {
this.filePrefix = filePrefix;
return this;
}
/**
* Sets the random seed to use to pick things randomly. (If you set this, you will always
* get the same result when you generate things.)
*
* @param randomSeed The random seed to use.
* @return the same Builder (for chaining).
*/
public Builder withRandomSeed(int randomSeed) {
LOG.debug("Using fixed random seed: {}", randomSeed);
this.randomGenerator = new RandomGenerator(randomSeed);
return this;
}
/**
* Sets a custom DataMaster implementation.
*
* @param dataMasterProvider The DataMaster supplier to use.
* @return the same Builder (for chaining).
*/
public Builder withDataMasterProvider(Supplier dataMasterProvider) {
this.dataMaster = dataMasterProvider.get();
return this;
}
/**
* Returns the completed Fairy.
*
* @return Fairy instance
*/
public Fairy build() {
if (dataMaster == null) {
BaseProducer baseProducer = new BaseProducer(randomGenerator);
dataMaster = getDefaultDataMaster(baseProducer);
fillDefaultDataMaster((MapBasedDataMaster) dataMaster, locale, filePrefix);
}
return createFairy(dataMaster, locale, randomGenerator);
}
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/Fairy.java
================================================
/*
* Copyright (c) 2013 Codearte
*/
package com.devskiller.jfairy;
import java.util.Locale;
import java.util.function.Supplier;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.company.Company;
import com.devskiller.jfairy.producer.company.CompanyFactory;
import com.devskiller.jfairy.producer.company.CompanyProperties;
import com.devskiller.jfairy.producer.net.NetworkProducer;
import com.devskiller.jfairy.producer.payment.CreditCard;
import com.devskiller.jfairy.producer.payment.CreditCardProvider;
import com.devskiller.jfairy.producer.payment.IBAN;
import com.devskiller.jfairy.producer.payment.IBANFactory;
import com.devskiller.jfairy.producer.payment.IBANProperties;
import com.devskiller.jfairy.producer.person.Person;
import com.devskiller.jfairy.producer.person.PersonFactory;
import com.devskiller.jfairy.producer.person.PersonProperties;
import com.devskiller.jfairy.producer.text.TextProducer;
public final class Fairy {
private final TextProducer textProducer;
private final PersonFactory personFactory;
private final NetworkProducer networkProducer;
private final BaseProducer baseProducer;
private final DateProducer dateProducer;
private final CreditCardProvider creditCardProvider;
private final CompanyFactory companyFactory;
private final IBANFactory ibanFactory;
Fairy(TextProducer textProducer, PersonFactory personFactory, NetworkProducer networkProducer,
BaseProducer baseProducer, DateProducer dateProducer, CreditCardProvider creditCardProvider,
CompanyFactory companyFactory, IBANFactory ibanFactory) {
this.textProducer = textProducer;
this.personFactory = personFactory;
this.networkProducer = networkProducer;
this.baseProducer = baseProducer;
this.dateProducer = dateProducer;
this.creditCardProvider = creditCardProvider;
this.companyFactory = companyFactory;
this.ibanFactory = ibanFactory;
}
public static Fairy create() {
return Bootstrap.create();
}
public static Fairy create(Locale locale) {
return Bootstrap.create(locale);
}
public static Fairy create(Supplier dataMasterProvider, Locale locale) {
return Bootstrap.create(dataMasterProvider, locale);
}
public static Bootstrap.Builder builder() {
return Bootstrap.builder();
}
/**
* Use this method for generating texts
*
* @return A {@link com.devskiller.jfairy.producer.text.TextProducer} instance
*/
public TextProducer textProducer() {
return textProducer;
}
/**
* Use this method for fake persons
*
* @param personProperties desired person features
* @return A {@link com.devskiller.jfairy.producer.person.Person} instance
*/
public Person person(PersonProperties.PersonProperty... personProperties) {
return personFactory.producePersonProvider(personProperties).get();
}
/**
* Use this method to generate fake company
*
* @param companyProperties desired company features
* @return A {@link com.devskiller.jfairy.producer.company.CompanyProvider} instance
*/
public Company company(CompanyProperties.CompanyProperty... companyProperties) {
return companyFactory.produceCompany(companyProperties).get();
}
/**
* Use this method for get standard tools
*
* @return A {@link com.devskiller.jfairy.producer.BaseProducer} instance
*/
public BaseProducer baseProducer() {
return baseProducer;
}
public DateProducer dateProducer() {
return dateProducer;
}
/**
* Use this method for generating IBAN (International Bank Account Number)
*
* @return A {@link com.devskiller.jfairy.producer.payment.IBAN} instance
*/
public IBAN iban() {
return ibanFactory.produceIBANProvider().get();
}
/**
* Use this method for generating IBAN (International Bank Account Number)
*
* @param properties desired IBAN features
* @return A {@link com.devskiller.jfairy.producer.payment.IBAN} instance
*/
public IBAN iban(IBANProperties.Property... properties) {
return ibanFactory.produceIBANProvider(properties).get();
}
public CreditCard creditCard() {
return creditCardProvider.get();
}
public NetworkProducer networkProducer() {
return networkProducer;
}
/**
* Returns a {@link UniqueFairy} that ensures generated objects are unique
* by their natural key (email for Person, name for Company, etc.).
*
* @return A {@link UniqueFairy} instance
*/
public UniqueFairy unique() {
return new UniqueFairy(this, UniqueEnforcer.DEFAULT_MAX_RETRIES);
}
/**
* Returns a {@link UniqueFairy} with custom max retries.
*
* @param maxRetries maximum generation attempts before throwing
* @return A {@link UniqueFairy} instance
*/
public UniqueFairy unique(int maxRetries) {
return new UniqueFairy(this, maxRetries);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/FairyFactory.java
================================================
package com.devskiller.jfairy;
/**
* @author Jakub Kubrynski
*/
interface FairyFactory {
Fairy createFairy();
}
================================================
FILE: src/main/java/com/devskiller/jfairy/FairyFactoryImpl.java
================================================
package com.devskiller.jfairy;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.company.CompanyFactory;
import com.devskiller.jfairy.producer.net.IPNumberProducer;
import com.devskiller.jfairy.producer.net.NetworkProducer;
import com.devskiller.jfairy.producer.payment.CreditCardProvider;
import com.devskiller.jfairy.producer.payment.IBANFactory;
import com.devskiller.jfairy.producer.person.PersonFactory;
import com.devskiller.jfairy.producer.text.TextProducer;
import com.devskiller.jfairy.producer.text.TextProducerInternal;
class FairyFactoryImpl implements FairyFactory {
private final TextProducerInternal textProducerInternal;
private final BaseProducer baseProducer;
private final PersonFactory personFactory;
private final IPNumberProducer ipNumberProducer;
private final DateProducer dateProducer;
private final CreditCardProvider creditCardProvider;
private final CompanyFactory companyFactory;
private final IBANFactory ibanFactory;
FairyFactoryImpl(TextProducerInternal textProducerInternal,
BaseProducer baseProducer,
PersonFactory personFactory,
IPNumberProducer ipNumberProducer,
DateProducer dateProducer,
CreditCardProvider creditCardProvider,
CompanyFactory companyFactory,
IBANFactory ibanFactory) {
this.textProducerInternal = textProducerInternal;
this.baseProducer = baseProducer;
this.personFactory = personFactory;
this.ipNumberProducer = ipNumberProducer;
this.dateProducer = dateProducer;
this.creditCardProvider = creditCardProvider;
this.companyFactory = companyFactory;
this.ibanFactory = ibanFactory;
}
@Override
public Fairy createFairy() {
TextProducer textProducer = new TextProducer(textProducerInternal, baseProducer);
NetworkProducer networkProducer = new NetworkProducer(ipNumberProducer);
return new Fairy(textProducer, personFactory, networkProducer, baseProducer,
dateProducer, creditCardProvider, companyFactory, ibanFactory);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/LocaleSpecificProviders.java
================================================
package com.devskiller.jfairy;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.person.AddressProvider;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory;
import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.person.PassportNumberProvider;
/**
* Container for locale-specific provider implementations
*/
record LocaleSpecificProviders(
NationalIdentificationNumberFactory nationalIdentificationNumberFactory,
NationalIdentityCardNumberProvider nationalIdentityCardNumberProvider,
VATIdentificationNumberProvider vatIdentificationNumberProvider,
AddressProvider addressProvider,
PassportNumberProvider passportNumberProvider) {
}
================================================
FILE: src/main/java/com/devskiller/jfairy/LocaleSpecificProvidersFactory.java
================================================
package com.devskiller.jfairy;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.company.locale.br.BrVATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.company.locale.de.DeVATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.company.locale.en.EnVATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.company.locale.es.EsVATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.company.locale.fr.FrVATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.company.locale.ka.KaVATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.company.locale.pl.PlVATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.company.locale.sk.SkVATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.company.locale.sv.SvVATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.company.locale.tr.TrVATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.company.locale.zh.ZhVATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory;
import com.devskiller.jfairy.producer.person.locale.NoNationalIdentificationNumberFactory;
import com.devskiller.jfairy.producer.person.locale.br.BrAddressProvider;
import com.devskiller.jfairy.producer.person.locale.br.BrNationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.person.locale.br.BrPassportNumberProvider;
import com.devskiller.jfairy.producer.person.locale.de.DeAddressProvider;
import com.devskiller.jfairy.producer.person.locale.de.DeNationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.person.locale.de.DePassportNumberProvider;
import com.devskiller.jfairy.producer.person.locale.en.EnAddressProvider;
import com.devskiller.jfairy.producer.person.locale.en.EnNationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.person.locale.en.EnPassportNumberProvider;
import com.devskiller.jfairy.producer.person.locale.es.EsAddressProvider;
import com.devskiller.jfairy.producer.person.locale.es.EsNationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.person.locale.es.EsPassportNumberProvider;
import com.devskiller.jfairy.producer.person.locale.fr.FrAddressProvider;
import com.devskiller.jfairy.producer.person.locale.fr.FrNationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.person.locale.fr.FrPassportNumberProvider;
import com.devskiller.jfairy.producer.person.locale.ka.KaAddressProvider;
import com.devskiller.jfairy.producer.person.locale.ka.KaNationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.person.locale.ka.KaPassportNumberProvider;
import com.devskiller.jfairy.producer.person.locale.pl.PlAddressProvider;
import com.devskiller.jfairy.producer.person.locale.pl.PlNationalIdentificationNumberFactory;
import com.devskiller.jfairy.producer.person.locale.pl.PlNationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.person.locale.pl.PlPassportNumberProvider;
import com.devskiller.jfairy.producer.person.locale.sk.SkAddressProvider;
import com.devskiller.jfairy.producer.person.locale.sk.SkNationalIdentificationNumberFactory;
import com.devskiller.jfairy.producer.person.locale.sk.SkNationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.person.locale.sk.SkPassportNumberProvider;
import com.devskiller.jfairy.producer.person.locale.sv.SvAddressProvider;
import com.devskiller.jfairy.producer.person.locale.sv.SvNationalIdentificationNumberFactory;
import com.devskiller.jfairy.producer.person.locale.sv.SvNationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.person.locale.sv.SvPassportNumberProvider;
import com.devskiller.jfairy.producer.person.locale.tr.TrAddressProvider;
import com.devskiller.jfairy.producer.person.locale.tr.TrNationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.person.locale.tr.TrPassportNumberProvider;
import com.devskiller.jfairy.producer.person.locale.zh.ZhAddressProvider;
import com.devskiller.jfairy.producer.person.locale.zh.ZhNationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.person.locale.zh.ZhPassportNumberProvider;
import com.devskiller.jfairy.producer.util.LanguageCode;
/**
* Factory for creating locale-specific provider implementations
*/
final class LocaleSpecificProvidersFactory {
private static final Logger LOG = LoggerFactory.getLogger(LocaleSpecificProvidersFactory.class);
private LocaleSpecificProvidersFactory() {
}
static LocaleSpecificProviders createProvidersForLocale(Locale locale,
DataMaster dataMaster,
BaseProducer baseProducer,
DateProducer dateProducer) {
LanguageCode code;
try {
code = LanguageCode.valueOf(locale.getLanguage().toUpperCase(Locale.ROOT));
} catch (IllegalArgumentException ex) {
LOG.warn("Unknown locale {}", locale);
code = LanguageCode.EN;
}
return switch (code) {
case PL -> createPlProviders(dataMaster, baseProducer, dateProducer);
case EN -> createEnProviders(dataMaster, baseProducer);
case ES -> createEsProviders(dataMaster, baseProducer);
case FR -> createFrProviders(dataMaster, baseProducer);
case IT -> createItProviders(dataMaster, baseProducer);
case SK -> createSkProviders(dataMaster, baseProducer, dateProducer);
case SV -> createSvProviders(dataMaster, baseProducer, dateProducer);
case ZH -> createZhProviders(dataMaster, baseProducer);
case DE -> createDeProviders(dataMaster, baseProducer);
case KA -> createKaProviders(dataMaster, baseProducer);
case BR -> createBrProviders(dataMaster, baseProducer);
case TR -> createTrProviders(dataMaster, baseProducer);
};
}
private static LocaleSpecificProviders createPlProviders(DataMaster dataMaster,
BaseProducer baseProducer,
DateProducer dateProducer) {
return new LocaleSpecificProviders(
new PlNationalIdentificationNumberFactory(baseProducer, dateProducer),
new PlNationalIdentityCardNumberProvider(dateProducer, baseProducer),
new PlVATIdentificationNumberProvider(baseProducer),
new PlAddressProvider(dataMaster, baseProducer),
new PlPassportNumberProvider(baseProducer)
);
}
private static LocaleSpecificProviders createSkProviders(DataMaster dataMaster,
BaseProducer baseProducer,
DateProducer dateProducer) {
return new LocaleSpecificProviders(
new SkNationalIdentificationNumberFactory(baseProducer, dateProducer),
new SkNationalIdentityCardNumberProvider(dateProducer, baseProducer),
new SkVATIdentificationNumberProvider(baseProducer),
new SkAddressProvider(dataMaster, baseProducer),
new SkPassportNumberProvider(baseProducer)
);
}
private static LocaleSpecificProviders createEnProviders(DataMaster dataMaster,
BaseProducer baseProducer) {
return new LocaleSpecificProviders(
new NoNationalIdentificationNumberFactory(),
new EnNationalIdentityCardNumberProvider(baseProducer),
new EnVATIdentificationNumberProvider(baseProducer),
new EnAddressProvider(dataMaster, baseProducer),
new EnPassportNumberProvider(baseProducer)
);
}
/**
* Creates providers for French locale.
*
* @param dataMaster data source
* @param baseProducer base producer
* @return French specific providers
*/
private static LocaleSpecificProviders createFrProviders(DataMaster dataMaster,
BaseProducer baseProducer) {
return new LocaleSpecificProviders(
new NoNationalIdentificationNumberFactory(),
new FrNationalIdentityCardNumberProvider(baseProducer),
new FrVATIdentificationNumberProvider(baseProducer),
new FrAddressProvider(dataMaster, baseProducer),
new FrPassportNumberProvider(baseProducer)
);
}
/**
* Creates providers for Italian locale.
*
* Note: Currently uses English fallbacks.
*
* @param dataMaster data source
* @param baseProducer base producer
* @return Italian specific providers
*/
private static LocaleSpecificProviders createItProviders(DataMaster dataMaster,
BaseProducer baseProducer) {
return new LocaleSpecificProviders(
new NoNationalIdentificationNumberFactory(),
new EnNationalIdentityCardNumberProvider(baseProducer),
new EnVATIdentificationNumberProvider(baseProducer),
new EnAddressProvider(dataMaster, baseProducer),
new EnPassportNumberProvider(baseProducer)
);
}
private static LocaleSpecificProviders createEsProviders(DataMaster dataMaster,
BaseProducer baseProducer) {
return new LocaleSpecificProviders(
new NoNationalIdentificationNumberFactory(),
new EsNationalIdentityCardNumberProvider(baseProducer),
new EsVATIdentificationNumberProvider(baseProducer),
new EsAddressProvider(dataMaster, baseProducer),
new EsPassportNumberProvider(baseProducer)
);
}
private static LocaleSpecificProviders createSvProviders(DataMaster dataMaster,
BaseProducer baseProducer,
DateProducer dateProducer) {
NationalIdentificationNumberFactory nationalIdFactory = new SvNationalIdentificationNumberFactory(baseProducer, dateProducer);
return new LocaleSpecificProviders(
nationalIdFactory,
new SvNationalIdentityCardNumberProvider(baseProducer),
new SvVATIdentificationNumberProvider(baseProducer, dateProducer, nationalIdFactory),
new SvAddressProvider(dataMaster, baseProducer),
new SvPassportNumberProvider(baseProducer)
);
}
private static LocaleSpecificProviders createZhProviders(DataMaster dataMaster,
BaseProducer baseProducer) {
return new LocaleSpecificProviders(
new NoNationalIdentificationNumberFactory(),
new ZhNationalIdentityCardNumberProvider(baseProducer),
new ZhVATIdentificationNumberProvider(),
new ZhAddressProvider(dataMaster, baseProducer),
new ZhPassportNumberProvider(baseProducer)
);
}
private static LocaleSpecificProviders createDeProviders(DataMaster dataMaster,
BaseProducer baseProducer) {
return new LocaleSpecificProviders(
new NoNationalIdentificationNumberFactory(),
new DeNationalIdentityCardNumberProvider(baseProducer),
new DeVATIdentificationNumberProvider(baseProducer),
new DeAddressProvider(dataMaster, baseProducer),
new DePassportNumberProvider(baseProducer)
);
}
private static LocaleSpecificProviders createKaProviders(DataMaster dataMaster,
BaseProducer baseProducer) {
return new LocaleSpecificProviders(
new NoNationalIdentificationNumberFactory(),
new KaNationalIdentityCardNumberProvider(baseProducer),
new KaVATIdentificationNumberProvider(baseProducer),
new KaAddressProvider(dataMaster, baseProducer),
new KaPassportNumberProvider(baseProducer)
);
}
private static LocaleSpecificProviders createBrProviders(DataMaster dataMaster,
BaseProducer baseProducer) {
return new LocaleSpecificProviders(
new NoNationalIdentificationNumberFactory(),
new BrNationalIdentityCardNumberProvider(baseProducer),
new BrVATIdentificationNumberProvider(baseProducer),
new BrAddressProvider(dataMaster, baseProducer),
new BrPassportNumberProvider()
);
}
private static LocaleSpecificProviders createTrProviders(DataMaster dataMaster,
BaseProducer baseProducer) {
return new LocaleSpecificProviders(
new NoNationalIdentificationNumberFactory(),
new TrNationalIdentityCardNumberProvider(baseProducer),
new TrVATIdentificationNumberProvider(baseProducer),
new TrAddressProvider(dataMaster, baseProducer),
new TrPassportNumberProvider(baseProducer)
);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/UniqueEnforcer.java
================================================
package com.devskiller.jfairy;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
import java.util.function.Function;
import java.util.function.Supplier;
/**
* Wraps a generator to ensure unique values based on a key extractor.
* Throws {@link UniqueGenerationException} after max retries.
*
*
This class is not thread-safe. Each thread should use its own instance.
*
* {@code
* Fairy fairy = Fairy.create();
* UniqueEnforcer unique = UniqueEnforcer.of(fairy::person, Person::getEmail);
* Person p1 = unique.next(); // guaranteed unique email
* Person p2 = unique.next(); // different email than p1
* unique.reset(); // clear history
* }
*
* @param type of generated object
*/
public final class UniqueEnforcer {
static final int DEFAULT_MAX_RETRIES = 10_000;
private final Supplier defaultGenerator;
private final Function keyExtractor;
private final int maxRetries;
private final Set seen = new HashSet<>();
private UniqueEnforcer(Supplier defaultGenerator, Function keyExtractor, int maxRetries) {
this.defaultGenerator = Objects.requireNonNull(defaultGenerator, "generator must not be null");
this.keyExtractor = Objects.requireNonNull(keyExtractor, "keyExtractor must not be null");
if (maxRetries < 1) {
throw new IllegalArgumentException("maxRetries must be positive, got: " + maxRetries);
}
this.maxRetries = maxRetries;
}
public static UniqueEnforcer of(Supplier generator, Function keyExtractor) {
return new UniqueEnforcer<>(generator, keyExtractor, DEFAULT_MAX_RETRIES);
}
public static UniqueEnforcer of(Supplier generator, Function keyExtractor, int maxRetries) {
return new UniqueEnforcer<>(generator, keyExtractor, maxRetries);
}
public T next() {
return next(defaultGenerator);
}
/**
* Generate a unique value using a custom supplier, tracking uniqueness
* in the same seen-set as {@link #next()}.
*/
public T next(Supplier generator) {
for (int i = 0; i < maxRetries; i++) {
T value = generator.get();
Object key = keyExtractor.apply(value);
if (seen.add(key)) {
return value;
}
}
throw new UniqueGenerationException(
"Could not generate a unique value after " + maxRetries + " retries. "
+ seen.size() + " unique values were generated before exhaustion.");
}
public void reset() {
seen.clear();
}
public int size() {
return seen.size();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/UniqueFairy.java
================================================
package com.devskiller.jfairy;
import com.devskiller.jfairy.producer.company.Company;
import com.devskiller.jfairy.producer.company.CompanyProperties;
import com.devskiller.jfairy.producer.payment.CreditCard;
import com.devskiller.jfairy.producer.payment.IBAN;
import com.devskiller.jfairy.producer.payment.IBANProperties;
import com.devskiller.jfairy.producer.person.Person;
import com.devskiller.jfairy.producer.person.PersonProperties;
/**
* Convenience wrapper that ensures generated objects are unique by their
* natural key (email for Person, name for Company, etc.).
*
* Uniqueness is tracked per entity type. A person email will not conflict
* with a company name. Call {@link #reset()} to clear all tracked values.
*
* This class is not thread-safe. Store the reference and reuse it —
* calling {@code fairy.unique()} in a loop creates independent instances
* with no shared tracking.
*
* {@code
* UniqueFairy unique = fairy.unique();
* Person p1 = unique.person(); // unique by email
* Person p2 = unique.person(); // different email than p1
* Company c = unique.company(); // unique by name
* unique.reset();
* }
*/
public final class UniqueFairy {
private final Fairy fairy;
private final UniqueEnforcer personEnforcer;
private final UniqueEnforcer companyEnforcer;
private final UniqueEnforcer ibanEnforcer;
private final UniqueEnforcer creditCardEnforcer;
UniqueFairy(Fairy fairy, int maxRetries) {
this.fairy = fairy;
this.personEnforcer = UniqueEnforcer.of(fairy::person, Person::getEmail, maxRetries);
this.companyEnforcer = UniqueEnforcer.of(fairy::company, Company::getName, maxRetries);
// Lambda needed: fairy::iban is ambiguous (overloaded no-arg and vararg)
this.ibanEnforcer = UniqueEnforcer.of(() -> fairy.iban(), IBAN::getIbanNumber, maxRetries);
this.creditCardEnforcer = UniqueEnforcer.of(fairy::creditCard, CreditCard::getCardNumber, maxRetries);
}
public Person person(PersonProperties.PersonProperty... personProperties) {
if (personProperties.length == 0) {
return personEnforcer.next();
}
return personEnforcer.next(() -> fairy.person(personProperties));
}
public Company company(CompanyProperties.CompanyProperty... companyProperties) {
if (companyProperties.length == 0) {
return companyEnforcer.next();
}
return companyEnforcer.next(() -> fairy.company(companyProperties));
}
public IBAN iban(IBANProperties.Property... properties) {
if (properties.length == 0) {
return ibanEnforcer.next();
}
return ibanEnforcer.next(() -> fairy.iban(properties));
}
public CreditCard creditCard() {
return creditCardEnforcer.next();
}
public void reset() {
personEnforcer.reset();
companyEnforcer.reset();
ibanEnforcer.reset();
creditCardEnforcer.reset();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/UniqueGenerationException.java
================================================
package com.devskiller.jfairy;
public class UniqueGenerationException extends RuntimeException {
private static final long serialVersionUID = 1L;
public UniqueGenerationException(String message) {
super(message);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/data/DataMaster.java
================================================
package com.devskiller.jfairy.data;
import java.util.List;
import com.devskiller.jfairy.producer.util.LanguageCode;
/**
* Providing access to localized data used by producers.
*
* This master component acts as the central registry for retrieving
* strings and structured data based on specific keys and language codes.
*
* @author Olga Maciaszek-Sharma
* @since 23.04.15
*/
public interface DataMaster {
/**
* Returns a single string value associated with the given key.
*
* @param key the unique identifier for the data entry
* @return the string value found for the key
*/
String getString(String key);
/**
* Returns a list of strings associated with the given key.
*
* @param key the unique identifier for the data entries
* @return a list of string values found for the key
*/
List getStringList(String key);
/**
* Retrieves structured data of a specific type and converts it to the requested class.
*
* @param dataKey the root key for the data search
* @param type the specific sub-type or category
* @param resultClass the class type to which the result should be cast
* @param the type of the result object
* @return an instance of the requested type containing the values
*/
T getValuesOfType(String dataKey, String type, Class resultClass);
/**
* Selects a random string value from the entries associated with the given key.
*
* @param key the unique identifier for the data list
* @return a randomly selected string value
*/
String getRandomValue(String key);
/**
* Returns the language code currently used by this data master.
*
* @return the active LanguageCode
*/
LanguageCode getLanguage();
}
================================================
FILE: src/main/java/com/devskiller/jfairy/data/MapBasedDataMaster.java
================================================
/*
* Copyright (c) 2013 Codearte
*/
package com.devskiller.jfairy.data;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import org.snakeyaml.engine.v2.api.Load;
import org.snakeyaml.engine.v2.api.LoadSettings;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.util.LanguageCode;
import com.devskiller.jfairy.producer.util.ValidateUtils;
public class MapBasedDataMaster implements DataMaster {
public static final String LANGUAGE_TAG = "language";
private final BaseProducer baseProducer;
private final Map dataSource = new CaseInsensitiveMap();
public MapBasedDataMaster(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
/**
* Returns list (null safe) of elements for desired key from dataSource files
*
* @param key desired node key
* @return list of elements for desired key
* @throws IllegalArgumentException if no element for key has been found
*/
@SuppressWarnings("unchecked")
@Override
public List getStringList(String key) {
return getData(key, List.class);
}
@Override
@SuppressWarnings("unchecked")
public T getValuesOfType(String dataKey, final String type, final Class resultClass) {
Map> data = getData(dataKey, Map.class);
List entries = data.get(type);
return baseProducer.randomElement(entries);
}
/**
* Returns element (null safe) for desired key from dataSource files
*
* @param key desired node key
* @return string element for desired key
* @throws IllegalArgumentException if no element for key has been found
*/
@Override
public String getString(String key) {
return getData(key, String.class);
}
@Override
public String getRandomValue(String key) {
return baseProducer.randomElement(getStringList(key));
}
@Override
public LanguageCode getLanguage() {
String tag = getString(LANGUAGE_TAG).toUpperCase(Locale.ROOT);
try {
return LanguageCode.valueOf(tag);
} catch (IllegalArgumentException ex) {
throw new IllegalArgumentException("Unknown language tag: " + tag, ex);
}
}
@SuppressWarnings("unchecked")
T getData(String key, Class type) {
ValidateUtils.notNull(key, "key cannot be null");
ValidateUtils.notNull(type, "type cannot be null");
Object element = dataSource.get(key);
ValidateUtils.isTrue(element != null, "No such key: %s", key);
ValidateUtils.isTrue(type.isAssignableFrom(element.getClass()),
"Element under desired key has incorrect type - should be %s", type.getSimpleName());
return (T) element;
}
//fixme - should be package-private
public void readResources(String path) throws IOException {
Enumeration resources =
getClass().getClassLoader().getResources(path);
if (!resources.hasMoreElements()) {
throw new IllegalArgumentException(String.format("File %s was not found on classpath", path));
}
final LoadSettings loadSettings = LoadSettings.builder().build();
while (resources.hasMoreElements()) {
final Load load = new Load(loadSettings);
final URL url = resources.nextElement();
try (InputStream is = url.openStream()) {
@SuppressWarnings("unchecked")
final Map data = (Map) load.loadFromInputStream(is);
appendData(data);
}
}
}
private void appendData(Map data) {
dataSource.putAll(data);
}
private static final class CaseInsensitiveMap extends HashMap {
private static final long serialVersionUID = 1L;
@Override
@SuppressWarnings("unchecked")
public Object put(String key, Object value) {
String loweredKey = key.toLowerCase(Locale.ROOT);
Object valueToInsert = value;
if (value instanceof Map) {
valueToInsert = new CaseInsensitiveMap();
((CaseInsensitiveMap) valueToInsert).putAll((Map extends String, ?>) value);
}
return super.put(loweredKey, valueToInsert);
}
@Override
public void putAll(Map extends String, ?> map) {
for (Map.Entry extends String, ?> entry : map.entrySet()) {
put(entry.getKey(), entry.getValue());
}
}
@Override
public Object get(Object key) {
return super.get(((String) key).toLowerCase(Locale.ROOT));
}
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/package-info.java
================================================
/**
* Core package of the jFairy library.
*
* This package contains the main entry points for the library, such as the {@link com.devskiller.jfairy.Fairy}
* facade and the {@link com.devskiller.jfairy.Bootstrap} class for initialization.
*
* The {@link com.devskiller.jfairy.FairyFactory} provides mechanisms to create localized instances
* of the data generators.
*/
@NullMarked
package com.devskiller.jfairy;
import org.jspecify.annotations.NullMarked;
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/BaseProducer.java
================================================
package com.devskiller.jfairy.producer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class BaseProducer {
private final RandomGenerator random;
public BaseProducer(RandomGenerator random) {
this.random = random;
}
/**
* Generates random boolean
*
* @return random boolean
*/
public boolean trueOrFalse() {
return random.nextBoolean();
}
/**
* Returns random element from passed List
*
* @param element generic type
* @param elements list to process
* @return random list element
*/
public T randomElement(List elements) {
return elements.get(randomBetween(0, elements.size() - 1));
}
/**
* Returns random element from passed vararg
*
* @param elements objects to process
* @return random element
*/
public String randomElement(String... elements) {
return randomElement(Arrays.asList(elements));
}
/**
* Returns random enum value
*
* @param element generic type
* @param enumType enum class
* @return random enum value
*/
public > T randomElement(Class enumType) {
return enumType.getEnumConstants()[randomBetween(0, enumType.getEnumConstants().length - 1)];
}
/**
* Creates new list being random subset of the passed list
*
* @param element generic type
* @param elements list to process
* @param count returned list size
* @return sublist of the elements list
*/
public List randomElements(List elements, int count) {
if (elements.size() >= count) {
return extractRandomList(elements, count);
} else {
List randomElements = new ArrayList<>(extractRandomList(elements, count % elements.size()));
do {
randomElements.addAll(extractRandomList(elements, elements.size()));
} while (randomElements.size() < count);
return randomElements;
}
}
private List extractRandomList(List elements, int count) {
return random.shuffle(elements).subList(0, count);
}
/**
* Returns random int value
*
* @param min value of the random number to be returned. Must be positive.
* @param max value of the random number to be returned. Must be positive.
* @return random {@code int} value between {@code min} (inclusive) and {@code max} (inclusive)
*/
public int randomBetween(int min, int max) {
return random.nextInt(min, max);
}
/**
* Returns random int value
*
* @param max value of the random number to be returned. Must be positive.
* @return random {@code int} value between 0 (inclusive) and {@code max} (inclusive)
*/
public int randomInt(int max) {
return randomBetween(0, max);
}
//TODO: MZA: Duplication - should be merged into one method when consistent logic will be determined
public char randomBetween(char min, char max) {
return (char) randomBetween((int) min, (int) max);
}
/**
* Returns random long value from a range (including both range boundaries).
* It required to satisfied condition min <= max.
*
* @param min lower bound of a range
* @param max higher bound of a range
* @return pseudorandom {@code long} value between {@code mon} (inclusive) and {@code max} (inclusive)
*/
public long randomBetween(long min, long max) {
return random.nextLong(min, max);
}
/**
* Returns random double value
*
* @param min value of the random number to be returned. Must be positive.
* @param max value of the random number to be returned. Must be positive.
* @return random {@code double} value between {@code min} (inclusive) and {@code max} (inclusive)
*/
public double randomBetween(double min, double max) {
return random.nextDouble(min, max);
}
public String randomNumeric(int length) {
return random.randomNumeric(length);
}
public String randomAlphabetic(int length) {
return random.randomAlphabetic(length);
}
public String randomAlphanumeric(int length) {
return random.randomAlphanumeric(length);
}
/**
* Replaces all {@code '?'} characters with random chars from [a - z] range
*
* @param letterString text to process
* @return text with replaces {@code '?'} chars
*/
public String letterify(String letterString) {
return letterify(letterString, 'a', 'z');
}
/**
* Replaces all {@code '?'} characters with random chars from [{@code from} - {@code to}] range
*
* @param letterString text to process
* @param from start of the range
* @param to end of the range
* @return text with replaced {@code '?'} chars
*/
public String letterify(String letterString, char from, char to) {
return replaceSymbolWithCharsFromTo(letterString, '?', from, to);
}
/**
* Replaces all {@code '#'} characters with random numbers from [0 - 9] range
*
* @param numberString text to process
* @return text with replaced '#' characters
*/
public String numerify(String numberString) {
return numerify(numberString, 0, 9);
}
/**
* Replaces all {@code '#'} characters with random numbers from [{@code from} - {@code to}] range
*
* @param numberString text to process
* @param from start of the range
* @param to end of the range
* @return text with replaced '#' characters
*/
public String numerify(String numberString, int from, int to) {
return replaceSymbolWithCharsFromTo(numberString, '#', Character.forDigit(from, 10), Character.forDigit(to, 10));
}
/**
* Processes text with {@code numerify()} and {@code letterify()} methods
*
* @param string text to process
* @return text with replaced '#' and '?' characters
*/
public String bothify(String string) {
return letterify(numerify(string));
}
/**
* Replaces occurrence of a specific symbol with a random character within the given range.
*
* @param string the template string containing symbols to be replaced
* @param symbol the character to look for in the template
* @param from the lower bound (inclusive) of the random character range
* @param to the upper bound (inclusive) of the random character range
* @return a new string with all symbols replaced by random characters
*/
private String replaceSymbolWithCharsFromTo(String string, char symbol, char from, char to) {
StringBuilder result = new StringBuilder();
for (int i = 0; i < string.length(); i++) {
char c = string.charAt(i);
if (c == symbol) {
result.append(randomBetween(from, to));
} else {
result.append(c);
}
}
return result.toString();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/DateProducer.java
================================================
/*
* Copyright (c) 2013. Codearte
*/
package com.devskiller.jfairy.producer;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.Month;
import java.time.Period;
import java.time.ZoneOffset;
import com.devskiller.jfairy.producer.util.ValidateUtils;
import static java.time.temporal.TemporalAdjusters.firstDayOfYear;
import static java.time.temporal.TemporalAdjusters.lastDayOfYear;
public class DateProducer {
static final int SECONDS_BEFORE_TO_BE_IN_THE_PAST = 1;
private final BaseProducer baseProducer;
private final TimeProvider timeProvider;
public DateProducer(BaseProducer baseProducer, TimeProvider timeProvider) {
this.baseProducer = baseProducer;
this.timeProvider = timeProvider;
}
public LocalDateTime randomDateInThePast(int maxYearsEarlier) {
ValidateUtils.isTrue(maxYearsEarlier >= 0, "%d has to be >= 0", maxYearsEarlier);
LocalDateTime currentDate = timeProvider.getCurrentTime();
LocalDateTime latestDateInThePast = currentDate.minusSeconds(SECONDS_BEFORE_TO_BE_IN_THE_PAST);
LocalDateTime maxYearsEarlierDate = currentDate.minusYears(maxYearsEarlier);
return randomDateBetweenTwoDates(maxYearsEarlierDate, latestDateInThePast);
}
public LocalDateTime randomDateBetweenYearAndNow(int fromYear) {
int actualYear = timeProvider.getCurrentYear();
return randomDateInThePast(actualYear - fromYear);
}
public LocalDate randomDateBetweenTwoDates(LocalDate from, LocalDate to) {
long epochDay = baseProducer.randomBetween(from.toEpochDay(), to.toEpochDay());
return LocalDate.ofEpochDay(epochDay);
}
public LocalDateTime randomDateBetweenTwoDates(LocalDateTime from, LocalDateTime to) {
long between = baseProducer.randomBetween(from.toInstant(ZoneOffset.UTC).toEpochMilli(),
to.toInstant(ZoneOffset.UTC).toEpochMilli());
return LocalDateTime.ofInstant(Instant.ofEpochMilli(between), ZoneOffset.UTC);
}
public LocalDateTime randomDateBetweenYears(int fromYear, int toYear) {
ValidateUtils.isTrue(fromYear <= toYear, "%d has to be <= %d", fromYear, toYear);
LocalDateTime fromDate = getDateForFirstDayForGivenYear(fromYear);
LocalDateTime toDate = getDateForLastDayForGivenYear(toYear);
return randomDateBetweenTwoDates(fromDate, toDate);
}
private LocalDateTime getDateForLastDayForGivenYear(int year) {
return LocalDateTime.of(year, Month.JANUARY, 1, 23, 59).with(lastDayOfYear());
}
private LocalDateTime getDateForFirstDayForGivenYear(int year) {
return LocalDateTime.of(year, Month.JANUARY, 1, 0, 0).with(firstDayOfYear());
}
public LocalDateTime randomDateBetweenNowAndFuturePeriod(Period futurePeriod) {
LocalDateTime now = timeProvider.getCurrentTime();
return randomDateBetweenTwoDates(now, now.plus(futurePeriod));
}
public LocalDateTime randomDateInTheFuture(int years) {
return randomDateBetweenNowAndFuturePeriod(Period.ofYears(years));
}
public LocalDateTime randomDateInTheFuture() {
return randomDateInTheFuture(100);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/RandomGenerator.java
================================================
package com.devskiller.jfairy.producer;
import java.util.Collections;
import java.util.List;
import java.util.Random;
/**
* Source of random data for all jFairy producers.
*
* This class encapsulates a {@link Random} instance to ensure determinism
* when a fixed seed is provided.
*/
public class RandomGenerator {
private static final String NUMERIC_CHARS = "0123456789";
private static final String ALPHA_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static final String ALPHANUMERIC_CHARS = NUMERIC_CHARS + ALPHA_CHARS;
private final Random random;
/**
* Creates a new generator with a default seed.
*/
public RandomGenerator() {
this.random = new Random();
}
/**
* Creates a new generator with a fixed seed for deterministic behavior.
*
* @param seed the initial seed
*/
public RandomGenerator(int seed) {
this.random = new Random(seed);
}
/**
* Returns the next pseudorandom boolean value.
*
* @return a random boolean
*/
public boolean nextBoolean() {
return random.nextBoolean();
}
/**
* Randomly permutes the specified list.
*
* @param the type of elements in the list
* @param elements the list to be shuffled
* @return the shuffled list
*/
public List shuffle(List elements) {
Collections.shuffle(elements, random);
return elements;
}
/**
* Returns a random integer between min and max (inclusive).
*
* @param min lower bound (inclusive)
* @param max upper bound (inclusive)
* @return a random integer
*/
public int nextInt(int min, int max) {
return min == max ? min : random.nextInt(min, max + 1);
}
/**
* Returns a random long between min and max (inclusive).
*
* @param min lower bound (inclusive)
* @param max upper bound (inclusive)
* @return a random long
*/
public long nextLong(long min, long max) {
return min == max ? min : random.nextLong(min, max + 1);
}
/**
* Returns a random double between min (inclusive) and max (exclusive).
*
* @param min lower bound (inclusive)
* @param max upper bound (exclusive)
* @return a random double
*/
public double nextDouble(double min, double max) {
return min == max ? min : random.nextDouble(min, max);
}
/**
* Generates a random numeric string.
*
* @param length desired length
* @return string of digits
*/
public String randomNumeric(int length) {
return randomString(length, NUMERIC_CHARS);
}
/**
* Generates a random alphabetic string (upper-case ASCII).
*
* @param length desired length
* @return string of letters
*/
public String randomAlphabetic(int length) {
return randomString(length, ALPHA_CHARS);
}
/**
* Generates a random alphanumeric string (upper-case ASCII).
*
* @param length desired length
* @return string of digits and letters
*/
public String randomAlphanumeric(int length) {
return randomString(length, ALPHANUMERIC_CHARS);
}
private String randomString(int length, String alphabet) {
if (length < 0) {
throw new IllegalArgumentException("length must be >= 0, got: " + length);
}
StringBuilder sb = new StringBuilder(length);
for (int i = 0; i < length; i++) {
sb.append(alphabet.charAt(random.nextInt(alphabet.length())));
}
return sb.toString();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/TimeProvider.java
================================================
/*
* Copyright (c) 2013. Codearte
*/
package com.devskiller.jfairy.producer;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
public class TimeProvider {
public int getCurrentYear() {
return getCurrentTime().getYear();
}
public LocalDateTime getCurrentTime() {
return LocalDateTime.now(ZoneId.systemDefault());
}
public LocalDate getCurrentDate() {
return LocalDate.now(ZoneId.systemDefault());
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/VATIdentificationNumberProvider.java
================================================
/*
* Copyright (c) 2013 Codearte and authors
*/
package com.devskiller.jfairy.producer;
import java.util.function.Supplier;
/**
* VAT identification number (VATIN)
*
* @author mariuszs
* @since 02.11.13.
*/
public interface VATIdentificationNumberProvider extends Supplier {
@Override
String get();
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/Company.java
================================================
package com.devskiller.jfairy.producer.company;
public class Company {
private final String name;
private final String domain;
private final String email;
private final String vatIdentificationNumber;
public Company(String name, String domain, String email, String vatIdentificationNumber) {
this.name = name;
this.domain = domain;
this.email = email;
this.vatIdentificationNumber = vatIdentificationNumber;
}
public String getName() {
return name;
}
public String getUrl() {
return "http://www." + domain;
}
public String getEmail() {
return email + "@" + domain;
}
public String getDomain() {
return domain;
}
public String getVatIdentificationNumber() {
return vatIdentificationNumber;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/CompanyFactory.java
================================================
package com.devskiller.jfairy.producer.company;
public interface CompanyFactory {
CompanyProvider produceCompany(CompanyProperties.CompanyProperty... companyProperties);
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/CompanyFactoryImpl.java
================================================
package com.devskiller.jfairy.producer.company;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
public class CompanyFactoryImpl implements CompanyFactory {
private final BaseProducer baseProducer;
private final DataMaster dataMaster;
private final VATIdentificationNumberProvider vatIdentificationNumberProvider;
public CompanyFactoryImpl(BaseProducer baseProducer,
DataMaster dataMaster,
VATIdentificationNumberProvider vatIdentificationNumberProvider) {
this.baseProducer = baseProducer;
this.dataMaster = dataMaster;
this.vatIdentificationNumberProvider = vatIdentificationNumberProvider;
}
@Override
public CompanyProvider produceCompany(CompanyProperties.CompanyProperty... companyProperties) {
return new DefaultCompanyProvider(baseProducer, dataMaster, vatIdentificationNumberProvider, companyProperties);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/CompanyProperties.java
================================================
package com.devskiller.jfairy.producer.company;
public final class CompanyProperties {
private CompanyProperties() {
}
public abstract static class CompanyProperty {
public abstract void apply(CompanyProvider company);
public static CompanyProperty withName(final String name) {
return new CompanyProperty() {
@Override
public void apply(CompanyProvider companyProvider) {
companyProvider.setName(name);
}
};
}
public static CompanyProperty withDomain(final String domain) {
return new CompanyProperty() {
@Override
public void apply(CompanyProvider companyProvider) {
companyProvider.setDomain(domain);
}
};
}
public static CompanyProperty withEmail(final String email) {
return new CompanyProperty() {
@Override
public void apply(CompanyProvider companyProvider) {
companyProvider.setEmail(email);
}
};
}
public static CompanyProperty withVatIdentificationNumber(final String vatIdentificationNumber) {
return new CompanyProperty() {
@Override
public void apply(CompanyProvider companyProvider) {
companyProvider.setVatIdentificationNumber(vatIdentificationNumber);
}
};
}
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/CompanyProvider.java
================================================
package com.devskiller.jfairy.producer.company;
import java.util.function.Supplier;
public interface CompanyProvider extends Supplier {
String DOMAIN = "domains";
String COMPANY_SUFFIX = "companySuffixes";
String COMPANY_NAME = "companyNames";
String COMPANY_EMAIL = "companyEmails";
@Override
Company get();
void generateName();
void generateDomain();
void generateEmail();
void generateVatIdentificationNumber();
void setName(String name);
void setDomain(String domain);
void setEmail(String email);
void setVatIdentificationNumber(String vatIdentificationNumber);
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/DefaultCompanyProvider.java
================================================
package com.devskiller.jfairy.producer.company;
import java.util.Locale;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
import static com.devskiller.jfairy.producer.util.StringUtils.deleteWhitespace;
import static com.devskiller.jfairy.producer.util.StringUtils.escapeNonAscii;
import static com.devskiller.jfairy.producer.util.StringUtils.latinize;
import static com.devskiller.jfairy.producer.util.StringUtils.strip;
public class DefaultCompanyProvider implements CompanyProvider {
protected String name;
protected String domain;
protected String email;
protected String vatIdentificationNumber;
protected final BaseProducer baseProducer;
protected final DataMaster dataMaster;
protected final VATIdentificationNumberProvider vatIdentificationNumberProvider;
public DefaultCompanyProvider(BaseProducer baseProducer,
DataMaster dataMaster,
VATIdentificationNumberProvider vatIdentificationNumberProvider,
CompanyProperties.CompanyProperty... companyProperties) {
this.baseProducer = baseProducer;
this.dataMaster = dataMaster;
this.vatIdentificationNumberProvider = vatIdentificationNumberProvider;
for (CompanyProperties.CompanyProperty companyProperty : companyProperties) {
companyProperty.apply(this);
}
}
@Override
public Company get() {
generateName();
generateDomain();
generateEmail();
generateVatIdentificationNumber();
return new Company(name, domain, email, vatIdentificationNumber);
}
@Override
public void generateName() {
if (name != null) {
return;
}
name = dataMaster.getRandomValue(COMPANY_NAME);
if (baseProducer.trueOrFalse()) {
name += " " + dataMaster.getRandomValue(COMPANY_SUFFIX);
}
}
/**
* In case of the illegal hostname characters in company name
* and truncate it if it is too long (length > 10) after escape
*
* It is compatible with other non-latin language and will not change the original result for latin language.
*
* P.S. Actually the best way for Chinese here is to use phonetic writing (so as Japanese or Korean)
*/
@Override
public void generateDomain() {
if (domain != null) {
return;
}
String host = latinize(strip(deleteWhitespace(name.toLowerCase(Locale.ROOT)), ".").replace("/", ""));
int len1 = host.length();
host = escapeNonAscii(host).replaceAll("\\\\u", "");
int len2 = host.length();
if (len2 > len1 && len2 > 10) {
host = host.substring(0, 10);
}
domain = host + "." + dataMaster.getRandomValue(DOMAIN);
}
@Override
public void generateEmail() {
if (email != null) {
return;
}
email = dataMaster.getRandomValue(COMPANY_EMAIL);
}
@Override
public void generateVatIdentificationNumber() {
if (vatIdentificationNumber != null) {
return;
}
vatIdentificationNumber = vatIdentificationNumberProvider.get();
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public void setDomain(String domain) {
this.domain = domain;
}
@Override
public void setEmail(String email) {
this.email = email;
}
@Override
public void setVatIdentificationNumber(String vatIdentificationNumber) {
this.vatIdentificationNumber = vatIdentificationNumber;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/br/BrVATIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.company.locale.br;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
/**
* Brazilian CNPJ (Cadastro Nacional da Pessoa Jurídica) generator.
*/
public class BrVATIdentificationNumberProvider implements VATIdentificationNumberProvider {
private final BaseProducer baseProducer;
public BrVATIdentificationNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
int[] digits = new int[12];
for (int i = 0; i < 8; i++) {
digits[i] = baseProducer.randomBetween(0, 9);
}
digits[8] = 0;
digits[9] = 0;
digits[10] = 0;
digits[11] = 1;
int d1 = calculateCheckDigit(digits, 12);
int d2 = calculateCheckDigit(digits, d1, 13);
return String.format("%d%d.%d%d%d.%d%d%d/%d%d%d%d-%d%d",
digits[0], digits[1], digits[2], digits[3], digits[4],
digits[5], digits[6], digits[7], digits[8], digits[9],
digits[10], digits[11], d1, d2);
}
private static final int[] WEIGHTS = {6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2};
private int calculateCheckDigit(int[] digits, int length) {
int sum = 0;
for (int i = 0; i < length; i++) {
sum += digits[i] * WEIGHTS[WEIGHTS.length - length + i];
}
int remainder = 11 - (sum % 11);
return remainder >= 10 ? 0 : remainder;
}
private int calculateCheckDigit(int[] digits, int previousDigit, int length) {
int sum = 0;
for (int i = 0; i < digits.length; i++) {
sum += digits[i] * WEIGHTS[WEIGHTS.length - length + i];
}
sum += previousDigit * WEIGHTS[WEIGHTS.length - 1];
int remainder = 11 - (sum % 11);
return remainder >= 10 ? 0 : remainder;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/de/DeVATIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.company.locale.de;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
/**
* German VAT identification number (Umsatzsteuer-Identifikationsnummer or USt-IdNr.)
*
* VAT identification number
*
* @author Roland Weisleder
*/
public class DeVATIdentificationNumberProvider implements VATIdentificationNumberProvider {
private static final String VALID_NUMBER_PATTERN = "^[0-9]{9}$";
private final BaseProducer baseProducer;
public DeVATIdentificationNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
return baseProducer.randomNumeric(9);
}
public boolean isValid(String vatIdentificationNumber) {
return vatIdentificationNumber.matches(VALID_NUMBER_PATTERN);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/en/EnVATIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.company.locale.en;
import java.util.Set;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.util.StringUtils;
/**
* American VAT Identification Number (known as Employer Identification Number or EIN in the United States)
*
* Employer Identification Number
*
* @author Olga Maciaszek-Sharma
* @since 21.03.15
*/
public class EnVATIdentificationNumberProvider implements VATIdentificationNumberProvider {
private static final int EIN_LENGTH = 10;
private static final int HYPHEN_INDEX = 2;
private static final int SERIAL_NUMBER_LENGTH = 7;
private static final int SERIAL_NUMBER_INDEX = 3;
private static final int AREA_NUMBER_LENGTH = 2;
private final BaseProducer baseProducer;
private static final Set EXCLUDED_NUMBERS = Set.of(7, 8, 9, 17, 18, 19, 28, 29, 41, 47, 49, 69, 70, 79, 89, 96, 97);
public EnVATIdentificationNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
char[] ein = new char[EIN_LENGTH];
fillHyphen(ein);
fillAreaNumber(ein);
fillSerialNumber(ein);
return String.valueOf(ein);
}
private void fillSerialNumber(char[] ein) {
String number = String.valueOf(baseProducer.randomBetween(1, 9999));
char[] digits = StringUtils.leftPad(number, SERIAL_NUMBER_LENGTH, "0").toCharArray();
System.arraycopy(digits, 0, ein, SERIAL_NUMBER_INDEX, digits.length);
}
private void fillAreaNumber(char[] ein) {
int number;
do {
number = baseProducer.randomBetween(0, 99);
} while (EXCLUDED_NUMBERS.contains(number));
char[] digits = StringUtils.leftPad(Integer.toString(number), AREA_NUMBER_LENGTH, "0").toCharArray();
System.arraycopy(digits, 0, ein, 0, digits.length);
}
private void fillHyphen(char[] ein) {
ein[HYPHEN_INDEX] = '-';
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/es/EsVATIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.company.locale.es;
import java.util.Locale;
import java.util.regex.Pattern;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.person.Country;
/**
* Spanish VAT Identification Number (known as Número de Identificación Fiscal (for freelancers) or Código de Identificación Fiscal (for companies) in Spain)
*
* VAT identification number
*/
public class EsVATIdentificationNumberProvider implements VATIdentificationNumberProvider {
private static final String REGEX_CIF = "^[A-Z][0-9]{2}[0-9]{5}([KPQSABEH]|[0-9]|[A-Z])$";
private final BaseProducer baseProducer;
private final Pattern regexCif;
private final Locale primaryLocale = Country.Spain.getPrimaryLocale();
public EsVATIdentificationNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
this.regexCif = Pattern.compile(REGEX_CIF);
}
@Override
public String get() {
return String.format("%s%s%s",
baseProducer.randomAlphabetic(1).toUpperCase(primaryLocale),
baseProducer.randomNumeric(7),
baseProducer.randomAlphanumeric(1).toUpperCase(primaryLocale));
}
public boolean isValid(String cif) {
return this.regexCif.matcher(cif).matches();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/fr/FrVATIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.company.locale.fr;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.person.Country;
/**
* Provider for French VAT identification numbers (TVA intracommunautaire).
*
* Format: FR + 2 digits (key) + 9 digits (SIREN).
* The "SIREN" satisfies the Luhn algorithm.
*
* @author Markus Spann
* @since 0.8.3
*/
public class FrVATIdentificationNumberProvider implements VATIdentificationNumberProvider {
private final BaseProducer baseProducer;
public FrVATIdentificationNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
String siren = generateLuhnCompliantSiren();
int key = (12 + 3 * (Integer.parseInt(siren) % 97)) % 97;
return Country.France.getCode() + String.format("%02d%s", key, siren);
}
/**
* Generates a 9-digit SIREN number that satisfies the Luhn algorithm.
*
* @return a valid 9-digit SIREN string
*/
private String generateLuhnCompliantSiren() {
int[] digits = new int[9];
int sum = 0;
// generate first 8 digits in a single random call
String base = baseProducer.randomNumeric(8);
for (int i = 0; i < 8; i++) {
digits[i] = Character.digit(base.charAt(i), 10);
}
// calculate Luhn sum for the first 8 digits
// for a 9-digit number, doubling every second digit from the right
// means doubling digits at indices 7, 5, 3, 1 (0-based from left).
for (int i = 0; i < 8; i++) {
int digit = digits[i];
if (i % 2 != 0) {
digit *= 2;
if (digit > 9) {
digit -= 9;
}
}
sum += digit;
}
// calculate and set the check digit (9th digit)
int checkDigit = (10 - (sum % 10)) % 10;
digits[8] = checkDigit;
// build the resulting string
StringBuilder sb = new StringBuilder(9);
for (int d : digits) {
sb.append(d);
}
return sb.toString();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/ka/KaVATIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.company.locale.ka;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
public class KaVATIdentificationNumberProvider implements VATIdentificationNumberProvider {
private final BaseProducer baseProducer;
public KaVATIdentificationNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
return baseProducer.randomElement("2", "4") + baseProducer.numerify("########");
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/pl/PlVATIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.company.locale.pl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.util.StringUtils;
/**
* Polish VAT Identification Number (known as NIP Numer Identyfikacji Podatkowej in Poland)
*
* VAT identification number
*/
public class PlVATIdentificationNumberProvider implements VATIdentificationNumberProvider {
private static final Logger LOG = LoggerFactory.getLogger(PlVATIdentificationNumberProvider.class);
// ex 1234563218
private static final int NIP_LENGTH = 10;
// ex 123-456-32-18
private static final int FORMATTED_NIP_LENGTH = 13;
private static final int[] CODES = {
101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123,
124, 125, 126, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146,
147, 148, 149, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 163, 164, 165, 166, 167, 168, 169,
171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193,
194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 213, 214, 215, 216,
217, 218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 239,
241, 242, 243, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 257, 258, 259, 261, 262, 263,
264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 285, 286,
287, 288, 289, 291, 292, 293, 294, 295, 296, 297, 298, 301, 302, 311, 312, 313, 314, 315, 316, 317, 318,
319, 321, 322, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342,
343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 355, 356, 357, 358, 359, 361, 362, 363, 364, 365,
366, 367, 368, 369, 371, 372, 373, 374, 375, 376, 377, 378, 379, 381, 382, 383, 384, 385, 386, 387, 388,
389, 391, 392, 393, 394, 395, 396, 397, 398, 399, 411, 412, 413, 414, 415, 416, 417, 418, 419, 421, 422,
423, 424, 425, 426, 427, 428, 429, 431, 432, 433, 434, 435, 436, 437, 438, 439, 441, 442, 443, 444, 445,
446, 447, 448, 449, 451, 452, 453, 454, 455, 456, 457, 458, 459, 461, 462, 463, 464, 465, 466, 467, 468,
469, 471, 472, 473, 474, 475, 476, 477, 478, 479, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 492,
493, 494, 495, 496, 497, 498, 499, 501, 502, 503, 504, 505, 506, 507, 508, 509, 511, 512, 513, 514, 516,
519, 521, 522, 523, 524, 525, 526, 527, 528, 529, 531, 532, 533, 534, 535, 536, 537, 538, 539, 541, 542,
543, 544, 545, 546, 547, 548, 549, 551, 552, 553, 554, 555, 556, 557, 558, 559, 561, 562, 563, 564, 565,
566, 567, 568, 569, 571, 572, 573, 574, 575, 576, 577, 578, 579, 581, 582, 583, 584, 585, 586, 587, 588,
589, 591, 592, 593, 594, 595, 596, 597, 598, 599, 601, 602, 603, 604, 605, 606, 607, 608, 609, 611, 612,
613, 614, 615, 616, 617, 618, 619, 621, 622, 623, 624, 625, 626, 627, 628, 629, 631, 632, 633, 634, 635,
636, 637, 638, 639, 641, 642, 643, 644, 645, 646, 647, 648, 649, 651, 652, 653, 654, 655, 656, 657, 658,
659, 661, 662, 663, 664, 665, 666, 667, 668, 669, 671, 672, 673, 674, 675, 676, 677, 678, 679, 681, 682,
683, 684, 685, 686, 687, 688, 689, 691, 692, 693, 694, 695, 696, 697, 698, 699, 701, 711, 712, 713, 714,
715, 716, 717, 718, 719, 721, 722, 723, 724, 725, 726, 727, 728, 729, 731, 732, 733, 734, 735, 736, 737,
738, 739, 741, 742, 743, 744, 745, 746, 747, 748, 749, 751, 752, 753, 754, 755, 756, 757, 758, 759, 761,
762, 763, 764, 765, 766, 767, 768, 769, 771, 772, 773, 774, 775, 776, 777, 778, 779, 781, 782, 783, 784,
785, 786, 787, 788, 789, 791, 792, 793, 794, 795, 796, 797, 798, 799, 811, 812, 813, 814, 815, 816, 817,
818, 819, 821, 822, 823, 824, 825, 826, 827, 828, 829, 831, 832, 833, 834, 835, 836, 837, 838, 839, 841,
842, 843, 844, 845, 846, 847, 848, 849, 851, 852, 853, 854, 855, 856, 857, 858, 859, 861, 862, 863, 864,
865, 866, 867, 868, 869, 871, 872, 873, 874, 875, 876, 877, 878, 879, 881, 882, 883, 884, 885, 886, 887,
888, 889, 891, 892, 893, 894, 895, 896, 897, 898, 899, 911, 912, 913, 914, 915, 916, 917, 918, 919, 921,
922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 941, 942, 943, 944,
945, 946, 947, 948, 949, 951, 952, 953, 954, 955, 956, 957, 958, 959, 961, 962, 963, 964, 965, 966, 967,
968, 969, 971, 972, 973, 974, 975, 976, 977, 978, 979, 981, 982, 983, 984, 985, 986, 987, 988, 989, 991,
992, 993, 994, 995, 996, 997, 998
};
private static final int[] WEIGHTS = {6, 5, 7, 2, 3, 4, 5, 6, 7};
// 123______8
private static final int SERIAL_NUMBER_SIZE = 6;
private static final int MAX_SERIAL_NUMBER = 999999;
// 1234563_18
private static final int CHECKSUM_CHAR_INDEX = 9;
static final int MODULO11 = 11;
public static final int TEN = 10;
private final BaseProducer baseProducer;
public PlVATIdentificationNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
int checkSum;
String number;
do {
number = generateNumber();
checkSum = calculateChecksum(number);
// numbers with checkSum == 10 are invalid
} while (checkSum == TEN);
return number + checkSum;
}
private String generateNumber() {
String prefix = String.valueOf(CODES[baseProducer.randomInt(CODES.length - 1)]);
String number = StringUtils.leftPad(String.valueOf(baseProducer.randomInt(MAX_SERIAL_NUMBER)), SERIAL_NUMBER_SIZE, "0");
return prefix + number;
}
// TODO: Move to separate module
public static boolean isValid(String nip) {
String normalizedNip = normalizeNip(nip);
if (normalizedNip.length() != NIP_LENGTH) {
return false;
}
try {
int checksum = calculateChecksum(normalizedNip);
return checksum == normalizedNip.charAt(CHECKSUM_CHAR_INDEX) - '0';
} catch (NumberFormatException ex) {
LOG.debug("Invalid nip {}", nip, ex);
return false;
}
}
private static String normalizeNip(String value) {
if (value.length() == FORMATTED_NIP_LENGTH) {
return value.replaceAll("-", "");
}
return value;
}
private static int calculateChecksum(String nip) {
char[] chars = nip.toCharArray();
int sum = 0;
for (int i = 0; i < WEIGHTS.length; i++) {
sum += (chars[i] - '0') * WEIGHTS[i];
}
return sum % MODULO11;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/sk/SkVATIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.company.locale.sk;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.util.StringUtils;
/**
* Slovak VAT Identification Number (known as NIP)
*
* VAT identification number
*/
public class SkVATIdentificationNumberProvider implements VATIdentificationNumberProvider {
private static final Logger LOG = LoggerFactory.getLogger(SkVATIdentificationNumberProvider.class);
// ex 1234563218
private static final int NIP_LENGTH = 10;
// ex 123-456-32-18
private static final int FORMATTED_NIP_LENGTH = 13;
private static final int[] CODES = {
101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123,
124, 125, 126, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 141, 142, 143, 144, 145, 146,
147, 148, 149, 151, 152, 153, 154, 155, 156, 157, 158, 159, 161, 162, 163, 164, 165, 166, 167, 168, 169,
171, 172, 173, 174, 175, 176, 177, 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, 189, 191, 192, 193,
194, 195, 196, 197, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 212, 213, 214, 215, 216,
217, 218, 219, 221, 222, 223, 224, 225, 226, 227, 228, 229, 231, 232, 233, 234, 235, 236, 237, 238, 239,
241, 242, 243, 244, 245, 246, 247, 248, 249, 251, 252, 253, 254, 255, 256, 257, 258, 259, 261, 262, 263,
264, 265, 266, 267, 268, 269, 271, 272, 273, 274, 275, 276, 277, 278, 279, 281, 282, 283, 284, 285, 286,
287, 288, 289, 291, 292, 293, 294, 295, 296, 297, 298, 301, 302, 311, 312, 313, 314, 315, 316, 317, 318,
319, 321, 322, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 334, 335, 336, 337, 338, 339, 341, 342,
343, 344, 345, 346, 347, 348, 349, 351, 352, 353, 354, 355, 356, 357, 358, 359, 361, 362, 363, 364, 365,
366, 367, 368, 369, 371, 372, 373, 374, 375, 376, 377, 378, 379, 381, 382, 383, 384, 385, 386, 387, 388,
389, 391, 392, 393, 394, 395, 396, 397, 398, 399, 411, 412, 413, 414, 415, 416, 417, 418, 419, 421, 422,
423, 424, 425, 426, 427, 428, 429, 431, 432, 433, 434, 435, 436, 437, 438, 439, 441, 442, 443, 444, 445,
446, 447, 448, 449, 451, 452, 453, 454, 455, 456, 457, 458, 459, 461, 462, 463, 464, 465, 466, 467, 468,
469, 471, 472, 473, 474, 475, 476, 477, 478, 479, 481, 482, 483, 484, 485, 486, 487, 488, 489, 491, 492,
493, 494, 495, 496, 497, 498, 499, 501, 502, 503, 504, 505, 506, 507, 508, 509, 511, 512, 513, 514, 516,
519, 521, 522, 523, 524, 525, 526, 527, 528, 529, 531, 532, 533, 534, 535, 536, 537, 538, 539, 541, 542,
543, 544, 545, 546, 547, 548, 549, 551, 552, 553, 554, 555, 556, 557, 558, 559, 561, 562, 563, 564, 565,
566, 567, 568, 569, 571, 572, 573, 574, 575, 576, 577, 578, 579, 581, 582, 583, 584, 585, 586, 587, 588,
589, 591, 592, 593, 594, 595, 596, 597, 598, 599, 601, 602, 603, 604, 605, 606, 607, 608, 609, 611, 612,
613, 614, 615, 616, 617, 618, 619, 621, 622, 623, 624, 625, 626, 627, 628, 629, 631, 632, 633, 634, 635,
636, 637, 638, 639, 641, 642, 643, 644, 645, 646, 647, 648, 649, 651, 652, 653, 654, 655, 656, 657, 658,
659, 661, 662, 663, 664, 665, 666, 667, 668, 669, 671, 672, 673, 674, 675, 676, 677, 678, 679, 681, 682,
683, 684, 685, 686, 687, 688, 689, 691, 692, 693, 694, 695, 696, 697, 698, 699, 701, 711, 712, 713, 714,
715, 716, 717, 718, 719, 721, 722, 723, 724, 725, 726, 727, 728, 729, 731, 732, 733, 734, 735, 736, 737,
738, 739, 741, 742, 743, 744, 745, 746, 747, 748, 749, 751, 752, 753, 754, 755, 756, 757, 758, 759, 761,
762, 763, 764, 765, 766, 767, 768, 769, 771, 772, 773, 774, 775, 776, 777, 778, 779, 781, 782, 783, 784,
785, 786, 787, 788, 789, 791, 792, 793, 794, 795, 796, 797, 798, 799, 811, 812, 813, 814, 815, 816, 817,
818, 819, 821, 822, 823, 824, 825, 826, 827, 828, 829, 831, 832, 833, 834, 835, 836, 837, 838, 839, 841,
842, 843, 844, 845, 846, 847, 848, 849, 851, 852, 853, 854, 855, 856, 857, 858, 859, 861, 862, 863, 864,
865, 866, 867, 868, 869, 871, 872, 873, 874, 875, 876, 877, 878, 879, 881, 882, 883, 884, 885, 886, 887,
888, 889, 891, 892, 893, 894, 895, 896, 897, 898, 899, 911, 912, 913, 914, 915, 916, 917, 918, 919, 921,
922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 941, 942, 943, 944,
945, 946, 947, 948, 949, 951, 952, 953, 954, 955, 956, 957, 958, 959, 961, 962, 963, 964, 965, 966, 967,
968, 969, 971, 972, 973, 974, 975, 976, 977, 978, 979, 981, 982, 983, 984, 985, 986, 987, 988, 989, 991,
992, 993, 994, 995, 996, 997, 998
};
private static final int[] WEIGHTS = {6, 5, 7, 2, 3, 4, 5, 6, 7};
// 123______8
private static final int SERIAL_NUMBER_SIZE = 6;
private static final int MAX_SERIAL_NUMBER = 999999;
// 1234563_18
private static final int CHECKSUM_CHAR_INDEX = 9;
static final int MODULO11 = 11;
public static final int TEN = 10;
private final BaseProducer baseProducer;
public SkVATIdentificationNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
int checkSum;
String number;
do {
number = generateNumber();
checkSum = calculateChecksum(number);
// numbers with checkSum == 10 are invalid
} while (checkSum == TEN);
return number + checkSum;
}
private String generateNumber() {
String prefix = String.valueOf(CODES[baseProducer.randomInt(CODES.length - 1)]);
String number = StringUtils.leftPad(String.valueOf(baseProducer.randomInt(MAX_SERIAL_NUMBER)), SERIAL_NUMBER_SIZE, "0");
return prefix + number;
}
public static boolean isValid(String nip) {
String normalizedNip = normalizeNip(nip);
if (normalizedNip.length() != NIP_LENGTH) {
return false;
}
try {
int checksum = calculateChecksum(normalizedNip);
return checksum == normalizedNip.charAt(CHECKSUM_CHAR_INDEX) - '0';
} catch (NumberFormatException ex) {
LOG.debug("Invalid nip {}", nip, ex);
return false;
}
}
private static String normalizeNip(String value) {
if (value.length() == FORMATTED_NIP_LENGTH) {
return value.replaceAll("-", "");
}
return value;
}
private static int calculateChecksum(String nip) {
char[] chars = nip.toCharArray();
int sum = 0;
for (int i = 0; i < WEIGHTS.length; i++) {
sum += (chars[i] - '0') * WEIGHTS[i];
}
return sum % MODULO11;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/sv/SvVATIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.company.locale.sv;
import java.time.LocalDate;
import java.time.ZoneId;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProvider;
import com.devskiller.jfairy.producer.util.StringUtils;
import static com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties.dateOfBirth;
import static com.devskiller.jfairy.producer.person.locale.sv.SvNationalIdentificationNumberProvider.calculateChecksum;
/**
* Swedish VAT Identification Number (known as Momsnummer in Sweden)
*
* VAT identification number
*/
public class SvVATIdentificationNumberProvider implements VATIdentificationNumberProvider {
private static final int VAT_IDENTIFICATION_NUMBER_LENGTH = 14;
private static final int SOLE_TRADER_UPPER_AGE_LIMIT = 16;
private static final int SOLE_TRADER_LOWER_AGE_LIMIT = 100;
private static final String SE = "SE";
private final BaseProducer baseProducer;
private final DateProducer dateProducer;
private final NationalIdentificationNumberFactory nationalIdentificationNumberFactory;
public SvVATIdentificationNumberProvider(BaseProducer baseProducer, DateProducer dateProducer, NationalIdentificationNumberFactory nationalIdentificationNumberFactory) {
this.baseProducer = baseProducer;
this.dateProducer = dateProducer;
this.nationalIdentificationNumberFactory = nationalIdentificationNumberFactory;
}
@Override
public String get() {
boolean isSoleTrader = baseProducer.trueOrFalse(); // Approximately 50% probability of a company to be of type sole trader (enskild firma)
if (isSoleTrader) {
return generateVatNumberForSoleTrader();
}
int randomGroupNumber = baseProducer.randomElement(GroupNumber.class).getValue();
String randomNumericBetween20And99 = StringUtils.leftPad(String.valueOf(baseProducer.randomBetween(20, 99)), 2, "0");
String organizationNumberWithoutChecksum = randomGroupNumber + baseProducer.randomNumeric(1)
+ randomNumericBetween20And99 + baseProducer.randomNumeric(5);
String organizationNumber = organizationNumberWithoutChecksum + calculateChecksum(organizationNumberWithoutChecksum);
return SE + organizationNumber + "01";
}
private String generateVatNumberForSoleTrader() {
LocalDate now = LocalDate.now(ZoneId.systemDefault());
LocalDate lowerAgeLimit = now.minusYears(SOLE_TRADER_LOWER_AGE_LIMIT);
LocalDate upperAgeLimit = now.minusYears(SOLE_TRADER_UPPER_AGE_LIMIT);
LocalDate dateOfBirth = dateProducer.randomDateBetweenTwoDates(lowerAgeLimit, upperAgeLimit);
NationalIdentificationNumberProvider nationalIdentificationNumberProvider =
nationalIdentificationNumberFactory.produceNationalIdentificationNumberProvider(
dateOfBirth(dateOfBirth));
String personalIdentityNumber = nationalIdentificationNumberProvider.get().getValue();
return SE + personalIdentityNumber.replace("-", "") + "01";
}
public static boolean isValid(String vatIdentificationNumber) {
int length = vatIdentificationNumber.length();
if (length != VAT_IDENTIFICATION_NUMBER_LENGTH) {
return false;
}
int checksum = Integer.parseInt(Character.toString(vatIdentificationNumber.charAt(length - 3)));
int checkDigit = calculateChecksum(vatIdentificationNumber.substring(2, vatIdentificationNumber.length() - 2));
return checkDigit == checksum;
}
/**
* Group number used to determine the first numer in a swedish organization number
* Enum is translated from swedish wiki ...
*/
private enum GroupNumber {
ESTATE(1), // Dödsbon
STATE_OR_COUNTY_OR_MUNICIPALITY_OR_PARISH(2), // Stat, landsting, kommuner, församlingar
FOREIGN_COMPANY(3), // Utländska företag som bedriver näringsverksamhet eller äger fastigheter i Sverige
LIMITED_COMPANY(5), // Aktiebolag
PARTNERSHIP(6), // Enkelt bolag
ECONOMIC_ASSOCIATION(7), // Ekonomiska föreningar
NON_PROFIT_ASSOCIATION_OR_FOUNDATION(8), // Ideella föreningar och stiftelser
TRADING_COMPANY_OR_LIMITED_COMPANY_OR_PARTNERSHIP(9); // Handelsbolag, kommanditbolag och enkla bolag
private final int value;
GroupNumber(int value) {
this.value = value;
}
int getValue() {
return value;
}
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/tr/TrVATIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.company.locale.tr;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
/**
* Turkish VKN (Vergi Kimlik Numarası) generator.
* 10 digits.
* Last digit is a check digit.
*/
public class TrVATIdentificationNumberProvider implements VATIdentificationNumberProvider {
private final BaseProducer baseProducer;
public TrVATIdentificationNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
int[] digits = new int[10];
for (int i = 0; i < 9; i++) {
digits[i] = baseProducer.randomBetween(0, 9);
}
int sum = 0;
for (int i = 0; i < 9; i++) {
int p = (digits[i] + 10 - (i + 1)) % 10;
if (p == 9) {
sum += 9;
} else {
int q = (int) (p * Math.pow(2, 9 - i)) % 9;
sum += q;
}
}
int c1 = (10 - (sum % 10)) % 10;
digits[9] = c1;
StringBuilder sb = new StringBuilder();
for (int digit : digits) {
sb.append(digit);
}
return sb.toString();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/company/locale/zh/ZhVATIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.company.locale.zh;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.RandomGenerator;
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider;
import com.devskiller.jfairy.producer.util.ZhFairyUtil;
/**
* com.devskiller.jfairy.producer.company.locale.zh.ZhVATIdentificationNumberProvider
*
* 6 digit for area location, 9 char (0-9A-Z) for organization code (2 char for business type, 2 char for industry type, 5 char for order number), total 15 digit
*
* @author lhfcws
* @since 2017/3/1
*/
public class ZhVATIdentificationNumberProvider implements VATIdentificationNumberProvider {
private static final BaseProducer BASE_PRODUCER = new BaseProducer(new RandomGenerator());
@Override
public String get() {
StringBuilder vatBuilder = new StringBuilder();
vatBuilder.append(BASE_PRODUCER.randomElement(ZhFairyUtil.PROV_LIST));
vatBuilder.append(ZhFairyUtil.getRandomNumStr(BASE_PRODUCER, ZhFairyUtil.CITY_MAX, 2));
vatBuilder.append(ZhFairyUtil.getRandomNumStr(BASE_PRODUCER, ZhFairyUtil.DISTRICT_MAX, 2));
vatBuilder.append(getChars(9));
return vatBuilder.toString();
}
private char getChar() {
int rndNum = BASE_PRODUCER.randomBetween(0, 35);
if (rndNum < 10) {
return (char) (49 + rndNum);
} else {
return (char) (65 + rndNum - 10);
}
}
private String getChars(int paddingSize) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < paddingSize; i++) {
sb.append(getChar());
}
return sb.toString();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/net/IPNumberProducer.java
================================================
package com.devskiller.jfairy.producer.net;
import com.devskiller.jfairy.producer.BaseProducer;
public class IPNumberProducer {
private static final int MAX = 0xFF;
private final BaseProducer baseProducer;
public IPNumberProducer(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
public String generate() {
return String.format("%s.%s.%s.%s", ipNumberPart(), ipNumberPart(), ipNumberPart(), ipNumberPart());
}
private int ipNumberPart() {
return baseProducer.randomInt(MAX);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/net/NetworkProducer.java
================================================
package com.devskiller.jfairy.producer.net;
/**
* TODO: Add emails
*/
public class NetworkProducer {
private final IPNumberProducer ipNumberProducer;
public NetworkProducer(IPNumberProducer ipNumberProducer) {
this.ipNumberProducer = ipNumberProducer;
}
public String ipAddress() {
return ipNumberProducer.generate();
}
/**
* Generates a faked URL based on the current IP address.
*
* The domain name is derived by mapping the digits of the IP address
* to characters starting from 'a'.
*
* @param isHttps specifies whether to use the {@code https} or {@code http} protocol
* @return a formatted URL string, e.g., "https://abcdefghij.com"
*/
public String url(boolean isHttps) {
String mergedIp = ipAddress().replace(".", "");
StringBuilder domainBuilder = new StringBuilder(mergedIp.length());
for (int i = 0; i < mergedIp.length(); i++) {
char digitChar = mergedIp.charAt(i);
// Character.digit is safer and more predictable than getNumericValue
int numericValue = Character.digit(digitChar, 10);
if (numericValue != -1) {
domainBuilder.append((char) (numericValue + 'a'));
}
}
String protocol = "http";
if (isHttps) {
protocol += "s";
}
return protocol + "://" + domainBuilder + ".com";
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/payment/CreditCard.java
================================================
package com.devskiller.jfairy.producer.payment;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
/**
* Representation of a faked credit card with its essential security and expiry data.
*
* This class holds information about the card vendor, number, CVV code,
* and the expiration date. It is designed as an immutable object.
*
* @author jkubrynski@gmail.com
* @since 2013-11-17
*/
public class CreditCard {
private final String cardVendor;
private final String cardNumber;
private final String cvv;
private final LocalDateTime expiryDate;
public CreditCard(String cardVendor, String cardNumber, String cvv, LocalDateTime expiryDate) {
this.cardVendor = cardVendor;
this.cardNumber = cardNumber;
this.cvv = cvv;
this.expiryDate = expiryDate;
}
public String getVendor() {
return cardVendor;
}
public String getCardNumber() {
return cardNumber;
}
public String getCvv() {
return cvv;
}
public LocalDateTime getExpiryDate() {
return expiryDate;
}
public String getExpiryDateAsString() {
return String.format("%02d/%s", expiryDate.getMonthValue(), DateTimeFormatter.ofPattern("uu").format(expiryDate));
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/payment/CreditCardProvider.java
================================================
package com.devskiller.jfairy.producer.payment;
import java.time.LocalDateTime;
import java.time.Period;
import java.util.function.Supplier;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
public class CreditCardProvider implements Supplier {
private static final Period DEFAULT_VALIDITY = Period.ofMonths(36);
private static final String DATA_KEY = "creditCardPrefixes";
private static final String CARD_VENDOR = "Visa";
private final DataMaster dataMaster;
private final BaseProducer baseProducer;
private final DateProducer dateProducer;
public CreditCardProvider(DataMaster dataMaster, BaseProducer baseProducer, DateProducer dateProducer) {
this.dataMaster = dataMaster;
this.baseProducer = baseProducer;
this.dateProducer = dateProducer;
}
@Override
public CreditCard get() {
String randomNumber = generateNumber();
LocalDateTime expiryDate = dateProducer.randomDateBetweenNowAndFuturePeriod(DEFAULT_VALIDITY);
return new CreditCard(CARD_VENDOR, randomNumber, baseProducer.numerify("###"), expiryDate);
}
private String generateNumber() {
Integer prefix = dataMaster.getValuesOfType(DATA_KEY, CARD_VENDOR, Integer.class);
String stringPrefix = String.valueOf(prefix);
StringBuilder builder = new StringBuilder(stringPrefix);
builder.append("#".repeat(Math.max(0, 15 - stringPrefix.length())));
return completeNumber(baseProducer.numerify(builder.toString()));
}
/**
* Completes a credit card number by calculating and appending a checksum digit.
*
* Uses a variation of the Luhn algorithm where every second digit is doubled.
* If doubling results in a number greater than 9, the digits are summed.
*
* @param creditCardNumber the partial credit card number to complete
* @return the full credit card number including the checksum digit
* @throws IllegalArgumentException if the input contains non-digit characters
*/
private String completeNumber(String creditCardNumber) {
int sum = 0;
for (int i = 0; i < creditCardNumber.length(); i++) {
int n = Character.digit(creditCardNumber.charAt(i), 10);
if (n == -1) {
throw new IllegalArgumentException("Invalid character in credit card number");
}
if (i % 2 == 0) {
n *= 2;
if (n > 9) {
// For n > 9 (e.g., 10-18), digit sum is equivalent to n - 9
n -= 9;
}
}
sum += n;
}
int checksum = (sum * 9) % 10;
return creditCardNumber + checksum;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/payment/DefaultIBANProvider.java
================================================
package com.devskiller.jfairy.producer.payment;
import java.util.List;
import java.util.Optional;
import de.speedbanking.iban.Iban;
import de.speedbanking.iban.IbanRegistry;
import de.speedbanking.iban.RandomIban;
import org.jspecify.annotations.Nullable;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.Country;
/**
* ALPHA: Under development
*/
public class DefaultIBANProvider implements IBANProvider {
protected final DataMaster dataMaster;
protected final BaseProducer baseProducer;
protected String countryCode;
public DefaultIBANProvider(BaseProducer baseProducer,
DataMaster dataMaster,
IBANProperties.Property... properties) {
this.dataMaster = dataMaster;
this.baseProducer = baseProducer;
for (IBANProperties.Property property : properties) {
property.apply(this);
}
}
@Override
public @Nullable IBAN get() {
fillCountryCode();
IbanRegistry reg = IbanRegistry.getByCode(countryCode);
if (reg == null) {
return null;
}
Iban iban = RandomIban.of(countryCode);
return new IBAN(iban.getAccountNumber(),
iban.getCheckDigits(),
iban.getBankCode(),
iban.getBban(),
iban.getCountryCode(),
iban.getNationalCheckDigit(),
iban.toString());
}
@Override
public void fillCountryCode() {
if (countryCode == null) {
List countries = Country.findCountryForLanguage(dataMaster.getLanguage());
Country country = baseProducer.randomElement(countries);
IbanRegistry r = IbanRegistry.getByCode(country.getCode());
countryCode = Optional.ofNullable(r).map(IbanRegistry::name).orElse(null);
}
}
@Override
public void setCountry(String country) {
this.countryCode = country;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/payment/IBAN.java
================================================
package com.devskiller.jfairy.producer.payment;
public class IBAN {
private final String accountNumber;
private final String checkDigit;
private final String bankCode;
private final String bban;
private final String country;
private final String nationalCheckDigit;
private final String ibanNumber;
public IBAN(String accountNumber, String checkDigit, String bankCode, String bban,
String country, String nationalCheckDigit, String ibanNumber) {
this.accountNumber = accountNumber;
this.checkDigit = checkDigit;
this.bankCode = bankCode;
this.bban = bban;
this.country = country;
this.nationalCheckDigit = nationalCheckDigit;
this.ibanNumber = ibanNumber;
}
public String getAccountNumber() {
return accountNumber;
}
public String getCheckDigit() {
return checkDigit;
}
public String getBankCode() {
return bankCode;
}
public String getBban() {
return bban;
}
public String getCountry() {
return country;
}
public String getNationalCheckDigit() {
return nationalCheckDigit;
}
public String getIbanNumber() {
return ibanNumber;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/payment/IBANFactory.java
================================================
package com.devskiller.jfairy.producer.payment;
public interface IBANFactory {
IBANProvider produceIBANProvider(IBANProperties.Property... properties);
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/payment/IBANFactoryImpl.java
================================================
package com.devskiller.jfairy.producer.payment;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
public class IBANFactoryImpl implements IBANFactory {
private final BaseProducer baseProducer;
private final DataMaster dataMaster;
public IBANFactoryImpl(BaseProducer baseProducer, DataMaster dataMaster) {
this.baseProducer = baseProducer;
this.dataMaster = dataMaster;
}
@Override
public IBANProvider produceIBANProvider(IBANProperties.Property... properties) {
return new DefaultIBANProvider(baseProducer, dataMaster, properties);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/payment/IBANProperties.java
================================================
package com.devskiller.jfairy.producer.payment;
import java.util.HashMap;
import java.util.Map;
import de.speedbanking.iban.IbanRegistry;
import com.devskiller.jfairy.producer.util.LanguageCode;
public final class IBANProperties {
private static final Map COUNTRIES = new HashMap<>();
static {
COUNTRIES.put(LanguageCode.PL, IbanRegistry.PL);
COUNTRIES.put(LanguageCode.EN, IbanRegistry.GB);
COUNTRIES.put(LanguageCode.ES, IbanRegistry.ES);
COUNTRIES.put(LanguageCode.FR, IbanRegistry.FR);
COUNTRIES.put(LanguageCode.KA, IbanRegistry.GE);
COUNTRIES.put(LanguageCode.IT, IbanRegistry.IT);
COUNTRIES.put(LanguageCode.DE, IbanRegistry.DE);
COUNTRIES.put(LanguageCode.SK, IbanRegistry.SK);
COUNTRIES.put(LanguageCode.SV, IbanRegistry.SV);
}
private IBANProperties() {
}
public abstract static class Property {
public abstract void apply(IBANProvider provider);
}
public static Property country(final String country) {
return new Property() {
@Override
public void apply(IBANProvider provider) {
provider.setCountry(country);
}
};
}
public static Property language(final String language) {
return new Property() {
@Override
public void apply(IBANProvider provider) {
provider.setCountry(countryFromLanguage(language));
}
};
}
private static String countryFromLanguage(String lang) {
return COUNTRIES.entrySet().stream()
.filter(locale -> locale.getKey().name().equals(lang))
.map(Map.Entry::getValue)
.map(IbanRegistry::name)
.findFirst()
.orElse("PL");
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/payment/IBANProvider.java
================================================
package com.devskiller.jfairy.producer.payment;
import java.util.function.Supplier;
public interface IBANProvider extends Supplier {
@Override
IBAN get();
void fillCountryCode();
void setCountry(String country);
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/AbstractAddressProvider.java
================================================
package com.devskiller.jfairy.producer.person;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
public abstract class AbstractAddressProvider implements AddressProvider {
private static final String POSTAL_CODE_FORMAT = "postal_code";
private static final String CITY = "city";
private static final String STREET = "street";
protected final BaseProducer baseProducer;
protected final DataMaster dataMaster;
public AbstractAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) {
this.baseProducer = baseProducer;
this.dataMaster = dataMaster;
}
public String getCity() {
return dataMaster.getRandomValue(CITY);
}
public String getPostalCode() {
String postalCodeFormat = dataMaster.getRandomValue(POSTAL_CODE_FORMAT);
return baseProducer.numerify(postalCodeFormat);
}
public String getStreet() {
return dataMaster.getRandomValue(STREET);
}
public String getStreetNumber() {
return String.valueOf(baseProducer.randomBetween(1, 199));
}
public String getApartmentNumber() {
return baseProducer.trueOrFalse() ? String.valueOf(baseProducer.randomBetween(1, 350)) : "";
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/Address.java
================================================
package com.devskiller.jfairy.producer.person;
public interface Address {
String getStreet();
String getStreetNumber();
String getApartmentNumber();
String getPostalCode();
String getCity();
String getAddressLine1();
String getAddressLine2();
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/AddressProvider.java
================================================
package com.devskiller.jfairy.producer.person;
import java.util.function.Supplier;
public interface AddressProvider extends Supplier {
@Override
Address get();
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/CompanyEmailProvider.java
================================================
package com.devskiller.jfairy.producer.person;
import java.util.function.Supplier;
import com.devskiller.jfairy.producer.company.Company;
import static com.devskiller.jfairy.producer.util.StringUtils.latinize;
import static com.devskiller.jfairy.producer.util.StringUtils.lowerCase;
public class CompanyEmailProvider implements Supplier {
private final String firstName;
private final String lastName;
private final Company company;
public CompanyEmailProvider(String firstName, String lastName, Company company) {
this.firstName = firstName;
this.lastName = lastName;
this.company = company;
}
@Override
public String get() {
String email = lowerCase(firstName + '.' + lastName + '@' + company.getDomain()).replaceAll(" ", ".");
return latinize(email);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/Country.java
================================================
package com.devskiller.jfairy.producer.person;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
import com.devskiller.jfairy.producer.util.LanguageCode;
public enum Country {
Poland("PL", LanguageCode.PL),
UnitedKingdom("GB", LanguageCode.EN),
Australia("AU", LanguageCode.EN),
USA("US", LanguageCode.EN),
Canada("CA", LanguageCode.EN, LanguageCode.FR),
Spain("ES", LanguageCode.ES),
France("FR", LanguageCode.FR),
Georgia("GE", LanguageCode.KA),
Italy("IT", LanguageCode.IT),
Germany("DE", LanguageCode.DE),
Sweden("SE", LanguageCode.SV),
China("CN", LanguageCode.ZH),
Brazil("BR", LanguageCode.BR),
Slovakia("SK", LanguageCode.SK),
Turkey("TR", LanguageCode.TR);
// ISO 3166 code
private final String code;
// ISO 639-1
@SuppressWarnings("ImmutableEnumChecker")
private final LanguageCode[] languages;
Country(String code, LanguageCode... language) {
this.code = code;
this.languages = language == null ? new LanguageCode[0] : Arrays.copyOf(language, language.length);
}
public String getCode() {
return code;
}
/**
* Returns the primary Java Locale for this country.
*
* This method uses the first associated language code and the country's ISO code
* to create a {@code Locale} using the modern {@code Locale.of()} factory.
*
* @return the primary {@link java.util.Locale} for this country
* @throws IllegalStateException if no languages are associated with the country
*/
public Locale getPrimaryLocale() {
if (languages.length == 0) {
throw new IllegalStateException("No languages defined for country " + name());
}
return new Locale(languages[0].name().toLowerCase(Locale.ROOT), code);
}
public static List findCountryForLanguage(LanguageCode language) {
return Arrays.stream(Country.values())
.filter(country -> List.of(country.languages).contains(language))
.collect(Collectors.toList());
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/DefaultPersonProvider.java
================================================
package com.devskiller.jfairy.producer.person;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.List;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.TimeProvider;
import com.devskiller.jfairy.producer.company.Company;
import com.devskiller.jfairy.producer.company.CompanyFactory;
import static com.devskiller.jfairy.producer.util.StringUtils.latinize;
import static com.devskiller.jfairy.producer.util.StringUtils.lowerCase;
public class DefaultPersonProvider implements PersonProvider {
protected Person.Sex sex;
protected String telephoneNumberFormat;
protected String mobileTelephoneNumberFormat;
protected Integer age;
protected LocalDate dateOfBirth;
protected Company company;
protected Address address;
protected String firstName;
protected String middleName;
protected String lastName;
protected String email;
protected String username;
protected String telephoneNumber;
protected String mobileTelephoneNumber;
protected String password;
protected String companyEmail;
protected String nationalIdentityCardNumber;
protected String nationalIdentificationNumber;
protected String passportNumber;
protected String jobTitle;
protected Country nationality;
protected final DataMaster dataMaster;
protected final DateProducer dateProducer;
protected final BaseProducer baseProducer;
protected final NationalIdentificationNumberFactory nationalIdentificationNumberFactory;
protected final NationalIdentityCardNumberProvider nationalIdentityCardNumberProvider;
protected final AddressProvider addressProvider;
protected final CompanyFactory companyFactory;
protected final TimeProvider timeProvider;
protected final PassportNumberProvider passportNumberProvider;
public DefaultPersonProvider(DataMaster dataMaster,
DateProducer dateProducer,
BaseProducer baseProducer,
AddressProvider addressProvider,
NationalIdentificationNumberFactory nationalIdentificationNumberFactory,
NationalIdentityCardNumberProvider nationalIdentityCardNumberProvider,
PassportNumberProvider passportNumberProvider,
TimeProvider timeProvider,
CompanyFactory companyFactory,
PersonProperties.PersonProperty... personProperties) {
this.dataMaster = dataMaster;
this.dateProducer = dateProducer;
this.baseProducer = baseProducer;
this.nationalIdentificationNumberFactory = nationalIdentificationNumberFactory;
this.nationalIdentityCardNumberProvider = nationalIdentityCardNumberProvider;
this.addressProvider = addressProvider;
this.passportNumberProvider = passportNumberProvider;
this.companyFactory = companyFactory;
this.timeProvider = timeProvider;
for (PersonProperties.PersonProperty personProperty : personProperties) {
personProperty.apply(this, baseProducer);
}
}
@Override
public Person get() {
generateSex();
generateCompany();
generateFirstName();
generateMiddleName();
generateLastName();
generateEmail();
generateUsername();
generateTelephoneNumber();
generateAge();
generateDateOfBirth();
generateCompanyEmail();
generatePassword();
generateNationalIdentityCardNumber();
generateNationalIdentificationNumber();
generatePassportNumber();
generateAddress();
generateJobTitle();
generateNationality();
generateMobileTelephoneNumber();
return new Person(firstName, middleName, lastName, address, email,
username, password, sex, telephoneNumber, mobileTelephoneNumber, dateOfBirth, age,
nationalIdentityCardNumber, nationalIdentificationNumber, passportNumber,
company, companyEmail, jobTitle, nationality);
}
@Override
public void generateSex() {
if (sex != null) {
return;
}
sex = baseProducer.trueOrFalse() ? Person.Sex.MALE : Person.Sex.FEMALE;
}
@Override
public void generateCompany() {
if (company != null) {
return;
}
company = companyFactory.produceCompany().get();
}
@Override
public void generateFirstName() {
if (firstName != null) {
return;
}
firstName = dataMaster.getValuesOfType(FIRST_NAME, sex.name(), String.class);
}
@Override
public void generateMiddleName() {
if (middleName != null) {
return;
}
middleName = baseProducer.trueOrFalse() ? dataMaster.getValuesOfType(FIRST_NAME, sex.name(), String.class) : "";
}
@Override
public void generateLastName() {
if (lastName != null) {
return;
}
lastName = dataMaster.getValuesOfType(LAST_NAME, sex.name(), String.class);
}
@Override
public void generateEmail() {
if (email != null) {
return;
}
EmailProvider emailProvider = new EmailProvider(dataMaster, baseProducer, firstName, lastName);
email = emailProvider.get();
}
@Override
public void generateUsername() {
if (username != null) {
return;
}
if (baseProducer.trueOrFalse()) {
username = lowerCase(latinize(firstName.substring(0, 1) + lastName));
} else {
username = lowerCase(latinize(firstName + lastName.substring(0, 1)));
}
}
@Override
public void generateTelephoneNumber() {
if (telephoneNumber != null) {
return;
}
if (telephoneNumberFormat == null) {
telephoneNumberFormat = dataMaster.getRandomValue(TELEPHONE_NUMBER_FORMATS);
}
telephoneNumber = baseProducer.numerify(telephoneNumberFormat);
}
@Override
public void generateMobileTelephoneNumber() {
if (mobileTelephoneNumber != null) {
return;
}
if (mobileTelephoneNumberFormat == null) {
mobileTelephoneNumberFormat = dataMaster.getRandomValue(TELEPHONE_NUMBER_FORMATS);
}
mobileTelephoneNumber = baseProducer.numerify(mobileTelephoneNumberFormat);
}
@Override
public void generateAge() {
if (dateOfBirth != null) {
age = (int) ChronoUnit.YEARS.between(dateOfBirth, LocalDateTime.now(ZoneId.systemDefault()));
} else {
if (age != null) {
return;
}
age = baseProducer.randomBetween(MIN_AGE, MAX_AGE);
}
}
@Override
public void generateDateOfBirth() {
if (dateOfBirth != null) {
return;
}
LocalDate maxDate = timeProvider.getCurrentDate().minusYears(age);
LocalDate minDate = maxDate.minusYears(1).plusDays(1);
dateOfBirth = dateProducer.randomDateBetweenTwoDates(minDate, maxDate);
}
@Override
public void generateCompanyEmail() {
if (companyEmail != null) {
return;
}
CompanyEmailProvider companyEmailProvider = new CompanyEmailProvider(firstName, lastName, company);
companyEmail = companyEmailProvider.get();
}
@Override
public void generatePassword() {
if (password != null) {
return;
}
StringBuilder passwordPattern = new StringBuilder();
for (int i = baseProducer.randomBetween(6, 14); i > 0; i--) {
passwordPattern.append(baseProducer.randomElement("?", "#"));
}
password = baseProducer.bothify(passwordPattern.toString());
}
@Override
public void generateNationalIdentityCardNumber() {
if (nationalIdentityCardNumber != null) {
return;
}
nationalIdentityCardNumber = nationalIdentityCardNumberProvider.get();
}
@Override
public void generateNationalIdentificationNumber() {
if (nationalIdentificationNumber != null) {
return;
}
nationalIdentificationNumber = nationalIdentificationNumberFactory.produceNationalIdentificationNumberProvider(
NationalIdentificationNumberProperties.dateOfBirth(dateOfBirth),
NationalIdentificationNumberProperties.sex(sex)).get().getValue();
}
@Override
public void generateAddress() {
if (address != null) {
return;
}
address = addressProvider.get();
}
@Override
public void generatePassportNumber() {
if (passportNumber != null) {
return;
}
passportNumber = passportNumberProvider.get();
}
@Override
public void generateJobTitle() {
if (jobTitle != null) {
return;
}
jobTitle = dataMaster.getRandomValue(JOB_TITLE);
}
private void generateNationality() {
List countries = Country.findCountryForLanguage(dataMaster.getLanguage());
nationality = !countries.isEmpty() ? baseProducer.randomElement(countries) : Country.UnitedKingdom;
}
@Override
public void setTelephoneNumberFormat(String telephoneFormat) {
telephoneNumberFormat = telephoneFormat;
}
@Override
public void setMobileTelephoneNumberFormat(String mobileTelephoneNumberFormat) {
this.mobileTelephoneNumberFormat = mobileTelephoneNumberFormat;
}
@Override
public void setSex(Person.Sex sex) {
this.sex = sex;
}
@Override
public void setAge(int age) {
this.age = age;
}
@Override
public void setCompany(Company company) {
this.company = company;
}
@Override
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@Override
public void setMiddleName(String middleName) {
this.middleName = middleName;
}
@Override
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public void setEmail(String email) {
this.email = email;
}
@Override
public void setUsername(String username) {
this.username = username;
}
@Override
public void setTelephoneNumber(String telephoneNumber) {
this.telephoneNumber = telephoneNumber;
}
@Override
public void setMobileTelephoneNumber(String telephoneNumber) {
this.telephoneNumber = telephoneNumber;
}
@Override
public void setDateOfBirth(LocalDate dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
@Override
public void setPassword(String password) {
this.password = password;
}
@Override
public void setAddress(Address address) {
this.address = address;
}
@Override
public void setCompanyEmail(String companyEmail) {
this.companyEmail = companyEmail;
}
@Override
public void setNationalIdentityCardNumber(String nationalIdentityCardNumber) {
this.nationalIdentityCardNumber = nationalIdentityCardNumber;
}
@Override
public void setNationalIdentificationNumber(String nationalIdentificationNumber) {
this.nationalIdentificationNumber = nationalIdentificationNumber;
}
@Override
public void setPassportNumber(String passportNumber) {
this.passportNumber = passportNumber;
}
@Override
public void setJobTitle(String jobTitle) {
this.jobTitle = jobTitle;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/EmailProvider.java
================================================
package com.devskiller.jfairy.producer.person;
import java.util.function.Supplier;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.util.StringUtils;
import static com.devskiller.jfairy.producer.person.PersonProvider.PERSONAL_EMAIL;
import static com.devskiller.jfairy.producer.util.StringUtils.latinize;
import static com.devskiller.jfairy.producer.util.StringUtils.lowerCase;
public class EmailProvider implements Supplier {
private final DataMaster dataMaster;
private final BaseProducer baseProducer;
private final String firstName;
private final String lastName;
public EmailProvider(DataMaster dataMaster, BaseProducer baseProducer,
String firstName, String lastName) {
this.dataMaster = dataMaster;
this.baseProducer = baseProducer;
this.firstName = firstName;
this.lastName = lastName;
}
@Override
public String get() {
String prefix = switch (baseProducer.randomBetween(1, 3)) {
case 1 -> StringUtils.replace(firstName + lastName, " ", "");
case 2 -> StringUtils.replace(firstName + "." + lastName, " ", ".");
case 3 -> StringUtils.replace(lastName, " ", "");
default -> throw new IllegalStateException("Unexpected value: " + baseProducer.randomBetween(1, 3));
};
String email = lowerCase(prefix + '@' + dataMaster.getRandomValue(PERSONAL_EMAIL));
return latinize(email);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/NationalIdentificationNumber.java
================================================
package com.devskiller.jfairy.producer.person;
public class NationalIdentificationNumber {
private final String value;
public NationalIdentificationNumber(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/NationalIdentificationNumberFactory.java
================================================
package com.devskiller.jfairy.producer.person;
public interface NationalIdentificationNumberFactory {
NationalIdentificationNumberProvider produceNationalIdentificationNumberProvider(NationalIdentificationNumberProperties.Property... properties);
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/NationalIdentificationNumberProperties.java
================================================
package com.devskiller.jfairy.producer.person;
import java.time.LocalDate;
public final class NationalIdentificationNumberProperties {
private NationalIdentificationNumberProperties() {
}
public abstract static class Property {
public abstract void apply(NationalIdentificationNumberProvider nationalIdentificationNumberProvider);
}
public static Property dateOfBirth(final LocalDate dateOfBirth) {
return new Property() {
@Override
public void apply(NationalIdentificationNumberProvider nationalIdentificationNumberProvider) {
nationalIdentificationNumberProvider.setIssueDate(dateOfBirth);
}
};
}
public static Property sex(final Person.Sex sex) {
return new Property() {
@Override
public void apply(NationalIdentificationNumberProvider nationalIdentificationNumberProvider) {
nationalIdentificationNumberProvider.setSex(sex);
}
};
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/NationalIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person;
import java.time.LocalDate;
import java.util.function.Supplier;
public interface NationalIdentificationNumberProvider extends Supplier {
@Override
NationalIdentificationNumber get();
void setIssueDate(LocalDate dateOfBirth);
void setSex(Person.Sex sex);
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/NationalIdentityCardNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person;
import java.util.function.Supplier;
public interface NationalIdentityCardNumberProvider extends Supplier {
@Override
String get();
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/PassportNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person;
import java.util.function.Supplier;
/**
* Provider for generating localized or random passport numbers.
*
* This functional interface extends {@link Supplier} to provide a standardized
* way of retrieving passport identification strings for different locales.
*
* @author Olga Maciaszek-Sharma
* @since 21.02.15
*/
public interface PassportNumberProvider extends Supplier {
@Override
String get();
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/Person.java
================================================
package com.devskiller.jfairy.producer.person;
import java.time.LocalDate;
import com.devskiller.jfairy.producer.company.Company;
import static com.devskiller.jfairy.producer.person.Person.Sex.FEMALE;
import static com.devskiller.jfairy.producer.person.Person.Sex.MALE;
public class Person {
public enum Sex {
MALE, FEMALE
}
private final Address address;
private final String firstName;
private final String middleName;
private final String lastName;
private final String email;
private final String username;
private final String password;
private final Sex sex;
private final String telephoneNumber;
private final String mobileTelephoneNumber;
private final LocalDate dateOfBirth;
private final Integer age;
private final Company company;
private final String companyEmail;
private final String nationalIdentityCardNumber;
private final String nationalIdentificationNumber;
private final String passportNumber;
private final String jobTitle;
private final Country nationality;
public Person(String firstName, String middleName, String lastName, Address address, String email, String username,
String password, Sex sex, String telephoneNumber, String mobileTelephoneNumber,
LocalDate dateOfBirth, Integer age, String nationalIdentityCardNumber,
String nationalIdentificationNumber, String passportNumber, Company company, String companyEmail,
String jobTitle, Country nationality) {
this.nationalIdentityCardNumber = nationalIdentityCardNumber;
this.address = address;
this.firstName = firstName;
this.middleName = middleName;
this.lastName = lastName;
this.email = email;
this.username = username;
this.password = password;
this.sex = sex;
this.telephoneNumber = telephoneNumber;
this.mobileTelephoneNumber = mobileTelephoneNumber;
this.dateOfBirth = dateOfBirth;
this.age = age;
this.nationalIdentificationNumber = nationalIdentificationNumber;
this.company = company;
this.companyEmail = companyEmail;
this.passportNumber = passportNumber;
this.jobTitle = jobTitle;
this.nationality = nationality;
}
public String getNationalIdentificationNumber() {
return nationalIdentificationNumber;
}
public String getFirstName() {
return firstName;
}
public String getMiddleName() {
return middleName;
}
public String getLastName() {
return lastName;
}
public String getEmail() {
return email;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public String getFullName() {
return firstName + " " + lastName;
}
public boolean isMale() {
return sex == MALE;
}
public boolean isFemale() {
return sex == FEMALE;
}
public Sex getSex() {
return sex;
}
public String getTelephoneNumber() {
return telephoneNumber;
}
public String getMobileTelephoneNumber() {
return mobileTelephoneNumber;
}
public LocalDate getDateOfBirth() {
return dateOfBirth;
}
public int getAge() {
return age;
}
public String getNationalIdentityCardNumber() {
return nationalIdentityCardNumber;
}
public String getCompanyEmail() {
return companyEmail;
}
public Address getAddress() {
return address;
}
public Company getCompany() {
return company;
}
public String getPassportNumber() {
return passportNumber;
}
public String getJobTitle() {
return jobTitle;
}
public Country getNationality() {
return nationality;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/PersonFactory.java
================================================
package com.devskiller.jfairy.producer.person;
/**
* Created by Jakub Kubrynski / 2014-05-26
*/
public interface PersonFactory {
PersonProvider producePersonProvider(PersonProperties.PersonProperty... personProperties);
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/PersonFactoryImpl.java
================================================
package com.devskiller.jfairy.producer.person;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.TimeProvider;
import com.devskiller.jfairy.producer.company.CompanyFactory;
public class PersonFactoryImpl implements PersonFactory {
private final DataMaster dataMaster;
private final DateProducer dateProducer;
private final BaseProducer baseProducer;
private final AddressProvider addressProvider;
private final NationalIdentificationNumberFactory nationalIdentificationNumberFactory;
private final NationalIdentityCardNumberProvider nationalIdentityCardNumberProvider;
private final PassportNumberProvider passportNumberProvider;
private final TimeProvider timeProvider;
private final CompanyFactory companyFactory;
public PersonFactoryImpl(DataMaster dataMaster,
DateProducer dateProducer,
BaseProducer baseProducer,
AddressProvider addressProvider,
NationalIdentificationNumberFactory nationalIdentificationNumberFactory,
NationalIdentityCardNumberProvider nationalIdentityCardNumberProvider,
PassportNumberProvider passportNumberProvider,
TimeProvider timeProvider,
CompanyFactory companyFactory) {
this.dataMaster = dataMaster;
this.dateProducer = dateProducer;
this.baseProducer = baseProducer;
this.addressProvider = addressProvider;
this.nationalIdentificationNumberFactory = nationalIdentificationNumberFactory;
this.nationalIdentityCardNumberProvider = nationalIdentityCardNumberProvider;
this.passportNumberProvider = passportNumberProvider;
this.timeProvider = timeProvider;
this.companyFactory = companyFactory;
}
@Override
public PersonProvider producePersonProvider(PersonProperties.PersonProperty... personProperties) {
return new DefaultPersonProvider(dataMaster, dateProducer, baseProducer, addressProvider,
nationalIdentificationNumberFactory, nationalIdentityCardNumberProvider,
passportNumberProvider, timeProvider, companyFactory, personProperties);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/PersonProperties.java
================================================
package com.devskiller.jfairy.producer.person;
import java.time.LocalDate;
import java.util.Optional;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.company.Company;
/**
* Static factory for creating {@link PersonProperty} instances to customize person generation.
*
* This class provides a fluent interface to define specific attributes like age,
* gender, or contact details that should be applied during the person creation process.
*
* @author jkubrynski@gmail.com
* @since 2013-11-16
*/
public final class PersonProperties {
private static Optional minimumAge = Optional.empty();
private static Optional maximumAge = Optional.empty();
private PersonProperties() {
}
public abstract static class PersonProperty {
public abstract void apply(PersonProvider person, BaseProducer baseProducer);
}
public static PersonProperty male() {
return new PersonProperty() {
@Override
public void apply(PersonProvider person, BaseProducer baseProducer) {
person.setSex(Person.Sex.MALE);
}
};
}
public static PersonProperty female() {
return new PersonProperty() {
@Override
public void apply(PersonProvider person, BaseProducer baseProducer) {
person.setSex(Person.Sex.FEMALE);
}
};
}
public static PersonProperty ageBetween(final int minAge, final int maxAge) {
return new PersonProperty() {
@Override
public void apply(PersonProvider person, BaseProducer baseProducer) {
person.setAge(baseProducer.randomBetween(minAge, maxAge));
minimumAge = Optional.of(minAge);
maximumAge = Optional.of(maxAge);
}
};
}
public static PersonProperty minAge(final int minAge) {
minimumAge = Optional.of(minAge);
return ageBetween(minAge, maximumAge.orElse(PersonProvider.MAX_AGE));
}
public static PersonProperty maxAge(final int maxAge) {
maximumAge = Optional.of(maxAge);
return ageBetween(minimumAge.orElse(PersonProvider.MIN_AGE), maxAge);
}
public static PersonProperty telephoneFormat(final String telephoneFormat) {
return new PersonProperty() {
@Override
public void apply(PersonProvider person, BaseProducer baseProducer) {
person.setTelephoneNumberFormat(telephoneFormat);
}
};
}
public static PersonProperty mobileTelephoneFormat(final String mobileTelephoneNumberFormat) {
return new PersonProperty() {
@Override
public void apply(PersonProvider person, BaseProducer baseProducer) {
person.setMobileTelephoneNumberFormat(mobileTelephoneNumberFormat);
}
};
}
public static PersonProperty withCompany(final Company company) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setCompany(company);
}
};
}
public static PersonProperty withAddress(final Address address) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setAddress(address);
}
};
}
public static PersonProperty withFirstName(final String firstName) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setFirstName(firstName);
}
};
}
public static PersonProperty withMiddleName(final String middleName) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setMiddleName(middleName);
}
};
}
public static PersonProperty withLastName(final String lastName) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setLastName(lastName);
}
};
}
public static PersonProperty withEmail(final String email) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setEmail(email);
}
};
}
public static PersonProperty withUsername(final String username) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setUsername(username);
}
};
}
public static PersonProperty withTelephoneNumber(final String telephoneNumber) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setTelephoneNumber(telephoneNumber);
}
};
}
public static PersonProperty withMobileTelephoneNumber(final String mobileTelephoneNumber) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setMobileTelephoneNumber(mobileTelephoneNumber);
}
};
}
public static PersonProperty withDateOfBirth(final LocalDate dateOfBirth) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setDateOfBirth(dateOfBirth);
}
};
}
public static PersonProperty withAge(final Integer age) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setAge(age);
}
};
}
public static PersonProperty withPassword(final String password) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setPassword(password);
}
};
}
public static PersonProperty withCompanyEmail(final String companyEmail) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setCompanyEmail(companyEmail);
}
};
}
public static PersonProperty withNationalIdentityCardNumber(final String nationalIdentityCardNumber) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setNationalIdentityCardNumber(nationalIdentityCardNumber);
}
};
}
public static PersonProperty withNationalIdentificationNumber(final String nationalIdentificationNumber) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setNationalIdentificationNumber(nationalIdentificationNumber);
}
};
}
public static PersonProperty withPassportNumber(final String passportNumber) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setPassportNumber(passportNumber);
}
};
}
public static PersonProperty withJobTitle(final String jobTitle) {
return new PersonProperty() {
@Override
public void apply(PersonProvider personProvider, BaseProducer baseProducer) {
personProvider.setJobTitle(jobTitle);
}
};
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/PersonProvider.java
================================================
package com.devskiller.jfairy.producer.person;
import java.time.LocalDate;
import java.util.function.Supplier;
import com.devskiller.jfairy.producer.company.Company;
public interface PersonProvider extends Supplier {
int MIN_AGE = 1;
int MAX_AGE = 100;
String FIRST_NAME = "firstNames";
String LAST_NAME = "lastNames";
String PERSONAL_EMAIL = "personalEmails";
String TELEPHONE_NUMBER_FORMATS = "telephone_number_formats";
String JOB_TITLE = "jobTitles";
@Override
Person get();
void generateSex();
void generateCompany();
void generateFirstName();
void generateMiddleName();
void generateLastName();
void generateEmail();
void generateUsername();
void generateTelephoneNumber();
void generateMobileTelephoneNumber();
void generateAge();
void generateDateOfBirth();
void generateCompanyEmail();
void generatePassword();
void generateJobTitle();
void generateNationalIdentityCardNumber();
void generateNationalIdentificationNumber();
void generateAddress();
void generatePassportNumber();
void setTelephoneNumberFormat(String telephoneFormat);
void setMobileTelephoneNumberFormat(String telephoneFormat);
void setSex(Person.Sex sex);
void setAge(int age);
void setCompany(Company company);
void setFirstName(String firstName);
void setMiddleName(String middleName);
void setLastName(String lastName);
void setEmail(String email);
void setUsername(String username);
void setTelephoneNumber(String telephoneNumber);
void setMobileTelephoneNumber(String telephoneNumber);
void setDateOfBirth(LocalDate dateOfBirth);
void setPassword(String password);
void setAddress(Address address);
void setCompanyEmail(String companyEmail);
void setNationalIdentityCardNumber(String nationalIdentityCardNumber);
void setNationalIdentificationNumber(String nationalIdentificationNumber);
void setPassportNumber(String passportNumber);
void setJobTitle(String jobTitle);
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/AbstractAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale;
import com.devskiller.jfairy.producer.person.Address;
/**
* A base of all addresses. It carries all needed fields, but leaves most of the formatting to subclasses.
*/
public abstract class AbstractAddress implements Address {
protected final String street;
protected final String streetNumber;
protected final String apartmentNumber;
protected final String postalCode;
protected final String city;
public AbstractAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) {
this.street = street;
this.streetNumber = streetNumber;
this.postalCode = postalCode;
this.city = city;
this.apartmentNumber = apartmentNumber;
}
@Override
public String getStreet() {
return street;
}
@Override
public String getStreetNumber() {
return streetNumber;
}
@Override
public String getApartmentNumber() {
return apartmentNumber;
}
@Override
public String getPostalCode() {
return postalCode;
}
@Override
public String getCity() {
return city;
}
@Override
public abstract String getAddressLine1();
@Override
public abstract String getAddressLine2();
@Override
public String toString() {
return getAddressLine1() + System.lineSeparator() + getAddressLine2();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/ContinentalAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale;
import static com.devskiller.jfairy.producer.util.StringUtils.isNotBlank;
/**
* An address format typical for European countries but the UK and ex-Soviet union.
*/
public abstract class ContinentalAddress extends AbstractAddress {
public ContinentalAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) {
super(street, streetNumber, apartmentNumber, postalCode, city);
}
protected abstract String getApartmentMark();
protected String getStreetNumberSeparator() {
return " ";
}
@Override
public String getAddressLine1() {
return street + getStreetNumberSeparator() + streetNumber
+ (isNotBlank(apartmentNumber) ? getApartmentMark() + apartmentNumber : "");
}
@Override
public String getAddressLine2() {
return postalCode + " " + city;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/NoNationalIdentificationNumberFactory.java
================================================
package com.devskiller.jfairy.producer.person.locale;
import java.time.LocalDate;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumber;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProvider;
import com.devskiller.jfairy.producer.person.Person;
public class NoNationalIdentificationNumberFactory implements NationalIdentificationNumberFactory {
@Override
public NoNationalIdentificationNumberProvider produceNationalIdentificationNumberProvider(NationalIdentificationNumberProperties.Property... properties) {
return new NoNationalIdentificationNumberProvider();
}
public static class NoNationalIdentificationNumberProvider implements NationalIdentificationNumberProvider {
@Override
public NationalIdentificationNumber get() {
return new NationalIdentificationNumber("");
}
@Override
public void setIssueDate(LocalDate dateOfBirth) {
}
@Override
public void setSex(Person.Sex sex) {
}
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/br/BrAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale.br;
import com.devskiller.jfairy.producer.person.locale.ContinentalAddress;
public class BrAddress extends ContinentalAddress {
public BrAddress(String streetNumber, String street, String apartmentNumber, String postalCode, String city) {
super(street, streetNumber, apartmentNumber, postalCode, city);
}
@Override
protected String getStreetNumberSeparator() {
return ", ";
}
@Override
protected String getApartmentMark() {
return " APT ";
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/br/BrAddressProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.br;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.AbstractAddressProvider;
public class BrAddressProvider extends AbstractAddressProvider {
public BrAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) {
super(dataMaster, baseProducer);
}
@Override
public BrAddress get() {
return new BrAddress(getStreetNumber(), getStreet(), getApartmentNumber(),
getPostalCode(), getCity());
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/br/BrNationalIdentityCardNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.br;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider;
/**
* Brazilian CPF (Cadastro de Pessoas Físicas) generator.
*/
public class BrNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider {
private final BaseProducer baseProducer;
public BrNationalIdentityCardNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
int[] digits = new int[9];
for (int i = 0; i < 9; i++) {
digits[i] = baseProducer.randomBetween(0, 9);
}
int d1 = calculateCheckDigit(digits, 9);
int d2 = calculateCheckDigit(digits, d1, 10);
return String.format("%d%d%d.%d%d%d.%d%d%d-%d%d",
digits[0], digits[1], digits[2],
digits[3], digits[4], digits[5],
digits[6], digits[7], digits[8],
d1, d2);
}
private int calculateCheckDigit(int[] digits, int length) {
int sum = 0;
for (int i = 0; i < length; i++) {
sum += digits[i] * (length + 1 - i);
}
int remainder = 11 - (sum % 11);
return remainder >= 10 ? 0 : remainder;
}
private int calculateCheckDigit(int[] digits, int previousDigit, int length) {
int sum = 0;
for (int i = 0; i < digits.length; i++) {
sum += digits[i] * (length + 1 - i);
}
sum += previousDigit * 2;
int remainder = 11 - (sum % 11);
return remainder >= 10 ? 0 : remainder;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/br/BrPassportNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.br;
import com.devskiller.jfairy.producer.person.PassportNumberProvider;
public class BrPassportNumberProvider implements PassportNumberProvider {
@Override
public String get() {
return "BR" + String.format("%07d", (int) (Math.random() * 10000000));
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/de/DeAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale.de;
import com.devskiller.jfairy.producer.person.locale.ContinentalAddress;
public class DeAddress extends ContinentalAddress {
public DeAddress(String streetNumber, String street, String apartmentNumber, String city, String postalCode) {
super(street, streetNumber, apartmentNumber, postalCode, city);
}
@Override
protected String getApartmentMark() {
return ", ";
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/de/DeAddressProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.de;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.AbstractAddressProvider;
public class DeAddressProvider extends AbstractAddressProvider {
public DeAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) {
super(dataMaster, baseProducer);
}
@Override
public DeAddress get() {
return new DeAddress(getStreetNumber(), getStreet(), getApartmentNumber(),
getCity(), getPostalCode());
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/de/DeNationalIdentityCardNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.de;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider;
/**
* German Identity Card (known as Personalausweis)
*
* German identity card
*
* @author Roland Weisleder
*/
public class DeNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider {
private static final String[] ID_CARD_TYPE_LETTERS = {"L", "M", "N", "P", "R", "T", "V", "W", "X", "Y"};
private static final String VALID_NUMBER_PATTERN = "^[LMNPRTVWXY][0-9]{8}$";
private final BaseProducer baseProducer;
public DeNationalIdentityCardNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
return baseProducer.randomElement(ID_CARD_TYPE_LETTERS) + baseProducer.randomNumeric(8);
}
public boolean isValid(String nationalIdentityCardNumber) {
return nationalIdentityCardNumber.matches(VALID_NUMBER_PATTERN);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/de/DePassportNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.de;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.PassportNumberProvider;
/**
* German passport (known as Reisepass)
*
* German passport
*
* @author Roland Weisleder
*/
public class DePassportNumberProvider implements PassportNumberProvider {
private static final String[] PASSPORT_TYPE_LETTERS = {"C", "F", "G", "H", "J", "K"};
private static final String VALID_NUMBER_PATTERN = "^[CFGHJK][0-9]{8}$";
private final BaseProducer baseProducer;
public DePassportNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
return baseProducer.randomElement(PASSPORT_TYPE_LETTERS) + baseProducer.randomNumeric(8);
}
public boolean isValid(String passportNumber) {
return passportNumber.matches(VALID_NUMBER_PATTERN);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/en/EnAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale.en;
import com.devskiller.jfairy.producer.person.locale.AbstractAddress;
import static com.devskiller.jfairy.producer.util.StringUtils.isNotBlank;
public class EnAddress extends AbstractAddress {
public EnAddress(String streetNumber, String street, String apartmentNumber, String city, String postalCode) {
super(street, streetNumber, apartmentNumber, postalCode, city);
}
@Override
public String getAddressLine1() {
return streetNumber + " " + street
+ (isNotBlank(apartmentNumber) ? " APT " + apartmentNumber : "");
}
@Override
public String getAddressLine2() {
return city + " " + postalCode;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/en/EnAddressProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.en;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.AbstractAddressProvider;
public class EnAddressProvider extends AbstractAddressProvider {
public EnAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) {
super(dataMaster, baseProducer);
}
@Override
public EnAddress get() {
return new EnAddress(getStreetNumber(), getStreet(), getApartmentNumber(),
getCity(), getPostalCode());
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/en/EnNationalIdentityCardNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.en;
import java.util.List;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.util.StringUtils;
/**
* English National Identity Card Number (known as Social Security Number)
*
* @author Olga Maciaszek-Sharma
* @since 15.03.15
*/
public class EnNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider {
private static final int SSN_LENGTH = 11;
private static final int AREA_NUMBER_LENGTH = 3;
private static final int GROUP_NUMBER_LENGTH = 2;
private static final int GROUP_NUMBER_INDEX = 4;
private static final List HYPHEN_INDEXES = List.of(3, 6);
private static final int SERIAL_NUMBER_LENGTH = 4;
private static final int SERIAL_NUMBER_INDEX = 7;
private final BaseProducer baseProducer;
public EnNationalIdentityCardNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
char[] ssn = new char[SSN_LENGTH];
fillHyphens(ssn);
fillAreaNumber(ssn);
fillGroupNumber(ssn);
fillSerialNumber(ssn);
return String.valueOf(ssn);
}
private void fillHyphens(char[] ssn) {
for (Integer index : HYPHEN_INDEXES) {
ssn[index] = '-';
}
}
private void fillAreaNumber(char[] ssn) {
String number;
do {
number = String.valueOf(baseProducer.randomBetween(1, 899));
} while ("666".equals(number));
char[] digits = StringUtils.leftPad(number, AREA_NUMBER_LENGTH, "0").toCharArray();
System.arraycopy(digits, 0, ssn, 0, digits.length);
}
private void fillGroupNumber(char[] ssn) {
String number = String.valueOf(baseProducer.randomBetween(1, 99));
char[] digits = StringUtils.leftPad(number, GROUP_NUMBER_LENGTH, "0").toCharArray();
System.arraycopy(digits, 0, ssn, GROUP_NUMBER_INDEX, digits.length);
}
private void fillSerialNumber(char[] ssn) {
String number = String.valueOf(baseProducer.randomBetween(1, 9999));
char[] digits = StringUtils.leftPad(number, SERIAL_NUMBER_LENGTH, "0").toCharArray();
System.arraycopy(digits, 0, ssn, SERIAL_NUMBER_INDEX, digits.length);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/en/EnPassportNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.en;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.PassportNumberProvider;
public class EnPassportNumberProvider implements PassportNumberProvider {
private final BaseProducer baseProducer;
public EnPassportNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
return baseProducer.randomAlphanumeric(9);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/es/EsAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale.es;
import com.devskiller.jfairy.producer.person.locale.ContinentalAddress;
public class EsAddress extends ContinentalAddress {
public EsAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) {
super(street, streetNumber, apartmentNumber, postalCode, city);
}
@Override
protected String getStreetNumberSeparator() {
return ", ";
}
@Override
public String getApartmentMark() {
return " ";
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/es/EsAddressProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.es;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.AbstractAddressProvider;
public class EsAddressProvider extends AbstractAddressProvider {
public EsAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) {
super(dataMaster, baseProducer);
}
@Override
public EsAddress get() {
return new EsAddress(getStreet(), getStreetNumber(), getApartmentNumber(),
getPostalCode(), getCity());
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/es/EsNationalIdentityCardNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.es;
import java.util.Locale;
import java.util.regex.Pattern;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.Country;
import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider;
/**
* Spanish National Identity Card Number (known as Documento Nacional de Identidad or DNI)
*
* @author graux
* @since 26/04/2015
* Documento Nacional de Identidad (DNI) Español
*/
public class EsNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider {
private static final String REGEX_DNI = "^\\d{8}([-]?)[A-Z]$";
private final BaseProducer baseProducer;
private final Pattern regexDni;
private final Locale primaryLocale = Country.Spain.getPrimaryLocale();
public EsNationalIdentityCardNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
this.regexDni = Pattern.compile(REGEX_DNI);
}
@Override
public String get() {
return String.format("%s-%s", baseProducer.randomNumeric(8), baseProducer.randomAlphabetic(1).toUpperCase(primaryLocale));
}
public boolean isValid(String dni) {
return this.regexDni.matcher(dni).matches();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/es/EsPassportNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.es;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.PassportNumberProvider;
public class EsPassportNumberProvider implements PassportNumberProvider {
private final BaseProducer baseProducer;
public EsPassportNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
return baseProducer.randomAlphanumeric(9);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/fr/FrAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale.fr;
import com.devskiller.jfairy.producer.person.locale.ContinentalAddress;
public class FrAddress extends ContinentalAddress {
public FrAddress(String streetNumber, String street, String apartmentNumber, String postalCode, String city) {
super(street, streetNumber, apartmentNumber, postalCode, city);
}
@Override
protected String getApartmentMark() {
return " Apt ";
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/fr/FrAddressProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.fr;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.AbstractAddressProvider;
public class FrAddressProvider extends AbstractAddressProvider {
public FrAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) {
super(dataMaster, baseProducer);
}
@Override
public FrAddress get() {
return new FrAddress(getStreetNumber(), getStreet(), getApartmentNumber(),
getPostalCode(), getCity());
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/fr/FrNationalIdentityCardNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.fr;
import java.time.Year;
import java.time.ZoneId;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider;
/**
* Provider for French National Identity Card numbers (Carte Nationale
* d’Identité - CNI).
*
*
* Generates a 12-character alphanumeric string following the biometric format
* introduced in 2021:
*
* Department code (2 digits, 01-95)
* Year of issuance (last 2 digits)
* Month of issuance (01-12)
* Random serial (6 alphanumeric characters)
*
*
* @author Markus Spann
* @since 0.8.3
*/
public class FrNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider {
private final BaseProducer baseProducer;
public FrNationalIdentityCardNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
// department (01-95)
int dept = baseProducer.randomBetween(1, 95);
// year (last two digits, from 2021 to current year)
int currentYear = Year.now(ZoneId.systemDefault()).getValue() % 100;
int year = baseProducer.randomBetween(21, currentYear);
// month (01-12)
int month = baseProducer.randomBetween(1, 12);
// random suffix (6 alphanumeric chars)
String suffix = baseProducer.randomAlphanumeric(6);
return String.format("%02d%02d%02d%s", dept, year, month, suffix);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/fr/FrPassportNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.fr;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.PassportNumberProvider;
/**
* Provider for French Passport numbers.
*
* Generates a 9-character alphanumeric string following the French biometric
* passport format: 2 digits, 2 uppercase letters, and 5 digits (e.g., 12AB12345).
*
* @author Markus Spann
* @since 0.8.3
*/
public class FrPassportNumberProvider implements PassportNumberProvider {
private final BaseProducer baseProducer;
public FrPassportNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
return baseProducer.randomNumeric(2)
+ baseProducer.randomAlphabetic(2)
+ baseProducer.randomNumeric(5);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/ka/KaAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale.ka;
import com.devskiller.jfairy.producer.person.locale.AbstractAddress;
import static com.devskiller.jfairy.producer.util.StringUtils.isNotBlank;
public class KaAddress extends AbstractAddress {
public KaAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) {
super(street, streetNumber, apartmentNumber, postalCode, city);
}
@Override
public String getAddressLine1() {
return postalCode + ", " + city;
}
@Override
public String getAddressLine2() {
return street + " №" + streetNumber + (isNotBlank(apartmentNumber) ? ", ბინა " + apartmentNumber : "");
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/ka/KaAddressProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.ka;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.AbstractAddressProvider;
public class KaAddressProvider extends AbstractAddressProvider {
public KaAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) {
super(dataMaster, baseProducer);
}
@Override
public KaAddress get() {
return new KaAddress(getStreet(), getStreetNumber(), getApartmentNumber(), getPostalCode(), getCity());
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/ka/KaNationalIdentityCardNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.ka;
import java.util.Locale;
import java.util.function.Supplier;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.Country;
import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider;
public class KaNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider {
private static class OldCardNumberProvider implements NationalIdentityCardNumberProvider {
private static final char[] GEORGIAN_CHAR = "აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰ".toCharArray();
private final BaseProducer baseProducer;
OldCardNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
char geChar = GEORGIAN_CHAR[baseProducer.randomInt(GEORGIAN_CHAR.length - 1)];
return "N" + geChar + baseProducer.numerify("#######");
}
}
private static class NewCardNumberProvider implements NationalIdentityCardNumberProvider {
private static final String NEW_CARD_MASK = "##??#####";
private final BaseProducer baseProducer;
private final Locale primaryLocale = Country.Georgia.getPrimaryLocale();
NewCardNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
return baseProducer.bothify(NEW_CARD_MASK).toUpperCase(primaryLocale);
}
}
private final Supplier formatPicker;
public KaNationalIdentityCardNumberProvider(BaseProducer baseProducer) {
NationalIdentityCardNumberProvider oldCardNumberProvider = new OldCardNumberProvider(baseProducer);
NationalIdentityCardNumberProvider newCardNumberProvider = new NewCardNumberProvider(baseProducer);
formatPicker = () -> baseProducer.trueOrFalse() ? oldCardNumberProvider : newCardNumberProvider;
}
@Override
public String get() {
NationalIdentityCardNumberProvider numberProvider = formatPicker.get();
return numberProvider.get();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/ka/KaPassportNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.ka;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.PassportNumberProvider;
public class KaPassportNumberProvider implements PassportNumberProvider {
private final BaseProducer baseProducer;
public KaPassportNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
// District codes are not reachable at the moment.
private String getDistrictCode() {
return baseProducer.numerify("##");
}
// A system of Ministry of Inferior Office codes is not known at the moment.
private String getStateOfficeCode() {
return baseProducer.numerify("###");
}
private String getNationalPersonalIdentificationNumber() {
return baseProducer.numerify("######");
}
@Override
public String get() {
String districtCode = getDistrictCode();
return districtCode + getStateOfficeCode() + getNationalPersonalIdentificationNumber();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/pl/PlAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale.pl;
import com.devskiller.jfairy.producer.person.locale.ContinentalAddress;
public class PlAddress extends ContinentalAddress {
public PlAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) {
super(street, streetNumber, apartmentNumber, postalCode, city);
}
@Override
protected String getApartmentMark() {
return ", ";
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/pl/PlAddressProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.pl;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.AbstractAddressProvider;
public class PlAddressProvider extends AbstractAddressProvider {
public PlAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) {
super(dataMaster, baseProducer);
}
@Override
public PlAddress get() {
return new PlAddress(getStreet(), getStreetNumber(), getApartmentNumber(),
getPostalCode(), getCity());
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/pl/PlNationalIdentificationNumberFactory.java
================================================
package com.devskiller.jfairy.producer.person.locale.pl;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties;
public class PlNationalIdentificationNumberFactory implements NationalIdentificationNumberFactory {
private final BaseProducer baseProducer;
private final DateProducer dateProducer;
public PlNationalIdentificationNumberFactory(BaseProducer baseProducer, DateProducer dateProducer) {
this.baseProducer = baseProducer;
this.dateProducer = dateProducer;
}
@Override
public PlNationalIdentificationNumberProvider produceNationalIdentificationNumberProvider(NationalIdentificationNumberProperties.Property... properties) {
return new PlNationalIdentificationNumberProvider(dateProducer, baseProducer, properties);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/pl/PlNationalIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.pl;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumber;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProvider;
import com.devskiller.jfairy.producer.person.Person;
/**
* Polish National Identification Number (known as PESEL - Powszechny Elektroniczny System Ewidencji Ludności)
*
* Universal Electronic System for Registration of the Population in Poland.
* The number consists of 11 digits and includes information about birth date and sex.
* More info: PESEL
*/
public class PlNationalIdentificationNumberProvider implements NationalIdentificationNumberProvider {
private static final int NATIONAL_IDENTIFICATION_NUMBER_LENGTH = 11;
private static final int VALIDITY_IN_YEARS = 10;
private static final int[] PERIOD_WEIGHTS = {80, 0, 20, 40, 60};
private static final int PERIOD_FACTOR = 100;
private static final int BEGIN_YEAR = 1800;
private static final int[] WEIGHTS = {1, 3, 7, 9, 1, 3, 7, 9, 1, 3};
private static final int MAX_SERIAL_NUMBER = 999;
private static final int TEN = 10;
private static final int[] SEX_FIELDS = {0, 2, 4, 6, 8};
private final BaseProducer baseProducer;
private final DateProducer dateProducer;
private LocalDate issueDate;
private Person.Sex sex;
/**
* Initializes a new provider for Polish PESEL numbers
*
* @param dateProducer provider for generating dates
* @param baseProducer provider for random numbers and booleans
* @param properties optional properties to constrain the generated number
*/
public PlNationalIdentificationNumberProvider(DateProducer dateProducer, BaseProducer baseProducer,
NationalIdentificationNumberProperties.Property... properties) {
this.dateProducer = dateProducer;
this.baseProducer = baseProducer;
with(properties);
}
/**
* Applies specific properties to the provider
*
* @param properties array of properties like sex or birth date
*/
public void with(NationalIdentificationNumberProperties.Property[] properties) {
for (NationalIdentificationNumberProperties.Property property : properties) {
property.apply(this);
}
}
/**
* Generates a random Polish National Identification Number
*
* @return a new NationalIdentificationNumber instance containing the PESEL
*/
@Override
public NationalIdentificationNumber get() {
if (issueDate == null) {
issueDate = dateProducer.randomDateInThePast(VALIDITY_IN_YEARS).toLocalDate();
}
if (sex == null) {
sex = baseProducer.trueOrFalse() ? Person.Sex.MALE : Person.Sex.FEMALE;
}
return new NationalIdentificationNumber(generate());
}
private String generate() {
int month = calculateMonth(issueDate.getMonthValue(), issueDate.getYear());
int day = issueDate.getDayOfMonth();
int serialNumber = baseProducer.randomInt(MAX_SERIAL_NUMBER);
int sexCode = calculateSexCode(sex);
String nationalIdentificationNumber = String.format("%s%02d%02d%03d%d",
DateTimeFormatter.ofPattern("uu").format(issueDate), month, day, serialNumber, sexCode);
return nationalIdentificationNumber + calculateChecksum(nationalIdentificationNumber);
}
@Override
public void setIssueDate(LocalDate issueDate) {
this.issueDate = issueDate;
}
@Override
public void setSex(Person.Sex sex) {
this.sex = sex;
}
/**
* Verifies the validity of a given PESEL number based on its length and checksum
*
* @param nationalIdentificationNumber the PESEL string to verify
* @return true if the number is valid, false otherwise
*/
public static boolean isValid(String nationalIdentificationNumber) {
int size = nationalIdentificationNumber.length();
if (size != NATIONAL_IDENTIFICATION_NUMBER_LENGTH) {
return false;
}
int checksum = Integer.parseInt(nationalIdentificationNumber.substring(size - 1));
int checkDigit = calculateChecksum(nationalIdentificationNumber);
return checkDigit == checksum;
}
private int calculateMonth(int month, int year) {
return month + PERIOD_WEIGHTS[(year - BEGIN_YEAR) / PERIOD_FACTOR];
}
private int calculateSexCode(Person.Sex sex) {
return SEX_FIELDS[baseProducer.randomInt(SEX_FIELDS.length - 1)] + (sex == Person.Sex.MALE ? 1 : 0);
}
private static int calculateChecksum(String nationalIdentificationNumber) {
int sum = 0;
int i = 0;
for (int weight : WEIGHTS) {
int digit = Character.digit(nationalIdentificationNumber.charAt(i++), 10);
sum += digit * weight;
}
int checksum = (sum % TEN);
if (0 == checksum) {
return 0;
}
return TEN - checksum;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/pl/PlNationalIdentityCardNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.pl;
import java.time.LocalDate;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.util.AlphaNumberSystem;
import com.devskiller.jfairy.producer.util.ValidateUtils;
import static com.devskiller.jfairy.producer.util.StringUtils.leftPad;
/**
* Polish Identity Card Number
*
* Polish identity card
*/
public class PlNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider {
static final int ISSUING_BEGIN = 2000;
private static final int[] WEIGHTS = new int[]{7, 3, 1, 0, 7, 3, 1, 7, 3};
private static final int CHECKSUM_INDEX = 3;
private static final int DIGITS_PART_SIZE = 5;
static final int MAX_DIGITS_PART_VALUE = 99999;
static final int LETTER_WEIGHT = 45;
private static final int LETTERS_PART_SIZE = 3;
private static final int LETTER_VALUE_MODIFIER = 10;
private static final int ALPHABET_SIZE = 26;
private static final int BASE_TEN = 10;
private final DateProducer dateProducer;
private final BaseProducer baseProducer;
public PlNationalIdentityCardNumberProvider(DateProducer dateProducer, BaseProducer baseProducer) {
this.dateProducer = dateProducer;
this.baseProducer = baseProducer;
}
@Override
public String get() {
LocalDate dateTime = dateProducer.randomDateBetweenYearAndNow(ISSUING_BEGIN).toLocalDate();
return get(dateTime);
}
public String get(LocalDate date) {
ValidateUtils.isTrue(date.getYear() >= ISSUING_BEGIN, "Polish ID was introduced in 2000");
char[] id = new char[WEIGHTS.length];
fillLettersPart(date.getYear(), id);
fillDigitsPart(id);
char checksum = calculateChecksum(id);
id[CHECKSUM_INDEX] = checksum;
return String.copyValueOf(id);
}
public boolean isValid(String id) {
int checksum = calculateChecksum(id.toCharArray());
return id.charAt(CHECKSUM_INDEX) == checksum;
}
private char calculateChecksum(char[] id) {
int index = 0;
int checksum = 0;
for (int weight : WEIGHTS) {
int value = 0;
if (index < CHECKSUM_INDEX) {
value = id[index] - 'A' + LETTER_VALUE_MODIFIER;
} else if (index > CHECKSUM_INDEX) {
value = id[index] - '0';
}
index++;
checksum += weight * value;
}
return String.valueOf(checksum % BASE_TEN).charAt(0);
}
private void fillDigitsPart(char[] id) {
String num = String.valueOf(baseProducer.randomInt(MAX_DIGITS_PART_VALUE));
char[] digits = leftPad(num, DIGITS_PART_SIZE, '0').toCharArray();
System.arraycopy(digits, 0, id, CHECKSUM_INDEX + 1, digits.length);
}
private void fillLettersPart(int year, char[] id) {
int maxPrefix = (year - ISSUING_BEGIN) * LETTER_WEIGHT;
int range = baseProducer.randomBetween(maxPrefix, maxPrefix + LETTER_WEIGHT);
String prefix = AlphaNumberSystem.convertToString(range, ALPHABET_SIZE);
char[] charArray = leftPad(prefix, LETTERS_PART_SIZE, 'A').toCharArray();
System.arraycopy(charArray, 0, id, 0, charArray.length);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/pl/PlPassportNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.pl;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Map;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.PassportNumberProvider;
import com.devskiller.jfairy.producer.util.AlphaNumberSystem;
/**
* Provider for Polish passport numbers.
*
* A Polish passport number consists of 9 characters: 2 uppercase letters followed by 7 digits.
* The third character (index 2) is a checksum digit calculated based on the other positions.
*/
public class PlPassportNumberProvider implements PassportNumberProvider {
private static final int CHECKSUM_INDEX = 2;
private static final int PASSPORT_NUMBER_LENGTH = 9;
private static final int RADIX_TEN = 10;
/** Map to store numeric values for letters A-Z (A=10, B=11, etc.) */
private static final Map LETTER_DIGITS = generateLetterDigits();
private static final int[] WEIGHTS = {7, 3, 9, 1, 7, 3, 1, 7, 3};
private final BaseProducer baseProducer;
/**
* Creates a new provider instance.
*
* @param baseProducer the producer used for random data generation
*/
public PlPassportNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
/**
* Generates a mapping of characters to their numeric values for checksum calculation.
*
* @return an unmodifiable map of characters to integers
*/
private static Map generateLetterDigits() {
int baseNum = 10;
Map map = new LinkedHashMap<>();
for (Character letter : AlphaNumberSystem.generateAlphabetList()) {
map.put(letter, baseNum++);
}
return Collections.unmodifiableMap(map);
}
/**
* Returns a randomly generated Polish passport number.
*
* @return a valid 9-character passport number string
*/
@Override
public String get() {
char[] passport = new char[PASSPORT_NUMBER_LENGTH];
fillSeries(passport);
fillDigits(passport);
fillChecksum(passport);
return String.valueOf(passport);
}
/**
* Calculates and sets the checksum digit at the appropriate index.
*
* @param passport the character array representing the passport number
*/
private void fillChecksum(char[] passport) {
// when generating, the checksum index itself must be ignored
int checkSum = calculateTotalWeight(passport, true);
passport[CHECKSUM_INDEX] = Character.forDigit(checkSum % RADIX_TEN, RADIX_TEN);
}
/**
* Fills the first two positions with random uppercase letters.
*
* @param passport the character array to modify
*/
private void fillSeries(char[] passport) {
char[] randomSeries = baseProducer.randomAlphabetic(2).toUpperCase(Locale.ROOT).toCharArray();
System.arraycopy(randomSeries, 0, passport, 0, randomSeries.length);
}
/**
* Fills the numeric positions of the passport number.
*
* @param passport the character array to modify
*/
private void fillDigits(char[] passport) {
char[] randomDigits = baseProducer.randomNumeric(6).toCharArray();
System.arraycopy(randomDigits, 0, passport, 3, randomDigits.length);
}
/**
* Validates the checksum of a Polish passport number.
*
* @param passportNumber the 9-character passport number to validate
* @return true if the checksum is correct, false otherwise
*/
public static boolean isPassportCheckSumValid(String passportNumber) {
if (passportNumber == null || passportNumber.length() != PASSPORT_NUMBER_LENGTH) {
return false;
}
char[] passport = passportNumber.toCharArray();
// when validating, the checksum index (weight 9) must be included
return calculateTotalWeight(passport, false) % RADIX_TEN == 0;
}
/**
* Calculates the sum of weighted values for all characters in the passport number.
*
* @param passport the character array of the passport
* @param ignoreChecksumIndex whether to skip the checksum digit during calculation
* @return the calculated weighted sum
*/
private static int calculateTotalWeight(char[] passport, boolean ignoreChecksumIndex) {
int totalWeight = 0;
for (int i = 0; i < PASSPORT_NUMBER_LENGTH; i++) {
if (ignoreChecksumIndex && i == CHECKSUM_INDEX) {
continue;
}
int value;
if (i < 2) {
value = LETTER_DIGITS.getOrDefault(passport[i], 0);
} else {
// use digit for strict base-10 interpretation
value = Character.digit(passport[i], RADIX_TEN);
}
totalWeight += value * WEIGHTS[i];
}
return totalWeight;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sk/SkAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale.sk;
import com.devskiller.jfairy.producer.person.locale.ContinentalAddress;
public class SkAddress extends ContinentalAddress {
public SkAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) {
super(street, streetNumber, apartmentNumber, postalCode, city);
}
@Override
protected String getApartmentMark() {
return ", ";
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sk/SkAddressProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.sk;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.AbstractAddressProvider;
public class SkAddressProvider extends AbstractAddressProvider {
public SkAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) {
super(dataMaster, baseProducer);
}
@Override
public SkAddress get() {
return new SkAddress(getStreet(), getStreetNumber(), getApartmentNumber(),
getPostalCode(), getCity());
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sk/SkNationalIdentificationNumberFactory.java
================================================
package com.devskiller.jfairy.producer.person.locale.sk;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties;
public class SkNationalIdentificationNumberFactory implements NationalIdentificationNumberFactory {
private final BaseProducer baseProducer;
private final DateProducer dateProducer;
public SkNationalIdentificationNumberFactory(BaseProducer baseProducer, DateProducer dateProducer) {
this.baseProducer = baseProducer;
this.dateProducer = dateProducer;
}
@Override
public SkNationalIdentificationNumberProvider produceNationalIdentificationNumberProvider(NationalIdentificationNumberProperties.Property... properties) {
return new SkNationalIdentificationNumberProvider(dateProducer, baseProducer, properties);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sk/SkNationalIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.sk;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumber;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProvider;
import com.devskiller.jfairy.producer.person.Person;
import static java.lang.String.format;
/**
* Slovak National Identification Number (known as Rodne cislo)
*
* Based on the same algorithm as Polish PESEL
* More info: PESEL
*/
public class SkNationalIdentificationNumberProvider implements NationalIdentificationNumberProvider {
private static final int NATIONAL_IDENTIFICATION_NUMBER_LENGTH = 11;
private static final int VALIDITY_IN_YEARS = 10;
private static final int[] PERIOD_WEIGHTS = {80, 0, 20, 40, 60};
private static final int PERIOD_FACTOR = 100;
private static final int BEGIN_YEAR = 1800;
private static final int[] WEIGHTS = {1, 3, 7, 9, 1, 3, 7, 9, 1, 3};
private static final int MAX_SERIAL_NUMBER = 999;
private static final int TEN = 10;
private static final int[] SEX_FIELDS = {0, 2, 4, 6, 8};
private final BaseProducer baseProducer;
private final DateProducer dateProducer;
private LocalDate issueDate;
private Person.Sex sex;
public SkNationalIdentificationNumberProvider(DateProducer dateProducer, BaseProducer baseProducer, NationalIdentificationNumberProperties.Property... properties) {
this.dateProducer = dateProducer;
this.baseProducer = baseProducer;
with(properties);
}
public void with(NationalIdentificationNumberProperties.Property[] properties) {
for (NationalIdentificationNumberProperties.Property property : properties) {
property.apply(this);
}
}
@Override
public NationalIdentificationNumber get() {
if (issueDate == null) {
issueDate = dateProducer.randomDateInThePast(VALIDITY_IN_YEARS).toLocalDate();
}
if (sex == null) {
sex = baseProducer.trueOrFalse() ? Person.Sex.MALE : Person.Sex.FEMALE;
}
return new NationalIdentificationNumber(generate());
}
private String generate() {
int month = calculateMonth(issueDate.getMonthValue(), issueDate.getYear());
int day = issueDate.getDayOfMonth();
int serialNumber = baseProducer.randomInt(MAX_SERIAL_NUMBER);
int sexCode = calculateSexCode(sex);
String nationalIdentificationNumber = format("%s%02d%02d%03d%d",
DateTimeFormatter.ofPattern("uu").format(issueDate), month, day, serialNumber, sexCode);
return nationalIdentificationNumber + calculateChecksum(nationalIdentificationNumber);
}
@Override
public void setIssueDate(LocalDate issueDate) {
this.issueDate = issueDate;
}
@Override
public void setSex(Person.Sex sex) {
this.sex = sex;
}
public static boolean isValid(String nationalIdentificationNumber) {
int size = nationalIdentificationNumber.length();
if (size != NATIONAL_IDENTIFICATION_NUMBER_LENGTH) {
return false;
}
int checksum = Integer.parseInt(nationalIdentificationNumber.substring(size - 1));
int checkDigit = calculateChecksum(nationalIdentificationNumber);
return checkDigit == checksum;
}
private int calculateMonth(int month, int year) {
return month + PERIOD_WEIGHTS[(year - BEGIN_YEAR) / PERIOD_FACTOR];
}
private int calculateSexCode(Person.Sex sex) {
return SEX_FIELDS[baseProducer.randomInt(SEX_FIELDS.length - 1)] + (sex == Person.Sex.MALE ? 1 : 0);
}
private static int calculateChecksum(String nationalIdentificationNumber) {
int sum = 0;
int i = 0;
for (int weight : WEIGHTS) {
int digit = Character.digit(nationalIdentificationNumber.charAt(i++), 10);
sum += digit * weight;
}
int checksum = (sum % TEN);
if (0 == checksum) {
return 0;
}
return TEN - checksum;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sk/SkNationalIdentityCardNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.sk;
import java.time.LocalDate;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.util.AlphaNumberSystem;
import com.devskiller.jfairy.producer.util.StringUtils;
/**
* Slovak Identity Card Number
*
* Based on the same format as Polish identity card
* Polish identity card
*/
public class SkNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider {
static final int ISSUING_BEGIN = 2000;
private static final int[] WEIGHTS = new int[]{7, 3, 1, 0, 7, 3, 1, 7, 3};
private static final int CHECKSUM_INDEX = 3;
private static final int DIGITS_PART_SIZE = 5;
static final int MAX_DIGITS_PART_VALUE = 99999;
static final int LETTER_WEIGHT = 45;
private static final int LETTERS_PART_SIZE = 3;
private static final int LETTER_VALUE_MODIFIER = 10;
private static final int ALPHABET_SIZE = 26;
private static final int BASE_TEN = 10;
private final DateProducer dateProducer;
private final BaseProducer baseProducer;
public SkNationalIdentityCardNumberProvider(DateProducer dateProducer, BaseProducer baseProducer) {
this.dateProducer = dateProducer;
this.baseProducer = baseProducer;
}
@Override
public String get() {
LocalDate dateTime = dateProducer.randomDateBetweenYearAndNow(ISSUING_BEGIN).toLocalDate();
return get(dateTime);
}
public String get(LocalDate date) {
if (date.getYear() < ISSUING_BEGIN) {
throw new IllegalArgumentException("Slovak ID card was introduced in 2000");
}
char[] id = new char[WEIGHTS.length];
fillLettersPart(date.getYear(), id);
fillDigitsPart(id);
char checksum = calculateChecksum(id);
id[CHECKSUM_INDEX] = checksum;
return String.copyValueOf(id);
}
public boolean isValid(String id) {
int checksum = calculateChecksum(id.toCharArray());
return id.charAt(CHECKSUM_INDEX) == checksum;
}
private char calculateChecksum(char[] id) {
int index = 0;
int checksum = 0;
for (int weight : WEIGHTS) {
int value = 0;
if (index < CHECKSUM_INDEX) {
value = id[index] - 'A' + LETTER_VALUE_MODIFIER;
} else if (index > CHECKSUM_INDEX) {
value = id[index] - '0';
}
index++;
checksum += weight * value;
}
return String.valueOf(checksum % BASE_TEN).charAt(0);
}
private void fillDigitsPart(char[] id) {
String num = String.valueOf(baseProducer.randomInt(MAX_DIGITS_PART_VALUE));
char[] digits = StringUtils.leftPad(num, DIGITS_PART_SIZE, '0').toCharArray();
System.arraycopy(digits, 0, id, CHECKSUM_INDEX + 1, digits.length);
}
private void fillLettersPart(int year, char[] id) {
int maxPrefix = (year - ISSUING_BEGIN) * LETTER_WEIGHT;
int range = baseProducer.randomBetween(maxPrefix, maxPrefix + LETTER_WEIGHT);
String prefix = AlphaNumberSystem.convertToString(range, ALPHABET_SIZE);
char[] charArray = StringUtils.leftPad(prefix, LETTERS_PART_SIZE, 'A').toCharArray();
System.arraycopy(charArray, 0, id, 0, charArray.length);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sk/SkPassportNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.sk;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.PassportNumberProvider;
import com.devskiller.jfairy.producer.util.AlphaNumberSystem;
/**
* Slovak Passport Number Provider.
*
* The passport number consists of 9 characters: 2 letters, 1 checksum digit, and 6 digits.
*/
public class SkPassportNumberProvider implements PassportNumberProvider {
private static final int CHECKSUM_INDEX = 2;
private static final int PASSPORT_NUMBER_LENGTH = 9;
private static final int RADIX_TEN = 10;
private static final int[] WEIGHTS = {7, 3, 9, 1, 7, 3, 1, 7, 3};
/** Map to store numeric values for letters A-Z (A=10, B=11, etc.) */
private static final Map LETTER_DIGITS = generateLetterDigits();
private final BaseProducer baseProducer;
public SkPassportNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
private static Map generateLetterDigits() {
int baseNum = 10;
List alphabet = AlphaNumberSystem.generateAlphabetList();
Map map = new LinkedHashMap<>(alphabet.size());
for (Character letter : alphabet) {
map.put(letter, baseNum++);
}
return Collections.unmodifiableMap(map);
}
@Override
public String get() {
char[] passport = new char[PASSPORT_NUMBER_LENGTH];
fillSeries(passport);
fillDigits(passport);
fillChecksum(passport);
return String.valueOf(passport);
}
private void fillChecksum(char[] passport) {
int checkSum = calculateTotalWeight(passport);
// the checksum digit itself is the remainder mod 10
passport[CHECKSUM_INDEX] = Character.forDigit(checkSum % RADIX_TEN, RADIX_TEN);
}
private void fillSeries(char[] passport) {
for (int i = 0; i < 2; i++) {
passport[i] = (char) ('A' + baseProducer.randomInt(26));
}
}
private void fillDigits(char[] passport) {
for (int i = 3; i < PASSPORT_NUMBER_LENGTH; i++) {
passport[i] = (char) ('0' + baseProducer.randomInt(RADIX_TEN));
}
}
/**
* Validates the checksum of a Slovak passport number
*
* @param passportNumber the 9-character passport number string
* @return true if the checksum is valid
*/
public static boolean isPassportCheckSumValid(String passportNumber) {
if (passportNumber == null || passportNumber.length() != PASSPORT_NUMBER_LENGTH) {
return false;
}
char[] passport = passportNumber.toCharArray();
return calculateTotalWeight(passport) % RADIX_TEN == 0;
}
private static int calculateTotalWeight(char[] passport) {
int totalWeight = 0;
for (int i = 0; i < PASSPORT_NUMBER_LENGTH; i++) {
if (i == CHECKSUM_INDEX) {
continue;
}
int value;
if (i < 2) {
value = LETTER_DIGITS.getOrDefault(passport[i], 0);
} else {
// errorprone: using digit(c, 10) for strict decimal interpretation
value = Character.digit(passport[i], RADIX_TEN);
}
totalWeight += value * WEIGHTS[i];
}
return totalWeight;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sv/SvAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale.sv;
import com.devskiller.jfairy.producer.person.locale.ContinentalAddress;
public class SvAddress extends ContinentalAddress {
public SvAddress(String street, String streetNumber, String apartmentNumber, String postalCode, String city) {
super(street, streetNumber, apartmentNumber, postalCode, city);
}
@Override
public String getApartmentMark() {
return " Lgh ";
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sv/SvAddressProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.sv;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.AbstractAddressProvider;
public class SvAddressProvider extends AbstractAddressProvider {
public SvAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) {
super(dataMaster, baseProducer);
}
@Override
public SvAddress get() {
return new SvAddress(getStreet(), getStreetNumber(), getApartmentNumber(),
getPostalCode(), getCity());
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sv/SvNationalIdentificationNumberFactory.java
================================================
package com.devskiller.jfairy.producer.person.locale.sv;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberFactory;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties;
public class SvNationalIdentificationNumberFactory implements NationalIdentificationNumberFactory {
private final BaseProducer baseProducer;
private final DateProducer dateProducer;
public SvNationalIdentificationNumberFactory(BaseProducer baseProducer, DateProducer dateProducer) {
this.baseProducer = baseProducer;
this.dateProducer = dateProducer;
}
@Override
public SvNationalIdentificationNumberProvider produceNationalIdentificationNumberProvider(NationalIdentificationNumberProperties.Property... properties) {
return new SvNationalIdentificationNumberProvider(dateProducer, baseProducer, properties);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sv/SvNationalIdentificationNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.sv;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumber;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties;
import com.devskiller.jfairy.producer.person.NationalIdentificationNumberProvider;
import com.devskiller.jfairy.producer.person.Person;
import static java.lang.String.format;
/**
* Swedish National Identification Number (known as Personal Identity Number or Personnummer in sweden)
*
* Personal identity number (Sweden)
*
* E.g.
* 870508-5853
*
* The left part of the hyphen consists of the date of birth and the right part consist of
* three random numbers + one check digit.
*/
public class SvNationalIdentificationNumberProvider implements NationalIdentificationNumberProvider {
private static final int NATIONAL_IDENTIFICATION_NUMBER_LENGTH = 11;
private static final int VALIDITY_IN_YEARS = 120;
private static final int[] WEIGHTS = {2, 1, 2, 1, 2, 1, 2, 1, 2};
private static final int MAX_SERIAL_NUMBER = 99;
private static final int TEN = 10;
private static final int[] SEX_FIELDS = {0, 2, 4, 6, 8};
private final BaseProducer baseProducer;
private final DateProducer dateProducer;
private LocalDate issueDate;
private Person.Sex sex;
public SvNationalIdentificationNumberProvider(DateProducer dateProducer, BaseProducer baseProducer,
NationalIdentificationNumberProperties.Property... properties) {
this.dateProducer = dateProducer;
this.baseProducer = baseProducer;
with(properties);
}
public void with(NationalIdentificationNumberProperties.Property[] properties) {
for (NationalIdentificationNumberProperties.Property property : properties) {
property.apply(this);
}
}
@Override
public NationalIdentificationNumber get() {
if (issueDate == null) {
issueDate = dateProducer.randomDateInThePast(VALIDITY_IN_YEARS).toLocalDate();
}
if (sex == null) {
sex = baseProducer.trueOrFalse() ? Person.Sex.MALE : Person.Sex.FEMALE;
}
return new NationalIdentificationNumber(generate());
}
private String generate() {
int serialNumber = baseProducer.randomInt(MAX_SERIAL_NUMBER);
int sexCode = calculateSexCode(sex);
String nationalIdentificationNumber = format("%s%s%s-%02d%d",
DateTimeFormatter.ofPattern("uu").format(issueDate),
DateTimeFormatter.ofPattern("MM").format(issueDate),
DateTimeFormatter.ofPattern("dd").format(issueDate), serialNumber, sexCode);
return nationalIdentificationNumber + calculateChecksum(nationalIdentificationNumber);
}
@Override
public void setIssueDate(LocalDate issueDate) {
this.issueDate = issueDate;
}
@Override
public void setSex(Person.Sex sex) {
this.sex = sex;
}
public static boolean isValid(String nationalIdentificationNumber) {
int size = nationalIdentificationNumber.length();
if (size != NATIONAL_IDENTIFICATION_NUMBER_LENGTH) {
return false;
}
int checksum = Integer.parseInt(nationalIdentificationNumber.substring(size - 1));
int checkDigit = calculateChecksum(nationalIdentificationNumber);
return checkDigit == checksum;
}
private int calculateSexCode(Person.Sex sex) {
return SEX_FIELDS[baseProducer.randomInt(SEX_FIELDS.length - 1)] + (sex == Person.Sex.MALE ? 1 : 0);
}
public static int calculateChecksum(String nationalIdentificationNumber) {
String nationalIdentificationNumberWithoutHyphen = nationalIdentificationNumber.replace("-", "");
int sum = 0;
int i = 0;
for (int weight : WEIGHTS) {
int digit = Character.digit(nationalIdentificationNumberWithoutHyphen.charAt(i++), 10);
int product = digit * weight;
sum += (product / 10) + (product % 10);
}
if (sum % 10 == 0) {
return 0;
}
return TEN - (sum % 10);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sv/SvNationalIdentityCardNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.sv;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider;
/**
* Swedish Identity Card Number (random number implementation)
*/
public class SvNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider {
private final BaseProducer baseProducer;
public SvNationalIdentityCardNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
return baseProducer.randomNumeric(8);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/sv/SvPassportNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.sv;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.PassportNumberProvider;
/**
* Swedish Passport Number (random number implementation)
*/
public class SvPassportNumberProvider implements PassportNumberProvider {
private final BaseProducer baseProducer;
public SvPassportNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
return baseProducer.randomNumeric(8);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/tr/TrAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale.tr;
import com.devskiller.jfairy.producer.person.locale.ContinentalAddress;
public class TrAddress extends ContinentalAddress {
public TrAddress(String streetNumber, String street, String apartmentNumber, String postalCode, String city) {
super(street, streetNumber, apartmentNumber, postalCode, city);
}
@Override
protected String getStreetNumberSeparator() {
return " No: ";
}
@Override
protected String getApartmentMark() {
return " Daire: ";
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/tr/TrAddressProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.tr;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.AbstractAddressProvider;
public class TrAddressProvider extends AbstractAddressProvider {
public TrAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) {
super(dataMaster, baseProducer);
}
@Override
public TrAddress get() {
return new TrAddress(getStreetNumber(), getStreet(), getApartmentNumber(),
getPostalCode(), getCity());
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/tr/TrNationalIdentityCardNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.tr;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider;
/**
* Turkish T.C. Kimlik No generator.
* 11 digits.
* 1st digit cannot be 0.
* 10th digit = ((sum(1,3,5,7,9) * 7) - sum(2,4,6,8)) % 10.
* 11th digit = (sum(1..10)) % 10.
*/
public class TrNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider {
private final BaseProducer baseProducer;
public TrNationalIdentityCardNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
int[] digits = new int[11];
digits[0] = baseProducer.randomBetween(1, 9);
for (int i = 1; i < 9; i++) {
digits[i] = baseProducer.randomBetween(0, 9);
}
int oddSum = digits[0] + digits[2] + digits[4] + digits[6] + digits[8];
int evenSum = digits[1] + digits[3] + digits[5] + digits[7];
int d10 = ((oddSum * 7) - evenSum) % 10;
if (d10 < 0) {
d10 += 10;
}
digits[9] = d10;
int totalSum = 0;
for (int i = 0; i < 10; i++) {
totalSum += digits[i];
}
digits[10] = totalSum % 10;
StringBuilder sb = new StringBuilder();
for (int digit : digits) {
sb.append(digit);
}
return sb.toString();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/tr/TrPassportNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.tr;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.PassportNumberProvider;
public class TrPassportNumberProvider implements PassportNumberProvider {
private final BaseProducer baseProducer;
public TrPassportNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
return "U" + String.format("%08d", baseProducer.randomBetween(1, 99999999));
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/zh/ZhAddress.java
================================================
package com.devskiller.jfairy.producer.person.locale.zh;
import com.devskiller.jfairy.producer.person.locale.AbstractAddress;
/**
* com.devskiller.jfairy.producer.person.locale.zh.ZhAddress
*
* @author lhfcws
* @since 2017/3/2
*/
public class ZhAddress extends AbstractAddress {
private static final String CITY = "市";
private static final String NUMBER = "号";
private static final String ROOM = "房";
private static final String POSTCODE = "邮编";
public ZhAddress(String streetNumber, String street, String apartmentNumber, String city, String postalCode) {
super(street, streetNumber, apartmentNumber, postalCode, city);
}
@Override
public String getAddressLine1() {
String line = city + CITY + street + streetNumber + NUMBER;
if (!apartmentNumber.isEmpty()) {
return line + " " + apartmentNumber + ROOM;
} else {
return line;
}
}
@Override
public String getAddressLine2() {
return POSTCODE + " " + postalCode;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/zh/ZhAddressProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.zh;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.AbstractAddressProvider;
import com.devskiller.jfairy.producer.person.Address;
/**
* com.devskiller.jfairy.producer.person.locale.zh.ZhAddressProvider
*
* @author lhfcws
* @since 2017/3/2
*/
public class ZhAddressProvider extends AbstractAddressProvider {
public ZhAddressProvider(DataMaster dataMaster, BaseProducer baseProducer) {
super(dataMaster, baseProducer);
}
@Override
public Address get() {
return new ZhAddress(getStreetNumber(), getStreet(), getApartmentNumber(),
getCity(), getPostalCode());
}
@Override
public String getApartmentNumber() {
if (baseProducer.trueOrFalse()) {
String floor = String.valueOf(baseProducer.randomInt(38));
String room = "0" + baseProducer.randomInt(8);
return floor + room;
} else {
return "";
}
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/zh/ZhNationalIdentityCardNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.zh;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.DateProducer;
import com.devskiller.jfairy.producer.TimeProvider;
import com.devskiller.jfairy.producer.person.NationalIdentityCardNumberProvider;
import com.devskiller.jfairy.producer.util.ZhFairyUtil;
/**
* Chinese National Identity Card Number, total 18 digits
*
* @author Lhfcws
* @since 27.02.17
*/
public class ZhNationalIdentityCardNumberProvider implements NationalIdentityCardNumberProvider {
/**
* The last 4 digit is an order number from 0001 to 9999
*/
private static final int ORDER_MAX = 9999;
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyyMMdd");
private final BaseProducer baseProducer;
private final DateProducer dateProducer;
public ZhNationalIdentityCardNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
this.dateProducer = new DateProducer(baseProducer, new TimeProvider());
}
@Override
public String get() {
StringBuilder idBuilder = new StringBuilder();
idBuilder.append(baseProducer.randomElement(ZhFairyUtil.PROV_LIST));
idBuilder.append(ZhFairyUtil.getRandomNumStr(baseProducer, ZhFairyUtil.CITY_MAX, 2));
idBuilder.append(ZhFairyUtil.getRandomNumStr(baseProducer, ZhFairyUtil.DISTRICT_MAX, 2));
idBuilder.append(getBirthDate());
idBuilder.append(ZhFairyUtil.getRandomNumStr(baseProducer, ORDER_MAX, 4));
return idBuilder.toString();
}
private String getBirthDate() {
LocalDateTime birthDate = this.dateProducer.randomDateInThePast(50);
return FORMATTER.format(birthDate);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/person/locale/zh/ZhPassportNumberProvider.java
================================================
package com.devskiller.jfairy.producer.person.locale.zh;
import com.devskiller.jfairy.producer.BaseProducer;
import com.devskiller.jfairy.producer.person.PassportNumberProvider;
/**
* com.devskiller.jfairy.producer.person.locale.zh.ZhPassportNumberProvider
*
* @author lhfcws
* @since 2017/3/2
*/
public class ZhPassportNumberProvider implements PassportNumberProvider {
private final BaseProducer baseProducer;
public ZhPassportNumberProvider(BaseProducer baseProducer) {
this.baseProducer = baseProducer;
}
@Override
public String get() {
return baseProducer.randomAlphanumeric(9);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/text/TextProducer.java
================================================
/*
* Copyright (c) 2013 Codearte
*/
package com.devskiller.jfairy.producer.text;
import java.util.ArrayList;
import java.util.List;
import com.devskiller.jfairy.producer.BaseProducer;
import static com.devskiller.jfairy.producer.util.StringUtils.joinWithSpace;
import static com.devskiller.jfairy.producer.util.StringUtils.left;
public class TextProducer {
private static final int DEFAULT_WORD_COUNT = 3;
private static final int DEFAULT_WORD_COUNT_IN_SENTENCE = 3;
private static final int DEFAULT_SENTENCE_COUNT = 3;
private static final int SENTENCE_COUNT_PRECISION_MIN = 1;
private static final int SENTENCE_COUNT_PRECISION_MAX = 3;
private final TextProducerInternal textProducerInternal;
private final BaseProducer baseProducer;
private int limit = 0;
public TextProducer(TextProducerInternal textProducerInternal, BaseProducer baseProducer) {
this.textProducerInternal = textProducerInternal;
this.baseProducer = baseProducer;
}
public TextProducer limitedTo(int limit) {
this.limit = limit;
return this;
}
public String result(String result) {
if (limit > 0) {
return left(result, limit);
} else {
return result;
}
}
public String loremIpsum() {
return result(textProducerInternal.loremIpsum());
}
public String text() {
return result(textProducerInternal.text());
}
public String word() {
return result(word(DEFAULT_WORD_COUNT));
}
public String word(int count) {
return result(textProducerInternal.cleanWords(count));
}
public String latinWord() {
return result(latinWord(DEFAULT_WORD_COUNT));
}
public String latinWord(int count) {
return result(textProducerInternal.cleanLatinWords(count));
}
public String latinSentence() {
return result(latinSentence(DEFAULT_SENTENCE_COUNT));
}
public String latinSentence(int wordCount) {
return result(textProducerInternal.latinSentence(wordCount));
}
public String sentence() {
return result(sentence(DEFAULT_WORD_COUNT_IN_SENTENCE));
}
public String sentence(int wordCount) {
return result(textProducerInternal.sentence(wordCount));
}
private List sentences(int sentenceCount) {
List sentences = new ArrayList<>(sentenceCount);
for (int i = 0; i < sentenceCount; i++) {
sentences.add(sentence());
}
return sentences;
}
public String paragraph() {
return result(paragraph(DEFAULT_SENTENCE_COUNT));
}
public String paragraph(int sentenceCount) {
return result(joinWithSpace(sentences(sentenceCount
+ baseProducer.randomBetween(SENTENCE_COUNT_PRECISION_MIN, SENTENCE_COUNT_PRECISION_MAX))));
}
/**
* Generates random string with desired length
*
* @param charsCount string length
* @return random string
*/
public String randomString(int charsCount) {
return textProducerInternal.randomString(charsCount);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/text/TextProducerInternal.java
================================================
/*
* Copyright (c) 2013. Codearte
*/
package com.devskiller.jfairy.producer.text;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.devskiller.jfairy.data.DataMaster;
import com.devskiller.jfairy.producer.BaseProducer;
import static com.devskiller.jfairy.producer.util.StringUtils.capitalize;
import static com.devskiller.jfairy.producer.util.StringUtils.joinWithSpace;
import static com.devskiller.jfairy.producer.util.StringUtils.replaceChars;
import static com.devskiller.jfairy.producer.util.StringUtils.split;
import static com.devskiller.jfairy.producer.util.StringUtils.uncapitalize;
/**
* Internal component for generating and formatting random text, sentences, and words.
*
* This class handles the low-level string manipulations for both standard and
* Latin-based (Lorem Ipsum) text generation.
*
* @author jkubrynski@gmail.com
* @since 2013-11-16
*/
public class TextProducerInternal {
private static final String LOREM_IPSUM = "loremIpsum";
private static final String TEXT = "text";
private static final String ALPHABET = "alphabet";
private static final int WORD_COUNT_PRECISION_IN_SENTENCE = 6;
private final BaseProducer baseProducer;
private final String loremIpsum;
private final String text;
private final List words;
private final String alphabet;
private final int maxAlphabetIndex;
private final List latinWords;
public TextProducerInternal(DataMaster dataMaster, BaseProducer baseProducer) {
this.baseProducer = baseProducer;
loremIpsum = dataMaster.getString(LOREM_IPSUM);
text = dataMaster.getString(TEXT);
words = new ArrayList<>(Arrays.asList(split(text, ' ')));
latinWords = new ArrayList<>(Arrays.asList(split(loremIpsum, ' ')));
alphabet = dataMaster.getString(ALPHABET);
maxAlphabetIndex = alphabet.length() - 1;
}
/**
* Returns the raw Lorem Ipsum template string.
*
* @return the full lorem ipsum text
*/
public String loremIpsum() {
return loremIpsum;
}
/**
* Generates a space-separated string of random words.
*
* @param words source list of words
* @param count base number of words
* @param precision maximum additional random words to add
* @return a string containing the random words
*/
public String rawWords(List words, int count, int precision) {
List result = readRawWords(words, count, precision);
return joinWithSpace(result);
}
/**
* Returns a list of cleaned Latin words without punctuation.
*
* @param count number of words to return
* @return a space-separated string of lowercase Latin words
*/
public String cleanLatinWords(int count) {
return cleanWords(latinWords, count);
}
/**
* Returns a list of cleaned standard words without punctuation.
*
* @param count number of words to return
* @return a space-separated string of lowercase words
*/
public String cleanWords(int count) {
return cleanWords(words, count);
}
private String cleanWords(List words, int count) {
List result = new ArrayList<>();
for (String part : readRawWords(words, count, 0)) {
// efficiently remove punctuation and lowercase
result.add(uncapitalize(replaceChars(part, "., ", "")));
}
return joinWithSpace(result);
}
/**
* Generates a random string of a specific length using the configured alphabet.
*
* @param charsCount the desired length of the string
* @return a random string
*/
public String randomString(int charsCount) {
StringBuilder sb = new StringBuilder(charsCount);
for (int i = 0; i < charsCount; i++) {
sb.append(alphabet.charAt(baseProducer.randomInt(maxAlphabetIndex)));
}
return sb.toString();
}
private List readRawWords(List words, int count, int precision) {
return baseProducer.randomElements(words, baseProducer.randomBetween(count, count + precision));
}
/**
* Returns the raw standard text template.
*
* @return the base text string
*/
public String text() {
return text;
}
/**
* Generates a formatted sentence from standard words.
*
* @param wordCount number of words in the sentence
* @return a formatted sentence
*/
public String sentence(int wordCount) {
return sentence(words, wordCount);
}
/**
* Generates a formatted sentence from Latin words.
*
* @param wordCount number of words in the sentence
* @return a formatted Latin sentence
*/
public String latinSentence(int wordCount) {
return sentence(latinWords, wordCount);
}
private String sentence(List words, int wordCount) {
String randomWords = rawWords(words, wordCount, WORD_COUNT_PRECISION_IN_SENTENCE);
if (randomWords == null || randomWords.isEmpty()) {
return ".";
}
// simplified logic: capitalize and ensure proper ending
String result = capitalize(randomWords).trim();
// clean up trailing commas from random selection
if (result.endsWith(",")) {
result = result.substring(0, result.length() - 1);
}
// enforce single trailing period
if (!result.endsWith(".")) {
result += ".";
}
return result;
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/util/AlphaNumberSystem.java
================================================
package com.devskiller.jfairy.producer.util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Utility class for alpha-numeric system operations.
*
* Provides methods to handle alphabet-based numbering and conversions.
*/
public final class AlphaNumberSystem {
private static final int ALPHABET_SIZE = 26;
private AlphaNumberSystem() {
throw new UnsupportedOperationException(
"Utility class " + getClass().getSimpleName() + " cannot be instantiated");
}
/**
* Generates an immutable list of all uppercase alphabet characters.
*
* @return an unmodifiable list of characters from A to Z
*/
public static List generateAlphabetList() {
List alphabetList = new ArrayList<>(ALPHABET_SIZE);
for (char letter = 'A'; letter <= 'Z'; letter++) {
alphabetList.add(letter);
}
return Collections.unmodifiableList(alphabetList);
}
/**
* Converts a given number to a string representation based on the provided radix.
*
* The conversion maps values to the uppercase alphabet (A-Z).
*
* @param numberToConvert the non-negative integer value to convert
* @param base the radix to be used for conversion (1-26)
* @return a string representation of the number
* @throws IllegalArgumentException if numberToConvert is negative or base is out of range
*/
public static String convertToString(final int numberToConvert, final int base) {
if (numberToConvert < 0) {
throw new IllegalArgumentException("Number to convert must be non-negative");
}
if (base <= 0 || base > ALPHABET_SIZE) {
throw new IllegalArgumentException("Base must be between 1 and " + ALPHABET_SIZE);
}
// Use a safe buffer size for the conversion
// For base 1, the length is the number itself; for others it's log based.
int bufferLength = (base == 1) ? Math.max(1, numberToConvert) : (int) (Math.log(Math.max(1, numberToConvert)) / Math.log(base)) + 1;
final char[] buffer = new char[bufferLength];
int charPosition = buffer.length - 1;
int number = numberToConvert;
if (number == 0) {
buffer[charPosition--] = 'A';
} else if (base == 1) {
for (int i = 0; i < numberToConvert; i++) {
buffer[charPosition--] = 'A';
}
} else {
while (number > 0) {
buffer[charPosition--] = (char) ('A' + (number % base));
number /= base;
}
}
return new String(buffer, charPosition + 1, buffer.length - charPosition - 1);
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/util/LanguageCode.java
================================================
package com.devskiller.jfairy.producer.util;
/**
* Supported language and country codes for data localization.
*
* This enumeration defines the available locales for which the producers
* can generate localized data like names, addresses, or company details.
*
* @author Olga Maciaszek-Sharma
* @since 21.03.15
*/
public enum LanguageCode {
PL,
EN,
ES,
FR,
KA,
IT,
DE,
SV,
ZH,
BR,
SK,
TR
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/util/StringUtils.java
================================================
package com.devskiller.jfairy.producer.util;
import java.text.Normalizer;
import java.util.List;
import java.util.Locale;
import org.jspecify.annotations.Nullable;
/**
* Utility class providing string manipulation helpers used throughout jFairy.
*
*
Methods are intentionally minimal: only functionality actually required by
* the library is implemented. The API deliberately mirrors the subset of
* {@code org.apache.commons.lang3.StringUtils} that was in use, so migration
* of call-sites is mechanical.
*
*
Null-handling contract: every method that accepts a {@link String}
* parameter documents its null-behavior explicitly. Methods annotated
* {@code @Nullable} on the parameter accept {@code null}; all others require
* non-null input and will throw {@link NullPointerException} if passed
* {@code null}.
*
* @author Markus Spann
* @since 2026/03/14
*/
public final class StringUtils {
/** Prevent instantiation of this utility class. */
private StringUtils() {
throw new UnsupportedOperationException(
"Utility class " + getClass().getSimpleName() + " cannot be instantiated");
}
// -------------------------------------------------------------------------
// Blank / empty checks
// -------------------------------------------------------------------------
/**
* Returns {@code true} when the string is neither {@code null}, nor empty,
* nor contains only whitespace characters.
*
* @param s the string to check; may be {@code null}
* @return {@code true} if {@code s} has at least one non-whitespace character
*/
public static boolean isNotBlank(@Nullable String s) {
return s != null && !s.isBlank();
}
/**
* Returns {@code true} when the string is neither {@code null} nor empty
* (length zero). A string containing only whitespace is considered
* not empty .
*
* @param s the string to check; may be {@code null}
* @return {@code true} if {@code s} is non-null and has length > 0
*/
public static boolean isNotEmpty(@Nullable String s) {
return s != null && !s.isEmpty();
}
// -------------------------------------------------------------------------
// Case conversion
// -------------------------------------------------------------------------
/**
* Converts all characters in {@code s} to lower case using the rules of the
* default locale.
*
* @param s the string to convert; must not be {@code null}
* @return lower-case version of {@code s}
*/
public static String lowerCase(String s) {
return s.toLowerCase(Locale.ROOT);
}
/**
* Capitalizes the first character of {@code s} (converts it to upper case)
* and leaves the rest unchanged.
*
* @param s the string to capitalize; must not be {@code null}
* @return the string with its first character in upper case, or {@code s}
* unchanged if it is empty
*/
public static String capitalize(String s) {
if (s.isEmpty()) {
return s;
}
return Character.toUpperCase(s.charAt(0)) + s.substring(1);
}
/**
* Un-capitalizes the first character of {@code s} (converts it to lower
* case) and leaves the rest unchanged.
*
* @param s the string to un-capitalize; must not be {@code null}
* @return the string with its first character in lower case, or {@code s}
* unchanged if it is empty
*/
public static String uncapitalize(String s) {
if (s.isEmpty()) {
return s;
}
return Character.toLowerCase(s.charAt(0)) + s.substring(1);
}
// -------------------------------------------------------------------------
// Padding
// -------------------------------------------------------------------------
/**
* Left-pads {@code s} with the character {@code padChar} until its length
* reaches {@code size}. If {@code s} is already at least {@code size}
* characters long, it is returned unchanged.
*
* @param s the string to pad; must not be {@code null}
* @param size the desired minimum length
* @param padChar the padding character
* @return the padded string
*/
public static String leftPad(String s, int size, char padChar) {
int pads = size - s.length();
if (pads <= 0) {
return s;
}
return String.valueOf(padChar).repeat(pads) + s;
}
/**
* Left-pads {@code s} with the first character of {@code padStr} until its
* length reaches {@code size}. If {@code s} is already at least {@code size}
* characters long, it is returned unchanged.
*
* @param s the string to pad; must not be {@code null}
* @param size the desired minimum length
* @param padStr the padding string (only the first character is used);
* must not be {@code null} or empty
* @return the padded string
*/
public static String leftPad(String s, int size, String padStr) {
return leftPad(s, size, padStr.charAt(0));
}
// -------------------------------------------------------------------------
// Trimming / stripping
// -------------------------------------------------------------------------
/**
* Removes leading and trailing occurrences of any character in
* {@code stripChars} from {@code s}.
*
*
Example: {@code strip("...hello...", ".")} returns {@code "hello"}.
*
* @param s the string to strip; must not be {@code null}
* @param stripChars the characters to strip; must not be {@code null}
* @return the stripped string
*/
public static String strip(String s, String stripChars) {
int start = 0;
int end = s.length();
while (start < end && stripChars.indexOf(s.charAt(start)) >= 0) {
start++;
}
while (end > start && stripChars.indexOf(s.charAt(end - 1)) >= 0) {
end--;
}
return s.substring(start, end);
}
/**
* Removes all whitespace characters from {@code s}.
*
*
Whitespace is defined by {@link Character#isWhitespace(int)}.
*
* @param s the string; must not be {@code null}
* @return the string with all whitespace removed
*/
public static String deleteWhitespace(String s) {
int len = s.length();
StringBuilder sb = new StringBuilder(len);
for (int i = 0; i < len; i++) {
char c = s.charAt(i);
if (!Character.isWhitespace(c)) {
sb.append(c);
}
}
return sb.length() == len ? s : sb.toString();
}
// -------------------------------------------------------------------------
// Splitting / joining
// -------------------------------------------------------------------------
/**
* Splits {@code s} on the given delimiter character and returns the parts
* as an array. Unlike {@link String#split(String)} this method never
* discards trailing empty strings (equivalent to passing {@code -1} as the
* limit to {@link String#split(String, int)}).
*
*
Example: {@code split("a b c", ' ')} returns {@code ["a", "b", "c"]}.
*
* @param s the string to split; must not be {@code null}
* @param separator the delimiter character
* @return array of parts; never {@code null}, never empty
*/
public static String[] split(String s, char separator) {
return s.split(String.valueOf(separator), -1);
}
/**
* Joins the elements of {@code parts} with a single space character between
* each element.
*
*
Example: {@code joinWithSpace(List.of("hello", "world"))} returns
* {@code "hello world"}.
*
* @param parts the list of strings to join; must not be {@code null}
* @return the joined string; an empty string if {@code parts} is empty
*/
public static String joinWithSpace(List parts) {
return String.join(" ", parts);
}
// -------------------------------------------------------------------------
// Substring operations
// -------------------------------------------------------------------------
/**
* Returns the left-most {@code len} characters of {@code s}, or {@code s}
* itself if its length is less than or equal to {@code len}.
*
* @param s the string; must not be {@code null}
* @param len the maximum number of characters to return; must be >= 0
* @return the left-most {@code len} characters
*/
public static String left(String s, int len) {
if (len >= s.length()) {
return s;
}
return s.substring(0, len);
}
/**
* Removes the given {@code suffix} from the end of {@code s}, if present.
* If {@code s} does not end with {@code suffix}, it is returned unchanged.
*
* @param s the string; must not be {@code null}
* @param suffix the suffix to remove; must not be {@code null}
* @return the string without the trailing suffix
*/
public static String removeEnd(String s, String suffix) {
if (s.endsWith(suffix)) {
return s.substring(0, s.length() - suffix.length());
}
return s;
}
/**
* Returns {@code true} if {@code s} ends with {@code suffix}.
* Equivalent to {@link String#endsWith} but provided for API symmetry with
* the other methods in this class.
*
* @param s the string; must not be {@code null}
* @param suffix the suffix; must not be {@code null}
* @return {@code true} if {@code s} ends with {@code suffix}
*/
public static boolean endsWith(String s, String suffix) {
return s.endsWith(suffix);
}
// -------------------------------------------------------------------------
// Search / replace
// -------------------------------------------------------------------------
/**
* Replaces all occurrences of {@code searchString} with {@code replacement}
* in {@code s}.
*
* @param s the source string; must not be {@code null}
* @param searchString the literal string to search for; must not be
* {@code null}
* @param replacement the replacement string; must not be {@code null}
* @return the modified string, or {@code s} if no occurrences were found
*/
public static String replace(String s, String searchString, String replacement) {
return s.replace(searchString, replacement);
}
/**
* Replaces all characters in {@code s} that appear in {@code searchChars}
* with the corresponding character at the same index in
* {@code replaceChars}.
*
* Characters in {@code searchChars} that have no corresponding entry in
* {@code replaceChars} are deleted from the result.
*
*
Example: {@code replaceChars("hello.world, ", "., ", "---")} returns
* {@code "hello-world-"}.
*
* @param s the string; must not be {@code null}
* @param searchChars the characters to search for; must not be {@code null}
* @param replaceChars the replacement characters; may be shorter than
* {@code searchChars}
* @return the modified string
*/
public static String replaceChars(String s, String searchChars, String replaceChars) {
StringBuilder sb = new StringBuilder(s.length());
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int idx = searchChars.indexOf(c);
if (idx < 0) {
// character not in search set – keep as-is
sb.append(c);
} else if (idx < replaceChars.length()) {
// character has a replacement
sb.append(replaceChars.charAt(idx));
}
// else: character is in search set but beyond replaceChars length – delete it
}
return sb.toString();
}
// -------------------------------------------------------------------------
// Unicode / accent stripping
// -------------------------------------------------------------------------
/**
* Converts accented and special characters to their ASCII equivalents,
* e.g. for use in email addresses, usernames or domain names.
*
*
Handles characters that survive Unicode NFD normalization:
* {@code ß} becomes {@code ss}, {@code ł/Ł} becomes {@code l/L}.
*
* @param s the string to process; must not be {@code null}
* @return the latinized string
*/
public static String latinize(String s) {
if (s.isEmpty()) {
return s;
}
// handle special characters that survive NFD normalization
String result = s.replace("ł", "l")
.replace("Ł", "L")
.replace("ß", "ss");
// decompose and filter remaining diacritics
String normalized = Normalizer.normalize(result, Normalizer.Form.NFD);
StringBuilder sb = new StringBuilder(normalized.length());
for (int i = 0; i < normalized.length(); i++) {
char c = normalized.charAt(i);
// Character.getType(c) == Character.NON_SPACING_MARK corresponds to \p{Mn}
if (Character.getType(c) != Character.NON_SPACING_MARK) {
sb.append(c);
}
}
return sb.toString();
}
// -------------------------------------------------------------------------
// Non-ASCII escaping
// -------------------------------------------------------------------------
/**
* Escapes all non-ASCII characters in {@code input} as Unicode escape sequences.
*
* ASCII characters (codepoints 0x00–0x7F) are passed through unchanged.
* Returns {@code null} when {@code input} is {@code null}.
*
* @param input the string to escape; may be {@code null}
* @return the escaped string, or {@code null} if {@code input} is {@code null}
*/
public static @Nullable String escapeNonAscii(@Nullable String input) {
if (input == null) {
return null;
}
StringBuilder sb = new StringBuilder(input.length());
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (c > 0x7f) {
sb.append(String.format("\\u%04x", (int) c));
} else {
sb.append(c);
}
}
return sb.toString();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/util/ValidateUtils.java
================================================
package com.devskiller.jfairy.producer.util;
import org.jspecify.annotations.Nullable;
/**
* Utility class providing argument-validation helpers.
*
*
Methods throw {@link IllegalArgumentException} on failure.
*
* @author Markus Spann
* @since 2026/03/14
*/
public final class ValidateUtils {
/** Prevent instantiation of this utility class. */
private ValidateUtils() {
throw new UnsupportedOperationException(
"Utility class " + getClass().getSimpleName() + " cannot be instantiated");
}
/**
* Validates that {@code value} is not {@code null}.
*
* @param the type of the object being validated
* @param value the value to check
* @param message the detail message used in the exception; may contain
* {@link String#format} placeholders
* @param args optional arguments for {@code message}
* @return {@code value}, guaranteed non-null, for convenient inline use
* @throws IllegalArgumentException if {@code value} is {@code null}
*/
@SuppressWarnings("AnnotateFormatMethod")
public static T notNull(@Nullable T value, String message, Object... args) {
if (value == null) {
throw new IllegalArgumentException(
args.length == 0 ? message : String.format(message, args));
}
return value;
}
/**
* Validates that {@code expression} is {@code true}.
*
* @param expression the boolean expression to check
* @param message the detail message used in the exception; may contain
* {@link String#format} placeholders
* @param args optional arguments for {@code message}
* @throws IllegalArgumentException if {@code expression} is {@code false}
*/
@SuppressWarnings("AnnotateFormatMethod")
public static void isTrue(boolean expression, String message, Object... args) {
if (!expression) {
throw new IllegalArgumentException(
args.length == 0 ? message : String.format(message, args));
}
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/util/ZhFairyUtil.java
================================================
package com.devskiller.jfairy.producer.util;
import java.util.List;
import com.devskiller.jfairy.producer.BaseProducer;
/**
* com.devskiller.jfairy.producer.util.ZhFairyUtil
*
* @author lhfcws
* @since 2017/3/10
*/
public final class ZhFairyUtil {
private ZhFairyUtil() {}
/**
* Codes of China provinces
*/
public static final List PROV_LIST = List.of(
"11", // Beijing
"12", // Tianjin
"13", // Hebei
"14", // Shanxi
"15", // Neimenggu
"21", // Liaoning
"22", // Jilin
"23", // Heilongjiang
"31", // Shanghai
"32", // Jiangsu
"33", // Zhejiang
"34", // Anhui
"35", // Fujian
"36", // Jiangxi
"41", // Henan
"42", // Hubei
"43", // Hunan
"44", // Guangdong
"45", // Guangxi
"46", // Hainan
"50", // Chongqing
"51", // Sichuan
"52", // Guizhou
"53", // Yunnan
"54", // Xizang
"61", // Shaanxi
"62", // Gansu
"63", // Qinghai
"64", // Ningxia
"65", // Xinjiang
"71", // Taiwan
"81", // Hong Kong
"82" // Macau
);
/**
* Max code of city
*/
public static final int CITY_MAX = 30;
/**
* Max code of city district
*/
public static final int DISTRICT_MAX = 12;
/**
* Get random number from 1 to max in 0 leading string format.
* @param baseProducer BaseProducer
* @param max upper bound of number
* @param paddingSize padding size
* @return A number smaller than #max with #paddingSize digits in string format
*/
public static String getRandomNumStr(BaseProducer baseProducer, int max, int paddingSize) {
int rndNum = baseProducer.randomBetween(1, max);
StringBuilder numStr = new StringBuilder("" + rndNum);
while (numStr.length() < paddingSize) {
numStr.insert(0, "0");
}
return numStr.toString();
}
}
================================================
FILE: src/main/java/com/devskiller/jfairy/producer/util/package-info.java
================================================
/**
* Internal utility classes for the jFairy fake data producer.
*
* This package contains stateless helper utilities used across the library:
*
* {@link com.devskiller.jfairy.producer.util.StringUtils} – string manipulation
* (padding, trimming, case conversion, accent stripping, joining, splitting, …)
* {@link com.devskiller.jfairy.producer.util.ValidateUtils} – argument validation
* ({@code notNull}, {@code isTrue})
* {@link com.devskiller.jfairy.producer.util.AlphaNumberSystem} – base-26 encoding
* used for identity-card number generation
*
*
* All classes in this package are not part of the public API and may
* change without notice between releases.
*/
@NullMarked
package com.devskiller.jfairy.producer.util;
import org.jspecify.annotations.NullMarked;
================================================
FILE: src/main/resources/jfairy.yml
================================================
creditCardPrefixes: {
Visa: [4]
}
lastNames: {
male: [Abbott, Acevedo, Acosta, Adams, Adkins, Aguilar, Aguirre, Albert, Alexander, Alford, Allen, Allison, Alston, Alvarado, Alvarez, Anderson, Andrews, Anthony, Armstrong, Arnold, Ashley, Atkins, Atkinson, Austin, Avery, Avila, Ayala, Ayers, Bailey, Baird, Baker, Baldwin, Ball, Ballard, Banks, Barber, Barker, Barlow, Barnes, Barnett, Barr, Barrera, Barrett, Barron, Barry, Bartlett, Barton, Bass, Bates, Battle, Bauer, Baxter, Beach, Bean, Beard, Beasley, Beck, Becker, Bell, Bender, Benjamin, Bennett, Benson, Bentley, Benton, Berg, Berger, Bernard, Berry, Best, Bird, Bishop, Black, Blackburn, Blackwell, Blair, Blake, Blanchard, Blankenship, Blevins, Bolton, Bond, Bonner, Booker, Boone, Booth, Bowen, Bowers, Bowman, Boyd, Boyer, Boyle, Bradford, Bradley, Bradshaw, Brady, Branch, Bray, Brennan, Brewer, Bridges, Briggs, Bright, Britt, Brock, Brooks, Brown, Browning, Bruce, Bryan, Bryant, Buchanan, Buck, Buckley, Buckner, Bullock, Burch, Burgess, Burke, Burks, Burnett, Burns, Burris, Burt, Burton, Bush, Butler, Byers, Byrd, Cabrera, Cain, Calderon, Caldwell, Calhoun, Callahan, Camacho, Cameron, Campbell, Campos, Cannon, Cantrell, Cantu, Cardenas, Carey, Carlson, Carney, Carpenter, Carr, Carrillo, Carroll, Carson, Carter, Carver, Case, Casey, Cash, Castaneda, Castillo, Castro, Cervantes, Chambers, Chan, Chandler, Chaney, Chang, Chapman, Charles, Chase, Chavez, Chen, Cherry, Christensen, Christian, Church, Clark, Clarke, Clay, Clayton, Clements, Clemons, Cleveland, Cline, Cobb, Cochran, Coffey, Cohen, Cole, Coleman, Collier, Collins, Colon, Combs, Compton, Conley, Conner, Conrad, Contreras, Conway, Cook, Cooke, Cooley, Cooper, Copeland, Cortez, Cote, Cotton, Cox, Craft, Craig, Crane, Crawford, Crosby, Cross, Cruz, Cummings, Cunningham, Curry, Curtis, Dale, Dalton, Daniel, Daniels, Daugherty, Davenport, David, Davidson, Davis, Dawson, Day, Dean, Decker, Dejesus, Delacruz, Delaney, Deleon, Delgado, Dennis, Diaz, Dickerson, Dickson, Dillard, Dillon, Dixon, Dodson, Dominguez, Donaldson, Donovan, Dorsey, Dotson, Douglas, Downs, Doyle, Drake, Dudley, Duffy, Duke, Duncan, Dunlap, Dunn, Duran, Durham, Dyer, Eaton, Edwards, Elliott, Ellis, Ellison, Emerson, England, English, Erickson, Espinoza, Estes, Estrada, Evans, Everett, Ewing, Farley, Farmer, Farrell, Faulkner, Ferguson, Fernandez, Ferrell, Fields, Figueroa, Finch, Finley, Fischer, Fisher, Fitzgerald, Fitzpatrick, Fleming, Fletcher, Flores, Flowers, Floyd, Flynn, Foley, Forbes, Ford, Foreman, Foster, Fowler, Fox, Francis, Franco, Frank, Franklin, Franks, Frazier, Frederick, Freeman, French, Frost, Fry, Frye, Fuentes, Fuller, Fulton, Gaines, Gallagher, Gallegos, Galloway, Gamble, Garcia, Gardner, Garner, Garrett, Garrison, Garza, Gates, Gay, Gentry, George, Gibbs, Gibson, Gilbert, Giles, Gill, Gillespie, Gilliam, Gilmore, Glass, Glenn, Glover, Goff, Golden, Gomez, Gonzales, Gonzalez, Good, Goodman, Goodwin, Gordon, Gould, Graham, Grant, Graves, Gray, Green, Greene, Greer, Gregory, Griffin, Griffith, Grimes, Gross, Guerra, Guerrero, Guthrie, Gutierrez, Guy, Guzman, Hahn, Hale, Haley, Hall, Hamilton, Hammond, Hampton, Hancock, Haney, Hansen, Hanson, Hardin, Harding, Hardy, Harmon, Harper, Harrell, Harrington, Harris, Harrison, Hart, Hartman, Harvey, Hatfield, Hawkins, Hayden, Hayes, Haynes, Hays, Head, Heath, Hebert, Henderson, Hendricks, Hendrix, Henry, Hensley, Henson, Herman, Hernandez, Herrera, Herring, Hess, Hester, Hewitt, Hickman, Hicks, Higgins, Hill, Hines, Hinton, Hobbs, Hodge, Hodges, Hoffman, Hogan, Holcomb, Holden, Holder, Holland, Holloway, Holman, Holmes, Holt, Hood, Hooper, Hoover, Hopkins, Hopper, Horn, Horne, Horton, House, Houston, Howard, Howe, Howell, Hubbard, Huber, Hudson, Huff, Huffman, Hughes, Hull, Humphrey, Hunt, Hunter, Hurley, Hurst, Hutchinson, Hyde, Ingram, Irwin, Jackson, Jacobs, Jacobson, James, Jarvis, Jefferson, Jenkins, Jennings, Jensen, Jimenez, Johns, Johnson, Johnston, Jones, Jordan, Joseph, Joyce, Joyner, Juarez, Justice, Kane, Kaufman, Keith, Keller, Kelley, Kelly, Kemp, Kennedy, Kent, Kerr, Key, Kidd, Kim, King, Kinney, Kirby, Kirk, Kirkland, Klein, Kline, Knapp, Knight, Knowles, Knox, Koch, Kramer, Lamb, Lambert, Lancaster, Landry, Lane, Lang, Langley, Lara, Larsen, Larson, Lawrence, Lawson, Le, Leach, Leblanc, Lee, Leon, Leonard, Lester, Levine, Levy, Lewis, Lindsay, Lindsey, Little, Livingston, Lloyd, Logan, Long, Lopez, Lott, Love, Lowe, Lowery, Lucas, Luna, Lynch, Lynn, Lyons, Macdonald, Macias, Mack, Madden, Maddox, Maldonado, Malone, Mann, Manning, Marks, Marquez, Marsh, Marshall, Martin, Martinez, Mason, Massey, Mathews, Mathis, Matthews, Maxwell, May, Mayer, Maynard, Mayo, Mays, Mcbride, Mccall, Mccarthy, Mccarty, Mcclain, Mcclure, Mcconnell, Mccormick, Mccoy, Mccray, Mccullough, Mcdaniel, Mcdonald, Mcdowell, Mcfadden, Mcfarland, Mcgee, Mcgowan, Mcguire, Mcintosh, Mcintyre, Mckay, Mckee, Mckenzie, Mckinney, Mcknight, Mclaughlin, Mclean, Mcleod, Mcmahon, Mcmillan, Mcneil, Mcpherson, Meadows, Medina, Mejia, Melendez, Melton, Mendez, Mendoza, Mercado, Mercer, Merrill, Merritt, Meyer, Meyers, Michael, Middleton, Miles, Miller, Mills, Miranda, Mitchell, Molina, Monroe, Montgomery, Montoya, Moody, Moon, Mooney, Moore, Morales, Moran, Moreno, Morgan, Morin, Morris, Morrison, Morrow, Morse, Morton, Moses, Mosley, Moss, Mueller, Mullen, Mullins, Munoz, Murphy, Murray, Myers, Nash, Navarro, Neal, Nelson, Newman, Newton, Nguyen, Nichols, Nicholson, Nielsen, Nieves, Nixon, Noble, Noel, Nolan, Norman, Norris, Norton, Nunez, Obrien, Ochoa, Oconnor, Odom, Odonnell, Oliver, Olsen, Olson, Oneal, Oneil, Oneill, Orr, Ortega, Ortiz, Osborn, Osborne, Owen, Owens, Pace, Pacheco, Padilla, Page, Palmer, Park, Parker, Parks, Parrish, Parsons, Pate, Patel, Patrick, Patterson, Patton, Paul, Payne, Pearson, Peck, Pena, Pennington, Perez, Perkins, Perry, Peters, Petersen, Peterson, Petty, Phelps, Phillips, Pickett, Pierce, Pittman, Pitts, Pollard, Poole, Pope, Porter, Potter, Potts, Powell, Powers, Pratt, Preston, Price, Prince, Pruitt, Puckett, Pugh, Quinn, Ramirez, Ramos, Ramsey, Randall, Randolph, Rasmussen, Ratliff, Ray, Raymond, Reed, Reese, Reeves, Reid, Reilly, Reyes, Reynolds, Rhodes, Rice, Rich, Richard, Richards, Richardson, Richmond, Riddle, Riggs, Riley, Rios, Rivas, Rivera, Rivers, Roach, Robbins, Roberson, Roberts, Robertson, Robinson, Robles, Rocha, Rodgers, Rodriguez, Rodriquez, Rogers, Rojas, Rollins, Roman, Romero, Rosa, Rosales, Rosario, Rose, Ross, Roth, Rowe, Rowland, Roy, Ruiz, Rush, Russell, Russo, Rutledge, Ryan, Salas, Salazar, Salinas, Sampson, Sanchez, Sanders, Sandoval, Santana, Santiago, Santos, Sargent, Saunders, Savage, Sawyer, Schmidt, Schneider, Schroeder, Schultz, Schwartz, Scott, Sears, Sellers, Serrano, Sexton, Shaffer, Shannon, Sharp, Sharpe, Shaw, Shelton, Shepard, Shepherd, Sheppard, Sherman, Shields, Short, Silva, Simmons, Simon, Simpson, Sims, Singleton, Skinner, Slater, Sloan, Small, Smith, Snider, Snow, Snyder, Solis, Solomon, Sosa, Soto, Sparks, Spears, Spence, Spencer, Stafford, Stanley, Stanton, Stark, Steele, Stein, Stephens, Stephenson, Stevens, Stevenson, Stewart, Stokes, Stone, Stout, Strickland, Strong, Stuart, Suarez, Sullivan, Summers, Sutton, Swanson, Sweeney, Sweet, Sykes, Talley, Tanner, Tate, Taylor, Terrell, Terry, Thomas, Thompson, Thornton, Tillman, Todd, Torres, Townsend, Tran, Travis, Trevino, Trujillo, Tucker, Turner, Tyler, Tyson, Underwood, Valdez, Valencia, Valentine, Valenzuela, Vance, Vang, Vargas, Vasquez, Vaughan, Vaughn, Vazquez, Vega, Velasquez, Velazquez, Velez, Villarreal, Vincent, Vinson, Wade, Wagner, Walker, Wall, Wallace, Waller, Walls, Walsh, Walter, Walters, Walton, Ward, Ware, Warner, Warren, Washington, Waters, Watkins, Watson, Watts, Weaver, Webb, Weber, Webster, Weeks, Weiss, Welch, Wells, West, Wheeler, Whitaker, White, Whitehead, Whitfield, Whitley, Whitney, Wiggins, Wilcox, Wilder, Wiley, Wilkerson, Wilkins, Wilkinson, William, Williams, Williamson, Willis, Wilson, Winters, Wise, Witt, Wolf, Wolfe, Wong, Wood, Woodard, Woods, Woodward, Wooten, Workman, Wright, Wyatt, Wynn, Yang, Yates, York, Young, Zamora, Zimmerman],
female: [Abbott, Acevedo, Acosta, Adams, Adkins, Aguilar, Aguirre, Albert, Alexander, Alford, Allen, Allison, Alston, Alvarado, Alvarez, Anderson, Andrews, Anthony, Armstrong, Arnold, Ashley, Atkins, Atkinson, Austin, Avery, Avila, Ayala, Ayers, Bailey, Baird, Baker, Baldwin, Ball, Ballard, Banks, Barber, Barker, Barlow, Barnes, Barnett, Barr, Barrera, Barrett, Barron, Barry, Bartlett, Barton, Bass, Bates, Battle, Bauer, Baxter, Beach, Bean, Beard, Beasley, Beck, Becker, Bell, Bender, Benjamin, Bennett, Benson, Bentley, Benton, Berg, Berger, Bernard, Berry, Best, Bird, Bishop, Black, Blackburn, Blackwell, Blair, Blake, Blanchard, Blankenship, Blevins, Bolton, Bond, Bonner, Booker, Boone, Booth, Bowen, Bowers, Bowman, Boyd, Boyer, Boyle, Bradford, Bradley, Bradshaw, Brady, Branch, Bray, Brennan, Brewer, Bridges, Briggs, Bright, Britt, Brock, Brooks, Brown, Browning, Bruce, Bryan, Bryant, Buchanan, Buck, Buckley, Buckner, Bullock, Burch, Burgess, Burke, Burks, Burnett, Burns, Burris, Burt, Burton, Bush, Butler, Byers, Byrd, Cabrera, Cain, Calderon, Caldwell, Calhoun, Callahan, Camacho, Cameron, Campbell, Campos, Cannon, Cantrell, Cantu, Cardenas, Carey, Carlson, Carney, Carpenter, Carr, Carrillo, Carroll, Carson, Carter, Carver, Case, Casey, Cash, Castaneda, Castillo, Castro, Cervantes, Chambers, Chan, Chandler, Chaney, Chang, Chapman, Charles, Chase, Chavez, Chen, Cherry, Christensen, Christian, Church, Clark, Clarke, Clay, Clayton, Clements, Clemons, Cleveland, Cline, Cobb, Cochran, Coffey, Cohen, Cole, Coleman, Collier, Collins, Colon, Combs, Compton, Conley, Conner, Conrad, Contreras, Conway, Cook, Cooke, Cooley, Cooper, Copeland, Cortez, Cote, Cotton, Cox, Craft, Craig, Crane, Crawford, Crosby, Cross, Cruz, Cummings, Cunningham, Curry, Curtis, Dale, Dalton, Daniel, Daniels, Daugherty, Davenport, David, Davidson, Davis, Dawson, Day, Dean, Decker, Dejesus, Delacruz, Delaney, Deleon, Delgado, Dennis, Diaz, Dickerson, Dickson, Dillard, Dillon, Dixon, Dodson, Dominguez, Donaldson, Donovan, Dorsey, Dotson, Douglas, Downs, Doyle, Drake, Dudley, Duffy, Duke, Duncan, Dunlap, Dunn, Duran, Durham, Dyer, Eaton, Edwards, Elliott, Ellis, Ellison, Emerson, England, English, Erickson, Espinoza, Estes, Estrada, Evans, Everett, Ewing, Farley, Farmer, Farrell, Faulkner, Ferguson, Fernandez, Ferrell, Fields, Figueroa, Finch, Finley, Fischer, Fisher, Fitzgerald, Fitzpatrick, Fleming, Fletcher, Flores, Flowers, Floyd, Flynn, Foley, Forbes, Ford, Foreman, Foster, Fowler, Fox, Francis, Franco, Frank, Franklin, Franks, Frazier, Frederick, Freeman, French, Frost, Fry, Frye, Fuentes, Fuller, Fulton, Gaines, Gallagher, Gallegos, Galloway, Gamble, Garcia, Gardner, Garner, Garrett, Garrison, Garza, Gates, Gay, Gentry, George, Gibbs, Gibson, Gilbert, Giles, Gill, Gillespie, Gilliam, Gilmore, Glass, Glenn, Glover, Goff, Golden, Gomez, Gonzales, Gonzalez, Good, Goodman, Goodwin, Gordon, Gould, Graham, Grant, Graves, Gray, Green, Greene, Greer, Gregory, Griffin, Griffith, Grimes, Gross, Guerra, Guerrero, Guthrie, Gutierrez, Guy, Guzman, Hahn, Hale, Haley, Hall, Hamilton, Hammond, Hampton, Hancock, Haney, Hansen, Hanson, Hardin, Harding, Hardy, Harmon, Harper, Harrell, Harrington, Harris, Harrison, Hart, Hartman, Harvey, Hatfield, Hawkins, Hayden, Hayes, Haynes, Hays, Head, Heath, Hebert, Henderson, Hendricks, Hendrix, Henry, Hensley, Henson, Herman, Hernandez, Herrera, Herring, Hess, Hester, Hewitt, Hickman, Hicks, Higgins, Hill, Hines, Hinton, Hobbs, Hodge, Hodges, Hoffman, Hogan, Holcomb, Holden, Holder, Holland, Holloway, Holman, Holmes, Holt, Hood, Hooper, Hoover, Hopkins, Hopper, Horn, Horne, Horton, House, Houston, Howard, Howe, Howell, Hubbard, Huber, Hudson, Huff, Huffman, Hughes, Hull, Humphrey, Hunt, Hunter, Hurley, Hurst, Hutchinson, Hyde, Ingram, Irwin, Jackson, Jacobs, Jacobson, James, Jarvis, Jefferson, Jenkins, Jennings, Jensen, Jimenez, Johns, Johnson, Johnston, Jones, Jordan, Joseph, Joyce, Joyner, Juarez, Justice, Kane, Kaufman, Keith, Keller, Kelley, Kelly, Kemp, Kennedy, Kent, Kerr, Key, Kidd, Kim, King, Kinney, Kirby, Kirk, Kirkland, Klein, Kline, Knapp, Knight, Knowles, Knox, Koch, Kramer, Lamb, Lambert, Lancaster, Landry, Lane, Lang, Langley, Lara, Larsen, Larson, Lawrence, Lawson, Le, Leach, Leblanc, Lee, Leon, Leonard, Lester, Levine, Levy, Lewis, Lindsay, Lindsey, Little, Livingston, Lloyd, Logan, Long, Lopez, Lott, Love, Lowe, Lowery, Lucas, Luna, Lynch, Lynn, Lyons, Macdonald, Macias, Mack, Madden, Maddox, Maldonado, Malone, Mann, Manning, Marks, Marquez, Marsh, Marshall, Martin, Martinez, Mason, Massey, Mathews, Mathis, Matthews, Maxwell, May, Mayer, Maynard, Mayo, Mays, Mcbride, Mccall, Mccarthy, Mccarty, Mcclain, Mcclure, Mcconnell, Mccormick, Mccoy, Mccray, Mccullough, Mcdaniel, Mcdonald, Mcdowell, Mcfadden, Mcfarland, Mcgee, Mcgowan, Mcguire, Mcintosh, Mcintyre, Mckay, Mckee, Mckenzie, Mckinney, Mcknight, Mclaughlin, Mclean, Mcleod, Mcmahon, Mcmillan, Mcneil, Mcpherson, Meadows, Medina, Mejia, Melendez, Melton, Mendez, Mendoza, Mercado, Mercer, Merrill, Merritt, Meyer, Meyers, Michael, Middleton, Miles, Miller, Mills, Miranda, Mitchell, Molina, Monroe, Montgomery, Montoya, Moody, Moon, Mooney, Moore, Morales, Moran, Moreno, Morgan, Morin, Morris, Morrison, Morrow, Morse, Morton, Moses, Mosley, Moss, Mueller, Mullen, Mullins, Munoz, Murphy, Murray, Myers, Nash, Navarro, Neal, Nelson, Newman, Newton, Nguyen, Nichols, Nicholson, Nielsen, Nieves, Nixon, Noble, Noel, Nolan, Norman, Norris, Norton, Nunez, Obrien, Ochoa, Oconnor, Odom, Odonnell, Oliver, Olsen, Olson, Oneal, Oneil, Oneill, Orr, Ortega, Ortiz, Osborn, Osborne, Owen, Owens, Pace, Pacheco, Padilla, Page, Palmer, Park, Parker, Parks, Parrish, Parsons, Pate, Patel, Patrick, Patterson, Patton, Paul, Payne, Pearson, Peck, Pena, Pennington, Perez, Perkins, Perry, Peters, Petersen, Peterson, Petty, Phelps, Phillips, Pickett, Pierce, Pittman, Pitts, Pollard, Poole, Pope, Porter, Potter, Potts, Powell, Powers, Pratt, Preston, Price, Prince, Pruitt, Puckett, Pugh, Quinn, Ramirez, Ramos, Ramsey, Randall, Randolph, Rasmussen, Ratliff, Ray, Raymond, Reed, Reese, Reeves, Reid, Reilly, Reyes, Reynolds, Rhodes, Rice, Rich, Richard, Richards, Richardson, Richmond, Riddle, Riggs, Riley, Rios, Rivas, Rivera, Rivers, Roach, Robbins, Roberson, Roberts, Robertson, Robinson, Robles, Rocha, Rodgers, Rodriguez, Rodriquez, Rogers, Rojas, Rollins, Roman, Romero, Rosa, Rosales, Rosario, Rose, Ross, Roth, Rowe, Rowland, Roy, Ruiz, Rush, Russell, Russo, Rutledge, Ryan, Salas, Salazar, Salinas, Sampson, Sanchez, Sanders, Sandoval, Santana, Santiago, Santos, Sargent, Saunders, Savage, Sawyer, Schmidt, Schneider, Schroeder, Schultz, Schwartz, Scott, Sears, Sellers, Serrano, Sexton, Shaffer, Shannon, Sharp, Sharpe, Shaw, Shelton, Shepard, Shepherd, Sheppard, Sherman, Shields, Short, Silva, Simmons, Simon, Simpson, Sims, Singleton, Skinner, Slater, Sloan, Small, Smith, Snider, Snow, Snyder, Solis, Solomon, Sosa, Soto, Sparks, Spears, Spence, Spencer, Stafford, Stanley, Stanton, Stark, Steele, Stein, Stephens, Stephenson, Stevens, Stevenson, Stewart, Stokes, Stone, Stout, Strickland, Strong, Stuart, Suarez, Sullivan, Summers, Sutton, Swanson, Sweeney, Sweet, Sykes, Talley, Tanner, Tate, Taylor, Terrell, Terry, Thomas, Thompson, Thornton, Tillman, Todd, Torres, Townsend, Tran, Travis, Trevino, Trujillo, Tucker, Turner, Tyler, Tyson, Underwood, Valdez, Valencia, Valentine, Valenzuela, Vance, Vang, Vargas, Vasquez, Vaughan, Vaughn, Vazquez, Vega, Velasquez, Velazquez, Velez, Villarreal, Vincent, Vinson, Wade, Wagner, Walker, Wall, Wallace, Waller, Walls, Walsh, Walter, Walters, Walton, Ward, Ware, Warner, Warren, Washington, Waters, Watkins, Watson, Watts, Weaver, Webb, Weber, Webster, Weeks, Weiss, Welch, Wells, West, Wheeler, Whitaker, White, Whitehead, Whitfield, Whitley, Whitney, Wiggins, Wilcox, Wilder, Wiley, Wilkerson, Wilkins, Wilkinson, William, Williams, Williamson, Willis, Wilson, Winters, Wise, Witt, Wolf, Wolfe, Wong, Wood, Woodard, Woods, Woodward, Wooten, Workman, Wright, Wyatt, Wynn, Yang, Yates, York, Young, Zamora, Zimmerman]
}
jobTitles: [Project Manager, Software Developer, Designer, QA Engineer, DevOps Engineer, Scrum Master, Business Analyst, Data Scientist, Product Owner, System Administrator]
loremIpsum: Lorem ipsum dolor sit amet, consectetur adipisicing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat.
language: 'PL'
================================================
FILE: src/main/resources/jfairy_br.yml
================================================
alphabet: abcdefghijklmnopqrstuvwxyz
domains: [ com.br, br, app.br, blog, net.br ]
firstNames: {
male: [ José, João, Antônio, Francisco, Carlos, Paulo, Pedro, Lucas, Luiz, Marcos, Luis, Gabriel, Rafael, Daniel, Marcelo, Bruno, Eduardo, Felipe, Raimundo, Rodrigo, Nelson, Manoel, Geraldo, Roberto, Mario, Joaquim, Jorge, Sebastião, Diego, Guilherme, Fernando, Davi, Rafael, Andre, Anderson, Márcio, Gustavo, Fábio, Júlio, Renato, Alex, Igor, Douglas, Vínicios, Ricardo, Leonardo, Robson, Wilson, Mauro, Jonas, Vicente, Nicolas, Osmar, Artur, Moises, Wagner, Pablo, Willian, Ivan, Celso, Breno, Junior, Sidnei, Jaime, Alisson, Ronaldo, Romário, Neymar, Nilton, Nilson, Murilo, Sandro, Isaias, Raul, Alcides, Gean, Bernado, Arlindo, Rodolfo, Armando, Lucio, Clovis, Itamar, Magno, Vilson, Dirceu, Jonata, Enzo, Afonso, Romulo, Airton, Weliton, Ednaldo, Vilmar, Rivaldo, Juan, Abel, Tite, Savio, Roni ],
female: [ Maria, Juraci, Lucimar, Ana, Jaci, Alcione, Ivanir, Nadir, Edir, Leoni, Edi, Valdete, Reni, Eurides, Rosimar, Clair, Antonia, Francisca, Iraci, Irani, Iris, Luzimar, Geneci, Erli, Sirlei, Fernanda, Nelci, Rosinei, Gabriela, Bruna, Taina, Adria, Darli, Derci, Silva, Joseli, Juracy, Delci, Joceli, Evanir, Elis, Adriana, Rafaela, Raimunda, Edenir, Vitoria, Gabriele, Rosemar, Solimar, Ivani, Juliana, Marlei, Marley, Daniele, Gessi, Vanir, Doraci, Aline, Marcia, Irismar, Josefa, Elci, Jessica, Amanda, Renata, Raquel, Nerci, Julia, Elionai, Camila, Luana, Jacy, Eduarda, Denir, Leonor, Luciana, Gerci, Patricia, Mariana, Leticia, Erci, Iva, Jane, Cristiane, Conceicao, Aquila, Elienai, Cleidimar, Guiomar, Michele, Paula, Sirley, Silvani, Rosario, Dagmar, Daniela, Fabiana, Beatriz, Santana, Alessandra, Carla, Edy, Vanessa, Larissa, Claudia, Eroni, Luz, Lori, Joseni, Edione, Laureci, Dalci, Jaqueline ]
}
lastNames: {
male: [ Agostinho, Aguiar, Albuquerque, Alegria, Alencastro, Almada, Almeida, Alves, Alves, Alvim, Amorim, Andrade, Antunes, Aparício, Apolinário, Aragão, Araújo, Araújo, Arruda, Assis, Assunção, Ávila, Azambuja, Baptista, Barbosa, Barreto, Barros, Barros, Beira-Mar, Belchior, Belém, Bernardes, Bittencourt, Boaventura, Bonfim, Botelho, Brites, Brito, Caetano, Caldeira, Calixto, Camacho, Camilo, Campos, Capelo, Cardoso, Cardoso, Carvalho, Carvalho, Castro, Castro, Cavalcante, Cavalcanti, Chaves, Conceição, Córdoba, Corte Real, Cortês, Costa, Coutinho, Crespo, Cunha, Curado, Custódio, D’Ávila, da Conceição, da Costa, da Cruz, da Cunha, da Luz, da Mata, da Mota, da Paz, da Rocha, da Rosa, Damásio, Dantas, das Neves, Dias, Dias, Dinís, Domingues, Dorneles, dos Reis, Drumond, Duarte, Escobar, Espinosa, Esteves, Evangelista, Farias, Farias, Félix, Fernandes, Fernandes, Ferrari, Ferreira, Figueiredo, Figueiroa, Flores, Fogaça, Fogaça, Freitas, Freitas, Frutuoso, Furtado, Galvão, Garcia, Gaspar, Gentil, Geraldes, Gil, Godinho, Góis, Gomes, Gomes, Gomes, Gonçalves, Gonzaga, Goulart, Gouveia, Guedes, Guimarães, Guterres, Hernandes, Hilário, Hipólito, Ibrahim, Ilha, Infante, Jaques, Jesus, Jesus, Jordão, Lacerda, Lancastre, Leiria, Lessa, Lima, Lopes, Machado, Maciel, Magalhães, Maia, Maldonado, Marinho, Marques, Martins, Martins, Martins, Medeiros, Meireles, Mello, Melo, Mendes, Mendes, Mendes, Menezes, Mesquita, Modesto, Monteiro, Monteiro, Moraes, Morais, Moreira, Moreira, Morgado, Moura, Moura, Muniz, Nascimento, Neves, Nóbrega, Nogueira, Nogueira, Novaes, Novais, Nunes, Oliveira, Oliveira, Ornélas, Ourique, Pacheco, Padilha, Paiva, Paraíso, Paris, Peixoto, Peixoto, Peralta, Pereira, Pereira, Peres, Pilar, Pimenta, Pinheiro, Pinto, Pires, Portela, Porto, Quaresma, Quarteira, Queiroz, Ramires, Ramos, Ramos, Rebelo, Resende, Rezende, Ribeiro, Ribeiro, Ribeiro, Rocha, Rodrigues, Rodrigues, Salazar, Sales, Sales, Salgado, Salgueiro, Sampaio, Sanches, Santana, Santos, Silva, Silveira, Siqueira, Soares, Souza, Subtil, Tavares, Taveira, Teixeira, Teixeira, Teles, Torres, Trindade, Varela, Vargas, Vasconcelos, Vasques, Veiga, Veloso, Viana, Vidal, Vieira, Vieira, Vilela, Xavier, Ximenes, Xisco, Zagalo, Zaganelli, Zanette ],
female: [ Agostinho, Aguiar, Albuquerque, Alegria, Alencastro, Almada, Almeida, Alves, Alves, Alvim, Amorim, Andrade, Antunes, Aparício, Apolinário, Aragão, Araújo, Araújo, Arruda, Assis, Assunção, Ávila, Azambuja, Baptista, Barbosa, Barreto, Barros, Barros, Beira-Mar, Belchior, Belém, Bernardes, Bittencourt, Boaventura, Bonfim, Botelho, Brites, Brito, Caetano, Caldeira, Calixto, Camacho, Camilo, Campos, Capelo, Cardoso, Cardoso, Carvalho, Carvalho, Castro, Castro, Cavalcante, Cavalcanti, Chaves, Conceição, Córdoba, Corte Real, Cortês, Costa, Coutinho, Crespo, Cunha, Curado, Custódio, D’Ávila, da Conceição, da Costa, da Cruz, da Cunha, da Luz, da Mata, da Mota, da Paz, da Rocha, da Rosa, Damásio, Dantas, das Neves, Dias, Dias, Dinís, Domingues, Dorneles, dos Reis, Drumond, Duarte, Escobar, Espinosa, Esteves, Evangelista, Farias, Farias, Félix, Fernandes, Fernandes, Ferrari, Ferreira, Figueiredo, Figueiroa, Flores, Fogaça, Fogaça, Freitas, Freitas, Frutuoso, Furtado, Galvão, Garcia, Gaspar, Gentil, Geraldes, Gil, Godinho, Góis, Gomes, Gomes, Gomes, Gonçalves, Gonzaga, Goulart, Gouveia, Guedes, Guimarães, Guterres, Hernandes, Hilário, Hipólito, Ibrahim, Ilha, Infante, Jaques, Jesus, Jesus, Jordão, Lacerda, Lancastre, Leiria, Lessa, Lima, Lopes, Machado, Maciel, Magalhães, Maia, Maldonado, Marinho, Marques, Martins, Martins, Martins, Medeiros, Meireles, Mello, Melo, Mendes, Mendes, Mendes, Menezes, Mesquita, Modesto, Monteiro, Monteiro, Moraes, Morais, Moreira, Moreira, Morgado, Moura, Moura, Muniz, Nascimento, Neves, Nóbrega, Nogueira, Nogueira, Novaes, Novais, Nunes, Oliveira, Oliveira, Ornélas, Ourique, Pacheco, Padilha, Paiva, Paraíso, Paris, Peixoto, Peixoto, Peralta, Pereira, Pereira, Peres, Pilar, Pimenta, Pinheiro, Pinto, Pires, Portela, Porto, Quaresma, Quarteira, Queiroz, Ramires, Ramos, Ramos, Rebelo, Resende, Rezende, Ribeiro, Ribeiro, Ribeiro, Rocha, Rodrigues, Rodrigues, Salazar, Sales, Sales, Salgado, Salgueiro, Sampaio, Sanches, Santana, Santos, Silva, Silveira, Siqueira, Soares, Souza, Subtil, Tavares, Taveira, Teixeira, Teixeira, Teles, Torres, Trindade, Varela, Vargas, Vasconcelos, Vasques, Veiga, Veloso, Viana, Vidal, Vieira, Vieira, Vilela, Xavier, Ximenes, Xisco, Zagalo, Zaganelli, Zanette ]
}
personalEmails: [ gmail.com, hotmail.com, yahoo.com.br, uol.com.br ]
companyNames: [ Bar, Sapataria, Mercado, Padaria, Supermercado, Farmácia, Drogaria, Loja de Conveniência, Posto de Gasolina, Açougue, Mercearia, Restaurante, Perfumaria, Loja de Roupas, Mercado Central, Lanchonete, Loja de 1.99, Atacado, Mecânica, Autopeças, Basar, Açaí, Academia, Ótica, Brinquedoteca, FastFood, Boate, Boteco ]
companySuffixes: [ LTDA, Loja, Consultoria, Inc., Industria]
companyEmails: [ info, contato, escritorio, faleconosco ]
text: Este hipertexto, isto é, matriz de textos potencializados em um duplo-devir virtualizante, visa proporcionar uma combinatória proto-semântica de um discurso proposicional a partir de um universo de possíveis. Sua instauração epistemológica é traçada a posteriori pela necessidade de construir-se um conhecimento teórico escamoteado em uma base glossofônica da interioridade da razão, em conssonância com a tex-tualidade apofântica sinteticamente determinável em sua exterioridade do Ser.
telephone_number_formats: [ '##-####-####' ]
postal_code: [ '#####-###' ]
city: [ São Paulo, Rio de Janeiro, Salvador, Brasília, Fortaleza, Belo Horizonte, Manaus, Curitiba, Recife, Porto Alegre, Unaí ]
street: [ Rua Gonçalo de Carvalho, Rua das Pedras, Vieira Souto, Avenida Paulista, Rua XV de Novembro, Avenida Pedro Basso, Rua Marcelino Champagnat, Avenida Júlio Castilhos, Rua Bento Gonçalves, Rua da Aurora, Rua Portugal, Avenida Silvio Carlos Viana, Avenida Dante Michelini, Avenida Getúlio Vargas, Rua do Mucugê ]
country: [ 'Brasil' ]
language: 'BR'
================================================
FILE: src/main/resources/jfairy_de.yml
================================================
alphabet: aäbcdefghijklmnoöpqrsßtuüvwxyz
domains: [de, eu, com, info, net, org]
companyNames: [Aachener Gold-Ankauf, ABC Autoglas, Abschleppdienst Becker, Abtsäcker, Acelis, Ackermann's Der Dorfbäcker, Activ Schuhe, ADFC Fahrrad Info Zentrum, Adler Landmaschinen, Adrenalin, Aeskulap Apotheke, Afsa`s Afro Shop, AGON, AGWB Auto Nord, AH Kaufmann, Ahrweiler Straße, Airport Business Park, AK Autoteile Hattingen, A. Krämer, Aktiv Markt Rubin, Akzente Galerie, Albatros Apotheke, Albig, aldi, Alef, Alexandras Haarstudio, Alimentari i vini, Allee-Bäckerei, alles natur, Allround-Kiosk, Alpengroßmarkt, Alpinsportzentrale, al teatro, Alten und Klausen, Alte Windmühle, Altstadt-Bäckerei Richter, Altzincer Supermarket, Ambrosino, American-Shop, Amica Ambiente, Am Mühlanger, Anatomie, Änderungs-Atelier, Änderungsschneiderei Dilek, Andette, Andreas Hake, Andree, Anette Kaltenbach, Angelikas kleines Nähstübchen, Angelsport Gräfe, Anglia English Bookshop, Anja Mateschke, Ankes Haarstübchen, Anna Naturwaren, Anson's, Antike-Fundgrube, Antiquariat Zeisig, Antiquitäten Walter Breier, An und Verkauf Rostock, Apanage, Apollo, Apotheke am Doberaner Platz, Apple, Aquarium Rhynern, Arcor, Arians, Arlt, Arnold Bueroeinrichtung, Aro Teppiche, Tapeten, art club, Arthur Johannsen, Arto Team, AS Automobile, Asia Market, assenso, Astus Gamestore, Atelier Berghoff, Atlantis, A.T.S. Autohaus, atzert weber, AudioVideum, Audizentrum Dresden, Aue-Markt, Aufzüge, Augen Optik Begrich, Augenoptik Gräfe, Augusten-Apotheke, Auot Bartsch, Ausserhausverkauf, Autoagentur Potsdam, Auto Bapistella, Autocenter Neuried, Autoeck Mittelbach, AutoFIT, Autoforum Häfner, Autogas, Autoglas Sauerland, Autohandel Swoboda, Autohaus Albersdorf, Autolackiererei Theis, Autoland L&S, Automarkt Eibach, Automobile Appel, Automobilforum, Autopark Wöhner, Autoprofi Frey, Autoreparatur Fritsch, Autoservice Bernd Stich, Autowerkstatt Stettner, avanti, AVIA-Tankstelle, AWG Junior Store, AYK Sonnenstudio, B1 Baumarkt, Babarosa, Baby Kinder Jugendmoden, Bacchus, Back-Art, Bäck Drive, Bäcker Bresan, Backerei Foester, Bäckerlädle, Backhaus Bross, Backshop Gaese, Backstube Die Ähre, backwerk, Baden-Auto, Badmöbel 1b Verkauf, Baehr, Bags and more, Bahn- und Reiseagentur, Bäkerei Czech, Bäko Bäckereizubehör, ballet pauls, Balu, Bang & Olufson, Barbara's Heissmangel, Barber Shop, Bärenstark, Barnert, Bartholomé, Basement, Bastelbedarf, Bati Markt, Bauer, Bauerncafe, Bauernmarkt am Lindchen, Baufirma Gräser, Bauhof der Stadt Hemau, Baumann Haushalt Elektro, Baumarkt OBI, Baumgärtner, Baumschule Demuth, Bau-Spezi, Baustoffe Vertrieb Neu-Ulm, Baustoff Schneider, Bauunternehmung Mahlberg, Bavaria Automobile, Bäz Optik, Bear's & Friends, Bebion Blumen, Becker + Flöge, Beckmann & Schönherr, Behmann, Beiersdorfer Landbäckerei, Beireis-Apotheke, Bekleidungshaus Müller, Bella Rosa, Belmodi, Benetton Moden, Benslips, Bereket Supermarkt, Berghausener Blumentopf, Bergrath, Berkmüller, Berlin Story, Bernhard Guck, Berr, Bertram VidovicFriseursalon, Besser, Bestattungen D. Schulz, Bestattungshaus Haller, Bestellcenter Monika Hund, Betriebsgelände, Betten Fritz, Better2Gether, Beuer, Beyer Optik, bici, Biel, Bierfabrik, Biewa Getränkemarkt, Big Lebowski, Bike&More, Bike&Ride, Bilderbogen, bilgro, Bilster Berg Drive Resort, Bingo's Allerlei, Biobäckerei und Café Meffert, Bio-Eier, Biohof Böhme, Bioland Brungs Hofladen, BioMarkt Eppendorf, Birgit's Bauernladen, Birkholz Bäckerei & Stehcafé, Bisquitte, Biwer, Blackfoot Outdoor Shop, Bläserforum, Blaumann, Blessenohl, Blitz Foto, bloom's, Blumberg Mann + Mode, Blumen 2000, Blumenfachgeschäft Kleeblatt, Blumengalerie Hofer, Blumengeschäft bei Kaufland, Blumenhändler, Blumenhaus Augustaanlage, blumenhäusel (home by ASA), Blumenhof Dohmeyer, Blumenladen Ernst, BlumenMehr, Blumenstübchen, Blumenstudio Wendt, blume & stil, Blütenwerkstatt, BMW Autohaus Märtin, Bocks, BodenseeCenter, Body & Soul, Boetius, Böhlje-Sander Hilde Blumen, Boize Center, Bolten, Bonbonwasser, Bonner Küchenstudio, bonus markt, Bootsmann, Borchert Raum+Idee, Born Center, Bosbach IT-Services, Boschert, Bosh car service Ritzkowski, Bötsch, Boutique 88, B&Q Hair Design, Brandau, Brandt's Wohnwelt, Brauerei Neunspringe, Bräunig, Brautmode, Bredemeier, Bremer, Brennerei Wißler, Briefzentrum Deutsche Post, Brille 2, Brillen Fendt, Brillenmacher, Britz, Brogsitters, Brot-Boutique, Brotkorb Hatz, Bruder, Brüning, Bruno Kehder Friseursalon, Büch, Bucher, Bücherei Klein, Bücher & Kunst, Bücherschrank, Buchhandlung am Andelsbach, Buch & Kunst Hoffmann, Buchner, BUDNI, BUGO, Bülte, Bundesfinanzdirektion Mitte, Büning, buran01, Bürgerhaus Wiegleben, Burg Wäscherei/ Änderung, Bürobedarf Heim, bürohaus Janssen, Büro Schreibwaren, Buschkühle, Buss, Elektro, Butterfly three, BWW Pro Car, cab Bücherstudio, Café Adalbert, Cafe & Bäckerei Schrunz, cafeleven, C&A KidsStore, call_shop, Campbell, Camping und Freizeit Loppien, Canstatter Fässle, Cap-Markt Tamar, Caravan Thein, Car-factory, Cari-markt, Carl-Thiem-Apotheke, Carpark Audi Ahrensburg, Carsch-Haus, Carusell, Casa Natura, Caspar Fashion, Cavatappi, C. David, Cellini, Centik, Cesar Markt, Chanel, Charlott, chelsea, chicco di caffè, Chiribiri, Chris Lewis Hair Dressing, Christian Meiling, Christliche Bücherstube, Chrysler & Jeep, Cinderella, Citroën, City Blumen, CitySchuh, CJ Möbel Jaeger, Classen, Claude Cosmetics, Claudi's Blumenscheune, Clemens Galerien, Clown Backshop, cobero, Coiffeur Blickfang, Coko Cut, Colonia Shop, COMA Verbrauchermarkt, Comic-Laden, Computer Center Bünde, Conditorei am Oberhof, Confiserie Mélanie, Connys Frisurenatelier, Contessa, coop, Copy Factory, Copythek & Druckservice, Coroneo Hairdesign, cosmetics, cove & co., crea time, creHAARtiv, Cron & Lanz, CS-Meyer, Culinarium, Cut Ab, Cutedrale, CutStudio55, Cycle-Basar, Czerny-Apotheke, Dahlhoff Feinkost, Dalladas, Dance Inn, DÄNISCHES BETTENLAGER, Daphne Europe, Das Backhäusl, das.geschenk, Dat Eifel-Hüsje, Dawood Hair-Style, D'Bücherladen, Decatlon, Deepend, De gode Backstuv, Deichfrisör, Déja vu, Deko-Traum, Delikata, Delta Markt, Demm, Denker, Dent Wizard, Derpart Reisebüro Fahrmbacher, Destille & Tee, Deuter Outlet, Diakonie-Laden, Di Bö, Die Autowerkstatt, Dienstleistungspark Trimonte, Dieter's Brotkorb, DigiTrends!, Dimsat, Dirk Gerike, Discount Friseur, ditsch, Dive Community, dm Drogerie Markt, Dokuz Schneider, Doll's Zoo-Markt, Domiell, Donau-Ries-Werkstätten, Döpke, Dorfbrunnen, Dorfladen Neuburg, Döringer's Backstube, Dornheim, Dosch, DPD-Depot, Drapalla, Dreescher Markt, Dreißig, Dress, Driesener Apotheke, Drogerie Fritsch, Drogeriemarkt DM, DruckerBuffet, Druckhaus Lampe, Drunter und Drüber, D`tal Markt, Dün-Fleisch, Durchblick, Dusa Mosner, DVD XXL Discount, E aktiv Markt Brockhage, E. Arnold & König, eat&art Bäckerei&Konditorei, Ebersbacher Wachswaren, Ebner, Ecke Automobile, Eckstein - Beckshop, edeka, Eden's Fahrradinsel, Edonas Quni, Efferoth, Eggers, ehemaliger Klinikbereich I, ehem. LPG-Gelände, Ehrenstein-Apotheke, Eichenlaub, Eickhoff, Eine-Welt Laden, Einkaufsladen Luell, Einkaufszentrum Wust, Einrichtungshaus Steckel, Eiscafé Cellino, Eiscafe Venezia, Eisen-Feustel, Eis Firenze, eisweiler und temme, EKZ Gerberpark, Elbers, Electronic Revival Company, Elektro Andresen, Elektronikvertrieb Köhler, ELG Holzhandwerk, Elka Kaufhaus, Ella´s Büdchen, Elmar Sollfrank, Elshoff, Emendörfer, Emmerich, Emster-Schänke, engbers, Engelshaar und Teufelslocke, ENOTECA dell´Arte, Enztal-Express Reinigung, EP Donner, Epicerne Sociale, EP Raatz, EP Weinreich, Erdmann Ihr Zweiradprofi, Erichsen, Erlebniswelt Modellbahn, Ernst-August-Apotheke, Ernstin's family, Erotic Gigant, Erste Edeldestillerie, Erwin Weber, Escherle, ESPRIT Factory-Store, Esso Messerschmidt, ESW-Werkstattladen Allerhand, Euhus, Euro Dance Center, Euronics Schulte, Europa Reisen, Eurozone, Evelyn Jabs, E.Vogell, Exakt, Expert Arndt, Exquisit Reinigung Ehrenböck, Fa. Bergmüller (Boden), Fahrad Schult, Fahrrad Biehla, Fahrradcenter Specht, Fahrradhaus Möckel, FAHR'RADladen, Fahrradservice Doreen Leider, Fahrradverleih Lindemann, Fahrschule Elch, Fahrzeugbau Köpf, Fahrzeugtechnik Krueger, fair Kaufhaus, Faller, Fantomas 2000, Farbenkrauth, Farben Walter, Fasche, Fashion Uder, Fat Lady, F. Danne, FEGRO Großhandel, Feinbäckerei, feine Pralinen, Feinkost Delizie, Felder, Fels + Eis, Fernsehmeister Schulz, Ferraro-Moto, Festruhe, Feza Reisebüro, Fiat Gierlinger, Fiebiger, Figaro, Filiz, Fingerz, Firma Sauter, FISCHBACH, Fischerei Lasner, Fischers Brot & Zeit, Fisch Haus, Fischräucherei, Fischzucht Barchfeld, FitLine, fixme Laden, Flair Fashion, flash, Fleicher Scheinpflug, Fleischerei Baum, Fleischers Fahrrad Oase, Flick, Fliesen-Kreativ, Flohmatz, Florales & mehr, Floristik Art & Ambiente, flotte Fietse, Flugplatz, Föhr-Amrumer Immobilien, foncia, Ford, Forellenzucht Völmlesmühle, Forstenrieder-Lotto-Lad'l, FORUM, Fotoatelier Christiane, Foto Doppheide & Kollow, Fotohaus Seeger, Fotostudio 9mal13, Frank, Frankenwein-Centrum, Frank´s Einkaufseck, Franz Heinje, Fraunhofer-Institute, Fred Frisör, Freestyler, Freie Tankstelle, Freisingers Saure Ecke, Fresena-Apotheke, Fressnapf Tierzubehör, Frey Wille, Frida's Bioladen, Friedhofgärtner Kreuselberg, Friesisches Theehaus, Frische Eck, Frischemarkt Jungblut, Frischmarkt Breuer, Friseur 2000 (Meyer), Friseure Befurt, Friseursalon Bärbel Kernchen, Friseurstudio Monika & Sandy, Friseurteam Hefner, Frisiersalon Claudia, Frisör Albert, Frisörensen, FRISTO, Frisurenmode Dorner, Fritz Baustoffe, FRIWA Küchen, Fröllje Bäckerei, FRT Textilreinigung, Früchte-Krämer, Fruchthaus am Markt, Früh Optik Uhren Schmuck, Fuidl, FUNDUS, Funtasstisch, Fürther Dorfladen, Fußpflegestudio, Futuro, Gabis Getränkemarkt, Gaby's Haarstudio, Galaria Kaufhof, Galerie am Kloster, Galina Friseursalon, Gamestop, Gänseblümchen, Garage 53, Gardinen & Dekostudio, Garger, Gartenbau Koll, Gartencentrum Fuchs-Birkenhof, Gartenpflanzen Walz, GartenWerk Dukat, Gärtnerei Arkenau, Gärtner Leuchten, Gasthaus Loos, Gaststätte Zum Bahnhof, Gazelle, Gebers, Gebrauchtwagenhaus Mitro, Geers Hörakustik, Gegenwind, Geiers Drink in, Geißhalden, Geldautomat, Gemischtwaren Kunstreich, Gemüse & Obst, Gensler, Georg Pflefka, Geräucherte Forellen, Gerds Comicladen, Gern Reisen, Gerth am Lappan, Geschenke Wohnaccesoires, Gesundbrunnen-Center, Getraenke und Mehr, Getränkecenter Kessler, Getränkefachverlag Rowira, Getränkehandel Daum, Getränkemarkt Betke, Getränkerakete, Getränkeshop Paul, Gewerbepark Dietmannsried, Geyener Fahrradladen, GHW electronic 2000, Giesbrecht Service, Gilliar, Ginzler, Gitarren Laden, Glamorous Friseur & Kosmetik, Glaserei Franz Raab, Gläsers Gartenwelt, Glas Schmidt, Gleumes, Globus Drive, Glöckenbäckerei, glückssträhne, Gnaier, Gödde Schuhe, Goetheapotheke, Golchert, Goldene Schere, Goldnaht-Sanli, Goldschmiede Denner, Gold+Silberschmiede, Goll, Görres, Gotter, Götz Fahrzeugreparatur, G-Punkt, Graf Beust I, Gramann, Gras, Grau Schreibwaren, Gregor Kaszuba, Griesbeck Zweiräder, GRIMM Küchen, Grombach, GROSS 1866, Großmanns Minimarkt, Gründig, Grüner Leichtsinn, Grüninger, GS agri Baustoffe, GTÜ - Häberle, Guhn Kfz-Meisterwerkstatt, Gummert, Günter, Güntzel Feinkost, Gusto Antico, Güterverkerszentrum, G+W Autoservice, Haaratelier Souzan, Haardesign Steinfeldt, HAARFABRIK, Haargold, Haarmoden Krebs, Haar Paradies, Haarsträubend, Haarstudio Anne, Haarstyling Götze, Haarwaii, Haas Kies, Habla, Hackländer, Hafen, hagebaucentrum Artern, Hagebaumarkt Swerts, Hagenkötter, Hahners Einkaufszentrum, Hainichener Bäckerei, hairBell, Haircules, Hairdesign Jasmin Wagner, Hair Factory, HairGuide, hairline, Hairsisters, Hairstyle by Karina, Hairteam Excellent, Hake, Hallermeier, Hamburger Hofladen, Hammer Heimtex Fachmarkt, Hamwarde - Wiershop, Handy Insel, Hanle, Hanrieder, Hansecenter, Hans Frick, Hapag-Lloyd-Reisebüro, Happy Preis, Harbauer-Optik, Hark, Harmonie Bäckerei, Harry Wolf, Hartmann Holzmarkt, Harzer Weingut Kirmann, Hauck, hauptsache, Haus der Dienste, Häuser, Häutle, H & B Bäckerei, HeadwayJobcenter, Hecker's Sohn, Heeren, Heidbüchel, Heidjer Tee & Kaffeehus, Heike's Blumenladen, Heilemann, Heimbach Fleischerei, Heine, Heinrich Brandmeier, Heinz Letsch, Heißmangel Anni König, Heizungsbau Fischer, Heldmann, Helix Pflanzen, Hellweg-Baumarkt, Helmrich, HEM Expert, Henftling, Hennig´s Backstube, Henssler, Herberth Getränkehandel, Herder-Bude, Herkules Fachmarkt, Hermann Schmidt, Hermle Malerbetrieb, Herrenfrisör, Herrenzimmer, Hertie (geschlossen), He-Schu, hetsch Optik, Heu und Holz, HGerry Weber, Hiebers FrischeCenter, HiFi Erthel, HIKO-Candles, Hilla Haarteam, Himmel & Erde Blumenladen, Hintermayer, Hirsch-Apotheke, Historische Bauelemente, HIT Troisdorf-Sieglar, HM Racing Werkstatt, hobbyfly.de, Höche, Höderath, Hof Brüggemann, Hofgeschäft Gut Stegen, Hofmann Inge, Hofpfisterei Trudering, Högl, Hohmann, HolAb!, Holiday Reise Service, Hollister, Holstein's Backhaus, Holz & Baustoffkompanie (HBK), Holzfachmarkt Brandt, Holzhauser, Holzland Kern, Holzofenbäckerei Paul Bailer, Holzwarth, Home & Beauty Store, Honda Fensel, Höner, Honsel, Hoppert, Horex, Hörgeräte Meckler, Hornbach Moers, Hörstudio Fröhling, Hosen Löhr, Hotfiel, Houtmanns, H. Rühl Sportbekleidung, H.Tille, Hubertusapotheke, Huesmann, Huhn, humanic, Hundertwasserhaus, Hundshalde, Husqvarna Motorrad Zentrum, Hut & Kindermoden, Hyundai Autohaus Turowski, I.B. Mahler Textilpflege, idee, Ihr Bäckerjunge GmbH, IHW Park, ILANGA Wine Bar, Ilmbacher Hof, Il Sogno, Imbiss Skaterpoint, Imkerei Englert, Immobilien Westerwald, IN-Bus, InDrink, Industriegebiet Wengerohr-Süd, INFAM, Inges Haarmonie, Ingrid´s Haarstudio, INN-Kaufhaus, Inspiration, Intercoiffeur Fuchs, International Mini Supermarkt, Intersport Beike, inturia, Irene Schmucker, Irmscher PC, Isleker Imbiss, IVECO SERVICE Bergler, JÄCKER'S Getränkepool, Jacobs Eck, Jagels, Jahreszeiten Naturkost, Jako Sportbedarf, Jan Lay, Janssen & Kruse, Jasmin Thai-Massage, Jazzy, JEANS DELUXE, Jeetzel-Optik, Jennys Haarstudio, Jimbo-Tank, Joachim Grub, Joel Style Friseur, Johannes Sterzenbach, Johnson, Jörgs Weinshop, Josef Seibel, Joyce Merlet Puppenklinik, JUMBO ZOO-MARKT, Jung van Matt, Juri Zitrone, JUWA, Juwelier Büttke, Kaaksburg, Kadens Einkaufscenter, Kaffee Kontor, Kahlo Ramschladen, Kaiser's, Kaktus Tattoo & Piercing, Kallenbach, Kamera-Spezialwerkstatt, Kämmerei, Kampfkunstgalerie, Kankel, Käppeleswiesen, Karawane Reisen, Karin Labudda, Karl Ernst, Karlolack, Karnbaum, Karosseriebau Wachtveitl, Karstadt Stammhaus, Karussel, Kasenbacher, Käsmeier, Kästner Optik, Katja-Katrin Kewitz, Kaufe Musik Recordstore, Kaufhaus Jonass, Kaufland Glauchau, kaufpark, Kaushaus X, Keidel's Hof, Kellerhoff, Kemal's, Kenny S., Kerling's Feinbäckerei, Kerstin's Laden, Keti's Änderungsschneiderei, KFP Klassik Garage, KFZ Fersen, Kia Autohaus Wolf, Kida-Paradies, Kiesewetter, Kif Kif, kik Textildiscount, Kilbinger Neuss, Kinderausstatter, Kindermoden Lollipepp, Kinzig Corner, Kiosk Am Atzumer Busch, Kipfelsberger, Kirk's Drive-In, kiss berry, K & K, K+K-Markt, Kladow Center, Kläranlage Dresden-Kaditz, Klärwerk und Bauhof Tangstedt, Klaus Kocher, Klavier Kern, Kleff Haarstudio, Kleine Bäckerei, (kleiner) Famila, Klein KFZ Reparaturen, Klemm Car service, Klimastudio Magdeburg, Klinkenthalzentrum, Kloppenburg, Klostermann & Diekmann, Klumps, K!MO, Knauß, Knoblauch e.K., Knospe Naturkost, Knut Sander, Koch Goldschmied, Koepke, Kohler Automobile, Kojer, Koller+Schwemmer, kolor, Konditorei Behrens, König, Königsparfümerie, Konsum Kaufhalle, KOPA Computer, Kopier & Druckshop, Koppen Bäckerei, Körner & Tee, Kosmetik Christina Simoneit, Kosmetikstudio Passion, kostbar, Kral, Kranich Apotheke, Krause Markt, Kraut&Rüben, Kretschmann, Kreyen-Centrum, Kristall-Palast, Krone, Krügers Getränkewelt, Kruses Hofmilch, Küche & Keller, Küchenhaus am Rhein, Küchen-Möbel-Passage, Küchentechnik Kahle, Kuckertz, Kühler Ragge, Kumar's Minimarkt, Kunstgewerbe Georg Lindner, Kunstmann, Kunterbunt Spielwaren, Kurapotheke, Kurt Kox Grabmalkunst, Kuse, KUWE Raumausstattung, La Barrique Weinland, Lackner, Lädele, Lady Chick, Lagerhaus, Laib & Seele, Lamm Apotheke, LAMY, Landbäckerei Grundmann, Landbierparadies, Landfleischerei Grafe, Landgärtnerei Beyer, Landkarten Büchereck, Landmarkt Thaler, Landmetzgerei Bitsch, Landmetzger Lex, Langensiepen Kurt H. Blumen, Langrzik Jürgen, Las Vegas, Lauer, Laurél, Lebascha Naturkost, Lebensmittel bei Mustafa, Le Coupe, Lederhandel, Leder-Shop, Leggewie, Lehnacker, Leipziger Baumwollspinnerei, Lekkerland, Len-Fra, Leo Lammers Schuhmacherei, L'Epicerie, Lese Laden, Les Vernis Naturnagelkosmetik, Level 5, Ley Sanitätshaus, Licht Kraus, Lidl (Erlensee), Liebehenschel, Liebscher, Lila Leeze, Lilu, Lindau & Kindler, Lindenhof Bauernmarkt, Lindner, Metzgerei, Linoleum Rau, Listmann, Living2, L&N Textilien, Lock up, LOGO, Lohners Backshop, Lollypop, Lorenzen, Losse T., Lotto Annahmestelle, LOUIS, Löwencenter, LPG Untermossau, Lübbering, Lucias Hairfashion, Ludger Böckenholt, Lueg sportiva, Luisen Apotheke, Luna Reinigung, Lustige Lahnluft, Lutzes Backstube, Lydia´s Modeeck, Macaron, MAC Jeans, Madeleine Wied, Magdalenen-Apotheke, magicX, MAHAG Nutzfahrzeuge, Maier, Mainroller, Majolika Firmenpark, Mancala, Manfroid, Mannamia, Man Nutzfahrzeuge AG, Manuelas Frisierstube, Marc Cain, Marco's Zweirad-Shop, Margot Enzhammer, Marie Luise Börmel, Mario Gisbers, Marisol, Markant Nah & Frisch, Markgrafen-Getränkemarkt, Markt-Apotheke, Markthaus, Marktkieker Bohne, Markus Hamperl KFZ-Service, Marmor Roppelt, Martha & Lotte, Martini-Park, Marwede, Mäser Modell & Technick, Massa Musterhaus, Matheis&Klose, Matratzen Outlet, Matthias Neubauer, Mätzkow, Maurers Bäckerei, Max-Bahr-Baumarkt, Mayers Frischemarkt, Mazda Autohaus Kaschmieder, McClean, McPolster McDream, Mechau, Medien Corner, mediterraneo, Mega Bike, Mehringhöfe, Meiers Backstube, MeinersenVideo, Meirandres, Meister Kaffee, Meller's Bioland-Hof, Menges, Menz, Mercedes/Bosch, Merkur Reiseland, Merz Gemüse, Messe Niederrhein, Metallbau Pölker, Metro Cash & Carry, Metzen Sonderposten, Metzgerei am Steinberg, Metzger Treuter, Meyborg, Meyersche Buchhandlung, Mezzo Pezzo, Michael Meyer, Michelle's Specilities, Microtrend, Mielke, Mike Kühn, Milchpilz, Miller Waldemar, Minhs Asia Markt, Mini-Markt am Mühlenteich, Miong Seyb Kosmetik, MISCO Germany Inc., Mister Maker, Mitsubishi;Seat, Miyabi, Mlx Obermeier, MM`s Haarwerkstatt, Mobauplus Bauzentrum Becker, Möbel Bock, Möbelhaus Müller & Co., Mobilcom Shop Augsburg, Mochel, Mode bei Marte, Modehaus Brack, Modellbahn Broders, Modellbau-Fachmarkt, Modell Pelzer, moderne Schuhreparatur, Modetreff Heidi, mod's hair, Mohren Apotheke, Möller, Momo Kindersachen, monokel, Montimare, Mordhorst & Bockendahl, Mormann, moshi home, MOTOitaliano, Motoren-Service, Motorradbekleidung Louis, Motorrad Herzer, Motor Sport Ries, movies, Mr. Brown, M.STRUNK, Mucom, Mühlenbäckerei Fick, Mühle Schuwer, Müller, Münchner Fingerhut, Münzen, Museumshop Dujardin, Musik Aktiv Schallenberg, Musikhaus Husum, Mutterwerk, My Baker, Mythologische Spielwaren, Nachfülltinte, Naesert Fleischwaren, Nagelstudio Heck, Nagler Technik, nahkauf Langsdorf, Nähstube Cevik, Nahversorgungszentrum, Nails Diamant, Nanuk, Natoshop, Nature's Food Naturkost, Naturkost Baldham, Naturkostladen Südstadt, Naturland-Hof Ruhl, Naumburger Reifenmarkt, Nehberg, Nennhuber, Nestle, Netto Discont, Neue Apotheke, Neukauf Reisen, Neustadt Centrum Halle, New Millenium Int, Nicolas Scholz, Niebuhr, Niehaves Bäckerei, Nietmann & Höß, Nill Wohnen, Nissan Haake, Nizik & Bauer, No. 7 Schulbedarf, nola-Chemie, Nooricom, Nordertor-Apotheke, Nordstadt Kiosk, Nösel, Notzinger Lädle, NP-Discount, Nürnberger Versicherung, Nyhues, Oasis, Ober Kubsborn, OBI Lindlar, Obst Blumen, Obsthof Enders, Ockenfuß, Oecotop, Oevenumer Backstube Mengel, Office Port Bonn, Ohler, Oil & Vinegar, Oktoberkinder, Old Krempel Ltd., Oliver Böttcher, Ölwechselservice Richter, Ommer, Only Store, Opel-Autohaus, Opel, GM, Ford, optic art, Optik am Rathaus, Optiker, Optikstudio Lamm GmbH, Optimal Renner, Orlemann, Orthopädie, Osnatel, Ostermann, Oststadt Super-Bio-Markt, Ottilie Wegener, Otto Meinert, Outdoor-Shop, Overmeyer, Packetshop, Page, Paletti, Panagiota, Panser, Paperpoint, Papeterie Wolf, Papier Reiss, pappert, Parati, Parfümerie Er+Sie, Parfumerie Profumo, Parkett-Forum, Party Service Gabriel, Passage an den Beeten, Patiserie La Minzbrueck, Paulig, Paul Suckow, Pax Bakery, PC-Loeh, Pedalritter, Pelze Drews, Pennings, Penny-Markt Dahn, People2Power, perfect skin, Permoser Eck, Pestel, Peter Göck, Peterno Radsport, Peters Fashion, Petra Reuther, Petra's Shop, Peugeot, Pfankuch, Pfeifle, Pfisterer, Pflanzenmarkt Seemühle, Pfoten im Revier, Philippi, PhoneFlat, Photo Müller, Physiotherapie Katrin Welz, Pianohaus Schwägerl, Pichler, Piechaczek, Pietät Martha Herrig, PimperBikes, Pistoria, Pixy Fotostudio, Planen Kimmik, Plaste+Elaste, Play & Watch, Pleuger, plus, Pneuhage Reifendienste, Podium, point S, Polo, Polster Pit, pony club hairdressers, Porsche Zentrum Berlin, Porta, Pösna-Park, Postshop, Potthoffs, Praise Christlicher Buchladen, Preisparadies 2000, Prenz'l Apotheke, Presse Heyer, Press P&B Books, Prima Flora, PrintArt, Priss, ProBoarding Kitesurfschule, pro fashion, Profi-Lützen, project H, ProOptik, Provinzial Robert Hoffmann, PS-Sport Werkstatt, Pulli-Shop, Punto Uno, Pusdorfer Radwerkstatt, Pythagoras, Quarzwerke Frechen, Querbeet Bioladen, Quick Shoes, Raab Karcher Baustoffe, Rad ab!, RäderWerk, Radhaus Berlin, Radio Bremberg, Radlager Dresden, Radl Huber, Radsport Carda, Raer, Raidt's Getränkehof, Rail Electronic, Rajeethan Traders, Ramer, Rank, Rathaus-Drogerie, RATIO Grossmarkt, Ratzek, Raumausstatter, Raumausstattung Dieter Wolf, R-bikes, Real, real; Media Markt, Rebschule Schmitt, Recyclinghof Bergedorf, redoffice, Reformhaus Dahmen, Regenbogen Apotheke, Regines Nähparadies, Reich KFZ, Reifen Böwing, Reifendienst Tanski, Reiffeisen, Reiner-Bike, Reinigung, Reinigungscenter Ding, Reipo, Reiseclub Cottbus, Reisemakler, Reisestudio, Reißenwebers Backstuben, Relles Mühle, Renata Späte Bierverlag Thiel, Renner büro actuell e.K., Renus Mate, Reptilien-Insel, Retter Schmuck und Uhren, RevierRad (tri-mobil), Rexhausen, Rhein-Energie Kundenzentrum, Rhode, Richard Wagner Apotheke, Richter's Fahrradlädchen, Riechard Kraftfahrzeuge, Rieser, Rinderbesamung, Rinklin Biomarkt, Ritchie, RN Gebäudereinigung, Robert Ley Classics, Rockers Bikeshop, Rogner's Backstube, Rohrhofer, Roland, Rollstuhl WC offen, Rondell Apotheke, RosaReich, Rosenbohm, Rosenrot, Rosi's Boutique, Roßbach-MC, Rossschlächterei Christen, Roth, Rotkehlchen Beauty Nest, Rotzoll, R&S Automobile, R+T-Werkzeugverleih, Ruda, Rudolf Konik Metallhandel, Rügener Bauernmarkt, Ruma, Rund ums Korn, Rupprecht, Russ Jesinger, SAAB, Subaru, Sabbaz, Sabrinas Haarstudio, Safa Mode, Sägewerk Kaa, Saki Haircut, Salon 58, Salzladen, Samet Telecom, Sandmann - Hyundai, Sänger, Sanitätshaus am Oberen Tor, Santen, Sari Berner, Sattelfest, Sauer Bäcker, Sawis Getränkemarkt, SB Back Shop, SBK Supermarkt, Schachenmeier, Schaller Bäcker, Scharly's Getränke SB, Schätzmüller, Scheck-In Center, Scheitle, Schenk, Scherl, Scheu + Weber, Schiemer, Schilbock, Schimmel, Schirmer, Hertle Autoteile, Schlachterei Schwarz Cranz, Schlauchomat, Schlecker Shop, Schlemmer, Schleufe, Schlocker, Schloss-Sport, Schlüsseldienst Hühnke, Schmankerl-Metzger, Schmid Bestattungen, Schmidt Getränkemarkt, Schmidt's Minigarage, Schmuckatelier Sign710, Schmuck Schroll, Schnarre, Schneider & Berger, Schneidermarkt, Schnellmarkt, Schnipp Schnapp, Schnittstelle 89, Schokoladen Haus Wienold, Scholz Haare, Schönegger Käsealm, Schönheitspflege Für Mich, Schöpf, Schrade, Schreib Shop, Schreibwaren Edelbuer, Schreiner Brillen, Schrittes Landschlachterei, Schröpf, Schucker Rennräder, Schuhaus Schulz, Schuh-Center, Schuhe Schlienkamp, Schuhgarten Rosenbaum, Schuhhaus Bayer, Schuhhof, Schuhladen Müller, Schuhmacher Meister, Schuhmode Schüle, Schuhpiraten, Schulle, Schulze, Schuppelius, Schuster Zwick, Schwaaz Vere-Buchhandlung, Schwahn-Optik, Schwanenweiher, Schwarzer Weg, Schweicher Fahrradladen, Schwericke, Schwolgau, script, Seat Beckmann, Secondhand, Second Life, Seehas-Center, Seestern Apotheke, Sehform, Seidenstraße, Selbachs, SELGROS, Senfkorn Weltladen, Senseason Friseur, Service-Center für Tiere, Sesselberg, SexDiscount, SHB Spielzeugland, Shenron Handel, Shoe Jean, SHOPIN, Sibo, Sieben, Siefert, Sieler, Siemes Schuhhandel, Sigi Renner Friseuere, Sila Thai Massage, Silke Vité, SIMMEL, Simon´s Cafe, Singer & Pfaff, Sirius, Sitt & Satt, SK-Bikes, Skiservice Höckl, Skoda Autohaus Rüdiger, Slam Records, smartino, Sobi, Soffies kleiner Supermarkt, Solaris, Solingen, Solvay Pharmaceuticals, Sonderposten Baumarkt, Sonjas Hairdesign, Sonnenhofladen, Sonnenstudio Heliopolis, Sonntag, SOSO Spirits, Souvenirs Geschenke, Spargelhof Hofladen, Sparkasse/Schulte's, Späti, Speckhardt, Speed Concept, Spenglerei Schober, SPIELE MAX, Spielpalast Calbe, Spielwaren Deuring, Spielzeug föhr alle, Spinatwachtel Tee & Naturkost, Spohr, Sport Ankirchner, Sportplatz, Sportshop Sattler, springgarden, Sroka&Langowski, Stäbelow I, Stadtbächerei Kühl, Stadtbäckerei Siemens, Stadtcafe Rosenow, städtisches Straßenbauamt, Stadtwerke Bochum, Stahlwaren Steinöckel, Stangelmayer, Starck, Star Lounge Kosmetik, Statravel, Staufen-Buchhandlung, Steeb Männermode, Stefan Rössler, Steffi's Blütenzauber, Stehcafé Kiosk, Steigerwaldbäckerei Oppel, Steineckes Bäcker, Steinkabinett, Steins, Stempel-Eckstein, Stephans, Sterntaler, St. Georg, Stiegele, StilArt, Stimpfle, Stöberstube, Stoffe&Kurzwaren, Stoff Schnäppchenmarkt, Stoltenberg, Storchenhof, Stottrop, Strandboutique Maritim, Straßenmeisterei Sandersdorf, Strauss Innovations, Street, tolle Schuhe, Strickwaren-Zentrale, Strohmeier, Strunk, Stüber & Reuner, Studio Donath, Stuhlflechterei Karekla, Stüwe, Stylissimo Hair and Nail, Südfleisch, Südstadtcenter, Sultan, Sun Box, Sunshine Sonnenstudio, Super Biomarkt, Supermercado Español, Sürken, Süßes Lädchen, Suzuki, Swars, Sylvia's Haarkult, tabacon - Lotto, Tabakshop Heidl, Tabakwaren Peter Abele, Tabula, Tailor, Talbäckerei, Tandem Personallogistik, Tankshop Druschke, Tante Market, Tarzan Automobile, Tatt Bäckerei, Taubenberger, Taya Autoteile, TDI Shop, Teamsport, Teddi, TEDI Euro Discount, Tee Fortuna, Tee, Holz und Seidenstübchen, tegut... Getränkemarkt, tekNET Computer, Telekom Shop Coburg, Temo-Markt, Teppich Hopf Raumgestaltung, Terbuyken, Ter Veen, TEVI Markt, Textilhaus Prigge, Textilpflege Barbara, Textil-Reinigung Vangelis, TGK Theresa, Theaterkostümhaus Wagner, Theiner, Theo Voss, Thibo, Thieshoper Brink, Thomas Philips, Thommy's Modellbauecke, Ticketpalette, Tierhandlung, Tiggelkamp, Timy's Friseure, tinten-flash, Tippkötter, Tischlerei Böttke, Titus Apotheke, T-Mobile, Todt, Tomas Malchau, Toms Car HiFi, Toni Haarmoden, Tony's Barbiere, toom-Getränkemarkt, Top Bau, Töpferei Potzblitz, TopHair, Toscana, Totto Lotto Kiosk, Toyota Autohaus Eitel, Toys´R us, Trabold, Tragbar, Trapp, Travel Free Shop, treff3000, Treitinger, Trendhair, Trend Shop, Treude, Trigema Werksverkauf, Trinkhalle Stefanie, Trionauten, Troika, Trossbach, Tsantsa, T+S Reisebüro, Tüller, Tüv Beckingen, TV SAT Thieme, Typosatz, Uhrenatelier, Uhren&Schmuck, Uhren & Schmuck Stritzinger, Ulla Popkeu, Ulrich Jahncke, Umkircher Fahrrad Lädele, Uni Bikes, UNited Colores of Benetton, Unlimited Hair & Care, Unterelchingen, Urdenbacher Bauernlädchen, Uschi, Ute Jonas, Uwe Kauermann, Vabene, Valentina's Schuhe, Vangelis, Vaterstettener Früchtehaus, Veigel Wohnen, Velomobile, Velo West, Vera's Copyshop, Vermietungsbüro, Verwaltung, Vey Schuhmacher, Viborg, Video-Center Prenzlau, VideoMaxx, Videothek Ebert, Videoverleih Jehnichen, Vieracker, Villigster Frischemarkt, Vinothek, VIO Berlin, Visage & Harmonie, Vital-Apotheke, VITO, Vivo, Vodafone Mobilfunk, Vögele Mode, Vogt Mode, Völkl, Volkswagen Automobile Hamburg, vollgut, Volvo Rebmann, Von Der Weppen, Vor Hair Nach Hair, Votec Bikes, VW Audi, wachsjacke24 outlet, Waffen Krauser, Waizmann Mode, Waldkiosk, Wallbrück (Renault), Walther, Wandschneider, Warsen, Wäschehaus Kroes, Wäscherei Gürtler Martina, Waschgalerie, Waschsalon Waschkorb, Wasserbetten, Watzmann-Laden, Weck Eck, Wegmann, Weichberghalle, Weiherhammer Gewerbegebiet, Weinbastion, Weinbuch, Wein-Galerie, Weingut Backendorf, Weinhandlung Dilger, Weinhaus Alte Wache, Weinkellerei Schlossgarten, Weinstube, Weis, Weißer, Weko, Weltladen & Umwelthaus, Wendorff, Werbeagentur Schäfer, Werkmarkt Eisenfinger, Werkstatt (ex ARAL-Tkst.), Werksverkauf Metten, Werner Dauth Modellbau, Werner's Radshop, Wertstoffhof Friedrichstadt, West, Westfalen, Wetterau Apotheke, WfbM Gärtnerei, Wibra Lebensmittelmarkt, Wiechel, Wienshop, Wiessmeier, Wildelau, Wilhelm, Wilholt, Willicher Uniformhaus, Willi Spiller Toyota, Wimmer, Wind und Wetter, Winski, Winzergenossenschaft Lorch, Wirsing, Wissmacher, Wittinger Pflanzenhof, W&J Mini-Markt, Wochenmarkt (Mi./Sa.), Wohlsdorff Zigarettenhaus, WohnFunktion, Wohnparadies Schlötelburg, Wolfenbütteler Backhaus, Wolfgang Temburg, Wolf Wurstwaren, Wolling, Woolworth, Wörlitz, Woyton, Wümme Bäckerei Sammann, Würmtaler Bekleidung, Wurtz, W+W Cars, Xara, Xpresso, XXX-Lutz, Yazicioglu Market, YIL-PA, Ypsilon, Zachert, Zanken, Zauberkiste, Zeeh Zeitschriften, Zeilgalerie, Zeitschriften Lotto Hefele, Zeitungsladen;Lotto, Zentral-Apotheke, Zeug, Ziegler, Zigarrenhaus Kiechle, Zimmermann, Zink Fahrrad, Zirngibl Bestattungen, Zollamt, Zoo & Angelcenter Rupp, Zoohandlung, Zoom Shop, Zuck & Kaun, Zum Grünen Thal, Zünkler, Zweirad Bönicke, Zweiradcenter Intress, Zweiradhaus Hütt, Zwickelbauer]
companySuffixes: [GmbH, AG, OHG, UG, gGmbH, GbR, GmbH & Co. KG, KG, gAG]
companyEmails: [info, contact, mail]
firstNames:
male: [Aaron, Abraham, Achaz, Achim, Adalbert, Adam, Adelbert, Adelfried, Adelhard, Adi, Adolf, Adolph, Adrian, Agilbert, Agilmar, Alban, Albert, Albin, Albrecht, Alex, Alexander, Alf, Alfhard, Alfinus, Alfons, Alfred, Alfried, Alhard, Allmar, Alois, Aloisius, Aloys, Aloysius, Alphonsus, Alrik, Altfried, Alwin, Amadeus, Ambros, Ambrosius, Andreas, Andree, Andy, Annik, Anrich, Ansbert, Anselm, Ansgar, Anton, Antonius, Arend, Aribert, Arist, Arkadius, Armin, Arnbert, Arnd, Arndt, Arne, Arnfred, Arnfried, Arnhart, Arnim, Arno, Arnold, Arnolf, Arnt, Arnulf, Aron, Arthur, Artur, Arved, Arwed, Arwid, Arwin, Ascan, August, Augustin, Augustinus, Augustus, Axel, Baldur, Balthasar, Baptist, Bardo, Barnabas, Bartho, Barthold, Bartold, Bartosch, Bastian, Beat, Benedict, Benedikt, Benediktus, Benjamin, Benno, Bernd, Berndt, Bernfried, Bernhard, Bernhardin, Bernhardt, Bernhart, Berni, Berno, Bernold, Bernulf, Bernward, Bert, Berthold, Berti, Bertin, Bertl, Bertold, Bertolt, Bertram, Bertwald, Bertwin, Birk, Blasius, Bodmar, Bodo, Bodomar, Bolko, Bonifaz, Boris, Borwin, Botho, Boto, Brandolf, Bringfried, Bruno, Burchard, Burckhard, Burckhardt, Burgfried, Burghard, Burghardt, Burghart, Burkard, Burkardt, Burkhard, Burkhardt, Burkhart, Cai, Carl, Carlheinz, Carsten, Caspar, Cay, Cersten, Chris, Christfried, Christhard, Christhardt, Christhart, Christhelm, Christian, Christmut, Christof, Christoph, Christopher, Christopherus, Christophorus, Christward, Claudius, Claus, Clemens, Conrad, Constantin, Corbinian, Cord, Cordian, Cordt, Cornelius, Cornell, Cuno, Curd, Curt, Cyrill, Dagobert, Dagomar, Damian, Daniel, Dankfried, Dankhard, Dankmar, Dankward, Dankwart, Danny, Darius, David, Degenhard, Degenhardt, Degenhart, Delf, Denis, Dennis, Denny, Desiderius, Dethard, Detlef, Detlev, Detmar, Detrich, Didi, Diemo, Dierk, Dietbald, Dietbert, Dieter, Dieterich, Dietfried, Dietgar, Dietger, Diethard, Diethardt, Diethart, Diethelm, Diether, Diethmar, Dietmar, Dietmund, Dietolf, Dietram, Dietrich, Dietwald, Dietwalt, Dietwolf, Dietwulf, Dietz, Dimitri, Dionys, Dirk, Ditmar, Dittmar, Dominic, Dominik, Dominikus, Donat, Donatus, Eberhard, Eberhardt, Eberhart, Eckard, Eckardt, Eckart, Eckbert, Eckehard, Eckehardt, Eckehart, Eckert, Eckfried, Eckhard, Eckhardt, Eckhart, Eckhold, Eddi, Edelbert, Edelfried, Edelhard, Edelmut, Edelwald, Edgar, Edmar, Edmund, Eduard, Eduardt, Edwin, Egbert, Egidius, Eginald, Eginhard, Eginhardt, Egmont, Egomar, Egon, Ehrenfried, Ehrenreich, Ehrhard, Ehrhardt, Ehrmut, Eik, Eike, Einhard, Einhardt, Eitelbert, Eitelfritz, Ekhard, Ekhardt, Ekkard, Ekkardt, Ekkart, Ekkehard, Ekkehardt, Ekkehart, Elbert, Elkmar, Elmar, Emanuel, Emeram, Emerich, Emil, Emmeram, Emmeran, Emmerich, Engelbert, Engelbrecht, Engelhard, Engelhardt, Engelmar, Englbert, Enrico, Erdfried, Erdmann, Erdwin, Erfried, Erhard, Erhardt, Erhart, Eric, Erich, Erik, Erk, Erkmar, Erlfried, Ermenfried, Erni, Erno, Ernst, Ernstfried, Erwin, Eugen, Eustachius, Ewald, Eyck, Fabian, Falk, Falkhard, Falkmar, Falko, Felix, Finn, Ferdi, Ferdinand, Ferdinandus, Ferfried, Ferhard, Ferhart, Fidelius, Florentin, Florentius, Florenz, Florian, Folker, Folkhard, Folkhardt, Folkhart, Folko, Follrich, Frank, Frankmut, Franz, Franziskus, Franzl, Franzpeter, Fred, Freddy, Freimund, Freimut, Freimuth, Freiwald, Fridolin, Fridulf, Fried, Friedbald, Friedberg, Friedbert, Friedebert, Friedeborn, Friedel, Friedemann, Friedemar, Frieder, Friedewald, Friedhard, Friedhardt, Friedhart, Friedhelm, Friedhold, Friedl, Friedlieb, Friedmar, Friedmut, Friedmuth, Friedolf, Friedolin, Friedrich, Friedwald, Friedwin, Frithjof, Fritz, Frohmund, Frohmut, Frohwald, Frowin, Gabriel, Gangolf, Gebhard, Gebhart, Gelbert, Georg, Gerald, Gerd, Gerdfried, Gerdt, Gereon, Gerfried, Gerhard, Gerhardt, Gerhart, Gerlach, German, Germar, Germo, Germut, Gernfried, Gernod, Gernot, Gernulf, Gero, Gerold, Gerolf, Gerrit, Gert, Gerthold, Gertmund, Gertwin, Gerwald, Gerwin, Giesbert, Gisbert, Giselbert, Giselher, Gismar, Godo, Golo, Gordian, Goswin, Gottfried, Gotthard, Gotthardt, Gotthart, Gotthelf, Gotthilf, Gotthold, Gottlieb, Gottlob, Gottreich, Gottwald, Gottwaldt, Gottwalt, Gregor, Grimbert, Guido, Gundhard, Gundhart, Gundmar, Gundolf, Gunfried, Gunhard, Gunnar, Gunter, Gunthard, Gunther, Guntmar, Guntram, Gustav, Gustel, Gustl, Hadubert, Hagen, Haimo, Hanfried, Hannes, Hanno, Hanns, Hannsgeorg, Hannspeter, Hans, Hansdieter, Hansfried, Hansfriedrich, Hansgeorg, Hansgerd, Hansheinz, Hanshelmut, Hanshermann, Hansi, Hansjakob, Hansjoachim, Hansjochen, Hanskarl, Hansl, Hansludwig, Hansmartin, Hansotto, Hanspeter, Hanswalter, Hanswerner, Hanswilhelm, Hanswolf, Harald, Hardi, Hardo, Hardy, Hariolf, Harri, Harribert, Harro, Harry, Hartfried, Hartger, Hartlieb, Hartmann, Hartmund, Hartmut, Hartmuth, Hartwald, Hartwig, Hartwin, Hasko, Hasso, Hatto, Haug, Haymo, Heidebert, Heiderich, Heidfried, Heiko, Heilmuth, Heilwig, Heimar, Heimbert, Heimfrid, Heimhart, Heimo, Heimwald, Heiner, Heinfried, Heini, Heino, Heinolf, Heinrich, Heintje, Heinz, Heinzdieter, Heinzfried, Heinzhermann, Heinzkarl, Heinzpeter, Heinzwerner, Helbert, Helfred, Helfrid, Helfried, Helge, Helgert, Helgomar, Hellfried, Hellmut, Hellmuth, Helm, Helmar, Helmbrecht, Helmfried, Helmo, Helmrich, Hellmuth, Helmut, Helmuth, Helmward, Helwart, Helwig, Helwin, Hendrik, Henning, Henrik, Henry, Herald, Herbert, Herfried, Herger, Heribert, Herko, Hermann, Hermfried, Herold, Herrmann, Herwald, Herward, Herwart, Herwarth, Herwig, Heyko, Heyo, Hieronimus, Hieronymus, Hilar, Hilarius, Hildebert, Hildebrand, Hildemar, Hildmar, Hilfried, Hilmar, Hippolytus, Hoimar, Holger, Holk, Holm, Holmer, Horst, Horstfried, Horstmar, Hubert, Hubertus, Hugo, Humbert, Ignatz, Ignaz, Ilrich, Immanuel, Ingbert, Ingfried, Inghard, Ingmar, Ingo, Ingobert, Ingolf, Ingomar, Ingowart, Ingram, Inkmar, Innozenz, Ireneus, Irmfried, Irmin, Irminfried, Irmo, Isbert, Isfried, Isidor, Iven, Ivo, Jacob, Jakob, Jan, Jannik, Janfried, Jannick, Jean, Jens, Jo, Joachim, Jobst, Jochen, Joel, Johann, Johannes, Jonas, Jonathan, Jonny, Jons, Joscha, Joschka, Josef, Joseph, Jost, Josua, Julian, Julius, Jupp, Just, Justus, Kai, Kajetan, Karl, Karlernst, Karleugen, Karlfried, Karlfrieder, Karlfriedrich, Karlgeorg, Karlhans, Karlheiner, Karlheinrich, Karlheinz, Karlhorst, Karli, Karlmann, Karlotto, Karlpeter, Karsten, Kasimir, Kaspar, Kay, Kersten, Kevin, Kilian, Klaudius, Klaus, Klausdieter, Klauspeter, Klemens, Knut, Knuth, Konrad, Konradin, Konstantin, Korbinian, Kord, Kornelius, Kristian, Kruno, Kunibert, Kuno, Kurd, Kurt, Kurth, Lambert, Landolf, Lars, Laurentius, Laurenz, Leander, Leberecht, Lebrecht, Lenard, Lenz, Leo, Leon, Leonhard, Leonhardt, Leopold, Leuthold, Lewin, Liborius, Liebhard, Liebhardt, Lienard, Lienhard, Lienhardt, Lindmar, Linhart, Lois, Loisl, Lorenz, Lothar, Louis, Lucas, Ludger, Ludolf, Ludwig, Luitpold, Luitwin, Lukas, Lutz, Maic, Maik, Malte, Manfred, Manfried, Manhard, Manhardt, Manhold, Manuel, Marbod, Marc, Marcel, Marcellus, Marco, Marcus, Marfried, Margolf, Marian, Mario, Marius, Mark, Marko, Markolf, Markus, Markward, Markwart, Marold, Martin, Marzel, Marzellus, Mathias, Mathis, Matthias, Maurus, Max, Maximilian, Maximillian, Maxl, Mayk, Medard, Medardus, Meik, Meikel, Meinard, Meinfried, Meinhard, Meinhart, Meinold, Meinolf, Meinrad, Meinulf, Melchior, Merten, Micha, Michael, Michel, Michl, Mike, Mirco, Mirko, Mischel, Moritz, Nathanael, Neidhard, Neidhardt, Neithard, Neithart, Nepomuk, Nick, Nicki, Nicky, Nico, Nicolas, Nicolaus, Niels, Niklas, Niklaus, Niko, Nikodem, Nikodemus, Nikolas, Nikolaus, Nils, Norbert, Nordfried, Norfried, Norman, Norwin, Notfried, Notker, Nunzius, Odilo, Olaf, Olf, Oliver, Olli, Ornulf, Ortfried, Ortmund, Ortwin, Oskar, Osmund, Oswald, Oswin, Otbert, Otfried, Otger, Otheinrich, Othmar, Otmar, Ottfried, Otthard, Otthart, Otthein, Ottheinrich, Ottheinz, Otthold, Ottkar, Ottmar, Otto, Ottobert, Ottokar, Ottomar, Ottwin, Otwald, Otwin, Pankratius, Pankraz, Pascal, Patrick, Paul, Paulfried, Paulinus, Paulus, Peter, Philip, Philipp, Phillip, Phillipp, Phillippus, Pierre, Pirmin, Pius, Quintus, Quirin, Raik, Raimar, Raimer, Raimond, Raimund, Rainald, Rainer, Rainhard, Rainhardt, Rainmund, Ralf, Ralph, Randolf, Randolph, Raphael, Rasso, Raymund, Reginbert, Reginhardt, Reimo, Reimund, Reinald, Reinar, Reinbert, Reiner, Reinfried, Reinhard, Reinhardt, Reinhart, Reinhold, Reinholdt, Reinmar, Reino, Reinold, Reinulf, Reinwald, Rembert, Remigius, Renald, Renatus, Renold, Rezzo, Richard, Rico, Rigbert, Rigo, Rigobert, Rimbert, Ringo, Robby, Robert, Roberto, Rochus, Roderich, Roger, Roland, Rolf, Roman, Romanus, Ronald, Ronny, Roselius, Rotger, Rothmund, Rouven, Ruben, Rudenz, Rudger, Rudi, Rudolf, Rudolph, Runald, Runfried, Rupert, Rupertus, Ruppert, Rupprecht, Ruprecht, Rutger, Ruthard, Samuel, Sascha, Schorsch, Sebald, Sebastian, Seibold, Sepp, Seppl, Sergius, Severin, Sibrand, Sidonius, Siegbert, Siegenot, Siegert, Siegfrid, Siegfried, Sieghard, Sieghardt, Sieghart, Sieghelm, Siegmar, Siegmund, Siegulf, Siegwald, Siegward, Siegwart, Sigbert, Sigenot, Sigfrid, Sigfried, Siggi, Sighard, Sighart, Sighelm, Sigi, Sigisbert, Sigishelm, Sigismund, Sigmar, Sigmund, Sigmut, Sigolf, Sigurd, Sigward, Sigwart, Silvester, Silvio, Simon, Simpert, Sixtus, Sonnfried, Sonnhard, Sonnhardt, Stanislaus, Stefan, Steff, Steffan, Steffen, Steph, Stephan, Stephanus, Steve, Steven, Sturmhard, Sturmius, Sven, Swen, Sylvester, Sylvio, Sylvius, Tankred, Tassilo, Tell, Thankmar, Thassilo, Theo, Theobald, Theobert, Theodor, Theofried, Theohold, Theophil, Theophilus, Thielo, Thiemo, Thilo, Thomas, Thoralf, Thorsten, Tiberius, Tiburtius, Tiemo, Til, Till, Tillmann, Tilman, Tilmann, Tilo, Tim, Timmo, Timo, Timon, Timotheus, Tino, Titus, Tobias, Tom, Tommy, Toni, Tony, Toralf, Torben, Torge, Torsten, Traugott, Trauhard, Treufried, Treuhard, Treuhart, Tristan, Trudbert, Trutz, Udo, Ulf, Ulfried, Uli, Ulli, Ullrich, Ulrich, Ulvi, Ulwin, Uranius, Urban, Ursus, Utho, Uto, Utto, Utz, Uve, Uwe, Valentin, Valerian, Veit, Veith, Velten, Viktor, Vincenz, Vinzent, Vinzenz, Vitalis, Vitus, Volkard, Volkart, Volkbert, Volker, Volkhard, Volkhardt, Volkhart, Volkher, Volkmar, Volkrad, Volkward, Volkwart, Vollrath, Volrad, Walbert, Waldemar, Waldfried, Walfried, Walter, Walther, Walti, Warnfried, Wastl, Wedig, Wedigo, Weikhard, Welf, Welfhard, Wendel, Wendelin, Wendelinus, Wendemar, Wennemar, Wenzel, Werner, Wernfried, Wernhard, Wernher, Wichard, Wido, Wiegand, Wiegbert, Wieghart, Wieland, Wiethold, Wigand, Wigbert, Wiglaf, Wilbert, Wilbrand, Wilbrandt, Wilderich, Wilfrid, Wilfried, Wilhard, Wilhardt, Wilhelm, Willehad, Willhart, Willi, Willibald, Willibert, Willmar, Willrich, Willy, Wilmar, Wilmhard, Wilmut, Winand, Winfrid, Winfried, Wingolf, Winnimar, Winrich, Withold, Witmar, Wittmar, Wladislaus, Woldemar, Wolf, Wolfbert, Wolfdieter, Wolfdietrich, Wolfeckart, Wolff, Wolfgang, Wolfhard, Wolfhardt, Wolfhart, Wolfhelm, Wolfhermann, Wolfmar, Wolfram, Wolfrid, Wolfried, Wolrad, Wulf, Wulfhard, Wulfhardt, Wunibald, Wunnibald, Xaver, Xaverius, York, Zacharias, Zeno]
female: [Adela, Adele, Adelgund, Adelgunde, Adelheid, Adelheide, Adelina, Adelinde, Adeline, Adeltraud, Adeltraut, Adina, Adolfa, Adolfine, Adriana, Adriane, Aenne, Agata, Agatha, Agathe, Agnes, Agnieszka, Albertine, Albina, Albine, Aleksandra, Alena, Alexa, Alexandra, Alheid, Alheide, Alheidis, Alice, Alicia, Alicja, Alida, Alin, Alina, Alinde, Aline, Alix, Alla, Alma, Almtrud, Almut, Almute, Almuth, Aloisia, Aloysia, Alrun, Altraud, Altrud, Alwina, Alwine, Amalia, Amalie, Amanda, Amelie, Amely, Amrei, Ana, Anastasia, Andrea, Anemone, Aneta, Anett, Anette, Anfriede, Angela, Angelica, Angelika, Angelina, Angelique, Anica, Anika, Anita, Anja, Anje, Anka, Anke, Ann, Anna, Annabell, Annagret, Annakatrin, Annalena, Anna-Lena, Annalene, Annalies, Annaliese, Anna-Luise, Annamaria, Anna-Maria, Annamarie, Anna-Marie, Annarose, Anne, Änne, Annedore, Annedoris, Annedorle, Annegold, Annegret, Annegrete, Annegreth, Anneheide, Annehild, Annehilde, Annekathrin, Anne-Kathrin, Annekatrin, Anne-Katrin, Anneke, Annekristin, Annelen, Annelene, Anneli, Annelie, Annelies, Anneliese, Annelinde, Annelise, Annelore, Annelotte, Anneluise, Annely, Annemargret, Annemaria, Annemarie, Anne-Marie, Annemie, Annemirl, Annerike, Anneros, Annerose, Anne-Rose, Anneruth, Annetraud, Annetraude, Annetrud, Annetrude, Annett, Annette, Anni, Annie, Annika, Annina, Annita, Annkathrin, Ann-Kathrin, Annkatrin, Anny, Anouschka, Ansgard, Antja, Antje, Antoinette, Antonia, Antonie, Antonietta, Antonina, Anuschka, Apollonia, Arabella, Ariane, Arite, Arlinde, Armgard, Arnhild, Arntraud, Arzu, Aslind, Asta, Astrid, Augusta, Auguste, Augustine, Aurelia, Aynur, Ayse, Aysel, Ayten, Babett, Babette, Babsi, Barbara, Bärbel, Barbi, Barbli, Beata, Beate, Beatrice, Beatrix, Belina, Belinda, Benedicta, Benedikta, Benita, Berenike, Berit, Berna, Bernadette, Bernadine, Berngard, Bernhardine, Bernhild, Bernhilde, Berta, Bertfriede, Bertha, Berthilde, Bertina, Bertlinde, Bertwalda, Betina, Betti, Bettina, Betty, Bianca, Bianka, Biggi, Biggy, Birga, Birge, Birghild, Birgid, Birgit, Birgitt, Birgitta, Birglinde, Birke, Birkhild, Birte, Birthe, Blanka, Borka, Bozena, Branka, Brigitta, Brigitte, Bringfriede, Brit, Brita, Britt, Britta, Bruna, Brunhild, Brunhilda, Brunhilde, Brunhildis, Bruni, Burga, Burgel, Burghild, Burghilde, Burgis, Burglind, Burglinde, Burgunda, Burgunde, Burkhild, Cäcilia, Cäcilie, Camilla, Canan, Caren, Carin, Carina, Carla, Carmela, Carmen, Carmine, Carola, Carolin, Carolina, Caroline, Carsta, Caterina, Catharina, Catherina, Catherine, Cathleen, Cathrin, Catrin, Cecilia, Celia, Centa, Cersten, Chantal, Charlotte, Christa, Christamaria, Christa-Maria, Christel, Christella, Christfriede, Christhild, Christhilde, Christiana, Christiane, Christin, Christina, Christine, Christl, Christliebe, Christsolde, Cilli, Cilly, Cindy, Cirsten, Claire, Clara, Cläre, Clarissa, Claudia, Clementine, Clivia, Clotilde, Concetta, Connie, Conny, Constance, Constanze, Cora, Cordelia, Cordula, Corina, Corinna, Corinne, Cornelia, Cosima, Crescentia, Cristina, Cynthia, Dagmar, Dahlia, Dajana, Damaris, Dana, Danica, Daniela, Daniele, Danielle, Danuta, Daphne, Daria, Debora, Deborah, Dela, Delia, Denise, Desiree, Diana, Diane, Diemut, Dietburg, Dietgard, Diethild, Diethilde, Dietlind, Dietlinde, Dietmute, Dina, Dinah, Dolores, Donata, Donate, Dora, Doraline, Dorchen, Dore, Doreen, Dorena, Dorette, Dorina, Doris, Dorit, Dorith, Doritha, Doritta, Dorkas, Dorle, Dorlies, Dorlinde, Dorlis, Doro, Dorota, Dorothe, Dorothea, Dorothee, Dörte, Dörthe, Dragica, Dunja, Edda, Edelburg, Edelfriede, Edelgard, Edelinde, Edeltraud, Edeltraude, Edeltraudt, Edeltraut, Edeltrud, Edeltrudis, Edit, Edith, Editha, Edwina, Edwine, Effi, Ehrengard, Ehrentraud, Ehrentraut, Ehrentrud, Ehrentrudis, Eike, Eileen, Ekaterina, Ela, Elena, Eleni, Elenore, Eleonora, Eleonore, Elfgard, Elfgund, Elfi, Elfie, Elfrieda, Elfriede, Elfrun, Elfy, Elgard, Elgine, Eli, Elia, Elif, Elisa, Elisabet, Elisabeth, Elisabetha, Elise, Elizabeth, Elke, Ella, Ellen, Ellengard, Ellentraud, Elli, Ellinor, Elly, Elma, Elrike, Elsa, Elsabe, Elsbeth, Else, Elselore, Elselotte, Elsemarie, Elsgard, Elvira, Elvire, Elwine, Elwira, Elzbieta, Emilia, Emilie, Emine, Emma, Emmaliese, Emmi, Emmy, Engelberta, Erdheide, Erdmute, Erdmuthe, Erica, Erika, Erkhild, Erla, Erlgard, Erltrud, Erlwine, Ermelinde, Ermenhild, Erna, Ernestine, Ernstine, Ester, Esther, Etta, Eugenia, Eugenie, Eunike, Eva, Evalinde, Evamaria, Eva-Maria, Evamarie, Eva-Marie, Evangelia, Evchen, Evelin, Evelinde, Eveline, Evelore, Evelyn, Evelyne, Evi, Ewa, Ewalda, Fabiane, Fabienne, Fadime, Fanny, Fatima, Fatma, Fee, Feli, Felicia, Felicitas, Felizia, Felizitas, Ferdinande, Filippina, Filiz, Finchen, Fine, Fini, Flora, Florence, Florentine, Florine, Framhild, Franca, Francesca, Francoise, Franka, Franzi, Franziska, Frauke, Frederike, Freia, Freya, Frida, Fridegund, Friderika, Friderike, Fridoline, Frieda, Friedburg, Friedeborg, Friedeburg, Friedegard, Friedegund, Friedegunde, Friedericke, Friederike, Friederun, Friedgard, Friedhild, Friedhilde, Friedl, Friedlenchen, Friedlies, Friedliese, Friedlind, Friedlinde, Friedoline, Friedrun, Frigga, Fritzi, Frohlinde, Frohmut, Frowine, Gabi, Gabriela, Gabriele, Gabriella, Gaby, Galina, Gefion, Genia, Genoveva, Georgia, Georgine, Geraldine, Gerborg, Gerburg, Gerda, Gerdhild, Gerdhilde, Gerdi, Gerfriede, Gerheide, Gerhild, Gerhilde, Gerlind, Gerlinda, Gerlinde, Gerolda, Gerritdina, Gerta, Gerthilde, Gerti, Gertraud, Gertraude, Gertraut, Gertraute, Gertrud, Gertrude, Gertrudis, Gertrudt, Gesa, Gesche, Gesine, Geza, Giesela, Gieselind, Gila, Gilda, Gina, Giovanna, Gisa, Gisela, Giselind, Giseltraud, Gislind, Gislinde, Gitta, Gitte, Gitti, Giuseppina, Gloria, Godelind, Goldina, Goldine, Goldtraud, Gönül, Gordana, Gotelind, Gotlind, Gottfrieda, Gottfriede, Gottholde, Grazyna, Greta, Gretchen, Grete, Gretel, Gretl, Gretlies, Griseldis, Grit, Gritt, Gritta, Gudrun, Gudula, Gülay, Gülsen, Gülten, Gunda, Gundel, Gundela, Gundemarie, Gundhild, Gundhilde, Gundi, Gundula, Gunhild, Gunhilde, Gunthild, Gustel, Gusti, Gustl, Hadburg, Hadmut, Hadmuthe, Hadumod, Hadwig, Halina, Hanife, Hanna, Hannah, Hannchen, Hanne, Hannegret, Hannelene, Hannelie, Hanneliese, Hannelore, Hanne-Lore, Hannelotte, Hannemarie, Hannerose, Hannetraud, Hanni, Hannmeike, Hanny, Haralda, Harda, Harriet, Hatice, Hedda, Hedi, Hedwig, Hedy, Heide, Heidegard, Heidegret, Heidegunde, Heidelies, Heideliese, Heidelind, Heidelinde, Heideline, Heidelore, Heidemaria, Heidemarie, Heide-Marie, Heiderose, Heidetraud, Heidi, Heidrun, Heidy, Heike, Heilwig, Heimgard, Heimtraud, Helen, Helena, Helene, Helga, Helgard, Helgrid, Heliane, Hella, Hellgard, Helma, Helmgard, Helmine, Helmtraud, Helmtraut, Helmtrud, Helrike, Heltrud, Henni, Henny, Henri, Henriette, Henrike, Herlind, Herlinde, Herma, Hermelinda, Hermelinde, Hermi, Hermine, Herta, Hertha, Hertraud, Herwiga, Herzlinde, Hetty, Hilda, Hildburg, Hildburga, Hilde, Hildeburg, Hildegard, Hildegardt, Hildegart, Hildegund, Hildegunde, Hildelies, Hildelind, Hildemarie, Hilderose, Hildetraud, Hildrun, Hildtraud, Hilgrun, Hilma, Hiltraud, Hiltraut, Hiltrud, Hiltrude, Hiltrun, Holdina, Holle, Huberta, Hubertina, Hubertine, Hulda, Huldine, Hülya, Ida, Idamarie, Ignatia, Ignazia, Ildiko, Ilka, Ilona, Ilonka, Ilsa, Ilsabe, Ilse, Ilsedore, Ilsefriede, Ilsegard, Ilsegret, Ilselore, Ilsemarie, Ilseruth, Ilsetraud, Ilsetraut, Imelda, Imke, Ina, Ines, Inga, Inge, Ingeborg, Ingeburg, Ingedore, Ingelene, Ingelies, Ingelinde, Ingelore, Ingelotte, Ingemarie, Ingerose, Ingeruth, Ingetraud, Ingetraut, Ingetrud, Ingolde, Ingrid, Ingried, Ingrun, Ingunde, Inka, Inken, Inna, Insa, Ira, Irena, Irene, Irina, Iris, Irlanda, Irma, Irmela, Irmelie, Irmelin, Irmelinde, Irmengard, Irmengild, Irmentraud, Irmentraut, Irmfriede, Irmgard, Irmgarda, Irmgardt, Irmhild, Irmhilde, Irmi, Irmingard, Irmintraud, Irmlind, Irmlinde, Irmtraud, Irmtraut, Irmtrud, Irmtrude, Isa, Isabel, Isabell, Isabella, Isabelle, Isedore, Iselore, Isgard, Ishild, Ishilde, Ismene, Isolde, Ivana, Ivanka, Ivette, Ivonne, Iwona, Jacqueline, Jadwiga, Jana, Jane, Janet, Janett, Janette, Janin, Janina, Janine, Janna, Jannine, Jaqueline, Jasmin, Jasmina, Jeanett, Jeanette, Jeannette, Jeannine, Jelena, Jennifer, Jenny, Jessica, Jessika, Jo, Joana, Joanna, Johanna, Johanne, Johannette, Jolanda, Jolande, Jolanta, Jolante, Jolantha, Jolanthe, Josefa, Josefine, Josepha, Josephina, Josephine, Judith, Juditha, Julia, Juliana, Juliane, Julie, Justina, Justine, Jutta, Kareen, Karen, Karena, Karin, Karina, Karla, Karola, Karolin, Karolina, Karoline, Karsta, Kassandra, Kata, Katalin, Katarina, Katarzyna, Käte, Katerina, Katharina, Katharine, Käthe, Katherina, Kathi, Käthi, Kathleen, Kathrein, Kathrin, Kathrina, Kathrinchen, Kathy, Kati, Katja, Katrein, Katrin, Katrina, Katy, Kersten, Kerstin, Kira, Kirsten, Kirstin, Klara, Kläre, Klarissa, Klaudia, Klementine, Klothilde, Klothildis, Klotilde, Konstanze, Kora, Kordelia, Kordula, Korinna, Kornelia, Kreszentia, Kreszenz, Kreszenzia, Kriemhild, Kriemhilde, Krimhild, Krimhilde, Krista, Kristiane, Kristin, Kristina, Kristine, Krystyna, Kunigunda, Kunigunde, Kyra, Laila, Lara, Larissa, Laura, Lea, Leila, Lena, Lene, Leni, Lenore, Leokadia, Leongard, Leonharda, Leoni, Leonie, Leonore, Leopoldina, Leopoldine, Lerke, Leyla, Lia, Liane, Lidia, Lidija, Lidwina, Liebgard, Liebgunde, Liesa, Liesbeth, Lieschen, Liesegret, Liesel, Lieselene, Lieselore, Lieselotte, Liesgret, Liesl, Lili, Lilia, Lilian, Liliana, Liliane, Lilibeth, Lilija, Lilli, Lilly, Lilo, Lily, Lina, Linda, Linde, Lindemarie, Lindhilde, Linhilde, Lintrud, Lioba, Lisa, Lisanne, Lisbeth, Lise, Lisel, Liselore, Liselotte, Lisette, Lisl, Lissi, Lissy, Ljiljana, Ljubica, Ljudmila, Lona, Loni, Lore, Lorelies, Loreliese, Loremarie, Loretta, Lotte, Lottelore, Lottemaria, Lotti, Louise, Lucia, Lucie, Ludmila, Ludmilla, Ludwiga, Ludwina, Luisa, Luise, Luitgard, Luitgart, Luka, Luzia, Luzie, Lydia, Lysann, Madeleine, Madita, Madleine, Madlen, Magarete, Magda, Magdalena, Magdalene, Magret, Magrit, Maike, Maja, Maleen, Malgorzata, Malve, Malwine, Mandy, Mania, Manja, Manuela, Mara, Marcella, Mareen, Marei, Mareike, Mareile, Maren, Marena, Marfriede, Marga, Margaret, Margareta, Margarete, Margareth, Margaretha, Margarethe, Margarita, Margaritta, Margit, Margita, Margitta, Margitte, Margot, Margret, Margreth, Margrid, Margrit, Margund, Margunde, Marhild, Maria, Maria-Luise, Mariana, Marianna, Marianne, Maria-Theresia, Marica, Marie, Mariechen, Mariedore, Mariegret, Mariele, Marielene, Marielies, Marieliese, Marielouise, Marie-Louise, Marieluise, Marie-Luise, Marietheres, Marie-Theres, Marie-Therese, Marietraud, Marietta, Marija, Marika, Marilen, Marilene, Marilu, Marina, Marinette, Mariola, Marion, Marisa, Marit, Marita, Maritta, Marjan, Marleen, Marlen, Marlene, Marli, Marlies, Marliese, Marlinde, Marlis, Marlit, Marlitt, Marta, Martha, Martina, Martine, Martrud, Mary, Marzena, Mathilde, Maxi, Maxie, Maximiliane, Maya, Mechthild, Mechthilde, Mechtild, Mechtilde, Meike, Meinfriede, Melanie, Melinda, Melisande, Melissa, Melita, Melitta, Meral, Mercedes, Merlind, Merlinde, Meryem, Meta, Mia, Michaela, Michaele, Michelle, Milena, Milica, Milka, Milli, Mina, Minna, Mira, Mirella, Miriam, Mirja, Mirjam, Mirjana, Miroslawa, Mona, Monica, Monika, Monique, Monja, Muthild, Myriam, Myrjam, Myrta, Nada, Nadeschda, Nadeshda, Nadia, Nadin, Nadine, Nadja, Nancy, Nanni, Natali, Natalia, Natalie, Natalija, Natalja, Natascha, Nathalie, Nelli, Nelly, Nermin, Nevenka, Nicola, Nicole, Nikola, Nina, Noa, Nora, Nordrun, Norma, Nortrud, Nortrun, Notburg, Notburga, Nuran, Nuray, Nurten, Oda, Olav, Olena, Olga, Olinde, Olivia, Ortraud, Ortrud, Ortrun, Oslinde, Otti, Ottilia, Ottilie, Oxana, Pamela, Paola, Pascale, Patricia, Patrizia, Paula, Paulina, Pauline, Peggy, Petra, Philine, Philipine, Philomena, Pia, Poldi, Polina, Priska, Rabea, Radegundis, Radmila, Rahel, Raimunde, Raingardis, Raisa, Raissa, Ramona, Raphaela, Rathgunde, Rauthgundis, Rebecca, Rebecka, Rebekka, Regelinde, Regelindis, Regina, Regine, Reglind, Reglindis, Reinburga, Reinfriede, Reingard, Reinhardine, Reinhild, Reinhilde, Reinhildis, Reinholdine, Reinlinde, Reintraud, Reintraut, Relindis, Rena, Renata, Renate, Reni, Renilde, Reny, Resel, Resi, Resie, Resilotte, Rhiane, Ria, Riana, Ribana, Ricarda, Richarda, Richardis, Rilana, Rita, Romana, Romi, Rommy, Romy, Rosa, Rosalia, Rosalie, Rosalinde, Rosa-Maria, Rosamarie, Rose, Rosegret, Rosegunde, Rosehilde, Rosel, Roselene, Roselette, Roselies, Roseliese, Roselind, Roselinde, Roseline, Roselore, Roselotte, Rosely, Rosemaria, Rosemarie, Rose-Marie, Rosemie, Rosetraut, Rosi, Rosie, Rosina, Rosita, Rositta, Rosl, Roslinda, Roslinde, Rosmarie, Roswita, Roswitha, Rotraud, Rotraut, Rudolfina, Runhild, Ruth, Ruthild, Ruthilde, Sabina, Sabinchen, Sabine, Sabrina, Sabrine, Sahra, Samira, Sandra, Sandy, Sanna, Sara, Sarah, Sarina, Saskia, Scholastika, Schwanhild, Selina, Selma, Semra, Senta, Serafine, Serpil, Sevim, Sibel, Sibilla, Sibille, Sibyl, Sibylla, Sibylle, Sidonie, Siegberta, Siegbritta, Siegfrieda, Siegfriede, Siegharda, Sieghild, Sieghilde, Sieglind, Sieglinde, Siegrid, Siegried, Siegrun, Siegtraud, Siggi, Sighild, Sighilde, Sigi, Siglind, Siglinde, Sigrid, Sigrun, Sigtraud, Sigtrud, Sigunde, Sigune, Silja, Silke, Silva, Silvana, Silvia, Simona, Simone, Simperta, Sina, Sinaida, Sindy, Siska, Sissy, Slavica, Sofia, Sofie, Solveig, Songül, Sonia, Sonja, Sonngard, Sonnhild, Sonnhilde, Sophia, Sophie, Stefani, Stefania, Stefanie, Steffi, Steffie, Stella, Stephania, Stephanie, Stilla, Sunhild, Susan, Susana, Susann, Susanna, Susanne, Suse, Susen, Susette, Susi, Suzanne, Svea, Svenja, Svetlana, Swanhild, Swanhilde, Swantje, Swetlana, Sybil, Sybill, Sybilla, Sybille, Sylke, Sylvana, Sylvelin, Sylvia, Sylvie, Sylwia, Tabea, Tamara, Tania, Tanja, Tatiana, Tatjana, Telse, Teresa, Thea, Theda, Thekla, Theobalda, Theodeline, Theodolinde, Theodora, Theodore, Theolinde, Theres, Theresa, Therese, Theresia, Thilde, Thurid, Thusnelda, Tilla, Tilli, Tilly, Tina, Traude, Traudel, Traudi, Traudl, Traudlinde, Trautchen, Traute, Trauthilde, Trautlind, Trautlinde, Trinchen, Trixi, Trude, Trudel, Trudi, Tülay, Türkan, Ula, Ulfrida, Ulla, Ulrike, Undine, Unette, Urda, Ursel, Ursl, Ursula, Ursulina, Urszula, Urta, Urte, Urthe, Uschi, Uta, Ute, Utta, Valentina, Valentine, Valeri, Valeria, Valerie, Valeska, Vanessa, Vera, Verena, Verona, Veronica, Veronika, Veronique, Vesna, Victoria, Viktoria, Viola, Violetta, Virginia, Viviane, Vreneli, Vreni, Vroni, Walburg, Walburga, Walda, Waldburga, Waldburgis, Waldfriede, Waldtraud, Waldtraut, Walentina, Walfriede, Walli, Wally, Waltraud, Waltraut, Waltrud, Waltrude, Waltrudis, Wanda, Wencke, Wendela, Wendelgard, Wendelin, Wendeline, Wenke, Wera, Werngard, Wernhild, Wibke, Wiebke, Wilfriede, Wilgard, Wilhelma, Wilhelmine, Wilja, Willma, Wilma, Wiltraud, Wiltraut, Wiltrud, Wiltrude, Wiltrudis, Winfriede, Wintrud, Witta, Wolfgard, Wolfhilde, Xenia, Yasemin, Yasmin, Yvette, Yvonne, Zdenka, Zehra, Zenta, Zenzi, Zeynep, Zilli, Zita, Zofia]
lastNames:
male: [Abel, Abele, Abels, Abraham, Abt, Achatz, Achenbach, Acker, Ackermann, Adam, Adams, Adler, Adolf, Adolph, Adrian, Ahlers, Ahrens, Aigner, Alber, Albers, Albert, Albrecht, Alex, Alexander, Alles, Alt, Althaus, Althoff, Altmann, Altmeyer, Amann, Amend, Ammann, Ammon, Anders, Andersen, Andreas, Andres, Andresen, Anger, Angerer, Angermann, Anton, Apel, Appel, Appelt, Arend, Arendt, Arens, Arlt, Armbruster, Arndt, Arnold, Arslan, Artmann, Aschenbrenner, Asmus, Assmann, Aßmann, Auer, Augustin, Aust, Aydin, Bach, Bacher, Bächle, Bachmann, Bachmeier, Back, Bäcker, Backes, Backhaus, Bade, Bader, Baer, Bahr, Bähr, Baier, Baldauf, Balke, Baltes, Balzer, Bamberger, Bangert, Bär, Baron, Bartel, Bartels, Bartelt, Barth, Barthel, Bartl, Bartmann, Bartsch, Bartz, Barz, Basler, Bast, Bastian, Bätz, Bauch, Bauer, Bäuerle, Baum, Baumann, Baumbach, Baumeister, Baumer, Bäumer, Baumert, Baumgart, Baumgärtel, Baumgarten, Baumgartner, Baumgärtner, Bäumler, Baur, Bausch, Bayer, Becher, Becht, Bechtel, Bechtold, Beck, Becker, Beckers, Beckert, Beckmann, Beer, Beermann, Beetz, Behling, Behm, Behn, Behnke, Behr, Behrend, Behrends, Behrendt, Behrens, Behringer, Behrmann, Beier, Beil, Bell, Beller, Bellmann, Belz, Bendel, Bender, Bendig, Benecke, Benner, Benning, Bensch, Benz, Berberich, Berens, Berg, Bergemann, Bergen, Berger, Bergmann, Bergner, Berlin, Bernard, Berndt, Berner, Bernhard, Bernhardt, Berthold, Bertram, Bertsch, Best, Bethge, Bethke, Betz, Beutel, Beutler, Beyer, Bichler, Bickel, Bieber, Biedermann, Biehl, Bielefeld, Bienert, Bier, Biermann, Biller, Binder, Birk, Birke, Birkholz, Birkner, Birner, Bischof, Bischoff, Bitter, Bittner, Bitzer, Blank, Blanke, Blankenburg, Blaschke, Blau, Blechschmidt, Blessing, Bley, Bloch, Block, Blohm, Blome, Bluhm, Blum, Blume, Blümel, Blumenthal, Bochmann, Bock, Böck, Böcker, Böckmann, Bode, Boden, Bogner, Bohl, Bohlen, Böhler, Bohlmann, Bohm, Böhm, Böhme, Böhmer, Bohn, Bohne, Böhner, Bohnert, Böhnke, Bohr, Böhringer, Böker, Boldt, Boll, Boller, Bollmann, Bolte, Bolz, Bongartz, Böning, Bönisch, Bonk, Bonn, Boos, Bopp, Borchardt, Borchers, Borchert, Börger, Borgmann, Bork, Bormann, Born, Bornemann, Börner, Borowski, Borrmann, Bosch, Bösch, Böse, Bosse, Both, Bothe, Bott, Böttcher, Böttger, Böttner, Boy, Bracht, Brack, Brand, Brandenburg, Brandes, Brandl, Brandner, Brandstetter, Brandt, Brauer, Bräuer, Braun, Braune, Brauner, Bräutigam, Brecht, Brede, Brehm, Brehmer, Breidenbach, Breier, Breit, Breitenbach, Bremer, Brendel, Brennecke, Brenner, Bretschneider, Brettschneider, Breu, Breuer, Breunig, Breyer, Brill, Brink, Brinker, Brinkmann, Brix, Brock, Bröcker, Brockmann, Bröker, Brosch, Brose, Bruch, Brück, Brucker, Brückmann, Bruckner, Brückner, Bruder, Brüggemann, Brugger, Brühl, Bruhn, Brummer, Brümmer, Brune, Brüning, Brunke, Brunner, Bruns, Brust, Buch, Büchel, Bucher, Buchholz, Büchler, Buchmann, Buchner, Büchner, Buchwald, Buck, Bücker, Budde, Buhl, Bühler, Bühner, Buhr, Bülow, Bunge, Bünger, Bunk, Burg, Burger, Bürger, Burghardt, Burk, Burkard, Burkart, Burkert, Burkhard, Burkhardt, Burkhart, Bürkle, Burmeister, Burmester, Busch, Busche, Büscher, Buschmann, Buse, Büsing, Buss, Buß, Busse, Bußmann, Büttner, Butz, Carl, Carstens, Carstensen, Caspari, Casper, Celik, Christ, Christian, Christiansen, Christmann, Christoph, Clasen, Claßen, Claus, Clausen, Clauß, Claußen, Clemens, Coenen, Cohrs, Conrad, Conradi, Cordes, Cornelius, Cramer, Cremer, Czech, Dahl, Dahlke, Dahlmann, Dahm, Dahmen, Dahms, Dallmann, Damm, Dammann, Daniel, Daniels, Dannenberg, Danner, Daub, Daum, David, de, Debus, Decker, Deckert, Degen, Degenhardt, Degner, Dehn, Deininger, Demir, Demmer, Demuth, Denecke, Dengler, Denk, Denker, Deppe, Derksen, Dettmann, Dettmer, Deutsch, Deutschmann, Dewald, Dick, Dickmann, Dieckmann, Diederich, Diederichs, Diedrich, Diefenbach, Diehl, Diekmann, Diel, Diemer, Diener, Dierkes, Dierks, Dietel, Dieterich, Dieterle, Dietl, Dietrich, Dietz, Dietze, Dietzel, Dill, Dillmann, Dinkel, Dinter, Dippel, Dirks, Distler, Dittmann, Dittmar, Dittmer, Dittrich, Dobler, Dogan, Döhler, Dohmen, Döhring, Dohrmann, Dold, Doll, Döll, Dombrowski, Domke, Donath, Donner, Dörfler, Döring, Dorn, Dorner, Dörner, Dörr, Dorsch, Dose, Dost, Dräger, Drechsel, Drechsler, Drees, Dreher, Dreier, Drescher, Dressel, Dressler, Dreßler, Drewes, Drews, Drexler, Dreyer, Dröge, Droste, Dück, Duda, Dudek, Dunkel, Dunker, Düring, Dürr, Duwe, Dyck, Ebel, Ebeling, Eberhard, Eberhardt, Eberl, Eberle, Eberlein, Ebert, Ebner, Eck, Eckardt, Eckart, Eckel, Ecker, Eckert, Eckhardt, Eckhoff, Eckl, Eckstein, Edel, Edelmann, Eder, Edler, Effenberger, Eger, Egger, Eggers, Eggert, Egner, Ehlers, Ehlert, Ehmann, Ehrenberg, Ehret, Ehrhardt, Ehrich, Ehrlich, Ehrmann, Eibl, Eich, Eichholz, Eichhorn, Eichinger, Eichler, Eichmann, Eichner, Eickhoff, Eifler, Eilers, Eisele, Eisenmann, Eismann, Eisner, Eitel, Eller, Elsner, Emde, Emmerich, Emmert, Emrich, Ender, Enderle, Enders, Endres, Engel, Engelbrecht, Engelhard, Engelhardt, Engelke, Engelmann, Engels, Engert, Engl, Engler, Englert, Enke, Epp, Epple, Eppler, Erb, Erbe, Erben, Erdmann, Erhard, Erhardt, Erler, Ernst, Ertel, Ertl, Esch, Escher, Esser, Eßer, Essig, Euler, Evers, Ewald, Ewers, Ewert, Exner, Faber, Fabian, Falk, Falke, Falkenberg, Faller, Färber, Faßbender, Fast, Fath, Faulhaber, Faust, Fechner, Fehr, Fehrenbach, Feige, Feil, Feiler, Feist, Felber, Feld, Feldhaus, Feldmann, Feldmeier, Feller, Fellner, Fels, Fendt, Fengler, Fenske, Fenzl, Ferber, Ferstl, Fett, Fetzer, Fey, Fichtner, Fick, Fiebig, Fiedler, Figge, Findeisen, Finger, Fink, Finkbeiner, Finke, Fisch, Fischbach, Fischer, Fitz, Fix, Flach, Flaig, Fleck, Fleckenstein, Fleischer, Fleischhauer, Fleischmann, Flemming, Flick, Flohr, Flügel, Flügge, Focke, Forster, Förster, Forstner, Förtsch, Fox, Frahm, Franck, Frank, Franke, Franken, Franz, Franzen, Franzke, Frech, Freese, Frei, Freiberg, Freier, Freitag, Frenz, Frenzel, Frerichs, Frese, Freudenberg, Freund, Frey, Freyer, Freytag, Frick, Fricke, Friebe, Friedel, Friedemann, Friedl, Friedmann, Friedrich, Friedrichs, Fries, Friese, Friesen, Frieß, Frings, Frisch, Fritsch, Fritsche, Fritz, Fritze, Fritzsch, Fritzsche, Fröhlich, Fromm, Fromme, Frost, Früh, Frühauf, Fuchs, Fuhr, Führer, Fuhrmann, Funk, Funke, Fürst, Fuß, Fütterer, Gabel, Gabler, Gäbler, Gabriel, Gaida, Gaiser, Gall, Galle, Ganser, Ganter, Ganz, Garbe, Gärtner, Gassner, Gaßner, Gast, Gaul, Gaus, Gebauer, Gebel, Gebert, Gebhard, Gebhardt, Gehlen, Gehrig, Gehring, Gehrke, Gehrmann, Geib, Geier, Geiger, Geis, Geisler, Geiß, Geissler, Geißler, Geist, Gellert, Gentner, Genz, Georg, George, Georgi, Geppert, Gerber, Gerdes, Gerhard, Gerhards, Gerhardt, Gericke, Gerke, Gerken, Gerlach, Gerling, Germann, Gerner, Gerstner, Gerth, Gessner, Geßner, Geyer, Giebel, Gies, Giese, Giesecke, Giesen, Gilbert, Gille, Gilles, Glas, Glaser, Gläser, Glaß, Glatz, Gleich, Gleißner, Glock, Glöckner, Glück, Göbel, Gödde, Gödecke, Goebel, Goerke, Goertz, Göhler, Gohlke, Göhring, Gold, Goldbach, Goldberg, Goldmann, Goldschmidt, Goll, Goller, Göller, Göllner, Golz, Gölz, Göpfert, Görg, Görgen, Göring, Görlich, Görner, Görtz, Götte, Gottfried, Gotthardt, Gottschalk, Gottschlich, Gottschling, Gottwald, Götz, Götze, Gräber, Grabow, Grabowski, Gradl, Graf, Gräf, Grafe, Gräfe, Grahl, Gramlich, Grams, Graß, Graßl, Grätz, Grau, Graupner, Greb, Grebe, Greger, Gregor, Greif, Greiner, Grell, Grenz, Greulich, Greve, Grewe, Griebel, Grieger, Gries, Griese, Grill, Grimm, Grimmer, Grobe, Gröger, Groh, Grohmann, Groll, Gronau, Gröne, Grosch, Gross, Groß, Grosse, Große, Grosser, Großer, Großkopf, Grossmann, Großmann, Grote, Groth, Grothe, Grube, Gruber, Gruhn, Grün, Grünberg, Grund, Grundmann, Gruner, Grüner, Grunert, Grunewald, Grünewald, Grunwald, Grünwald, Grützner, Guhl, Gundlach, Gunkel, Günter, Günther, Günzel, Gürtler, Guse, Guth, Gutjahr, Gutmann, Gutsche, Güttler, Gutzeit, Haack, Haag, Haak, Haake, Haarmann, Haas, Haase, Habel, Haberkorn, Haberl, Haberland, Häberle, Habermann, Hack, Hackbarth, Hackenberg, Hacker, Häcker, Hackl, Hackmann, Häfele, Hafner, Häfner, Hagedorn, Hagel, Hägele, Hagemann, Hagen, Hager, Hahn, Hahne, Hähnel, Haider, Haimerl, Hain, Hake, Haller, Hallmann, Hamacher, Hamann, Hamm, Hammann, Hammel, Hammer, Hammerschmidt, Hammes, Hampe, Hampel, Handke, Hänel, Hanf, Hanisch, Hanke, Hannemann, Hannig, Hans, Hänsch, Hansel, Hänsel, Hansen, Hansmann, Hantke, Happel, Harder, Hardt, Häring, Harms, Harnisch, Harrer, Härtel, Harter, Harth, Hartig, Hartl, Härtl, Hartmann, Hartung, Hartwich, Hartwig, Hase, Hass, Haß, Hasse, Hassel, Hau, Hauber, Haubold, Hauck, Hauer, Haufe, Haug, Hauk, Hauke, Haupt, Hauptmann, Haus, Hauschild, Hauser, Häuser, Häusler, Hausmann, Hausner, Häußler, Haußmann, Haustein, Heber, Hecht, Heck, Heckel, Hecker, Heckmann, Hedrich, Heer, Heese, Hegemann, Heger, Heid, Heide, Heidemann, Heiden, Heidenreich, Heider, Heidrich, Heidt, Heigl, Heil, Heiland, Heilig, Heilmann, Heim, Heimann, Hein, Heindl, Heine, Heinecke, Heinemann, Heinen, Heinicke, Heinig, Heinisch, Heinke, Heinlein, Heinrich, Heinrichs, Heins, Heintz, Heinz, Heinze, Heinzel, Heinzelmann, Heinzmann, Heise, Heiser, Heisig, Heiß, Heitmann, Heitz, Heizmann, Helbig, Helbing, Held, Heldt, Helfrich, Hell, Heller, Hellmann, Hellmich, Hellmuth, Hellwig, Helm, Helmer, Helmke, Helms, Hemmer, Hempel, Hendricks, Hengst, Henke, Henkel, Henn, Henne, Hennecke, Hennemann, Hennig, Henning, Henninger, Hennings, Henrich, Henrichs, Henschel, Hense, Hensel, Henseler, Hentschel, Henze, Hepp, Heppner, Herb, Herber, Herbert, Herbst, Herdt, Herget, Hering, Hermann, Hermanns, Hermes, Herold, Herr, Herrmann, Hertel, Herter, Hertlein, Hertwig, Herwig, Herz, Herzberg, Herzig, Herzog, Hess, Heß, Hesse, Hessel, Heßler, Hettich, Hetzel, Heuer, Heumann, Heuser, Hey, Heyer, Heymann, Heyn, Heyne, Hieber, Hielscher, Hierl, Hilbert, Hilbig, Hild, Hildebrand, Hildebrandt, Hildenbrand, Hilger, Hilgers, Hill, Hille, Hillebrand, Hillenbrand, Hiller, Hillmann, Hilmer, Hilpert, Himmel, Hinkel, Hinrichs, Hinrichsen, Hintz, Hintze, Hinz, Hinze, Hinzmann, Hipp, Hirsch, Hirschfeld, Hirschmann, Hirt, Hirth, Hoch, Hochmuth, Hock, Hof, Hofbauer, Hofer, Höfer, Hoff, Hoffmann, Hoffmeister, Höfler, Höfling, Hofmann, Hofmeister, Hofstetter, Höft, Höger, Hohl, Hohmann, Hohn, Höhn, Höhne, Holl, Höll, Holland, Holler, Höller, Hollmann, Hollstein, Holm, Hölscher, Holst, Holstein, Holtkamp, Holtmann, Holtz, Holz, Holzapfel, Hölzel, Holzer, Hölzer, Holzinger, Hölzl, Holzmann, Holzner, Holzwarth, Homann, Hommel, Hönig, Hopf, Höpfner, Hopp, Hoppe, Höppner, Hörl, Hörmann, Horn, Hörner, Hornig, Hornung, Horst, Horstmann, Horvath, Hotz, Hoyer, Huber, Hubert, Hübner, Hübsch, Huck, Hufnagel, Hug, Hügel, Huhn, Hüls, Hülsmann, Hummel, Hümmer, Hund, Hundertmark, Hundt, Hunger, Huppertz, Husemann, Husmann, Huth, Hüther, Hutter, Hütter, Hüttner, Ihle, Ilg, Imhof, Irmer, Irrgang, Israel, Jablonski, Jäckel, Jacob, Jacobi, Jacobs, Jacobsen, Jaeger, Jäger, Jahn, Jahnke, Jahns, Jäkel, Jakob, Jakobi, Jakobs, Jänicke, Janik, Janke, Jankowski, Jansen, Janson, Janssen, Janßen, Janz, Janzen, Jäschke, Jasper, Jauch, Jehle, Jensen, Jentsch, Jentzsch, Jeschke, Jeske, Jesse, Jessen, Joachim, Jobst, Jochum, Johann, Johannes, Johannsen, John, Jonas, Joos, Jordan, Jörg, Joseph, Jost, Jünemann, Jung, Jungbluth, Junge, Jünger, Junghans, Jüngling, Jungmann, Junk, Junker, Jürgens, Jürgensen, Just, Jüttner, Kaczmarek, Kaden, Käfer, Kahl, Kahle, Kähler, Kahlert, Kaiser, Kalb, Kalinowski, Kalisch, Kallenbach, Kaltenbach, Kaluza, Kaminski, Kamm, Kammer, Kammerer, Kämmerer, Kamp, Kampe, Kämpf, Kampmann, Kamps, Kania, Kanzler, Kapp, Kappel, Kappes, Kappler, Kaps, Karcher, Karg, Karger, Karl, Karle, Karsten, Käser, Kaspar, Kasper, Kast, Kasten, Kastl, Kastner, Kästner, Katz, Katzer, Kauer, Kaufhold, Kaufmann, Kaul, Kautz, Kaya, Kayser, Keck, Kegel, Kehl, Kehr, Kehrer, Keil, Keim, Keitel, Keller, Kellermann, Kellner, Kelm, Kemmer, Kempe, Kemper, Kempf, Keppler, Kerber, Kerkhoff, Kern, Kerner, Kerscher, Kersten, Kersting, Kessel, Kessler, Keßler, Ketterer, Kettler, Kettner, Kick, Kiefer, Kiel, Kienle, Kienzle, Kiesel, Kiesewetter, Kießling, Kilian, Kilic, Kimmel, Kind, Kinder, Kindermann, Kindler, Kinzel, Kipp, Kirch, Kircher, Kirchhof, Kirchhoff, Kirchner, Kirsch, Kirschbaum, Kirschner, Kirst, Kirstein, Kirsten, Kissel, Kistner, Kittel, Klaas, Klages, Klaiber, Klapper, Klar, Klasen, Klassen, Klatt, Klaus, Kleber, Klee, Kleemann, Klein, Kleine, Kleiner, Kleinert, Kleinhans, Kleinschmidt, Klement, Klemm, Klenk, Klett, Kley, Kliem, Klier, Kling, Klingbeil, Klinge, Klingenberg, Klinger, Klingler, Klink, Klinke, Klinkhammer, Klocke, Klöckner, Kloos, Klos, Klose, Kloss, Kloß, Klostermann, Kloth, Klotz, Klug, Kluge, Klumpp, Kluth, Knab, Knabe, Knapp, Knappe, Knauer, Knauf, Knaus, Knebel, Knecht, Knittel, Knoblauch, Knobloch, Knoch, Knoche, Knödler, Knoll, Knoop, Knop, Knopf, Knopp, Knorr, Knoth, Knott, Knüppel, Knuth, Kober, Koch, Köcher, Kock, Koenen, Kögel, Kögler, Kohl, Köhl, Kohler, Köhler, Kohlmann, Kohn, Köhn, Köhne, Kohnen, Kolb, Kolbe, Kolbeck, Kolberg, Kölbl, Koll, Koller, Köller, Kölling, Kollmann, Köllner, Kolodziej, Kölsch, König, Königs, Konrad, Koop, Koopmann, Kopf, Köpke, Kopp, Koppe, Köppe, Köppel, Köppen, Köppl, Korb, Körber, Korn, Körner, Korte, Korth, Kortmann, Koslowski, Kost, Köster, Kösters, Köstler, Kothe, Kötter, Kowalewski, Kowalski, Kracht, Kraemer, Krafft, Kraft, Krah, Krahl, Krahn, Kramer, Krämer, Krammer, Kramp, Krampe, Kranz, Krapf, Krapp, Kratz, Kratzer, Kraus, Krause, Krauss, Krauß, Krauße, Krawczyk, Krebs, Kreft, Kreis, Krell, Kremer, Kremser, Krenz, Kress, Kreß, Kretschmann, Kretschmer, Kretz, Kretzer, Kretzschmar, Kreutz, Kreutzer, Kreuz, Kreuzer, Krey, Krieg, Kriegel, Krieger, Krings, Kröber, Kröger, Krohn, Kroll, Kröll, Kromer, Krone, Kröner, Kropf, Kropp, Krug, Krüger, Krull, Krumm, Krupp, Kruppa, Kruse, Kube, Kübler, Kuch, Küchler, Kuck, Kück, Kugel, Kugler, Kügler, Kuhl, Kühl, Kuhlmann, Kuhn, Kühn, Kühne, Kühnel, Kühner, Kuhnert, Kühnert, Kühnle, Kuhnt, Kuhr, Kullmann, Kümmel, Kummer, Kunath, Kunde, Kunert, Kunkel, Kunst, Kuntz, Kuntze, Kunz, Kunze, Künzel, Kunzmann, Küper, Kupfer, Kupka, Küpper, Küppers, Kürschner, Kurth, Kurtz, Kurz, Kusch, Kuschel, Küster, Küsters, Kutscher, Kutz, Kutzner, Lachmann, Lackner, Ladwig, Lambert, Lambertz, Lambrecht, Lamm, Lammers, Lampe, Lampert, Lamprecht, Landgraf, Landmann, Landwehr, Lang, Langbein, Lange, Langen, Langenbach, Langer, Langguth, Langhammer, Langhans, Langner, Lanz, Laskowski, Lau, Laub, Laube, Lauber, Laue, Lauer, Laufer, Laumann, Lautenschläger, Lauterbach, Laux, Lay, Leber, Lechner, Leder, Lederer, Lehmann, Lehmkuhl, Lehnen, Lehner, Lehnert, Lehr, Leibold, Leicht, Leinweber, Leipold, Leis, Leistner, Leitner, Lembke, Lemke, Lemm, Lemmer, Lenk, Lennartz, Lentz, Lenz, Lenzen, Leonhard, Leonhardt, Leopold, Lerch, Lesch, Leupold, Leuschner, Lewandowski, Lex, Ley, Licht, Lichtenberg, Lieb, Liebe, Liebert, Liebich, Liebig, Liebl, Liebmann, Liebscher, Lieder, Liedtke, Liese, Lieske, Lietz, Limbach, Limmer, Lind, Linde, Lindemann, Linden, Lindenau, Lindenberg, Linder, Lindner, Link, Linke, Linn, Linnemann, Linz, Lipinski, Lipp, Lippert, Lippmann, Lippold, List, Loch, Locher, Lochner, Löffler, Lohmann, Lohr, Löhr, Lohse, Loibl, Loos, Loose, Lorenz, Lorenzen, Lösch, Löser, Loth, Lotz, Löw, Löwe, Löwen, Lübben, Lübke, Lucas, Lucht, Lück, Lücke, Lüdecke, Lüdemann, Lüders, Ludewig, Lüdtke, Ludwig, Luft, Lühr, Lührs, Lukas, Lüke, Lüth, Luther, Lutter, Lutz, Lux, Maack, Maas, Maaß, Maaßen, Mack, Mader, Mäder, Mager, Mahler, Mahn, Mahnke, Mahr, Mai, Maier, Mainka, Mair, Maisch, Maiwald, Majewski, Mandel, Mang, Mangold, Manke, Mann, Manske, Manthey, Manz, Marek, Mark, Markert, Markgraf, Markmann, Marks, Markus, Marquardt, Marschall, Marschner, Marten, Martens, Martin, Martini, Marx, März, Maschke, Mast, Matern, Matheis, Mathes, Matt, Mattern, Mattes, Matthes, Matthias, Matthies, Matthiesen, Matz, Matzke, Mau, Mauch, Maucher, Mauer, Maul, Maurer, Maus, May, Mayer, Mayerhofer, Mayr, Meder, Mehl, Mehler, Mehlhorn, Mehner, Mehnert, Meier, Meindl, Meinecke, Meinel, Meiners, Meinert, Meinhardt, Meinke, Meise, Meisel, Meiser, Meissner, Meißner, Meister, Meixner, Melcher, Melchior, Melzer, Mende, Menge, Mengel, Menges, Menke, Menne, Menz, Menzel, Merk, Merkel, Merker, Merkl, Merkle, Merten, Mertens, Mertes, Merz, Messer, Messerschmidt, Messner, Mester, Metz, Metzger, Metzler, Metzner, Meurer, Meusel, Meuser, Mewes, Mey, Meyer, Mezger, Michael, Michaelis, Michalski, Michel, Michels, Michl, Michler, Middendorf, Mielke, Mies, Milde, Mildner, Miller, Milz, Mischke, Mitschke, Mittag, Mittelstädt, Mittermeier, Mittmann, Möbius, Möbus, Mock, Möckel, Möhle, Mohr, Möhring, Moldenhauer, Molitor, Moll, Möller, Möllers, Möllmann, Mönch, Montag, Moog, Moor, Moos, Moosmann, Morgenroth, Morgenstern, Moritz, Mosch, Moser, Möser, Motz, Mucha, Mück, Mücke, Mueller, Mühl, Mühlbauer, Mühlberger, Mühle, Müller, Münch, Mund, Mundt, Münster, Munz, Münz, Muth, Mutschler, Nachtigall, Nadler, Nagel, Nägele, Nagler, Nagy, Naß, Nau, Naujoks, Naumann, Nebel, Neef, Neff, Neher, Nehls, Nehring, Neitzel, Nelles, Nestler, Neu, Neubauer, Neuber, Neuberger, Neubert, Neufeld, Neugebauer, Neuhaus, Neumaier, Neumann, Neumeier, Neumeister, Neumüller, Neuner, Ney, Nickel, Nickl, Nicolai, Niebuhr, Niedermeier, Niehaus, Niehoff, Niehues, Nielsen, Niemann, Niemeier, Niemeyer, Nienhaus, Niermann, Nies, Nießen, Niggemann, Niklas, Nikolaus, Nissen, Nitsch, Nitsche, Nitschke, Nitz, Nitzsche, Nix, Noack, Noe, Nolden, Noll, Nolte, Nolting, Nordmann, Novak, Nowack, Nowak, Nürnberger, Nußbaum, Ober, Oberländer, Oberle, Obermaier, Obermeier, Obst, Ochs, Oehler, Oehme, Oertel, Oestreich, Offermann, Ohl, Ohm, Olbrich, Oldenburg, Olschewski, Oltmanns, Opitz, Oppermann, Orlowski, Orth, Ortmann, Ortner, Oßwald, Ostendorf, Oster, Osterloh, Ostermann, Ostermeier, Ostertag, Oswald, Ott, Otte, Otten, Otto, Özdemir, Öztürk, Pabst, Pagel, Pahl, Pahlke, Palm, Panzer, Pape, Papke, Paschke, Patzelt, Patzer, Pätzold, Paul, Pauli, Pauls, Paulsen, Paulus, Pauly, Pausch, Pawlik, Pawlowski, Pech, Pecher, Peetz, Peitz, Pelz, Pelzer, Penner, Pesch, Peschel, Peschke, Peter, Petermann, Peters, Petersen, Petri, Petry, Petzold, Peukert, Pfaff, Pfau, Pfeffer, Pfeifer, Pfeiffer, Pfeil, Pfennig, Pfeuffer, Pfister, Pfisterer, Pfitzner, Pflaum, Pflug, Pflüger, Philipp, Philippi, Philipps, Pichler, Pick, Pickel, Piel, Pieper, Pietsch, Pietschmann, Pietzsch, Piller, Pilz, Pingel, Piontek, Piotrowski, Pitz, Plank, Plate, Plath, Platz, Plöger, Plötz, Plum, Pohl, Pohle, Pohlmann, Pöhlmann, Pollak, Pollmann, Polster, Polzin, Pongratz, Popp, Poppe, Pöschl, Poser, Posselt, Post, Poth, Pott, Potthoff, Pötzsch, Prager, Prange, Prause, Preis, Preiß, Prell, Preuss, Preuß, Priebe, Pries, Prill, Prinz, Probst, Prüfer, Puls, Pusch, Püschel, Puschmann, Putz, Pütz, Quade, Quandt, Quast, Raab, Raabe, Raasch, Rabe, Raddatz, Rademacher, Radermacher, Radke, Radloff, Radtke, Rahm, Rahn, Raith, Ramm, Ranft, Rank, Rapp, Rasch, Rasche, Raschke, Rath, Rathmann, Rau, Rauch, Rauer, Rauh, Raupach, Rausch, Rauscher, Rautenberg, Reber, Rebmann, Rech, Reck, Recktenwald, Reder, Redlich, Reese, Reetz, Reger, Reh, Rehbein, Rehberg, Rehm, Reich, Reichardt, Reichart, Reiche, Reichel, Reichelt, Reichenbach, Reichert, Reichl, Reichle, Reichmann, Reif, Reiff, Reil, Reim, Reimann, Reimer, Reimers, Rein, Reinartz, Reindl, Reinecke, Reineke, Reiner, Reiners, Reinert, Reinhard, Reinhardt, Reinhart, Reinhold, Reinicke, Reinke, Reinsch, Reis, Reisch, Reischl, Reiser, Reisinger, Reiss, Reiß, Reiter, Reith, Reitz, Rempel, Renken, Renner, Rentsch, Renz, Repp, Resch, Reschke, Rettig, Retzlaff, Reusch, Reuß, Reuter, Reuther, Reutter, Rhein, Richert, Richter, Rick, Rickert, Ridder, Rieck, Ried, Riedel, Rieder, Riedl, Riegel, Rieger, Riehl, Rieke, Riemann, Riemer, Ries, Riese, Rieß, Ring, Ringel, Rink, Rinke, Risch, Risse, Rist, Ritschel, Ritter, Ritz, Roch, Rode, Rödel, Roder, Röder, Rödiger, Roeder, Rogge, Rohde, Rohe, Röhl, Rohleder, Rohloff, Röhm, Rohmann, Rohr, Röhr, Rohrbach, Rohrer, Röhrig, Röhrs, Rolf, Roll, Röll, Rolle, Roller, Roloff, Rombach, Römer, Rommel, Roos, Rösch, Roscher, Rose, Rosemann, Rosenbaum, Rosenberg, Rosenberger, Rosendahl, Rosenkranz, Rosenthal, Röser, Rosin, Rösler, Rosner, Rösner, Ross, Roß, Roßbach, Rössler, Rößler, Roßmann, Rößner, Rost, Roth, Rothe, Rother, Rott, Rotter, Röttger, Rottmann, Ruck, Rücker, Rückert, Rüdiger, Rudloff, Rudolf, Rudolph, Ruf, Ruff, Ruge, Rüger, Ruhl, Rühl, Ruhland, Rühle, Rummel, Rump, Rumpf, Runge, Runkel, Ruoff, Rupp, Ruppel, Ruppert, Rupprecht, Rusch, Russ, Ruß, Rust, Rüter, Ruth, Rüther, Rütten, Rutz, Saathoff, Sacher, Sachs, Sachse, Sack, Sadowski, Sager, Sahin, Sahm, Sailer, Salewski, Saller, Salomon, Salzmann, Sand, Sander, Sanders, Sandmann, Sandner, Sänger, Saß, Sasse, Sattler, Sauer, Sauermann, Saur, Sauter, Sautter, Schaaf, Schaal, Schaar, Schaarschmidt, Schacht, Schad, Schade, Schädlich, Schaefer, Schäfer, Schäfers, Schaffer, Schäffer, Schäffler, Schaffner, Schaffrath, Schaible, Schalk, Schall, Schaller, Schanz, Schaper, Schardt, Scharf, Schatz, Schätzle, Schaub, Schauer, Scheck, Scheel, Scheele, Scheer, Scheerer, Scheffel, Scheffer, Scheffler, Scheibe, Scheibel, Scheid, Scheidt, Scheler, Schell, Schellenberg, Scheller, Schenk, Schenke, Schenkel, Schepers, Scherer, Scherf, Scheu, Scheuer, Scheuermann, Scheurer, Schewe, Schick, Schiebel, Schiefer, Schiele, Schiemann, Schier, Schießl, Schiffer, Schiffmann, Schild, Schill, Schiller, Schilling, Schillinger, Schimanski, Schimmel, Schimmelpfennig, Schimpf, Schindler, Schink, Schipper, Schirmer, Schlag, Schlecht, Schlegel, Schleich, Schleicher, Schlemmer, Schlenker, Schlesinger, Schley, Schlicht, Schlichting, Schlick, Schlömer, Schlosser, Schlösser, Schlüter, Schmalz, Schmelz, Schmelzer, Schmid, Schmidbauer, Schmidl, Schmidt, Schmidtke, Schmied, Schmiedel, Schmieder, Schmitt, Schmitz, Schmoll, Schmuck, Schnabel, Schneck, Schneider, Schneiders, Schnell, Schnelle, Schneller, Schnieders, Schnitzer, Schnitzler, Schnoor, Schnur, Schnurr, Schöbel, Schober, Schoch, Schock, Schöler, Scholl, Schöll, Scholten, Scholz, Scholze, Schön, Schönberg, Schönberger, Schönborn, Schöne, Schönemann, Schöner, Schönfeld, Schönfelder, Schönherr, Schöning, Schopf, Schöpf, Schorn, Schorr, Schott, Schöttler, Schötz, Schrade, Schrader, Schrage, Schramm, Schreck, Schreiber, Schreier, Schreiner, Schreiter, Schreyer, Schröder, Schroeder, Schroer, Schröer, Schroll, Schröter, Schroth, Schubert, Schuch, Schuchardt, Schuck, Schug, Schuh, Schuhmacher, Schuhmann, Schuldt, Schüle, Schuler, Schüler, Schülke, Schuller, Schüller, Schult, Schulte, Schulten, Schultes, Schultheis, Schultheiß, Schultz, Schultze, Schulz, Schulze, Schumacher, Schumann, Schümann, Schünemann, Schunk, Schupp, Schürer, Schurig, Schürmann, Schurr, Schüssler, Schüßler, Schuster, Schütt, Schütte, Schüttler, Schütz, Schütze, Schwab, Schwabe, Schwager, Schwaiger, Schwalbe, Schwalm, Schwan, Schwandt, Schwanke, Schwartz, Schwarz, Schwarze, Schwarzer, Schwarzkopf, Schweiger, Schweigert, Schweikert, Schweitzer, Schweizer, Schwenk, Schwenke, Schwerdtfeger, Schwind, Schwinn, Sebastian, Sedlmeier, Seeger, Seel, Seelig, Seeliger, Seemann, Seewald, Seger, Seibel, Seibert, Seibold, Seibt, Seidel, Seidl, Seidler, Seifert, Seiffert, Seifried, Seiler, Seitz, Seliger, Sell, Selle, Selzer, Semmler, Senf, Senft, Senger, Seubert, Seufert, Severin, Seyfarth, Sieben, Sieber, Siebert, Siefert, Sieg, Siegel, Sieger, Siegert, Siegl, Siegmund, Siekmann, Siemens, Siemer, Siemers, Siepmann, Sievers, Sievert, Siewert, Sigl, Sikora, Simon, Simons, Singer, Sinn, Sippel, Smith, Sobotta, Sohn, Söllner, Sommer, Sommerfeld, Sondermann, Sonnenberg, Sonntag, Sorg, Sorge, Sowa, Spahn, Spangenberg, Späth, Specht, Speck, Speer, Speicher, Speidel, Spengler, Sperber, Sperl, Sperlich, Sperling, Spiegel, Spieker, Spiekermann, Spielmann, Spies, Spieß, Spiller, Spindler, Spitz, Spitzer, Spörl, Sprenger, Springer, Staab, Stach, Stadler, Stahl, Staiger, Stamm, Stang, Stange, Stangl, Stapf, Stark, Starke, Staub, Stauch, Staudinger, Staudt, Stecher, Steck, Stefan, Steffan, Steffen, Steffens, Stegemann, Steger, Stegmaier, Stegmann, Stehle, Stehr, Steidle, Steiger, Steigerwald, Stein, Steinbach, Steinberg, Steinberger, Steinborn, Steinbrecher, Steiner, Steinert, Steinhauer, Steinhauser, Steinhoff, Steininger, Steinkamp, Steinke, Steinle, Steinmann, Steinmetz, Steinmüller, Stellmacher, Stelter, Stelzer, Stemmer, Stemmler, Stender, Stengel, Stenger, Stenzel, Stephan, Stern, Sternberg, Steuer, Stevens, Stich, Stickel, Stief, Stiefel, Stiegler, Stier, Stiller, Stingl, Stobbe, Stöber, Stock, Stöckel, Stocker, Stöcker, Stöckl, Stockmann, Stoffel, Stöhr, Stoiber, Stoll, Stolle, Stolte, Stolz, Stolze, Storch, Storck, Stork, Storm, Störmer, Storz, Stotz, Stöver, Strack, Stracke, Strasser, Straßer, Stratmann, Straub, Straube, Strauch, Strauss, Strauß, Strecker, Strehl, Streich, Streicher, Streit, Stricker, Strobel, Strobl, Stroh, Strohmeier, Strube, Struck, Strunk, Strunz, Stuber, Stüber, Stumm, Stumpe, Stumpf, Sturm, Stürmer, Stutz, Suhr, Süß, Sutter, Swoboda, Sydow, Szymanski, Tacke, Tamm, Tappe, Taube, Tauber, Taubert, Tausch, Teichert, Teichmann, Temme, Tempel, Tesch, Teschner, Teske, Tetzlaff, Teuber, Teubner, Teufel, Tewes, Tews, Thaler, Thamm, Theil, Theis, Theisen, Theiß, Thelen, Theobald, Thiede, Thiel, Thiele, Thielemann, Thielen, Thielmann, Thiem, Thiemann, Thieme, Thies, Thimm, Thom, Thoma, Thomann, Thomas, Thome, Thoms, Thomsen, Thon, Thöne, Thormann, Thum, Tiede, Tiedemann, Tiemann, Tietjen, Tietz, Tietze, Till, Tillmann, Timm, Timmermann, Tischer, Tischler, Tittel, Titze, Tolksdorf, Tölle, Tonn, Töpfer, Topp, Toth, Träger, Trapp, Traub, Traut, Trautmann, Trautwein, Treiber, Tremmel, Triebel, Tröger, Trommer, Trost, Tröster, Türk, Uhl, Uhlemann, Uhlig, Uhlmann, Uhrig, Ulbrich, Ulbricht, Ullmann, Ullrich, Ulmer, Ulrich, Umbach, Unger, Unruh, Urban, Utz, Valentin, Vater, Vaupel, Veit, Veith, Velten, Vetter, Vieth, Vogel, Vögele, Vogelsang, Voges, Vogl, Vogler, Vogt, Voigt, Voigtländer, Voit, Volk, Völkel, Völker, Volkert, Völkl, Volkmann, Volkmer, Voll, Vollmer, Vollrath, Volz, Vorwerk, Voss, Voß, Wachsmuth, Wachter, Wächter, Wacker, Wagener, Wagenknecht, Wagner, Wahl, Waibel, Walch, Wald, Waldmann, Walker, Wall, Wallner, Walter, Walther, Walz, Wanke, Wanner, Warnecke, Warnke, Wassermann, Weber, Weck, Wecker, Wedekind, Wedel, Wege, Wegener, Wegmann, Wegner, Wehner, Wehr, Wehrle, Wehrmann, Weichert, Weide, Weidemann, Weidinger, Weidlich, Weidmann, Weidner, Weigand, Weigel, Weigelt, Weigert, Weigl, Weihrauch, Weil, Weiland, Weiler, Weimann, Weimer, Wein, Weinberg, Weinberger, Weiner, Weinert, Weingärtner, Weinhold, Weinmann, Weinreich, Weinrich, Weinzierl, Weirich, Weis, Weise, Weiser, Weishaupt, Weiss, Weiß, Weißbach, Weiße, Weißenborn, Weisser, Weißer, Weißmann, Weitz, Weitzel, Welker, Weller, Wellmann, Welsch, Welte, Welter, Welz, Welzel, Wende, Wendel, Wendland, Wendler, Wendt, Wenger, Wenig, Weniger, Wenk, Wenz, Wenzel, Wenzl, Werle, Werner, Wernicke, Werth, Wesemann, Wessel, Wessels, Westermann, Westhoff, Westphal, Wetzel, Weyand, Weyer, Weyers, Wichert, Wichmann, Wick, Wicke, Widmann, Wiebe, Wiechert, Wiechmann, Wieczorek, Wiedemann, Wiedenmann, Wiedmann, Wiegand, Wiegel, Wiegmann, Wieland, Wiemann, Wiemer, Wiener, Wiens, Wiese, Wieser, Wiesmann, Wiesner, Wiest, Wilczek, Wild, Wilde, Wildner, Wilhelm, Wilhelmi, Wilk, Wilke, Wilken, Wilkens, Will, Wille, Willems, Willer, Willmann, Willms, Wilms, Wimmer, Windisch, Winkel, Winkelmann, Winkler, Winter, Winzer, Wirth, Wirtz, Wischnewski, Wisniewski, Witt, Witte, Wittek, Wittenberg, Wittich, Wittig, Wittke, Wittmann, Wittwer, Witzel, Witzke, Wohlfahrt, Wohlfarth, Wohlgemuth, Wöhrle, Wolf, Wölfel, Wolff, Wölfle, Wolfram, Wolfrum, Wölk, Woll, Wollmann, Wollny, Wollschläger, Wolter, Wolters, Wörle, Worm, Wörner, Wortmann, Wrede, Wrobel, Wulf, Wulff, Wunder, Wunderlich, Wunsch, Wünsch, Wünsche, Würfel, Wurm, Wurst, Wurster, Wüst, Wuttke, Yildirim, Yildiz, Yilmaz, Zabel, Zach, Zacharias, Zacher, Zahn, Zander, Zapf, Zauner, Zech, Zeh, Zeidler, Zeiler, Zeitler, Zell, Zeller, Zellner, Zenker, Zettl, Zieger, Ziegler, Zielinski, Zielke, Ziemann, Ziemer, Zimmer, Zimmerer, Zimmermann, Zink, Zinke, Zinn, Zipfel, Zitzmann, Zobel, Zoller, Zöller, Zöllner, Zorn, Zuber, Zühlke, Zwick]
female: [Abel, Abele, Abels, Abraham, Abt, Achatz, Achenbach, Acker, Ackermann, Adam, Adams, Adler, Adolf, Adolph, Adrian, Ahlers, Ahrens, Aigner, Alber, Albers, Albert, Albrecht, Alex, Alexander, Alles, Alt, Althaus, Althoff, Altmann, Altmeyer, Amann, Amend, Ammann, Ammon, Anders, Andersen, Andreas, Andres, Andresen, Anger, Angerer, Angermann, Anton, Apel, Appel, Appelt, Arend, Arendt, Arens, Arlt, Armbruster, Arndt, Arnold, Arslan, Artmann, Aschenbrenner, Asmus, Assmann, Aßmann, Auer, Augustin, Aust, Aydin, Bach, Bacher, Bächle, Bachmann, Bachmeier, Back, Bäcker, Backes, Backhaus, Bade, Bader, Baer, Bahr, Bähr, Baier, Baldauf, Balke, Baltes, Balzer, Bamberger, Bangert, Bär, Baron, Bartel, Bartels, Bartelt, Barth, Barthel, Bartl, Bartmann, Bartsch, Bartz, Barz, Basler, Bast, Bastian, Bätz, Bauch, Bauer, Bäuerle, Baum, Baumann, Baumbach, Baumeister, Baumer, Bäumer, Baumert, Baumgart, Baumgärtel, Baumgarten, Baumgartner, Baumgärtner, Bäumler, Baur, Bausch, Bayer, Becher, Becht, Bechtel, Bechtold, Beck, Becker, Beckers, Beckert, Beckmann, Beer, Beermann, Beetz, Behling, Behm, Behn, Behnke, Behr, Behrend, Behrends, Behrendt, Behrens, Behringer, Behrmann, Beier, Beil, Bell, Beller, Bellmann, Belz, Bendel, Bender, Bendig, Benecke, Benner, Benning, Bensch, Benz, Berberich, Berens, Berg, Bergemann, Bergen, Berger, Bergmann, Bergner, Berlin, Bernard, Berndt, Berner, Bernhard, Bernhardt, Berthold, Bertram, Bertsch, Best, Bethge, Bethke, Betz, Beutel, Beutler, Beyer, Bichler, Bickel, Bieber, Biedermann, Biehl, Bielefeld, Bienert, Bier, Biermann, Biller, Binder, Birk, Birke, Birkholz, Birkner, Birner, Bischof, Bischoff, Bitter, Bittner, Bitzer, Blank, Blanke, Blankenburg, Blaschke, Blau, Blechschmidt, Blessing, Bley, Bloch, Block, Blohm, Blome, Bluhm, Blum, Blume, Blümel, Blumenthal, Bochmann, Bock, Böck, Böcker, Böckmann, Bode, Boden, Bogner, Bohl, Bohlen, Böhler, Bohlmann, Bohm, Böhm, Böhme, Böhmer, Bohn, Bohne, Böhner, Bohnert, Böhnke, Bohr, Böhringer, Böker, Boldt, Boll, Boller, Bollmann, Bolte, Bolz, Bongartz, Böning, Bönisch, Bonk, Bonn, Boos, Bopp, Borchardt, Borchers, Borchert, Börger, Borgmann, Bork, Bormann, Born, Bornemann, Börner, Borowski, Borrmann, Bosch, Bösch, Böse, Bosse, Both, Bothe, Bott, Böttcher, Böttger, Böttner, Boy, Bracht, Brack, Brand, Brandenburg, Brandes, Brandl, Brandner, Brandstetter, Brandt, Brauer, Bräuer, Braun, Braune, Brauner, Bräutigam, Brecht, Brede, Brehm, Brehmer, Breidenbach, Breier, Breit, Breitenbach, Bremer, Brendel, Brennecke, Brenner, Bretschneider, Brettschneider, Breu, Breuer, Breunig, Breyer, Brill, Brink, Brinker, Brinkmann, Brix, Brock, Bröcker, Brockmann, Bröker, Brosch, Brose, Bruch, Brück, Brucker, Brückmann, Bruckner, Brückner, Bruder, Brüggemann, Brugger, Brühl, Bruhn, Brummer, Brümmer, Brune, Brüning, Brunke, Brunner, Bruns, Brust, Buch, Büchel, Bucher, Buchholz, Büchler, Buchmann, Buchner, Büchner, Buchwald, Buck, Bücker, Budde, Buhl, Bühler, Bühner, Buhr, Bülow, Bunge, Bünger, Bunk, Burg, Burger, Bürger, Burghardt, Burk, Burkard, Burkart, Burkert, Burkhard, Burkhardt, Burkhart, Bürkle, Burmeister, Burmester, Busch, Busche, Büscher, Buschmann, Buse, Büsing, Buss, Buß, Busse, Bußmann, Büttner, Butz, Carl, Carstens, Carstensen, Caspari, Casper, Celik, Christ, Christian, Christiansen, Christmann, Christoph, Clasen, Claßen, Claus, Clausen, Clauß, Claußen, Clemens, Coenen, Cohrs, Conrad, Conradi, Cordes, Cornelius, Cramer, Cremer, Czech, Dahl, Dahlke, Dahlmann, Dahm, Dahmen, Dahms, Dallmann, Damm, Dammann, Daniel, Daniels, Dannenberg, Danner, Daub, Daum, David, de, Debus, Decker, Deckert, Degen, Degenhardt, Degner, Dehn, Deininger, Demir, Demmer, Demuth, Denecke, Dengler, Denk, Denker, Deppe, Derksen, Dettmann, Dettmer, Deutsch, Deutschmann, Dewald, Dick, Dickmann, Dieckmann, Diederich, Diederichs, Diedrich, Diefenbach, Diehl, Diekmann, Diel, Diemer, Diener, Dierkes, Dierks, Dietel, Dieterich, Dieterle, Dietl, Dietrich, Dietz, Dietze, Dietzel, Dill, Dillmann, Dinkel, Dinter, Dippel, Dirks, Distler, Dittmann, Dittmar, Dittmer, Dittrich, Dobler, Dogan, Döhler, Dohmen, Döhring, Dohrmann, Dold, Doll, Döll, Dombrowski, Domke, Donath, Donner, Dörfler, Döring, Dorn, Dorner, Dörner, Dörr, Dorsch, Dose, Dost, Dräger, Drechsel, Drechsler, Drees, Dreher, Dreier, Drescher, Dressel, Dressler, Dreßler, Drewes, Drews, Drexler, Dreyer, Dröge, Droste, Dück, Duda, Dudek, Dunkel, Dunker, Düring, Dürr, Duwe, Dyck, Ebel, Ebeling, Eberhard, Eberhardt, Eberl, Eberle, Eberlein, Ebert, Ebner, Eck, Eckardt, Eckart, Eckel, Ecker, Eckert, Eckhardt, Eckhoff, Eckl, Eckstein, Edel, Edelmann, Eder, Edler, Effenberger, Eger, Egger, Eggers, Eggert, Egner, Ehlers, Ehlert, Ehmann, Ehrenberg, Ehret, Ehrhardt, Ehrich, Ehrlich, Ehrmann, Eibl, Eich, Eichholz, Eichhorn, Eichinger, Eichler, Eichmann, Eichner, Eickhoff, Eifler, Eilers, Eisele, Eisenmann, Eismann, Eisner, Eitel, Eller, Elsner, Emde, Emmerich, Emmert, Emrich, Ender, Enderle, Enders, Endres, Engel, Engelbrecht, Engelhard, Engelhardt, Engelke, Engelmann, Engels, Engert, Engl, Engler, Englert, Enke, Epp, Epple, Eppler, Erb, Erbe, Erben, Erdmann, Erhard, Erhardt, Erler, Ernst, Ertel, Ertl, Esch, Escher, Esser, Eßer, Essig, Euler, Evers, Ewald, Ewers, Ewert, Exner, Faber, Fabian, Falk, Falke, Falkenberg, Faller, Färber, Faßbender, Fast, Fath, Faulhaber, Faust, Fechner, Fehr, Fehrenbach, Feige, Feil, Feiler, Feist, Felber, Feld, Feldhaus, Feldmann, Feldmeier, Feller, Fellner, Fels, Fendt, Fengler, Fenske, Fenzl, Ferber, Ferstl, Fett, Fetzer, Fey, Fichtner, Fick, Fiebig, Fiedler, Figge, Findeisen, Finger, Fink, Finkbeiner, Finke, Fisch, Fischbach, Fischer, Fitz, Fix, Flach, Flaig, Fleck, Fleckenstein, Fleischer, Fleischhauer, Fleischmann, Flemming, Flick, Flohr, Flügel, Flügge, Focke, Forster, Förster, Forstner, Förtsch, Fox, Frahm, Franck, Frank, Franke, Franken, Franz, Franzen, Franzke, Frech, Freese, Frei, Freiberg, Freier, Freitag, Frenz, Frenzel, Frerichs, Frese, Freudenberg, Freund, Frey, Freyer, Freytag, Frick, Fricke, Friebe, Friedel, Friedemann, Friedl, Friedmann, Friedrich, Friedrichs, Fries, Friese, Friesen, Frieß, Frings, Frisch, Fritsch, Fritsche, Fritz, Fritze, Fritzsch, Fritzsche, Fröhlich, Fromm, Fromme, Frost, Früh, Frühauf, Fuchs, Fuhr, Führer, Fuhrmann, Funk, Funke, Fürst, Fuß, Fütterer, Gabel, Gabler, Gäbler, Gabriel, Gaida, Gaiser, Gall, Galle, Ganser, Ganter, Ganz, Garbe, Gärtner, Gassner, Gaßner, Gast, Gaul, Gaus, Gebauer, Gebel, Gebert, Gebhard, Gebhardt, Gehlen, Gehrig, Gehring, Gehrke, Gehrmann, Geib, Geier, Geiger, Geis, Geisler, Geiß, Geissler, Geißler, Geist, Gellert, Gentner, Genz, Georg, George, Georgi, Geppert, Gerber, Gerdes, Gerhard, Gerhards, Gerhardt, Gericke, Gerke, Gerken, Gerlach, Gerling, Germann, Gerner, Gerstner, Gerth, Gessner, Geßner, Geyer, Giebel, Gies, Giese, Giesecke, Giesen, Gilbert, Gille, Gilles, Glas, Glaser, Gläser, Glaß, Glatz, Gleich, Gleißner, Glock, Glöckner, Glück, Göbel, Gödde, Gödecke, Goebel, Goerke, Goertz, Göhler, Gohlke, Göhring, Gold, Goldbach, Goldberg, Goldmann, Goldschmidt, Goll, Goller, Göller, Göllner, Golz, Gölz, Göpfert, Görg, Görgen, Göring, Görlich, Görner, Görtz, Götte, Gottfried, Gotthardt, Gottschalk, Gottschlich, Gottschling, Gottwald, Götz, Götze, Gräber, Grabow, Grabowski, Gradl, Graf, Gräf, Grafe, Gräfe, Grahl, Gramlich, Grams, Graß, Graßl, Grätz, Grau, Graupner, Greb, Grebe, Greger, Gregor, Greif, Greiner, Grell, Grenz, Greulich, Greve, Grewe, Griebel, Grieger, Gries, Griese, Grill, Grimm, Grimmer, Grobe, Gröger, Groh, Grohmann, Groll, Gronau, Gröne, Grosch, Gross, Groß, Grosse, Große, Grosser, Großer, Großkopf, Grossmann, Großmann, Grote, Groth, Grothe, Grube, Gruber, Gruhn, Grün, Grünberg, Grund, Grundmann, Gruner, Grüner, Grunert, Grunewald, Grünewald, Grunwald, Grünwald, Grützner, Guhl, Gundlach, Gunkel, Günter, Günther, Günzel, Gürtler, Guse, Guth, Gutjahr, Gutmann, Gutsche, Güttler, Gutzeit, Haack, Haag, Haak, Haake, Haarmann, Haas, Haase, Habel, Haberkorn, Haberl, Haberland, Häberle, Habermann, Hack, Hackbarth, Hackenberg, Hacker, Häcker, Hackl, Hackmann, Häfele, Hafner, Häfner, Hagedorn, Hagel, Hägele, Hagemann, Hagen, Hager, Hahn, Hahne, Hähnel, Haider, Haimerl, Hain, Hake, Haller, Hallmann, Hamacher, Hamann, Hamm, Hammann, Hammel, Hammer, Hammerschmidt, Hammes, Hampe, Hampel, Handke, Hänel, Hanf, Hanisch, Hanke, Hannemann, Hannig, Hans, Hänsch, Hansel, Hänsel, Hansen, Hansmann, Hantke, Happel, Harder, Hardt, Häring, Harms, Harnisch, Harrer, Härtel, Harter, Harth, Hartig, Hartl, Härtl, Hartmann, Hartung, Hartwich, Hartwig, Hase, Hass, Haß, Hasse, Hassel, Hau, Hauber, Haubold, Hauck, Hauer, Haufe, Haug, Hauk, Hauke, Haupt, Hauptmann, Haus, Hauschild, Hauser, Häuser, Häusler, Hausmann, Hausner, Häußler, Haußmann, Haustein, Heber, Hecht, Heck, Heckel, Hecker, Heckmann, Hedrich, Heer, Heese, Hegemann, Heger, Heid, Heide, Heidemann, Heiden, Heidenreich, Heider, Heidrich, Heidt, Heigl, Heil, Heiland, Heilig, Heilmann, Heim, Heimann, Hein, Heindl, Heine, Heinecke, Heinemann, Heinen, Heinicke, Heinig, Heinisch, Heinke, Heinlein, Heinrich, Heinrichs, Heins, Heintz, Heinz, Heinze, Heinzel, Heinzelmann, Heinzmann, Heise, Heiser, Heisig, Heiß, Heitmann, Heitz, Heizmann, Helbig, Helbing, Held, Heldt, Helfrich, Hell, Heller, Hellmann, Hellmich, Hellmuth, Hellwig, Helm, Helmer, Helmke, Helms, Hemmer, Hempel, Hendricks, Hengst, Henke, Henkel, Henn, Henne, Hennecke, Hennemann, Hennig, Henning, Henninger, Hennings, Henrich, Henrichs, Henschel, Hense, Hensel, Henseler, Hentschel, Henze, Hepp, Heppner, Herb, Herber, Herbert, Herbst, Herdt, Herget, Hering, Hermann, Hermanns, Hermes, Herold, Herr, Herrmann, Hertel, Herter, Hertlein, Hertwig, Herwig, Herz, Herzberg, Herzig, Herzog, Hess, Heß, Hesse, Hessel, Heßler, Hettich, Hetzel, Heuer, Heumann, Heuser, Hey, Heyer, Heymann, Heyn, Heyne, Hieber, Hielscher, Hierl, Hilbert, Hilbig, Hild, Hildebrand, Hildebrandt, Hildenbrand, Hilger, Hilgers, Hill, Hille, Hillebrand, Hillenbrand, Hiller, Hillmann, Hilmer, Hilpert, Himmel, Hinkel, Hinrichs, Hinrichsen, Hintz, Hintze, Hinz, Hinze, Hinzmann, Hipp, Hirsch, Hirschfeld, Hirschmann, Hirt, Hirth, Hoch, Hochmuth, Hock, Hof, Hofbauer, Hofer, Höfer, Hoff, Hoffmann, Hoffmeister, Höfler, Höfling, Hofmann, Hofmeister, Hofstetter, Höft, Höger, Hohl, Hohmann, Hohn, Höhn, Höhne, Holl, Höll, Holland, Holler, Höller, Hollmann, Hollstein, Holm, Hölscher, Holst, Holstein, Holtkamp, Holtmann, Holtz, Holz, Holzapfel, Hölzel, Holzer, Hölzer, Holzinger, Hölzl, Holzmann, Holzner, Holzwarth, Homann, Hommel, Hönig, Hopf, Höpfner, Hopp, Hoppe, Höppner, Hörl, Hörmann, Horn, Hörner, Hornig, Hornung, Horst, Horstmann, Horvath, Hotz, Hoyer, Huber, Hubert, Hübner, Hübsch, Huck, Hufnagel, Hug, Hügel, Huhn, Hüls, Hülsmann, Hummel, Hümmer, Hund, Hundertmark, Hundt, Hunger, Huppertz, Husemann, Husmann, Huth, Hüther, Hutter, Hütter, Hüttner, Ihle, Ilg, Imhof, Irmer, Irrgang, Israel, Jablonski, Jäckel, Jacob, Jacobi, Jacobs, Jacobsen, Jaeger, Jäger, Jahn, Jahnke, Jahns, Jäkel, Jakob, Jakobi, Jakobs, Jänicke, Janik, Janke, Jankowski, Jansen, Janson, Janssen, Janßen, Janz, Janzen, Jäschke, Jasper, Jauch, Jehle, Jensen, Jentsch, Jentzsch, Jeschke, Jeske, Jesse, Jessen, Joachim, Jobst, Jochum, Johann, Johannes, Johannsen, John, Jonas, Joos, Jordan, Jörg, Joseph, Jost, Jünemann, Jung, Jungbluth, Junge, Jünger, Junghans, Jüngling, Jungmann, Junk, Junker, Jürgens, Jürgensen, Just, Jüttner, Kaczmarek, Kaden, Käfer, Kahl, Kahle, Kähler, Kahlert, Kaiser, Kalb, Kalinowski, Kalisch, Kallenbach, Kaltenbach, Kaluza, Kaminski, Kamm, Kammer, Kammerer, Kämmerer, Kamp, Kampe, Kämpf, Kampmann, Kamps, Kania, Kanzler, Kapp, Kappel, Kappes, Kappler, Kaps, Karcher, Karg, Karger, Karl, Karle, Karsten, Käser, Kaspar, Kasper, Kast, Kasten, Kastl, Kastner, Kästner, Katz, Katzer, Kauer, Kaufhold, Kaufmann, Kaul, Kautz, Kaya, Kayser, Keck, Kegel, Kehl, Kehr, Kehrer, Keil, Keim, Keitel, Keller, Kellermann, Kellner, Kelm, Kemmer, Kempe, Kemper, Kempf, Keppler, Kerber, Kerkhoff, Kern, Kerner, Kerscher, Kersten, Kersting, Kessel, Kessler, Keßler, Ketterer, Kettler, Kettner, Kick, Kiefer, Kiel, Kienle, Kienzle, Kiesel, Kiesewetter, Kießling, Kilian, Kilic, Kimmel, Kind, Kinder, Kindermann, Kindler, Kinzel, Kipp, Kirch, Kircher, Kirchhof, Kirchhoff, Kirchner, Kirsch, Kirschbaum, Kirschner, Kirst, Kirstein, Kirsten, Kissel, Kistner, Kittel, Klaas, Klages, Klaiber, Klapper, Klar, Klasen, Klassen, Klatt, Klaus, Kleber, Klee, Kleemann, Klein, Kleine, Kleiner, Kleinert, Kleinhans, Kleinschmidt, Klement, Klemm, Klenk, Klett, Kley, Kliem, Klier, Kling, Klingbeil, Klinge, Klingenberg, Klinger, Klingler, Klink, Klinke, Klinkhammer, Klocke, Klöckner, Kloos, Klos, Klose, Kloss, Kloß, Klostermann, Kloth, Klotz, Klug, Kluge, Klumpp, Kluth, Knab, Knabe, Knapp, Knappe, Knauer, Knauf, Knaus, Knebel, Knecht, Knittel, Knoblauch, Knobloch, Knoch, Knoche, Knödler, Knoll, Knoop, Knop, Knopf, Knopp, Knorr, Knoth, Knott, Knüppel, Knuth, Kober, Koch, Köcher, Kock, Koenen, Kögel, Kögler, Kohl, Köhl, Kohler, Köhler, Kohlmann, Kohn, Köhn, Köhne, Kohnen, Kolb, Kolbe, Kolbeck, Kolberg, Kölbl, Koll, Koller, Köller, Kölling, Kollmann, Köllner, Kolodziej, Kölsch, König, Königs, Konrad, Koop, Koopmann, Kopf, Köpke, Kopp, Koppe, Köppe, Köppel, Köppen, Köppl, Korb, Körber, Korn, Körner, Korte, Korth, Kortmann, Koslowski, Kost, Köster, Kösters, Köstler, Kothe, Kötter, Kowalewski, Kowalski, Kracht, Kraemer, Krafft, Kraft, Krah, Krahl, Krahn, Kramer, Krämer, Krammer, Kramp, Krampe, Kranz, Krapf, Krapp, Kratz, Kratzer, Kraus, Krause, Krauss, Krauß, Krauße, Krawczyk, Krebs, Kreft, Kreis, Krell, Kremer, Kremser, Krenz, Kress, Kreß, Kretschmann, Kretschmer, Kretz, Kretzer, Kretzschmar, Kreutz, Kreutzer, Kreuz, Kreuzer, Krey, Krieg, Kriegel, Krieger, Krings, Kröber, Kröger, Krohn, Kroll, Kröll, Kromer, Krone, Kröner, Kropf, Kropp, Krug, Krüger, Krull, Krumm, Krupp, Kruppa, Kruse, Kube, Kübler, Kuch, Küchler, Kuck, Kück, Kugel, Kugler, Kügler, Kuhl, Kühl, Kuhlmann, Kuhn, Kühn, Kühne, Kühnel, Kühner, Kuhnert, Kühnert, Kühnle, Kuhnt, Kuhr, Kullmann, Kümmel, Kummer, Kunath, Kunde, Kunert, Kunkel, Kunst, Kuntz, Kuntze, Kunz, Kunze, Künzel, Kunzmann, Küper, Kupfer, Kupka, Küpper, Küppers, Kürschner, Kurth, Kurtz, Kurz, Kusch, Kuschel, Küster, Küsters, Kutscher, Kutz, Kutzner, Lachmann, Lackner, Ladwig, Lambert, Lambertz, Lambrecht, Lamm, Lammers, Lampe, Lampert, Lamprecht, Landgraf, Landmann, Landwehr, Lang, Langbein, Lange, Langen, Langenbach, Langer, Langguth, Langhammer, Langhans, Langner, Lanz, Laskowski, Lau, Laub, Laube, Lauber, Laue, Lauer, Laufer, Laumann, Lautenschläger, Lauterbach, Laux, Lay, Leber, Lechner, Leder, Lederer, Lehmann, Lehmkuhl, Lehnen, Lehner, Lehnert, Lehr, Leibold, Leicht, Leinweber, Leipold, Leis, Leistner, Leitner, Lembke, Lemke, Lemm, Lemmer, Lenk, Lennartz, Lentz, Lenz, Lenzen, Leonhard, Leonhardt, Leopold, Lerch, Lesch, Leupold, Leuschner, Lewandowski, Lex, Ley, Licht, Lichtenberg, Lieb, Liebe, Liebert, Liebich, Liebig, Liebl, Liebmann, Liebscher, Lieder, Liedtke, Liese, Lieske, Lietz, Limbach, Limmer, Lind, Linde, Lindemann, Linden, Lindenau, Lindenberg, Linder, Lindner, Link, Linke, Linn, Linnemann, Linz, Lipinski, Lipp, Lippert, Lippmann, Lippold, List, Loch, Locher, Lochner, Löffler, Lohmann, Lohr, Löhr, Lohse, Loibl, Loos, Loose, Lorenz, Lorenzen, Lösch, Löser, Loth, Lotz, Löw, Löwe, Löwen, Lübben, Lübke, Lucas, Lucht, Lück, Lücke, Lüdecke, Lüdemann, Lüders, Ludewig, Lüdtke, Ludwig, Luft, Lühr, Lührs, Lukas, Lüke, Lüth, Luther, Lutter, Lutz, Lux, Maack, Maas, Maaß, Maaßen, Mack, Mader, Mäder, Mager, Mahler, Mahn, Mahnke, Mahr, Mai, Maier, Mainka, Mair, Maisch, Maiwald, Majewski, Mandel, Mang, Mangold, Manke, Mann, Manske, Manthey, Manz, Marek, Mark, Markert, Markgraf, Markmann, Marks, Markus, Marquardt, Marschall, Marschner, Marten, Martens, Martin, Martini, Marx, März, Maschke, Mast, Matern, Matheis, Mathes, Matt, Mattern, Mattes, Matthes, Matthias, Matthies, Matthiesen, Matz, Matzke, Mau, Mauch, Maucher, Mauer, Maul, Maurer, Maus, May, Mayer, Mayerhofer, Mayr, Meder, Mehl, Mehler, Mehlhorn, Mehner, Mehnert, Meier, Meindl, Meinecke, Meinel, Meiners, Meinert, Meinhardt, Meinke, Meise, Meisel, Meiser, Meissner, Meißner, Meister, Meixner, Melcher, Melchior, Melzer, Mende, Menge, Mengel, Menges, Menke, Menne, Menz, Menzel, Merk, Merkel, Merker, Merkl, Merkle, Merten, Mertens, Mertes, Merz, Messer, Messerschmidt, Messner, Mester, Metz, Metzger, Metzler, Metzner, Meurer, Meusel, Meuser, Mewes, Mey, Meyer, Mezger, Michael, Michaelis, Michalski, Michel, Michels, Michl, Michler, Middendorf, Mielke, Mies, Milde, Mildner, Miller, Milz, Mischke, Mitschke, Mittag, Mittelstädt, Mittermeier, Mittmann, Möbius, Möbus, Mock, Möckel, Möhle, Mohr, Möhring, Moldenhauer, Molitor, Moll, Möller, Möllers, Möllmann, Mönch, Montag, Moog, Moor, Moos, Moosmann, Morgenroth, Morgenstern, Moritz, Mosch, Moser, Möser, Motz, Mucha, Mück, Mücke, Mueller, Mühl, Mühlbauer, Mühlberger, Mühle, Müller, Münch, Mund, Mundt, Münster, Munz, Münz, Muth, Mutschler, Nachtigall, Nadler, Nagel, Nägele, Nagler, Nagy, Naß, Nau, Naujoks, Naumann, Nebel, Neef, Neff, Neher, Nehls, Nehring, Neitzel, Nelles, Nestler, Neu, Neubauer, Neuber, Neuberger, Neubert, Neufeld, Neugebauer, Neuhaus, Neumaier, Neumann, Neumeier, Neumeister, Neumüller, Neuner, Ney, Nickel, Nickl, Nicolai, Niebuhr, Niedermeier, Niehaus, Niehoff, Niehues, Nielsen, Niemann, Niemeier, Niemeyer, Nienhaus, Niermann, Nies, Nießen, Niggemann, Niklas, Nikolaus, Nissen, Nitsch, Nitsche, Nitschke, Nitz, Nitzsche, Nix, Noack, Noe, Nolden, Noll, Nolte, Nolting, Nordmann, Novak, Nowack, Nowak, Nürnberger, Nußbaum, Ober, Oberländer, Oberle, Obermaier, Obermeier, Obst, Ochs, Oehler, Oehme, Oertel, Oestreich, Offermann, Ohl, Ohm, Olbrich, Oldenburg, Olschewski, Oltmanns, Opitz, Oppermann, Orlowski, Orth, Ortmann, Ortner, Oßwald, Ostendorf, Oster, Osterloh, Ostermann, Ostermeier, Ostertag, Oswald, Ott, Otte, Otten, Otto, Özdemir, Öztürk, Pabst, Pagel, Pahl, Pahlke, Palm, Panzer, Pape, Papke, Paschke, Patzelt, Patzer, Pätzold, Paul, Pauli, Pauls, Paulsen, Paulus, Pauly, Pausch, Pawlik, Pawlowski, Pech, Pecher, Peetz, Peitz, Pelz, Pelzer, Penner, Pesch, Peschel, Peschke, Peter, Petermann, Peters, Petersen, Petri, Petry, Petzold, Peukert, Pfaff, Pfau, Pfeffer, Pfeifer, Pfeiffer, Pfeil, Pfennig, Pfeuffer, Pfister, Pfisterer, Pfitzner, Pflaum, Pflug, Pflüger, Philipp, Philippi, Philipps, Pichler, Pick, Pickel, Piel, Pieper, Pietsch, Pietschmann, Pietzsch, Piller, Pilz, Pingel, Piontek, Piotrowski, Pitz, Plank, Plate, Plath, Platz, Plöger, Plötz, Plum, Pohl, Pohle, Pohlmann, Pöhlmann, Pollak, Pollmann, Polster, Polzin, Pongratz, Popp, Poppe, Pöschl, Poser, Posselt, Post, Poth, Pott, Potthoff, Pötzsch, Prager, Prange, Prause, Preis, Preiß, Prell, Preuss, Preuß, Priebe, Pries, Prill, Prinz, Probst, Prüfer, Puls, Pusch, Püschel, Puschmann, Putz, Pütz, Quade, Quandt, Quast, Raab, Raabe, Raasch, Rabe, Raddatz, Rademacher, Radermacher, Radke, Radloff, Radtke, Rahm, Rahn, Raith, Ramm, Ranft, Rank, Rapp, Rasch, Rasche, Raschke, Rath, Rathmann, Rau, Rauch, Rauer, Rauh, Raupach, Rausch, Rauscher, Rautenberg, Reber, Rebmann, Rech, Reck, Recktenwald, Reder, Redlich, Reese, Reetz, Reger, Reh, Rehbein, Rehberg, Rehm, Reich, Reichardt, Reichart, Reiche, Reichel, Reichelt, Reichenbach, Reichert, Reichl, Reichle, Reichmann, Reif, Reiff, Reil, Reim, Reimann, Reimer, Reimers, Rein, Reinartz, Reindl, Reinecke, Reineke, Reiner, Reiners, Reinert, Reinhard, Reinhardt, Reinhart, Reinhold, Reinicke, Reinke, Reinsch, Reis, Reisch, Reischl, Reiser, Reisinger, Reiss, Reiß, Reiter, Reith, Reitz, Rempel, Renken, Renner, Rentsch, Renz, Repp, Resch, Reschke, Rettig, Retzlaff, Reusch, Reuß, Reuter, Reuther, Reutter, Rhein, Richert, Richter, Rick, Rickert, Ridder, Rieck, Ried, Riedel, Rieder, Riedl, Riegel, Rieger, Riehl, Rieke, Riemann, Riemer, Ries, Riese, Rieß, Ring, Ringel, Rink, Rinke, Risch, Risse, Rist, Ritschel, Ritter, Ritz, Roch, Rode, Rödel, Roder, Röder, Rödiger, Roeder, Rogge, Rohde, Rohe, Röhl, Rohleder, Rohloff, Röhm, Rohmann, Rohr, Röhr, Rohrbach, Rohrer, Röhrig, Röhrs, Rolf, Roll, Röll, Rolle, Roller, Roloff, Rombach, Römer, Rommel, Roos, Rösch, Roscher, Rose, Rosemann, Rosenbaum, Rosenberg, Rosenberger, Rosendahl, Rosenkranz, Rosenthal, Röser, Rosin, Rösler, Rosner, Rösner, Ross, Roß, Roßbach, Rössler, Rößler, Roßmann, Rößner, Rost, Roth, Rothe, Rother, Rott, Rotter, Röttger, Rottmann, Ruck, Rücker, Rückert, Rüdiger, Rudloff, Rudolf, Rudolph, Ruf, Ruff, Ruge, Rüger, Ruhl, Rühl, Ruhland, Rühle, Rummel, Rump, Rumpf, Runge, Runkel, Ruoff, Rupp, Ruppel, Ruppert, Rupprecht, Rusch, Russ, Ruß, Rust, Rüter, Ruth, Rüther, Rütten, Rutz, Saathoff, Sacher, Sachs, Sachse, Sack, Sadowski, Sager, Sahin, Sahm, Sailer, Salewski, Saller, Salomon, Salzmann, Sand, Sander, Sanders, Sandmann, Sandner, Sänger, Saß, Sasse, Sattler, Sauer, Sauermann, Saur, Sauter, Sautter, Schaaf, Schaal, Schaar, Schaarschmidt, Schacht, Schad, Schade, Schädlich, Schaefer, Schäfer, Schäfers, Schaffer, Schäffer, Schäffler, Schaffner, Schaffrath, Schaible, Schalk, Schall, Schaller, Schanz, Schaper, Schardt, Scharf, Schatz, Schätzle, Schaub, Schauer, Scheck, Scheel, Scheele, Scheer, Scheerer, Scheffel, Scheffer, Scheffler, Scheibe, Scheibel, Scheid, Scheidt, Scheler, Schell, Schellenberg, Scheller, Schenk, Schenke, Schenkel, Schepers, Scherer, Scherf, Scheu, Scheuer, Scheuermann, Scheurer, Schewe, Schick, Schiebel, Schiefer, Schiele, Schiemann, Schier, Schießl, Schiffer, Schiffmann, Schild, Schill, Schiller, Schilling, Schillinger, Schimanski, Schimmel, Schimmelpfennig, Schimpf, Schindler, Schink, Schipper, Schirmer, Schlag, Schlecht, Schlegel, Schleich, Schleicher, Schlemmer, Schlenker, Schlesinger, Schley, Schlicht, Schlichting, Schlick, Schlömer, Schlosser, Schlösser, Schlüter, Schmalz, Schmelz, Schmelzer, Schmid, Schmidbauer, Schmidl, Schmidt, Schmidtke, Schmied, Schmiedel, Schmieder, Schmitt, Schmitz, Schmoll, Schmuck, Schnabel, Schneck, Schneider, Schneiders, Schnell, Schnelle, Schneller, Schnieders, Schnitzer, Schnitzler, Schnoor, Schnur, Schnurr, Schöbel, Schober, Schoch, Schock, Schöler, Scholl, Schöll, Scholten, Scholz, Scholze, Schön, Schönberg, Schönberger, Schönborn, Schöne, Schönemann, Schöner, Schönfeld, Schönfelder, Schönherr, Schöning, Schopf, Schöpf, Schorn, Schorr, Schott, Schöttler, Schötz, Schrade, Schrader, Schrage, Schramm, Schreck, Schreiber, Schreier, Schreiner, Schreiter, Schreyer, Schröder, Schroeder, Schroer, Schröer, Schroll, Schröter, Schroth, Schubert, Schuch, Schuchardt, Schuck, Schug, Schuh, Schuhmacher, Schuhmann, Schuldt, Schüle, Schuler, Schüler, Schülke, Schuller, Schüller, Schult, Schulte, Schulten, Schultes, Schultheis, Schultheiß, Schultz, Schultze, Schulz, Schulze, Schumacher, Schumann, Schümann, Schünemann, Schunk, Schupp, Schürer, Schurig, Schürmann, Schurr, Schüssler, Schüßler, Schuster, Schütt, Schütte, Schüttler, Schütz, Schütze, Schwab, Schwabe, Schwager, Schwaiger, Schwalbe, Schwalm, Schwan, Schwandt, Schwanke, Schwartz, Schwarz, Schwarze, Schwarzer, Schwarzkopf, Schweiger, Schweigert, Schweikert, Schweitzer, Schweizer, Schwenk, Schwenke, Schwerdtfeger, Schwind, Schwinn, Sebastian, Sedlmeier, Seeger, Seel, Seelig, Seeliger, Seemann, Seewald, Seger, Seibel, Seibert, Seibold, Seibt, Seidel, Seidl, Seidler, Seifert, Seiffert, Seifried, Seiler, Seitz, Seliger, Sell, Selle, Selzer, Semmler, Senf, Senft, Senger, Seubert, Seufert, Severin, Seyfarth, Sieben, Sieber, Siebert, Siefert, Sieg, Siegel, Sieger, Siegert, Siegl, Siegmund, Siekmann, Siemens, Siemer, Siemers, Siepmann, Sievers, Sievert, Siewert, Sigl, Sikora, Simon, Simons, Singer, Sinn, Sippel, Smith, Sobotta, Sohn, Söllner, Sommer, Sommerfeld, Sondermann, Sonnenberg, Sonntag, Sorg, Sorge, Sowa, Spahn, Spangenberg, Späth, Specht, Speck, Speer, Speicher, Speidel, Spengler, Sperber, Sperl, Sperlich, Sperling, Spiegel, Spieker, Spiekermann, Spielmann, Spies, Spieß, Spiller, Spindler, Spitz, Spitzer, Spörl, Sprenger, Springer, Staab, Stach, Stadler, Stahl, Staiger, Stamm, Stang, Stange, Stangl, Stapf, Stark, Starke, Staub, Stauch, Staudinger, Staudt, Stecher, Steck, Stefan, Steffan, Steffen, Steffens, Stegemann, Steger, Stegmaier, Stegmann, Stehle, Stehr, Steidle, Steiger, Steigerwald, Stein, Steinbach, Steinberg, Steinberger, Steinborn, Steinbrecher, Steiner, Steinert, Steinhauer, Steinhauser, Steinhoff, Steininger, Steinkamp, Steinke, Steinle, Steinmann, Steinmetz, Steinmüller, Stellmacher, Stelter, Stelzer, Stemmer, Stemmler, Stender, Stengel, Stenger, Stenzel, Stephan, Stern, Sternberg, Steuer, Stevens, Stich, Stickel, Stief, Stiefel, Stiegler, Stier, Stiller, Stingl, Stobbe, Stöber, Stock, Stöckel, Stocker, Stöcker, Stöckl, Stockmann, Stoffel, Stöhr, Stoiber, Stoll, Stolle, Stolte, Stolz, Stolze, Storch, Storck, Stork, Storm, Störmer, Storz, Stotz, Stöver, Strack, Stracke, Strasser, Straßer, Stratmann, Straub, Straube, Strauch, Strauss, Strauß, Strecker, Strehl, Streich, Streicher, Streit, Stricker, Strobel, Strobl, Stroh, Strohmeier, Strube, Struck, Strunk, Strunz, Stuber, Stüber, Stumm, Stumpe, Stumpf, Sturm, Stürmer, Stutz, Suhr, Süß, Sutter, Swoboda, Sydow, Szymanski, Tacke, Tamm, Tappe, Taube, Tauber, Taubert, Tausch, Teichert, Teichmann, Temme, Tempel, Tesch, Teschner, Teske, Tetzlaff, Teuber, Teubner, Teufel, Tewes, Tews, Thaler, Thamm, Theil, Theis, Theisen, Theiß, Thelen, Theobald, Thiede, Thiel, Thiele, Thielemann, Thielen, Thielmann, Thiem, Thiemann, Thieme, Thies, Thimm, Thom, Thoma, Thomann, Thomas, Thome, Thoms, Thomsen, Thon, Thöne, Thormann, Thum, Tiede, Tiedemann, Tiemann, Tietjen, Tietz, Tietze, Till, Tillmann, Timm, Timmermann, Tischer, Tischler, Tittel, Titze, Tolksdorf, Tölle, Tonn, Töpfer, Topp, Toth, Träger, Trapp, Traub, Traut, Trautmann, Trautwein, Treiber, Tremmel, Triebel, Tröger, Trommer, Trost, Tröster, Türk, Uhl, Uhlemann, Uhlig, Uhlmann, Uhrig, Ulbrich, Ulbricht, Ullmann, Ullrich, Ulmer, Ulrich, Umbach, Unger, Unruh, Urban, Utz, Valentin, Vater, Vaupel, Veit, Veith, Velten, Vetter, Vieth, Vogel, Vögele, Vogelsang, Voges, Vogl, Vogler, Vogt, Voigt, Voigtländer, Voit, Volk, Völkel, Völker, Volkert, Völkl, Volkmann, Volkmer, Voll, Vollmer, Vollrath, Volz, Vorwerk, Voss, Voß, Wachsmuth, Wachter, Wächter, Wacker, Wagener, Wagenknecht, Wagner, Wahl, Waibel, Walch, Wald, Waldmann, Walker, Wall, Wallner, Walter, Walther, Walz, Wanke, Wanner, Warnecke, Warnke, Wassermann, Weber, Weck, Wecker, Wedekind, Wedel, Wege, Wegener, Wegmann, Wegner, Wehner, Wehr, Wehrle, Wehrmann, Weichert, Weide, Weidemann, Weidinger, Weidlich, Weidmann, Weidner, Weigand, Weigel, Weigelt, Weigert, Weigl, Weihrauch, Weil, Weiland, Weiler, Weimann, Weimer, Wein, Weinberg, Weinberger, Weiner, Weinert, Weingärtner, Weinhold, Weinmann, Weinreich, Weinrich, Weinzierl, Weirich, Weis, Weise, Weiser, Weishaupt, Weiss, Weiß, Weißbach, Weiße, Weißenborn, Weisser, Weißer, Weißmann, Weitz, Weitzel, Welker, Weller, Wellmann, Welsch, Welte, Welter, Welz, Welzel, Wende, Wendel, Wendland, Wendler, Wendt, Wenger, Wenig, Weniger, Wenk, Wenz, Wenzel, Wenzl, Werle, Werner, Wernicke, Werth, Wesemann, Wessel, Wessels, Westermann, Westhoff, Westphal, Wetzel, Weyand, Weyer, Weyers, Wichert, Wichmann, Wick, Wicke, Widmann, Wiebe, Wiechert, Wiechmann, Wieczorek, Wiedemann, Wiedenmann, Wiedmann, Wiegand, Wiegel, Wiegmann, Wieland, Wiemann, Wiemer, Wiener, Wiens, Wiese, Wieser, Wiesmann, Wiesner, Wiest, Wilczek, Wild, Wilde, Wildner, Wilhelm, Wilhelmi, Wilk, Wilke, Wilken, Wilkens, Will, Wille, Willems, Willer, Willmann, Willms, Wilms, Wimmer, Windisch, Winkel, Winkelmann, Winkler, Winter, Winzer, Wirth, Wirtz, Wischnewski, Wisniewski, Witt, Witte, Wittek, Wittenberg, Wittich, Wittig, Wittke, Wittmann, Wittwer, Witzel, Witzke, Wohlfahrt, Wohlfarth, Wohlgemuth, Wöhrle, Wolf, Wölfel, Wolff, Wölfle, Wolfram, Wolfrum, Wölk, Woll, Wollmann, Wollny, Wollschläger, Wolter, Wolters, Wörle, Worm, Wörner, Wortmann, Wrede, Wrobel, Wulf, Wulff, Wunder, Wunderlich, Wunsch, Wünsch, Wünsche, Würfel, Wurm, Wurst, Wurster, Wüst, Wuttke, Yildirim, Yildiz, Yilmaz, Zabel, Zach, Zacharias, Zacher, Zahn, Zander, Zapf, Zauner, Zech, Zeh, Zeidler, Zeiler, Zeitler, Zell, Zeller, Zellner, Zenker, Zettl, Zieger, Ziegler, Zielinski, Zielke, Ziemann, Ziemer, Zimmer, Zimmerer, Zimmermann, Zink, Zinke, Zinn, Zipfel, Zitzmann, Zobel, Zoller, Zöller, Zöllner, Zorn, Zuber, Zühlke, Zwick]
street: [Aalheitengraben, Abdenastraße, Abraham, Äbtissinsteig, Abt-Vitalis-Straße, Achenweg, Achterdörper Weg, Achtern Strand, Äckernkamp, Adalbert-Stifter-Weg, Adam-Pfeuffer-Straße, Adelgundenstraße, Adenauering, Adlerring, Adolf-Ehrtmann-Straße, AdresseFuchshofener Straße, Affenbergstraße, Aggensteinstraße, Agnes-Sapper-Straße, Ahlbecker Straße, Ahornhöhe, Ahrhutstraße, Aichener Straße, Aixer Straße, Alardusstraße, Albernauer Straße, Albert-Eise-Weg, Albertus-Magnus-Platz, Albrecht-Achilles-Straße, Aldinger Straße, Alexander-Pachmann-Straße, Alfert, Alfred-Dehlinger-Straße, Alldorn, Allerbecker Weg, Allhornstieg, Alma-Rogge-Weg, Almweg, Alpenblickstraße, Alsbacher Straße, Alsterring, Altbriesnitz, Alte Auer Straße, Altenberg, Altendettelsauer Straße, Altenhainerstraße, Altenrheiner Straße, Alter Bannweg, Altes Sonnenbad, Altgrabengässchen, Altjührdener Straße, Alt-Lübars, Altmurgweg, Altstädter Gasse, Alversloweg, Am Abendsberg, Ameke, Amelsbürener Straße, Amethyststraße, Ammerlandallee, Amtenbrinks Weg, Amthorstraße, Amtmann-Daniel-Straße, Anbaustraße, An den Behsen, Andreas-Hofer-Ring, Andreeplatz, Angelnweg, Angermunder Weg, Anhaltische Straße, Anlehen, Anna-Schneider-Steig, Annenhof, Annuntiatenbach, Anton-Aulke-Ring, Apeler Straße, Apollinarisstraße, Appelhof, ARAG-Platz, Arenastraße, Arheilger Kirchgasse, Arminiusweg, Arno-Holz-Straße, Aronweg, Arthur-Mahler-Straße, Arzbergweg, Aschebachstraße, Aschingerstraße, Asperger Straße, Atenser Allee, Atzelpfad, Auchertwiesenweg, Auenwinkel, Aueufer, Auf dem Berge, Aufderhöher Straße, Aufseßplatz, Augustaallee, August-Broemel-Straße, Augustinerbach, Aunham, Außenring, Äußere Löwenstraße, Autobahn A5, AWG-Siedlung, BAB44 Nord, Bach, Bächlingen, Bäckerberg, Backhausstraße, Baden Badener Straße, Badeteichstraße, Bad Sodener Straße, Bagers Weg, Bahnhofplatz 3, Lenggries, Bahnstraße-alt, Baikonurweg, Balatonstraße, Balger Straße, Ballig, Baltischer Weg, Banderbacher Straße, Bännjerstraße, Barbara-Kayser-Straße, Bardenitzer Dorfstraße, Bärenriegelweg, Bargerhof, Barkower Straße, Barnstorfer Straße, Bartelbergweg, Bartholomäusstraße, Basbergstraße, Basteistraße, Batteriegasse, Bauernallee, Bauernweide, Baumbachstraße, Baumhof, Bauordenstraße, Bavariaring, Bchsatraße, Bechsteinweg, Beckersheide, Beckwitzer Straße, Beerbuschstieg, Beethovenstraße, Behmweg, Bei den Kappen, Beienheimer Straße, Beim Billing, Beindestraße, Beitterstraße, Belfortstraße, Bellmannstraße, Bembürener Weg, Benedikterstraße, Benjamin-Vogelsdorff-Straße, Benno Schilde Platz, Bentenweg, Beratgerstraße, Berdumer Weg, Bergdorfstraße, Bergerweg, Berghamm, Bergische Landstraße, Bergmühlenwehr, Bergsteiner Straße, Berkelmannweg, Berliner Promenade, Bernauerstraße, Bernhard-Becker-Straße, Bernkottstraße, Berscheid, Berthelsdorfer Straße, Bertolt-Brecht-Weg, Besengaustraße, Bether Straße, Bettina-von-Arnim-Straße, Beueler Bahnhofsplatz, Beutenfeldstraße, Beyerbachstraße, Bgm.-Schelchshorn-Straße, Bicherouxstraße, Bieberer Straße, Bielastraße, Bienertstraße, Biernatzkistraße, Bietigheimer Straße, Bilker Straße, Billwerder Steindamm, Bingergasse, Binweg, Birkenbruch, Birkensteingasse, Birkesdorfer Straße, Birkwitzer Straße, Bischheimer Straße, Bischofsackerweg, Bischof-Wolfger-Straße, Bitscher Straße, Blaffert, Blankenhornstraße, Blatzheimer Weg, Blechenstraße, Bleichenweg, Bleigasse, Bliesaue, Blockfeldstraße, Blomestraße, Blumenhagener Straße, Bluntschlistraße, Böchinger Straße, Bockhacken, Bockmühlenweg, Bodanplatz, Bodenburgallee, Bodinusstraße, Boettgerstraße, Böhlener Straße, Böhmersweg, Bohnmühlgasse, Bokeler Weg, Bolbergweg, Bollenser Weg, Bolongarostraße, Bommersfeld, bonhoeferstraße, Bonnermannsfeld, Bontkirchener Straße, Borbecker Platz, Borgersstraße, Borinskistraße, Bornheimer Straße, Bornsdorf Hasenweg, Börsenplatz, Bosauer Straße, Boslerstraße, Bothestraße, Bottwarbahnstraße, Boxberg, Brabänderweg, Brackebuschstraße, Braigstraße, Bramkoppel, Brandenburger Weg, Brandkuhlenweg, Brandweidenweg, Brauereistraße, Braukämperstraße, Bräunlinger Straße, Brautschatztwete, Breddeweg, Bredkamp, Brehtonweg, Breitegrund, Breitenhölzer Straße, Breite Straße, Brelen, Bremersweg, Brennaborstraße, Brenscheid, Bretzfelder Straße, Brieselanger Straße, Brinker Feld, Brockamp, Brockstreck, Bröhlstraße, Brokforster Weg, Brommerstraße, Brookring, Brucher Straße, Brüchtenweg, Brückenkopf, Brücklmeierstraße, Brüder-Busch-Straße, Bruderwöhrdstraße, Bruggspergerstraße, Bruhnsstraße, Brunhildenstraße, Brunnenbühl, Brunnererweg, Brünnsteinstraße, Bruno-Tesch-Straße, Brüsselstraße, Buchauer Straße, Buchenberg, Buchenring, Buchheide, Buchloe, Buchwaldweg, Buckower Damm, Budentannenweg, Buflingsried, Bühler Straße, Bulachweg, Bulmannstraße, Bundesautobahn, Büningweg, Büppeler Weg, Burgackerweg, Bürgelstollen, Burgfriedenstraße, Burghofstraße, Burgmannsweg, Burgsteinfurter Damm, Bürgweg, Bürknersfelder Straße, Burtscheider Straße, Buschgarten, Buschrosenweg, Büsnauer Platz, Butendiek, Buttenwegle, Butzweilerstraße, Cäcilienstraße, Cambener Weg, Campus Ring, Cappeler Straße, Carl-Bobach-Straße, Carmauxstraße, Carusufer, Castroper Hellweg, Celní, Champagnatplatz, Charlottenhofstraße, Chemnitzer Weg, Chransdorfer Straße, Christian-Gau-Straße, Christinenweg, Christophorusstraße, Cimbernstraße, Clarenberg, Clausiusstraße, Clemensplatz, Cliener Straat, Coesfelder Berg, Colmdorfstraße, Condomer Straße, Consulentengasse, Cornelius-Münch-Weg, Cottbusser Platz, Creglingen, Cronheim, Culmer Straße, Curt-Querner-Straße, Dachbergstraße, Dackenheimer Straße, Dahlhok 22A, Daisbachtalstraße, Dallnstraße, Damerowstwiete, Dammstraße/Stiftstraße, Daniel-Eckhardt-Straße, Dannenkoppel, Daphnestraße, Dasbecker Weg, Daubhausstraße, David-Eisenmann-Straße, Debussyweg, Dechantshof, Deelböge, Degenfeldstraße, Deichelweg, Deilinghofer Straße, Deisterweg, Delbrücker Straße, Delling, Demmelweg, Dennekamp, Deppendorfer Straße, Derner Bahnstraße, Detlef-Bremer-Straße, Deumentenstraße, Deutschherrnufer, Deverweg, Dickampstraße, Diebelbachstraße, Diederser Weg, Diekamp, Diematsweg, Diepental, Diesdorfer Privatweg, Dieterlestraße, Dietrich-Buxtehude-Straße, Diezstraße, Dimitroffstraße, Dingwall Way, Dirlenbacher Weg, Disternicher Torwall, Ditzinger Straße, Döbernsche Straße, Dodo-Wildvang-Weg, Dohrener Weg, Doktorgäßchen, Doktor-Otto-Klemp-Straße, Doldenäcker, Dolmanstraße, Domfreihof, Dompeweg, Donatusweg, Donndorfer Straße, Doomerstraße, Dörenstraße, Dorfgärten, Dorfstraße, Dormettinger Straße, Dörndichweg, Dornkamp, Dorotheenstraße, Dorschhauser Weg, Dosmühle, Drachenfelsweg, Dr.-Alfred-Schwab-Platz, Dreiburgenblick, Dreikirchenstraße, Dreirosengasse, Dreuschendorf, Dringenberger Straße, Drosselbergstraße, Drusenbergstraße, Duchcovská, Duisburger Straße, Dunckerstraße, Dünner Straße, Dürener Straße, Dürrenbacher Hütte, Dusekestraße, Düstruper Heide, Dweerkamp, Ebbinghauser Weg, Ebereschenallee, Eberner Straße, Ebertystraße, Ebsdorfer Straße, Eckardistraße, Eckendorfer Straße, Eckertstraße, Ecksweg, Edelsteig, Edgar-Scheibe-Straße, Edmund-Rieß-Straße, Eduard-Klüber-Straße, Egarten, Egertenstraße, Eggenweg, Egidienplatz, Ehenbachstraße, Ehnernstraße, Ehrental, Eichberg, Eichelseeweg, Eichenhang, Eichenwäldchen, Eichhahnweg, Eiching, Eichstraße, Eickendorfer Straße, Eiderweg, Eigenheim Siedlung, Eimersweg, Einhäuschen-Querstraße, Einsteinring, Eisenbahnlängsweg, Eisenschmiedmühle, Eiskeller, Eitzenhamer Straße, Elbenkamp, Elbstraße, Elfenbeinweg, Elhardtplatz, Elisabeth-Mara-Straße, Elitz, Ellerbittweg, Ellharter Steig, Elly-Heuss-Knapp-Platz, Elmstraße, Elsborn, Elsteraue, Eltweg, Embser Dorfstraße, Emil-Erlenmeyer-Forum, Emmelhofer Straße, Emmi-Kurzke-Straße, Emser Platz, Endertstraße, Engelbosteler Damm, Engelsgasse, Enges Gründlein, Enkweg, Enstestraße, Enzensbergstraße, Eppelborner Ecke, Erasmusstraße, Erbsenstraße, Erdmannsweilerstraße, Erfweilerstraße, Erich-Halbauer-Weg, Erika-Köster-Straße, Erlacher Hauptstraße, Erlengang, Erlhagen, Ermischstraße, Ernst-Alban-Weg, Ernsweg, Ertmarweg, Erzbischof-Buchberger-Allee, Eschborner Landstraße, Eschengasse, Escherweg, Esenser Straße, Essenberger Straße, Esteweg, Ettersbergsiedlung, Etzwiesenberg, Eugen-Herrmann-Straße, Eulenbühlweg, Europa Allee, Eutschützer Höhe, Evreuxring, Externsteiner Straße, Fackenburger Allee, Fahrenbacher Straße, Fährgrund, Faktoreistraße, Falkenburgweg, Falkenweg, Falsterring, Färbergasse, Farrenstraße, Faule Birke, Fechnerstraße, Fehmarnstraße, Feierabendweg, Feldanger, Feldgärtenstraße, Feldmannshof, Feldtor, Felix-Wankel-Straße, Felsenkellerpromenade, Fensenhöhenweg, Ferdinand-Keller-Straße, Ferrowweg, Fettweide, Feuerseeplatz, Fichtelgebirgsstraße, Fiedelerplatz, Filkuhlweg, Finkenbacher Straße, Finkstroth, Firrelerstraße, Fischerbergstraße, Fischerring, Fischmarkt, Flachsbleiche, Flamweg, Fleck, Fleineheimer Straße, Fleschützer Straße, Fließenhardtstraße, Flögelinger Straße, Florinsmarkt, Flottbektal, Flünnertzdyk, Flütjenburgstraße, Fohlenkampstraße, Föhrthofweg, Forckestraße, Förriener-Loog, Förstergang, Forstinninger Straße, Fort Worth-Platz, Franckeplatz, Frankenholzer Weg, Frankfurter Straße, Franz-Bauer-Weg, Franzenstraße, Frauenbrunner Straße, Frauenplan, Fraukircher Weg, Freerbruchstraße, Freiburgstraße, Freigarten, Freiröttenbach, Frenkingstraße, Freudeneck, Freysestraße, Frieda-Seidlitz-Straße, Friedensallee, Friedersdorfer Weg, Friedleinstraße, Friedrich-Castelle-Straße, Friedrichsfelderstraße, Friedrichstädter Straße, Friesener Weg, Friller Straße, Fritz-Bockius-Straße, Frohnepfad, Fronau, Froschlake, Frühmeßweg, Fuchsgrube, Fuchsweg, Fuhrgabel, Füllgesweg, Funkenstraße, Fürstenberg, Fürst-Franz-Joseph-Straße, Furtredder, Gablonzer Straße, Gaemsgasse, Gailertsreuth, Galappmühler Straße, Gallberger Weg, Galmeistraße, Gangelsgarten, Gänserasen, Ganzhornstraße, Gardinger Weg, Garreler Straße, Gartenstadt, Gärtnerweg, Gässle, Gatherweg, Gaupel, Gebelsbergstraße, Gebrüder-Loewe-Straße, Geenenstraße, Geheimrat-Heß-Ring, Gehrtshorst, Geigerswäldele, Geisenheimer Straße, Geißhöhe, Gelber Kreidebusen, Gelnhäuser Straße, Geminiweg, General Wever Straße, Genslerstraße, Georg-Brötz-Straße, Georgenstraße, GEPA-Weg, Gerberschanze, Gerhard-Ellrodt-Straße, Gerhart-Hauptmann-Weg, Gerlindstraße, Gernbergweg, Gersbachtalstraße, Gerstenweg, Gertrud-Eysoldt-Straße, Geschwister-Scholl-Platz, Gesundbrunnen, Gewebering, Gewerbepark Cité, Geyersberger Straße, Giebelweg, Gieseckenkamp, Gießener Straße, Gilde, Gilmerich, Ginsterstraße, Giselastraße/Kaulbachstraße, Glain, Glasfabrikstraße, Glastener Straße, Gleichenstraße, Glemsstraße, Glindower Straße, Glockenpohl, Glower Straße, Glühwürmchenweg, Gneisenauring, Göddeldorf, Goeckingkstraße, Goffineweg, Goldackerweg, Goldene Linie, Goldmannstraße, Golfplatz, Gölzstraße, Goppeltweg, Görlitzer Weg, Gosdaer Dorfstraße, Gößmannsreuth, Gotische Straße, Gottfried-Hart-Straße, Gotthelf-Leimbach-Straße, Gottlieb-Olpp-Straße, Götzen, Goystraße, Grabensprung, Grädenerstraße, Graf-Beust-Allee, Gräfenhäuslinger Straße, Grandsberg, Gräsenweg, Grasreutweg, Graudenzer Weg, Gravestraße, Grefrahterstraße, Greinstraße, Grenzhausener Straße, Gretenmühle, Grevenhecke, Griesbachstraße, Grießemer Straße, Grimlinghauser Straße, Grinauer Weg, Grochlitzer Straße, Gromischweg, Gronowskistraße, Groppstraße, Groß Döbberner Straße, Große Bleichen, Großer Griechenmarkt, Großhecker Weg, Großmehringer Straße, Großstückweg, Grotekampstraße, Grubacker, Grubweg, Grunauer Straße, Gründlacher Straße, Grüne Hoffnung, Grüner Placken, Grünfeldstraße, Grünsberger Straße, Gruppenstraße, Guckai, Güglinger Straße, Güldenkamp, Gümpelhof, Gundlachstraße, Gunther-Plüschow-Straße, Gürtelstraße, Gustav-Esche-Straße, Gut Dreisborn, Güterhallenstraße, Gütlestraße, Guts-Muths-Weg, Gwinnerstraße, Haarbergweg, Haarstrang, Haberkamps Vöhde, Habichtsring, Hachumer Straße, Haddamarstraße, Haeselerstraße, Haferfeldring, Hafnersteige, Hagelstangestraße, Hagenfeldstraße, Hagentreppe, Hagspiel, Hahnengrundweg, Hahnscher Holzweg, Haidigestraße, Haimendorfer Straße, Hainer Pfad, Hainthalstraße, Halbestadt, Haldenweg, Halle-Kasseler Straße, Halligenplatz, Halsbeker Straße, Hambrgstraße, Hamerlestraße, Hammerbergweg, Hammersberg, Hammkamp, Handal, Hanebergstraße, Hangenkamp, Hannastraße, Hanns-Eisler-Weg, Hansaweg, Hans-Claßen-Straße, Hänselmannstraße, Hansgaß, Harald-Striewski-Straße, Hardenstraße, Hardtplätzchen, Harksheider Straße, Harpener Heide, Harscheider Weg, Hartensteiner Straße, Hartlweg, Hartwarder Bruchweg, Harztorwall, Haselnußring, Hasenbrucher Weg, Hasenlohe, Haslangstraße, Hasselbreite, Hasselwisch, Hatefeld, Hatzevennstraße, Hauendorf, Haumannplatz, Hauptmann-Schöningh-Straße, Hauptwieke, Hausdorffstraße, Hausgelänge, Hausmannstraße, Haustraße, Haverkampstraße, Hebbelplatz, Hechmecker Weg, Heckenrosenstraße, Hectorstraße, Hedwig-Dransfeld-Platz, Heeper Straße, Hees, Hegeberg, Heger-Tor-Wall, Hehnstraße, Heidebroichstraße, Heidelbeerweg, Heidener Straße, Heidersdorfer Straße, Heidhörnweg, Heidschnuckenweg, Heilenbecker Straße, Heiligenhäger Straße, Heiliggeiststraße, Heimatsberg, Heimersfeld, Heimstättensiedlung, Heiner-Moll-Weg, Hein-Minkenberg-Straße, Heinrich-Brauns-Straße, heinrichstraße, Heinz-Galinski-Straße, Heischhof, Heistergarten, Hektorstraße, Helene-Mayer-Weg, Helfkamp, Hellebardenweg, Heller Weg, Helmerslohne, Helmtrudenstraße, Heltenstraße, Hemmerder Hellweg, Henershuuch, Henkenbrinker Straße, Henningsgasse, Heppenser Straße, Herbert-Kadner-Straße, Herbstbenden, Herdsteig, Herisösch, Hermann-Aust-Straße, Hermannswinkel, Herman-Uhlig-Platz, Heroldsberg, Herrendeich, Herrenkrugstraße, Herrestraße, Herrmannstädter Straße, Herschelstraße, Hertzbergstraße, Herzhorner Straße, Herzog-Johann-Albrecht-Straße, Hesebergweg, Hessenbach, Hesslerweg, Hetzelgasse, Heubruchsweg, Heumadener Straße, Heutalsweg, Heyerhoffstraße, Hiddenseestraße, Hilbertstraße, Hildegundisallee, Hilgenbusch, Hiller-von-Gertingen-Straße, Hiltruper Straße, Himmelsleiter, Hinderpatt, Hinseler Feld, Hinter dem Garten, Hintere Fischergasse, Hinterfeldstraße, Hintermayrstraße, Hinterm Reiherholz, Hiroshimastraße, Hirschenbuckel, Hirschpaß, Hirtenkate, Hitfelder Straße, Hobrechtsfelder Chaussee, Höcherbergstraße, Hochkamp, Hochrißweg, Hochtalstraße, Hockenheimer Straße, Hoeteweg, Hofbrehnweg, Höfenstraße, Hofgarten, Hof Höfen, Hofmaler-Franz-Weg, Hofreuthackerstraße, Hofweg, Höger Weg, Hohe Brücke, Hohenborner Straße, Hohenfelde, Hohenhöveler Straße, Hohenreich, Hohenstauferallee, Hohenweidener Weg, Hoherodskopfstraße, Hohetorwall, Hohlenbergstraße, Höhne, Höhwiese, Holdereggenstraße, Holländergang, Höllenwisch, Höllgrundstraße, Holmweg, Holstenhofkamp, Holter, Holtingsweg, Holzäckerweg, Holzerweg, Holzheim, Hölzleswiesen, Holzvogtweg, Hömericherstraße, Honingser Straße, Hooge Weg, Hopfenleite, Hoppendamm, Horbacher Straße, Hördter Straße, Hörmannsdorf, Horner Hellweg, Hornmühlenweg, Horscheltstraße, Horst-Fitjer-Weg, Hörwegstraße, Hosterweg, Hövelchesweg, Hoxbachstraße, Hubäckerring, Hubertusstraße, Huchtinger Straße, Hudlerstraße, Hüfnerstraße, Hugo-Eckener-Straße, Hühnlesgasse, Hülsdauer Straße, Hülsmeyer Straße, Humlanger Straße, Humsterdorf, Hundshof, Hüngert, Hunsrückweg, Hurt, Husstäenweg, Hutmacherring, Hüttenkrattweg, Hutungstraße, Hygstetter Straße, Ida-Pfeiffer-Weg, Igelstraße, Ihausener Straße, II. Vereinsstraße, Illerdamm, Ilmweg, Ilzstraße, Im Alten Holz, Immanuel-Kant-Straße, Immelnbusch, Immentunsweg, Imolastraße, In den Ackern, Indrastraße, Industriezentrum, Ingolstädter Straße, Innere Brücke, Innerstetal, Institutsstraße, Iptinger Weg, Irrenloher Damm, Isebekstraße, Isernhägener Straße, Istanbulstraße, Itzsteinstraße, Jack Wolfskin Kreisel, Jadebusenweg, Jägerhofallee, Jägerweg, Jakob-Bader-Straße, Janhnstraße, Janusz-Korczak-Weg, Jean-Burger-Straße, Jeetzelgärten, Jenseits der Aue, Jeßnitz, Jilové Straße, Jochartweg, Johanna-Hofer-Weg, Johann-Casimier-Weg, Johannes-Bock-Straße, Johanneshof, Johannesplatz, Johanniskirchstraße, Jöhlinger Straße, Jollystraße, Jorindeweg, Josef-Eisenauer-Straße, Joseph Haumann Straße, J.-S.-Bach-Straße, Juelstraße, Jülicher Ring, Julius-Hatry-Straße, Juliuspromenade, Jungchenbüchel, Jungmannstraße, Junkerweg, Jürnweg, Jutta-Balk-Straße, Kachstedter Straße, Kafkastraße, Kahlertstraße, Kaipershof, Kaiser-Joseph-Straße, Kaiserstrasse, Kalands Gang, Kaldenkirchener Straße, Kalk-Mülheimerstraße, Kallinchener Chaussee, Kalteneggolsfeld, Kalugaer Straße, Kamerstücken, Kammerlachweg, Kampener Weg, Kamsbachweg, Känerbergstraße, Kantensiek, Kanzlerstraße, Kapeller Straße, Kaplan-Höfling-Straße, Kappenberger Damm, Kaptain-Lehmann-Straße, Kardinal-Faulhaber-Straße, Karkweg, Karl-Blessing-Straße, Karlheinz-Stockhausen-Platz, Karlshöhe, Karnaper Markt, Karolinger Ring, Karstenstraße, Käsereiweg, Kaspul, Kastelburgstraße, Kastsanienstraße, Katharina-Neufang-Straße, Käthe-Paulus-Weg, Kattenbeck, Kattrepelsbrücke, Katzensteinstraße, Kaufhausstraße, Kauschaer Straße, Kederbacherstraße, Kehlstraße, Keilmannstraße, Kellenhusener Weg, Kellinghusenstraße, Keltrisstraße, Kempstraße, Keppelner Straße, Kernbergstraße, Kerststraße, Kessenhammer, Ketterschwanger Straße, Kichender Dorfweg, Kieferbachstraße, Kieler Chaussee, Kienzlestraße, Kieshecker Weg, Kilian-Leib-Straße, Kimmichsweilerweg, Kinzigstraße, Kirchbenden, Kirchdornberger Straße, Kirchenstegel, Kirchhainer Straße, Kirchhörder Kopf, Kirchrainstraße, Kirchtalstraße, Kirkwrahe, Kirschborn, Kiskerstraße, Klabundring, Klappekuhlstraße, Klarmanns Kamp, Klausenpfad, Klävemannstraße, Kleersstraße, Kleinbergstraße, Kleine Bäckerstraße, Klein Eller, Kleiner Heerter Weg, Kleines Wegfährels, Kleinflintbeker Straße, Kleinheringen, Kleinnaundorfer Straße, Kleiststraße, Klettenberggürtel, KlgV 748, Klingenhagen, Klinkberg, Klippschloß, Klopfgasse, Klosterbredde, Klostermarkt, Klostrerstraße, Klus, Knabenkrautweg, Knauffstraße, Knieperdamm, Knochstraße, Knörrgasse, Kobelstraße, Kocherwaldstraße, Koelreuterstraße, Kohlbahn, Köhlerplatte, Kohlmarkt, Köhnenstraße, Kolbenholz, Kölfhamm, Kollerbachstraße, Köln-Berliner-Straße, Kolpingsplatz, Kommerweg, König-Heinrich-Weg, Königsber Straße, Königshausen, Königsstuhl, Königsworther Platz, Konrad-Duden-Weg, Konradsreuth, Konsteiner Straße, Kopenhagener Straße, Koppelbarg, Koppersstraße, Korbstück, Kornangers, Kornhausacker, Kortemickestraße, Köschinger Straße, Kostenz, Kothlehen, Köttersweg, Krabbenweg, Kräheneckstraße, Kraichgauplatz, Kramers Kamp, Kranichfelder Straße, Kranzweg, Krautgärten, Krebsmühle, Kreienkoppel, Krementzstraße, Kressbacher Straße, Kreuzäcker, Kreuzeckweg, Kreuzkämpchen, Kreuzstraße, Kriegerdankweg, Kringelkrug, Krochmannstraße, Krölstraße, Krönkenhagen, Kroosweg, Krottorfer Straße, Krumbach, Krummen, Krumperstraße, Krützkamp, Küchenschellenweg, Küdinghovener Straße, Kuhbachweg, Kühlenbergstraße, Kuhlworth, Kuhturmstraße, Küllersberg, Kummertsreuth, Kunigundenruhstraße, Kunzenweg, Kupferschmiedshof, Kurdamm, Kurmainzring, Kurt-Eisner-Straße, Kurzer Kamp, Kußmaulstraße, Küterdamm, Kyffhäuser, Labandstraße, Lachswehrallee, Laerheider Weg, Lahnbeckestraße, Lailensäckerstraße, Lambertsgarten, Lammersfeld, Lampesteig, Landeshäuser Straße, Landgut, Landreiterstraße, Landstuhler Straße, Langbaurghstraße, Langedammstraße, Langeloh, Langenbick, Langenfeldstraße, Langenkampstraße, Langenstraße, Langermannsweg, Lange Straße, Langfurchweg, Langseer Weg, Lankwitzer Straße, Lappenberg, Lassallestraße, Laubanger, Laubwaldstraße, Lauergasse, Lauheide, Lausaer Weg, Lautenstraße, Lautlinger Straße, Lea-Grundig-Straße, Lechtenberg, Leedenstraße, Leeswig, Lehener Straße, Lehmder Straße, Lehnbergring, Lehrer-Wirth-Straße, Leibuschstraße, Leimberg, Leinefelder Straße, Leinstraße, Leising, Leitershofer Straße, Lembergerweg, Lenbachplatz, Lengmoosstraße, Lenssenstraße, Leo-Graetz-Straße, Leonhard-Moll-Bogen, Leopoldplatz, Lerchenhöhe, Les-Epesses-Straße, Lettengasse, Leubnitzer Straße, Leukeweg, Leuterschacher Straße, Leverkurser Straße, Leyenstraße, Licher Berg, Lichtenfelser Straße, Lichthof, Liebenwalder Damm, Liebknechtstraße, Liehrstraße, Lieschensruh, Lietzenburger Straße, Lilienthalweg, Limberg, Lina-Schäfer-Straße, Lindelberg, Lindenbühl, Lindenhügel, Lindenthalstraße, Lindichstraße, Lingener Straße, Linsenhofer Berg, Linzgaublick, Lipplinger Straße, Liselotte-Rückert-Straße, Littenstraße, Löbberthang, Lobstädter Straße, Lochingerstraße, Loderslebener Straße, Löfftzstraße, Lohberger Straße, Loherstraße, Lohmarer Straße, Lohorster Straße, Lohteich, Lommatzscher Platz, Lonseer Straße, Loquarder Reihe, Lorenz-Schott-Straße, Lorscher Straße, Lossaer Straße, Lotichiusstraße, Louis-Beißel-Straße, Löwentorstraße, Lübbrechtser Straße, Lucaestraße, Lückenbachstraße, Lüdenscheider Straße, Ludolf-Camphausen-Straße, Ludwig-Eckert-Straße, Ludwigsluster Straße, Lug ins Land, Luisenburgstraße, Luitpoldpark, Lundenberg, Lüningshove, Lürriper Straße, Lüssweg, Lutherweg, Lütten Damm, Lüttje Weg, Lützenkircher Straße, Luzernefeld, Machtlfinger Straße, Madlower Straße, Magdeburger Tor, Mahden, Mahnertmühle, Maierbreite, Mailbachstraße, Mainfurt, Mainzlarer Straße, Malapertstraße, Mallnitzer Weg, Malterscheidtstraße, Mandelring, Mangoldtstraße, Manningaweg, Manzweg, Marco-Polo-Weg, Margarete-Wolf-Schlomm-Straße, Maria Beinberg, Marie-Eberth-Straße, Marienburger Weg, Marienklausenbrücke, Marienwerder Straße, Marker Allee, Markircher Straße, Markt, Marktstätte, Marlene-Dietrich-Straße, Marquardtstraße, Marsopstraße, Martfelder Weg, Martin-Fischel-Straße, Martinsplatz, Mary-Krebs-Straße, Masers, Mastener Weg, Mathias-Koch-Weg, Mattentwiete, Matthias-Langen-Straße, Mauerhecke, Maurenbrecherstraße, Mauthstraße, Maxburgweg, Max-Glomsda-Straße, Maxim Gorki Straße, Maybachufer, Mechthildweg, Meddingheide, Meeraner Straße, Meeschesteg, Mehrbachstraße, Meierdingsen, Meilitz, Meinhardswindener Straße, Meiselschachtweg, Meißnerstraße, Melatener Straße, Melkbrink, Melloh, Memmingerstraße, Mengsberger Straße, Menzelweg, Mergelfeld, Merkenicher Hauptstraße, Merschwiese, Merzhauser Straße, Messelweg, Mesterfeld, Metternichstraße, Metzinger Straße, Meyersweg, Michael-Gerber-Straße, Michelsberger Weg, Miebachstraße, Milbertshofener Platz, Millauerweg, Mimosenweg, Minna-Herzlieb-Straße, Mirastraße, Mittagleite, Mittelgasse, Mittelstädter Straße, Mitterlängstraße, Mittlerer Bauernwaldweg, Mittlere Uferstraße, Modemannstraße, Möhlenkamp, Mohrengäßle, Molière-Weg, Möllenhoffstraße, Molnerweg, Mönchebergstraße, Mönchshof, Monheimer Straße, Mönsterweg, Moorblöcken, Moorkieferweg, Moosalbstraße, Moosgrund, Morahtstieg, Morgensteig, Moritz-Kabaker-Straße, Morsbacher-Straße, Mosbacher Straße, Mosheimstraße, Mottenburger Twiete, MTS-Siedlung, Müggelheimer Damm, Mühlaustraße, Mühlenauel, Mühlenecke, Mühlenkopfstraße, Mühlenworth, Mühlhofstraße, Mühlsachsen, Mühlwiesenstraße, Mülheimer-Straße, Müller-Thurgau-Weg, Müncheberger Straße, Münchowstraße, Münkselfeld, Münsterstiege, Murgstraße, Muschelweg, Mußbacher Straße, Nachtigallentwiete, Nad Údolím, Nagoldtalstraße, Na Náspu, Nassachstraße, Nathusiusstraße, Nauener Straße, Nazarethkirchstraße, Nebenweg, Neckartenzlinger Straße, Neersbroich, Neidsteiner Straße, Nellessenstraße, Neptunring, Nesselrodestraße, Nettelnburger Straße, Neubauerweg, Neubrücker Straße, Neudorf-Klösterlich, Neue Friedhofstraße, Neuenburger Straße, Neuenhöfer Allee, Neuenwegstraße, Neufferstraße, Neuhauser Hauptstraße, Neuhöhe, Neulandplatz, Neumeyerstraße, Neunmorgenstraße, Neurodestraße, Neusser Feldweg, Neustraße, Neuwerkstraße, New-York-Straße, Nicolaus-von-Dreyse-Straße, Niederadener Straße, Niederende, Niederhofer Holz, Niedermayerstraße, Niedernstraße, Niederstedter Weg, Niedwiesenstraße, Niemannsweg, Nienhöfener Weg, Niesetalstraße, Niklastorstraße, Nikolaus Kopernikus Weg, Nimwegener Straße, Nivelsteiner Weg, Nohraer Weg, Nonnendammallee, Noorstraße, Norddeichweg, Norderney, Nordhaideplatz, Nordlandstraße, Nordoog, Nordwall, Nöschenröder Straße, Nottengartenweg, Nuhtetalstraße, Nussbaumstraße, Nütheimer Straße, Ob den Gärten, Oberasbacher Straße, Oberbreite, Oberdorf, Obere Brandstraße, Oberer Bogenweg, Oberes Griesfeld, Oberetscheid, Obergutstraße, Oberhöchstädter Weg, Oberkleener Straße, Oberlinder Straße, Obermühlberg, Oberntiefer Straße, Oberreithen, Oberseener Weg, Oberste-Wilms-Straße, Oberwallstraße, Ober-Wöllstädter-Straße, Occostraße, Ochtmersleber Weg, Odenheimer Straße, Odilienstraße, Oehrenstöcker Straße, Oemkenstraße, Oestertalstraße, Ofenbergstraße, Offinger Straße, Ohlendorffs Tannen, Ohmenheimer Straße, Öjendorfer Damm, Olbernhauer Straße, Oldenstädter Straße, Ölgrabenstraße, Olof Palme-Straße, Olvenstedter Platz, Oonwai, Opfinger Straße, Opperklappe, Orchideenstraße, Orlická, Ortenbergstraße, Ortsmühle, Osdorfer Straße, Oskar-Miller-Straße, Osnabrückstraße, Ostallee, Ostenfelder Straße, Osterbrook, Osterhof, Osterminnerweg, Osterstraße (Cityring), Ostfriesenstraße, Östliche Hauptstraße, Östringer Weg, Oswald-Bieber-Weg, Ottacker, Otterbach, Öttinger Straße, Otto-Braun-Straße, Otzbergstraße, Overhagener Weg, Paarener Dorfstraße, Padkamp, Palandweg, Palmwiesen, Pannhauser Straße, Papenberger Weg, Papierstraße, Paradeisstraße, Pareyer Weg, Parksee, Parzellenstraße, Passauerstraße, Pastor-Böhm-Straße, Pastorplatz, Paterkamp, Patschinserstraße, Paul-Bleisch-Straße, Paulinenplatz, Payerstraße, Pegauer, Pelkmanns Feld, Pennigbütteler Straße, Perchstetten, Perne, Pestalozzistraße, Peter-Fischer-Allee, Petersbrunner Straße, Petershalde, Petrirodaer Straße, Petzelstraße, Pfaffenbogen, Pfaffing, Pfälzische Straße, Pfarrecke, Pfarrer-Burger-Straße, Pfarrsiedlung, Pfegersäckerle, Pferdetränke, Pfistergrund, Pfluggasse, Pfullendorferstraße, Philipp-Merck-Weg, Pickelstraße, Piepers Feld, Pilgrimstein, Pinnasberg, Pirminiusstraße, Pivitsort, Planetenring, Plärrer, Platten, Platz der Diakonie, Plauenscher Ring, Pleiser Hecke, Plinz, Plötze, Podemuser Straße, Poghausener Grenzweg, Polcher Straße, Polliusweg, Pommrück, Poppenbergweg, Porschendorfer Weg, Portugieserweg, Possenheimer Straße, Posthof, Potgasse, Pötterweg, Praetoriusbogen, Prälat-Schuh-Weg, Praterweg, Prendener Straße, Pretzscher Straße, Prickenweide, Primelstraße, Prinzipalmarkt, Pritzl, Pröbstingstraße, Prof.-Settegast-Weg, Propsteikamp, Proviantstraße, Prüßmannstraße, Pülsener Straße, Püngelerstraße, Pußta, Pützchensweg, Quadtstraße, Queichtalstraße, Querensteder Straße, Quirinsstraße, Rabatzer Straße, Rabenweg, Raddasstraße, Räderloher Weg, Radstädter Weg, Rahel-Straus-Straße, Rahnsdorfer Straße, Raimundstraße, Raitersaicher Straße, Ramhofstraße, Ramsiner Straße, Rangstraße, Rappachstraße, Raschenstraße, Rastorfer Weg, Rathenauallee, Rathsfeld, Ratsteichstraße, Rauberstraße, Rauhöd, Raustetten, Ravolzhäuser Straße, Rebhuhnstraße, Rechtensteinstraße, Reclamstraße, Redmannweg, Reesestraße, Regensburger Platz, Reginhardstraße, Rehbocktal, Rehmkestraße, Reichartstraße, Reichenhardtstraße, Reichsburgstraße, Reifenhofstraße, Reimarstraße, Reinersstraße, Reinhartshofer Straße, Reinoldstraße, Reisenbacher Straße, Reismühler Weg, Reitlingstraße, Rekumer Straße, Rempenstraße, Renften, Renneweg, Rentforter Straße, Reschkestraße, Rethfelder Straße, Reumtengrüner Weg, Reutenen, Reutstraße, Rhedaer Straße, Rheindorferstraße, Rheinischer Ring, Rheinwaldstraße, Rhönhof, Richard-Dehmel-Straße, Richteringhove, Ricklingerstraße, Riedbrunnenstraße, Riedgaustraße, Riedseeweg, Riehler Straße, Rienzistraße, Riesenstraße, Riether Straße, Rimbacher Straße, Rindweg, Ringenwalder Straße, Ringstraße, Rischenweg, Ritterbrunnen, Ritterschaftsstraße, Ritzerstraße, Robert-Blum-Straße, Rochowstraße, Rodaer Weg, Rodemannskamp, Röderfeldweg, Rodinger Straße, Roesoll, Roggenstraße, Rohrachstraße, Rohrheimer Straße, Rohwedderstraße, Rolandufer, Rolloßweg, Römerhügelweg, Rommeestraße, Ronheiderberg, Rönsahler Straße, Rosa-Schubert-Straße, Rosellener Weg, Roseneck, Rosenkavalierplatz, Rosentor, Rösrather Straße, Rossertweg, Roßlaufstraße, Roßwette, Rotdornbogen, Rötelstraße, Rotenhöfer Weg, Roter Weingartenweg, Rothemühleweg, Röthenfeld, Röthgener Straße, Rotkamp, Rottachbergweg, Rotteroderstraße, Rottmannstraße, Rötzweg, Rübenkamp, Rücker Straße, Rüdersdorfer Straße, Rudolffstraße, Rudolphstraße, Rue du Canal, Rüggeberger Straße, Ruhlohkampweg, Ruhrtalstraße, Rumbecker Straße, Rundestraße, Rupert-Bodner-Straße, Ruppiner Straße, Ruschorter Hauptdeich, Rußstraße, Rüthener Weg, Rutzhofen, Saalburgweg, Saarburger Ring, Saathainer Straße, Sachsenhof, Sadelhof, Sagerweg, Sainbacher Straße, Salenhofweg, Salmannsweilergasse, Salzachstraße, Salzgäßchen, Salzunger Tor, Samstagstraße, Sandberg, Sandeler Straße, Sandgrabenweg, Sandkaulstraße, Sandsteinweg, San Gimignano-Weg, Sankt Birgittenhof, Sarataweg, Sassenburger Weg, Sattlergasse, Sauersgang, Sautterweg, Schaarberg, Schachtelhalmweg, Schaeuffelenstraße, Schäferhütte, Schäfflerbachstraße, Schafsteinweg, Schallenkamer Straße, Schanzengarten, Scharfenberger Straße, Scharnhorstring, Scharwinkelweg, Schauenstraße, Scheederstraße, Scheffoldstraße, Scheidestraße, Schellbergstraße, Schelmenlohe, Schenefelder Platz, Schepkerweg, Scherlingstraße, Scheuerleweg, Schichauweg, Schieferöschleweg, Schießberggraben, Schiessstraße, Schiffhornfeld, Schildower Straße, Schillershöhe, Schimmelreiterweg, Schirick, Schlachterstraße, Schlager Straße, Schlattgrabenstraße, Schleglergasse, Schleider Hauptstraße, Schleißweg, Schleswigstraße, Schlichtallee, Schlierenbachstraße, Schloitweg, Schloßbleiche, Schloßgartenweg, Schlößlestraße, Schloßstraße, Schluchterner Straße, Schlutuper Straße, Schmalholz, Schmeil-Weg, Schmettererstraße, Schmidtsgäßchen, Schmiedestrang, Schmittenstraße, Schmücke, Schnampelweg, Schneebergweg, Schneidergässle, Schnellweg, Schnitterwiese, Schoeppinger Straße, Schölling, Schönangerstraße, Schönböckener Straße, Schönebecker Straße, Schöner Blick, Schönheider Straße, Schönmühle, Schönwalder Straße, Schopflocher Straße, Schorfheidestraße, Schosserstraße, Schrägweg, Schrebersiedlung, Schricker Weg, Schrötteringksweg, Schuckertdamm, Schulbuschweg, Schulhof, Schulte-Heuthaus-Straße, Schultheißstraße, Schulzeweg, Schürenkamp, Schüsselkorb, Schüttenkamp, Schützendelle, Schützweg, Schwaber Straße, Schwaketenstraße, Schwammenauel, Schwangauer Straße, Schwarwaldstraße, Schwarze Ellergasse, Schwarzmattweg, Schwedengang, Schweigstraße, Schweitzerstraße, Schwemmstraße, Schweringer Straße, Schwesternstraße, Schwindstraße, Scribastraße, Sebastianstraße, Sedanplatz, Seebenischer Straße, Seegartenstraße, Seehofweg, Seelestraße, Seerandweg, Seewaldsiedlung, Seggerweg, Seidenberger Straße, Seifgrundstraße, Seitengasse, Selhorster Straße, Selm, Semiramisstraße, Sender Straße, Senior-Blumenberg-Gang, Sentastraße, Sernowstraße, Seubersdorf, Sextrostraße, Sichelstraße, Siebenbürgener Straße, Siebenschön, Siedenweg, Siedlung Neuglück, Siegelweg, Siegfriedplatz, Siehdichfürer, Sielower Grenzstraße, Siepen, Sieweckestraße, Silberbachstraße, Silberwaldstraße, Simeonistraße, Simon-Hegele-Straße, Simsseestraße, Sinner Weg, Sitten, Skelinghörn, Smartareal, Sodweg, Söhnleinstraße, Soldnerweg, Sollingstraße, Soltwischredder, Sommerhaldenstraße, Sommersberg, Sonnebergerstraße, Sonnenburger Weg, Sonnenrainweg, Sonniger Weg, Sophie-Charlotte-Platz, Sörensenstraße, Spaakallee, Spannbrink, Späthstraße, Specklstraße, Speldorfer Straße, Sperenberger Straße, Spicherenstraße, Spiekerooger Straße, Spielleite, Spinatweg, Spittaler Straße, Spitzenstraße, Spleet, Spormühle, Spraitbacher Straße, Sprengerstraße, Springorumallee 20, Sredzkistraße, Stadelhofen, Stadskanaal, Stadtgutweg, Stadtplatz, Staffel, Stahlzwingerweg, Stammannstraße, Stangenröder STraße, Stapelager Weg, Starkenburgring, Stattengasse, Staufenberger Straße, Stauseebogen, Stecheraweg, Steegstraße, Stefan-Schwer-Straße, Stegerstraße, Stehrstraße, Steigerweg, Steinachstraße, Steinbecker Meile, Steinbrede, Steinbusch, Steinerne Kirche, Steingarten, Steinhauerstraße, Steinhügel, Steinkopfinsel, Steinmühlstraße, Steinröhrenweg, Steint, Steirische Straße, Stemberg, Stengelstraße, Stephan-Jantzen-Straße, Sterkrader Str.75, Sternsgarten, Stettiner Straße, Steyrer Straße, St. Hubertus, Stiegenweg, Stifterstraße, Stiftungsstraße, Stirnberg, Stockbrunnengasse, Stockheimer Straße, Stocksweg, Stöhrerstraße, Stölpenhof, Stöntzscher Straße, Storchsgasse, Störtebeker Straße, Stranddistelweg, Straße 103, Strauer Straße, Streifenau, Stresemannplatz, Striepentwiete, Ströher Straße, Strousbergstraße, Struppiusstraße, Stubaier Straße, Stüblehof, Stüheweg, Stürzelweg, Südallee, Suder Allee, Suderoder Straße, Südhag, Südparkallee, Suedstraße, Sulburgring, Sülzbachstraße, Sülztorstraße, Sunnerkampstege, Susannenstraße, Suttoner Weg, Sydowstraße, Tabakblütenweg, Tafingerstraße, Talbach, Talpenberger Straße, Tangelner Straße, Tannenberg, Tannenriedweg, Tannweiler, Taschenturmstraße, Taubenbrunnwiesen, Täubners Gässchen, Tauschaer Straße, Teckstraße, Teglinger Hauptstraße, Teichwiese, Tellenweg, Templergraben, Teplinger Straße, Terzkastraße, Teufelsgraben, Texas Avenue, Thaliastraße, Theaterwall, Thelengraben, Theodor-Fetköter-Straße, Theo-Vondano-Straße, Thibautstraße, Thieplatz, Tholeyer Straße, Thomas-Müntzer-Hof, Thorenfeld, Thumberg, Thüringerstraße, Tichatscheckstraße, Tiefende, Tiefwerderweg, Tilbecker Straße 34, Timmenröder Straße, Tippelsberger Straße, Tittmannstraße, Todtmooserstraße, Tomburgstraße, Toni-Schumacher-Straße, Tonweg, Tornaer Straße, Tostedter Damm, Traifelbergstraße, Tränkstraße, Traubelstraße, Trautenaustraße, Treiberstraße, Trennfurter Straße, Treuenbrietzener Straße, Trienter Straße, Trimbergstraße, Trögelsbach, Trooststraße, Trübenbachstraße, Truttenseifen, Tucholskystraße, Tulpenstiege, Türkeistraße, Turmhofschacht, Türrschmidtstraße, Twellbachtal, Über dem Heckenfeld, Überlinger Weg, Udetstraße, Uesener Feldstraße, Uhlbacher Straße, Uhlichs Weg, Ulfilasstraße, Ulmer Weg, Ulrichstraße, Umhausener Weg, Unfaltstraße, unknown, Unteranger, Unter dem Ahorn, Untere Badgasse, Unterecke, Unterer Kalk, Unterhoferstraße, Unterloh, Unterm Hagen, Unternädringen, Unterscheidentaler Straße, Unterwaldener Straße, Up de Rieth, Upsalaer Straße, Urftstraße, Ursula-Haider-Straße, Usinger Straße, Utzweg, Vahrenort, Valentinusberg, van-Brackel-Straße, Varnbülerstraße, Vechtemoe, Veilchengrund, Velgen, Vennegärten, Verdiweg, Veronika-Zorn-Straße, Vetschauer Straße, Victoria-Ufer, Viehstraße, Vierhandbank, Vierzehnheilligen, Viktor-von-Scheffel-Straße, Vilshofener Straße, Vinsebecker Weg, Vital-Daelen-Straße, Vockestraße, Vogelhainweg, Vogelsangsberg, Voglerblick, Vogt-Wells-Kamp, Voigtweg, Völkersgasse, Volksfestplatz, Vollrath-Müller-Straße, Voltmerstraße, von-Behring-Straße, Vondersweg, Vor dem Ahlsberg, Vordere Marktstraße, Vörfken, Vormbrockweg, Vorschlehern, Vorwerksgasse, Voßhorst, Vuvenstraße, Wachberg, Wachteloh, Wackenbergstraße, Wagenburgstraße, Wägnerstraße, Wahnsdorfer Weg, Waisenhausdamm, Walburgerweg, Waldbröler Straße, Waldenburger Straße, Waldgasse, Walditz, Waldowstraße, Waldschlösschenpark, Waldvogtstraße, Wälkershof, Walldorfer Straße, Wallgäßchen, Wallsdorf, Walskamp, Walter-Flex-Straße, Waltersdorfer Chaussee, Walther-Hensel-Straße, Wambacher Mühle, Wandweg, Wannackerweg, Warbruckstraße, Warmbrunner Straße, Warschauer Straße, Wartheweg, Waschweg, Wasserfallstraße, Wassermühlenstraße, Waterfohr, Wattweg, Webersplatz, Weddigenweg, Weetenkamp, Wegenkamp, Weg zum Poethen, Wehlgarten, Wehrener Straße, Weichenbergerstraße, Weidebrunner Gasse, Weidener Viehweg, Weidenweg, Weifaer Straße, Weiherbühlstraße, Weiherwiese, Weiler Weg, Weinberghof, Weinhartstraße, Weinstraße Süd, Weiskircher Straße, Weißekreuzstraße, Weissenhof, Weißer Weg, Weißwaldstraße, Weittenauerstraße, Welfenweg, Wellersbergstraße, Welsbachstraße, Wembersweg, Wendelinusstraße, Wendessener Straße, Wengen, Wenneberg, Wenzelweg, Werderstraße, Werksstraße, Werner-Bock-Straße, Wernhardsberger Straße, Werstener Friedhofsstraße, Werzenkamp, Weserstrandstraße, Wessiszeller Straße, Westendring, Westerender Straße, Westerhoven, Wester Rott, Westfriesenstraße, Westmauer, Wethener Straße, Wetterstraße, Weuenstraße, Weyrauchstraße, Wichertsweg, Wickingstraße, Widmannstal, Wiecker Straße, Wiedenthal, Wiehagen, Wiemersheide, Wienstraße, Wieselerstraße, Wiesengarten, Wiesenteich, Wiesmannstraße, Wigandstaler Straße, Wildbahn, Wildensteinstraße, Wildpoltsweiler, Wilhelm-Ammon-Straße, Wilhelmine-Fey-Straße, Willebadessener Weg, William-Watt-Straße, Willi-Hannen-Straße, Willmannstraße, Willy Brandt Straße, Wilmsberg, Wilzenweg, Winde, Windhorster Weg, Windschläger Straße, Wingertsweg, Winkelschneise, Winnender Straße, Winterfeldstraße, Wintersheide, Wippert, Wirtsfeldstraße, Wismarstraße, Witneystraße, Wittenberger Weg, Wittgensteinstraße, Wittlinger Straße, Witzendorffstraße, Woerthstraße, Wohlwillstraße, Wohrtdrift, Wolfdrossel, Wolfgang-Döring-Straße, Wölfinger Straße, Wolfsbacher Straße, Wolfshainer Straße, Wolfsteiner Straße, Wolkersdorfer Berg, Wollseifener Straße, Wolzogenstraße, Wörishofer Straße, Worpsweder Straße, Wöstewohlde, Wührden, Wülflinger Straße, Wulmstorfer Wiesen, Wupperplatz, Wurmtal, Wurzelbauerstraße, Wüstenweg, Xaveriweg, Zacharias-Löbbecke-Straße, Zamboninistraße, Zaschendorfer Straße, Zauritzweg, Zedernholzweg, Zehntnerstraße, Zeise, Zelgmadenstraße, Zellrüglingen, Zentnerstraße, Zerzabelshofstraße, Zgorzelec, Ziegelhaldenstraße, Ziegelstadel, Ziegerhäuser, Zierkirschenstraße, Zimmerecke, Zinkbergweg, Zinsgrabenweg, Zirndorfer Weg, Zochstraße, Zollkamp, Zorgestraße, Zschonerblick, Zückwolfstraße, Zu den Lüften, Zuger Straße, Zum Alten Speicher, Zur Alten Burg, Züttlinger Straße, Zweiwiedenstraße, Zwickauer Straße, Zwirnerstraße, Zypressenstraße, Zypressenweg]
postal_code: ['#####']
city: [Aalen-Unterkochen, Abens, Abstetterhof, Achern-Mösbach, Adelmannsfelden, Aderstedt, Affalterbach, Aglasterhausen, Ahlum, Ahorntal, Ahrensfelde-Blumberg, Aichach-Grießbeckerzell, Aidling, Aken OT Kleinzerbst, Albshausen, Alerheim, Alfdorf-Rienharz, Alfter, Allenbach Birkenfeld, Allershagen, Almena, Alsleben, Altdorf bei Nürtingen, Altenbach, Altendiez, Altenkrempe, Altenstadt a.d.Waldnaab, Alterthiem, Althengstett, Altlandsberg, Altnuifra, Alt-Schadow, Alvesen - Rosengarten, Alzey, Amerang, Ammerbuch - Pfäffingen, Ampfing, Andechs, Angelse, Ankum, Anröchte, Apen, Apensen, Ardesdorf, Arget, Arnoltice, Arnstadt, Arzbach, Aschaffenburg-Obernau, Aschersleben, Assel, Attendorn, Auerbach Vogtland, Augenarzt, Aukrug, Aurich-Plaggenburg, Aying-Peiss, Babelsberg, Bacharach, Bad Arolsen, Badem, Badenweiler, Badingen, Bahlen, Baiern, Balderschwang, Ballenstedt, Balve-Beckum, Bansin, Barderup, Bargeshagen, Barlohe, Barnisław, Barsinghausen Holtensen, Barum, Bassenheim, Baumholder, Bayreuth-Oberkonnersreuth, Bechtsbüttel, Bedburg, Beelitz OT Wittbrietzen, Beetzendorf, Behringen, Beilngries, Belgern, Bellin, Benediktbeuern, Bensersiel, Bentfeld, Berelin, Berge, Bergfelde, Bergisch Born, Berg Pfalz, Berkenbrück, Berlstedt, Bernau OT Schönow, Bernkastel, Bersteland Niewitz, Beselich-Schupbach, Bettbrunn, Betzigau, Beutersitz, Bexbach-Oberbexbach, Biblis, Biebergemünd, Biedenkopf-Eckelshausen, Bienenbüttel, Bietigheim, Billigheim-Ingenheim, Binz, Birkenau, Birkenwerder, Bischberg, Bischofsmais, Bismark Altmark, Bitburg Biersdorf, Bitzenhofen, Blattersleben, Bleckede OT Radegast, Blender, Blomberg, Blomesche Wildnis, Blunk, Bobingen, Bochum, Bockelkarthen, Bockhorst, Bodenkirchen, Bodnegg, Böhl, Böhmfeld, Bokelberge, Bollberg, Bomlitz, Bonn-Bad Godesberg;Bonn, Borchen-Dörenhagen, Börger, Borgwedel, Borna, Bornheim-Walberberg, Borrentin, Bösdorf, Bostel, Bourheim, Boxdorf, Brackenheim, Brakel, Brandenburg, Brannenburg, Bräunlingen, Brebel, Breege, Breidenbach-Oberdieten, Breitenbronn, Breitenworbis, Bremen-Grohn, Bremm, Bretsch, Brewitz, Brieske, Brilon-Nehden, Brodau, Brokstedt, Bruchhausen-Vilsen, Bruckbach, Brüggen Bracht, Brunnen, Bubach, Büchel, Buchen-Bödigheim, Buchholz in der Nordheide, Büddenstedt, Buggingen, Bühl-Sand, Bülkau, Bunsoh, Burgau, Burgdorf-Otze, Burghasungen, Burgkirchen an der Alz, Burg OT Parchau, Burgstädt, Burgwald-Ernsthausen, Burkersdorf, Burrweiler, Busdorf, Büsum, Buttenheim, Buxheim, Calbe, Calw-Holzbronn, Cappel, Carpin, Cham, Chieming, Claussnitz, Cochem, Colno, Cospeda, Cottbus, Cremlingen, Crispendorf, Cursdorf, Dachrieden, Dahl, Dahme Mark, Dalldorf, Dammdorf, Dangenstorf, Dannstadt, Darmstadt - Arheiligen, Darze, Dattenberg, Dautphetal, Dedensen, Deidesheim, Deißlingen-Lauffen, Delecke, Delmenhost, Derching, Dessau OT Mildensee, Dettenheim, Dettmannsdorf, Deutleben, Deyelsdorf OT Fäsekow, Diedrichshagen, Diemelstadt-Neudorf, Diera-Zehren OT Kleinzadel, Diespeck - Ehe, Dietenheim, Dietfurt an der Altmühl, Dietzhölztal, Dillingen an der Donau, Dinklage, Dirlewang, Dittenheim, Doberschütz, Dodau, Dollerup, Domsühl, Dönsdorf, Dorfen, Dornburg, Dörnitz, Dorstadt, Dortmund-Mengede, Dossenheim, Drage, Dranske, Drebber, Dreieich-Dreieichenhain, Dreileben, Dresden-Cossebaude, Driedorf, Drolshagen-Essinghausen, Dubro, Duesseldorf, Duisburg-Neumühl, Dummerstorf OT Bandelstorf, Dünstekoven, Düren-Gürzenich, Dürnau, Düsseldorf-Reisholz, Ebensäge, Eberhardzell, Ebersbach Sa., Eberstadt, Ebringen, Eching Weixerau, Eckental, Ecknach, Edersleben, Edertal-Edersee, Edesheim, Edinghausen, Egenhausen, Eggenstein-Loepoldshafen, Eging, Ehingen, Ehra-Lessien, Eibelshausen, Eichen, Eicherloh, Eickendorf, Eimen, Einhausen, Eisenach Hörschel, Eisingen, Eitorf-Baleroth, Elbtal, Elkenroth, Ellerhoop, Elmenhorst Lichtenhagen, Elsen, Elsterberg, Eltville, Emden, Emmendingen, Emmingen-Liptingen, Emstek, Engelade, Engelthal, Eningen, Ensdorf, Epfendorf, Epplings, Erdbach, Erftstadt, Erfurt-Mittelhausen, Eriskirch, Erlau, Erligheim, Ernstthal am Rennsteig, Erzbach, Eschenburg, Eschweiler, Eslohe-Bremke, Essem, Essen in Oldenburg, Estenfeld, Ettenheim, Etzelwang, Euskirchen, Eutingen im Gäu, Eydelstedt, Fahrenzhausen, Falkendorf, Fallersleben, Faulück, Feichten, Felde, Fellbach, Fermerswalde, Fichtelberg, Filsum - Lammertsfehn, Finsing Eicherloh, Fischbach, Fischenich, Fladungen, Flein, Flintsbach am Inn, Flörsheim-Dalsheim, Fockbek, Forbach-Rote Lache, Frammersbach, Frankenroda, Franzhäuschen, Frechen-Königsdorf, Freiamt, Freidling, Freigericht-Horbach, Freinberg-Hinding, Freistett, Frensdorf-Herrnsdorf, Freudenburg, Frickenhausen, Friedberg-Wiffertshausen, Friedland, Friedrichsgrün, Friedrichstadt, Frienstedt, Friesoythe-Markhausen, Fritzlar-Obermöllrich, Frohnhausen, Frontenhausen, Fuchstal, Fulda-Südend, Fürstenau, Furth, Füsing, Gachenbach, Gaggenau-Moosbronn, Gailsbach, Gammelby, Gangkofen, Garrel, Gartz Oder, Gäufelden, Gebstedt, Gefell, Gehren, Geilertshausen, Geisenhausen, Geithain, Gelnhausen-Höchst, Gemmrigheim, Gensungen, Gera, Geratskirchen, Geringswalde, Germerswang, Gerolfingen, Gersprenz, Gerswalde, Gessertshausen, Geyer OT, Gierenderhöhe, Giggenhausen, Gilserberg-Schönstein, Girod, Gladenbach-Erdhausen, Glashütte-Reinhardtsgrimma, Glehn, Gleidingen, Glienke, Glowe, Gmund Dürnbach, Gnotzheim, Göda, Göhren-Lebbin, Goldenstedt, Gollwitz, Gomadingen, Gondsroth, Göppingen-Faurndau, Görisried, Görnitz, Gosen-Neu Zittau, Gössenheim, Gotha, Göttingen, Gowens, Grabenstedt, Gräfenberg, Grafenstadl, Grafing bei München, Graitschen, Grän, Grasellenbach, Graupa, Greding, Greifswald, Gressow, Grevenkop, Griebnitz, Grillenberg, Gröden, Grömitz, Großbadegast, Groß-Bieberau, Großbreitenbach, Großdubrau OT Särchen, Großefehn - Spetzerfehn, Großenbrode, Großenkneten Haschenbrook, Großenwörden, Großhartau, Großheide-Ostermoordorf, Grossinzemoos, Großkoschen, Großlohma, Großobringen, Großrinderfeld-Schönfeld, Großweil, Grubschütz, Grünberg, Grundsteinheim, Grünheide, Grünstadt, Gstadt a.Chiemsee, Guderhandviertel, Gulde, Gumpelstadt, Gundelshofen, Günthersdorf, Gussow, Gutach Schwarzwaldbahn, Gut Panker, Gyhum, Haarenberg, Hackenstedt, Hagen a.T.W., Hagermarsch, Hähnichen, Haigerloch-Trillfingen, Haina-Löhlbach, Hainsbach, Haldenwang, Hallenberg, Hallig Langeneß, Haltern, Hambühren, Hamburg-Moorfleet, Hämelerwald, Hammelburg, Hamminkeln-Marienthal, Hanau-Steinheim, Hanfkolm, Hannover-Lahe, Happenbach, Hardegsen OT Trögen, Harlachberg, Harschbach, Hartenthal, Harzgerode, Haselünne, Häslingen, Haßleben, Hatten - Kirchhatten, Hatzenport, Haunsheim, Hausen Wied, Hauzenberg, Havixbeck, Heberndorf, Heckelberg-Brunow, Heerstedt, heidelberg, Heidenheim, Heidesee OT Gräbendorf, Heilbad Heiligenstadt, Heiligenbronn, Heiligenroth, Heiligenstein, Heimbuchenthal, Heinersreuth, Heitersheim, Helgoland, Hemau, Hemmelsdorf, Heng, Henningsdorf, Herbern, Herbrechtingen-Hausen, Herforst, Heringsand, Hermsdorf, Herrenberg, Herrnsdorf, Herten, Herzberg Elster, Herzogenaurach, Hesel - Neuemoor, Hessisch Oldendorf, Hetzerath, Heusenstamm, Hiddenhausen, Hildesheim, Hilgertshausen-Tandern, Hiltenfingen, Himmelpforten, Hinterhof, Hipstedt, Hirschberg-Großsachsen, Hirzenhain, Hochbrück, Hochheimam Main, Höchstädt an der Donau, Hockenheim, Hofbieber, Hofheim am Taunus, Hofstetten, Hohenacker, Hohendilching, Hohenhaslach, Hohenklingen, Hohennauen, Hohenschäftlarn, Hohenstein-Mackenrode, Hohenwarthe, Hohndorf, Hoisdorf, Hollenstedt, Holstenniendorf, Holzdorf, Holzkirchen, Homberg, Honigsee, Hopferbach, Hörafing, Hordorf Cremlingen, Hörlitz, Horn-Bad Meinberg Leopoldstal, Horressen, Hörstel, Hösbach, Höver, Hoyersburg, Huckstorf, Hügelsheim, Hundersingen, Hungen, Hürup, Hüttenberg-Rechtenbach, Ibbenbüren, Idstedt, Iggenhausen, Ihringen, Illingen-Hüttigweiler, Ilmenau-Roda, Ilsfeld, Immenstaad-Kippenhausen, Ingelfingen, Ingstetten, Insingen, Irlenbusch, Iserlohn-Rheinen, Israelsdorf, Ittlingen, Jabelitz, Jägershof, Jameln, Jarplund-Weding, Jeetzel, Jena-Maua, Jesberg Densberg, Jettingen, Joditz, Jonsdorf, Jübberde, Jülich, Jüterbog, Kahl a. Main, Kaisersesch, Kalchreuth, Kalkhorst, Kaltenkirchen, Kamenz-Wiesa, Kammlach, Kandern, Karben, Karlsdorf, Karlsruhe-Grünwettersbach, Karlstein a.Main, Karnin, Kassel, Käterhagen, Kaub, Kehl - Bodersweier, Kelberg, Kell am See, Kemberg, Kempen-Tönisberg, Kerken Aldekerk, Kerpen-Horrem, Ketten, Kicklingen, Kiel-Pries, Kindelbrück, Kirchbarkau, Kirchdorf an der Iller, Kirchentellinsfurt, Kirchheim bei München, Kirchlengern, Kirchseeon, Kirchzarten, Kirtorf, Kittlitz, Klanxbüll, Klein Bennebek, Kleinfurra, Kleinhelfendorf, Kleinrössen, Kleinsteinbach, Klensby, Klinga, Klingenthal, Klöden, Kloster Lehnin, Knappensee-Groß Särchen, Knottenried, Kochel, Köhlen, Kolkwitz, Köln, Köngen, Königsbrück, Königslutter am Elm, Königswartha, Konradsreuth, Konstanz-Fürstenberg, Körbecke, Kornhain, Korvin, Koßdorf, Kotzen OT Kriele, Kraftsdorf-Rüdersdorf, Krauchenwies, Krefeld-Uerdingen, Krempermoor, Kreuzle, Kriebstein OT Grünlichtenberg, Kritzmow, Kronau, Kronwinkl, Kropp-Heidbunge, Krumbeck, Krummin, Kuchen, Kühbach-Winden, Kuhs, Kummerfeld, Künzell, Kürnach, Kurort Seiffen, Küstelberg, Laage, Lachen-Speyerdorf, Lagesbüttel, Laipersdorf, Lampertheim, Landau an der Isar, Landolfshausen, Landshut, Langeloh, Langenberg, Langeneß, Langenhessen, Langenmosen, Langenscheid, Langenzenn, Langhagen, Langwedel, Lappersdorf, Latferde, Lauchhammer, Lauenberg, Lauf a.d. Pegnitz, Laufersweiler, Laussig, Lauterecken, Lautzenhausen, Lechbruck am See, Leer Ostfriesland, Legelshurst, Lehmkuhlen, Lehrte-H.Wald, Leiferde, Leinburg - Entenberg, Leipzig Engelsdorf, Leisnig, Lemförde, Lendsiedel, Lengerich, Lennestadt, Lenzen, Leopoldshafen, Lette, Leuna, Leutesdorf, Leverkusen-Quettingen, Lich-Steinstraß, Lichtenhain, Liebenau, Liebstadt OT Großröhrsdorf, Liepen, Liggersdorf, Limbach-Oberfrohna-Pleißa, Linda-Köthnitz, Lindenberg, Lindern, Lindstedt, Linnich, Linstow, Lippersdorf-Erdmannsdorf, Lippstadt-Esbeck, Löbau, Loch, Loffenau, Lohmar, Lohmen, Lohr a. Main, Loitz, Loop, Lörzweiler, Lotte, Lübbecke-Nettelstedt, Lübbenau Zerkwitz, Lubmin, Lüchow, Luckenwalde OT Kolzenburg, Lüdingworth, Ludwigshafen-Ruchheim, Lüftelberg, Lügde-Wörderfeld, Lüneburg, Lürschau, Lutherstadt Wittenberg, Lutter, Lützen OT Muschwitz, Macherbach, Magdeburg-Reform, Maibrun, Mainaschaff, Mainleus, Mainz-Kastel, Maitenbeth, Mallersdorf-Pfaffenberg, Mambach, Mangolding, Mansbach, March-Hugstetten, Marienfließ, Marienstedt, Markersdorf, Markkleeberg OT Wachau, Marktbreit, Marktl - Stammham, Marktsteft, Marl-Lenkerbeck, Marquardt, Marschall, Martinszell-Oberdorf, Marzling, Masserberg-Heubach, Mattenhofen, Maulbronn - Jungviehweide, Maxhütte Haidhof, Mechterstädt, Meddewade, Meerane, Meesiger, Meine, Meisenheim, Melle Bennien, Mellin, Memmendorf, Mengersgereuth-Hämmern, Meppen, Merklingen, Merzenhausen, Meßdorf, Metten, Metzelthin, Meußließen, Michelsdorf, Middoge, Mieste, Milkersdorf, Miltzow, Mintraching, Missunde, Mittelehrenbach, Mitterfirmiansreut, Moers, Möhnesee, Moisburg, Möllenhagen-Wendorf, Mömbris-Heimbach, Mönchsondheim, Mönkeberg, Monzelfeld, Moormerland - Hatshausen, Moosham, Morgenrot, Mörlenbach, Mosbach-Diedesheim, Möttingen, Müchnen, Mudersbach, Muggendorf, Mühlanger, Mühleithen, Mühlhausen Ortsteil Felchta, Mühltroff, Mülheim-an der Ruhr, Mumpf, München - Oberföhring, Münchweiler, Münsingen, Münster-Roxel, Murchin, Müschenbach, Mützen, Nackenheim, Nakendorf, Nassen, Nauheim, Nausitz, Neckarbischofsheim, Neckarwestheim, Negast, Neindorf, Nennslingen, Nerreth, Nestau, Nettersheim, Neu-Anspach-Hausen, Neubrandenburg-Weitin, Neuburg Mecklenburg, Neudrossenfeld, Neuenburg am Rhein, Neuenhaus, Neuenrade-Blintrop, Neue Tiefe, Neufinsing, Neuharlingersiel, Neuhausen a. d. F., Neuhengstett, Neukirch, Neulögow, Neumarkt-Sankt Veit, Neunkirchen am Brand, Neupotz, Neuruppin, Neuschönburg, Neuss-Holzheim, Neustadt am Main, Neustrelitz, Neuwittenbek, Nichel, Nideggen-Brück, Niederaula, Niederdorfelden, Nieder-Eschbach, Niedergottsau, Niederkassel-Mondorf, Niederlibbach, Niederndorf, Niederpöcking, Niedersonthofen, Niederzissen, Nienborstel, Niepars, Nieuweschans, Nittenau, Nohfelden-Gonnesweiler, Norddeich, Nordenham, Norderstapel, Nordhorn, Nordstrand, Nortrup, Nübel, Nünchritz OT Weißig, Nürtingen, Nuthe-Urstromtal, Oberalteich Bogen, Oberbachern, Oberboihingen, Oberdürrbach, Obererthal, Obergrombach, Oberharnsbach, Oberheldrungen, Oberhonnefeld-Gierend, Oberkail, Oberkrämer OT Bärenklau, Obermaiselstein, Obermotzing, Oberneukirchen, Oberostendorf, Oberreichenbach, Oberscheinfeld, Oberschwarzach, Oberstaufen-Thalkirchdorf, Obersulm-Eschenau, Obertiefenbach, Oberursel Taunus, Oberweschnegg, Oberwolfach, Ochtrup, Odenthal, Ödsbach, Oehna, Oelsnitz Erzgeb., Oerlinghausen, Oettingen, Offenbach-Bieber, Offstein, Ohlstadt, Öhringen - Michelbach, Oldenburg - Alexandersfeld, Oldenswort, Olsberg, Oppendorf, Ormont, Öschelbronn, Osnabrück - Sutthausen, Osten, Ostercappeln-Venne, Osternienburg, Osterwald Oberende, Ostheim, Ostritz, Ostseebad Dierhagen, Ottacker, Ottenhofen, Ottermoor, Ottmaring, Ovelgönne-Loyermoor, Owingen, Padborg, Paderborn-Sande, Palingen, Panketal OT Zepernick, Papendorf OT Sildemow, Parsau, Paska, Pattensen, Pechau, Peickwitz, Peiting, Penig OT Zinnberg, Pepelow, Perscheid, Petershagen-Lahde, Petzow, Pfäffingen, Pfeffingen, Pflach, Pforzheim, Pfrungen, Picher, Pillnitz, Pirmasens-Erlenbrunn, Planegg, Plau, Pleinfeld, Pliening, Plothen, Pogeez, Poing, Polsingen, Poppenhausen, Porta Westfalica-Hausberge, Pößneck, Potsdam-Babelsberg, Potsdam; Grube, Pöttmes, Preetz, Pressath, Preussisch Oldendorf, Prien am Chiemsee, Pristäblich, Pronstorf, Prüm, Pulheim-Brauweiler, Pulsnitz, Puttball, Pyrna, Queienfeld, Quittelsdorf, Rachelsbach, Radeburg, Radolfzell, Raduhn, Rahden, Raisdorf, Ramitz, Ramsen, Ranis, Raschau, Rastede - Hankhausen, Rastenberg, Rathjensdorf, Rattiszell, Rauhenebrach, Rech, Rechtmehring, Redefin, Referinghausen, Regnitzlosau, Rehhorst, Reichenau, Reichenhain, Reiffenhausen, Reinhardshagen, Reinsbüttel, Reischach, Reken, Remels, Remseck, Rengsdorf, Reppenstedt, Rettenbach, Reudnitz, Reutlingen-Sickenhause, Rheda-Wiedenbrück, Rheinbach-Oberdrees, Rheinbreitbach, Rheinhausen, Rheinzabern, Ribnitz Damgarten, Riedböhrungen, Riedering, Riehen, Riepen, Rietberg, Riezlerweg, Ringe Neugnadenfeld, Ringstraße, Risum-Lindholm, Röbel, Rockenhausen-Marienthal, Rodeberg, Röderaue, Rodewisch, Rödinghausen, Röhl, Rohr i.NB, Roitzsch, Römerstein, Ronnenberg, Rosdorf, Rosenfeld, Rosenthal-Bielatal, Roßbach, Roßwag, Rostock-Krummendorf, Rot am See, Rothemann, Rothenberg, Rothenburg Oberlausitz, Rothesütte, Rott am Inn, Rottenburg, Röttingen, Rövershagen, Rüde, Rüdesheim am Rhein, Ruhla, Rülzheim, Ruppertsberg, Rußheim, Rüthen-Oestereiden, Saalfeld Gorndorf, Sachsenburg, Saffig, Salderatzen, Salz, Salzhemmendorf, Samerberg, Sande, Sandhatten, Sankt Andreasberg, Sasbach, Sassnitz, Sattenhausen, Saupsdorf, Schacha, Schafstädt, Schallstadt, Scharfenberg, Schattin, Scheeßel-Abbendorf, Schelldorf, Schenkendöbern, Scherreuth, Schieder, Schifdorf, Schillingsfürst, Schinne, Schköna, Schlangen, Schleid, Schlesen, Schlieckau, Schlitz, Schloß Holte-Stukenbrock, Schlüchtern-Herolz, Schmalkalden OT Asbach, Schmersau, Schmiedeberg, Schmitten-Treisberg, Schnaittach-Hormersdorf, Schneizlreuth, Schöanich, Schöllkrippen, Schönau- Gebüg, Schönbrunn im Steigerwald, Schöneck, Schönewalde, Schönheide, Schönstedt, Schönwohld, Schöps, Schotten, Schrobenhausen-Sandizell, Schulpforte, Schüttorf, Schwäbisch Hall, Schwadenloch, Schwalbach-Elm, Schwandorf, Schwanstetten, Schwarzburg, Schwarzenberg, Schwebheim, Schweinfurt, Schwentinental, Schwerte, Schwiepke, Sechendorfq, Seebad Heringdsdorf, Seefeld, Seeheim- Jugenheim, Seelze, Seeshaupt, Seewald-Besenfeld, Seibersdorf am Inn, Selb, Selk, Selpin, Senden-Bösensell, Sennewitz, Seßlach, Seybothenreuth, Siebeldingen, Siegburg, Siegertsbrunn, Sienau, Sieversdorf, Sigmaringen-Laiz, Simmelsdorf, Simmersfeld, Sindorf, Sinn, Sinzig, Sitzenroda, Sohland, solingen, Soltau, Sommertshausen, Sonnefeld - Hassenberg, Sophienhof, Soven, Spantekow, Speinshart, Spiekeroog, Spreckel, Sprötze, Stadtallendorf, Stadtoldendorf, Stahnsdorf OT Güterfelde, Standenbühl, Starsow, Staufen, St. Blasien, Stedtfeld, Steibis, Steinau, Steinbach Taunus, Steinen, Steinhagen-Brockhagen, Steinigtwolmsdorf, Steißlingen, Steppach, Stettfeld, Stimpfach-Randenweiler, Stockach-Hoppetenzell, Stockstadt am Main, Stolberg-Breinig, Stolpen OT Helmsdorf, Stötten, Straach, Straßberg, Straubing, Streichmühle, Ströhen, Stubben, Stupferich, Stuttgart Bad Cannstatt, Stützengrün, Südbrookmerland, Süderholz, Sufferloh, Sulz, Sulzberg-Kühbach, Sülzetal, Sünching, Sünna, Süssen, Sylbach, Tacherting Lengloh, Talheim, Tangerhütte OT Mahlpfuhl, Tannenbergsthal, Tarnow, Tauche OT Ranzig, Tautendorf, Tegernau, Teisendorf, Temmen-Ringen, Teschow, Tetz, Teutschenthal OT Angersdorf, Thalheim, Tharandt, Thelkow, Thiendorf, Tholey-Bergweiler, Thülsfelde, Thurm, Tiefenthal, Timmendorfer Strand, Titmaringhausen, Todesfelde, Tökendorf, Töpen Mödlareuth, Tosterglope, Traisa, Trassenheide, Travenbrück, Trebgast, Treinfeld, Treppendorf, Tribsees, Triebischtal OT Groitzsch, Trier-Eitelsbach, Triftern, Trittau, Troisdorf-Eschmar, Trollenhagen, Tschernitz, Tuntenhausen, Tutow, Twistetal, Überlinen, Uchte, Udersleben, Uengershausen, Uhingen, Uhsmannsdorf, Ulm-Seligweile, Ummanz-Haide, Unna, Unterbachern, Unterdolling, Untergriesbach, Unterheinriet, Unterklausen, Untermünkheim, Unterreith, Unterschneidheim, Unterwattenbach, Upahl, Uplengen - Neudorf, Ursberg, Uslar, Utting, Varnsdorf, Veinau, Velden, Velpke, Verden Eitze, Vestenbergsgreuth, Vettlehoven, Vielau, Viersen-Dülken, Vils, Virneburg, Voerde, Vohburg, Voigtstedt, Volkfien, Vollmersweiler, Vomp, Vorrade, Waakirchen, Wachsenburggemeinde, Waddewarden, Wagenfeld-Ströhen, Waging a.S, Wahnsdorf, Waitzdorf, Waldachtal, Waldbuettelbrunn, Walderbach, Waldkappel, Waldmünchen, Waldstetten, Walldürn-Rippberg, Wallersdorf, Wallstawe, Waltenhausen, Walzbachtal-Wössingen, WAngen, Wanhöden, Warbsen, Wardow, Warmsen, Warstein, Warthausen, Wasserburg, Wasserzell, Waxweiler, Wedel, Wega, Wehr, Weibern, Weidenau, Weiden in der Oberpfalz, Weihenzell, Weilach, Weiler, Weilheim in Oberbayern, Weimar Lahn, Weinheim-Rippenweier, Weischlitz, Weissach im Tal, Weißenburg in Bayern, Weißensberg, Weißwasser, Weiterstadt-Braunshardt, Welldorf, Welschneudorf, Wendeburg, Wendisch Rietz, Wennigsen, Wensin, Werben OT Räbel, Werder Havel OT Petzow, Wernau, Wernsdorf, Werther b. Nordhausen, Wesendorf, Wessobrunn, Westerdeichstrich, Westerkappeln Velpe, Westerstede - Eggeloge, Westerstetten, Wetschen, Wetter Ruhr, Wetzendorf, Weyarn, Wiblingen, Wieda, Wiefelstede - Borbeck, Wiek, Wiesau, Wiesbaden-Schierstein, Wiesenfeld, Wiesenttal, Wiggensbach, Wildenau, Wilhelmsdorf, Wiligrad, Willingen Westerwald, Wilnsdorf, Wilstedt, Windeck-Au, Windischeschenbach, Winkelhaid, Winningen, Winterberg-Mollseifen, Winzerhausen, Wirges, Wistedt, Wittenberge OT Hinzdorf, Wittgensdorf, Wittmar, Witzighausen, Wohlsdorf, Wöhrden, Wolfen, Wolfsbehringen, Wolfshagen, Wolkramshausen, Wolpertstetten, Worbis, Wörrstadt, Wörth-Maximiliansau, Wriedel, Wulfen, Wulfshagenerhütten, Wunstorf, Wuppertal-Schöller, Würselen, Wussegel, Wusterhusen OT Gustebin, Wutha-Farnroda, Xanten-Lüttingen, Zackermühle, Zargleben, Zedtlitz, Zeil am Main, Zell a.d.Mosel, Zerbst, Zescha, Zeven, Ziegenhagen, Zierzow, Zimmern, Zittau, Zöllmen, Zotzenbach, Zschorna, Zurow, Zweibrücken, Zwiefelhof, Zwota]
country: [Deutschland]
personalEmails: [ gmail.com, yahoo.com, yahoo.de, gmx.de, gmx.com, web.de, t-online.de ]
telephone_number_formats: ["0#########"]
text: "Ihr naht euch wieder, schwankende Gestalten, Die früh sich einst dem trüben Blick gezeigt. Versuch ich wohl, euch diesmal festzuhalten? Fühl ich mein Herz noch jenem Wahn geneigt? Ihr drängt euch zu! nun gut, so mögt ihr walten, Wie ihr aus Dunst und Nebel um mich steigt; Mein Busen fühlt sich jugendlich erschüttert Vom Zauberhauch, der euren Zug umwittert. Ihr bringt mit euch die Bilder froher Tage, Und manche liebe Schatten steigen auf; Gleich einer alten, halbverklungnen Sage Kommt erste Lieb und Freundschaft mit herauf; Der Schmerz wird neu, es wiederholt die Klage Des Lebens labyrinthisch irren Lauf, Und nennt die Guten, die, um schöne Stunden Vom Glück getäuscht, vor mir hinweggeschwunden. Sie hören nicht die folgenden Gesänge, Die Seelen, denen ich die ersten sang; Zerstoben ist das freundliche Gedränge, Verklungen, ach! der erste Widerklang. Mein Lied ertönt der unbekannten Menge, Ihr Beifall selbst macht meinem Herzen bang, Und was sich sonst an meinem Lied erfreuet, Wenn es noch lebt, irrt in der Welt zerstreuet. Und mich ergreift ein längst entwöhntes Sehnen Nach jenem stillen, ernsten Geisterreich, Es schwebet nun in unbestimmten Tönen Mein lispelnd Lied, der Äolsharfe gleich, Ein Schauer faßt mich, Träne folgt den Tränen, Das strenge Herz, es fühlt sich mild und weich; Was ich besitze, seh ich wie im Weiten, Und was verschwand, wird mir zu Wirklichkeiten."
language: 'DE'
================================================
FILE: src/main/resources/jfairy_en.yml
================================================
alphabet: abcdefghijklmnopqrstuvwxyz
domains: [com, eu, biz]
firstNames: {
male: [Aaron, Adam, Adrian, Aiden, Alex, Alexander, Andrew, Angel, Anthony, Austin, Ayden, Benjamin, Bentley, Blake, Brandon, Brayden, Brody, Bryson, Caleb, Cameron, Carlos, Carson, Carter, Charles, Chase, Christian, Christopher, Colton, Connor, Cooper, Damian, Daniel, David, Dominic, Dylan, Easton, Eli, Elijah, Ethan, Evan, Gabriel, Gavin, Grayson, Henry, Hudson, Hunter, Ian, Isaac, Isaiah, Jace, Jack, Jackson, Jacob, James, Jason, Jaxon, Jayden, Jeremiah, John, Jonathan, Jordan, Jose, Joseph, Joshua, Josiah, Juan, Julian, Justin, Kayden, Kevin, Landon, Levi, Liam, Logan, Lucas, Luis, Luke, Mason, Matthew, Michael, Nathan, Nathaniel, Nicholas, Noah, Nolan, Oliver, Owen, Parker, Robert, Ryan, Ryder, Samuel, Sebastian, Thomas, Tristan, Tyler, William, Wyatt, Xavier, Zachary],
female: [Aaliyah, Abigail, Addison, Alexa, Alexandra, Alexis, Allison, Alyssa, Amelia, Andrea, Anna, Annabelle, Aria, Ariana, Arianna, Ashley, Aubree, Aubrey, Audrey, Autumn, Ava, Avery, Bailey, Bella, Brianna, Brooklyn, Camila, Caroline, Charlotte, Chloe, Claire, Elizabeth, Ella, Ellie, Emily, Emma, Eva, Evelyn, Faith, Gabriella, Genesis, Gianna, Grace, Hailey, Hannah, Harper, Isabella, Jasmine, Jocelyn, Julia, Katherine, Kayla, Kaylee, Kennedy, Khloe, Kimberly, Kylie, Lauren, Layla, Leah, Lillian, Lily, London, Lucy, Lydia, Mackenzie, Madeline, Madelyn, Madison, Makayla, Maya, Melanie, Mia, Molly, Morgan, Naomi, Natalie, Nevaeh, Olivia, Peyton, Piper, Reagan, Riley, Samantha, Sarah, Savannah, Scarlett, Serenity, Skylar, Sofia, Sophia, Sophie, Stella, Sydney, Taylor, Trinity, Victoria, Violet, Zoe, Zoey]
}
lastNames: {
male: [Abbott, Acevedo, Acosta, Adams, Adkins, Aguilar, Aguirre, Albert, Alexander, Alford, Allen, Allison, Alston, Alvarado, Alvarez, Anderson, Andrews, Anthony, Armstrong, Arnold, Ashley, Atkins, Atkinson, Austin, Avery, Avila, Ayala, Ayers, Bailey, Baird, Baker, Baldwin, Ball, Ballard, Banks, Barber, Barker, Barlow, Barnes, Barnett, Barr, Barrera, Barrett, Barron, Barry, Bartlett, Barton, Bass, Bates, Battle, Bauer, Baxter, Beach, Bean, Beard, Beasley, Beck, Becker, Bell, Bender, Benjamin, Bennett, Benson, Bentley, Benton, Berg, Berger, Bernard, Berry, Best, Bird, Bishop, Black, Blackburn, Blackwell, Blair, Blake, Blanchard, Blankenship, Blevins, Bolton, Bond, Bonner, Booker, Boone, Booth, Bowen, Bowers, Bowman, Boyd, Boyer, Boyle, Bradford, Bradley, Bradshaw, Brady, Branch, Bray, Brennan, Brewer, Bridges, Briggs, Bright, Britt, Brock, Brooks, Brown, Browning, Bruce, Bryan, Bryant, Buchanan, Buck, Buckley, Buckner, Bullock, Burch, Burgess, Burke, Burks, Burnett, Burns, Burris, Burt, Burton, Bush, Butler, Byers, Byrd, Cabrera, Cain, Calderon, Caldwell, Calhoun, Callahan, Camacho, Cameron, Campbell, Campos, Cannon, Cantrell, Cantu, Cardenas, Carey, Carlson, Carney, Carpenter, Carr, Carrillo, Carroll, Carson, Carter, Carver, Case, Casey, Cash, Castaneda, Castillo, Castro, Cervantes, Chambers, Chan, Chandler, Chaney, Chang, Chapman, Charles, Chase, Chavez, Chen, Cherry, Christensen, Christian, Church, Clark, Clarke, Clay, Clayton, Clements, Clemons, Cleveland, Cline, Cobb, Cochran, Coffey, Cohen, Cole, Coleman, Collier, Collins, Colon, Combs, Compton, Conley, Conner, Conrad, Contreras, Conway, Cook, Cooke, Cooley, Cooper, Copeland, Cortez, Cote, Cotton, Cox, Craft, Craig, Crane, Crawford, Crosby, Cross, Cruz, Cummings, Cunningham, Curry, Curtis, Dale, Dalton, Daniel, Daniels, Daugherty, Davenport, David, Davidson, Davis, Dawson, Day, Dean, Decker, Dejesus, Delacruz, Delaney, Deleon, Delgado, Dennis, Diaz, Dickerson, Dickson, Dillard, Dillon, Dixon, Dodson, Dominguez, Donaldson, Donovan, Dorsey, Dotson, Douglas, Downs, Doyle, Drake, Dudley, Duffy, Duke, Duncan, Dunlap, Dunn, Duran, Durham, Dyer, Eaton, Edwards, Elliott, Ellis, Ellison, Emerson, England, English, Erickson, Espinoza, Estes, Estrada, Evans, Everett, Ewing, Farley, Farmer, Farrell, Faulkner, Ferguson, Fernandez, Ferrell, Fields, Figueroa, Finch, Finley, Fischer, Fisher, Fitzgerald, Fitzpatrick, Fleming, Fletcher, Flores, Flowers, Floyd, Flynn, Foley, Forbes, Ford, Foreman, Foster, Fowler, Fox, Francis, Franco, Frank, Franklin, Franks, Frazier, Frederick, Freeman, French, Frost, Fry, Frye, Fuentes, Fuller, Fulton, Gaines, Gallagher, Gallegos, Galloway, Gamble, Garcia, Gardner, Garner, Garrett, Garrison, Garza, Gates, Gay, Gentry, George, Gibbs, Gibson, Gilbert, Giles, Gill, Gillespie, Gilliam, Gilmore, Glass, Glenn, Glover, Goff, Golden, Gomez, Gonzales, Gonzalez, Good, Goodman, Goodwin, Gordon, Gould, Graham, Grant, Graves, Gray, Green, Greene, Greer, Gregory, Griffin, Griffith, Grimes, Gross, Guerra, Guerrero, Guthrie, Gutierrez, Guy, Guzman, Hahn, Hale, Haley, Hall, Hamilton, Hammond, Hampton, Hancock, Haney, Hansen, Hanson, Hardin, Harding, Hardy, Harmon, Harper, Harrell, Harrington, Harris, Harrison, Hart, Hartman, Harvey, Hatfield, Hawkins, Hayden, Hayes, Haynes, Hays, Head, Heath, Hebert, Henderson, Hendricks, Hendrix, Henry, Hensley, Henson, Herman, Hernandez, Herrera, Herring, Hess, Hester, Hewitt, Hickman, Hicks, Higgins, Hill, Hines, Hinton, Hobbs, Hodge, Hodges, Hoffman, Hogan, Holcomb, Holden, Holder, Holland, Holloway, Holman, Holmes, Holt, Hood, Hooper, Hoover, Hopkins, Hopper, Horn, Horne, Horton, House, Houston, Howard, Howe, Howell, Hubbard, Huber, Hudson, Huff, Huffman, Hughes, Hull, Humphrey, Hunt, Hunter, Hurley, Hurst, Hutchinson, Hyde, Ingram, Irwin, Jackson, Jacobs, Jacobson, James, Jarvis, Jefferson, Jenkins, Jennings, Jensen, Jimenez, Johns, Johnson, Johnston, Jones, Jordan, Joseph, Joyce, Joyner, Juarez, Justice, Kane, Kaufman, Keith, Keller, Kelley, Kelly, Kemp, Kennedy, Kent, Kerr, Key, Kidd, Kim, King, Kinney, Kirby, Kirk, Kirkland, Klein, Kline, Knapp, Knight, Knowles, Knox, Koch, Kramer, Lamb, Lambert, Lancaster, Landry, Lane, Lang, Langley, Lara, Larsen, Larson, Lawrence, Lawson, Le, Leach, Leblanc, Lee, Leon, Leonard, Lester, Levine, Levy, Lewis, Lindsay, Lindsey, Little, Livingston, Lloyd, Logan, Long, Lopez, Lott, Love, Lowe, Lowery, Lucas, Luna, Lynch, Lynn, Lyons, Macdonald, Macias, Mack, Madden, Maddox, Maldonado, Malone, Mann, Manning, Marks, Marquez, Marsh, Marshall, Martin, Martinez, Mason, Massey, Mathews, Mathis, Matthews, Maxwell, May, Mayer, Maynard, Mayo, Mays, Mcbride, Mccall, Mccarthy, Mccarty, Mcclain, Mcclure, Mcconnell, Mccormick, Mccoy, Mccray, Mccullough, Mcdaniel, Mcdonald, Mcdowell, Mcfadden, Mcfarland, Mcgee, Mcgowan, Mcguire, Mcintosh, Mcintyre, Mckay, Mckee, Mckenzie, Mckinney, Mcknight, Mclaughlin, Mclean, Mcleod, Mcmahon, Mcmillan, Mcneil, Mcpherson, Meadows, Medina, Mejia, Melendez, Melton, Mendez, Mendoza, Mercado, Mercer, Merrill, Merritt, Meyer, Meyers, Michael, Middleton, Miles, Miller, Mills, Miranda, Mitchell, Molina, Monroe, Montgomery, Montoya, Moody, Moon, Mooney, Moore, Morales, Moran, Moreno, Morgan, Morin, Morris, Morrison, Morrow, Morse, Morton, Moses, Mosley, Moss, Mueller, Mullen, Mullins, Munoz, Murphy, Murray, Myers, Nash, Navarro, Neal, Nelson, Newman, Newton, Nguyen, Nichols, Nicholson, Nielsen, Nieves, Nixon, Noble, Noel, Nolan, Norman, Norris, Norton, Nunez, Obrien, Ochoa, Oconnor, Odom, Odonnell, Oliver, Olsen, Olson, Oneal, Oneil, Oneill, Orr, Ortega, Ortiz, Osborn, Osborne, Owen, Owens, Pace, Pacheco, Padilla, Page, Palmer, Park, Parker, Parks, Parrish, Parsons, Pate, Patel, Patrick, Patterson, Patton, Paul, Payne, Pearson, Peck, Pena, Pennington, Perez, Perkins, Perry, Peters, Petersen, Peterson, Petty, Phelps, Phillips, Pickett, Pierce, Pittman, Pitts, Pollard, Poole, Pope, Porter, Potter, Potts, Powell, Powers, Pratt, Preston, Price, Prince, Pruitt, Puckett, Pugh, Quinn, Ramirez, Ramos, Ramsey, Randall, Randolph, Rasmussen, Ratliff, Ray, Raymond, Reed, Reese, Reeves, Reid, Reilly, Reyes, Reynolds, Rhodes, Rice, Rich, Richard, Richards, Richardson, Richmond, Riddle, Riggs, Riley, Rios, Rivas, Rivera, Rivers, Roach, Robbins, Roberson, Roberts, Robertson, Robinson, Robles, Rocha, Rodgers, Rodriguez, Rodriquez, Rogers, Rojas, Rollins, Roman, Romero, Rosa, Rosales, Rosario, Rose, Ross, Roth, Rowe, Rowland, Roy, Ruiz, Rush, Russell, Russo, Rutledge, Ryan, Salas, Salazar, Salinas, Sampson, Sanchez, Sanders, Sandoval, Santana, Santiago, Santos, Sargent, Saunders, Savage, Sawyer, Schmidt, Schneider, Schroeder, Schultz, Schwartz, Scott, Sears, Sellers, Serrano, Sexton, Shaffer, Shannon, Sharp, Sharpe, Shaw, Shelton, Shepard, Shepherd, Sheppard, Sherman, Shields, Short, Silva, Simmons, Simon, Simpson, Sims, Singleton, Skinner, Slater, Sloan, Small, Smith, Snider, Snow, Snyder, Solis, Solomon, Sosa, Soto, Sparks, Spears, Spence, Spencer, Stafford, Stanley, Stanton, Stark, Steele, Stein, Stephens, Stephenson, Stevens, Stevenson, Stewart, Stokes, Stone, Stout, Strickland, Strong, Stuart, Suarez, Sullivan, Summers, Sutton, Swanson, Sweeney, Sweet, Sykes, Talley, Tanner, Tate, Taylor, Terrell, Terry, Thomas, Thompson, Thornton, Tillman, Todd, Torres, Townsend, Tran, Travis, Trevino, Trujillo, Tucker, Turner, Tyler, Tyson, Underwood, Valdez, Valencia, Valentine, Valenzuela, Vance, Vang, Vargas, Vasquez, Vaughan, Vaughn, Vazquez, Vega, Velasquez, Velazquez, Velez, Villarreal, Vincent, Vinson, Wade, Wagner, Walker, Wall, Wallace, Waller, Walls, Walsh, Walter, Walters, Walton, Ward, Ware, Warner, Warren, Washington, Waters, Watkins, Watson, Watts, Weaver, Webb, Weber, Webster, Weeks, Weiss, Welch, Wells, West, Wheeler, Whitaker, White, Whitehead, Whitfield, Whitley, Whitney, Wiggins, Wilcox, Wilder, Wiley, Wilkerson, Wilkins, Wilkinson, William, Williams, Williamson, Willis, Wilson, Winters, Wise, Witt, Wolf, Wolfe, Wong, Wood, Woodard, Woods, Woodward, Wooten, Workman, Wright, Wyatt, Wynn, Yang, Yates, York, Young, Zamora, Zimmerman],
female: [Abbott, Acevedo, Acosta, Adams, Adkins, Aguilar, Aguirre, Albert, Alexander, Alford, Allen, Allison, Alston, Alvarado, Alvarez, Anderson, Andrews, Anthony, Armstrong, Arnold, Ashley, Atkins, Atkinson, Austin, Avery, Avila, Ayala, Ayers, Bailey, Baird, Baker, Baldwin, Ball, Ballard, Banks, Barber, Barker, Barlow, Barnes, Barnett, Barr, Barrera, Barrett, Barron, Barry, Bartlett, Barton, Bass, Bates, Battle, Bauer, Baxter, Beach, Bean, Beard, Beasley, Beck, Becker, Bell, Bender, Benjamin, Bennett, Benson, Bentley, Benton, Berg, Berger, Bernard, Berry, Best, Bird, Bishop, Black, Blackburn, Blackwell, Blair, Blake, Blanchard, Blankenship, Blevins, Bolton, Bond, Bonner, Booker, Boone, Booth, Bowen, Bowers, Bowman, Boyd, Boyer, Boyle, Bradford, Bradley, Bradshaw, Brady, Branch, Bray, Brennan, Brewer, Bridges, Briggs, Bright, Britt, Brock, Brooks, Brown, Browning, Bruce, Bryan, Bryant, Buchanan, Buck, Buckley, Buckner, Bullock, Burch, Burgess, Burke, Burks, Burnett, Burns, Burris, Burt, Burton, Bush, Butler, Byers, Byrd, Cabrera, Cain, Calderon, Caldwell, Calhoun, Callahan, Camacho, Cameron, Campbell, Campos, Cannon, Cantrell, Cantu, Cardenas, Carey, Carlson, Carney, Carpenter, Carr, Carrillo, Carroll, Carson, Carter, Carver, Case, Casey, Cash, Castaneda, Castillo, Castro, Cervantes, Chambers, Chan, Chandler, Chaney, Chang, Chapman, Charles, Chase, Chavez, Chen, Cherry, Christensen, Christian, Church, Clark, Clarke, Clay, Clayton, Clements, Clemons, Cleveland, Cline, Cobb, Cochran, Coffey, Cohen, Cole, Coleman, Collier, Collins, Colon, Combs, Compton, Conley, Conner, Conrad, Contreras, Conway, Cook, Cooke, Cooley, Cooper, Copeland, Cortez, Cote, Cotton, Cox, Craft, Craig, Crane, Crawford, Crosby, Cross, Cruz, Cummings, Cunningham, Curry, Curtis, Dale, Dalton, Daniel, Daniels, Daugherty, Davenport, David, Davidson, Davis, Dawson, Day, Dean, Decker, Dejesus, Delacruz, Delaney, Deleon, Delgado, Dennis, Diaz, Dickerson, Dickson, Dillard, Dillon, Dixon, Dodson, Dominguez, Donaldson, Donovan, Dorsey, Dotson, Douglas, Downs, Doyle, Drake, Dudley, Duffy, Duke, Duncan, Dunlap, Dunn, Duran, Durham, Dyer, Eaton, Edwards, Elliott, Ellis, Ellison, Emerson, England, English, Erickson, Espinoza, Estes, Estrada, Evans, Everett, Ewing, Farley, Farmer, Farrell, Faulkner, Ferguson, Fernandez, Ferrell, Fields, Figueroa, Finch, Finley, Fischer, Fisher, Fitzgerald, Fitzpatrick, Fleming, Fletcher, Flores, Flowers, Floyd, Flynn, Foley, Forbes, Ford, Foreman, Foster, Fowler, Fox, Francis, Franco, Frank, Franklin, Franks, Frazier, Frederick, Freeman, French, Frost, Fry, Frye, Fuentes, Fuller, Fulton, Gaines, Gallagher, Gallegos, Galloway, Gamble, Garcia, Gardner, Garner, Garrett, Garrison, Garza, Gates, Gay, Gentry, George, Gibbs, Gibson, Gilbert, Giles, Gill, Gillespie, Gilliam, Gilmore, Glass, Glenn, Glover, Goff, Golden, Gomez, Gonzales, Gonzalez, Good, Goodman, Goodwin, Gordon, Gould, Graham, Grant, Graves, Gray, Green, Greene, Greer, Gregory, Griffin, Griffith, Grimes, Gross, Guerra, Guerrero, Guthrie, Gutierrez, Guy, Guzman, Hahn, Hale, Haley, Hall, Hamilton, Hammond, Hampton, Hancock, Haney, Hansen, Hanson, Hardin, Harding, Hardy, Harmon, Harper, Harrell, Harrington, Harris, Harrison, Hart, Hartman, Harvey, Hatfield, Hawkins, Hayden, Hayes, Haynes, Hays, Head, Heath, Hebert, Henderson, Hendricks, Hendrix, Henry, Hensley, Henson, Herman, Hernandez, Herrera, Herring, Hess, Hester, Hewitt, Hickman, Hicks, Higgins, Hill, Hines, Hinton, Hobbs, Hodge, Hodges, Hoffman, Hogan, Holcomb, Holden, Holder, Holland, Holloway, Holman, Holmes, Holt, Hood, Hooper, Hoover, Hopkins, Hopper, Horn, Horne, Horton, House, Houston, Howard, Howe, Howell, Hubbard, Huber, Hudson, Huff, Huffman, Hughes, Hull, Humphrey, Hunt, Hunter, Hurley, Hurst, Hutchinson, Hyde, Ingram, Irwin, Jackson, Jacobs, Jacobson, James, Jarvis, Jefferson, Jenkins, Jennings, Jensen, Jimenez, Johns, Johnson, Johnston, Jones, Jordan, Joseph, Joyce, Joyner, Juarez, Justice, Kane, Kaufman, Keith, Keller, Kelley, Kelly, Kemp, Kennedy, Kent, Kerr, Key, Kidd, Kim, King, Kinney, Kirby, Kirk, Kirkland, Klein, Kline, Knapp, Knight, Knowles, Knox, Koch, Kramer, Lamb, Lambert, Lancaster, Landry, Lane, Lang, Langley, Lara, Larsen, Larson, Lawrence, Lawson, Le, Leach, Leblanc, Lee, Leon, Leonard, Lester, Levine, Levy, Lewis, Lindsay, Lindsey, Little, Livingston, Lloyd, Logan, Long, Lopez, Lott, Love, Lowe, Lowery, Lucas, Luna, Lynch, Lynn, Lyons, Macdonald, Macias, Mack, Madden, Maddox, Maldonado, Malone, Mann, Manning, Marks, Marquez, Marsh, Marshall, Martin, Martinez, Mason, Massey, Mathews, Mathis, Matthews, Maxwell, May, Mayer, Maynard, Mayo, Mays, Mcbride, Mccall, Mccarthy, Mccarty, Mcclain, Mcclure, Mcconnell, Mccormick, Mccoy, Mccray, Mccullough, Mcdaniel, Mcdonald, Mcdowell, Mcfadden, Mcfarland, Mcgee, Mcgowan, Mcguire, Mcintosh, Mcintyre, Mckay, Mckee, Mckenzie, Mckinney, Mcknight, Mclaughlin, Mclean, Mcleod, Mcmahon, Mcmillan, Mcneil, Mcpherson, Meadows, Medina, Mejia, Melendez, Melton, Mendez, Mendoza, Mercado, Mercer, Merrill, Merritt, Meyer, Meyers, Michael, Middleton, Miles, Miller, Mills, Miranda, Mitchell, Molina, Monroe, Montgomery, Montoya, Moody, Moon, Mooney, Moore, Morales, Moran, Moreno, Morgan, Morin, Morris, Morrison, Morrow, Morse, Morton, Moses, Mosley, Moss, Mueller, Mullen, Mullins, Munoz, Murphy, Murray, Myers, Nash, Navarro, Neal, Nelson, Newman, Newton, Nguyen, Nichols, Nicholson, Nielsen, Nieves, Nixon, Noble, Noel, Nolan, Norman, Norris, Norton, Nunez, Obrien, Ochoa, Oconnor, Odom, Odonnell, Oliver, Olsen, Olson, Oneal, Oneil, Oneill, Orr, Ortega, Ortiz, Osborn, Osborne, Owen, Owens, Pace, Pacheco, Padilla, Page, Palmer, Park, Parker, Parks, Parrish, Parsons, Pate, Patel, Patrick, Patterson, Patton, Paul, Payne, Pearson, Peck, Pena, Pennington, Perez, Perkins, Perry, Peters, Petersen, Peterson, Petty, Phelps, Phillips, Pickett, Pierce, Pittman, Pitts, Pollard, Poole, Pope, Porter, Potter, Potts, Powell, Powers, Pratt, Preston, Price, Prince, Pruitt, Puckett, Pugh, Quinn, Ramirez, Ramos, Ramsey, Randall, Randolph, Rasmussen, Ratliff, Ray, Raymond, Reed, Reese, Reeves, Reid, Reilly, Reyes, Reynolds, Rhodes, Rice, Rich, Richard, Richards, Richardson, Richmond, Riddle, Riggs, Riley, Rios, Rivas, Rivera, Rivers, Roach, Robbins, Roberson, Roberts, Robertson, Robinson, Robles, Rocha, Rodgers, Rodriguez, Rodriquez, Rogers, Rojas, Rollins, Roman, Romero, Rosa, Rosales, Rosario, Rose, Ross, Roth, Rowe, Rowland, Roy, Ruiz, Rush, Russell, Russo, Rutledge, Ryan, Salas, Salazar, Salinas, Sampson, Sanchez, Sanders, Sandoval, Santana, Santiago, Santos, Sargent, Saunders, Savage, Sawyer, Schmidt, Schneider, Schroeder, Schultz, Schwartz, Scott, Sears, Sellers, Serrano, Sexton, Shaffer, Shannon, Sharp, Sharpe, Shaw, Shelton, Shepard, Shepherd, Sheppard, Sherman, Shields, Short, Silva, Simmons, Simon, Simpson, Sims, Singleton, Skinner, Slater, Sloan, Small, Smith, Snider, Snow, Snyder, Solis, Solomon, Sosa, Soto, Sparks, Spears, Spence, Spencer, Stafford, Stanley, Stanton, Stark, Steele, Stein, Stephens, Stephenson, Stevens, Stevenson, Stewart, Stokes, Stone, Stout, Strickland, Strong, Stuart, Suarez, Sullivan, Summers, Sutton, Swanson, Sweeney, Sweet, Sykes, Talley, Tanner, Tate, Taylor, Terrell, Terry, Thomas, Thompson, Thornton, Tillman, Todd, Torres, Townsend, Tran, Travis, Trevino, Trujillo, Tucker, Turner, Tyler, Tyson, Underwood, Valdez, Valencia, Valentine, Valenzuela, Vance, Vang, Vargas, Vasquez, Vaughan, Vaughn, Vazquez, Vega, Velasquez, Velazquez, Velez, Villarreal, Vincent, Vinson, Wade, Wagner, Walker, Wall, Wallace, Waller, Walls, Walsh, Walter, Walters, Walton, Ward, Ware, Warner, Warren, Washington, Waters, Watkins, Watson, Watts, Weaver, Webb, Weber, Webster, Weeks, Weiss, Welch, Wells, West, Wheeler, Whitaker, White, Whitehead, Whitfield, Whitley, Whitney, Wiggins, Wilcox, Wilder, Wiley, Wilkerson, Wilkins, Wilkinson, William, Williams, Williamson, Willis, Wilson, Winters, Wise, Witt, Wolf, Wolfe, Wong, Wood, Woodard, Woods, Woodward, Wooten, Workman, Wright, Wyatt, Wynn, Yang, Yates, York, Young, Zamora, Zimmerman]
}
personalEmails: [gmail.com, yahoo.com, mail.com]
companyNames: [Alist, Beans, Klein, Felics, Adapt, MemorTech, Porta, SuperMemo, Nonos, Vitae, Woods, Quisuc, Quicker, Interdem, Morsem, Datastore, Linger, Buapel, Terson, Gualas, Yrsa, Warst, Erntogra, Robutenia, QuickLink, Furba, Hostes, FlyHigh]
companySuffixes: [Associates, Company, Consulting, Inc., Industries, Limited, LLC, Ltd]
companyEmails: [info, contact, company, office]
text: But I must explain to you how all this mistaken idea of denouncing of a pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?
telephone_number_formats: ['###-###-###', '###-###-####']
postal_code: ['#####']
city: [New York, Washington, San Francisco, Miami]
street: [Atkins Avenue, Aster Court, Cove Lane, Ford Street, Highland Place, Herzi Street, Tabor Court, Stillwell Avenue, Summer Place, Washington Walk]
country: ['Canada', 'USA', 'Poland']
language: 'EN'
================================================
FILE: src/main/resources/jfairy_es.yml
================================================
alphabet: aábcdeéfghiíjklmnñoópqrstuvwxyz
domains: [es, cat, com, eu]
firstNames: {
male: [Francisco, Paco, Fran, Jose, Pepe, Antonio, Toni, Emilio, Carlos, Enrique, Manuel, Miguel, Javier, Xavi, Aaron, Alex, Alejandro, Pedro, David, Rubén, Rodrigo, Iván, Sergio, Adolfo, Fernando, Alberto, Álvaro, Alfonso],
female: [Alejandra, Alex, Alicia, Ana, Julia, Carolina, Claudia, Sofia, Maria, Marta, Natalia, Olivia, Patricia, Paula, Veronica, Susana, Francisca, Mónica, Estefanía, Maria Cruz, Triana, Paz, Penelope, Elisa, Rebeca]
}
lastNames: {
male: [Garcia, Lopez, Perez, Gonzalez, Sanchez, Martinez, Rodriguez, Fernandez, Gomez, Martin, Grau, Hernandez, Ruiz, Diaz, Alvarez, Jimenez, Moreno, Muñoz, Alonso, Gutierrez, Romero, Sanz, Torres, Suarez, Ramirez, Vazquez, Navarro, Dominguez, Ramos, Castro, Gil, Flores, Morales, Blanco, Serrano, Molina, Ortiz, Santos, Ortega, Morrell, Delgado, Mendez, Castillo, Marquez, Cruz, Medina, Herrera, Marin, Nunez, Vega, Iglesias, Rojas, Reyes, Luna, Campos, Rubio, Pena, Ferrer, Lozano, Garrido, Leon, Aguilar, Cano, Arias, Herrero, Gimenez, Fuentes, Diez],
female: [Garcia, Lopez, Perez, Gonzalez, Sanchez, Martinez, Rodriguez, Fernandez, Gomez, Martin, Grau, Hernandez, Ruiz, Diaz, Alvarez, Jimenez, Moreno, Muñoz, Alonso, Gutierrez, Romero, Sanz, Torres, Suarez, Ramirez, Vazquez, Navarro, Dominguez, Ramos, Castro, Gil, Flores, Morales, Blanco, Serrano, Molina, Ortiz, Santos, Ortega, Morrell, Delgado, Mendez, Castillo, Marquez, Cruz, Medina, Herrera, Marin, Nunez, Vega, Iglesias, Rojas, Reyes, Luna, Campos, Rubio, Pena, Ferrer, Lozano, Garrido, Leon, Aguilar, Cano, Arias, Herrero, Gimenez, Fuentes, Diez]
}
personalEmails: [gmail.com, yahoo.com, yahoo.es, terra.es, telefonica.es, ono.es]
companyNames: [Ibericatec, TecnoHispana, CatTech, Soluciones Martinez, Progreso e Innovación, InfoLoco, InfoLopez, TecnoSanchez, PerezPerez, BlueNube, Soluciones Marquez, Aselesic, TecnoMundo, Tecnolandia]
companySuffixes: [S.A., S.L., S.Coop., S.L.N.E.]
companyEmails: [info, contacto, principal, ventas, atencion]
text: >
Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro. Todas estas borrascas que nos suceden son señales de que presto ha de serenar el tiempo y han de sucedernos bien las cosas; porque no es posible que el mal ni el bien sean durables, y de aquí se sigue que, habiendo durado mucho el mal, el bien está ya cerca. Así que, no debes congojarte por las desgracias que a mí me suceden, pues a ti no te cabe parte dellas. Y, viéndole don Quijote de aquella manera, con muestras de tanta tristeza, le dijo: Sábete, Sancho, que no es un hombre más que otro si no hace más que otro.
telephone_number_formats: ['+34 6##-###-###', '+34 9#-###-####', '+34 97#-###-###']
postal_code: ['##.###']
city: [Madrid, Barcelona, Valencia, Sevilla, Zaragoza, Málaga, Murcia, Palma de Mallorca, Las Palmas de Gran Canaria, Bilbao, Alicante, Córdoba, Valladolid, Vigo, Gijón, Hospitalet de Llobregat, La Coruña, Vitoria, Granada, Elche, Oviedo, Badalona, Cartagena, Tarrasa, Jerez de la Frontera, Sabadell, Móstoles, Santa Cruz de Tenerife, Alcalá de Henares, Pamplona, Fuenlabrada, Almería, Leganés, San Sebastián, Burgos, Santander, Castellón de la Plana, Getafe, Albacete, Alcorcón, San Cristóbal de la Laguna, Logroño, Badajoz, Salamanca, Huelva, Lérida, Marbella, Tarragona, Dos Hermanas, León, Torrejón de Ardoz, Parla, Mataró, Cádiz, Santa Coloma de Gramanet, Algeciras, Jaén, Alcobendas, Orense, Reus, Telde, Baracaldo, Lugo, Gerona, San Fernando, Cáceres, Santiago de Compostela, Las Rozas de Madrid, Lorca, Roquetas de Mar, Torrevieja, Coslada, El Puerto de Santa María, San Cugat del Vallés, Talavera de la Reina, Cornellá de Llobregat, Ceuta, Melilla, Pozuelo de Alarcón, El Ejido, Guadalajara, Orihuela, Toledo, San Sebastián de los Reyes, San Baudilio de Llobregat, Pontevedra, Chiclana de la Frontera, Avilés, Torrente, Rivas-Vaciamadrid, Palencia, Arona, Guecho, Vélez-Málaga, Mijas, Gandía, Fuengirola, Manresa, Ciudad Real]
street: [Mayor, Iglesia, Real, Nueva, San Jose, San Roque, San Juan, San Pedro, Colón, Vieja, Balmes, Doctor Gregorio Marañón, Doctor Esquerdo, Gran Vía, Alcalá, Cruz, Colegiata, Menendez Pelayo, Sagunto]
country: ['España'] #, 'Argentina', 'Uruguay', 'Mexico', 'Chile', 'Colombia', 'Venezuela', 'Cuba', 'Ecuador', 'Honduras', 'Perú']
language: 'ES'
================================================
FILE: src/main/resources/jfairy_fr.yml
================================================
alphabet: aâàbcdeéèfghiïîjklmnoôöpqrstuùvwxyz
domains: [fr, com, gouv.fr, net, org]
companyNames: [AB Science, ABC Arbitrage, Acanthe Développement, Acteos, Actia Group, Adlpartner, Adocia, Aéroports De Paris, Affine, Afone, Air France, Akka Technologies, Albioma, Altamir, Alten, Altran Technologies, Anf Immobilier, Aperam Reg., April, Archos, Areva, Argan, Artprice Com, Ask, Assystem, Ast Groupe, Atari, Ateme, Aubay, Audika, Aufeminin, Aurea, Aures Technologies, Ausy, Avanquest, Avenir Finance, Avenir Telecom, Aviation Latecoere, Awox, Axway Software, Barbara Bui, Bastide Le Confort, Belier, Belvédère, Beneteau, Bic, Bigben Interactive, Biomerieux, Blue Solutions, Boiron, Bollore, Bonduelle, Bourbon, Bourse Direct, Business Et Décision, Cafom, Canal+, Capelli, Cast, Catana Group, Catering Intl Services, Cegedim, Cegereal, Cegid Group, CGG, Chargeurs, Cibox Interactive, CNP Assurances, Coface, Coheris, Compagnie Des Alpes, Cs Communicat. Syst, Dalet Rev. split, Dbv Technologies, Delta Plus Group, Derichebourg, Dernier, Devoteam, Dexia, Diagnostic Medical, Dnxcorp, Eca, Egide, Eiffage, Ekinops, Electricité Et Eaux Madagascar, Elior, Encres Dubuit, Eos Imaging, Eramet, Erytech Pharma, Esi Group, Esso, Euler Hermes Group, Eurazeo, Euro Disney, Euro Ressources, Eurofins Scientific, Euromedis Groupe, Euronext, Europacorp, Exel Industries A, Faiveley, Faurecia, Fermentalg, Fleury Michon, Fonc. Paris Nord, Foncière De Paris, Foncière Des Regions, Gameloft, Gascogne, Gaztrans. techn., Gea Grenobl. elect., Gecina Nominatif, Generix, Genfit, Genomic Vision, Genticel, Gerard Perrier Industrie, GFI Informatique, GL Events, GP Eurotunnel Rgpt, Groupe Crit, Groupe Flo, Groupe Fnac, Groupe Gorge, Groupe Open, Groupe Pizzorno Environnement, Guerbet, Guillemot, Haulotte Group, Havas, Hf Company, Hi Media, High Co, Hubwoo. com, Icade, ID Logistics, Ige + Xao, Imerys, Implanet, Infotel, Ingenico Group, Innate Pharma, Innelec Multimedia, Inside Secure, Interparfums, Intle Plant. heveas, Ipsen, Ipsos, It Link, Itesoft, Its Group, Jacquet Metal Sce, Jcdecaux Sa., Keyrus, Korian medica, Lacroix Sa, Lagardère Sca N, Lanson, Laurent Perrier, LDLC Com, Le Noble Age, Lectra, Lexibook Linguist., Linedata Services, Lisi, Lnc, Maisons France Confort, Manitou Bf, Manutan Intl, Mauna Kea Tech, Maurel Et Prom, Mcphy Energy, Mecelec, Medasys, Medtech, Memscap Regpt, Mercialys, Mersen, Metabolic Explorer, Metropole TV, MGI Coutier, Micropole, Mnd, Montaigne Fashion, Montupet, MPI, Mr Bricolage, N. Dentressangle, Nanobiotix, Naturex, Neopost, NetGem, Neurones, Nexans, Nexity, Nextradiotv, Nicox, NRJ Group, Numericable SFR, Oeneo, Ol Groupe, Onxeo, Orapi, Orco Property Group, Orege, Orpea, Paref, Parrot, Partouche, Pcas, Pharmagest Inter., Pierre Et Vacances, Pixium Vision, Plastic Omnium, Plastivaloire, Precia, Prologue, PSB Industries, Public Systeme Hop, Quantel, Recylex, Rémy Cointreau, Rentabiliweb Group, Rexel, Riber, Rubis, Saft, Sartorius Sted Bio, Scbsm, Seb, Sèche Environnement, Sequana Regpt, Sergeferrari Group, Sii, Soft Computing, Sogeclair, Soitec Silicon, Solocal Group, Solucom, Sopra Steria Group, Spir Communication, SQLI Regpt, St Dupont, Stallergenes, Stef, Stentys, Store Electronic, Supersonic Imagine, Sword Group, Synergie, Tarkett, Technicolor Rgpt, Téléperformance, Terreis, Tessi, TF1, Theolia, Thermador Groupe, Tivoly, Tonn. François Fres, Touax, Toupargel, Transgène, Trigano, Tunn Prado Caren, Txcell, U10, Ubisoft Entertain., Union Fin. France, Union Tech. infor., Valneva, Valtech Rev. split, Vet Affaires, Vetoquinol, Viadeo, Vicat, Vilmorin & Cie, Virbac, Vm Materiaux, Vranken pommery Monopole, Wendel, Xilam Animation, Ymagis, Zublin Immobiliere France]
companySuffixes: [SA, SARL, EURL, SAS]
companyEmails: [info, contact, mail, ventes, direction]
firstNames:
male: [Édouard, Élie, Émeric, Émile, Émilien, Épiphane, Éric, Étienne, Aaron, Abélard, Abdon, Abel, Abelin, Abondance, Abraham, Absalon, Acace, Achaire, Achille, Adéodat, Adalard, Adalbéron, Adalbald, Adalbert, Adalric, Adam, Adegrin, Adel, Adelin, Adelphe, Adenet, Adhémar, Adjutor, Adolphe, Adon, Adonis, Adraste, Adrien, Agénor, Agapet, Agathange, Agathon, Agilbert, Agnan, Agnel, Agrippin, Aignan, Aimé, Aimable, Alain, Albéric, Alban, Albert, Albertet, Albin, Alcée, Alcibiade, Alcide, Alcime, Aldémar, Aldéric, Aldebert, Aldegrin, Aldonce, Aldric, Aleaume, Alexandre, Alexis, Almine, Almire, Aloïs, Aloys, Alphée, Alphonse, Alpinien, Alverède, Amédée, Amélien, Amadis, Amalric, Amandin, Amant, Amaury, Amiel, Amour, Anaël, Anastase, Anatole, Ancelin, Andéol, Andelin, André, Angilbe, Angilbert, Angilran, Anglebert, Angoustan, Anicet, Anis, Annibal, Ansbert, Anselme, Antheaume, Anthelme, Anthime, Anthoine, Antide, Antoine, Antonin, Apollinaire, Apollon, Aquilin, Arcade, Archambaud, Archambeau, Archibald, Arian, Ariste, Aristide, Aristion, Armand, Armel, Armin, Arnalde, Arnaud, Arnauld, Arnault, Arnaut, Arnould, Arnoud, Arnoult, Arnout, Arolde, Arsène, Arthème, Arthaud, Arthur, Ascelin, Athanase, Athos, Aubert, Aubertin, Aubin, Aubry, Audebert, Audouin, Audran, Audric, Auguste, Augustin, Aurèle, Aurélien, Aurian, Auxence, Axel, Aymard, Aymeric, Aymon, Aymond, Azel, Bénigne, Béranger, Baptiste, Barnabé, Barthélemy, Basile, Bastien, Baudouin, Benjamin, Benoît, Bernard, Bertrand, Blaise, Bodon, Boniface, Bouchard, Brice, Brieuc, Bruno, Brunon, Côme, Cédric, Célestin, Célien, Césaire, César, Calixte, Calliste, Camélien, Camillien, Candide, Caribert, Carl, Carloman, Cassien, Chamas, Charles, Childebert, Chilpéric, Chrétien, Christian, Christodule, Christophe, Cléandre, Clément, Clarence, Claudien, Clotaire, Clovis, Colas, Colin, Constant, Constantin, Corentin, Cyprien, Cyriaque, Cyril, Désiré, Damien, Daniel, Dannick, David, Denis, Didier, Dieudonné, Dorian, Emmanuel, Ernest, Esteban, Eudes, Eudoxe, Eugène, Eusèbe, Eustache, Félicité, Félix, Fabien, Fabrice, Falba, Ferdinand, Fiacre, Firmin, Flavien, Flodoard, Florent, Florentin, Florian, Fortuné, Foulques, Frédéric, François, Francis, Franck, Fulbert, Fulcran, Fulgence, Gérald, Gérard, Géraud, Gaël, Gabin, Gabriel, Garnier, Gaspard, Gaston, Gatien, Gaud, Gautier, Geoffroy, Georges, Germain, Gervais, Ghislain, Gilbert, Gilles, Girart, Gislebert, Gondebaud, Gonthier, Gontran, Gonzague, Grégoire, Guérin, Gui, Guilhem, Guillaume, Gustave, Guy, Guyot, Gwenael, Hédelin, Hélier, Hardouin, Hector, Henri, Herbert, Herluin, Hervé, Hilaire, Hildebert, Hincmar, Honoré, Hubert, Hugo, Hugues, Igor, Innocent, Isidore, Jérôme, Jérémie, Jacques, Japhet, Jean, Jeannel, Jeannot, Joël, Joachim, Joanny, Job, Jocelyn, Johan, Jonas, Jonathan, Joseph, Josse, Josselin, Jourdain, Jude, Judicaël, Jules, Julien, Juste, Justin, Kevin, Kilian, Léandre, Léo, Léon, Léopold, Létaud, Lambert, Landry, Laurel, Laurent, Leu, Leufroy, Liétald, Lilian, Lionel, Loïc, Lorrain, Lothaire, Louis, Loup, Luc, Lucas, Lucien, Ludolphe, Ludovic, Médéric, Malo, Mamert, Manassès, Marc, Marceau, Marcel, Marcelin, Marius, Martin, Mathias, Mathieu, Mathis, Mathurin, Matthias, Matthieu, Maugis, Maurice, Mauricet, Max, Maxence, Maximilien, Mayeul, Mence, Merlin, Michel, Moïse, Morgan, Néhémie, Naël, Nathan, Naudet, Nestor, Nicolas, Noé, Noël, Noah, Norbert, Norgot, Normand, Océan, Octave, Odilon, Odon, Oger, Olivier, Oscar, Oxlene, Pépin, Pacôme, Pascal, Paterne, Patrice, Paul, Perceval, Philémon, Philibert, Philippe, Pierre, Prosper, Quentin, Régis, Réjean, Rémi, Rémy, Raoul, Raphaël, Raymond, René, Renaud, Reybaud, Richard, Robert, Roch, Rodolphe, Roger, Roland, Roméo, Romain, Romuald, Ronan, Roselin, Sébastien, Séverin, Salomon, Samuel, Savin, Serge, Sidoine, Sigebert, Sigismond, Silvère, Siméon, Simon, Sixte, Stéphan, Stéphane, Stanislas, Sylvain, Sylve, Sylvestre, Tancrède, Tanguy, Taurin, Théo, Théodebert, Théodore, Théodoric, Théophile, Théophraste, Thibault, Thibert, Thierry, Thomas, Timoléon, Timothée, Titien, Tonnin, Trajan, Tristan, Turold, Ulrich, Ulysse, Urbain, Valère, Valéry, Valentin, Venceslas, Victor, Victorien, Victorin, Vincent, Vital, Vivien, Vladimir, Waleran, Walerand, Wandrille, Xavier, Yann, Yannick, Yoann, Yves, Yvon, Zéphir, Zéphirin, Zéphyr, Zaché, Zacharie, Zakaria, Alix, Aloïse, Andoche, Ange, Angelin, Anicée, Anne, Archange, Ariel, Arsinoé, Céleste, Camille, Claude, Dominique, Dorothée, France, Hippolyte, Isabeau, Maxime, Philomène, Philothée, Sacha, Scholastique]
female: [Édith, Éléonore, Élia, Éliette, Éliane, Élisabeth, Élise, Éloïse, Élodie, Émeline, Émelyne, Émilie, Éva, Évangéline, Ève, Évelyne, Aélis, Abélie, Abdonie, Abdonise, Abeline, Abelle, Abigaïl, Abigaëlle, Abigaelle, Acaciane, Acacie, Acanthe, Adèle, Adélaïde, Adélice, Adélie, Adalbaude, Adalsinde, Adegrine, Adeline, Adeltrude, Adolphie, Adonise, Adrastée, Adrehilde, Adrienne, Agathe, Agilberte, Aglaé, Agnès, Agnane, Agneflète, Agrippine, Aignane, Aimée, Alaine, Albérade, Albane, Alberte, Albertine, Albine, Alcidie, Alcine, Alcyone, Aldegonde, Aleth, Alexandrine, Alexane, Alexiane, Alexie, Alexine, Aliénor, Alice, Aliette, Aline, Alizé, Aloyse, Alphonsie, Alphonsine, Althée, Améliane, Amélie, Améthyste, Amaliane, Amalthée, Amande, Amandine, Amante, Amarande, Amaranthe, Amaryllis, Amarynthe, Ambre, Ambrine, Ambroisie, Ambroisine, Ameline, Aminte, Anémone, Anaïs, Anaëlle, Anastasia, Anastasiane, Anastasie, Anatolie, Anatoline, Anceline, Andrée, Angélique, Angadrême, Angela, Angeline, Angilberte, Anicette, Annabelle, Annette, Annick, Annie, Annonciade, Ansberte, Anstrudie, Anthelmette, Anthelmine, Antigone, Antoinette, Antonine, Aphélie, Aphrodite, Apolline, Apollonie, Aquiline, Arabelle, Arcadiane, Arcadie, Argine, Ariane, Aricie, Arielle, Arlette, Armance, Armande, Armandie, Armandine, Armeline, Armelle, Armide, Armine, Arminie, Arnaude, Arsènie, Artémis, Arthurine, Asceline, Astérie, Astarté, Astrée, Astride, Athénaïs, Athalie, Athanasie, Athina, Aubane, Aube, Aubertine, Aude, Audeline, Audette, Audrey, Augustine, Aulde, Aurélia, Aurélie, Aurélienne, Aure, Aurelle, Auriane, Aurore, Automne, Auxane, Aveline, Avigaïl, Avigaëlle, Avoye, Avril, Axeline, Axellane, Axelle, Aymardine, Aymonde, Azélie, Azalée, Azeline, Azelle, Béatrice, Béatrix, Bénédicte, Bérangère, Barbe, Bernadette, Berthe, Bertille, Beuve, Blanche, Blandine, Brigitte, Brunehaut, Brunehilde, Cécile, Célestine, Célia, Céline, Capucine, Carine, Caroline, Cassandre, Catherine, Chantal, Charlaine, Charline, Charlotte, Chloé, Christelle, Christiane, Christine, Chrystèle, Clémence, Clémentine, Claire, Clara, Claudie, Clotilde, Coline, Constance, Cora, Coralie, Coraline, Corentine, Corinne, Cosette, Cyrielle, Danièle, Danielle, Daphné, Daphnée, Delphine, Denise, Diane, Dieudonnée, Doriane, Dorice, Dorine, Douce, Edwige, Elena, Ella, Elsa, Emma, Emmanuelle, Emmelie, Emmeline, Ernestine, Estelle, Esther, Eugénie, Eulalie, Eusébie, Félicie, Fanny, Fantine, Faustine, Fernande, Fiona, Flavie, Flore, Florence, Florie, Fortunée, Françoise, Francia, Gaëlle, Gabrielle, Geneviève, Georgette, Gerberge, Germaine, Gertrude, Gisèle, Gisela, Giselle, Gladys, Guenièvre, Guilhemine, Guillemette, Gustaphine, Gustavine, Gwenaëlle, Gwendoline, Gwladys, Hélène, Héloïse, Harmonie, Hedwige, Henriette, Hermione, Hortense, Huguette, Inès, Ines, Ingrid, Irène, Irina, Iris, Isabelle, Isadora, Isaline, Iseult, Isis, Isolde, Iva, Jacinthe, Jacqueline, Jade, Janine, Jeanine, Jeanne, Jehanne, Jehane, Jessica, Joëlle, Jocelyne, Johane, Johanna, Joséphine, Judith, Julia, Julie, Juliette, Justine, Karen, Karine, Léa, Léna, Lénaïc, Lénaïck, Lénaïg, Léonie, Léonne, Laëticia, Laetitia, Laurène, Laura, Laurane, Laure, Laureline, Lauren, Laurence, Lauriane, Laurine, Leila, Lilou, Lison, Lorène, Lorane, Loreline, Lorelyne, Loriane, Lorraine, Lou, Louna, Lune, Lucie, Lucienne, Lucile, Lucille, Ludivine, Luna, Lydia, Lydie, Mégane, Mélanie, Mélina, Méline, Mélisande, Mélisandre, Mélisende, Mélissa, Mélissandre, Mélodie, Mélysandre, Maëlys, Madeleine, Madyson, Magali, Maguelone, Mahault, Mahaut, Malaury, Malhaury, Mallaury, Manon, Marceline, Margaux, Margot, Marguerite, Marie, Marine, Marion, Marlène, Marthe, Martine, Mathilde, Maud, Maureen, Mauricette, Michèle, Micheline, Mireille, Miriam, Moïsette, Monique, Morgane, Muriel, Murielle, Mylène, Myriam, Nadège, Nadia, Nadine, Naomi, Natalie, Nathalie, Nicci, Nicole, Nicolette, Noémie, Noëlie, Noëlla, Noëlle, Nolwen, Nolwenn, Noyale, Océane, Odette, Odile, Olga, Olive, Olivia, Olympe, Ophélie, Oriande, Oriane, Orlane, Ozanne, Pécine, Pélagie, Pénélope, Pétronille, Pascale, Pascaline, Paule, Paulette, Pauline, Perrine, Philippine, Primerose, Priscilla, Priscille, Pulchérie, Quitterie, Régine, Réjeanne, Rachel, Raphaëlle, Raymonde, Rebecca, Renée, Rolande, Rosalie, Rose, Roseline, Roselyne, Ségolène, Séverine, Sabine, Salomé, Sandrine, Sarah, Sibylle, Simone, Sixtine, Solène, Solange, Soleine, Solenn, Soline, Sophie, Stéphanie, Stela, Stella, Suzanne, Suzette, Suzie, Suzon, Sylvaine, Sylviane, Sylvie, Syrine, Tatiana, Théodora, Thérèse, Thaïs, Tiphaine, Ursule, Véronique, Valérie, Valentine, Vanessa, Victoire, Victoria, Victorine, Vinciane, Violette, Virginie, Viviane, Xavière, Yolande, Ysé, Ysaline, Yse, Yseult, Ysoie, Yvette, Yvonne, Zélie, Zéline, Zoé, Alix, Aloïse, Andoche, Ange, Angelin, Anicée, Anne, Archange, Ariel, Arsinoé, Céleste, Camille, Claude, Dominique, Dorothée, France, Hippolyte, Isabeau, Maxime, Philomène, Philothée, Sacha, Scholastique]
lastNames:
male: [ Martin, Bernard, Thomas, Petit, Robert, Richard, Durand, Dubois, Moreau, Laurent, Simon, Michel, Lefebvre, Leroy, Roux, David, Bertrand, Morel, Fournier, Girard, Bonnet, Dupont, Lambert, Fontaine, Rousseau, Vincent, Muller, Lefevre, Faure, Andre, Mercier, Blanc, Guerin, Boyer, Garnier, Chevalier, Francois, Legrand, Gauthier, Garcia, Perrin, Robin, Clement, Morin, Nicolas, Henry, Roussel, Mathieu, Gautier, Masson, Marchand, Duval, Denis, Dumont, Marie, Lemaire, Noel, Meyer, Dufour, Meunier, Brun, Blanchard, Giraud, Joly, Riviere, Lucas, Brunet, Rang, Gaillard, Barbier, Arnaud, Martinez, Gerard, Roche, Renard, Schmitt, Roy, Leroux, Colin, Vidal, Caron, Picard, Roger, Fabre, Aubert, Lemoine, Renaud, Dumas, Lacroix, Olivier, Philippe, Bourgeois, Pierre, Benoit, Rey, Leclerc, Payet, Rolland, Leclercq, Guillaume, Lecomte, Lopez, Jean, Dupuy, Guillot, Hubert, Berger, Carpentier, Sanchez, Dupuis, Moulin, Louis, Deschamps, Huet, Vasseur, Perez, Boucher, Fleury, Royer, Klein, Jacquet, Adam, Paris, Poirier, Marty, Aubry, Guyot, Carre, Charles, Renault, Charpentier, Menard, Maillard, Baron, Bertin, Rang, Bailly, Herve, Schneider, Fernandez, Le gall, Collet, Leger, Bouvier, Julien, Prevost, Millet, Perrot, Daniel, Le roux, Cousin, Germain, Breton, Besson, Langlois, Remy, Le goff, Pelletier, Leveque, Perrier, Leblanc, Barre, Lebrun, Marchal, Weber, Mallet, Hamon, Boulanger, Jacob, Monnier, Michaud, Rodriguez, Guichard, Gillet, Etienne, Grondin, Poulain, Tessier, Chevallier, Collin, Chauvin, Da silva, Bouchet, Gay, Lemaitre, Benard, Marechal, Humbert, Reynaud, Antoine, Hoarau, Perret, Barthelemy, Cordier, Pichon, Lejeune, Gilbert, Lamy, Delaunay, Pasquier, Carlier, Laporte, Gros, Hamel, Berthier, Letellier, Prevot, Grand, Grandjean, Benoist, Leblond, Gosselin, Leleu, Comte, Favier, Bellanger, Martinet, Billard, Rault, Geoffroy, Forestier, Blondeau, Roques, Ricard, Pommier, Boulet, Drouet, Poisson, Maire, Mounier, Gueguen, Combes, Huguet, Morand, Leonard, Ledoux, Prat, Dubreuil, Fortin, Ferre, Rigaud, Brossard, Picot, Granger, Merlin, Laval, Claude, Marquet, Mouton, Brault, Jeanne, Marc, Levasseur, Le roy, Guillemin, Bocquet, Constant, Pujol, Lavigne, Bauer, Hoffmann, Chatelain, Lacour, Jung, Jamet, Lallemand, Walter, Basset, Provost, Salaun, Rang, Tellier, Gibert, Martins, Rose, Navarro, Grange, Lepage, Bouquet, Keller, Techer, Jolly, Tournier, Guillard, Papin, Bataille, Lelong, Cartier, Leon, Champion, Dujardin, Dumoulin, Lasserre, Flament, Husson, Schmidt, Le bihan, Kieffer, Millot, Le guen, Ferry, Bourdin, Mangin, Gicquel, Cadet, Soulier, Mignot, Barret, Bureau, Leray, Fort, Barreau, Mas, Lafont, Bouchard, Jolivet, Savary, Foulon, Guillemot, Costa, Armand, Blaise, Binet, Montagne, Jullien, Berard, Vacher, Saunier, Dupin, Thiebaut, Schwartz, Felix, Sellier, Lagrange, Lefrancois, Andrieux, Lalanne, Berthet, Rang, Payen, Lavergne, Jouan, Cornet, Combe, Lang, Poulet, Granier, Zimmermann, Lebeau, Bayle, Vigneron, Terrier, Bon, Lecocq, Esnault, Bordes, Sarrazin, Le borgne, Jouve, Lauret, Le floch, Godefroy, Prieur, Lemarchand, Vernet, Vivier, Aubin, Faucher, Ducrocq, Dore, Lamotte, Thiery, Jacquemin, Arnould, Bastien, Thery, Couderc, Duchene, Quere, Chevrier, Cochet, Villard, Corre, Prost, Bois, Magnier, Monier, Grosjean, Tardy, Gimenez, Caillaud, Guignard, Lefranc, Beaumont, Le berre, Tissier, Rouxel, Bonnard, Le gal, Sergent, Crepin, Lesueur, Marques, Roth, Wolff, Buisson, Ollivier, Briand, Alexandre, Georges, Guillou, Besnard, Legros, Gonzalez, Coulon, Maillot, Albert, Camus, Delattre, Launay, Hebert, Lesage, Blanchet, Didier, Voisin, Pons, Bousquet, Coste, Vallee, Jacques, Martel, Maury, Raynaud, Barbe, Pascal, Bigot, Verdier, Charrier, Sauvage, Guillet, Mahe, Leduc, Lelievre, Gregoire, Joubert, Masse, Delmas, Morvan, Lebreton, Tanguy, Pineau, Lebon, Gaudin, Colas, Imbert, Paul, Raymond, Guillon, Brunel, Regnier, Ferrand, Hardy, Devaux, Courtois, Bodin, Chauvet, Allard, Blondel, Laine, Delorme, Seguin, Rang, Lenoir, Berthelot, Bonneau, Pereira, Thibault, Lacombe, Riou, Lagarde, Clerc, Bruneau, Godard, Vaillant, Couturier, Gomez, Jourdan, Pages, Valentin, Lombard, Mary, Blin, Texier, Rossi, Marion, Allain, Guilbert, Maurice, Baudry ]
female: [ Martin, Bernard, Thomas, Petit, Robert, Richard, Durand, Dubois, Moreau, Laurent, Simon, Michel, Lefebvre, Leroy, Roux, David, Bertrand, Morel, Fournier, Girard, Bonnet, Dupont, Lambert, Fontaine, Rousseau, Vincent, Muller, Lefevre, Faure, Andre, Mercier, Blanc, Guerin, Boyer, Garnier, Chevalier, Francois, Legrand, Gauthier, Garcia, Perrin, Robin, Clement, Morin, Nicolas, Henry, Roussel, Mathieu, Gautier, Masson, Marchand, Duval, Denis, Dumont, Marie, Lemaire, Noel, Meyer, Dufour, Meunier, Brun, Blanchard, Giraud, Joly, Riviere, Lucas, Brunet, Rang, Gaillard, Barbier, Arnaud, Martinez, Gerard, Roche, Renard, Schmitt, Roy, Leroux, Colin, Vidal, Caron, Picard, Roger, Fabre, Aubert, Lemoine, Renaud, Dumas, Lacroix, Olivier, Philippe, Bourgeois, Pierre, Benoit, Rey, Leclerc, Payet, Rolland, Leclercq, Guillaume, Lecomte, Lopez, Jean, Dupuy, Guillot, Hubert, Berger, Carpentier, Sanchez, Dupuis, Moulin, Louis, Deschamps, Huet, Vasseur, Perez, Boucher, Fleury, Royer, Klein, Jacquet, Adam, Paris, Poirier, Marty, Aubry, Guyot, Carre, Charles, Renault, Charpentier, Menard, Maillard, Baron, Bertin, Rang, Bailly, Herve, Schneider, Fernandez, Le gall, Collet, Leger, Bouvier, Julien, Prevost, Millet, Perrot, Daniel, Le roux, Cousin, Germain, Breton, Besson, Langlois, Remy, Le goff, Pelletier, Leveque, Perrier, Leblanc, Barre, Lebrun, Marchal, Weber, Mallet, Hamon, Boulanger, Jacob, Monnier, Michaud, Rodriguez, Guichard, Gillet, Etienne, Grondin, Poulain, Tessier, Chevallier, Collin, Chauvin, Da silva, Bouchet, Gay, Lemaitre, Benard, Marechal, Humbert, Reynaud, Antoine, Hoarau, Perret, Barthelemy, Cordier, Pichon, Lejeune, Gilbert, Lamy, Delaunay, Pasquier, Carlier, Laporte, Gros, Hamel, Berthier, Letellier, Prevot, Grand, Grandjean, Benoist, Leblond, Gosselin, Leleu, Comte, Favier, Bellanger, Martinet, Billard, Rault, Geoffroy, Forestier, Blondeau, Roques, Ricard, Pommier, Boulet, Drouet, Poisson, Maire, Mounier, Gueguen, Combes, Huguet, Morand, Leonard, Ledoux, Prat, Dubreuil, Fortin, Ferre, Rigaud, Brossard, Picot, Granger, Merlin, Laval, Claude, Marquet, Mouton, Brault, Jeanne, Marc, Levasseur, Le roy, Guillemin, Bocquet, Constant, Pujol, Lavigne, Bauer, Hoffmann, Chatelain, Lacour, Jung, Jamet, Lallemand, Walter, Basset, Provost, Salaun, Rang, Tellier, Gibert, Martins, Rose, Navarro, Grange, Lepage, Bouquet, Keller, Techer, Jolly, Tournier, Guillard, Papin, Bataille, Lelong, Cartier, Leon, Champion, Dujardin, Dumoulin, Lasserre, Flament, Husson, Schmidt, Le bihan, Kieffer, Millot, Le guen, Ferry, Bourdin, Mangin, Gicquel, Cadet, Soulier, Mignot, Barret, Bureau, Leray, Fort, Barreau, Mas, Lafont, Bouchard, Jolivet, Savary, Foulon, Guillemot, Costa, Armand, Blaise, Binet, Montagne, Jullien, Berard, Vacher, Saunier, Dupin, Thiebaut, Schwartz, Felix, Sellier, Lagrange, Lefrancois, Andrieux, Lalanne, Berthet, Rang, Payen, Lavergne, Jouan, Cornet, Combe, Lang, Poulet, Granier, Zimmermann, Lebeau, Bayle, Vigneron, Terrier, Bon, Lecocq, Esnault, Bordes, Sarrazin, Le borgne, Jouve, Lauret, Le floch, Godefroy, Prieur, Lemarchand, Vernet, Vivier, Aubin, Faucher, Ducrocq, Dore, Lamotte, Thiery, Jacquemin, Arnould, Bastien, Thery, Couderc, Duchene, Quere, Chevrier, Cochet, Villard, Corre, Prost, Bois, Magnier, Monier, Grosjean, Tardy, Gimenez, Caillaud, Guignard, Lefranc, Beaumont, Le berre, Tissier, Rouxel, Bonnard, Le gal, Sergent, Crepin, Lesueur, Marques, Roth, Wolff, Buisson, Ollivier, Briand, Alexandre, Georges, Guillou, Besnard, Legros, Gonzalez, Coulon, Maillot, Albert, Camus, Delattre, Launay, Hebert, Lesage, Blanchet, Didier, Voisin, Pons, Bousquet, Coste, Vallee, Jacques, Martel, Maury, Raynaud, Barbe, Pascal, Bigot, Verdier, Charrier, Sauvage, Guillet, Mahe, Leduc, Lelievre, Gregoire, Joubert, Masse, Delmas, Morvan, Lebreton, Tanguy, Pineau, Lebon, Gaudin, Colas, Imbert, Paul, Raymond, Guillon, Brunel, Regnier, Ferrand, Hardy, Devaux, Courtois, Bodin, Chauvet, Allard, Blondel, Laine, Delorme, Seguin, Rang, Lenoir, Berthelot, Bonneau, Pereira, Thibault, Lacombe, Riou, Lagarde, Clerc, Bruneau, Godard, Vaillant, Couturier, Gomez, Jourdan, Pages, Valentin, Lombard, Mary, Blin, Texier, Rossi, Marion, Allain, Guilbert, Maurice, Baudry ]
street: [ "Rue de l'Église", "Place de l'Église", Grande Rue, Rue du Moulin, Place de la Mairie, Rue du Château, Rue des Écoles, Rue de la Gare, Rue de la Mairie, Rue Principale, Rue du Stade, Rue de la Fontaine, Rue Pasteur, Rue des Jardins, Rue Victor-Hugo ]
postal_code: ['#####']
city: [Paris, Marseille, Lyon, Toulouse, Nice, Nantes, Strasbourg, Montpellier, Bordeaux, Lille, Rennes, Reims, Le Havre, Saint-Étienne, Toulon, Grenoble, Dijon, Angers, Nîmes, Villeurbanne, Saint-Denis, Le Mans, Clermont-Ferrand, Aix-en-Provence, Brest, Limoges, Tours, Amiens, Perpignan, Metz, Boulogne-Billancourt, Besançon, Orléans, Rouen, Mulhouse, Caen, Saint-Denis, Nancy, Argenteuil, Saint-Paul, Montreuil, Roubaix, Tourcoing, Dunkerque, Nanterre, Créteil, Avignon, Vitry-sur-Seine, Poitiers, Courbevoie, Fort-de-France, Versailles, Colombes, Asnières-sur-Seine, Aulnay-sous-Bois, Saint-Pierre, Rueil-Malmaison, Pau, Aubervilliers, Champigny-sur-Marne, Le Tampon, Antibes, Saint-Maur-des-Fossés, La Rochelle, Cannes, Béziers, Calais, Saint-Nazaire, Colmar, Drancy, Bourges, Mérignac, Ajaccio, Issy-les-Moulineaux, Levallois-Perret, La Seyne-sur-Mer, Quimper, Noisy-le-Grand, Valence, "Villeneuve-d'Ascq", Neuilly-sur-Seine, Antony, Vénissieux, Cergy, Troyes, Clichy, Pessac, Les Abymes, Ivry-sur-Seine, Chambéry, Lorient, Niort, Sarcelles, Montauban, Villejuif, Saint-Quentin, Hyères, Cayenne, Épinay-sur-Seine, Saint-André, Beauvais, Maisons-Alfort, Cholet, Meaux, Chelles, Pantin, Fontenay-sous-Bois, La Roche-sur-Yon, Bondy, Vannes, Saint-Louis, Fréjus, Arles, Clamart, Évry, Le Blanc-Mesnil, Narbonne, Sartrouville, Grasse, Annecy, Laval, Belfort, Vincennes, Charleville-Mézières, Évreux, Sevran, Albi, Montrouge, Bobigny, Martigues, Saint-Ouen, Brive-la-Gaillarde, Suresnes, Carcassonne, Cagnes-sur-Mer, Corbeil-Essonnes, Saint-Brieuc, Blois, Bayonne, Aubagne, Châlons-en-Champagne, Meudon, Châteauroux, Saint-Malo, Chalon-sur-Saône, Sète, Puteaux, Alfortville, Salon-de-Provence, Massy, Mantes-la-Jolie, Bastia, Vaulx-en-Velin, Saint-Herblain, Le Cannet, Valenciennes, Istres, Gennevilliers, Boulogne-sur-Mer, Livry-Gargan, Saint-Priest, Rosny-sous-Bois, Caluire-et-Cuire, Angoulême, Douai, Tarbes, Wattrelos, Castres, Choisy-le-Roi, Talence, Thionville, Arras, Alès, Garges-lès-Gonesse, Gap, Saint-Laurent-du-Maroni, Melun, Bourg-en-Bresse, Noisy-le-Sec, Compiègne, La Courneuve, Le Lamentin, Marcq-en-Barœul, Saint-Germain-en-Laye, Rezé, Bron, Anglet, Gagny, Chartres, Bagneux, "Saint-Martin-d'Hères", Montluçon, Pontault-Combault, Poissy, Draguignan, Joué-lès-Tours, Savigny-sur-Orge, Cherbourg-Octeville, Saint-Joseph, Le Port, Colomiers, Saint-Martin, Villefranche-sur-Saône, Stains, Saint-Benoît, Échirolles, Villepinte, Roanne, Montélimar, Saint-Chamond, Nevers, Conflans-Sainte-Honorine, Auxerre, Sainte-Geneviève-des-Bois, Châtillon, Bagnolet, Vitrolles, Thonon-les-Bains, Neuilly-sur-Marne, Haguenau, Marignane, Saint-Raphaël, Tremblay-en-France, La Ciotat, Six-Fours-les-Plages, Creil, Agen, Romans-sur-Isère, Montigny-le-Bretonneux, Le Perreux-sur-Marne, Franconville, Annemasse, Villeneuve-Saint-Georges, Saint-Leu, Mâcon, Cambrai, Lens, Houilles, Épinal, Châtenay-Malabry, Schiltigheim, Sainte-Marie, Liévin, Châtellerault, Meyzieu, Goussainville, Viry-Châtillon, Dreux, "L'Haÿ-les-Roses", Plaisir, Mont-de-Marsan, Maubeuge, Nogent-sur-Marne, Les Mureaux, Clichy-sous-Bois, La Possession, Dieppe, Chatou, Vandœuvre-lès-Nancy, Malakoff, Palaiseau, Pontoise, Charenton-le-Pont]
country: [France]
personalEmails: [ gmail.com, yahoo.com, yahoo.fr, free.fr, orange.fr, laposte.net, hotmail.fr ]
telephone_number_formats: ["0#########"]
text: "Quoique ce détail ne touche en aucune manière au fond même de ce que nous avons à raconter, il n’est peut-être pas inutile, ne fût-ce que pour être exact en tout, d’indiquer ici les bruits et les propos qui avaient couru sur son compte au moment où il était arrivé dans le diocèse. Vrai ou faux, ce qu’on dit des hommes tient souvent autant de place dans leur vie et souvent dans leur destinée que ce qu’ils font. M. Myriel était fils d’un conseiller au parlement d’Aix ; noblesse de robe. On contait que son père, le réservant pour hériter de sa charge, l’avait marié de fort bonne heure, à dix-huit ou vingt ans, suivant un usage assez répandu dans les familles parlementaires. Charles Myriel, nonobstant ce mariage, avait, disait-on, beaucoup fait parler de lui. Il était bien fait de sa personne, quoique d’assez petite taille, élégant, gracieux, spirituel ; toute la première partie de sa vie avait été donnée au monde et aux galanteries. La révolution survint, les événements se précipitèrent ; les familles parlementaires, décimées, chassées, traquées, se dispersèrent. M. Charles Myriel, dès les premiers jours de la révolution, émigra en Italie. Sa femme y mourut d’une maladie de poitrine dont elle était atteinte depuis longtemps. Ils n’avaient point d’enfants. Que se passa-t-il ensuite dans la destinée de M. Myriel ? L’écroulement de l’ancienne société française, la chute de sa propre famille, les tragiques spectacles de 93, plus effrayants encore peut-être pour les émigrés qui les voyaient de loin avec le grossissement de l’épouvante, firent-ils germer en lui des idées de renoncement et de solitude ? Fut-il, au milieu d’une de ces distractions et de ces affections qui occupaient sa vie, subitement atteint d’un de ces coups mystérieux et terribles qui viennent quelquefois renverser, en le frappant au cœur, l’homme que les catastrophes publiques n’ébranleraient pas en le frappant dans son existence et dans sa fortune ? Nul n’aurait pu le dire ; tout ce qu’on savait, c’est que, lorsqu’il revint d’Italie, il était prêtre.\n"
defaultCountryCode: 'FR'
language: 'FR'
================================================
FILE: src/main/resources/jfairy_it.yml
================================================
alphabet: abcdefghijklmnopqrstuvwxyz
domains: [com, org, it]
firstNames: {
male: [Andrea, Luca, Marco, Francesco, Matteo, Alessandro, Davide, Simone, Federico, Lorenzo, Mattia, Stefano, Giuseppe, Riccardo, Daniele, Michele, Alessio, Antonio, Giovanni, Nicola, Gabriele, Fabio, Alberto, Giacomo, Giulio, Filippo, Gianluca, Paolo, Roberto, Salvatore, Emanuele, Edoardo, Enrico, Vincenzo, Nicolò, Leonardo, Jacopo, Manuel, Mirko, Tommaso, Pietro, Luigi, Giorgio, Angelo, Dario, Valerio, Domenico, Claudio, Alex, Christian],
female: [Giulia, Chiara, Francesca, Federica, Sara, Martina, Valentina, Alessia, Silvia, Elisa, Ilaria, Eleonora, Rosy, Giorgia, Elena, Laura, Alice, Alessandra, Jessica, Arianna, Marta, Veronica, Roberta, Anna, Giada, Claudia, Beatrice, Valeria, Michela, Serena, Camilla, Irene, Cristina, Simona, Maria, Noemi, Stefania, Erika, Sofia, Lucia, Vanessa, Greta, Debora, Nicole, Angela, Paola, Caterina, Monica, Erica, Lisa, Gaia]
}
lastNames: {
male: [Rossi, Russo, Ferrari, Esposito, Bianchi, Romano, Colombo, Ricci, Marino, Greco, Bruno, Gallo, Conti, De Luca, Mancini, Costa, Giordano, Rizzo, Lombardi, Moretti, Barbieri, Fontana, Santoro, Mariani, Rinaldi, Caruso, Ferrara, Galli, Martini, Leone, Longo, Gentile, Martinelli, Vitale, Lombardo, Serra, Coppola, DeSantis, D'Angelo, Marchetti, Parisi, Villa, Conte, Ferraro, Ferri, Fabbri, Bianco, Marini, Grasso, Valentini, Messina, Sala, De Angelis, Gatti, Pellegrini, Palumbo, Sanna, Farina, Rizzi, Monti, Cattaneo, Morelli, Amato, Silvestri, Mazza, Testa, Grassi, Pellegrino, Carbone, Giuliani, Benedetti, Barone, Rossetti, Caputo, Montanari, Guerra, Palmieri, Bernardi, Martino, Fiore, De Rosa, Ferretti, Bellini, Basile, Riva, Donati, Piras, Festa, Vitali, Battaglia, Sartori, Neri, Costantini, Milani, Pagano, Ruggiero, Sorrentino, D'Amico, Orlando, Negri],
female: [Rossi, Russo, Ferrari, Esposito, Bianchi, Romano, Colombo, Ricci, Marino, Greco, Bruno, Gallo, Conti, De Luca, Mancini, Costa, Giordano, Rizzo, Lombardi, Moretti, Barbieri, Fontana, Santoro, Mariani, Rinaldi, Caruso, Ferrara, Galli, Martini, Leone, Longo, Gentile, Martinelli, Vitale, Lombardo, Serra, Coppola, DeSantis, D'Angelo, Marchetti, Parisi, Villa, Conte, Ferraro, Ferri, Fabbri, Bianco, Marini, Grasso, Valentini, Messina, Sala, De Angelis, Gatti, Pellegrini, Palumbo, Sanna, Farina, Rizzi, Monti, Cattaneo, Morelli, Amato, Silvestri, Mazza, Testa, Grassi, Pellegrino, Carbone, Giuliani, Benedetti, Barone, Rossetti, Caputo, Montanari, Guerra, Palmieri, Bernardi, Martino, Fiore, De Rosa, Ferretti, Bellini, Basile, Riva, Donati, Piras, Festa, Vitali, Battaglia, Sartori, Neri, Costantini, Milani, Pagano, Ruggiero, Sorrentino, D'Amico, Orlando, Negri]
}
personalEmails: [gmail.com, libero.it, outlook.it, virgilio.it]
companyNames: [Alist, Beans, Klein, Felics, Adapt, MemorTech, Porta, SuperMemo, Nonos, Vitae, Woods, Quisuc, Quicker, Interdem, Morsem, Datastore, Linger, Buapel, Terson, Gualas, Yrsa, Warst, Erntogra, Robutenia, QuickLink, Furba, Hostes, FlyHigh]
companySuffixes: [SpA, srl, snc, sas]
companyEmails: [info, segreteria, personale, direzione, amministrazione, magazzino]
text: Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura, ché la diritta via era smarrita. Ahi quanto a dir qual era è cosa dura esta selva selvaggia e aspra e forte che nel pensier rinova la paura! Tant’è amara che poco è più morte; ma per trattar del ben ch’i’ vi trovai, dirò de l’altre cose ch’i’ v’ ho scorte.
telephone_number_formats: ['##-#######', '###-#######']
postal_code: ['#####']
city: [Roma, Milano, Torino, Napoli, Frattamaggiore, Venezia, Porto S. Elpidio, S. Nicola Arcella]
street: [Via Roma, P.zza Italia, L.go Augusto, Via G. Matteotti, Piazza G. Cesare, Corso Italia, Corso Mediterraneo, P.zza Aspromonte, Via Caduti di Guerra, Via Miseno, Via Lambro, Via A. Diaz]
country: ['Italia', 'Francia', 'Germania', 'Spagna']
language: 'IT'
================================================
FILE: src/main/resources/jfairy_ka.yml
================================================
alphabet: აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰ
domains: [ge, com.ge, org.ge, net.ge]
firstNames: {
male: [აბელ, აბრაამ, აბრამ, ადამ, აქაქი, ალექსანდრე, ამბროსი, ამირან, ანდრია, ანდრო, ანრი, ანზორ, არჩილ, ავქსენტი, ავთანდილ, ავთო, ბაადურ, ბადრი, ბაგრატ, ბესარიონ, ბესო, ბიძინა, ბორის, დანიელ, დავით, დავითი, ედუარდ, ერეკლე, გაიოზ, გენადი, გიორგი, გივი, გოჩა, გოგა, გრიგოლ, გურგენ, იაკობ, ილია, იმედა, იოანე, იონა, იოსებ, ირაკლი, ისიდორე, იური, ივანე, კობა, კონსტანტინე, კორნელი, ლადო, ლევან, ლუკა, მალხაზ, მალხაზი, მამუქა, მათე, მელითონ, მერაბ, მიხეილ, მიშო, მურთაზ, ნიკა, ნიკოლოზ, ნიკუშა, ოქროპირ, ოთარ, პავლე, პეტრე, ფრიდონ, ფრიდონი, რამაზ, რამაზი, რევაზ, რევაზი, რეზიკო, როსტომ, საბა, სანდრო, სიმონ, სიმონი, სოსო, სპარტაკ, სტეფანე, თამაზ, თამაზი, თედორე, თეიმურაზ, თეიმურაზი, თემო, თემურ, თემური, თენგიზ, ტერენტი, თომა, თორნიკე, ვახტანგ, ვალერი, ვალერიან, ვანო, ვასილ, ვასო, ვაჟა, ვეფხია, ვლადიმერ, ზაალ, ზაქარია, ზურაბ, ზვიად, ზვიადი],
female: [ანა, ანი, ბედისა, დარეჯან, დარეჯანი, ეკა, ეკატერინე, ელენე, ელისაბედ, ელისო, ენძელა, ეთერი, ევა, გულისა, გულნაზ, ირინა, ირინე, ირმა, იზოლდა, ქეთევან, ქეთი, ქეთო, ხათუნა, ლალი, ლეილა, ლია, მადონა, მაია, მაყვალა, მანანა, მარიამ, მარიამი, მარინა, მარინე, მართა, მედეა, მერი, მზია, ნანა, ნანული, ნატალია, ნათელა, ნათია, ნესტან, ნესტანი, ნინო, რუსიკო, რუსუდან, რუსუდანი, სალომე, სოფიო, თამარ, თამარი, ტატიანა, თეკლა, თინათინ, თინათინი, ცისანა, ცისია, ციური, ვარდო]
}
lastNames: {
male: [აბაკელია, აბაზასძე, აბრამიძე, აბულეთისძე, აგიაშვილი, ახალაია, ალასანია, ალექსიძე, ამირეჯიბი, ამირხანაშვილი, ანდრონიკაშვილი, აფაქიძე, არახამია, არზიანი, ასლანიშვილი, ავალიშვილი, ბაბადიშვილი, ბაგრატიონი დავითაშვილი, ბახია, ბაქრაძე, ბალანჩივაძე, ბანძელაძე, ბარნაბიშვილი, ბესტავაშვილი, ბოჭორიშვილი, ბოლქვაძე, ბურჭულაძე, ბუკია, ბასილია, ჩაჩხიანი, ჩარკვიანი, ჩერქეზიშვილი, ჩიჩუა, ჭკადუა, ჩხეტიძე, ჩახუნაშვილი, ჩხეიძე, დადეშქელიანი, დარსალია, დავითულიანი, დიასამიძე, დონაური, ჯუღაშვილი, გურიის ერისთავი, ესაძე, გაბაშვილი, გახარია, გარსევანიშვილი, გამსახურდია, გელაძე, გიორგაძე, ღლონტი, გოგოლაძე, გრუზინსკი, გურამიშვილი, გურული, გვაზავა, ღურწკაია, იოსელიანი, იაშვილი, ილურიძე, ივანიშვილი, ჯალაღონია, ჯანაშია, ჯაფარიძე, ჯავახიშვილი, ჯელაძე, ჯინჯიხაშვილი, ჯორჯაძე, ჯუღაშვილი, ყალიჩავა, კასრაძე, კერესელიძე, ხარაიშვილი, ხომერიკი, ხუჯაძე, კიკნაძე, ქობალია, კოტრიკაძე, კვერნაძე, ხერხეულიძე, ხიმშიაშვილი, ხინჩეგაშვილი, კობახია, ქობულაშვილი, კოდოშვილი, კურტანიძე, ლიჩელი, ლიპარტელიანი, ლორთქიფანიძე, მონავარდისაშვილი, მაჭავარიანი, მაღალაშვილი, მამალაძე, მჭედლიშვილი, მელიქიშვილი, მელუა, მესხი, მილდიანი, მუსელიანი, მჟავანაძე, ნაკაშიძე, ნემსაძე, ნიჟარაძე, ოჩიაური, ორბელიანი, ოქროპირიძე, ფანქველაშვილი, პატარაია, პატარკაციშვილი, ფავლენიშვილი, ფხეიძე, რაზმაძე, რეხვიაშვილი, რუსიეშვილი, სააკაძე, საბაური, სარალიძე, საკანდელიძე, შენგელია, შეთეკაური, შველიძე, სიდამონ-ერისთავი, სოლოღაშვილი, შუშანია, სვანაძე, თარხნიშვილი, წერეთელი, ციციშვილი, წულუკიძე, ტუღუში, ტუსიშვილი, ცენტერაძე, უნდილაძე, ვაჩნაძე, ვარდანიძე, ვირსალაძე, ზალკალიანი, ზაქარაშვილი, ზაქარიაძე, ზუმაძე, ზურაბიანი, ზოიძე, ზვიადაძე],
female: [აბაშიძე, აფხაზი, აბულაძე, აბუსელიძე, ახალკაცი, ახვლედიანი, ალავიძე, ამილახვარი, ამირანაშვილი, ანჩაბაძე, ანჯაფარიძე, არაბიძე, არველაძე, ასათიანი, ავალიანი, ათანაშვილი, ბაგრატიონი, ბაგრატიონი მუხრანელი, ბახსოლიანი, ბალახაძე, ბალავაძე, ბარათაშვილი, ბერიძე, ბინიაშვილი, ბოკუჩავა, ბოტკოველი, ბობოხიძე, ბუხრაშვილი, ჭაბუკიანი, ჭანტურია, ჭავჭავაძე, ჭიაურელი, ჩიქოვანი, ჭყონია, ჩოლოყაშვილი, ჩხაიძე, დადიანი, დარჩიძე, დავითაია, დგებუაძე, დოლიძე, დონღვანი, არაგვის ერისთავი, რაჭის ერისთავი, გოგოლაური, გაგუა, განძიელი-გეგელია, გამყრელიძე, გედევანიშვილი, გელოვანი, გიორგობიანი, გლოველი, გოცირიძე, გუგუნავა, გურგენიძე, გურიელი, გვასალია, გოგოლიძე, იარაჯული, იოსავა, იმედაშვილი, ჯამბაკურ-ორბელიანი, ჯანანაშვილი, ჯანდიერი, ჯაყელი, ჯავრიშვილი, ჯიბუტი, ჯიშკარიანი, ჯუანშერიანი, კახაბერიძე, კაპანაძე, ყაზბეგი, ქაშიბაძე, ხარძიანი, ხუციშვილი, ხურცილავა, ყიფიანი, ქორიძე, კვარაცხელია, კვეკვეცია, ხიდირბეგიშვილი, ხინჩაგაშვილი, ხინჩიგაშვილი, კობახიძე, ქოჩაკიძე, კუბლაშვილი, ლაზარაშვილი, ლეონიძე, ლობჟანიძე, ლალიაშვილი, მაჩაბელი, მაჭუტაძე, მაისურაძე, მანველიშვილი, მდივანი, მელქაძე, მენთეშაშვილი, მიქელაძე, მხეიძე, მუხრანელი, ნაკანი, ნანავა, ნიკოლაძე, ნოღაიდელი, ონიანი, ოკინაშვილი, ორჯონიკიძე, ფალავანდიშვილი, პატარავა, პერტახია, ფირცხალაიშვილი, რაფავა, რევაზიშვილი, როყვა, რუხაძე, სააკაშვილი, სანიკიძე, შაბურიძე, შალიკაშვილი, შერვაშიძე, შევარდნაძე, სიჭინავა, სიხარულიძე, სუხიშვილი, სვანიძე, თაბაგარი, თავდგირიძე, ცინცაძე, ცქიტიშვილი, თორელი, თუმანიშვილი, თავხელიძე, უჯმაჯურიძე, ურუშაძე, ვახვახიშვილი, ვეზირიშვილი, ზამბახიძე, ზამთარაძე, ზაქარეიშვილი, ზიბზიბაძე, ზურაბაშვილი, ჟორჟოლიანი, ზოტიკიშვილი]
}
personalEmails: [gmail.com, yahoo.com]
companyNames: [ბადაგონი, კაუკასუს ონლაინი, ქუთაისის ავტომექანიკური, მაგთიკომი, რუსთავის მეტალურგიული, თელასი, ვისოლის ნავთობი, ჯეოსელი]
companySuffixes: [კომპანია, კონსულტაცია, იმეილი, ქარხანა, შეზღუდულია]
companyEmails: [info, contact, office]
text: კაცს ქალი რყვნის, არცერთი მამამკაცი, და მათ შორს არც მაიორიც, არასდროს არ იტყვის უარს,თუკი ქალი დაუძახებს და თუკი ქალს ეს საქმე სხვებზე უკეთესად გამოსდის. ანას ქმრის მკლავებს მზისა და მიწის სურნელი დიოდა,და როდესაც ანას ამ მკლავებში ეძინა,მშობლები ახსენდებოდა,რომლების არასდროს ენახა, შიშნარევ ნეტარებსას განიცდიდა ხოლმე ამ დროს და ასე ნელ-ნელა ცრემლდანთხეული ქალდებოდა ერთადერთი პატრონის მხურვალე მკლავებში. ყველა ბავშვმა იცის,რომ სადაც დედა იქ მამაც უნდა იყოს, ეს მისი თანდაყოლილი ცოდნაა და ამავე დროს საფუძველიც ყველაფრისა, რაც მერე უნდა დახოს და შეისწავლოს. უიარაღო კაცს სალამსაც კი ამადლიან, როცა იარაღის მქონეს და მომხმარებელს მიწამდე უკრავენ თავს.
telephone_number_formats: ['###-###-###']
postal_code: ['####']
city: [თბილისი, ბათუმი, ქუთაისი, რუსთავი, გორი, ზუგდიდი, ფოთი, ხაშური, სამტრედია, სენაკი, ზესტაფონი, მარნეული, თელავი, ახალციხე, ქობულეთი, ოზურგეთი, კასპი, ჭიათურა, წყალტუბო, საგარეჯო, გარდაბანი, ბორჯომი]
street: [გორკის ქუჩა, ჩეხოვის ქუჩა, რუსთაველის გამზირი, თვენსიქსი მაისის მოედანი, ფერდინანდ თავაძის ქუჩა, ჭავჭავაძის გამზირი, კოსტავას, აგლაძის ქუჩა, თამარ მეფის ქუჩა, დავით აღმაშენებლის გამზირი, ვაჟა–ფშაველას გამზირი, გრიბოედოვის ქუჩა, კაკუცა ჩოლოყაშვილის გამზირი, ნინოშვილის ქუჩა, პოლიტკოვსკაიას ქუჩა, სულხან ცინცაძის ქუჩა, ქეთევან წამებულის გამზირი, მეფე სოლომონ II-ის ქუჩა]
country: ['Georgia'] #'USA', 'Russia', 'Greece', 'Turkey'
language: 'KA'
================================================
FILE: src/main/resources/jfairy_pl.yml
================================================
alphabet: aąbcćdeęfghijklłmnoóprsśtuwyzżź
domains: [pl, com, eu, com.pl]
firstNames: {
male: [Adam, Adrian, Aleksander, Antoni, Bartłomiej, Bartosz, Dawid, Dominik, Filip, Franciszek, Igor, Jan, Jakub, Kacper, Kamil, Karol, Krzysztof, Maciej, Maksymilian, Mateusz, Michał, Mikołaj, Oskar, Patryk, Paweł, Piotr, Stanisław, Szymon, Tomasz, Wiktor, Wojciech],
female: [Aleksandra, Alicja, Anna, Dominika, Emilia, Hanna, Joanna, Julia, Karolina, Katarzyna, Kinga, Klaudia, Magdalena, Maja, Małgorzata, Maria, Marta, Martyna, Natalia, Oliwia, Patrycja, Paulina, Weronika, Wiktoria, Zofia, Zuzanna]
}
lastNames: {
male: [Adamiec, Aleksandrowicz, Antkowiak, Banaszak, Barszcz, Bator, Białek, Biernat, Biliński, Bobrowski, Bochenek, Bogdański, Bojarski, Burek, Błaszczyk, Chojnowski, Cichoń, Czech, Czekaj, Dolata, Domagalski, Dominiak, Drewniak, Godlewski, Izdebski, Jabłoński, Jakubczyk, Jakubiak, Janicki, Janusz, Jarząbek, Jędrzejczyk, Kaczmarek, Kaniewski, Kaźmierczak, Kisiel, Kochański, Kowalewski, Kozak, Kozioł, Krzyżanowski, Król, Kujawski, Kulig, Lenart, Majkowski, Malik, Marczak, Mikołajczyk, Mroczek, Mrozek, Murawski, Nawrocki, Nowicki, Okoń, Olszak, Osiński, Paradowski, Paszkowski, Piech, Piwowarski, Porębski, Radziszewski, Rak, Reszka, Roszak, Rusek, Rutkowski, Różański, Różycki, Sadowski, Serafin, Siedlecki, Skibiński, Skoczylas, Skowron, Skowronek, Stachura, Stelmach, Stępień, Szostak, Słomiński, Traczyk, Trzciński, Urbanek, Urbanowicz, Wdowiak, Wilczyński, Witek, Więcek, Wojciechowski, Wojtasik, Woźny, Wójtowicz, Zagórski, Zalewski, Zawada, Zborowski, Żuchowski],
female: [Adamiec, Aleksandrowicz, Antkowiak, Banaszak, Barszcz, Bator, Białek, Biernat, Bilińska, Bobrowska, Bochenek, Bogdańska, Bojarska, Burek, Błaszczyk, Chojnowska, Cichoń, Czech, Czekaj, Dolata, Domagalska, Dominiak, Drewniak, Godlewska, Izdebska, Jabłońska, Jakubczyk, Jakubiak, Janicka, Janusz, Jarząbek, Jędrzejczyk, Kaczmarek, Kaniewska, Kaźmierczak, Kisiel, Kochańska, Kowalewski, Kozak, Kozioł, Krzyżanowska, Król, Kujawska, Kulig, Lenart, Majkowska, Malik, Marczak, Mikołajczyk, Mroczek, Mrozek, Murawska, Nawrocka, Nowicka, Okoń, Olszak, Osińska, Paradowska, Paszkowska, Piech, Piwowarska, Porębska, Radziszewska, Rak, Reszka, Roszak, Rusek, Rutkowska, Różańska, Różycka, Sadowska, Serafin, Siedlecka, Skibińska, Skoczylas, Skowron, Skowronek, Stachura, Stelmach, Stępień, Szostak, Słomińska, Traczyk, Trzcińska, Urbanek, Urbanowicz, Wdowiak, Wilczyńska, Witek, Więcek, Wojciechowska, Wojtasik, Woźna, Wójtowicz, Zagórska, Zalewska, Zawada, Zborowska, Żuchowska]
}
personalEmails: [gmail.com, yahoo.com, poczta.onet.pl, interia.pl, tlen.pl, wp.pl]
companyNames: [AB, AC, Achem, Action, Adamed, Adanex, Aflofarm, Agata Meble, Agnella, Agrecol, Amica, Amplus, Apart, Arcabit, Asseco Poland, Atlas, Autopart, Autosan, Bać-Pol, Bakoma, Barlinek, Barwa, Befado, Bell, Bielenda, Bielmar, Big Star, Biofarm, Black Red White, Boryszew, Brand24, BranQ, CCC, CD Projekt, Cedrob, Ceramika Paradyż, Cersanit, Cisowianka, Cobi, Cognor, Colian, Comarch, Creotech Instruments, Dafi, Dako, Dawtona, Delia, Dino, Dr Irena Eris, Drutex, Eko-Okna, Enea, Energa, Fakro, Famur, Farmona, Ferguson, Ferro, Filmweb, Floslek, FM Group, FoodCare, Gatta, Gerda, Gerlach, Gino Rossi, Goclever, GPW, Graal, Granna, Grupa Azoty, Grupa Nowy Styl, Grycan, Hasco-Lek, Helio, Helios, Herbapol, Hevea, Iglotex, Impel, Indykpol, Inglot, Instal Kraków, Inter Cars, ITAKA, Jelcz, Joanna, JSW, Jurajska, Kazar, KGHM, Kler, Kolporter, Komputronik, Kopernik, Koral, Kospel, Kross, Kubota, Kupiec, Lakma, LiveChat, LOT, Lotos, LPP, Lubawa, Maspex, MaxCom, Meble VOX, Mercator Medical, Mlekovita, Mlekpol, Modecom, Mokate, Monnari, Neonet, Neuca, Newag, Novitus, Oknoplast, Oleofarm, Opoczno, Orlen, Oshee, Pekao, Pelion, PESA, PGE, PGNiG, Piątnica, PKO Bank Polski, PKP, Poczta Polska, Polpharma, Polskie Radio, Polsport, Porta, Pracuj.pl, Pronar, Prosperplast, Protektor, Pruszyński, Prymat, PZL Sędziszów, PZU, Radwag, Rafamet, Rainbow Tours, Recman, Redan, Relpol, Romet, RTV Euro AGD, Ryłko, Samasz, Sanplast, Sante, Selena, Selvita, Sfinks, Sipma, Społem, Stokrotka, Synthos, Śnieżka, Tauron, Techland, Tonsil, Topaz, Toya, Trefl, TVP, Unibep, Unimot, Ursus, Ustronianka, Venita, Vigo, Virtu, Vistula, Vivid Games, Vobro, Wielton, Wirtualna Polska, Wittchen, Wojas, X-KOM, Yes, Zbyszko, Zetkama, Ziaja, Zwoltex]
companySuffixes: [Associates, Company, Consulting, Inc., Industries, Limited, LLC, Ltd]
companyEmails: [info, contact, company, office]
text: >
Nie ma zatem takiego człowieka, który kocha cierpienie samo w sobie, kto by do niego dążył lub chciał go doświadczyć, tylko dlatego, że jest to cierpienie, a dlatego, że czasami zdarzają się takie okoliczności, w których to cierpienie może doprowadzić go do jakiejś wielkiej przyjemności. Dając przykład banalny: któż z nas kiedyś nie podejmował się trudnego wysiłku fizycznego mając na względzie uzyskanie z tego korzyści? Kto ma jakiekolwiek prawo obwiniać człowieka, który wybiera przyjemność nie wiążącą się z przykrymi konsekwencjami, albo tego, kto unika takiego cierpienia, które nie prowadzi do przyjemności? Jednocześnie potępiamy ze słusznym oburzeniem i czujemy niechęć do ludzi, którzy są tak owładnięci urokami nietrwałej przyjemności, tak zaślepieni jej pragnieniem, że nie dostrzegają, iż następstwem ich postępowania będą z pewnością cierpienie i trudności.
telephone_number_formats: ['+48#########']
postal_code: ['##-###']
city: [Biała Piska, Bielany, Boguszyn, Boszkowo, Brzozów, Bęczyn, Cedzyna, Chojnów, Chotowa, Ciechocinek, Czernikowo, Dymów, Dzianisz, Działdowo, Dzierżoniow, Dziwiszów, Gierłoż, Goczałkowice Zdrój, Goleniów, Gowarczów, Grębiszew, Górzno, Głubczyce, Huba, Janów Podlaski, Jarosławiec, Jastrzębie Zdrój, Jeleniów, Jeleśnia, Józefów, Kamienna, Karłowice, Koczala-Dymin, Komarno, Kostomłoty Pierwsze, Kołbaskowo, Krasnobród, Krosno Odrzańskie, Kuków, Kępa k. Sochocina, Leszno, Lubin, Lublin, Lutowiska, Maniowy, Małe Ciche, Mikołajki, Milicz, Miłomłyn, Myślibórz, Młynne, Nowogrodziec, Nowy Tomyśl, Nowy Żmigród, Olchowa, Osieczany, Pabianice, Pakosławice, Piasek, Piaski k. Rucianego-Nidy, Piekary Śląskie, Pisz, Pniewy, Podgórzyn, Podlesice, Prudnik, Pszczyna, Puck, Radomyśl Wielki, Radzyń Podlaski, Rajgród, Rytro, Silec, Skaryszew, Skoczów, Skołyszyn, Srebrna Góra, Srem, Stara Białka, Stryków, Szarocin, Szczyrzyc, Trzebinia, Tłokinia Kościelna, Unieście, Ustka, Ustroń, Wasilków, Wodzisław, Wołów, Wydminy, Włosań, Zabrze, Zabrzeż, Zegrze, Zemborzyce, Zemborzyce Tereszyńskie, Zławieś Wielka, Złocieniec, Żary]
street: [17 Stycznia, Adampolska, Aleja Księcia Józefa Poniatowskiego, Aleja Wielkopolski, Alpejska, Andrychowska, Antoniego Uniechowskiego, Basetli, Bieżuńska, Boglarczyków, Bogucicka, Borecka, Brunona Kicińskiego, Brygadzistów, Budowlana, Bulwarowa, Dezyderego Adama Chłapowskiego, Dobka z Oleśnicy, Dubieńska, Dziatwy, Dziewanny, Długorzeczna, Elsterska, Filtrowa, Frachtowa, Garbarska, Garwolińska, Gibraltarska, Goworowska, Henryka Sienkiewicza, Jerzego Bukowskiego, Józefa Ignacego Kraszewskiego, Kajetana Koźmiana, Kronikarska, Krzysztofa Warszewickiego, Kwarciana, Kwitnącej Akacji, Kłodawska, Lirowa, Ludwicka, Ludwinowska, Makowska, Marii Grzegorzewskiej, Marokańska, Małowiejska, Melioracyjna, Myszyniecka, Naczelnikowska, Narcyzowa, Orderu Uśmiechu, Osieki, Pasłęcka, Patriotów, Piaskowa, Piecuszka, Pilarzy, Plac Wojska Polskiego, Plutonowych, Pomologiczna, Prosta, Przedpole, Przepiórki, Płocka, Rowowa, Roztoki, Rzeczna, Różana, Sejmikowa, Skwer Andrzeja Woyciechowskiego, Skwer Grupy AK „Granat”, Smolna, Stanisława Jachowicza, Stawy, Stefana Drzewieckiego, Synogarlicy, Szmaragdowa, Szulborska, Toporczyków, Traktorzystów, Uniwersału, Walerego Wróblewskiego, Witebska, Wiązów, Wodzisławska, Wschodnia, Wybrzeże Kościuszkowskie, Wybrzeże Szczecińskie, Władysława Bieńczaka, X Poprzeczna, Zakamarek, Zaułek, Zespołowa, Zgrupowania AK „Kampinos”, gen. Józefa Zajączka, ks. Bronisława Markiewicza, ks. Ignacego Skorupki, Łazanowicka, Ługi, św. Antoniego, Łysakowska]
country: ['Polska']
language: 'PL'
================================================
FILE: src/main/resources/jfairy_sk.yml
================================================
alphabet: aáäbcčdďeéfghiíjklĺľmnňoóôpqrŕsštťuúvwxyýzž
domains: [sk, com, eu]
firstNames: {
male: [Adam, Adolf, Adrián, Alan, Albert, Albín, Aleš, Alexander, Alexej, Alfonz, Alfréd, Alojz, Ambróz, Andrej, Anton, Arnold, Arpád, Aurel, Bartolomej, Belo, Beňadik, Benjamín, Bernard, Blahoslav, Blažej, Bohdan, Bohumil, Bohumír, Bohuš, Bohuslav, Boleslav, Bonifác, Boris, Branislav, Bruno, Bystrík, Ctibor, Cyprián, Cyril, Dalibor, Daniel, Dávid, Demeter, Denis, Dezider, Dionýz, Dobroslav, Dominik, Drahomír, Drahoslav, Dušan, Edmund, Eduard, Eliáš, Emanuel, Emil, Erik, Ernest, Ervín, Eugen, Fedor, Félix, Ferdinand, Filip, Florián, František, Frederik, Fridrich, Gabriel, Gašpar, Gejza, Gregor, Gustáv, Henrich, Hubert, Hugo, Ignác, Igor, Iľja, Imrich, Ivan, Izidor, Jakub, Ján, Jarolím, Jaromír, Jaroslav, Jerguš, Jozef, Juraj, Kamil, Karol, Kazimír, Klaudius, Klement, Koloman, Konštantín, Kornel, Kristián, Krištof, Ladislav, Leonard, Leopold, Levoslav, Ľubomír, Ľubor, Ľuboš, Ľuboslav, Ľudomil, Ľudovít, Lukáš, Marcel, Marek, Marián, Mário, Martin, Matej, Matúš, Maximilián, Medard, Metod, Michal, Mikuláš, Milan, Miloš, Miloslav, Miroslav, Mojmír, Móric, Nikolaj, Norbert, Oldrich, Oleg, Oliver, Ondrej, Oskár, Oto, Pankrác, Patrik, Pavol, Peter, Pravoslav, Prokop, Radomír, Radoslav, Radovan, Radúz, Rastislav, René, Richard, Róbert, Roland, Roman, Rudolf, Samuel, Sergej, Servác, Severín, Silvester, Šimon, Slavomír, Stanislav, Štefan, Svätopluk, Svetozár, Tadeáš, Teodor, Tibor, Tichomír, Timotej, Tomáš, Urban, Václav, Valentín, Valér, Vasil, Vavrinec, Vendelín, Viktor, Viliam, Vincent, Vít, Víťazoslav, Vladimír, Vladislav, Vlastimil, Vojtech, Vratislav, Vratko, Zdenko, Žigmund, Zlatko, Zoltán],
female: [Adela, Adriána, Agáta, Agnesa, Alana, Albína, Alena, Alexandra, Alica, Alojzia, Alžbeta, Amália, Anabela, Anastázia, Andrea, Anežka, Angela, Angelika, Anna, Antónia, Aurélia, Barbara, Barbora, Beáta, Berta, Bianka, Bibiána, Blanka, Blažena, Bohdana, Bohumila, Bohuslava, Božena, Božidara, Branislava, Brigita, Bronislava, Cecília, Dagmara, Dana, Daniela, Darina, Daša, Denisa, Diana, Dobromila, Dobroslava, Dominika, Dorota, Drahomíra, Drahoslava, Dušana, Edita, Ela, Elena, Eleonóra, Eliška, Elvíra, Ema, Emília, Erika, Estera, Etela, Eugénia, Eva, Filoména, Františka, Gabriela, Galina, Gertrúda, Gizela, Hana, Hedviga, Helena, Henrieta, Hermína, Hilda, Hortenzia, Ida, Ingrida, Irena, Irma, Ivana, Iveta, Ivica, Izabela, Jana, Jarmila, Jaroslava, Jela, Jolana, Jozefína, Judita, Justína, Kamila, Karolína, Katarína, Klára, Klaudia, Kornélia, Kristína, Kvetoslava, Ladislava, Laura, Lea, Lenka, Lesana, Lesia, Liana, Libuša, Linda, Lívia, Ľubica, Ľubomíra, Ľuboslava, Lucia, Ľudmila, Lujza, Lýdia, Magdaléna, Malvína, Marcela, Margaréta, Margita, Mária, Marianna, Marína, Marta, Martina, Matilda, Melánia, Michaela, Milada, Milena, Milica, Miloslava, Milota, Miriama, Miroslava, Monika, Nadežda, Natália, Nataša, Nikola, Nina, Nora, Oľga, Olívia, Olympia, Otília, Oxana, Patrícia, Paulína, Perla, Petra, Petrana, Petronela, Radoslava, Regina, Renáta, Romana, Rozália, Ružena, Sabína, Sidónia, Silvia, Simona, Sláva, Slávka, Slavomíra, Soňa, Stanislava, Štefánia, Stela, Svetlana, Tamara, Tatiana, Terézia, Uršuľa, Valentína, Valéria, Vanda, Veronika, Viera, Vieroslava, Viktória, Vilma, Viola, Vladimíra, Vlasta, Xénia, Žaneta, Zdenka, Želmíra, Zina, Zita, Zlatica, Žofia, Zoja, Zora, Zuzana]
}
lastNames: {
male: [Abrahám, Adam, Adamec, Almáši, Anderle, András, Andráš, Andráši, Andrašík, Andrášik, Andrassy, Andrássy, Andrásy, Antal, Arpáš, Árpás, Augusta, Babka, Bača, Baďura, Bahna, Bahno, Bajnok, Bakos, Bakoš, Balaša, Baláž, Balázs, Balog, Balogh, Ban, Bán, Baňa, Báňa, Bano, Baňo, Báno, Bánó, Baran, Baranka, Barbara, Barbora, Bárta, Bartoš, Bartošík, Bartovič, Baša, Bašek, Baška, Baško, Bašo, Beck, Bednár, Bednárik, Beihofner, Bek, Beka, Beko, Bella, Beň, Beňa, Beňo, Beňuš, Beňuška, Beran, Bernard, Bernardi, Bernardo, Bernhard, Bernhardt, Bernolák, Bezák, Bicek, Bielik, Bilek, Bílek, Bilka, Bílka, Bilko, Bilkó, Biľko, Bílko, Binder, Biringer, Blaha, Bláha, Blaho, Blažej, Bobula, Bobuľa, Bologna, Bondra, Boór, Bor, Bór, Bora, Bóra, Borek, Borič, Borik, Borík, Bórik, Bôrik, Boris, Boriš, Borisov, Borka, Borko, Boro, Borovský, Borovszky, Borovszký, Borový, Borowski, Bosák, Boška, Bošňák, Botev, Brabec, Braxatoris, Brezina, Brunovský, Bruška, Bruško, Budín, Bugár, Bukovský, Buš, Čajkovič, Capek, Čapek, Capka, Čapka, Capko, Čapko, Čapkovič, Čapla, Čapľa, Čaplovič, Čarnogurský, Čekovský, Černík, Černoch, Červeň, Červený, Cesnak, Česnek, Chalupka, Chára, Chovan, Chován, Chovanec, Chrappa, Chudík, Cibula, Cibuľa, Cibulka, Cibuľka, Čiernik, Čierny, Cigán, Cigáň, Cigánik, Cíger, Cikán, Čobrda, Cyprich, Czibula, Czibulka, Dacej, Ďaďo, Dan, Dán, Dana, Daňa, Dáňa, Dančák, Dančiak, Dancsák, Danek, Daněk, Dani, Dáni, Danko, Dankó, Daňko, Dano, Daňo, Dany, Dányi, Dávid, Debnár, Dej, Dekýš, Dérer, Devečka, Dibarbora, Dida, Dido, Dobšinský, Dočolomanský, Doležal, Dora, Dorka, Dorko, Dorkó, Ďorko, Dorot, Dorota, Dostal, Dostál, Dostálek, Drajna, Droppa, Drotár, Dubnička, Dubovský, Duda, Dudek, Dudik, Dudík, Dudka, Dudko, Dudo, Dudok, Dudov, Duffy, Duka, Dula, Dulla, Ďurča, Ďurčo, Durdík, Durek, Ďurek, Ďurica, Ďuriš, Ďurka, Ďurko, Ďurkovič, Ďurkovský, Ďuro, Ďurovič, Ďurovský, Duša, Duschek, Dusek, Dušek, Dušička, Dusík, Duska, Duška, Dúška, Dusko, Duško, Ďuško, Dutka, Ďutka, Dutko, Dvonč, Dvorský, Dyda, Dzurjanin, Fabian, Fabián, Fabuš, Faith, Fajnor, Farkas, Farkaš, Farkašovský, Fedor, Feldek, Fico, Figuli, Filc, Filip, Filipek, Filípek, Filipko, Fink, Finka, Fischer, Fisher, Forgáč, Fraňa, Fráňa, Franek, Franěk, Fránek, Frank, Franka, Franko, Frano, Fraňo, Frei, Fridman, Friedman, Frühauf, Ftáčnik, Ftorek, Gál, Galik, Galík, Gálik, Galis, Gális, Gallo, Garin, Gašpar, Gašparovič, Gavalier, Getting, Gocník, Golonka, Gregor, Greguš, Grňa, Grznár, Gyurkovics, Gyurovics, Gyurovszky, Gyurovszký, Hablák, Habšuda, Hagara, Hála, Halák, Haluška, Hanak, Hanák, Haňak, Haňák, Hanek, Hank, Hanka, Hanke, Hanko, Hanousek, Hanus, Hanuš, Hanusek, Hanúsek, Hanuska, Hanuška, Hanúska, Hanzal, Hanzel, Hargaš, Harvan, Harvánek, Haščák, Havran, Havránek, Havranka, Havranko, Havrankó, Hečko, Heretik, Hladký, Hlaváč, Hlaváček, Hlaváčik, Hliník, Hlinka, Hochschorner, Hodža, Holič, Holiček, Holíček, Holička, Holík, Holoubek, Holub, Holubec, Holubek, Holúbek, Holubka, Holubko, Holúbok, Holuby, Horváth, Hossa, Hosták, Hošták, Hošťák, Hoza, Hraško, Hrdlička, Hrianka, Hric, Hrmo, Hroboň, Hruška, Hrušovský, Hryc, Huba, Hudáček, Hus, Hús, Husa, Huša, Husák, Husár, Husek, Hušek, Húšek, Huska, Huška, Húska, Húška, Hušo, Husták, Husťák, Hušták, Hušťák, Huszár, Huszka, Ihnačák, Jakab, Jakabovič, Jakoubek, Jakub, Jakuba, Jakubček, Jakubčík, Jakubčo, Jakubec, Jakubecz, Jakubek, Jakúbek, Jakubík, Jakubka, Jakubko, Jalovec, Jan, Ján, Janáček, Janák, Janča, Janček, Jančo, Janeček, Janečka, Janečko, Janek, Jánek, Jáni, Janík, Janka, Janko, Jankó, Jano, Jáno, Janočko, Janoš, János, Jánoš, Janošek, Jánošík, Janoška, Jánoska, Jánoška, Janoško, Jánoško, Janošo, Janoušek, Jantošovič, Jedľovský, Jendek, Jeník, Jerkovič, Jirek, Jirka, Jonata, Junas, Junás, Junáš, Juráš, Jurča, Jurčina, Jurčo, Jurek, Jurík, Jurin, Jurina, Jurka, Jurko, Jurkovič, Juroška, Jurovčík, Kaliský, Kállay, Kaniak, Kára, Kárpáty, Karul, Karvaš, Kavický, Kazik, Kazík, Kázik, Keller, Kello, Kelo, Keníž, Ker, Kisel, Kiseľ, Kisela, Kiseľa, Kissel, Klapač, Klapáč, Klapka, Klapko, Klaus, Klepač, Klepáč, Klepsatel, Klima, Klíma, Klimáček, Klimek, Klimko, Klimkovič, Klimo, Kližan, Klokoč, Klopačka, Kniha, Koc, Koč, Koča, Kocák, Kocek, Kočí, Kocian, Kocián, Kočiš, Kocka, Kočka, Kočko, Kocour, Kocourek, Kocur, Kocúr, Kocura, Kocúrik, Koky, Kolár, Kolesár, Kollár, Kolnik, Kolník, Konopka, Konôpka, Konrad, Konrád, Konstantinidis, Kopa, Kopp, Koppa, Korčák, Korec, Kostka, Kôstka, Kostrec, Koszta, Kosztka, Kotes, Kotian, Kotleba, Kotulič, Kotzian, Kouba, Koubek, Kováč, Kováčik, Koza, Kozáček, Kozáčik, Kozak, Kozák, Kozakov, Kozmon, Krajči, Krajčí, Krajčír, Krajčo, Krajčovič, Krajíček, Král, Kráľ, Králik, Králík, Kráľovič, Kramár, Krasnohorský, Krásnohorský, Krčméry, Kreheľ, Krejča, Krejčí, Krištof, Kríž, Križan, Krížik, Kroner, Króner, Kropilák, Kroták, Kroupa, Krupa, Krúpa, Kryštof, Kuba, Kubec, Kubek, Kúbek, Kubiček, Kubíček, Kubička, Kubičko, Kubiczek, Kubík, Kubitschek, Kubka, Kubko, Kubo, Kučera, Kucsera, Kuffa, Kuna, Kunda, Kunka, Kunst, Kupa, Kupka, Kupko, Kuruc, Kurucz, Kus, Kuš, Kús, Kúš, Kuša, Kuska, Kuška, Kúska, Kušo, Kysel, Kyseľ, Kysela, Kyseľa, Kyselý, Labant, Labuda, Laca, Lacka, Lacko, Laco, Lajčák, Lajčiak, Lamač, Landau, Langoš, Lepšík, Lesný, Leto, Lettrich, Lexa, Lintner, Lipa, Lípa, Lipka, Lipko, Lipták, Lisický, Liška, Líška, Litva, Loj, Loja, Lojek, Lojka, Lojko, Lubina, Lukáč, Lukachich, Lukáči, Lukács, Luks, Lukš, Luksa, Lukša, Lupták, Ľupták, Lux, Mác, Maca, Máca, Macek, Maček, Máček, Mach, Macha, Mácha, Machát, Machata, Machnáč, Macho, Máčik, Mack, Macka, Mácka, Macko, Mackó, Mačko, Mackovič, Mačkovič, Maco, Mačo, Maczko, Maczkó, Maczo, Maczó, Madar, Madár, Maďar, Maďár, Madara, Maďara, Madaras, Madaraš, Madarás, Madarasz, Madarász, Maďarič, Madej, Magál, Magyar, Magyár, Majdan, Majdán, Majeský, Mak, Mák, Maka, Mako, Makó, Makovec, Makovica, Makovický, Makový, Malachovský, Malina, Malíšek, Mamojka, Marcin, Marcinek, Marcínek, Marcinko, Mareček, Marek, Margita, Marián, Mark, Márk, Marko, Markos, Markoš, Markovič, Markovics, Markovicz, Markovits, Markus, Markuš, Márkus, Márkuš, Maroš, Marta, Márta, Martan, Martáň, Marťan, Martanovič, Martin, Martín, Martina, Martinák, Martinček, Martinec, Martinek, Martínek, Martinka, Martinko, Martinkovič, Martinovič, Marton, Márton, Masár, Masarik, Masarík, Masárik, Masaryk, Maslo, Masný, Matiaško, Mečiar, Medvecký, Medved, Medveď, Melcer, Melczer, Melichar, Melichár, Melichárek, Melicher, Melicherčík, Melicherík, Meltzer, Melzer, Menhart, Meňhart, Meňhárt, Meňhért, Menšík, Menyhárt, Menyhért, Michalech, Michálech, Michalek, Michálek, Michalica, Michalík, Michálik, Michalka, Michalko, Mihál, Mihalik, Mihalík, Mihálik, Miklík, Mikloš, Miklós, Mikloško, Mikulák, Mikulík, Mikuš, Mikúš, Miler, Miller, Milota, Mináč, Mišík, Mistrík, Mlynár, Mlynárik, Mojsej, Mojžiš, Mojžíš, Mokroš, Molnar, Molnár, Mór, Mora, Móra, Moravčík, Moravec, Mori, Móri, Moric, Móric, Móricz, Motyčka, Motyka, Mraz, Mráz, Mrazek, Mrázek, Mrazík, Mrázik, Mrázka, Mrazko, Mrázko, Mucha, Müller, Murgaš, Murin, Murín, Musil, Mydlo, Nábělek, Nádas, Nádaš, Nádasi, Nádaši, Nagy, Nálepka, Navara, Nedvěd, Nemec, Němec, Nemet, Német, Nemeth, Németh, Neruda, Nezval, Nitra, Nižnanský, Nižnánsky, Nižňanský, Nor, Nota, Nóta, Nôta, Novak, Novák, Novota, Novotný, Nowak, Nvota, Obšut, Očenáš, Olah, Oláh, Ondrák, Ondráš, Ondrášek, Ondrašík, Ondrášik, Ondrejka, Ondrejko, Ondrejkovič, Ondrus, Ondruš, Ondrusek, Ondrušek, Ondrúšek, Ondruška, Ondruško, Opluštil, Orlík, Orság, Ország, Országh, Otčenáš, Pajer, Pala, Paľa, Pála, Pálek, Palka, Paľka, Pálka, Palko, Palkó, Paľko, Pálko, Palkovič, Pall, Páll, Palla, Pallo, Palo, Paló, Paľo, Palov, Paľov, Palovčík, Paľovčík, Palovič, Paluch, Palúch, Paľuch, Paľúch, Pap, Papp, Pašek, Paška, Paško, Pauk, Paúk, Pauko, Pauliček, Paulíček, Paulik, Paulík, Pauliny, Paulíny, Paulovič, Pavel, Pável, Pavelec, Pavelek, Pavelka, Pavelko, Pavka, Pavko, Pavliček, Pavlíček, Pavličko, Pavlik, Pavlík, Pavlikovský, Pavlo, Pavlov, Pavlovič, Pavol, Pavuk, Pavúk, Pawlak, Pawlik, Pelikan, Pelikán, Pellegrini, Pellegríni, Pepucha, Pešek, Peška, Peško, Petrovický, Petruška, Pichlík, Pika, Píka, Plaucha, Plavec, Plavucha, Plch, Plekanec, Plešivec, Podhradský, Podkonický, Polák, Polgár, Poliak, Pollák, Procháska, Prochazka, Procházka, Prohaska, Proháska, Prohászka, Pucher, Pupák, Puška, Puškár, Puskás, Puškáš, Rak, Rák, Rakovan, Raši, Repiský, Révay, Richard, Richtár, Richter, Riha, Riša, Riška, Riško, Rišo, Riszdorfer, Roháč, Rohaček, Roháček, Roháčik, Rojek, Rojka, Rojko, Róm, Romančík, Rosa, Rosina, Rót, Roth, Róth, Rott, Rozenberg, Rubik, Rubík, Rufus, Rúfus, Rus, Rusko, Rusnak, Rusnák, Rusňak, Rusňák, Rusnok, Rusznyák, Ruttkay, Ružička, Rybár, Rybárik, Rybníček, Rys, Ryš, Rýs, Ryša, Ryška, Ryško, Sabo, Sadiki, Šafránek, Sagan, Sagán, Salaj, Salajka, Šalajka, Saliji, Samel, Sameľ, Sámel, Sámeľ, Samson, Samuel, Sanitra, Šarkan, Sárkány, Scherer, Seč, Sedliak, Sekera, Senko, Ševčenko, Šidlo, Sidor, Sigmund, Šima, Šíma, Šimeček, Šimečka, Šimek, Šimíček, Šimík, Šimka, Šimko, Šimo, Simon, Šimon, Šimonovič, Škantar, Škantár, Sklár, Sklenár, Sklenárik, Sklenica, Sklenička, Sklenka, Skokan, Škriniar, Škultéty, Skutecký, Šlahor, Slašťan, Slivka, Šlivka, Slivko, Sloboda, Slobodník, Slota, Slovák, Slovinec, Šmajda, Smrek, Sokol, Solan, Solej, Šoltés, Šoltýs, Šouc, Šoustal, Špilár, Stantien, Starosta, Šťastný, Stefan, Štefan, Štefánek, Štefánik, Štefanka, Štefanko, Stefanovič, Štefanovič, Štefuca, Štefunko, Štěpán, Štěpánek, Stevanovič, Stodola, Straka, Štraus, Strauss, Štrauss, Štrba, Strnisko, Strýček, Stümpel, Šulc, Šuňavec, Šurka, Šváb, Šváby, Švehla, Svoboda, Svobodník, Svrbík, Sýkora, Szabo, Szabó, Szalai, Szalay, Szekeres, Szelepcsényi, Szomolányi, Tahy, Ťapák, Tatar, Tatár, Tatarka, Tatárka, Ťažký, Thoma, Thomka, Tikal, Timek, Timka, Timko, Tirpák, Tiso, Toman, Tomaň, Tomana, Tomanek, Tománek, Tomaník, Tomas, Tomáš, Tomaschek, Tomašek, Tomášek, Tomášik, Tomaška, Tomáška, Tomaško, Tomáško, Tomeček, Tomečka, Tomečko, Tomek, Tomka, Tomko, Tóth, Trlík, Truben, Tuma, Tupy, Tupý, Turčok, Uram, Urblík, Ursiny, Ursíny, Vajcik, Vajcík, Vajda, Valach, Valachovič, Valent, Valenta, Valentín, Valíček, Valušek, Valuška, Vanek, Vaněk, Varga, Vašek, Vašíček, Vaska, Vaška, Váska, Vasko, Vaško, Vavrinec, Velďák, Vencel, Vesel, Veterník, Vicen, Vicena, Vico, Vilikovský, Višňovský, Vlach, Vlachovič, Vlk, Vlna, Vlnka, Vojtek, Vojtka, Vojtko, Vomáčka, Vondra, Vondráček, Vondrák, Vondrka, Vondruška, Vozar, Vozár, Vozáry, Vrabec, Vrablec, Vydarený, Weiss, Williams, Wittlinger, Záborský, Zachar, Zachara, Zachariaš, Zachariáš, Zajac, Zajíc, Zatopek, Zátopek, Zelenay, Železnik, Železník, Ziga, Žiga, Žigmund, Zigo, Zigó, Žigo, Zika, Zíka, Zikmund, Ziko, Zima, Zíma, Zimka, Zipser, Zoubek, Zsiga, Zsigmond, Zsigmondy, Zsigo, Zsigó, Zubek, Zúbek, Zubka, Zubko, Zubrík, Zúbrik, Zyka, Zýka],
female: [Abrahámová, Adamcová, Adamová, Almášiová, Anderleová, Andrašíková, Andrášiková, Andrášiová, Andrásová, Andrášová, Andrassa, Andrássa, Andrása, Antalová, Arpášová, Árpásová, Augustová, Babková, Bačová, Baďurová, Bahnová, Bajnoková, Bakosová, Bakošová, Balašová, Balážová, Balázsová, Baloghová, Balogová, Bánóová, Banová, Baňová, Bánová, Báňová, Baranková, Baranová, Barbarová, Barborová, Bartošíková, Bartošová, Bártová, Bartovičová, Bašeková, Bašková, Bašová, Becková, Bednáriková, Bednárová, Beihofnerová, Beková, Bellová, Beňová, Beňušková, Beňušová, Beranová, Bernardiová, Bernardová, Bernhardová, Bernhardtová, Bernoláková, Bezáková, Biceková, Bieliková, Bileková, Bíleková, Bilkóová, Bilková, Biľková, Bílková, Binderová, Biringerová, Blahová, Bláhová, Blažejová, Bobulová, Bobuľová, Bolognová, Bondrová, Boórová, Boreková, Boričová, Boriková, Boríková, Bóriková, Bôriková, Borisová, Borišová, Borisovová, Borková, Borová, Bórová, Borovská, Borovszka, Borovszká, Borová, Borowskiová, Bosáková, Bošková, Bošňáková, Botevová, Brabcová, Braxatorisová, Brezinová, Brunovská, Brušková, Budínová, Bugárová, Bukovská, Bušová, Čajkovičová, Capeková, Čapeková, Capková, Čapková, Čapkovičová, Čaplová, Čapľová, Čaplovičová, Čarnogurská, Čekovská, Černíková, Černochová, Červeňová, Červená, Cesnaková, Česneková, Chalupková, Chárová, Chovánová, Chovancová, Chovanová, Chrappová, Chudíková, Cibulková, Cibuľková, Cibulová, Cibuľová, Čierniková, Čierna, Cigániková, Cigánová, Cigáňová, Cígerová, Cikánová, Čobrdová, Cyprichová, Czibulková, Czibulová, Dacejová, Ďaďová, Dančáková, Dančiaková, Dancsáková, Daneková, Daněková, Daniová, Dániová, Dankóová, Danková, Daňková, Danová, Daňová, Dánová, Dáňová, Dányiová, Danová, Dávidová, Debnárová, Dejová, Dekýšová, Dérerová, Devečková, Dibarborová, Didová, Dobšinská, Dočolomanská, Doležalová, Dorkóová, Dorková, Ďorková, Dorotová, Dorová, Dostáleková, Dostalová, Dostálová, Drajnová, Droppová, Drotárová, Dubničková, Dubovská, Dudeková, Dudiková, Dudíková, Dudková, Dudoková, Dudová, Dudovová, Duffa, Duková, Dullová, Dulová, Ďurčová, Durdíková, Dureková, Ďureková, Ďuricová, Ďurišová, Ďurková, Ďurkovičová, Ďurkovská, Ďurová, Ďurovičová, Ďurovská, Duscheková, Duseková, Dušeková, Dušičková, Dusíková, Dusková, Dušková, Dúšková, Ďušková, Dušová, Dutková, Ďutková, Dvončová, Dvorská, Dydová, Dzurjaninová, Fabianová, Fabiánová, Fabušová, Faithová, Fajnorová, Farkasová, Farkašová, Farkašovská, Fedorová, Feldeková, Ficová, Figuliová, Filcová, Filipeková, Filípeková, Filipková, Filipová, Finková, Fischerová, Fisherová, Forgáčová, Franeková, Franěková, Fráneková, Franková, Franová, Fraňová, Fráňová, Freiová, Fridmanová, Friedmanová, Frühaufová, Ftáčniková, Ftoreková, Galiková, Galíková, Gáliková, Galisová, Gálisová, Gallová, Gálová, Garinová, Gašparová, Gašparovičová, Gavalierová, Gettingová, Gocníková, Golonková, Gregorová, Gregušová, Grňová, Grznárová, Gyurkovicsová, Gyurovicsová, Gyurovszka, Gyurovszká, Habláková, Habšudová, Hagarová, Haláková, Hálová, Halušková, Hanaková, Hanáková, Haňaková, Haňáková, Haneková, Hankeová, Hanková, Hanouseková, Hanuseková, Hanúseková, Hanusková, Hanušková, Hanúsková, Hanusová, Hanušová, Hanzalová, Hanzelová, Hargašová, Harváneková, Harvanová, Haščáková, Havráneková, Havrankóová, Havranková, Havranová, Hečková, Heretiková, Hladká, Hlaváčová, Hlaváčeková, Hlaváčiková, Hliníková, Hlinková, Hochschornerová, Hodžová, Holičeková, Holíčeková, Holičková, Holičová, Holíková, Holoubeková, Holubcová, Holubeková, Holúbeková, Holubková, Holúboková, Holubová, Holuba, Horváthová, Hossová, Hostáková, Hoštáková, Hošťáková, Hozová, Hrašková, Hrdličková, Hrianková, Hricová, Hrmová, Hroboňová, Hrušková, Hrušovská, Hrycová, Hubová, Hudáčeková, Husáková, Husárová, Huseková, Hušeková, Húšeková, Husková, Hušková, Húsková, Húšková, Husová, Hušová, Húsová, Hustáková, Husťáková, Huštáková, Hušťáková, Huszárová, Huszková, Ihnačáková, Jakabová, Jakabovičová, Jakoubeková, Jakubčeková, Jakubčíková, Jakubcová, Jakubčová, Jakubeczová, Jakubeková, Jakúbeková, Jakubíková, Jakubková, Jakubová, Jalovcová, Janáčeková, Janáková, Jančeková, Jančová, Janečeková, Janečková, Janeková, Jáneková, Janíková, Jániová, Jankóová, Janková, Janočková, Janošeková, Jánošíková, Janošková, Jánosková, Jánošková, Janošová, Jánosová, Jánošová, Janoušeková, Janová, Jánová, Jantošovičová, Jedľovská, Jendeková, Jeníková, Jerkovičová, Jireková, Jirková, Jonatová, Junasová, Junásová, Junášová, Jurášová, Jurčinová, Jurčová, Jureková, Juríková, Jurinová, Jurková, Jurkovičová, Jurošková, Jurovčíková, Kaliská, Kálla, Kaniaková, Kárová, Kárpáta, Karulová, Karvašová, Kavická, Kaziková, Kazíková, Káziková, Kellerová, Kellová, Kelová, Kenížová, Kerová, Kiselová, Kiseľová, Kisselová, Klapačová, Klapáčová, Klapková, Klausová, Klepačová, Klepáčová, Klepsatelová, Klimáčeková, Klimeková, Klimková, Klimkovičová, Klimová, Klímová, Kližanová, Klokočová, Klopačková, Knihová, Kocáková, Koceková, Kocianová, Kociánová, Kočíová, Kočišová, Kocková, Kočková, Kocoureková, Kocourová, Kocová, Kočová, Kocúriková, Kocurová, Kocúrová, Koka, Kolárová, Kolesárová, Kollárová, Kolniková, Kolníková, Konopková, Konôpková, Konradová, Konrádová, Konstantinidisová, Kopová, Koppová, Korčáková, Korcová, Kostková, Kôstková, Kostrcová, Kosztková, Kosztová, Kotesová, Kotianová, Kotlebová, Kotuličová, Kotzianová, Koubeková, Koubová, Kováčová, Kováčiková, Kozáčeková, Kozáčiková, Kozaková, Kozáková, Kozakovová, Kozmonová, Kozová, Krajčiová, Krajčíová, Krajčírová, Krajčová, Krajčovičová, Krajíčeková, Králiková, Králíková, Králová, Kráľová, Kráľovičová, Kramárová, Krasnohorská, Krásnohorská, Krčméra, Kreheľová, Krejčíová, Krejčová, Krištofová, Križanová, Krížiková, Krížová, Kronerová, Krónerová, Kropiláková, Krotáková, Kroupová, Krupová, Krúpová, Kryštofová, Kubcová, Kubeková, Kúbeková, Kubičeková, Kubíčeková, Kubičková, Kubiczeková, Kubíková, Kubitscheková, Kubková, Kubová, Kučerová, Kucserová, Kuffová, Kundová, Kunková, Kunová, Kunstová, Kupková, Kupová, Kurucová, Kuruczová, Kusková, Kušková, Kúsková, Kusová, Kušová, Kúsová, Kúšová, Kyselová, Kyseľová, Kyselá, Labantová, Labudová, Lacková, Lacová, Lajčáková, Lajčiaková, Lamačová, Landauová, Langošová, Lepšíková, Lesná, Letová, Lettrichová, Lexová, Lintnerová, Lipková, Lipová, Lípová, Liptáková, Lisická, Lišková, Líšková, Litvová, Lojeková, Lojková, Lojová, Lubinová, Lukachichová, Lukáčiová, Lukáčová, Lukácsová, Luksová, Lukšová, Luptáková, Ľuptáková, Luxová, Maceková, Mačeková, Máčeková, Machatová, Machátová, Machnáčová, Machová, Máchová, Máčiková, Mackóová, Macková, Mačková, Mácková, Mackovičová, Mačkovičová, Macová, Mačová, Mácová, Maczkóová, Maczková, Maczóová, Maczová, Madarasová, Madarašová, Madarásová, Madaraszová, Madarászová, Maďaričová, Madarová, Madárová, Maďarová, Maďárová, Madejová, Magálová, Magyarová, Magyárová, Majdanová, Majdánová, Majeská, Makóová, Maková, Máková, Makovcová, Makovická, Makovicová, Maková, Malachovská, Malinová, Malíšeková, Mamojková, Marcineková, Marcíneková, Marcinková, Marcinová, Marečeková, Mareková, Margitová, Mariánová, Markosová, Markošová, Marková, Márková, Markovičová, Markovicsová, Markoviczová, Markovitsová, Markusová, Markušová, Márkusová, Márkušová, Marošová, Martanová, Martáňová, Marťanová, Martanovičová, Martináková, Martinčeková, Martincová, Martineková, Martíneková, Martinková, Martinkovičová, Martinová, Martínová, Martinovičová, Martonová, Mártonová, Martová, Mártová, Masariková, Masaríková, Masáriková, Masárová, Masaryková, Maslová, Masná, Matiašková, Mečiarová, Medvecká, Medvedová, Medveďová, Melcerová, Melczerová, Melicháreková, Melicharová, Melichárová, Melicherčíková, Melicheríková, Melicherová, Meltzerová, Melzerová, Menhartová, Meňhartová, Meňhártová, Meňhértová, Menšíková, Menyhártová, Menyhértová, Michalechová, Michálechová, Michaleková, Micháleková, Michalicová, Michalíková, Micháliková, Michalková, Mihaliková, Mihalíková, Miháliková, Mihálová, Miklíková, Miklošková, Miklošová, Miklósová, Mikuláková, Mikulíková, Mikušová, Mikúšová, Milerová, Millerová, Milotová, Mináčová, Mišíková, Mistríková, Mlynáriková, Mlynárová, Mojsejová, Mojžišová, Mojžíšová, Mokrošová, Molnarová, Molnárová, Moravčíková, Moravcová, Moricová, Móricová, Móriczová, Moriová, Móriová, Morová, Mórová, Motyčková, Motyková, Mrazeková, Mrázeková, Mrazíková, Mráziková, Mrazková, Mrázková, Mrazová, Mrázová, Muchová, Müllerová, Murgašová, Murinová, Murínová, Musilová, Mydlová, Náběleková, Nádasiová, Nádašiová, Nádasová, Nádašová, Naga, Nálepková, Navarová, Nedvědová, Nemcová, Němcová, Nemethová, Némethová, Nemetová, Németová, Nerudová, Nezvalová, Nitrová, Nižnanská, Nižnánska, Nižňanská, Norová, Notová, Nótová, Nôtová, Nováková, Novaková, Novotná, Novotová, Nowaková, Nvotová, Obšutová, Očenášová, Olahová, Oláhová, Ondráková, Ondrášeková, Ondrašíková, Ondrášiková, Ondrášová, Ondrejková, Ondrejkovičová, Ondruseková, Ondrušeková, Ondrúšeková, Ondrušková, Ondrusová, Ondrušová, Opluštilová, Orlíková, Orságová, Országhová, Országová, Otčenášová, Pajerová, Páleková, Palkóová, Palková, Paľková, Pálková, Palkovičová, Pallová, Pállová, Palóová, Palová, Paľová, Pálová, Palovčíková, Paľovčíková, Palovičová, Palovová, Paľovová, Paluchová, Palúchová, Paľuchová, Paľúchová, Papová, Pappová, Pašeková, Pašková, Pauková, Paúková, Pauličeková, Paulíčeková, Pauliková, Paulíková, Paulina, Paulína, Paulovičová, Pavelcová, Paveleková, Pavelková, Pavelová, Pávelová, Pavková, Pavličeková, Pavlíčeková, Pavličková, Pavliková, Pavlíková, Pavlikovská, Pavlová, Pavlovičová, Pavlovová, Pavolová, Pavuková, Pavúková, Pawlaková, Pawliková, Pelikanová, Pelikánová, Pellegriniová, Pellegríniová, Pepuchová, Pešeková, Pešková, Petrovická, Petrušková, Pichlíková, Piková, Píková, Plauchová, Plavcová, Plavuchová, Plchová, Plekancová, Plešivcová, Podhradská, Podkonická, Poláková, Polgárová, Poliaková, Polláková, Prochásková, Prochazková, Procházková, Prohasková, Prohásková, Prohászková, Pucherová, Pupáková, Puškárová, Puskásová, Puškášová, Pušková, Raková, Ráková, Rakovanová, Rašiová, Repiská, Réva, Richardová, Richtárová, Richterová, Rihová, Rišková, Rišová, Riszdorferová, Rohačeková, Roháčeková, Roháčiková, Roháčová, Rojeková, Rojková, Romančíková, Rómová, Rosinová, Rosová, Rothová, Róthová, Rótová, Rottová, Rozenbergová, Rubiková, Rubíková, Rufusová, Rúfusová, Rusková, Rusnaková, Rusnáková, Rusňaková, Rusňáková, Rusnoková, Rusová, Rusznyáková, Ruttka, Ružičková, Rybáriková, Rybárová, Rybníčeková, Ryšková, Rysová, Ryšová, Rýsová, Sabová, Sadikiová, Šafráneková, Saganová, Sagánová, Salajková, Šalajková, Salajová, Salijiová, Samelová, Sameľová, Sámelová, Sámeľová, Samsonová, Samuelová, Sanitrová, Šarkanová, Sárkána, Schererová, Sečová, Sedliaková, Sekerová, Senková, Ševčenková, Šidlová, Sidorová, Sigmundová, Šimečeková, Šimečková, Šimeková, Šimíčeková, Šimíková, Šimková, Simonová, Šimonová, Šimonovičová, Šimová, Šímová, Škantarová, Škantárová, Sklárová, Sklenáriková, Sklenárová, Skleničková, Sklenicová, Sklenková, Skokanová, Škriniarová, Škultéta, Skutecká, Šlahorová, Slašťanová, Slivková, Šlivková, Slobodníková, Slobodová, Slotová, Slováková, Slovincová, Šmajdová, Smreková, Sokolová, Solanová, Solejová, Šoltésová, Šoltýsová, Šoucová, Šoustalová, Špilárová, Stantienová, Starostová, Šťastná, Štefáneková, Štefániková, Štefanková, Stefanová, Štefanová, Stefanovičová, Štefanovičová, Štefucová, Štefunková, Štěpáneková, Štěpánová, Stevanovičová, Stodolová, Straková, Štrausová, Straussová, Štraussová, Štrbová, Strnisková, Strýčeková, Stümpelová, Šulcová, Šuňavcová, Šurková, Švábová, Švába, Švehlová, Svobodníková, Svobodová, Svrbíková, Sýkorová, Szabóová, Szabová, Szalaiová, Szala, Szekeresová, Szelepcsényiová, Szomolányiová, Taha, Ťapáková, Tatarková, Tatárková, Tatarová, Tatárová, Ťažká, Thomková, Thomová, Tikalová, Timeková, Timková, Tirpáková, Tisová, Tomaneková, Tománeková, Tomaníková, Tomanová, Tomaňová, Tomascheková, Tomašeková, Tomášeková, Tomášiková, Tomašková, Tomášková, Tomasová, Tomášová, Tomečeková, Tomečková, Tomeková, Tomková, Tóthová, Trlíková, Trubenová, Tumová, Tupa, Tupá, Turčoková, Uramová, Urblíková, Ursina, Ursína, Vajciková, Vajcíková, Vajdová, Valachová, Valachovičová, Valentínová, Valentová, Valíčeková, Valušeková, Valušková, Vaneková, Vaněková, Vargová, Vašeková, Vašíčeková, Vasková, Vašková, Vásková, Vavrincová, Velďáková, Vencelová, Veselová, Veterníková, Vicenová, Vicová, Vilikovská, Višňovská, Vlachová, Vlachovičová, Vlková, Vlnková, Vlnová, Vojteková, Vojtková, Vomáčková, Vondráčeková, Vondráková, Vondrková, Vondrová, Vondrušková, Vozarová, Vozárová, Vozára, Vrabcová, Vrablcová, Vydarená, Weissová, Williamsová, Wittlingerová, Záborská, Zachariašová, Zachariášová, Zacharová, Zajacová, Zajícová, Zatopeková, Zátopeková, Zelena, Železniková, Železníková, Žigmundová, Zigóová, Zigová, Žigová, Zikmundová, Ziková, Zíková, Zimková, Zimová, Zímová, Zipserová, Zoubeková, Zsigmondová, Zsigmonda, Zsigóová, Zsigová, Zubeková, Zúbeková, Zubková, Zubríková, Zúbriková, Zyková, Zýková]
}
personalEmails: [gmail.com, yahoo.com, zoznam.sk, pobox.sk, azet.sk, centrum.sk]
companyNames: [AA GOLD Company, ACHP Levice, Adient Slovakia, Agropodnik Trnava, ALEF Distribution SK, Allianz, ArcelorMittal Gonvarri SSC Slovakia, ASBIS SK, AT&T Global Network Services Slovakia, AUTOCENTRUM AAA AUTO, AUTOCENTRUM AAA AUTO, BASF Slovensko, Bekaert Hlohovec, Bekaert Slovakia, Beltran, BETANOL, BIC Slovakia, BILLA, BMW Slovenská republika, BOGE Elastmetall Slovakia, Brose Prievidza, BSH Drives and Pumps, BUDAMAR LOGISTICS, BUKÓZA Export-Import, C & A Mode, Caprice, CBG, Československá obchodná banka, ČEZ Slovensko, C.LT.W. Finance, Continental Automotive Systems Slovakia, Continental Matador Rubber, Continental Matador Truck Tires, ContiTech Vibration Control Slovakia, COOP Jednota Krupina, COOP Jednota, COOP Jednota Nové Zámky, CRH (Slovensko), D4R7 Construction, DALITRANS, Danfoss Power Solutions, DATALOGIC SLOVAKIA, Dell, Deutsche Telekom Systems Solutions Slovakia, dm drogerie markt, Domäsko, DONGHEE Slovakia, Doprastav, DÔVERA zdravotná poisťovňa, Duslo, DXC Technology Slovakia, ELGAS, Elster, Embraco Slovakia, ENAGRO, Energie2, Enics Slovakia, ENTRAZ, ENVIRAL, ESET, Essity Slovakia, eustream, FAST PLUS, Faurecia Automotive Slovakia, Faurecia Slovakia, FERONA Slovakia, Ferroenergy, FORTISCHEM, FORTUNA SK, Foxconn Slovakia, GAMEX TRADING, GEFCO SLOVAKIA, Generali Poisťovňa, GETRAG FORD Transmissions Slovakia, GeWiS Slovakia, GGT, Golde Lozorno, GRANVIA, GROUPE SEB Slovensko, GRUPO ANTOLIN BRATISLAVA, GSK Consumer Healthcare Levice, Hanon Systems Slovakia, HAVI Logistics, HBPO Slovakia, HB REAVIS MANAGEMENT, Heineken Slovensko, Heineken Slovensko Distribúcia, Hella Slovakia Front-Lighting, Hella Slovakia Signal-Lighting, HENKEL SLOVENSKO, HORNBACH, Hornonitrianske bane Prievidza, Hyundai Steel Slovakia, Hyundai Transys Slovakia, IAC Group (Slovakia), IBM International Services Centre, I.D.C. Holding, IKEA Bratislava, IKEA Components, IKEA Industry Slovakia, ILJIN SLOVAKIA, innogy Slovensko, INTERAGROS, IRDistribution, Jaguar Land Rover Slovakia, Johns Manville Slovakia, JOHNSON CONTROLS INTERNATIONAL, Johnson & Johnson, Kaufland Slovenská republika, Kia Motors Sales Slovensko, Kia Motors Slovakia, KOMUNÁLNA poisťovňa Vienna Insurance Group, KOOPERATIVA poisťovňa Vienna Insurance Group, KRONOSPAN, LABAŠ, Lear Corporation Seating Slovakia, LEONI Slovakia, LESY Slovenskej republiky, LE Trading, Lidl Slovenská republika, MAGNA ENERGIA, MAGNA SLOVTECA, MAHLE Behr Námestovo, MAHLE Behr Senica, Marelli Kechnec Slovakia, MATADOR Automotive Vráble, MECOM GROUP, MED, Mercedes-Benz Financial Services Slovakia, Mercedes-Benz Slovakia, MERKURY SHOP, MEROCO, MetLife Amslico poisťovňa, METRANS /Danubia/, METRO Cash & Carry Slovakia, METRO Cash & Carry SR, Metsa Tissue Slovakia, MET Slovakia, MILK-AGRO, MINERFIN, Mobis Slovakia, Mondi SCP, Motor-Car Bratislava, NAFTA, Národná diaľničná spoločnosť, NAY, Nemak Slovakia, Nestlé Slovensko, N I K É, Novartis Slovakia, NOVIS Insurance Company, O2 Slovakia, OBI Slovakia, OFZ, OKTE, OMV Slovensko, Orange Slovensko, Panasonic Industrial Devices Slovakia, P Automobil Import, PCA Slovakia, PETROLTRANS, Philip Morris Slovakia, PHOENIX Zdravotnícke zásobovanie, PIKARO TRADING, Plastic Omnium Auto Exteriors, Plastic Omnium Auto Inergy Slovakia, Plzeňský Prazdroj Slovensko, Poisťovňa Slovenskej sporiteľne Vienna Insurance Group, Porsche Inter Auto Slovakia, Porsche Slovakia, Poštová banka, Pow-en, PPA CONTROLL, Prima banka Slovensko, PRODCEN, PROTHERM PRODUCTION, Prvá stavebná sporiteľňa, Prysmian Kablo, Quatro project Europe, RAJO, RAVEN, Renault Slovensko, RIEKER OBUV, RIGHT POWER, SAMSUNG Electronics Slovakia, Samsung SDS Global SCL Slovakia, SAS Automotive, Scania Slovakia, Schaeffler Kysuce, Schaeffler Skalica, Secop, SEJONG Slovakia, SEMIKRON, SEOYON E-HWA AUTOMOTIVE SLOVAKIA, SHELL Slovakia, Siemens, Siemens Mobility, Skanska SK, ŠKODA AUTO Slovensko, SLOVAKIA ENERGY, Slovak Telekom, Slovalco, Slovenská elektrizačná prenosová sústava, Slovenská pošta, Slovenská sporiteľňa, Slovenské elektrárne, Slovenské elektrárne, Slovenský plynárenský priemysel, SLOVNAFT, SLOVNAFT MONTÁŽE A OPRAVY, Slovnaft Petrochemicals, SLOVWOOD Ružomberok, Solar 2009, SPP, STAVMAT STAVEBNINY, ST. NICOLAUS, STRABAG, STRABAG Pozemné a inžinierske staviteľstvo, Stredoslovenská distribučná, Stredoslovenská energetika, SUNGWOO HITECH Slovakia, T a M trans spedition, Tate & Lyle Boleraz, Tate & Lyle Slovakia, Tatra banka, TATRAVAGÓNKA, Tatry mountain resorts, TAURIS, TEMPEST, TERNO real estate, Tesco International Clothing Brand, TESCO STORES SR, thyssenkrupp rothe erde Slovakia, TIPOS, Tomra Sorting, Union zdravotná poisťovňa, UNIPETROL SLOVENSKO, UNIQA poisťovňa, U. S. Steel Košice, Vaillant Industrial Slovakia, Vertiv Slovakia, Visteon Electronics Slovakia, Visteon Slovakia, VODOHOSPODÁRSKA VÝSTAVBA, VOLKSWAGEN SLOVAKIA, Všeobecná úverová banka; skrátený názov: VÚB, Všeobecná zdravotná poisťovňa, VUJE, Východoslovenská distribučná, Východoslovenská energetika, WESTech, WHIRLPOOL SLOVAKIA, Wintro Asia, Yanfeng Slovakia Automotive Interior Systems, YURA Corporation Slovakia, Západoslovenská distribučná, Železiarne Podbrezová skrátene ŽP, Železnice Slovenskej republiky, Železničná spoločnosť Cargo Slovakia, Železničná spoločnosť Slovensko, ZF Active Safety Slovakia, ZF SACHS Slovakia, ZF Slovakia, ZKW Slovakia, ZSE Elektrárne, ZSE Energia]
companySuffixes: [s.r.o., a.s., v.o.s., k.s.]
companyEmails: [info, office]
text: A cár s okom sklopeným na bojišti stojí. A čo? Azda tých padlých Slovänov sa bojí? Nie, lež bezdušné svojich hromady tam vidí a zo svojho víťazstva radovať sa stydí. No zahyň, studom večným zahyň, podlá duša, čo o slobodu dobrý ľud môj mi pokúša. Lež večná meno toho nech ovenčí sláva, kto seba v obeť svätú za svoj národ dáva. A ty mor ho! hoj mor ho! detvo môjho rodu, kto kradmou rukou siahne na tvoju slobodu, a čo i tam dušu dáš v tom boji divokom. Mor ty len, a voľ nebyť, ako byť otrokom.
telephone_number_formats: ['+4219########']
postal_code: ['### ##']
city: [Bánovce nad Bebravou, Banská Bystrica, Banská Štiavnica, Bardejov, Bojnice, Bratislava, Brezno, Brezová pod Bradlom, Bytča, Čadca, Čierna nad Tisou, Detva, Dobšiná, Dolný Kubín, Dubnica nad Váhom, Dudince, Dunajská Streda, Fiľakovo, Gabčíkovo, Galanta, Gbely, Gelnica, Giraltovce, Handlová, Hanušovce nad Topľou, Hlohovec, Hnúšťa, Holíč, Hriňová, Humenné, Hurbanovo, Ilava, Jelšava, Kežmarok, Kolárovo, Komárno, Košice, Kráľovský Chlmec, Krásno nad Kysucou, Kremnica, Krompachy, Krupina, Kysucké Nové Mesto, Leopoldov, Levice, Levoča, Lipany, Liptovský Hrádok, Liptovský Mikuláš, Lučenec, Malacky, Martin, Medzev, Medzilaborce, Michalovce, Modra, Modrý Kameň, Moldava nad Bodvou, Myjava, Námestovo, Nemšová, Nesvady, Nitra, Nová Baňa, Nová Dubnica, Nováky, Nové Mesto nad Váhom, Nové Zámky, Partizánske, Pezinok, Piešťany, Podolínec, Poltár, Poprad, Považská Bystrica, Prešov, Prievidza, Púchov, Rajec, Rajecké Teplice, Revúca, Rimavská Sobota, Rožňava, Ružomberok, Sabinov, Šahy, Šaľa, Šamorín, Šaštín-Stráže, Sečovce, Senec, Senica, Sereď, Skalica, Sládkovičovo, Sliač, Snina, Sobrance, Spišská Belá, Spišská Nová Ves, Spišská Stará Ves, Spišské Podhradie, Spišské Vlachy, Stará Ľubovňa, Stará Turá, Strážske, Stropkov, Stupava, Štúrovo, Šurany, Svätý Jur, Svidník, Svit, Tisovec, Tlmače, Topoľčany, Tornaľa, Trebišov, Trenčianske Teplice, Trenčín, Trnava, Trstená, Turany, Turčianske Teplice, Turzovka, Tvrdošín, Veľké Kapušany, Veľký Krtíš, Veľký Meder, Veľký Šariš, Vráble, Vranov nad Topľou, Vrbové, Vrútky, Vysoké Tatry, Žarnovica, Želiezovce, Žiar nad Hronom, Žilina, Zlaté Moravce, Zvolen]
street: [Agátová, Akademická, Ametystová, Andovská, Antolská, Apálska, Astrová, Átriová, Azalková, Azúrová, Bachingerovka, Bagarova, Bajanova, Bajčská, Bajkalská, Bajzova, Bakalárska, Bakossova, Balkán, Banícka, Banská, Banskobystrická, Baranyaiho, Bardejovská, Bariny, Baštová, Bayerova, Bažantia, Bazová, Beckovská, Belianska, Bellušova, Bencúrova, Bendíkova, Benkova, Beöthyho, Berek, Bernolákova, Bešeňovská, Beskydská, Bezručova, Bezručová, Bibic, Bikoš, Bitúnková, Björnsonova, Blahova, Bociania, Bočná, Bohúňova, Bohuslavická, Bojnická, Boorova, Borievková, Borkút, Borová, Bôrová, Borovianska, Borovicová, Botanická, Bottova, Bratislavská, Bratská, Brezová, Brigádnická, Bronzová, Broskyňová, Bubnová, Budovateľská, Buková, Bulharská, Burianova, Buzulucká, Bystrá, Čajakova, Čajkovského, Čapajevova, Cementárenská, Cemjata, Centrálna, Centrum, Čerešňová, Čergovská, Červeňanského, Česká, Chabenecká, Chalupkova, Chmeľová, Chotárna, Cíbická, Ciglianska, Cintorínska, Čipkárska, Čižmárska, Clementisa, Csokonaiho, Ctiborova, Čulenova, Cyrilometódska, Damjanichova, Dargovská, Dedinská, Detvianska, Devínska, Diamantová, Dibrovova, Dilongova, Divadelná, Dlhá, Dlhé, Dobronivská, Dobšinského, Dolná, Ďorocká, Dostihová, Dostojevského, Drevená, Drienková, Drieňová, Drozdia, Družicová, Družstevná, Dubová, Dúbravská, Dúhová, Dukelská, Duklianska, Duklianská, Ďumbierska, Dunajská, Dušianická, Dvorská, Elektrárenská, Engelsova, Eötvösa, Eszterházyovcov, Exnárova, Fajková, Fándlyho, Farská, Fatranská, Federátov, Felcánova, Fialková, Fínska, Fintická, Floriánova, Francisciho, Františkánov, Fučíkova, Gagarinova, Gápľová, Garážová, Garbanka, Garbiarska, Gaštanová, Gazdovská, Gerlachovská, Gogoľova, Golianova, Gombaiho, Gorazdova, Gorkého, Grešova, Gúgska, Haburská, Hadovce, Hadovská, Háj, Hájniky, Hájová, Hájska, Hálkova, Haluzická, Hamrovská, Handlovská, Hanzlíčkova, Harmanecká, Hasičská, Haškova, Havranské, Hečkova, Helenská, Hergottova, Herlianska, Heydukova, Hladná, Hlavná, Hlboká, Hlinická, Hlinícka, Hliníková, Hlinská, Hodonínska, Hodská, Hodžova, Holländerova, Hollého, Holubárov, Holubia, Holubičia, Holubyho, Horárska, Horná, Hornonitrianska, Horská, Hrabová, Hradecká, Hradištná, Hradná, Hradská, Hrebíčková, Hríbová, Hrnčiarska, Hronská, Hruny, Hrušková, Hrúšťova, Húlska, Hurbanistov, Hurbanova, Husova, Hutná, Hutníkov, Hviezdna, Hviezdoslavova, Iliašska, Imatra, Inovecká, Internátna, Inžinierska, Izbická, Jabloňová, Jahodová, Jakubská, Janáčkova, Jánošíkova, Jánošovská, Janouškova, Jánska, Jantárová, Jarková, Járková, Jarná, Jaselská, Jaseňová, Jaspisová, Jastrabia, Jatočná, Javorinka, Javorinská, Javornícka, Javorová, Jazdecká, Jazerná, Jazmínová, Jazvečia, Jedľová, Jégého, Jegorovova, Jelenia, Jelenie, Jelšová, Jeruzalemská, Jesenná, Jesenského, Jilemnického, Jiráskova, Jókaiho, Jonášovská, Judíkova, Jurkovičova, Justičná, Južná, Kafendova, Kalinčiakova, Kamencová, Kamenná, Kammerhofská, Kapitánová, Kapitulská, Karpatská, Kasárenská, Kategórie:, Katova, Katovná, Kilianova, Kimovská, Klampiarska, Kláštorná, Klčové, Klenová, Klinčeková, Klobučnícka, Kmeťova, Koceľova, Kočovská, Kodályova, Kolárova, Kolárovská, Kollárova, Kolónia, Kolož, Kolpašská, Komárňanská, Komenského, Komjatická, Komočská, Komorova, Koncová, Konečné, Konopná, Konštantínova, Konvalinková, Kopaniny, Koreszkova, Košická, Košikárska, Košovská, Kostiviarska, Kostolná, Kotrádova, Kováčska, Kozmonautov, Kragujevská, Krajinská, Krajná, Králická, Kráľovohoľská, Kráľovská, Kraskova, Krásna, Krátka, Krčméryho, Kremenisko, Kremnická, Krivá, Krivánska, Krížna, Krupinská, Krymská, Kukučínova, Kuneradská, Kúpeľná, Kúpeľné, Kutnohorská, Kútovská, Kutuzovova, Kúty, Kuzmányho, Kvetinová, Kvetná, Kvietnová, Kysihýbelská, Kysucká, Labutia, Ľaliová, Lándor, Langsfeldova, Ľanová, Lánska, Laskomerská, Lastovičia, Lazovná, Lécka, Lehárova, Lehotská, Lesná, Lesnícka, Letisková, Letná, Letohradská, Letomostie, Levočská, Lidická, Liesková, Lieskovská, Limbová, Lintich, Lipová, Líščia, Listová, Lodná, Lombardiniho, Lomnická, Ľubochnianska, Ľubotická, Lúčičky, Lúčky, Lúčna, Lúčová, Ľupčianska, Madácha, Madvova, Magurská, Majakovského, Majerská, Májová, Majstrovská, Makovického, Malá, Malachitová, Malachovská, Malinová, Malkovská, Mallého, Malobytčianska, Malodunajská, Malokarpatská, Malolehotská, Malonecpalská, Malookružná, Mariánska, Martinská, Masarykova, Matičná, Matúškovská, Maybaumova, Mazúrova, Medená, Mederčská, Mederská, Medová, Medvedia, Medzibriežková, Medzimlynie, Meňhartka, Mesačná, Meštianská, Metodova, Michalská, Mičinská, Mičurinova, Mičurova, Mierová, Mieru, Mikovíniho, Miksova, Minčolská, Mládeže, Mládežnícka, Mliekarenská, Mlynárska, Mlynská, Mnešická, Močiarna, Mojmírova, Mokraď, Montážna, Mosadzná, Moskovská, Moštenická, Mošteníkova, Mostná, Mostová, Môťovská, Moyzesova, Mraziarenská, Mrazničná, Mudroňova, Mukačevská, Murárska, Murgašova, Muškátová, Mýtna, Nábrežná, Nadjazdová, Nádražná, Nádvorná, Námestia, Narcisová, Národná, Nebojsa, Necpalská, Nedožerská, Nemčíkova, Nemocničná, Neresnická, Nerudova, Nešporova, Nesvadská, Nevädzová, Nezábudkova, Nezábudková, Nitrianska, Nižovec, Nová, Novomestská, Novozámocká, Obchodná, Obuvnícka, Obvodová, Odbojárska, Odborárov, Odborárska, Odborov, Okrajová, Okrúhla, Okružná, Októbrová, Olšavská, Ondavská, Opálová, Opatovská, Opavská, Oravská, Orechová, Oremburská, Orgovánova, Orgovánová, Orlia, Osadná, Osadová, Osiková, Osúchy, Ovčiarska, Ovocná, Palackého, Palárikova, Palatinová, Panciere, Pannónska, Parková, Parná, Partizánska, Pátrovská, Pávia, Pavlovská, Pažica, Pažitná, Pekná, Pelíškova, Peredzké, Pestovateľská, Petelenova, Petöfiho, Petőfiho, Petrovianska, Petrovská, Pezinská, Pieninská, Piesočná, Piešťanská, Pionierska, Pitvory, Pivovarská, Platanová, Plavárenská, Pletiarska, Plynárenská, Plzenská, Podbeľová, Podháj, Podhájska, Podhlinie, Podhorská, Podhradie, Podjavorinskej, Podjazdová, Podlavická, Podzámska, Pohraničná, Pohronská, Pokojná, Polkoráby, Poľná, Poľnohospodárska, Poľovnícka, Ponická, Popolíška, Popradská, Pöschlova, Poštová, Potočná, Považská, Povrazník, Povstalecká, Požiarnická, Práce, Prachatická, Pražská, Predmestie, Predmestská, Priama, Priateľstva, Pribinova, Priechodná, Priečna, Priehrada, Priemyselná, Prievidzská, Prírodná, Prístupová, Prostějovská, Prostredná, Prowazekova, Pršianska, Prvá, Pšurnovická, Puškinova, Púšť, Pustá, Račia, Radlinského, Radničná, Radvanská, Rajecká, Rákócziho, Rákoš, Rakytová, Rakytovská, Rastislavova, Rázusova, Reimanova, Remeselnícka, Remscheidská, Republikánska, Richtárska, Riečna, Robotnícka, Rohatecká, Roľnícka, Rombauerova, Rosinská, Rovná, Royova, Rozmarínová, Rožná, Rubínová, Rudelinova, Rudenkova, Rudlovská, Rudohorská, Rulandská, Rumanova, Rusínska, Ruská, Ruttkayovská, Ružová, Rybárska, Rybníčky, Rybničná, Sabinovská, Sadová, Šafárikova, Šalgotarjánska, Šalianska, Šalkovská, Šarišská, Sasinkova, Sásovská, Sázavského, Šebastovská, Sebedražská, Šebestova, Sekčovská, Senická, Seressa, Severná, Sibírska, Šidlovec, Šidlovská, Sihoť, Silvánska, Šípková, Široká, Sitnianska, Sitnianskeho, Skálna, Škarniclovská, Skladová, Sklenárska, Školská, Škorvánkova, Škovránkova, Skromná, Skrytá, Skubínska, Škultétyho, Skuteckého, Sládkovičova, Slanská, Slávičia, Slnečná, Slobody, Slovanská, Slovenská, Šmeralova, Smetanova, Smreková, Snežienková, Šobov, Sokolia, Sokolovská, Sokolská, Soľanková, Solivarská, Soľná, Soľnobanská, Šoltésovej, Somolická, Sosnová, Spannerovej, Špitálska, Spojná, Spojová, Spojovacia, Športová, Športovcov, Srnčia, Srnianska, Šrobárova, Staničná, Starohorská, Staromestská, Staromlynská, Staronová, Starozámocká, Šťastného, Stavbárov, Stavbárska, Stavebná, Štefánikova, Stoličková, Stračínska, Strakonická, Stránska, Strapáky, Stráž, Strážnická, Strážovská, Strážska, Strečnianska, Stredná, Strelecká, Strieborná, Štrková, Strmá, Strojárska, Strojnícka, Stromová, Štuadta, Študentská, Stupy, Štúrova, Súbežná, Sucháčovská, Suchomlynská, Suchoňova, Sudoměřická, Súhradská, Súkennícka, Šulekova, Súľovská, Šumperská, Surdok, Šurianska, Surovská, Šúrska, Sústružnícka, Suvorovova, Švábska, Svätojánska, Svätoondrejská, Svätoplukova, Švecova, Švermova, Svitavská, Svornosti, Tabaková, Tajovského, Tarjányiho, Tatranská, Technická, Tehelná, Tehelňa, Tematinská, Tenisová, Teplárenská, Terchovská, Terezov, Teriakovská, Tesárska, Thurzova, Tichá, Tkáčska, Tokajícka, Tolstého, Tomášikova, Topoľčianska, Topoľová, Továrenská, Tramínova, Traťová, Trávna, Trenčianska, Treskoňova, Trhová, Trnková, Trstinová, Tulipánová, Tulská, Turcová, Turecká, Turistická, Tušková, Tvrdošovská, Tyršova, Učiteľská, Udenárska, Údolná, Uhlištná, Uľanská, Ulice, Ulička, Unionka, Uramova, Urbánkova, Urbárska, Urxova, Úvozná, Úzka, Váhová, Vajanského, Valachova, Valchovnícka, Valkovská, Vally, Vansovej, Vápenická, Važecká, Včelárska, Velkodunajská, Veľkolehotská, Veľkomoravská, Veľkonecpalská, Veltlínska, Veselá, Veterná, Viestova, Vihorlatská, Vilová, Viničná, Vinohradnícka, Vinohrady, Višňová, Víťazstva, Vlčia, Vnútorná, Vodárenská, Vodná, Volgogradská, Vozová, Vranovská, Vŕbová, Vrchárska, Vrchovského, Vrchy, Východná, Vydumanec, Výpalisko, Výskumnícka, Vysoká, Vysokoškolákov, Weberova, Wolkerova, Zabíjaná, Žabky, Záborského, Zábrežná, Zadná, Zafírová, Záhonok, Záhradná, Záhradnícka, Záhumnie, Zajačia, Zálesná, Zámocká, Zámoryho, Západná, Zápotockého, Zápotočná, Zátočná, Závodská, Závoz, Zborovská, Zdravotnícka, Žebráky, Zelená, Železná, Železničiarska, Železničná, Zemplínska, Žilinská, Zimná, Zlatá, Zlatnícka, Zlatobanská, Žliabkova, Zlievárenská, Žofijská, Zornička, Zúgov, Župná, Zváračská, Zvolenská, Zvonová]
country: ['Slovensko']
language: 'SK'
================================================
FILE: src/main/resources/jfairy_sv.yml
================================================
alphabet: abcdefghijklmnopqrstuvwxyzåäö
domains: [se, nu, com]
firstNames: {
male: [Anders, Alexander, Andreas, Arne, Axel, Anton, Adam, Alf, Arvid, Albin, Ali, Allan, Alfred, André, Ahmed, Albert, Adrian, August, Ahmad, Alex, Alvar, Artur, Antero, Antonio, Alvin, Arnold, Algot, Arthur, Aron, Agne, Bengt, Bo, Bertil, Björn, Börje, Bernt, Bror, Birger, Benjamin, Benny, Bert, Bernhard, Bruno, Berndt, Billy, Bjarne, Ben, Bill, Boris, Brian, Bengt-Åke, Bilal, Berne, Berth, Bernard, Bashir, Bengt-Olof, Bastian, Bob, Bengt-Göran, Carl, Christer, Christian, Claes, Christoffer, Conny, Christopher, Charlie, Curt, Charles, Casper, Clas, Carlos, Christofer, Carl-Johan, Colin, Claes-Göran, Cristian, Calle, Crister, Chris, Cornelis, Cesar, Conrad, Caspian, Carl-Erik, Carl-Gustav, Clarence, Carsten, Carl-Henrik, Daniel, David, Dan, Dennis, Dick, Douglas, Dag, Dante, Donald, Denis, Didrik, Dragan, Danny, Dariusz, Dexter, Dimitrios, Dino, Dylan, Dejan, Denny, Damian, Diego, Dawid, Dieter, Damir, Deniz, Dominik, Dominic, Devin, Dario, Erik, Emil, Eric, Emanuel, Elias, Evert, Edvin, Einar, Ernst, Erland, Edvard, Elliot, Erling, Elis, Egon, Edward, Ebbe, Eskil, Eddie, Evald, Elof, Edwin, Enar, Eugen, Elton, Elvis, Emilio, Elvin, Esbjörn, Edgar, Fredrik, Filip, Folke, Felix, Frank, Frans, Fabian, Fred, Fritz, Fredric, Ferdinand, Franz, Fernando, Francisco, Freddy, Fadi, Finn, Fritiof, Freddie, Francis, Frej, Frederik, Felipe, Farhad, Fredrick, Farid, Faisal, Firas, Fouad, Florian, Gunnar, Gustav, Göran, Gustaf, Gösta, Georg, Gabriel, Göte, Gert, Gerhard, George, Glenn, Greger, Gottfrid, Gilbert, Gillis, Georgios, Grzegorz, Goran, Gotthard, Gordon, Görgen, Georges, Guy, Gideon, Gunder, Giovanni, Gary, Gusten, Gerry, Hans, Henrik, Håkan, Hugo, Henry, Harry, Harald, Hampus, Helge, Holger, Hjalmar, Herman, Henning, Hassan, Hannes, Herbert, Hilding, Hussein, Helmer, Henric, Hasan, Hasse, Hamid, Hans-Erik, Hamza, Hubert, Heikki, Hannu, Hossein, Hadi, Ingemar, Ingvar, Ivar, Inge, Isak, Ivan, Ibrahim, Ingmar, Isac, Ismail, Ilmari, Ian, Isaac, Isidor, Igor, Imad, Issa, Istvan, Ioannis, Ismael, Isa, Idris, Ingvald, Ismet, Imre, Ignacio, Imran, Ilyas, Ioan, Ivo, Johan, Jan, John, Jonas, Joakim, Johannes, Jörgen, Jonathan, Jesper, Joel, Jens, Jimmy, Jakob, Jacob, Johnny, Jonny, Josef, Juhani, Jonatan, Jan-Erik, Jack, Jim, Jon, Julius, James, Jerry, Joachim, Jan-Olof, Joacim, Jarl, Karl, Kjell, Kent, Kenneth, Kurt, Krister, Kristian, Knut, Klas, Kevin, Kristoffer, Kim, Kaj, Kenth, Kennet, Karl-Erik, Kristofer, Kalevi, Kalle, Kenny, Konrad, Kasper, Kari, Khaled, Krzysztof, Karim, Karl-Johan, Kai, Kalervo, Khalid, Lars, Lennart, Leif, Linus, Leo, Ludvig, Lucas, Lukas, Liam, Love, Lars-Erik, Leon, Leonard, Ludwig, Lars-Göran, Loke, Lars-Åke, Luis, Lars-Olof, Leopold, Lage, Levi, Louis, Lasse, Lars-Gunnar, Lars Erik, Leonardo, Lee, Lars Göran, Lowe, Mikael, Magnus, Martin, Mats, Mattias, Michael, Marcus, Max, Markus, Mohamed, Mathias, Mohammed, Morgan, Mohammad, Malte, Melker, Melvin, Mårten, Måns, Micael, Mauritz, Mohamad, Mustafa, Maximilian, Matti, Mahmoud, Milton, Manfred, Milo, Michel, Nils, Niklas, Niclas, Nicklas, Noah, Noel, Neo, Natanael, Nicolas, Nicholas, Nils-Erik, Nikola, Noa, Nabil, Niels, Naser, Napoleon, Nathanael, Nelson, Nathan, Nikolaos, Nils-Olof, Nikolai, Nick, Nikolaus, Nima, Nikolaj, Nils Erik, Nader, Nicolai, Olof, Oskar, Olov, Oscar, Ove, Ola, Olle, Oliver, Otto, Omar, Olavi, Ossian, Owe, Osman, Olav, Ole, Oliwer, Odd, Orvar, Osvald, Omer, Osama, Orlando, Omid, Olaf, Otis, Orhan, Onni, Olivier, Ozzy, Per, Peter, Patrik, Paul, Pär, Philip, Pontus, Petter, Pierre, Patrick, Peder, Per-Olof, Per-Erik, Patric, Piotr, Pekka, Pelle, Per-Åke, Pawel, Petri, Per-Olov, Petrus, Percy, Per-Arne, Per-Anders, Per-Ola, Pentti, Per Olof, Pål, Pehr, Quang, Quoc, Qasim, Qader, Qais, Qasem, Quentin, Quan, Qusay, Qendrim, Qadir, Qays, Qusai, Qiang, Qahtan, Quy, Quintus, Qazim, Qadar, Qvintus, Qi, Qassim, Quincy, Quyen, Qaisar, Qamil, Qutaiba, Qing, Qalid, Qaiser, Robert, Rolf, Roland, Roger, Rune, Robin, Rickard, Rasmus, Richard, Ragnar, Ronny, Rikard, Reinhold, Roy, Ruben, Ronnie, Rudolf, Ralf, Reza, Ronald, Raymond, Reine, Rafael, Roberto, Ralph, Roine, Raimo, Reidar, Ragnvald, Rainer, Sven, Stefan, Stig, Simon, Sebastian, Sten, Samuel, Sören, Sture, Sune, Staffan, Sigvard, Sixten, Svante, Sam, Sigurd, Stellan, Sven-Erik, Sigfrid, Said, Sonny, Sigge, Sami, Samir, Sivert, Seth, Sven-Olof, Sverker, Sakari, Sven-Åke, Thomas, Tommy, Tomas, Tobias, Torbjörn, Torsten, Tore, Tony, Tage, Tim, Tord, Tom, Theodor, Theo, Ture, Teodor, Tor, Torgny, Ted, Tapani, Tapio, Thure, Thor, Thore, Timo, Toni, Tomasz, Timmy, Thord, Thorbjörn, Ulf, Urban, Uno, Ulrik, Uolevi, Uwe, Ulrich, Unto, Ulric, Ulfsson, Usman, Umar, Udo, Ugur, Urpo, Urho, Usama, Umut, Ulfson, Ulf-Göran, Umberto, Uffe, Ur, Ullah, Ulises, Untamo, Uddin, Uddo, Ul, Ulv, Viktor, Vilhelm, Victor, Valdemar, Vincent, Valter, Valentin, Viggo, Verner, Vidar, Viking, Ville, Vilgot, Vilmer, Villy, Vide, Valfrid, Van, Veikko, Vladimir, Vallentin, Veli, Villiam, Veine, Vilde, Valentino, Vesa, Väinö, Veijo, Vilho, William, Wilhelm, Walter, Willy, Wilmer, Waldemar, Werner, Wille, Wiktor, Wolfgang, Walid, Wojciech, Wiggo, Wictor, Weine, Winston, Wilgot, Wael, Willem, Willhelm, Wincent, Wallentin, Wisam, Wilton, Wiking, Wieslaw, Waleed, Walther, Willi, Wladyslaw, Xavier, Xander, Xerxes, Xuan, Xin, Xhevat, Xiao, Xiang, Xhavit, Xu, Xhevdet, Xi, Xhafer, Xaver, Xavi, Xuong, Xhelal, Xiaojun, Xhemajl, Xiaodong, Xing, Xiaofeng, Xenofon, Xheladin, Xiaoming, Xiong, Xiaolong, Xia, Xiaowei, Xian, Yngve, Yusuf, Yousef, Youssef, Yousif, Yasin, Yahya, Yosef, Yassin, Yonas, Yrjö, Yaser, Yohannes, Younes, Yasir, Yasser, Yacoub, Yazan, Yunus, Yahye, Yousuf, Yemane, Yonis, Young, Yves, Yakob, Yong, Yakup, Yahia, Yilmaz, Zacharias, Zoran, Zakaria, Zackarias, Zbigniew, Zakarias, Zebastian, Zoltan, Zack, Zaid, Ziad, Zeljko, Zeb, Zlatko, Zeke, Zaki, Zlatan, Zion, Zsolt, Zeki, Zander, Zaher, Zdzislaw, Zana, Zakariya, Zain, Zuhair, Zeth, Zygmunt, Zdravko, Åke, Åge, Åkesson, Ål, Åkeson, Åsmund, Åskar, Åker, Åbjörn, Årad, Åse, Åsbjörn, Ås, Ådi, Ålråk, Ån, Åbri, Ådne, Åmid, Ånis, Åve, Årald, Ållis, Åsa-Nisse, Åke Lennart, Åstrad, Åsp, Åndh, Åre, Åttvid, Ärling, Ägir, Ämir, Ärtan, Ämin, Älvin, Ärland, Ärlan, Älgen, Älvis, Ärnie, Ärni, Ängel, Ärne, Ärlig, Änäs, Älg, Ärnst, Äcke, Ädam, Äser, Äshkan-Patrik, Äziz, Äriz, Ärons, Ärve, Äzher, Äzer, Ägid, Ärnfrid],
female: [Anna, Anita, Annika, Astrid, Alice, Amanda, Ann, Agneta, Anette, Anneli, Alexandra, Agnes, Anne, Alva, Alma, Angelica, Ann-Marie, Annie, Annelie, Ann-Charlotte, Annette, Aina, Alicia, Ann-Christin, Andrea, Anna-Karin, Anne-Marie, Anna-Lena, Annica, Ann-Sofie, Birgitta, Barbro, Britt, Berit, Birgit, Britt-Marie, Britta, Beatrice, Brita, Bodil, Barbara, Beata, Britt-Mari, Bianca, Boel, Betty, Berta, Britt-Inger, Britt-Louise, Bella, Berith, Benita, Belinda, Brigitte, Bonnie, Birthe, Bozena, Beatriz, Bente, Björnsdotter, Christina, Cecilia, Carina, Camilla, Caroline, Charlotte, Charlotta, Carolina, Christine, Carin, Clara, Catharina, Catarina, Cornelia, Carola, Christin, Christel, Cristina, Catrin, Carmen, Carolin, Charlott, Cassandra, Cathrine, Claudia, Carita, Cajsa, Catherine, Clary, Catrine, Doris, Diana, Dagmar, Dagny, Desirée, Denise, Daniela, Daniella, Del, Disa, Dorotea, Desiré, Dina, Daisy, De, Danuta, Dorota, Dorothea, Dalia, Désirée, Danielle, Desideria, Dana, Desireé, Daga, Dolores, Denice, Dora, Deborah, Debora, Elisabeth, Eva, Elisabet, Emma, Elin, Elsa, Emelie, Erika, Emilia, Ebba, Ellen, Ella, Evelina, Elvira, Ester, Ellinor, Elise, Eivor, Eleonora, Ewa, Elina, Evy, Erica, Elsie, Emmy, Edith, Elizabeth, Edit, Elna, Eleonor, Frida, Felicia, Fanny, Filippa, Fredrika, Freja, Fatima, Frideborg, Florence, Fatma, Fatemeh, Farah, Fadumo, Fia, Flora, Fiona, Freya, Fatema, Francesca, Frances, Francisca, Fernanda, Fredrica, Fatou, Farida, Fariba, Faten, Febe, Franziska, Fartun, Gunilla, Gun, Gunnel, Gerd, Gunvor, Gudrun, Greta, Gabriella, Gunhild, Gertrud, Gunborg, Gun-Britt, Gerda, Gulli, Gisela, Gull-Britt, Göta, Gunn, Gunbritt, Gurli, Gullan, Gabriela, Görel, Gabrielle, Grace, Gullvi, Gina, Gunni, Gloria, Gertie, Helena, Hanna, Helen, Helene, Helén, Harriet, Hilda, Hillevi, Hedvig, Hannah, Heléne, Helga, Hjördis, Hilma, Hannele, Henrietta, Heidi, Hildegard, Hedda, Hassan, Hildur, Henny, Hussein, Hulda, Henriette, Hanne, Hanan, Hana, Hilkka, Hasan, Ingrid, Inger, Ida, Irene, Ingegerd, Inga, Ingeborg, Ingegärd, Ingela, Isabelle, Isabella, Iréne, Iris, Inga-Lill, Irma, Ingalill, Inez, Isabell, Isabel, Inga-Britt, Ing-Marie, Ing-Britt, Ines, Ilona, Isa, Ingvor, Ina, Inkeri, Ibrahim, Irina, Johanna, Jenny, Julia, Jessica, Josefin, Josefine, Jeanette, Jennifer, Jennie, Josefina, Jane, Jonna, Joanna, Josephine, Jasmine, Janet, Judith, Jasmin, Jill, Juni, Joline, Jacqueline, Janina, Jessika, Judit, Julie, Jaana, Jenni, Jasmina, Jelena, Kristina, Karin, Kerstin, Katarina, Karolina, Kristin, Klara, Kajsa, Katrin, Kaarina, Karina, Kim, Katharina, Kristine, Katja, Katarzyna, Kristiina, Kyllikki, Kersti, Karolin, Karoline, Krystyna, Kate, Karla, Karen, Kaisa, Kirsti, Katrine, Katariina, Kirsten, Linnéa, Lena, Linnea, Louise, Linda, Lovisa, Lisa, Lina, Lisbeth, Lilian, Linn, Lilly, Laila, Lillemor, Liv, Lotta, Laura, Lisbet, Lova, Liselotte, Liselott, Lucia, Liisa, Lea, Lydia, Leila, Lise-Lotte, Li, Livia, Lily, Maria, Margareta, Marie, Marianne, Malin, Monica, Matilda, Margaretha, Märta, Maja, Mona, Madeleine, Monika, Magdalena, Maj, Marita, Moa, Margit, Mari, Maj-Britt, Martina, Mikaela, Maud, Marie-Louise, Marina, Mary, My, Mathilda, Madelene, Molly, Nina, Nathalie, Nora, Natalie, Nellie, Nova, Nicole, Nelly, Natalia, Nancy, Nadja, Nadia, Nanna, Nanny, Naemi, Nike, Noomi, Ninni, Naima, Noor, Nada, Nour, Naomi, Nicolina, Nadine, Nikki, Novalie, Nikita, Nea, Natasha, Olivia, Olga, Ottilia, Orvokki, Omar, Osman, Ofelia, Olofsdotter, Othilia, Oliwia, Otilia, Oline, Olena, Onerva, Outi, Oksana, Ophelia, Oili, Omer, Olivera, Ola, Odette, Othman, Oda, Olovsdotter, Olympia, Olly, Oxana, Oana, Olasdotter, Pia, Pernilla, Petra, Paulina, Patricia, Paula, Pauline, Petronella, Pirjo, Pamela, Pirkko, Päivi, Persdotter, Paola, Philippa, Peggy, Penny, Phuong, Pilar, Patrycja, Parisa, Petersdotter, Pauliina, Parvin, Päivikki, Perla, Pernille, Paulin, Pixie, Polly, Qasim, Quynh, Qamar, Qing, Qi, Qader, Qendresa, Qian, Quyen, Qin, Qays, Qusay, Quan, Queen, Qiong, Que, Qali, Qadir, Qaali, Qamile, Qadro, Qais, Qasem, Qadra, Qizi, Qahtan, Qassim, Queenie, Qui, Qun, Rut, Rebecca, Rebecka, Ruth, Rose-Marie, Ragnhild, Ronja, Regina, Rita, Rosa, Rigmor, Rosita, Rose, Ritva, Renée, Ros-Marie, Riitta, Rakel, Ramona, Raija, Runa, Renate, Raili, Ragna, Rana, Renata, Ros-Mari, Rania, Rosalie, Rosanna, Sofia, Sara, Susanne, Siv, Sandra, Sofie, Sonja, Stina, Signe, Solveig, Saga, Sigrid, Susanna, Svea, Sanna, Sylvia, Siri, Selma, Sarah, Stella, Sophie, Sabina, Sophia, Sofi, Susann, Sally, Simone, Stephanie, Suzanne, Solvig, Therese, Therése, Teresia, Tina, Tyra, Tove, Tilda, Tindra, Thea, Tilde, Tuva, Terese, Teresa, Thi, Theresia, Tova, Tuulikki, Tora, Tanja, Theres, Tuula, Tea, Tellervo, Theresa, Thyra, Tarja, Torborg, Tatiana, Tamara, Terttu, Ulla, Ulrika, Ulla-Britt, Ulrica, Ursula, Ulfsdotter, Ulla-Britta, Urszula, Unni, Ulla-Karin, Ulla Britt, Ulla-Stina, Una, Ulla-Maj, Ulrike, Ulla-Lena, Ubah, Ulla-Brita, Uma, Ute, Ullabritt, Ulla-Carin, Unn, Ullrika, Ulla-Greta, Unelma, Ulla-Maija, Ulla-Marie, Undine, Ulla Karin, Viola, Viktoria, Victoria, Veronica, Vera, Vilhelmina, Valborg, Vanja, Vilma, Veronika, Vendela, Vanessa, Viveka, Vivianne, Valentina, Vivi, Vivi-Ann, Vivan, Viveca, Vega, Vivian, Vilda, Virginia, Viviann, Vivi-Anne, Vilja, Vesna, Valeria, Violet, Vibeke, Wilma, Wilhelmina, Wiktoria, Wilda, Wiola, Wera, Wanda, Wictoria, Weronica, Weronika, Wanja, Wenche, Wendela, Wafaa, Wiveca, Wivi, Wieslawa, Wendy, Wilja, Wiveka, Wioletta, Wafa, Winnie, Wivianne, Wei, Waltraud, Wivi-Ann, Walid, Wilhelmine, Wally, Ximena, Xenia, Xuan, Xin, Xiao, Xia, Xiomara, Xue, Xi, Xhemile, Xiu, Xhevahire, Xiaoyan, Xhevrije, Xiang, Xena, Xiaoli, Xiaohong, Xinyi, Xing, Xiaojing, Xiaoyu, Xandra, Xu, Xian, Xantippa, Xiaomei, Xiaoying, Xiaowen, Xhejlane, Yvonne, Ylva, Yasmin, Yasmine, Yvette, Yusuf, Yara, Yousif, Ying, Yasemin, Young, Yrsa, Yolanda, Yousef, Yan, Yusra, Yen, Ywonne, Yordanos, Yasmina, Yu, Yi, Yulia, Yildiz, Yodit, Yun, Yee, Yassin, Yvonn, Yasin, Zahra, Zandra, Zainab, Zofia, Zara, Zeinab, Zoe, Zelda, Zahraa, Zeynep, Zarah, Zina, Zuzanna, Zenita, Zorica, Zehra, Zsuzsanna, Zanna, Zohreh, Zohra, Zoey, Zaida, Zlata, Zita, Zaynab, Zena, Zaid, Zdenka, Zamzam, Zana, Åsa, Åse, Åkesdotter, Åza, Åsa-Britt, Åsa-Lena, Ågot, Åslög, Åse-Marie, Åsa-Marie, Åsa-Maria, Åshild, Åsa-Karin, Åker, Åsa-Lill, Ål, Ån, Åse-Lill, Åsta, Åsa Maria, Åsalill, Åsa-Mari, Åse-Britt, Åse Marie, Åsa-Hanna, Åsa-Pia, Åse-Mari, Åsa-Stina, Åsadotter, Åhsa, Ängla, Älva, Ängel, Ärla, Ärna, Ämma, Ärtan, Äwa, Älvan, Äva, Ärlis, Älwa, Älvira, Älva-Li, Ädla, Älvina, Älsa, Älfva, Änsi, Äja, Ängla-Li, Älvali, Äya, Ämeli, Äsia, Änges, Ännie, Älin, Ängsmaja, Älfa]
}
lastNames: {
male: [Aagesdatter, Aarestrup, Aasen, Abelsen, Abildgaard, Abrahamsdotter, Abrahamsen, Abrahamsson, Abramsdotter Brännström, Achton, Adamsson, Adersson Almertz, Adolfsson, Adtzarsdotter, Adtzarsen, Adtzersdotter, Adtzerson, Adtzersson, Adtzersson Forsström, Adtzersson Rug, af Forsell, af Ström, Agelmo, Agerup, Aggerup, Agner, Ahl, Ahlberg, Ahlbin, Ahlbom, Ahlin, Ahlstedt, Ahlström, Ahnfeldt, Albrechtsson, Aldewelt, Aldrin, Alexandersdotter, Alexandersson, Alfredsson, Allesen, Allesen Bunkeflod, Allesen de Fine Bunkeflod, Allesen-Vernö, Allison, Almén, Almgren, Almqvist, Alrom, Alsén, Alteresius, Ancher, Anchersen, Ancker, Anderberg, Anderdotter, Anders, Andersdatter, Andersdotter, Andersdotter, Andersdotter Andersson, Andersdotter Bager, Andersdotter Lundberg, Andersen, Anderson, Andersson, Andersson Ahl, Andersson Anderberg, Andersson Anderström, Andersson Berglund, Andersson Bock, Andersson Boström, Andersson Bränn, Andersson Ekdahl, Andersson Eklund, Andersson Fastberg, Andersson Fridlund, Andersson From, Andersson Granat, Andersson Haeffner, Andersson Hagelin, Andersson Hejde, Andersson Hjälte, Andersson Lind, Andersson Lindqvist, Andersson Lindström, Andersson Lundström, Andersson Odhnoff, Andersson Olin, Andersson Rehn, Andersson Sandberg, Andersson Sjöström, Andersson Skog, Andersson Strand, Andersson Törne, Andersson Wikman, Andersson Winberg, Andersson Östman, Andesen, Andrassy, Andreasdatter, Andreasdotter, Andreasen, Andreasson, Angel, Angelberg, Anthon, Appelmark, Arctander, Arelsson, Arendorf, Arendtson, Arent, Arentsdatter, Arildsdotter, Armfelt, Arnander, Aronsson, Arosenius, Arvidsdotter, Arvidsson, Ascanius, Asisef, Askulin, Asmundsdotter, Asmundsson, Asmunsson, Asmussen, Asproth, Assarsdotter, Assarsson, Assarsson Åkerman, Assersdotter, Assersson, Assmundsson, Aubert, Augustin, Augustsdotter, Aulander, Avander, Axell, Axelsdotter, Axelson, Axelsson, Baark, Bach, Bache, Bachmann, Backe, Backlund, Backman, Backström, Baeckström, Bager, Bagger, Bahnson, Bang, Bangert, Barck, Barfod, Barfoed, Barfred, Barlit, Bartholdson, Barting, Barting Haeffner, Barzen, Basballe, Bathe, Battus, Baumann, Baumgarten, Bay, Bech, Beck, Becker, Beckmann, Beckwith-Lohmeyer, Bemarell, Benander, Bencke, Bendiksdatter, Bendz, Benedictson, Benedikt, Bengtsdotter, Bengtsdotter Hejde, Bengtsdotter Spanier, Bengtsson, Bengtsson Bergfors, Bengtsson Björk, Bengtsson Frost, Bengtsson Hejde, Bengtsson Korp, Bengtsson Lindén, Bengtsson Ljungqvist, Bengtsson Lundgren, Bengtsson Rudolf, Bengtsson Spanier, Bengtsson Wallersteen, Bengtsson Öst, Bengtström, Benjaminsdotter, Bentsen, Bentzen, Bentzien, Bentzon, Benzer, Benzon, Ber, Bercher, Berendt, Berg, Bergdahl, Bergdal, Bergeld, Bergelin, Bergencrona, Bergendal, Bergendorff, Bergenenhammer, Bergenfeldt, Bergeschou, Bergfors, Berggreen, Berggren, Berghman, Bergkvist, Berglund, Bergman, Bergner, Bergquist, Bergqvist, Bergstedt, Bergsten, Bergstrand, Bergstrom, Bergström, Bergvall, Berlin, Berndtsson, Bernhardsdotter, Bernhardsson, Bernström, Berntsdotter, Berntsson, Berntsson Berg, Berregaard, Bertelsdatter, Bertelsdatter, Bertelsdotter, Bertelsen, Bertelsson, Bertilsson, Bertle, Beutner, Bianco Boeck, Bie, Bieragger, Bierg, Bierum, Biilmann, Bild, Bilde, Bildt, Bill, Billabong, Billabong, Billberg, Billbergh, Bille, Bille-Brahe af Svanholm, Billenberg, Billgren, Billing, Billman, Billström, Billström Nilsdotter, Bilsted, Birch, Birck, Birkedal, Bisserup, Bisted, Biörnsson, Bjelkström, Bjerg, Bjerger, Bjerring, Bjushed, Björk, Björklund, Björkman, Björnberg, Björner, Blad, Bladh, Bladlund, Blaylock, Blegvad, Blicher, Blichfeldt, Blitzén, Blix, Blixt, Bloch, Blom, Blomberg, Blomkvist, Blomqvist, Blomsterberg, Blomsterqvist, Blomstrand, Blume, Blücher, Bock, Bodemayer, Bodinsson, Bogren, Bohle, Bohman, Bohn, Boijsen, Bokelund, Bokstad, Bolin, Bolmeér, Boman, Bonde, Bondesdotter, Bondesson, Bonne, Bonnevie, Bonnevier, Bonskog, Boosdotter, Borberg, Borelli, Borg, Borgelin, Borggren, Borgh, Borgkvist, Borglin, Borgman, Borgqvist, Borgström, Bornemann, Borreschmidt, Borthig, Bosdotter, Boström, Both, Botvidsson, Bovin, Boyesen, Boysen, Brahe, Brammer, Bramsen, Brandling, Brandt, Brangstrup, Branth, Branting, Branting, Brask, Brauer, Braun, Braunstein, Bredal, Breegaard, Bregendahl, Brehmer, Bremer, Brieger, Brilioth, Bringentoff, Brink, Brix, Broch, Brock, Brodersen, Broge, Brogren, Brolin, Brolund, Broman, Broomé, Brorsdotter, Brorson, Brorsson, Bruce, Brumberg, Brun, Brunsson, Bruun, Brüdigam, Brÿgger, Bryngelsson, Bryngelsson Bjushed, Bryngelsson Jardesten, Bryngelsson Ryberg, Brysting, Brytz, Brännström, Buch, Buchhave, Buchwald, Bugge, Bull, Bulow, Bunkeflod, Burmaister, Burman, Burmeister, Burss, Burvall, Busk-Jepsen, Busse, Bügler, Bützow, Bång, Bäck, Bäckström, Bängts, Börgesson Law, Börjasson, Börjesson, Callmer, Calow, Cammermeyer, Campos Valdés, Candelin, Caradja, Carlheim, Carlheim-Gyllenskiöld, Carlsdotter, Carlsdotter Eriksson, Carlsen, Carlsson, Carlsson Bager, Carlsson Brandstad, Carlsson Cagéll, Carlsson Dahlberg, Carlsson Dahlqvist, Carlsson Hallberg, Carlsson Karlzén, Carlsson Landén, Carlsson Listerberg, Carlsson Thorsberg, Carlsson Thulin, Carlsson von Magius, Carlsson Öberg, Carlström, Carr, Caspersson, Cederberg, Cederholm, Cederlund, Challamell, Charleville, Charling, Charpentier, Charr, Chaura Deumacan, Chenoweth, Chirkova, Christell, Christensdatter, Christensdotter, Christensen, Christensen, Christensen Keitt, Christensen Snejstrup, Christensson, Christensson Lundstätt, Christersson, Christiansdatter, Christiansdotter, Christiansen, Christiansson, Christoffersdatter, Christoffersdotter, Christoffersen, Christoffersson, Christophersson, Claesson, Clase, Clason Lund, Classén, Classon, Clausen, Clausson, Clemedsson, Clemens, Clemensdatter, Clemensson, Clementsdotter, Collberg, Collberg Jarke, Colliander, Collin, Colonna de Leca, Condé, Cordes, Cornelius, Corneliusdotter, Cortsen, Covot, Cramer, Crawford, Cremon, Cristensen, Crona, Cronberg, Crone, Cronholm, Cronlund, Cronqvist, Cruys, Dahl, Dahlberg, Dahlbom, Dahlgren, Dahlin, Dahlkvist, Dahlman, Dahlquist, Dahlqvist, Dahlström, Dahnsson, Dahqvist, Dajrtendich, Dalberg, Dalgren, Dalman, Dam, Damm, Damm Jensen, Damm-Pedersen, Danelius, Danielsdotter, Danielsen, Danielsson, Danielsson Hartelius, Dankwardt-Lilieström, Darell, Darre, Daun, Davidson, Davidsson, de Armas Ramírez, de Bang, de Bruce, de Ferry, de Fine, de Fine Licht, de Fine Olivarius, de Hemmer, de la Cour, de Neergaard, Degerman, Degermark, Deichmann, Demidoff, Demuth, Dessau, Díaz, Dietrich, Dinesdatter, Dinesen, Dobson, Dochedahl, Dochedahl-Petersen, Dockendorf, Dormé, Dorn, Dornonville de la Cour, Doslic, Drechsel, Dressel, Drews, Dreyer, du Bois, du Plesis De Richelieu, Dunér, Duus, Duval, Duvander, Dyberg, Dyker, Dyrbye, Dürkopp, Dürr, Ebbasdotter, Ebbesen, Ebbeson, Ebbesson, Ebling, Edberg, Edelberg, Edén, Edholm, Edin, Edling, Edvardsdotter, Edvardsson, Edwardsson, Eek, Eftevaag, Egeberg, Ehlers, Ehrning, Ek, Ekberg, Ekblad, Ekbladh, Ekblom, Ekborg, Ekdahl, Ekelund, Ekeman, Ekenberg, Ekenman, Ekeroth, Eklund, Eklöf, Eklöv, Ekman, Ekstrand, Ekström, Ekvall, Elam, Elfström, Elg, Eliadotter, Eliasdotter, Eliasson, Eliasson Lindell, Elke, Ellberg, Ellefsen, Ellertsson, Elling, Ellington, Elmén, Elmquist, Elofsdotter, Elofsson, Eman, Emanuelsdotter, Emanuelsson, Emanuelsson Ekblad, Emborg, Enberg, Eneberg, Enevaldsson, Engberg, Engblom, Engdahl, Engler, Englund, Engman, Engqvist, Engstedt, Engstrand, Engström, Engvall, Enkvist, Erhardi, Erichsen, Erichson, Erichsson Kihl, Ericksson, Ericsdotter, Ericsson, Eriksdatter, Eriksdotter, Eriksen, Erikson, Eriksson, Eriksson Energren, Eriksson Hedquist, Eriksson Hultberg, Eriksson Krycker, Eriksson Åman, Erlandsdotter, Erlandsson, Erlandsson, Erlström, Ernstdotter, Ernvall, Ersdotter, Ersson, Ersson Lindström, Ertiksson, Esbjörnsdotter, Eskelsson, Eskildsdotter, Eskilsdotter, Eskilsson, Estensen, Estoesta, Eurenius, Evald, Everlöf, Eyermann, Fabricius, Fader, Faederholdt, Fagerberg, Fahlgren, Fahlman, Fahlstedt, Faith, Falck, Falk, Falkenberg, Falkvall, Fastberg, Faurschou, Feilberg, Feiniger, Feininger, Fensmark, Ferngren, Fernström, Ferrer, Ferrer Weinschenck, Ferslev, Fibiger, Fick, Fiedler, Filipson, Findelius, Finman, Finnman, Fjällström, Flaméhn, Fledelius, Fleihan, Flensburg, Flink, Flintzberg, Flodman, Florinsky, Flygare, Flögt, Fock, Fogelberg, Fogh, Fors, Forsberg, Forselius, Forsell, Forslund, Forsman, Forssén, Frandsdatter, Frandsen, Frank, Franke, Fransson, Frantzdatter, Franzén, Frederiksen, Fredriksdotter, Fredriksson, Freij, Frej, Frese, Friberg, Friberg-Ekberg, Fribert, Frid, Friese, Friis, Frimodt, Frisendahl, Frisk, Frisk "Frisch", Fristedt, Fritiof, From, Frosetter, Frost, Fröberg, Fröjd, Frönell, Fugl, Fuglede, Fuller, Funch, Füchslin, Fyhr, Fynboe, Fält, Fältström, Gabrielsdotter, Gabrielsson, Gad, Gadamer, Gade, Galle, Gamél, Gammeltoft, Garland Elam, Garmann, Gasslander, Gedeborg, Gehrt, Geijer, Gelin, Genefke, Genschow, Georgsdotter, Gerberg, Gerdtsdotter, Gerdtsson, Gergi, Gergi Lundstedt, Germansen, Germundsson, Giedde, Gielff, Giessing, Gilde, Gillberg, Gislander, Gjedde, Gjertsen, Gjuditz, Glahn, Glerup, Glud, Goelitz, Gommesen, González Más, González Pena, Gorra, Gorra Weinschenck, Gottlander, Graf, Grahn, Gran, Granberg, Granholm, Grankvist, Granlund, Granqvist, Granstedt, Granström, Green, Greisbach, Gren, Greve, Grip, Grubbe, Grundeis, Grundström, Grut, Grähs, Grönkvist, Grönquist, Grönvall, Grönwall, Gudfastersen, Gudmonsdotter, Gudmundsdotter, Gudmundsson, Gudmunsson, Guldberg, Guldbrandsen, Gullberg, Gullqvist, Gullstrand, Gulstad, Gultzau, Gumme Pers, Gummesen, Gummesson, Gummesson Lindkvist, Gunarsdotter, Gunnarsdotter, Gunnarsson, Gunnér, Guntell, Guskasson, Gussarsson, Gustafsdotter, Gustafsdotter Lindblom, Gustafsdotter Möller, Gustafsdotter Spanier, Gustafsson, Gustafsson Edling, Gustafsson Fernström, Gustafsson Spanier, Gustafsson Ulfsax, Gustavsdotter, Gustavsson, Gustavsson Tillrooth, Gyldencrantz, Gylding, Gyllén, Günther, Gärdehall, Göransdotter, Göransson, Görgensen, Götz, Haagen, Haastrup, Haeffner, Haeffner, Haeffner-Flodman, Hafström, Hagblom, Hagefeldt, Hagelin, Hagemann, Hagéus, Haggärde, Haglund, Hagman, Hagström, Hahn, Hake, Halbert, Haleby, Hall, Halland, Hallberg, Halleby, Hallenborg, Haller, Hallgrímsdóttir, Hallin, Halling, Hallström, Hals, Halvarsson, Halved, Halvorsen, Hamilton, Hamlett, Hamlin, Hammar, Hammarberg, Hammarbäck, Hammarlund, Hammarqvist, Hancke, Hansdotter, Hansdotter Bunkeflod, Hansdotter de Fine, Hansen, Hansen, Hansen Borntoft, Hansen Riber, Hansesdotter, Hanson, Hansson, Hansson Dalberg, Hansson Engström, Hansson Eriksson, Hansson Lindberg, Hansson Lundberg, Hansson Lundstedt, Hansson Löf, Hansson Roth, Hansson Sjölin, Hansson Spanier, Hansson-Dahl, Haraldsdotter, Haraldsson, Harboe, Harder, Hart, Hartelius, Hartwig, Hartwigsson, Hartzberg, Hasfeldt, Haslund, Hasselquist, Hasselqvist, Hastrup, Hatting, Hauch, Hazell, Hecht, Heckscher, Hecksher, Hector, Hedberg, Hedberg "Leander", Hedblom, Hedeberg, Hedeby, Hedeman, Hedenskog, Hedenstierna, Hedkvist, Hedling, Hedlund, Hedman, Hedquist, Hedqvist, Hedström, Hedvalls, Hedvist, Heering, Héhn, Heiberg, Heiberg Ipsen, Heidenberg, Heikel, Heitmann, Hejde, Hejlesen, Hektor, Helander, Helgesson, Heljeberg, Heljesdotter, Heljesson, Hellberg, Hellén, Hellgren, Hellman, Hellstadius, Hellström, Helmer, Hemberg, Henckel, Hendriksson, Henningsen, Henrichsen, Henrichsson, Henricsdotter, Henriksdotter, Henriksen, Henriksson, Henriksson Dalberg, Henriksson Hallberg, Henriksson Hyllén, Henriksson Persson, Henrysson, Herazeck, Herder, Herforth, Herlman, Hermansdotter, Hermansen, Hermansson, Hermodsson, Hern, Herrman, Herskind, Hersvall, Hertz, Hertzberg, Hertzman, Herztler, Hessellund, Hesselman, Hetting, Heuch, Heurlin, Hieronimusdatter, Hieronimussen, Higgens, Hilding, Hillborg, Hillman, Hindrichsdotter, Hindrichsson, Hindricsdotter, Hingtsasdotter, Hinrichsen, Hinsasdotter, Hinsasson, Hinsesson, Hjelm, Hjelmdrop, Hjort, Hjorth, Hjorthagen, Hjortsberg, Hjuler, Hober, Hoff, Hoff Hansen, Hoffensberg, Hoffman, Hoffmann, Hofsteter, Holbech, Holbek, Holgersdotter, Holgersen, Holgersson, Holland, Holm, Holmberg, Holmblad, Holmgren, Holmkvist, Holmlund, Holmquist, Holmqvist, Holmstedt, Holmström, Holst, Holst Kjeldsen, Holtzbro, Hoppe, Hopper, Horn, Horneman, Hornemann, Hortman, Hostrup Schultz, Hougaard, Hoversdatter, How, Howitz, Hugosson, Huhne, Hult, Hultberg, Hultén, Hultgren, Hultin, Hultman, Hurtig, Huss, Hutfeld, Huth, Hvid, Hviid, Hwasser, Hydfeldt, Hyllested, Hüttmann, Hågensdotter, Håkansdotter, Håkansson, Hård af Segerstad, Häger, Hägerman, Hägg, Hägglund, Hällberg, Häller, Hällgren, Häsler, Högberg, Höglund, Högrelius, Hörberg, Hörjesson, Hörngren, I Kroen, Ifvarsson, Ifversson, Ingelsdotter, Ingelson, Ingelsson, Ingelsten, Ingemansson, Ingemarsdotter, Ingemarsson, Ingerslev, Ingesdotter, Ingesson, Ingram, Ingvarsdotter, Ingvarsson, Ingvartsen, Ipsdatter, Ipsen, Irestam, Irmlev, Isaksdotter, Isaksson, Isenberg, Isibarth, Israel, Ivarsdotter, Ivarsson, Iversen, Jacksson, Jacobi, Jacobsdatter, Jacobsdotter, Jacobsen, Jacobsson, Jahn, Jahnsson, Jakobsdotter, Jakobsson, Jakobsson, Jannesson, Jansdotter, Jansdotter Öman, Jansen, Jansson, Jansson Eriksson, Jansson Haeffner, Jarl, Jarle, Jarnestad, Jensdatter, Jensdatter, Jensdatter, Jensen, Jensen Lang, Jensen Vestergaard, Jensenius, Jensön, Jeppasdotter, Jeppasson, Jeppesdotter, Jeppesen, Jeppsdotter, Jeppsson, Jeppsson Forsberg, Jepsdotter, Jepsson, Jernberg, Jersild, Jespersen, Jessen, Jochumsen, Jockumsen, Joensdotter, Joensson, Johannesdotter, Johannesson, Johannesson Nordell, Johannesson Winberg, Johannisdotter, Johannisson, Johansdotter, Johansdotter Palm, Johansdotter Sundell, Johansen, Johansson, Johansson Bergeld, Johansson Bergenfeldt, Johansson Burman, Johansson Einald, Johansson Ekström, Johansson Frönell, Johansson Granberg, Johansson Hagberg, Johansson Hedquist, Johansson Holmgren, Johansson Jarlestam, Johansson Killberg, Johansson Lindberg, Johansson Malmqvist, Johansson Marklund, Johansson Persson, Johansson Sjöberg, Johansson Sundqvist, Johansson Åhl, Johansson Öberg, Johansson Öst, Johnsdotter, Johnson, Johnsson, Johnsson Friberg, Jonasdotter, Jonasdotter Nordlund, Jonasson, Jonasson Norlund, Jonasson Sandstedt, Jonasson Skoglund, Jonelind, Jonsas, Jonsdotter, Jonsen, Jonson, Jonsson, Jonsson Gärefors, Jonsson Lindal, Jonsson Nordlund, Jonsson Söderblom, Jordán Suri, Joseph, Josjö, Juel, Juhl, Juhlin, Julin, Juncker, Jungbeck, Juringius, Just, Just-Nielsen, Justesen, Juul, Jürgens, Jäderström, Jöns, Jönsdotter, Jönsdotter Ekström, Jönsdotter Hagblom, Jönsdotter Lindström, Jönsson, Jönsson Bjelland, Jönsson Bjerborn, Jönsson Björk, Jönsson Brandt, Jönsson Collberg, Jönsson Ekström, Jönsson Flenner, Jönsson Grevstad, Jönsson Haak, Jönsson Hektor, Jönsson Holmqvist, Jönsson Hultgren, Jönsson Kristoffersson, Jönsson Murberg, Jönsson Möllergren, Jönsson Nilsson, Jönsson Nåvall, Jönsson Rosander, Jönsson Rosdahl, Jönsson Rosendahl, Jönsson Rydinger, Jönsson Stenberg, Jönsson Stjernfeldt, Jönsson Svan, Jönsson-Lörd, Jörans, Jöransdotter, Jöransson, Jörgensen Wain, Jörgonson, Kaalund, Kaas, Kaas af Mur, Kabell, Kafle, Kahn, Kall, Kalldin, Kallenberg, Kallmer, Kames, Kamf, Kamp, Kamph, Kampmann, Kapferer, Karadja, Karadja pascha, Karlbeck, Karlbäck, Karlsdotter, Karlsdotter, Karlsson, Karlsson Listerberg, Karlsson Nilsson, Karlsson Rabe, Karlsten, Karström, Kasparsdotter, Kastensdotter, Kastnyr, Keil, Kelfve, Kellgren, Kellmodin, Kenne, Kieldsdatter, Kieldsen, Kieldsson Lilja, Kierbye, Kiersgaard, Kierulf, Kihlmark, Kinberg, Kinch, Kipp, Kirkeby, Kirketerp, Kirschner, Kisbye, Kjeldahl, Kjelder, Kjeldsdatter, Kjeldsen, Kjeldsen Weinschenck, Kjellberg, Kjellerup, Kjellgren, Kjellin, Kjellman, Kjellsson, Kjerstensson, Kjerulf, Kjerulff, Klang, Klang Perrsdotter, Klang Persdotter, Klang Persson, Klarin, Klassén, Klassén Sundström, Klaug, Klausch, Klefelt, Klein, Kleinsorg, Klemedsson, Klensorg, Klerebladh, Klim, Kling, Klingenberg, Klinterot, Klog, Klohs, Klohs Rambech, Knopf, Knudsdatter, Knudtzen, Knudtzon, Knutsdotter, Knutson, Knutsson, Kobb, Koch, Kock, Koefoed, Kofod, Kofoed, Kohrtz, Kojima, Koll, Kollerup, Kolòdkin, Komstedt, Korneliusdotter, Korneliusson, Krabbe, Kraft, Krafve, Kragballe, Kragh, Kramer, Krapf, Krath, Krebs, Krehmer, Krieger, Krikström, Kristensdotter, Kristensen, Kristensson, Kristiansdotter, Kristiansdotter Wikman, Kristiansen, Kristiansson, Kristiansson Carlsson, Kristoffersdotter, Kristoffersen, Kristoffersson, Kristoffersson Dahlqvist, Kristoffersson Rosberg, Kristoffersson Syrén, Kroch, Krog, Krog, Krog-Meyer, Krogh, Kron, Kronkvist, Kronquist, Kronqvist, Kronvall, Kruse, Kulldorff, Kuntze, Kuylenstierna, Kuylenstjerna, Kvist, Kÿkler Kjökler, Kynde, Küttner, Kåge, Kåhre, Käll, Källman, Källström, Känne, Kölichen, Köller, la Cour, La Fleur, Lacey, Lager Malmberg, Lagerbielke, Lagerlöf, Lagerqvist, Lageson, Lagesson, Laggare, Landberg, Landby, Landén, Landgren, Landström, Langballe, Lange, Langergaard, Langner, Langsted, Lanng, Lans, Lanz, Larpent, Lars, Larsdatter, Larsdotter, Larsdotter DISBYT, Larsdotter Fält, Larsdotter Lundstedt, Larsen, Larsson, Larsson Blom, Larsson Bonde, Larsson Borgqvist, Larsson Callmer, Larsson Fält, Larsson Holm, Larsson Holst, Larsson Levin, Larsson Lindqvist, Larsson Lundstedt, Larsson Nordlund, Larsson Nyström, Larsson Rosén, Larsson Sjögren, Larsson Strand, Larsson Ström, Larsson Willander, Larsson Åvall, Lassedotter, Lassen, Lassesdotter, Lassesson, Lasson, Laub, Lauersen, Laurberg, Laurell, Lauritsdatter, Lauritsen, Lauritzen, Laursdatter, Laursen, Laursen Kuppert, Laustsen, Lavesdotter, Lavesson, Ledin, Lehndal ,Lehman, Lejon, Lem, Lemoine, Lennqvist, Lentz, Lentz Rée, León González, León Weinschenck, Lerche, Lesler, Leth, Lett, Leufvenmark, Levin, Liberg, Licht, Lidell, Lidén, Lidfeldt, Lidman, Lidström, Liebe, Liebert, Liebmann, Liedholm, Lihme, Lilienkampff, Lilja, Liljeblad, Liljegren, Liljeqvist, Lillelund, Lillienschiold, Lilliesköld, Limskilde, Lincoln Rosén, Lind, Lindahl, Lindal, Lindau, Lindbeck, Lindberg, Lindberg, Lindberg Persson, Lindblad, Lindborg, Lindell, Lindelof Olsen, Lindén, Lindenhäll, Linder, Linderström, Lindfors, Lindgreen, Lindgren, Lindh, Lindhardt, Lindholm, Lindkvist, Lindquist, Lindqvist, Lindros, Lindroth, Lindskog, Lindstén, Lindström, Lindström Rosendal, Lindvall, Lindwall, Ling, Linnet, Lisborg, Lithovia, Litz, Ljung, Ljungberg, Ljungdahl, Ljunggren, Ljungh, Ljungquist, Ljungqvist, Ljungström, Lodin, Loinsworth, Loir, López Blanco, Lorensen, Lorensson, Lorentsson, Lostedt, Lovén, Lovesson, Ludvigsdotter, Ludvigsson, Lueders, Lund, Lundahl, Lundberg, Lundberg Blücher, Lundberg Lindgren, Lundblad, Lundborg, Lundby, Lundbye, Lundgren, Lundholm, Lundin, Lundkvist, Lundmark, Lundquist, Lundqvist, Lundstedt, Lundstedt Zewde, Lundstén, Lundström, Lundvall, Lundwall, Luplau, Lustig Stångberg, Luther, Lyche, Lydersen, Lydichsen, Lyngaae, Lynge, Lütken, Lützen, Långdahl, Långström, Läbom, Lännquist, Löf, Löfdahl, Löfgren, Löfquist, Löfqvist, Löfstedt, Löfström, Löfvall, Lönbom, Lönbom Lundbom, Lönn, Lönnquist, Lönnqvist, Lönroth, Lövgren, Löwenadler, Löwstedt, Maale, Madsdatter, Madsen, Madsen Magius, Magius zu Horneburg, Magnidotter, Magnusdotter, Magnusdotter Magni, Magnusson, Magnusson Gullqvist, Magnusson Kronqvist, Magnusson Plan, Mahr, Mahrt, Majer, Malling, Malm, Malmberg, Malmborg, Malmgren, Malmquist, Malmqvist, Malmros, Malmrosdotter, Malmsten, Malmström, Malthe-Bruun, Mangor, Mannesdotter, Mannesson, Mantzius, Marceau, Marcel, Marcel Weinschenck, Maribo, Mark, Marklund, Markman, Markström, Markusdatter, Markvang, Marqurd, Marqvardt, Mars, Marsala, Marstrand, Martin Packness, Martinsson, Mathiasdotter, Mathiasen, Mathsson, Matsdotter, Matsson, Mattel, Mattiasson, Mattisdotter, Mattisson, Mattsdotter, Mattsdotter Sjöblom, Mattsson, Mattsson Lindnert, Mattsson-Mårn, Matzau, Matzdotter, Max, Medin, Meidell, Meier, Meigård, Meijb, Meijer, Meisler, Meissner, Melboe, Melén, Melin, Mellberg, Merbitz, Mertz, Mertz Blume, Mesler, Meulengracht, Meurs, Meyer, Michaelsdotter, Michelsdotter, Michelsen, Michelson, Michelsson, Mickelsdotter, Mickelsson, Middelthon, Mikkelborg, Mikkelsdatter, Mikkelsen, Mintschenko, Mitchell, Moberg, Modée, Modéer, Modin, Mogensdatter, Mogensen, Mohlin, Mohr, Molander, Molin, Mollberg, Mollerup, Moltke af Morales, Morales González, Morales Weinschenck, Mortensdatter, Mortensen, Morthorst, Morville, Moses, Motzfeldt, Mourier, Mulder, Mumme, Munch, Munck, Mundt-Petersen, Munk, Munthe, Myers, Mygind, Müller, Müllertz, Mynster, Münter, Myre, Måns Pers, Månsdotter, Månsson, Månsson Dahlgren, Månsson Holmgren, Månsson Klingenberg, Månsson Ljungstrand, Månsson Lundström, Mårtens, Mårtensdotter, Mårtensson, Möller, Möllergren, Möllerstedt, Nagel, Nansen, Nathan, Neckelmann, Nedergaard, Neergaard, Nej, Nelsdotter, Nelson, Nelsson, Nerman, Nero, Nesselqvist, Nettzén, Netzén, Neu, Neuenkirchen, Neuman, Nevander, Nexmar, Nicklasson Kilberg, Niclasdotter, Niclasson, Nielsdatter, Nielsdotter, Nielsen, Nielsen, Nielsen Nielsen Just, Nieuwenhuis, Niklasdotter, Niklasson, Nikolic, Nilén, Nils, Nilsdotter, Nilsdotter, Nilsdotter Boberg, Nilsdotter Lindqvist, Nilsdotter Niwén, Nilsdotter Walters, Nilsdotter Åkerman, Nilssen, Nilsson, Nilsson, Nilsson Ahl, Nilsson Bergqvist, Nilsson Björkman, Nilsson Bokander, Nilsson Engqvist, Nilsson Fransen, Nilsson Friberg, Nilsson Fält, Nilsson Gillén, Nilsson Hagblom, Nilsson Hedeby, Nilsson Holmgren, Nilsson Holmlund, Nilsson Klarin, Nilsson Lilja, Nilsson Lindberg, Nilsson Lindfors, Nilsson Lindgren, Nilsson Lindqvist, Nilsson Lindsjö, Nilsson Lindskog, Nilsson Lörd, Nilsson Melin, Nilsson Nettelbjer, Nilsson Nivén, Nilsson Niwén, Nilsson Petersson, Nilsson Rosenqvist, Nilsson Rydberg, Nilsson Seltir, Nilsson Sten, Nilsson Sundén, Nilsson Thomasson, Nilsson Tilly, Nilsson Vilhelmsson, Nilsson Årman, Niska, Nissen, Nobel, Nohr, Norberg, Nord, Nordahl, Nordberg, Nordborg, Nordell, Nordentoft, Nordgren, Nordholm, Nordin, Nording, Nordlander, Nordling, Nordlund, Nordmark, Nordqvist, Nordstedt, Nordsten, Nordstrand, Nordström, Norgren, Norlander, Norlund, Norrbohm, Norstedt, Norström, Nyberg, Nycander, Nyegaard, Nygren, Nygård, Nyholm, Nykvist, Nylander, Nylin, Nyman, Nyréhn, Nürnberg, Nyström, Näslund, Oberberg, Odhner, Odhnoff, Ogbewe, Ohlasdotter, Ohls, Ohlsdotter, Ohlsson, Ohlsson Malmström, Okänd, Okänt, Olaidotter, Olander, Olander Persson, Olandersson, Olasdotter, Olausdotter, Olausson, Oldenburg, Olesdatter, Olesen, Olin, Olivarius, Olof Pers, Olofsdotter, Olofsdotter, Olofson, Olofson Larsson, Olofsson, Olofsson Bergkvist, Olofsson Bergvall, Olofsson Hedquist, Olofsson Hensy, Olofsson Lindberg, Olofsson Lindberg Hägg, Olofsson Lundgren, Olofsson Nordlund, Olofsson Sandström, Olofsson Sjödal, Olofsson Stenberg, Olofsson Stocker, Olofsson Tengvall, Olofsson Ölund, Olovsdotter, Olovsson, Ols, Olsdatter, Olsdotter, Olsdotter Mattsson, Olsen, Olson, Olson-Carle, Olsson, Olsson Ahlin, Olsson Andonius, Olsson Boberg, Olsson Falk, Olsson Idoff, Olsson Kanér, Olsson Kron, Olsson Lind, Olsson Mattsson, Olsson Murat, Olsson Odervall, Olsson Olin, Olsson Orsmark, Olsson Rothén, Olsson Rydebank, Olsson Segerslätt, Olsson Skog, Olsson Smith, Olsson Thorsberg, Olsson Wedén, Olsson Wendelin, Olsson Wik, Olufdatter, Olufsdatter, Olufsdotter, Olufsen, Olufsson, Oredsdotter, Orsmark, Oscarsson, Oskarsdotter, Ossbahr, Ostenfeld, Otterstedt, Ottosdotter, Ottosson, Overgaard, Ovesen, Packer, Pagander, Pagels, Pahl, Palau, Palmgren, Palmquist, Palmqvist, Paludan, Palvig, Pamp, Park, Parson, Pauli, Paulsdotter, Paulsen, Paulson, Paulsson, Paumen, Pavius, Payngk, Pedersdatter, Pedersdatter, Pedersdatter, Pedersdotter, Pedersen, Pedersen, Pedersen-Holmen, Pehrsdotter, Pehrsson, Pehrsson Ström, Pena, Pena Weinschenck, Per Hans, Perez Martinez, Pers, Persbeck, Persdotter, Persdotter Ek, Persdotter Hinsasdotter, Persdotter Lundström, Persdotter Pålsson, Persdotter Walters, Persdotter Ågårdh, Persson, Persson Ahlström, Persson Ask, Persson Attrup, Persson Billing, Persson Cronsioe, Persson Cronsjö, Persson Dahlgren, Persson Dahlqvist, Persson Ek, Persson Ekberg, Persson Ekstrand, Persson Eld, Persson Engman, Persson Engström, Persson Finman, Persson Fredlund, Persson Grundström, Persson Gryta, Persson Hedlund, Persson Hektor, Persson Henrysson, Persson Holm, Persson Järnkula, Persson Lindström, Persson Lundström, Persson Löfdahl, Persson Löfgren, Persson Malmström, Persson Marklund, Persson Nerman, Persson Nevander, Persson Nordqvist, Persson Pettersson, Persson Pihlström, Persson Pilquist, Persson Rosberg, Persson Rosenlund, Persson Sten, Persson Sundén, Persson Sundqvist, Persson Söderstjerna, Persson Wallin, Persson Wendel, Persson Wicklund, Persson Ågårdh, Peter, Petersdotter, Petersdotter Björklund, Petersdotter Hall, Petersen, Petersen, Petersen Peterson, Petersson, Petri, Pettersdotter, Pettersson, Pettersson Althén, Pettersson Karlsson, Pettersson Mannström, Pettersson Molin, Pettersson Munkert, Pettersson Ohlander, Pettersson Rabe, Pfeiffer, Philipsen, Phillips, Piculell Larsson, Pihl, Pilquist, Pindsfeld, Piper, Pira, Plambeck, Plambeck Borgström, Plan, Plenge, Plesner, Pligt, Plomgren, Plum, Pofvelsen, Pofvelsson, Poleman, Porth, Posfelt, Poulsdatter, Poulsdatter Steenild, Poulsen, Pourtschan, Pousette, Pramberg, Prien, Priergaard, Printz, Prom, Provilo, Prüss, Pryts, Psilander, Pultz, Påhlsdotter, Påhlson, Påhlsson, Påhlsson Falk, Pålsdotter, Pålsson, Pålsson Lindskog, Pålsson Strand, Pährsdotter, Pärsdotter, Pärson, Pärsson, Pärsson Korp, Quist, Qvarnström, Qvist, Qvistgaard, Qvistgård, Raaf, Rabe, Rafn, Rafqvist, Ragnell, Rambech, Ramberg, Ramm, Ramstedt, Ramström, Rank, Rankin, Rasmusdatter, Rasmusdotter, Rasmusen, Rasmussen, Rasmussen, Rasmussen Erasmi, Rasmusson, Rathjen, Rathsack, Ravn, Reckenagel, Redout, Rée, Regnell, Regnér, Rehn, Reidl, Reimer, Reinhold, Reinholtz, Reinold, Renberg, Renlund, Renner, Renström, Resman, Reuss-Lobenstein, Reuterswärd, Reuther, Rexert, Ribbing, Riber, Richert, Riis Johansen, Riisberg, Rindom, Ring, Ringberg, Ringdahl, Ringkvist, Ringquist, Ringqvist, Ringström, Ripperger, Risberg, Ritzén, Rivero González, Rivero Weinschenck, Rode, Rodríguez, Rohde, Rohman, Rohr, Rojas Naranjo, Rojas Weinschenck, Rokström, Romberg, Rommedal, Rosander, Rosberg, Rosdahl, Rosell, Rosén, Rosenberg, Rosendahl, Rosenfeldt, Rosenfelth, Rosengren, Rosenkvist, Rosenlund, Rosenlöf, Rosenqvist, Rosman, Rosqvist, Ross, Rosslin, Rossvik, Rosvall, Roth, Rothe, Rothén, Rova, Rubach, Ruckle, Rudberg, Rudolf, Rudolf Billesjö, Rundberg, Rundfält, Rundgren, Rundquist, Rundqvist, Runestam, Rungren, Runnerström, Rur, Ruth, Ruthberg, Ryberg, Rydberg, Ryde, Ryder, Rydqvist, Rydstrand, Rydström, Rye, Rylander, Rönberg, Rönne, Rönngren Rungren, Rönnkvist, Röring, Rössel, Sabelfelt, Sabelsköld, Sabournin Téllez, Sabroe, Sagnert, Salomonsson, Samuelsdotter, Samuelsen, Samuelsson, Sandahl Harved, Sandberg, Sandell, Sander, Sandgren, Sandin, Sandlund, Sandqvist, Sandrewsky, Sandström, Sassarsson, Sassersdotter, Sassersson, Saur, Savstam, Saxild, Schack, Schadely, Schaumburg-Müller, Scheibe, Schell, Scherman, Schildknecht, Schillström, Schive, Schjerning, Schmeling, Schmidt, Schmigelov, Schnabel, Scholander, Schollin, Schommel, Schou, Schou Kjeldsen, Schrader, Schubart, Schulow, Schultz, Schuylenburg, Schwan, Schwennesen, Schylander, Schytte, Schönbeck, Schörling, Schött, Sedvall, Seger, Segerslätt, Segerström, Segerståhl, Sehested, Seidelin, Seiholtz, Sejersen, Sejoe, Selberg, Selien, Selin, Selldén, Sendrup, Sevedsson, Severin, Severin Borg, Sidström, Siegumfeldt, Sifverdotter, Sigfridsson, Sigurd, Sigvardsdotter, Silfverberg, Silfverhjelm, Silfverschiöld, Sillén, Simko, Simonsdatter, Simonsdotter, Simonsen, Simonsson, Singstock, Siunason, Siunnas, Siunnesson, Sizmore, Siöstet, Sjunarsson, Sjunnesdotter, Sjunnesson, Sjöberg, Sjöblom, Sjödahl, Sjögren, Sjöholm, Sjölin, Sjölund, Sjösten, Sjöstrand, Sjöstrand Sandberg, Sjöström, Skafte, Skibsted, Skog, Skogh, Skoglöf, Skov, Skow, Skow, Skåningsdotter, Skåningsson, Slater, Släger, Smagbier, Smidt, Smith, Smoby, Snejstrup, Solheim, Sonasdotter, Sonesdotter, Sonesson, Sonesson-Bögerup, Sonmark, Sorterup, Soter Rodríguez, Speitzer, Spetz, Spleth, Stabel, Stabell, Staffansdotter, Staffansson, Stallknecht, Stampe, Stark, Starke, Steenild, Stefansson, Steinthal, Steiner, Sten, Stenbeck, Stenberg, Stenbom, Stendal, Stender Nielsen, Steneram, Stenhammar, Stenkvist, Stenlund, Stenmark, Stenvall, Stephansson, Stewens, Stibolt, Stierna, Stiernspetz, Stiernstedt, Stisen, Stjernkrantz, Stjernkvist, Stjernspetz, Stochholm, Stocker, Stockfleth, Stoltz, Storck, Stoud, Strand, Strandberg, Strandbygaard, Strandkvist, Strandqvist, Strange, Strangesen, Strannesten, Strelert, Stricharsdotter, Strid, Stridbeck, Stridde, Stridh, Stråhle, Stråhlén, Stråhlenhielm, Stråle, Ström, Strömberg, Strömblad, Styff, Ståhl, Stål, Stång, Suhr, Sundberg, Sundbom, Sunddin, Sundell, Sundén, Sundgren, Sundquist, Sundqvist, Sundstedt, Sundström, Supanick, Suzuki, Svan, Svanberg, Svanborg, Svane, Svaneklink, Svanholm, Svedholm, Sven Pers, Svendsdatter, Svendsen, Svendstorp, Svenningsen, Svenningsson, Svensdotter, Svenson, Svensson, Svensson Angelin, Svensson Backe, Svensson Bergström, Svensson Borgkvist, Svensson Brännare, Svensson Brännberg, Svensson Brännström, Svensson d y, Svensson d ä, Svensson Delin, Svensson Forsberg, Svensson Fransson, Svensson Hertzman, Svensson Hjertz, Svensson Holmberg, Svensson Kellgren, Svensson Källgren, Svensson Ljung, Svensson Malmsten, Svensson Mohlin, Svensson Möller, Svensson Olsson, Svensson Quist, Svensson Qvist, Svensson Revert, Svensson Rosendahl, Svensson Sjösten, Svensson Skog, Svensson Wahlsten, Svänasson, Svänsson, Svärd, Swan, Swensdotter, Swensson, Sånasson, Säflund, Säfvedsson, Sällberg, Sävsten, Söderblom, Södergren, Söderholm, Söderman, Söderstjerna, Söderström, Sörensdotter, Sörensson, Sörensson-Utbult, Taberman, Tafdrup, Tagesson, Tamelander, Tanner, Tapper, Tarm, Tauson, Tell, Tellström, Tengvall, Tern, Tetens, Thaarup, Thalin, Thestrup, Thiel, Thiele, Thielsen, Thiesen, Thillerup, Tholander, Thomasdatter, Thomasdotter, Thomassen, Thomasson, Thomsen, Thomsen, Thorbjörnsson, Thormansdotter, Thormarck, Thorsberg, Thorsdotter, Thorsell, Thorsen, Thorsson, Thorzén, Thostesson, Thuesdotter, Thuesen, Thulin, Thunström, Thunvall, Thuresdotter, Thuvesson, Thygesdatter, Thörning, Tibemo, Tietz, Tillheden, Tillisch, Tillrooth, Tilly, Timmermann, Tinder, Tinggård, Tjalve, Tjernström, Tobiasson, Toivasdotter Gustafsson, Toldberg, Tolerus, Toll, Tollesdotter, Tollesson, Tomasdotter Friberg, Tomasson, Toomaru, Torbjörnsson, Toresdotter, Torgersdotter, Torgersson, Torgersson Malmgren, Torjesdatter, Torkelsdotter, Torling, Torp, Torsdotter, Torslov, Torsson, Torstensdotter, Torstensson, Tostensdotter, Tostensson, Trana, Tranberg, Tranfeldt, Traustedt, Travis, Troedsdotter, Troedsson, Troedsson Cedergren, Trolle, Truedsdotter, Truedsson, Trulsdotter, Trulsson, Trulsson Otterstedt, Tuesdotter, Tufvasdotter, Tufvesdotter, Tufvesson, Tufvesson Thulin, Tuheson, Tulin, Tullberg, Tullesdotter, Tullgren, Tullipan, Tune, Turesson, Tuvasdotter, Tuvesdotter, Tuvesson, Tuvfvesson, Tuxen, Tvede, Tvermoes, Twetowius, Tybjerg, Tyge, Tykesdotter, Tykesson, Tårstensson, Tåstesdotter, Tåstesson, Tönnesdotter, Törner, Törnquist, Udsen, Udsole, Uf, Uhrman, Uldall, Uldriksdatter, Ulfsax, Ulrich, Ulrichsdatter, Undahl, Unger, Unna, Ussing, Utbult, Uusitalo, Vahlholm, Vahlquist, Vaksjö, Valeriano, Valeriano Palau, Valeriano Weinschenck, Vallenstam, Vallin, Vallström, Valter, van de Velde, Van Der Linden, van der Schaft, Vanlith, Vedel, Vejby-Christensen, Velin, Vendel, Vennborg, Verner-Carlsson, Vester, Vesterberg, Vesterby, Vestergaard, Vesterlund, Vestman, Vetterberg, Vetterström, Viale, Viberg, Victor, Vidén, Vik, Vikberg, Viklund, Vikman, Vikström, Viktorsson, Vilhelmsen, Vilhelmsson, Villman, Vinstedt, Vinther, Visser, Voigt, Voldmester, Volkersen, von Arenstorff, von Barnekow, von Brandes, von Deer, von Degen, von Grabmayr-Angerheim, von Halle, von Holstein, von Holstein af Fürstenberg, von Holtzmann, von Kauffmann, von Knorre, von Kreitz, von Krogh, von Köller, von Lepel, von Magius, von Merbitz, von Otter, von Platen, von Pultz, von Quanten, von Schantz, von Schinckel, von Staffeldt, von Stolting, von Westen, von Wouwern, von Würtzen, von Zeipel, Vontobel, Voogd, Värn, Wadén, Waern-Leffler, Wahlberg, Wahlgren, Wahlsten, Wahlström, Wahlund, Wahren, Waldemarsson, Waleru, Walker, Wallander, Wallander Karlsson, Wallberg, Wallbom, Wallén, Wallenius, Wallenius Lundgren, Wallentinsson, Wallersteen, Wallin, Wallius, Wallmark, Wallström, Walter, Waltersson Spanier, Wandborg, Warde, Warg, Warming, Warrer, Wartberg, Wassler, Wasteson, Watt, Way, Wedell-Wedellsborg, Wedseltoft, Weed, Wegener, Weibull, Weiland, Weimard, Weinschenck, Weinschenck Benítez, Weinschenck Campos, Weinschenck de Armas, Weinschenck González, Weinschenck Jordán, Weinschenck López, Weinschenck Morales, Weinschenck Perez, Weinschenck Soter, Welander, Welding, Welinder, Wellnert, Wendel, Wendelbo-Madsen, Wendin, Wendt, Wennberg, Wennborg, Wenström, Werlin Olsson, Wernebäck, Werner, Wernersdatter, Wers, Wessberg, Wesselsdotter, Wessman, Westberg, Wester, Westerberg, Westerblad, Westerdahl, Westergren, Westerlund, Westermark, Westin, Westling, Weston, Wettergreen, Wettergren, Wetterstrand, Weyde, Wiberg, Wickenberg, Wicklund, Wicklund Pihlström, Wickström, Widding, Widér, Widerberg, Widestrand, Widgren, Wifesson, Wifvesdotter, Wifvesson, Wiinstedt, Wik, Wikberg, Wiklund, Wikman, Wikström, Wilckens, Wilde, Wildermuth, Wilhelmsson, Willadsen, Willander, Willerup, Wilmenius, Winberg, Winblad, Wingenblixt, Winkler, Winstedt, Winter, Winters, Winther, Wisén, Wismer, Wissén, Wistedt, Wistedt Vetterström, Witte, Wodstrup, Wohlgemuht, Wolff, Wolff-Sneedorf, Wolkersen, Worm, Wormslev, Wretman, Wulff, Wåhlberg, Wållin, Wärn, Wästeson, Ydström, Ygberg, Yhl, Ytterberg, Zachariassen, Zachariasson, Zachau, Zachrisson, Zackariasdotter, Zackariasson, Zackow, Zackrisson, Zakrisdotter, Zakrisson, Zederin, Zetterberg, Zetterman, Zetterström, Zewde, Ziemer, Ziervogel, Ziethen, Zilo, Zimmermann, Zinck, Åberg, Åbom, Ågesdotter, Ågesson, Ågren, Ågårdh, Åhrberg, Åkasdotter, Åkason, Åkasson, Åkerberg, Åkerblom, Åkerlund, Åkerman, Åkerström, Åkesdotter, Åkeson, Åkesson, Åkesson, Åkesson Falkman, Åkesson Lindqvist, Åkesson Thulin, Åman, Åradsdotter, Åradsson, Årman, Åström, Äskels, Öberg, Öberg Nlsson, Öfverlund, Ögren, Öhlund, Öhman, Öhrman, Öjeberg, Ölund, Öman, Önnersdotter, Önnerson, Önnersson, Örtberg, Örtegren, Öst, Östberg, Östensdotter, Östensson, Österberg, Östergren, Österlund, Östgren, Östlund, Östman],
female: [Aagesdatter, Aarestrup, Aasen, Abelsen, Abildgaard, Abrahamsdotter, Abrahamsen, Abrahamsson, Abramsdotter Brännström, Achton, Adamsson, Adersson Almertz, Adolfsson, Adtzarsdotter, Adtzarsen, Adtzersdotter, Adtzerson, Adtzersson, Adtzersson Forsström, Adtzersson Rug, af Forsell, af Ström, Agelmo, Agerup, Aggerup, Agner, Ahl, Ahlberg, Ahlbin, Ahlbom, Ahlin, Ahlstedt, Ahlström, Ahnfeldt, Albrechtsson, Aldewelt, Aldrin, Alexandersdotter, Alexandersson, Alfredsson, Allesen, Allesen Bunkeflod, Allesen de Fine Bunkeflod, Allesen-Vernö, Allison, Almén, Almgren, Almqvist, Alrom, Alsén, Alteresius, Ancher, Anchersen, Ancker, Anderberg, Anderdotter, Anders, Andersdatter, Andersdotter, Andersdotter, Andersdotter Andersson, Andersdotter Bager, Andersdotter Lundberg, Andersen, Anderson, Andersson, Andersson Ahl, Andersson Anderberg, Andersson Anderström, Andersson Berglund, Andersson Bock, Andersson Boström, Andersson Bränn, Andersson Ekdahl, Andersson Eklund, Andersson Fastberg, Andersson Fridlund, Andersson From, Andersson Granat, Andersson Haeffner, Andersson Hagelin, Andersson Hejde, Andersson Hjälte, Andersson Lind, Andersson Lindqvist, Andersson Lindström, Andersson Lundström, Andersson Odhnoff, Andersson Olin, Andersson Rehn, Andersson Sandberg, Andersson Sjöström, Andersson Skog, Andersson Strand, Andersson Törne, Andersson Wikman, Andersson Winberg, Andersson Östman, Andesen, Andrassy, Andreasdatter, Andreasdotter, Andreasen, Andreasson, Angel, Angelberg, Anthon, Appelmark, Arctander, Arelsson, Arendorf, Arendtson, Arent, Arentsdatter, Arildsdotter, Armfelt, Arnander, Aronsson, Arosenius, Arvidsdotter, Arvidsson, Ascanius, Asisef, Askulin, Asmundsdotter, Asmundsson, Asmunsson, Asmussen, Asproth, Assarsdotter, Assarsson, Assarsson Åkerman, Assersdotter, Assersson, Assmundsson, Aubert, Augustin, Augustsdotter, Aulander, Avander, Axell, Axelsdotter, Axelson, Axelsson, Baark, Bach, Bache, Bachmann, Backe, Backlund, Backman, Backström, Baeckström, Bager, Bagger, Bahnson, Bang, Bangert, Barck, Barfod, Barfoed, Barfred, Barlit, Bartholdson, Barting, Barting Haeffner, Barzen, Basballe, Bathe, Battus, Baumann, Baumgarten, Bay, Bech, Beck, Becker, Beckmann, Beckwith-Lohmeyer, Bemarell, Benander, Bencke, Bendiksdatter, Bendz, Benedictson, Benedikt, Bengtsdotter, Bengtsdotter Hejde, Bengtsdotter Spanier, Bengtsson, Bengtsson Bergfors, Bengtsson Björk, Bengtsson Frost, Bengtsson Hejde, Bengtsson Korp, Bengtsson Lindén, Bengtsson Ljungqvist, Bengtsson Lundgren, Bengtsson Rudolf, Bengtsson Spanier, Bengtsson Wallersteen, Bengtsson Öst, Bengtström, Benjaminsdotter, Bentsen, Bentzen, Bentzien, Bentzon, Benzer, Benzon, Ber, Bercher, Berendt, Berg, Bergdahl, Bergdal, Bergeld, Bergelin, Bergencrona, Bergendal, Bergendorff, Bergenenhammer, Bergenfeldt, Bergeschou, Bergfors, Berggreen, Berggren, Berghman, Bergkvist, Berglund, Bergman, Bergner, Bergquist, Bergqvist, Bergstedt, Bergsten, Bergstrand, Bergstrom, Bergström, Bergvall, Berlin, Berndtsson, Bernhardsdotter, Bernhardsson, Bernström, Berntsdotter, Berntsson, Berntsson Berg, Berregaard, Bertelsdatter, Bertelsdatter, Bertelsdotter, Bertelsen, Bertelsson, Bertilsson, Bertle, Beutner, Bianco Boeck, Bie, Bieragger, Bierg, Bierum, Biilmann, Bild, Bilde, Bildt, Bill, Billabong, Billabong, Billberg, Billbergh, Bille, Bille-Brahe af Svanholm, Billenberg, Billgren, Billing, Billman, Billström, Billström Nilsdotter, Bilsted, Birch, Birck, Birkedal, Bisserup, Bisted, Biörnsson, Bjelkström, Bjerg, Bjerger, Bjerring, Bjushed, Björk, Björklund, Björkman, Björnberg, Björner, Blad, Bladh, Bladlund, Blaylock, Blegvad, Blicher, Blichfeldt, Blitzén, Blix, Blixt, Bloch, Blom, Blomberg, Blomkvist, Blomqvist, Blomsterberg, Blomsterqvist, Blomstrand, Blume, Blücher, Bock, Bodemayer, Bodinsson, Bogren, Bohle, Bohman, Bohn, Boijsen, Bokelund, Bokstad, Bolin, Bolmeér, Boman, Bonde, Bondesdotter, Bondesson, Bonne, Bonnevie, Bonnevier, Bonskog, Boosdotter, Borberg, Borelli, Borg, Borgelin, Borggren, Borgh, Borgkvist, Borglin, Borgman, Borgqvist, Borgström, Bornemann, Borreschmidt, Borthig, Bosdotter, Boström, Both, Botvidsson, Bovin, Boyesen, Boysen, Brahe, Brammer, Bramsen, Brandling, Brandt, Brangstrup, Branth, Branting, Branting, Brask, Brauer, Braun, Braunstein, Bredal, Breegaard, Bregendahl, Brehmer, Bremer, Brieger, Brilioth, Bringentoff, Brink, Brix, Broch, Brock, Brodersen, Broge, Brogren, Brolin, Brolund, Broman, Broomé, Brorsdotter, Brorson, Brorsson, Bruce, Brumberg, Brun, Brunsson, Bruun, Brüdigam, Brÿgger, Bryngelsson, Bryngelsson Bjushed, Bryngelsson Jardesten, Bryngelsson Ryberg, Brysting, Brytz, Brännström, Buch, Buchhave, Buchwald, Bugge, Bull, Bulow, Bunkeflod, Burmaister, Burman, Burmeister, Burss, Burvall, Busk-Jepsen, Busse, Bügler, Bützow, Bång, Bäck, Bäckström, Bängts, Börgesson Law, Börjasson, Börjesson, Callmer, Calow, Cammermeyer, Campos Valdés, Candelin, Caradja, Carlheim, Carlheim-Gyllenskiöld, Carlsdotter, Carlsdotter Eriksson, Carlsen, Carlsson, Carlsson Bager, Carlsson Brandstad, Carlsson Cagéll, Carlsson Dahlberg, Carlsson Dahlqvist, Carlsson Hallberg, Carlsson Karlzén, Carlsson Landén, Carlsson Listerberg, Carlsson Thorsberg, Carlsson Thulin, Carlsson von Magius, Carlsson Öberg, Carlström, Carr, Caspersson, Cederberg, Cederholm, Cederlund, Challamell, Charleville, Charling, Charpentier, Charr, Chaura Deumacan, Chenoweth, Chirkova, Christell, Christensdatter, Christensdotter, Christensen, Christensen, Christensen Keitt, Christensen Snejstrup, Christensson, Christensson Lundstätt, Christersson, Christiansdatter, Christiansdotter, Christiansen, Christiansson, Christoffersdatter, Christoffersdotter, Christoffersen, Christoffersson, Christophersson, Claesson, Clase, Clason Lund, Classén, Classon, Clausen, Clausson, Clemedsson, Clemens, Clemensdatter, Clemensson, Clementsdotter, Collberg, Collberg Jarke, Colliander, Collin, Colonna de Leca, Condé, Cordes, Cornelius, Corneliusdotter, Cortsen, Covot, Cramer, Crawford, Cremon, Cristensen, Crona, Cronberg, Crone, Cronholm, Cronlund, Cronqvist, Cruys, Dahl, Dahlberg, Dahlbom, Dahlgren, Dahlin, Dahlkvist, Dahlman, Dahlquist, Dahlqvist, Dahlström, Dahnsson, Dahqvist, Dajrtendich, Dalberg, Dalgren, Dalman, Dam, Damm, Damm Jensen, Damm-Pedersen, Danelius, Danielsdotter, Danielsen, Danielsson, Danielsson Hartelius, Dankwardt-Lilieström, Darell, Darre, Daun, Davidson, Davidsson, de Armas Ramírez, de Bang, de Bruce, de Ferry, de Fine, de Fine Licht, de Fine Olivarius, de Hemmer, de la Cour, de Neergaard, Degerman, Degermark, Deichmann, Demidoff, Demuth, Dessau, Díaz, Dietrich, Dinesdatter, Dinesen, Dobson, Dochedahl, Dochedahl-Petersen, Dockendorf, Dormé, Dorn, Dornonville de la Cour, Doslic, Drechsel, Dressel, Drews, Dreyer, du Bois, du Plesis De Richelieu, Dunér, Duus, Duval, Duvander, Dyberg, Dyker, Dyrbye, Dürkopp, Dürr, Ebbasdotter, Ebbesen, Ebbeson, Ebbesson, Ebling, Edberg, Edelberg, Edén, Edholm, Edin, Edling, Edvardsdotter, Edvardsson, Edwardsson, Eek, Eftevaag, Egeberg, Ehlers, Ehrning, Ek, Ekberg, Ekblad, Ekbladh, Ekblom, Ekborg, Ekdahl, Ekelund, Ekeman, Ekenberg, Ekenman, Ekeroth, Eklund, Eklöf, Eklöv, Ekman, Ekstrand, Ekström, Ekvall, Elam, Elfström, Elg, Eliadotter, Eliasdotter, Eliasson, Eliasson Lindell, Elke, Ellberg, Ellefsen, Ellertsson, Elling, Ellington, Elmén, Elmquist, Elofsdotter, Elofsson, Eman, Emanuelsdotter, Emanuelsson, Emanuelsson Ekblad, Emborg, Enberg, Eneberg, Enevaldsson, Engberg, Engblom, Engdahl, Engler, Englund, Engman, Engqvist, Engstedt, Engstrand, Engström, Engvall, Enkvist, Erhardi, Erichsen, Erichson, Erichsson Kihl, Ericksson, Ericsdotter, Ericsson, Eriksdatter, Eriksdotter, Eriksen, Erikson, Eriksson, Eriksson Energren, Eriksson Hedquist, Eriksson Hultberg, Eriksson Krycker, Eriksson Åman, Erlandsdotter, Erlandsson, Erlandsson, Erlström, Ernstdotter, Ernvall, Ersdotter, Ersson, Ersson Lindström, Ertiksson, Esbjörnsdotter, Eskelsson, Eskildsdotter, Eskilsdotter, Eskilsson, Estensen, Estoesta, Eurenius, Evald, Everlöf, Eyermann, Fabricius, Fader, Faederholdt, Fagerberg, Fahlgren, Fahlman, Fahlstedt, Faith, Falck, Falk, Falkenberg, Falkvall, Fastberg, Faurschou, Feilberg, Feiniger, Feininger, Fensmark, Ferngren, Fernström, Ferrer, Ferrer Weinschenck, Ferslev, Fibiger, Fick, Fiedler, Filipson, Findelius, Finman, Finnman, Fjällström, Flaméhn, Fledelius, Fleihan, Flensburg, Flink, Flintzberg, Flodman, Florinsky, Flygare, Flögt, Fock, Fogelberg, Fogh, Fors, Forsberg, Forselius, Forsell, Forslund, Forsman, Forssén, Frandsdatter, Frandsen, Frank, Franke, Fransson, Frantzdatter, Franzén, Frederiksen, Fredriksdotter, Fredriksson, Freij, Frej, Frese, Friberg, Friberg-Ekberg, Fribert, Frid, Friese, Friis, Frimodt, Frisendahl, Frisk, Frisk "Frisch", Fristedt, Fritiof, From, Frosetter, Frost, Fröberg, Fröjd, Frönell, Fugl, Fuglede, Fuller, Funch, Füchslin, Fyhr, Fynboe, Fält, Fältström, Gabrielsdotter, Gabrielsson, Gad, Gadamer, Gade, Galle, Gamél, Gammeltoft, Garland Elam, Garmann, Gasslander, Gedeborg, Gehrt, Geijer, Gelin, Genefke, Genschow, Georgsdotter, Gerberg, Gerdtsdotter, Gerdtsson, Gergi, Gergi Lundstedt, Germansen, Germundsson, Giedde, Gielff, Giessing, Gilde, Gillberg, Gislander, Gjedde, Gjertsen, Gjuditz, Glahn, Glerup, Glud, Goelitz, Gommesen, González Más, González Pena, Gorra, Gorra Weinschenck, Gottlander, Graf, Grahn, Gran, Granberg, Granholm, Grankvist, Granlund, Granqvist, Granstedt, Granström, Green, Greisbach, Gren, Greve, Grip, Grubbe, Grundeis, Grundström, Grut, Grähs, Grönkvist, Grönquist, Grönvall, Grönwall, Gudfastersen, Gudmonsdotter, Gudmundsdotter, Gudmundsson, Gudmunsson, Guldberg, Guldbrandsen, Gullberg, Gullqvist, Gullstrand, Gulstad, Gultzau, Gumme Pers, Gummesen, Gummesson, Gummesson Lindkvist, Gunarsdotter, Gunnarsdotter, Gunnarsson, Gunnér, Guntell, Guskasson, Gussarsson, Gustafsdotter, Gustafsdotter Lindblom, Gustafsdotter Möller, Gustafsdotter Spanier, Gustafsson, Gustafsson Edling, Gustafsson Fernström, Gustafsson Spanier, Gustafsson Ulfsax, Gustavsdotter, Gustavsson, Gustavsson Tillrooth, Gyldencrantz, Gylding, Gyllén, Günther, Gärdehall, Göransdotter, Göransson, Görgensen, Götz, Haagen, Haastrup, Haeffner, Haeffner, Haeffner-Flodman, Hafström, Hagblom, Hagefeldt, Hagelin, Hagemann, Hagéus, Haggärde, Haglund, Hagman, Hagström, Hahn, Hake, Halbert, Haleby, Hall, Halland, Hallberg, Halleby, Hallenborg, Haller, Hallgrímsdóttir, Hallin, Halling, Hallström, Hals, Halvarsson, Halved, Halvorsen, Hamilton, Hamlett, Hamlin, Hammar, Hammarberg, Hammarbäck, Hammarlund, Hammarqvist, Hancke, Hansdotter, Hansdotter Bunkeflod, Hansdotter de Fine, Hansen, Hansen, Hansen Borntoft, Hansen Riber, Hansesdotter, Hanson, Hansson, Hansson Dalberg, Hansson Engström, Hansson Eriksson, Hansson Lindberg, Hansson Lundberg, Hansson Lundstedt, Hansson Löf, Hansson Roth, Hansson Sjölin, Hansson Spanier, Hansson-Dahl, Haraldsdotter, Haraldsson, Harboe, Harder, Hart, Hartelius, Hartwig, Hartwigsson, Hartzberg, Hasfeldt, Haslund, Hasselquist, Hasselqvist, Hastrup, Hatting, Hauch, Hazell, Hecht, Heckscher, Hecksher, Hector, Hedberg, Hedberg "Leander", Hedblom, Hedeberg, Hedeby, Hedeman, Hedenskog, Hedenstierna, Hedkvist, Hedling, Hedlund, Hedman, Hedquist, Hedqvist, Hedström, Hedvalls, Hedvist, Heering, Héhn, Heiberg, Heiberg Ipsen, Heidenberg, Heikel, Heitmann, Hejde, Hejlesen, Hektor, Helander, Helgesson, Heljeberg, Heljesdotter, Heljesson, Hellberg, Hellén, Hellgren, Hellman, Hellstadius, Hellström, Helmer, Hemberg, Henckel, Hendriksson, Henningsen, Henrichsen, Henrichsson, Henricsdotter, Henriksdotter, Henriksen, Henriksson, Henriksson Dalberg, Henriksson Hallberg, Henriksson Hyllén, Henriksson Persson, Henrysson, Herazeck, Herder, Herforth, Herlman, Hermansdotter, Hermansen, Hermansson, Hermodsson, Hern, Herrman, Herskind, Hersvall, Hertz, Hertzberg, Hertzman, Herztler, Hessellund, Hesselman, Hetting, Heuch, Heurlin, Hieronimusdatter, Hieronimussen, Higgens, Hilding, Hillborg, Hillman, Hindrichsdotter, Hindrichsson, Hindricsdotter, Hingtsasdotter, Hinrichsen, Hinsasdotter, Hinsasson, Hinsesson, Hjelm, Hjelmdrop, Hjort, Hjorth, Hjorthagen, Hjortsberg, Hjuler, Hober, Hoff, Hoff Hansen, Hoffensberg, Hoffman, Hoffmann, Hofsteter, Holbech, Holbek, Holgersdotter, Holgersen, Holgersson, Holland, Holm, Holmberg, Holmblad, Holmgren, Holmkvist, Holmlund, Holmquist, Holmqvist, Holmstedt, Holmström, Holst, Holst Kjeldsen, Holtzbro, Hoppe, Hopper, Horn, Horneman, Hornemann, Hortman, Hostrup Schultz, Hougaard, Hoversdatter, How, Howitz, Hugosson, Huhne, Hult, Hultberg, Hultén, Hultgren, Hultin, Hultman, Hurtig, Huss, Hutfeld, Huth, Hvid, Hviid, Hwasser, Hydfeldt, Hyllested, Hüttmann, Hågensdotter, Håkansdotter, Håkansson, Hård af Segerstad, Häger, Hägerman, Hägg, Hägglund, Hällberg, Häller, Hällgren, Häsler, Högberg, Höglund, Högrelius, Hörberg, Hörjesson, Hörngren, I Kroen, Ifvarsson, Ifversson, Ingelsdotter, Ingelson, Ingelsson, Ingelsten, Ingemansson, Ingemarsdotter, Ingemarsson, Ingerslev, Ingesdotter, Ingesson, Ingram, Ingvarsdotter, Ingvarsson, Ingvartsen, Ipsdatter, Ipsen, Irestam, Irmlev, Isaksdotter, Isaksson, Isenberg, Isibarth, Israel, Ivarsdotter, Ivarsson, Iversen, Jacksson, Jacobi, Jacobsdatter, Jacobsdotter, Jacobsen, Jacobsson, Jahn, Jahnsson, Jakobsdotter, Jakobsson, Jakobsson, Jannesson, Jansdotter, Jansdotter Öman, Jansen, Jansson, Jansson Eriksson, Jansson Haeffner, Jarl, Jarle, Jarnestad, Jensdatter, Jensdatter, Jensdatter, Jensen, Jensen Lang, Jensen Vestergaard, Jensenius, Jensön, Jeppasdotter, Jeppasson, Jeppesdotter, Jeppesen, Jeppsdotter, Jeppsson, Jeppsson Forsberg, Jepsdotter, Jepsson, Jernberg, Jersild, Jespersen, Jessen, Jochumsen, Jockumsen, Joensdotter, Joensson, Johannesdotter, Johannesson, Johannesson Nordell, Johannesson Winberg, Johannisdotter, Johannisson, Johansdotter, Johansdotter Palm, Johansdotter Sundell, Johansen, Johansson, Johansson Bergeld, Johansson Bergenfeldt, Johansson Burman, Johansson Einald, Johansson Ekström, Johansson Frönell, Johansson Granberg, Johansson Hagberg, Johansson Hedquist, Johansson Holmgren, Johansson Jarlestam, Johansson Killberg, Johansson Lindberg, Johansson Malmqvist, Johansson Marklund, Johansson Persson, Johansson Sjöberg, Johansson Sundqvist, Johansson Åhl, Johansson Öberg, Johansson Öst, Johnsdotter, Johnson, Johnsson, Johnsson Friberg, Jonasdotter, Jonasdotter Nordlund, Jonasson, Jonasson Norlund, Jonasson Sandstedt, Jonasson Skoglund, Jonelind, Jonsas, Jonsdotter, Jonsen, Jonson, Jonsson, Jonsson Gärefors, Jonsson Lindal, Jonsson Nordlund, Jonsson Söderblom, Jordán Suri, Joseph, Josjö, Juel, Juhl, Juhlin, Julin, Juncker, Jungbeck, Juringius, Just, Just-Nielsen, Justesen, Juul, Jürgens, Jäderström, Jöns, Jönsdotter, Jönsdotter Ekström, Jönsdotter Hagblom, Jönsdotter Lindström, Jönsson, Jönsson Bjelland, Jönsson Bjerborn, Jönsson Björk, Jönsson Brandt, Jönsson Collberg, Jönsson Ekström, Jönsson Flenner, Jönsson Grevstad, Jönsson Haak, Jönsson Hektor, Jönsson Holmqvist, Jönsson Hultgren, Jönsson Kristoffersson, Jönsson Murberg, Jönsson Möllergren, Jönsson Nilsson, Jönsson Nåvall, Jönsson Rosander, Jönsson Rosdahl, Jönsson Rosendahl, Jönsson Rydinger, Jönsson Stenberg, Jönsson Stjernfeldt, Jönsson Svan, Jönsson-Lörd, Jörans, Jöransdotter, Jöransson, Jörgensen Wain, Jörgonson, Kaalund, Kaas, Kaas af Mur, Kabell, Kafle, Kahn, Kall, Kalldin, Kallenberg, Kallmer, Kames, Kamf, Kamp, Kamph, Kampmann, Kapferer, Karadja, Karadja pascha, Karlbeck, Karlbäck, Karlsdotter, Karlsdotter, Karlsson, Karlsson Listerberg, Karlsson Nilsson, Karlsson Rabe, Karlsten, Karström, Kasparsdotter, Kastensdotter, Kastnyr, Keil, Kelfve, Kellgren, Kellmodin, Kenne, Kieldsdatter, Kieldsen, Kieldsson Lilja, Kierbye, Kiersgaard, Kierulf, Kihlmark, Kinberg, Kinch, Kipp, Kirkeby, Kirketerp, Kirschner, Kisbye, Kjeldahl, Kjelder, Kjeldsdatter, Kjeldsen, Kjeldsen Weinschenck, Kjellberg, Kjellerup, Kjellgren, Kjellin, Kjellman, Kjellsson, Kjerstensson, Kjerulf, Kjerulff, Klang, Klang Perrsdotter, Klang Persdotter, Klang Persson, Klarin, Klassén, Klassén Sundström, Klaug, Klausch, Klefelt, Klein, Kleinsorg, Klemedsson, Klensorg, Klerebladh, Klim, Kling, Klingenberg, Klinterot, Klog, Klohs, Klohs Rambech, Knopf, Knudsdatter, Knudtzen, Knudtzon, Knutsdotter, Knutson, Knutsson, Kobb, Koch, Kock, Koefoed, Kofod, Kofoed, Kohrtz, Kojima, Koll, Kollerup, Kolòdkin, Komstedt, Korneliusdotter, Korneliusson, Krabbe, Kraft, Krafve, Kragballe, Kragh, Kramer, Krapf, Krath, Krebs, Krehmer, Krieger, Krikström, Kristensdotter, Kristensen, Kristensson, Kristiansdotter, Kristiansdotter Wikman, Kristiansen, Kristiansson, Kristiansson Carlsson, Kristoffersdotter, Kristoffersen, Kristoffersson, Kristoffersson Dahlqvist, Kristoffersson Rosberg, Kristoffersson Syrén, Kroch, Krog, Krog, Krog-Meyer, Krogh, Kron, Kronkvist, Kronquist, Kronqvist, Kronvall, Kruse, Kulldorff, Kuntze, Kuylenstierna, Kuylenstjerna, Kvist, Kÿkler Kjökler, Kynde, Küttner, Kåge, Kåhre, Käll, Källman, Källström, Känne, Kölichen, Köller, la Cour, La Fleur, Lacey, Lager Malmberg, Lagerbielke, Lagerlöf, Lagerqvist, Lageson, Lagesson, Laggare, Landberg, Landby, Landén, Landgren, Landström, Langballe, Lange, Langergaard, Langner, Langsted, Lanng, Lans, Lanz, Larpent, Lars, Larsdatter, Larsdotter, Larsdotter DISBYT, Larsdotter Fält, Larsdotter Lundstedt, Larsen, Larsson, Larsson Blom, Larsson Bonde, Larsson Borgqvist, Larsson Callmer, Larsson Fält, Larsson Holm, Larsson Holst, Larsson Levin, Larsson Lindqvist, Larsson Lundstedt, Larsson Nordlund, Larsson Nyström, Larsson Rosén, Larsson Sjögren, Larsson Strand, Larsson Ström, Larsson Willander, Larsson Åvall, Lassedotter, Lassen, Lassesdotter, Lassesson, Lasson, Laub, Lauersen, Laurberg, Laurell, Lauritsdatter, Lauritsen, Lauritzen, Laursdatter, Laursen, Laursen Kuppert, Laustsen, Lavesdotter, Lavesson, Ledin, Lehndal ,Lehman, Lejon, Lem, Lemoine, Lennqvist, Lentz, Lentz Rée, León González, León Weinschenck, Lerche, Lesler, Leth, Lett, Leufvenmark, Levin, Liberg, Licht, Lidell, Lidén, Lidfeldt, Lidman, Lidström, Liebe, Liebert, Liebmann, Liedholm, Lihme, Lilienkampff, Lilja, Liljeblad, Liljegren, Liljeqvist, Lillelund, Lillienschiold, Lilliesköld, Limskilde, Lincoln Rosén, Lind, Lindahl, Lindal, Lindau, Lindbeck, Lindberg, Lindberg, Lindberg Persson, Lindblad, Lindborg, Lindell, Lindelof Olsen, Lindén, Lindenhäll, Linder, Linderström, Lindfors, Lindgreen, Lindgren, Lindh, Lindhardt, Lindholm, Lindkvist, Lindquist, Lindqvist, Lindros, Lindroth, Lindskog, Lindstén, Lindström, Lindström Rosendal, Lindvall, Lindwall, Ling, Linnet, Lisborg, Lithovia, Litz, Ljung, Ljungberg, Ljungdahl, Ljunggren, Ljungh, Ljungquist, Ljungqvist, Ljungström, Lodin, Loinsworth, Loir, López Blanco, Lorensen, Lorensson, Lorentsson, Lostedt, Lovén, Lovesson, Ludvigsdotter, Ludvigsson, Lueders, Lund, Lundahl, Lundberg, Lundberg Blücher, Lundberg Lindgren, Lundblad, Lundborg, Lundby, Lundbye, Lundgren, Lundholm, Lundin, Lundkvist, Lundmark, Lundquist, Lundqvist, Lundstedt, Lundstedt Zewde, Lundstén, Lundström, Lundvall, Lundwall, Luplau, Lustig Stångberg, Luther, Lyche, Lydersen, Lydichsen, Lyngaae, Lynge, Lütken, Lützen, Långdahl, Långström, Läbom, Lännquist, Löf, Löfdahl, Löfgren, Löfquist, Löfqvist, Löfstedt, Löfström, Löfvall, Lönbom, Lönbom Lundbom, Lönn, Lönnquist, Lönnqvist, Lönroth, Lövgren, Löwenadler, Löwstedt, Maale, Madsdatter, Madsen, Madsen Magius, Magius zu Horneburg, Magnidotter, Magnusdotter, Magnusdotter Magni, Magnusson, Magnusson Gullqvist, Magnusson Kronqvist, Magnusson Plan, Mahr, Mahrt, Majer, Malling, Malm, Malmberg, Malmborg, Malmgren, Malmquist, Malmqvist, Malmros, Malmrosdotter, Malmsten, Malmström, Malthe-Bruun, Mangor, Mannesdotter, Mannesson, Mantzius, Marceau, Marcel, Marcel Weinschenck, Maribo, Mark, Marklund, Markman, Markström, Markusdatter, Markvang, Marqurd, Marqvardt, Mars, Marsala, Marstrand, Martin Packness, Martinsson, Mathiasdotter, Mathiasen, Mathsson, Matsdotter, Matsson, Mattel, Mattiasson, Mattisdotter, Mattisson, Mattsdotter, Mattsdotter Sjöblom, Mattsson, Mattsson Lindnert, Mattsson-Mårn, Matzau, Matzdotter, Max, Medin, Meidell, Meier, Meigård, Meijb, Meijer, Meisler, Meissner, Melboe, Melén, Melin, Mellberg, Merbitz, Mertz, Mertz Blume, Mesler, Meulengracht, Meurs, Meyer, Michaelsdotter, Michelsdotter, Michelsen, Michelson, Michelsson, Mickelsdotter, Mickelsson, Middelthon, Mikkelborg, Mikkelsdatter, Mikkelsen, Mintschenko, Mitchell, Moberg, Modée, Modéer, Modin, Mogensdatter, Mogensen, Mohlin, Mohr, Molander, Molin, Mollberg, Mollerup, Moltke af Morales, Morales González, Morales Weinschenck, Mortensdatter, Mortensen, Morthorst, Morville, Moses, Motzfeldt, Mourier, Mulder, Mumme, Munch, Munck, Mundt-Petersen, Munk, Munthe, Myers, Mygind, Müller, Müllertz, Mynster, Münter, Myre, Måns Pers, Månsdotter, Månsson, Månsson Dahlgren, Månsson Holmgren, Månsson Klingenberg, Månsson Ljungstrand, Månsson Lundström, Mårtens, Mårtensdotter, Mårtensson, Möller, Möllergren, Möllerstedt, Nagel, Nansen, Nathan, Neckelmann, Nedergaard, Neergaard, Nej, Nelsdotter, Nelson, Nelsson, Nerman, Nero, Nesselqvist, Nettzén, Netzén, Neu, Neuenkirchen, Neuman, Nevander, Nexmar, Nicklasson Kilberg, Niclasdotter, Niclasson, Nielsdatter, Nielsdotter, Nielsen, Nielsen, Nielsen Nielsen Just, Nieuwenhuis, Niklasdotter, Niklasson, Nikolic, Nilén, Nils, Nilsdotter, Nilsdotter, Nilsdotter Boberg, Nilsdotter Lindqvist, Nilsdotter Niwén, Nilsdotter Walters, Nilsdotter Åkerman, Nilssen, Nilsson, Nilsson, Nilsson Ahl, Nilsson Bergqvist, Nilsson Björkman, Nilsson Bokander, Nilsson Engqvist, Nilsson Fransen, Nilsson Friberg, Nilsson Fält, Nilsson Gillén, Nilsson Hagblom, Nilsson Hedeby, Nilsson Holmgren, Nilsson Holmlund, Nilsson Klarin, Nilsson Lilja, Nilsson Lindberg, Nilsson Lindfors, Nilsson Lindgren, Nilsson Lindqvist, Nilsson Lindsjö, Nilsson Lindskog, Nilsson Lörd, Nilsson Melin, Nilsson Nettelbjer, Nilsson Nivén, Nilsson Niwén, Nilsson Petersson, Nilsson Rosenqvist, Nilsson Rydberg, Nilsson Seltir, Nilsson Sten, Nilsson Sundén, Nilsson Thomasson, Nilsson Tilly, Nilsson Vilhelmsson, Nilsson Årman, Niska, Nissen, Nobel, Nohr, Norberg, Nord, Nordahl, Nordberg, Nordborg, Nordell, Nordentoft, Nordgren, Nordholm, Nordin, Nording, Nordlander, Nordling, Nordlund, Nordmark, Nordqvist, Nordstedt, Nordsten, Nordstrand, Nordström, Norgren, Norlander, Norlund, Norrbohm, Norstedt, Norström, Nyberg, Nycander, Nyegaard, Nygren, Nygård, Nyholm, Nykvist, Nylander, Nylin, Nyman, Nyréhn, Nürnberg, Nyström, Näslund, Oberberg, Odhner, Odhnoff, Ogbewe, Ohlasdotter, Ohls, Ohlsdotter, Ohlsson, Ohlsson Malmström, Okänd, Okänt, Olaidotter, Olander, Olander Persson, Olandersson, Olasdotter, Olausdotter, Olausson, Oldenburg, Olesdatter, Olesen, Olin, Olivarius, Olof Pers, Olofsdotter, Olofsdotter, Olofson, Olofson Larsson, Olofsson, Olofsson Bergkvist, Olofsson Bergvall, Olofsson Hedquist, Olofsson Hensy, Olofsson Lindberg, Olofsson Lindberg Hägg, Olofsson Lundgren, Olofsson Nordlund, Olofsson Sandström, Olofsson Sjödal, Olofsson Stenberg, Olofsson Stocker, Olofsson Tengvall, Olofsson Ölund, Olovsdotter, Olovsson, Ols, Olsdatter, Olsdotter, Olsdotter Mattsson, Olsen, Olson, Olson-Carle, Olsson, Olsson Ahlin, Olsson Andonius, Olsson Boberg, Olsson Falk, Olsson Idoff, Olsson Kanér, Olsson Kron, Olsson Lind, Olsson Mattsson, Olsson Murat, Olsson Odervall, Olsson Olin, Olsson Orsmark, Olsson Rothén, Olsson Rydebank, Olsson Segerslätt, Olsson Skog, Olsson Smith, Olsson Thorsberg, Olsson Wedén, Olsson Wendelin, Olsson Wik, Olufdatter, Olufsdatter, Olufsdotter, Olufsen, Olufsson, Oredsdotter, Orsmark, Oscarsson, Oskarsdotter, Ossbahr, Ostenfeld, Otterstedt, Ottosdotter, Ottosson, Overgaard, Ovesen, Packer, Pagander, Pagels, Pahl, Palau, Palmgren, Palmquist, Palmqvist, Paludan, Palvig, Pamp, Park, Parson, Pauli, Paulsdotter, Paulsen, Paulson, Paulsson, Paumen, Pavius, Payngk, Pedersdatter, Pedersdatter, Pedersdatter, Pedersdotter, Pedersen, Pedersen, Pedersen-Holmen, Pehrsdotter, Pehrsson, Pehrsson Ström, Pena, Pena Weinschenck, Per Hans, Perez Martinez, Pers, Persbeck, Persdotter, Persdotter Ek, Persdotter Hinsasdotter, Persdotter Lundström, Persdotter Pålsson, Persdotter Walters, Persdotter Ågårdh, Persson, Persson Ahlström, Persson Ask, Persson Attrup, Persson Billing, Persson Cronsioe, Persson Cronsjö, Persson Dahlgren, Persson Dahlqvist, Persson Ek, Persson Ekberg, Persson Ekstrand, Persson Eld, Persson Engman, Persson Engström, Persson Finman, Persson Fredlund, Persson Grundström, Persson Gryta, Persson Hedlund, Persson Hektor, Persson Henrysson, Persson Holm, Persson Järnkula, Persson Lindström, Persson Lundström, Persson Löfdahl, Persson Löfgren, Persson Malmström, Persson Marklund, Persson Nerman, Persson Nevander, Persson Nordqvist, Persson Pettersson, Persson Pihlström, Persson Pilquist, Persson Rosberg, Persson Rosenlund, Persson Sten, Persson Sundén, Persson Sundqvist, Persson Söderstjerna, Persson Wallin, Persson Wendel, Persson Wicklund, Persson Ågårdh, Peter, Petersdotter, Petersdotter Björklund, Petersdotter Hall, Petersen, Petersen, Petersen Peterson, Petersson, Petri, Pettersdotter, Pettersson, Pettersson Althén, Pettersson Karlsson, Pettersson Mannström, Pettersson Molin, Pettersson Munkert, Pettersson Ohlander, Pettersson Rabe, Pfeiffer, Philipsen, Phillips, Piculell Larsson, Pihl, Pilquist, Pindsfeld, Piper, Pira, Plambeck, Plambeck Borgström, Plan, Plenge, Plesner, Pligt, Plomgren, Plum, Pofvelsen, Pofvelsson, Poleman, Porth, Posfelt, Poulsdatter, Poulsdatter Steenild, Poulsen, Pourtschan, Pousette, Pramberg, Prien, Priergaard, Printz, Prom, Provilo, Prüss, Pryts, Psilander, Pultz, Påhlsdotter, Påhlson, Påhlsson, Påhlsson Falk, Pålsdotter, Pålsson, Pålsson Lindskog, Pålsson Strand, Pährsdotter, Pärsdotter, Pärson, Pärsson, Pärsson Korp, Quist, Qvarnström, Qvist, Qvistgaard, Qvistgård, Raaf, Rabe, Rafn, Rafqvist, Ragnell, Rambech, Ramberg, Ramm, Ramstedt, Ramström, Rank, Rankin, Rasmusdatter, Rasmusdotter, Rasmusen, Rasmussen, Rasmussen, Rasmussen Erasmi, Rasmusson, Rathjen, Rathsack, Ravn, Reckenagel, Redout, Rée, Regnell, Regnér, Rehn, Reidl, Reimer, Reinhold, Reinholtz, Reinold, Renberg, Renlund, Renner, Renström, Resman, Reuss-Lobenstein, Reuterswärd, Reuther, Rexert, Ribbing, Riber, Richert, Riis Johansen, Riisberg, Rindom, Ring, Ringberg, Ringdahl, Ringkvist, Ringquist, Ringqvist, Ringström, Ripperger, Risberg, Ritzén, Rivero González, Rivero Weinschenck, Rode, Rodríguez, Rohde, Rohman, Rohr, Rojas Naranjo, Rojas Weinschenck, Rokström, Romberg, Rommedal, Rosander, Rosberg, Rosdahl, Rosell, Rosén, Rosenberg, Rosendahl, Rosenfeldt, Rosenfelth, Rosengren, Rosenkvist, Rosenlund, Rosenlöf, Rosenqvist, Rosman, Rosqvist, Ross, Rosslin, Rossvik, Rosvall, Roth, Rothe, Rothén, Rova, Rubach, Ruckle, Rudberg, Rudolf, Rudolf Billesjö, Rundberg, Rundfält, Rundgren, Rundquist, Rundqvist, Runestam, Rungren, Runnerström, Rur, Ruth, Ruthberg, Ryberg, Rydberg, Ryde, Ryder, Rydqvist, Rydstrand, Rydström, Rye, Rylander, Rönberg, Rönne, Rönngren Rungren, Rönnkvist, Röring, Rössel, Sabelfelt, Sabelsköld, Sabournin Téllez, Sabroe, Sagnert, Salomonsson, Samuelsdotter, Samuelsen, Samuelsson, Sandahl Harved, Sandberg, Sandell, Sander, Sandgren, Sandin, Sandlund, Sandqvist, Sandrewsky, Sandström, Sassarsson, Sassersdotter, Sassersson, Saur, Savstam, Saxild, Schack, Schadely, Schaumburg-Müller, Scheibe, Schell, Scherman, Schildknecht, Schillström, Schive, Schjerning, Schmeling, Schmidt, Schmigelov, Schnabel, Scholander, Schollin, Schommel, Schou, Schou Kjeldsen, Schrader, Schubart, Schulow, Schultz, Schuylenburg, Schwan, Schwennesen, Schylander, Schytte, Schönbeck, Schörling, Schött, Sedvall, Seger, Segerslätt, Segerström, Segerståhl, Sehested, Seidelin, Seiholtz, Sejersen, Sejoe, Selberg, Selien, Selin, Selldén, Sendrup, Sevedsson, Severin, Severin Borg, Sidström, Siegumfeldt, Sifverdotter, Sigfridsson, Sigurd, Sigvardsdotter, Silfverberg, Silfverhjelm, Silfverschiöld, Sillén, Simko, Simonsdatter, Simonsdotter, Simonsen, Simonsson, Singstock, Siunason, Siunnas, Siunnesson, Sizmore, Siöstet, Sjunarsson, Sjunnesdotter, Sjunnesson, Sjöberg, Sjöblom, Sjödahl, Sjögren, Sjöholm, Sjölin, Sjölund, Sjösten, Sjöstrand, Sjöstrand Sandberg, Sjöström, Skafte, Skibsted, Skog, Skogh, Skoglöf, Skov, Skow, Skow, Skåningsdotter, Skåningsson, Slater, Släger, Smagbier, Smidt, Smith, Smoby, Snejstrup, Solheim, Sonasdotter, Sonesdotter, Sonesson, Sonesson-Bögerup, Sonmark, Sorterup, Soter Rodríguez, Speitzer, Spetz, Spleth, Stabel, Stabell, Staffansdotter, Staffansson, Stallknecht, Stampe, Stark, Starke, Steenild, Stefansson, Steinthal, Steiner, Sten, Stenbeck, Stenberg, Stenbom, Stendal, Stender Nielsen, Steneram, Stenhammar, Stenkvist, Stenlund, Stenmark, Stenvall, Stephansson, Stewens, Stibolt, Stierna, Stiernspetz, Stiernstedt, Stisen, Stjernkrantz, Stjernkvist, Stjernspetz, Stochholm, Stocker, Stockfleth, Stoltz, Storck, Stoud, Strand, Strandberg, Strandbygaard, Strandkvist, Strandqvist, Strange, Strangesen, Strannesten, Strelert, Stricharsdotter, Strid, Stridbeck, Stridde, Stridh, Stråhle, Stråhlén, Stråhlenhielm, Stråle, Ström, Strömberg, Strömblad, Styff, Ståhl, Stål, Stång, Suhr, Sundberg, Sundbom, Sunddin, Sundell, Sundén, Sundgren, Sundquist, Sundqvist, Sundstedt, Sundström, Supanick, Suzuki, Svan, Svanberg, Svanborg, Svane, Svaneklink, Svanholm, Svedholm, Sven Pers, Svendsdatter, Svendsen, Svendstorp, Svenningsen, Svenningsson, Svensdotter, Svenson, Svensson, Svensson Angelin, Svensson Backe, Svensson Bergström, Svensson Borgkvist, Svensson Brännare, Svensson Brännberg, Svensson Brännström, Svensson d y, Svensson d ä, Svensson Delin, Svensson Forsberg, Svensson Fransson, Svensson Hertzman, Svensson Hjertz, Svensson Holmberg, Svensson Kellgren, Svensson Källgren, Svensson Ljung, Svensson Malmsten, Svensson Mohlin, Svensson Möller, Svensson Olsson, Svensson Quist, Svensson Qvist, Svensson Revert, Svensson Rosendahl, Svensson Sjösten, Svensson Skog, Svensson Wahlsten, Svänasson, Svänsson, Svärd, Swan, Swensdotter, Swensson, Sånasson, Säflund, Säfvedsson, Sällberg, Sävsten, Söderblom, Södergren, Söderholm, Söderman, Söderstjerna, Söderström, Sörensdotter, Sörensson, Sörensson-Utbult, Taberman, Tafdrup, Tagesson, Tamelander, Tanner, Tapper, Tarm, Tauson, Tell, Tellström, Tengvall, Tern, Tetens, Thaarup, Thalin, Thestrup, Thiel, Thiele, Thielsen, Thiesen, Thillerup, Tholander, Thomasdatter, Thomasdotter, Thomassen, Thomasson, Thomsen, Thomsen, Thorbjörnsson, Thormansdotter, Thormarck, Thorsberg, Thorsdotter, Thorsell, Thorsen, Thorsson, Thorzén, Thostesson, Thuesdotter, Thuesen, Thulin, Thunström, Thunvall, Thuresdotter, Thuvesson, Thygesdatter, Thörning, Tibemo, Tietz, Tillheden, Tillisch, Tillrooth, Tilly, Timmermann, Tinder, Tinggård, Tjalve, Tjernström, Tobiasson, Toivasdotter Gustafsson, Toldberg, Tolerus, Toll, Tollesdotter, Tollesson, Tomasdotter Friberg, Tomasson, Toomaru, Torbjörnsson, Toresdotter, Torgersdotter, Torgersson, Torgersson Malmgren, Torjesdatter, Torkelsdotter, Torling, Torp, Torsdotter, Torslov, Torsson, Torstensdotter, Torstensson, Tostensdotter, Tostensson, Trana, Tranberg, Tranfeldt, Traustedt, Travis, Troedsdotter, Troedsson, Troedsson Cedergren, Trolle, Truedsdotter, Truedsson, Trulsdotter, Trulsson, Trulsson Otterstedt, Tuesdotter, Tufvasdotter, Tufvesdotter, Tufvesson, Tufvesson Thulin, Tuheson, Tulin, Tullberg, Tullesdotter, Tullgren, Tullipan, Tune, Turesson, Tuvasdotter, Tuvesdotter, Tuvesson, Tuvfvesson, Tuxen, Tvede, Tvermoes, Twetowius, Tybjerg, Tyge, Tykesdotter, Tykesson, Tårstensson, Tåstesdotter, Tåstesson, Tönnesdotter, Törner, Törnquist, Udsen, Udsole, Uf, Uhrman, Uldall, Uldriksdatter, Ulfsax, Ulrich, Ulrichsdatter, Undahl, Unger, Unna, Ussing, Utbult, Uusitalo, Vahlholm, Vahlquist, Vaksjö, Valeriano, Valeriano Palau, Valeriano Weinschenck, Vallenstam, Vallin, Vallström, Valter, van de Velde, Van Der Linden, van der Schaft, Vanlith, Vedel, Vejby-Christensen, Velin, Vendel, Vennborg, Verner-Carlsson, Vester, Vesterberg, Vesterby, Vestergaard, Vesterlund, Vestman, Vetterberg, Vetterström, Viale, Viberg, Victor, Vidén, Vik, Vikberg, Viklund, Vikman, Vikström, Viktorsson, Vilhelmsen, Vilhelmsson, Villman, Vinstedt, Vinther, Visser, Voigt, Voldmester, Volkersen, von Arenstorff, von Barnekow, von Brandes, von Deer, von Degen, von Grabmayr-Angerheim, von Halle, von Holstein, von Holstein af Fürstenberg, von Holtzmann, von Kauffmann, von Knorre, von Kreitz, von Krogh, von Köller, von Lepel, von Magius, von Merbitz, von Otter, von Platen, von Pultz, von Quanten, von Schantz, von Schinckel, von Staffeldt, von Stolting, von Westen, von Wouwern, von Würtzen, von Zeipel, Vontobel, Voogd, Värn, Wadén, Waern-Leffler, Wahlberg, Wahlgren, Wahlsten, Wahlström, Wahlund, Wahren, Waldemarsson, Waleru, Walker, Wallander, Wallander Karlsson, Wallberg, Wallbom, Wallén, Wallenius, Wallenius Lundgren, Wallentinsson, Wallersteen, Wallin, Wallius, Wallmark, Wallström, Walter, Waltersson Spanier, Wandborg, Warde, Warg, Warming, Warrer, Wartberg, Wassler, Wasteson, Watt, Way, Wedell-Wedellsborg, Wedseltoft, Weed, Wegener, Weibull, Weiland, Weimard, Weinschenck, Weinschenck Benítez, Weinschenck Campos, Weinschenck de Armas, Weinschenck González, Weinschenck Jordán, Weinschenck López, Weinschenck Morales, Weinschenck Perez, Weinschenck Soter, Welander, Welding, Welinder, Wellnert, Wendel, Wendelbo-Madsen, Wendin, Wendt, Wennberg, Wennborg, Wenström, Werlin Olsson, Wernebäck, Werner, Wernersdatter, Wers, Wessberg, Wesselsdotter, Wessman, Westberg, Wester, Westerberg, Westerblad, Westerdahl, Westergren, Westerlund, Westermark, Westin, Westling, Weston, Wettergreen, Wettergren, Wetterstrand, Weyde, Wiberg, Wickenberg, Wicklund, Wicklund Pihlström, Wickström, Widding, Widér, Widerberg, Widestrand, Widgren, Wifesson, Wifvesdotter, Wifvesson, Wiinstedt, Wik, Wikberg, Wiklund, Wikman, Wikström, Wilckens, Wilde, Wildermuth, Wilhelmsson, Willadsen, Willander, Willerup, Wilmenius, Winberg, Winblad, Wingenblixt, Winkler, Winstedt, Winter, Winters, Winther, Wisén, Wismer, Wissén, Wistedt, Wistedt Vetterström, Witte, Wodstrup, Wohlgemuht, Wolff, Wolff-Sneedorf, Wolkersen, Worm, Wormslev, Wretman, Wulff, Wåhlberg, Wållin, Wärn, Wästeson, Ydström, Ygberg, Yhl, Ytterberg, Zachariassen, Zachariasson, Zachau, Zachrisson, Zackariasdotter, Zackariasson, Zackow, Zackrisson, Zakrisdotter, Zakrisson, Zederin, Zetterberg, Zetterman, Zetterström, Zewde, Ziemer, Ziervogel, Ziethen, Zilo, Zimmermann, Zinck, Åberg, Åbom, Ågesdotter, Ågesson, Ågren, Ågårdh, Åhrberg, Åkasdotter, Åkason, Åkasson, Åkerberg, Åkerblom, Åkerlund, Åkerman, Åkerström, Åkesdotter, Åkeson, Åkesson, Åkesson, Åkesson Falkman, Åkesson Lindqvist, Åkesson Thulin, Åman, Åradsdotter, Åradsson, Årman, Åström, Äskels, Öberg, Öberg Nlsson, Öfverlund, Ögren, Öhlund, Öhman, Öhrman, Öjeberg, Ölund, Öman, Önnersdotter, Önnerson, Önnersson, Örtberg, Örtegren, Öst, Östberg, Östensdotter, Östensson, Österberg, Östergren, Österlund, Östgren, Östlund, Östman]
}
personalEmails: [gmail.com, yahoo.com, spray.se, hotmail.se, passagen.se]
companyNames: [Volvo, Ericsson, Vattenfall, Skanska, Volvo Cars, H&M, TeliaSonera, Electrolux, Preem, Sandvik, ICA Gruppen, Stora Enso, Atlas Copco, Nordea, SCA, Scania, Securitas, Nordstjernan, SKF, ABB, Axel Johnson, NCC, Astrazeneca, Sony Mobile Communications, Peab, Assa Abloy, Tele2, E.ON, Boliden, SSAB, Postnord, If Skadeförsäkring, SEB, St1, Kooperativa Förbundet, Autoliv, Swedbank, Axfood, Lantmännen, Scandinavian Airlines, Stena Metall, Folksamgruppen, Handelsbanken, Statoil, Husqvarna, Alfa Laval, Bonnierkoncernen, LKAB, Stena, Ratos, Länsförsäkringsgruppen, Alecta, Nynas, Systembolaget, SAAB, Getinge, Investor, Fortum Sweden, Toyota, OKQ8, Trelleborg, L E Lundbergföretagen, Apoteket, Hexagon, Cellmark, Ahlsell, Volkswagen, IKEA, Holmen, Bilia, Tetra Pak, AMF, Aarhuskarlshamn, Södra Skogsägarna, Skandia, Arla Foods, Akzo Nobel, Storstockholms Lokaltrafik, Papyrus, Samsung Electronics, Modern Times Group, Pfizer, Meda, Trav och Galopp, Swedish Match, Schenker, JM, Telenor, Nobia, Ekman & Co, TD Tech Data, Martin & Servera, Loomis, Outokumpu Stainless, Gambro, Hewlett-Packard, Bergendahl & Son, Fritidsresor, Perstorp, BillerudKorsnäs]
companySuffixes: [AB, Holding AB, Consulting, Inc., Aktiebolag, Ltd]
companyEmails: [info, kontakt, support]
text: Men jag måste förklara för dig hur allt detta felaktiga uppfattningen att säga upp av ett nöje och prisa smärta föddes och jag kommer att ge dig en fullständig redogörelse av systemet, och förklara de faktiska lärdomarna stora utforskare av sanningen, byggmästaren av mänsklig lycka. Ingen avvisar, ogillar eller undviker nöje i sig, eftersom det är glädje, men eftersom de som inte vet hur man ska lyckas nöje rationellt möter konsekvenser som är oerhört smärtsamt. Inte heller är det någon som älskar eller bedriver eller önskar att få smärtan i sig självt, eftersom det är smärta, men ibland uppstår omständigheter som ur strävan och smärtan kan försäkra honom ett sant nöje. För att ta ett trivialt exempel, som av oss någonsin hård fysisk träning, förutom att få någon fördel av det? Men vem har rätt att hitta fel med en man som väljer att njuta av ett nöje som inte har några störande konsekvenser, eller en som undviker en smärta som inte resulterar i tillfredsställelse?
telephone_number_formats: ['070-### ## ##', '072-### ## ##', '073-### ## ##', '076-### ## ##', '079-### ## ##', '08-### ### ##', '08-### ## ##', '08-## ## ##', '0###-## ## ##', '0##-### ## ##', '0##-## ## ##']
postal_code: ['### ##']
city: [Alingsås, Arboga, Arvika, Askersund, Avaskär, Avesta, Boden, Bollnäs, Borgholm, Borlänge, Borås, Broo, Brätte, Båstad, Djursholm, Eksjö, Elleholm, Enköping, Eskilstuna, Eslöv, Fagersta, Falkenberg, Falköping, Falsterbo, Falun, Filipstad, Flen, Gamla Lödöse, Getakärr, Gränna, Gävle, Göteborg, Hagfors, Halmstad, Haparanda, Hedemora, Helsingborg, Hjo, Hudiksvall, Huskvarna, Härnösand, Hässleholm, Höganäs, Järle (Jerle), Jönköping, Kalmar, Karl Johans stad, Karlshamn, Karlskoga, Karlskrona, Karlstad, Katrineholm, Kiruna, Kongahälla, Kramfors, Kristianopel, Kristianstad, Kristinehamn, Kumla, Kungsbacka, Kungälv, Köping, Laholm, Landskrona, Lidingö, Lidköping, Lindesberg, Linköping, Ljungby, Lomma, Ludvika, Luleå, Lund, Luntertun, Lycksele, Lyckå, Lysekil, Lödöse, Malmö, Mariefred, Mariestad, Marstrand, Mjölby, Motala, Mölndal, Mönsterås, Nacka, Nora, Norrköping, Norrtälje, Nya Lidköping, Nya Lödöse, Nybro, Nyköping, Nynäshamn, Nässjö, Oskarshamn, Oxelösund, Piteå, Ronneby, Sala, Sandviken, Sigtuna, Simrishamn, Skanör, Skanör med Falsterbo, Skara, Skellefteå, Skänninge, Skövde, Sollefteå, Solna, Stockholm, Strängnäs, Strömstad, Sundbyberg, Sundsvall, Säffle, Säter, Sävsjö, Söderhamn, Söderköping, Södertälje, Sölvesborg, Tidaholm, Torget, Torshälla, Tranås, Trelleborg, Trollhättan, Trosa, Tumathorp, Uddevalla, Ulricehamn, Umeå, Uppsala, Vadstena, Varberg, Vaxholm, Vetlanda, Vimmerby, Visby, Vä, Vänersborg, Värnamo, Västervik, Västerås, Växjö, Ystad, Åhus, Åmål, Älvsborg, Ängelholm, Öjebyn, Örebro, Öregrund, Örnsköldsvik, Östersund, Östhammar]
street: [Adlerbethsgatan, Adolf Fredriks Kyrkogata, Af Pontins Väg, Ahlsellvägen, Akademigränd, Aktergatan, Allhelgonagatan, Allmänna Gränd, Almlöfsgatan, Alsnögatan, Alstaviksvägen, Alströmergatan, Aluddsparken, Aluddsvägen, Amarantergränd, Amiralitetsbacken, Anders Reimers Väg, Andra Bassängvägen, Andra Tvärvägen, Andréegatan, Ankargränd, Ansgariegatan, Apelbergsgatan, Arbetargatan, Arkivgatan, Armfeltsgatan, Arsenalsgatan, Artemisgatan, Artillerigatan, Askrikegatan, Assessorsgatan, Atlasgatan, Atlasmuren, Atterbomsvägen, Babordsgatan, Badstrandsvägen, Baggensgatan, Baldersgatan, Baltzar Von Platens Gata, Banbrinken, Banérgatan, Barnhusgatan, Barnängs Tvärgränd, Barnängsgatan, Barnängsgränd, Bastugatan, Beckbrännarbacken, Beckholmen, Beckholmsvägen, Bedoirsgränd, Bellevuevägen, Bellmansgatan, Bengt Ekehjelmsgatan, Bergsgatan, Bergsgränd, Bergsjölundsvägen, Bergsmarksvägen, Bergsprängargränd, Bergsunds Strand, Bergsundsgatan, Beridarbansgatan, Beridarebanan, Bertil Ohlins Gata, Berzelii Park, Biblioteksgatan, Bigarråvägen, Birger Jarls Torg, Birger Jarlsgatan, Birger Sjöbergs Väg, Birkagatan, Biskopsvägen, Bjurholmsgatan, Bjurholmsplan, Björngårdsgatan, Björnnäsbacken, Björnnäsvägen, Björns Trädgårdsgränd, Blanchegatan, Blasieholmsgatan, Blasieholmstorg, Blecktornsbrinken, Blecktornsgränd, Blecktornsstigen, Blekegatan, Blekholmsgatan, Blekholmsterrassen, Blekholmstorget, Blekingegatan, Blockhusringen, Blommensbergsvägen, Bo Bergmans Gata, Bohusgatan, Bolinders Plan, Bollhusgränd, Bondegatan, Bondesonsgatan, Borgargatan, Borgmästargatan, Borgvägen, Bragevägen, Brahegatan, Brantingsgatan, Breda Gatan, Bredgränd, Breitenfeldsgatan, Brinellvägen, Brunbärsvägen, Brunkebergsgatan, Brunkebergstorg, Brunnsgatan, Brunnsgränd, Brunnsviksvägen, Bryggargatan, Bryggvägen, Bråvallagatan, Brännerigatan, Brännkyrkagatan, Buteljgatan, Bysistorget, Båtbyggargatan, Bältgatan, Böttigervägen, Cardellgatan, Carl Akrells Gata, Carl Alberts Gränd, Carl-Gustaf Lindstedts Gata, Cedersdalsgatan, Celsiusgatan, Centralplan, Chapmansgatan, Chapmansgården, Coldinutrappan, Crafoords Väg, Creutzgatan, Dag Hammarskjölds Väg, Dalagatan, Dalslandsgatan, Danderydsgatan, Dannemoragatan, David Bagares Gata, De Geersgatan, Dianavägen, Didrik Ficks Gränd, Disponentgatan, Djurgårdsbrunnsvägen, Djurgårdsslätten, Djurgårdsvägen, Doktor Abelins Gata, Drakenbergsgatan, Drakens Gränd, Drejargatan, Drottning Kristinas Väg, Drottning Sofias Väg, Drottninggatan, Drottningholmsvägen, Drottninghusgränd, Duvnäsgatan, Döbelnsgatan, Dörjgränd, Ehrensvärdsgatan, Ekehjelmstorget, Ekensbergsbryggan, Ekensbergsvägen, Ekermans Gränd, Eknäsvägen, Eldarvägen, Elersvägen, Engelbrekts Kyrkogata, Engelbrektsgatan, Engelbrektsplan, Ensittarvägen, Eolsgatan, Eremitvägen, Erik Dahlbergsallén, Erik Dahlbergsgatan, Eriksbergsgatan, Eriksdalsgatan, Ernst Ahlgrens Väg, Erstagatan, Essinge Brogata, Essinge Högväg, Essinge Kyrkväg, Essingekroken, Essingeringen, Essingestråket, Essingetorget, Exercisplan, Falkenbergsgatan, Falugatan, Fartygsgatan, Fatburs Brunnsgata, Fatburs Kvarngata, Fatbursgatan, Fatburstrappan, Ferkens Gränd, Finska Kyrkogränd, Fiskargatan, Fiskartorpsvägen, Fisksjöängsvägen, Fjällgatan, Fjärde Bassängvägen, Flaggmansvägen, Fleminggatan, Flintbacken, Floragatan, Flottbrovägen, Folkskolegatan, Folkungagatan, Folkungatrappan, Franzéngatan, Fredhällsgatan, Fredmansgatan, Fredrik Bloms Väg, Fredriksdalsgatan, Fredrikshovsgatan, Fredsborgsgatan, Fredsborgstorget, Fredsgatan, Fregattvägen, Frejgatan, Fridhemsgatan, Fridhemsplan, Friggagatan, Frihamnsgatan, Fryxellsgatan, Frödingsvägen, Funckens Gränd, Furusundsgatan, Fyrverkarbacken, Fågelbärsgården, Fågelhundsgatan, Fågelsångens Gårdsväg, Fågelsångsvägen, Färgargårdstorget, Förmansvägen, Förskeppsgatan, Första Bassängvägen, Gaffelgränd, Galärvarvsvägen, Gambrinusgatan, Gamla Brogatan, Gamla Lundagatan, Gammelgårdsgränd, Gammelgårdsvägen, Garvar Lundins Gränd, Garvargatan, Gasverksvägen, Gaveliusgatan, Geijersvägen, Gillögagatan, Gjutargatan, Gjörwellsgatan, Glasbruksgatan, Glödlampsgränd, Gotlandsgatan, Grenljusbacken, Grev Magnigatan, Grev Turegatan, Greve Von Essens Väg, Grevgatan, Grevgränd, Grindsgatan, Grubbens Gata, Grubbensringen, Grubbenstorget, Gruvbacken, Grytgjutargången, Gräsgatan, Grönbrinksgatan, Gröndalshamnen, Gröndalsvägen, Gudöbroleden, Guldgränd, Gumshornsgatan, Gustav Adolfs Torg, Gyldéngatan, Gyllenborgsgatan, Gyllenstiernsgatan, Gåsgränd, Gärdesgatan, Gästrikegatan, Gävlegatan, Göran Hälsinges Gränd, Götgatan, Hagagatan, Hagagränd, Hallandsgatan, Hamburgsvägen, Hammarby Allé, Hammarby Fabriksväg, Hammarby Kaj, Hammarby Kajväg, Hammarby Slussväg, Hammarbyterrassen, Hammargatan, Hamngatan, Hangövägen, Hantverkargatan, Havregatan, Hazeliusbacken, Hazeliusporten, Hedbornsstigen, Hedemoratäppan, Hedinsgatan, Heimdalsgatan, Heleneborgsgatan, Helga Lekamens Gränd, Helgagatan, Helgalunden, Heliosgatan, Herkulesgatan, Hildebergsvägen, Hjalmar Cederströms Gata, Hjalmar Söderbergs Väg, Hjärnegatan, Holländargatan, Holmamiralens Torg, Holmamiralens Väg, Hornsbruksgatan, Hornsgatan, Hornsgatspåfarten, Hornskroken, Hornstulls Strand, Hornsviksstigen, Hovslagargatan, Hubertusgatan, Hudiksvallsgatan, Humlegårdsgatan, Hunduddsvägen, Hälsingegatan, Hälsingehöjden, Härdgången, Hästholmsvägen, Höga Stigen, Högalids Kyrkväg, Högalidsgatan, Högbergsbacken, Högbergsgatan, Högvaktsterrassen, Högviltsgatan, Hökens Gata, Hötorget, Idaborgsvägen, Idungatan, Igeldammsgatan, Ignatiigränd, Industrigatan, Inedalsgatan, Ingemarsgatan, Ingenjörsvägen, Ingmar Bergmans Gata, Ivan Oljelunds Gränd, Iversonsgatan, Jakob Westinsgatan, Jakobs Torg, Jakobsbergsgatan, Jakobsgatan, Jaktvarvsplan, Jarlaplan, Johannes Plan, Johannesgatan, Johannesgränd, John Bergs Plan, John Ericssonsgatan, Josefinavägen, Jungfrugatan, Jungmansgränd, Junohällsvägen, Jutas Backe, Jägargatan, Jägmästargatan, Järntorget, Järntorgsgatan, Kadettgatan, Kaknäsvägen, Kallskärsgatan, Kammakargatan, Kampementsgatan, Kanslikajen, Kapellgränd, Kaplansbacken, Kaptensgatan, Karaffgatan, Karduansmakargatan, Karl Johans Torg, Karlaplan, Karlavägen, Karlbergsvägen, Karlshällsvägen, Karlsviksgatan, Kastellbacken, Kastellholmskajen, Katarina Bangata, Katarina Kyrkobacke, Katarina Västra Kyrkogata, Katarina Östra Kyrkogårdsgränd, Katarinavägen, Katrinebergsbacken, Katrinebergsvägen, Kattgränd, Kindstugatan, Klara Mälarstrand, Klara Norra Kyrkogata, Klara Strand, Klara Södra Kyrkogata, Klara Tvärgränd, Klara Vattugränd, Klara Västra Kyrkogata, Klara Östra Kyrkogata, Klarabergsgatan, Klarabergsviadukten, Klarafaret, Klarastrandsleden, Klefbecks Backe, Klevgränd, Klippgatan, Klockstapelsbacken, Klyvarvägen, Knaperstavägen, Kocksgatan, Kocksgränd, Kolargatan, Kolmårdsgränd, Kommendörsgatan, Konradsbergsgatan, Konvojgatan, Korgmakargränd, Kornhamnstorg, Korphoppsgatan, Kristinebergs Slottsväg, Kristinebergs Strand, Kristinebergsvägen, Kristinehovsgatan, Kronobergsgatan, Krukmakarbacken, Krukmakargatan, Kryssargatan, Kråkgränd, Krångedevägen, Kungsbro Strand, Kungsbron, Kungsbroplan, Kungsgatan, Kungsholms Hamnplan, Kungsholms Kyrkoplan, Kungsholms Strand, Kungsholms Strandstig, Kungsholmsgatan, Kungsholmstorg, Kungsklippan, Kungstensgatan, Kungsträdgårdsgatan, Kvarngatan, Kvastmakarbacken, Kvastmakartrappan, Kyrkslingan, Kåkbrinken, Källargränd, Källbergsvägen, Kölnagatan, Köpmanbrinken, Köpmangatan, Köpmantorget, Körsbärsvägen, Laboratoriegatan, Laduviksvägen, Lagerlöfsgatan, Lanforsvägen, Lantmäteribacken, Lehusens Gränd, Lejonstedts Gränd, Lennmans Trappgränd, Levertinsgatan, Lidingövägen, Lidnersgatan, Lidnersplan, Lidovägen, Lignagatan, Liljas Gata, Liljeholmsbron, Liljeholmsgränd, Liljeholmshamnen, Liljeholmsstranden, Liljeholmstorget, Liljeholmsvägen, Lill-Jans Plan, Lilla Allmänna Gränd, Lilla Bantorget, Lilla Erstagatan, Lilla Hoparegränd, Lilla Nygatan, Lilla Skinnarviksgränd, Lilla Skuggans Väg, Lindarängsvägen, Lindhagensgatan, Lindhagensplan, Lindstedtsvägen, Lindvallsgatan, Lindvallsplan, Linnégatan, Ljusslingan, Ljusstöparbacken, Ljustergränd, Ljusterögatan, Lodgatan, Lokstallsgatan, Lorensbergsgatan, Lotsgatan, Louddsvägen, Love Almqvists Väg, Lovisagatan, Lucidorsgatan, Ludvigsbergsgatan, Lugnets Allé, Lumagatan, Lumaparksvägen, Lundagatan, Luntmakargatan, Lustigkullavägen, Lusuddsvägen, Luthens Gränd, Luxgatan, Lützengatan, Långa Gatan, Långa Raden, Långholmsbacken, Långholmsgatan, Långholmsmuren, Lästmakargatan, Lögebodavägen, Löjtnantsgatan, Lövholmsbrinken, Lövholmsgränd, Lövholmsvägen, Magnus Ladulåsgatan, Mail Boxes Etc, Majorsgatan, Malmgårdsvägen, Malmskillnadsgatan, Malmtorgsgatan, Malmvägen, Maltgatan, Manillavägen, Maria Bangata, Maria Prästgårdsgata, Maria Sandels Gränd, Maria Skolgata, Maria Trappgränd, Mariagränd, Mariatorget, Mariebergsavfarten, Marieviksgatan, Markvardsgatan, Marmorgatan, Maskinistgatan, Matrosbacken, Medborgarplatsen, Mejerivägen, Mellangatan, Messeniusgatan, Metargatan, Midskeppsgatan, Midskogsgränd, Mitisgatan, Mjärdgränd, Montebellogatan, Mosebacke Torg, Motalavägen, Munkbrogatan, Munkbrohamnen, Munkbroleden, Munkbron, Museivägen, Myntgatan, Mynttorget, Målargatan, Mårten Trotzigs Gränd, Mårtensdalsgatan, Mälartorget, Mälarvarvsbacken, Mäster Mikaels Gata, Mäster Pers Gränd, Mäster Samuelsgatan, Möregatan, Mörka Kroken, Mörtvikskroken, Nackagatan, Narvavägen, Nicandervägen, Nils Ericsons Plan, Nimrodsgatan, Nobelgatan, Noe Arksfaret, Noe Arksgränden, Nordenflychtsvägen, Nordenskiöldsgatan, Norr Mälarstrand, Norra Agnegatan, Norra Bankogränd, Norra Benickebrinken, Norra Dryckesgränd, Norra Hamnvägen, Norra Kajvägen, Norra Riddarholmshamnen, Norra Stationsgatan, Norrbackagatan, Norrbro, Norrlandsgatan, Norrmalmstorg, Norrskogsvägen, Norrtullsgatan, Notvarpsgränd, Nybergsgatan, Nybodaringen, Nybohovsbacken, Nybohovsgränd, Nybrogatan, Nybrohamnen, Nybrokajen, Nybroplan, Nygränd, Nytorget, Nytorgsgatan, Näckströmsgatan, Närkesgatan, Nätgränd, Observatoriegatan, Odengatan, Odenplan, Ola Hanssonsgatan, Olaus Petrigatan, Olof Dalins Väg, Olof Gjödingsgatan, Olof Palmes Gata, Olofsgatan, Onkel Adams Väg, Ordenstrappan, Ormbergsvägen, Orvar Odds Väg, Osquars Backe, Osquldas Väg, Oxenstiernsgatan, Oxtorget, Oxtorgsgatan, Oxtorgsgränd, P O Hallmans Gata, Packhusgränd, Palermogatan, Palmbladsvägen, Parkgatan, Parmmätargatan, Patentgatan, Pelikansgränd, Peter Myndes Backe, Pilgatan, Pipersgatan, Planterhagsvägen, Ploggatan, Pokalvägen, Polhemsgatan, Pontonjärgatan, Porjusvägen, Primusgatan, Prins Eugens Väg, Prinsessan Ingeborgs Väg, Prinsessan Märtas Väg, Pryssgränd, Prästgatan, Pustegränd, Pålsundsgatan, Pålsundsparken, Ragnar Östbergs Plan, Ragvaldsgatan, Rapsgatan, Redargatan, Regeringsgatan, Rehnsgatan, Reimersholmsgatan, Renstiernas Gata, Repslagargatan, Riddargatan, Riddarhusgränd, Riddarhuskajen, Riddarhustorget, Rigagatan, Riksgatan, Rimbogatan, Rindögatan, Ringvägen, Robert Almströmsgatan, Roddargatan, Ropstensslingan, Rorgängargatan, Rosenbad, Rosendalsterrassen, Rosendalsvägen, Rosengatan, Rosenhillsvägen, Rosenlundsgatan, Roslagsgatan, Roslagstullsbacken, Ruddammsbacken, Ruddammsvägen, Runebergsgatan, Runiusgatan, Rutger Fuchsgatan, Ryssviksvägen, Rådjursstigen, Rådlösavägen, Rådmansgatan, Råggatan, Rålambsvägen, Rävgrytsbacken, Rödabergsbrinken, Rödabergsgatan, Rödbodgatan, Rödbodtorget, Rökubbsgatan, Rörstrandsgatan, Sachsgatan, Saltmätargatan, Salviigränd, Samaritgränd, Samuel Owens Gata, Sandbacksgatan, Sandelsgatan, Sandhamnsgatan, Sandhamnsplan, Sandåsgatan, Sankt Eriksgatan, Sankt Eriksplan, Sankt Eriksterrassen, Sankt Göransgatan, Sankt Paulsgatan, Sannadalsvägen, Scheelegatan, Scheffersgatan, Schönfeldts Gränd, Segelbåtsvägen, Seglatsgatan, Sehlstedtsgatan, Separatorgränd, Serafimergränd, Sergelarkaden, Sergelgatan, Sergelgången, Sergels Torg, Siargatan, Sibyllegatan, Sickla Kanalgata, Signalgränd, Sigtunagatan, Singelbacken, Sirishovsvägen, Sista Styverns Trappor, Sjukhusbacken, Själagårdsgatan, Sjöbjörnsvägen, Sjöfartsgatan, Sjömansgränd, Sjöstugugränd, Sjötullsbacken, Sjöviksbacken, Sjövikskajen, Sjövikstorget, Sjöviksvägen, Skansbacken, Skansbrogatan, Skansbron, Skaraborgsgatan, Skarpskyttestigen, Skarpögatan, Skeppar Karls Gränd, Skeppar Olofs Gränd, Skeppargatan, Skeppargränd, Skeppsbrokajen, Skeppsbron, Skeppsmäklargatan, Skillinggränd, Skinnarviksringen, Skogsmarksvägen, Skogvaktargatan, Skolgränd, Skomakargatan, Skonertvägen, Skottgränd, Skrubbasandsvägen, Skräddargränd, Skutskepparvägen, Skånegatan, Sköldgatan, Sköldungagatan, Slipgatan, Slottsbacken, Slupskjulsvägen, Slussplan, Slöjdgatan, Smala Gränd, Smedsbacksgatan, Smedsuddsvägen, Smålandsgatan, Snickarbacken, Snipkroken, Snoilskyvägen, Sockerbruksgränd, Sofiagatan, Sofiebergsvägen, Solgränd, Solkraftsvägen, Sollidsbacken, Spektens Gränd, Stadsgården, Stadsgårdshamnen, Stadsgårdsleden, Stadshagens Idrottsväg, Stadshagsplan, Stadshagsvägen, Staffan Sasses Gränd, Stagneliusvägen, Stallgatan, Starrängsringen, Stenbocksgatan, Stenkullavägen, Stenshällsvägen, Stickelbärsvägen, Stiernhielmsvägen, Stigbergsgatan, Stora Essingepåfarten, Stora Gråmunkegränd, Stora Hoparegränd, Stora Mejtens Gränd, Stora Nygatan, Stora Skuggans Väg, Storgatan, Storkyrkobrinken, Storskärsgatan, Stortorget, Storängskroken, Storängsvägen, Strandbergsgatan, Strandvägen, Strindbergsgatan, Strykerskevägen, Strålgatan, Strömgatan, Strömparterren, Strömsborgsbron, Studentbacken, Sturegatan, Stureparken, Stureplan, Styckjunkargatan, Styrbordsgatan, Styrmansgatan, Sundstabacken, Surbrunnsgatan, Svartensgatan, Svartmangatan, Svarvargatan, Sveavägen, Svedbergsplan, Svedbergsstigen, Sven Rinmans Gata, Sven Vintappares Gränd, Svensksundsvägen, Swedenborgsgatan, Sysslomansgatan, Sågargatan, Sällskapsvägen, Sätertäppan, Söder Mälarstrand, Söder Mälarstrands Kajplatser, Södermalmsallén, Södermalmstorg, Södermannagatan, Södertäljevägen, Södra Agnegatan, Södra Bankogränd, Södra Bassängkajen, Södra Benickebrinken, Södra Blasieholmshamnen, Södra Brobänken, Södra Dryckesgränd, Södra Hamnvägen, Södra Kajen, Södra Riddarholmshamnen, Tantogatan, Taptogatan, Tavastgatan, Teatergatan, Tegelbacken, Tegeluddsvägen, Tegelviksgatan, Tegnérgatan, Tegnérlunden, Teknikringen, Teknologgatan, Telegrafgränd, Tempeltrappan, Tengdahlsgatan, Terminalslingan, Textilgatan, Thorildsplan, Thorildsvägen, Tideliusgatan, Timmermansgatan, Timmermansgränd, Timotejgatan, Tjurbergsgatan, Tjustgatan, Tjärhovsgatan, Tjärhovsplan, Tobaksspinnargatan, Tomtebogatan, Torbjörn Klockares Gata, Torggatan, Torkel Knutssonsgatan, Torkhusgatan, Torsgatan, Torsplan, Torstenssonsgatan, Transportvägen, Tre Liljor, Tredje Bassängvägen, Tredje Tvärvägen, Trekantsvägen, Triewaldsgränd, Trollhättevägen, Tryckerigatan, Trålgränd, Trångsund, Trädgårdsgatan, Trädgårdstvärgränd, Tulegatan, Tullgränd, Tullgårdsgatan, Tullvaktsvägen, Tunnelgatan, Ture Nermans Gränd, Tvätterskevägen, Tyghusplan, Tyrgatan, Tyska Brinken, Tyska Brunnsplan, Tyska Skolgränd, Tyska Stallplan, Tyskbagargatan, Tysta Gatan, Tysta Marigången, Uggelviksgatan, Ugglegränd, Uggleviksvägen, Ulrikagatan, Untravägen, Upplagsvägen, Upplandsgatan, Urvädersgränd, Utkiksbacken, Valhallavägen, Vanadislunden, Vanadisplan, Vanadisvägen, Varvsgatan, Vasagatan, Vasaplan, Vattenkraftsvägen, Vattugatan, Vegagatan, Verdandigatan, Verkstadsgatan, Vetegatan, Vickergatan, Vidargatan, Vikingagatan, Villagatan, Vindkraftsvägen, Vindragarvägen, Vingårdsgatan, Vinodlargatan, Vintertullstorget, Vinterviksvägen, Virkesvägen, Vitalisvägen, Vulcanusgatan, Vänskapsvägen, Väpnargatan, Värdshusbacken, Värdshusslingan, Väringgatan, Värtans Stationsväg, Värtavägen, Västerbroplan, Västerlånggatan, Västeråsgatan, Västgötagatan, Västgötagränd, Västmannagatan, Västra Järnvägsgatan, Västra Trädgårdsgatan, Västra Vattugränd, Vävar Johans Gata, Völundsgatan, Wahrendorffsgatan, Wallingatan, Warfvinges Väg, Wargentinsgatan, Welanders Väg, Wennerbergsgatan, Wenströmsvägen, Wittstocksgatan, Wivalliusgatan, Wollmar Yxkullsgatan, Ynglingagatan, Yttersta Tvärgränd, Yxsmedsgränd, Zinkens Väg, Ångströmsgatan, Årsta Hamnväg, Årsta Holmar, Årsta Skolgränd, Årstaskogs Väg, Årstaängsvägen, Åsögatan, Åsötorget, Älvkarleövägen, Älvsborgsgatan, Ängskärsgatan, Ölandsgatan, Öregrundsgatan, Örlogsvägen, Österlånggatan, Östermalmsgatan, Östermalmstorg, Östgötagatan, Östhammarsgatan, Östra Järnvägsgatan, Östra Varvsgatan, Östra Varvsgatans Gränd, Överskärargränd]
country: ['Sverige']
language: 'SV'
================================================
FILE: src/main/resources/jfairy_tr.yml
================================================
alphabet: abcçdefgğhıijklmnoöprsştuüvyz
domains: [ com.tr, org.tr, net.tr, edu.tr, gov.tr, k12.tr, av.tr, dr.tr, bel.tr, tsk.tr ]
firstNames: {
male: [ Ahmet, Mehmet, Mustafa, Ali, Hüseyin, Hasan, İbrahim, İsmail, Osman, Murat, Ömer, Ramazan, Halil, Süleyman, Abdullah, Mahmut, Recep, Salih, Fatih, Kadir, Emre, Gökhan, Hakan, Serkan, Metin, Burak, Volkan, Bülent, Kenan, Selçuk, Yavuz, Sinan, Can, Kerem, Deniz, Onur, Umut, Eren, Arda, Mert, Yiğit, Berk, Tolga, Kaan, Doruk, Batuhan, Görkem, Furkan, Enes, Yunus, Bilal ],
female: [ Fatma, Ayşe, Emine, Hatice, Zeynep, Özlem, Elif, Meryem, Gamze, Şerife, Hanife, Sultan, Zehra, Havva, Hayriye, Cemile, Güllü, Leyla, Saliha, Melek, Arzu, Yasemin, Esra, Dilek, Pınar, Tuğba, Seda, Ebru, Gizem, Büşra, Kübra, Feyza, Beyza, İrem, Merve, Nursel, Selin, Pelin, Damla, Yağmur, Ece, Duru, Defne, Azra, Derin, Bade, Nehir, Eylül, Melis ],
}
lastNames: {
male: [ Yılmaz, Kaya, Demir, Çelik, Şahin, Yıldız, Yıldırım, Öztürk, Aydın, Özdemir, Arslan, Doğan, Kılıç, Aslan, Çetin, Kara, Koç, Kurt, Özkan, Şimşek, Polat, Özcan, Korkmaz, Çakır, Erdoğan, Yavuz, Can, Aksoy, Köse, Güler, Aktaş, Avcı, Akın, Özer, Ünal, Kaplan, Bulut, Yiğit, Sarı, Taş, Kaymak, Önal, Güneş, Ay, Karaman, Çavuş, Yalçın, Uzun, Karakaş, Tekin ],
female: [ Yılmaz, Kaya, Demir, Çelik, Şahin, Yıldız, Yıldırım, Öztürk, Aydın, Özdemir, Arslan, Doğan, Kılıç, Aslan, Çetin, Kara, Koç, Kurt, Özkan, Şimşek, Polat, Özcan, Korkmaz, Çakır, Erdoğan, Yavuz, Can, Aksoy, Köse, Güler, Aktaş, Avcı, Akın, Özer, Ünal, Kaplan, Bulut, Yiğit, Sarı, Taş, Kaymak, Önal, Güneş, Ay, Karaman, Çavuş, Yalçın, Uzun, Karakaş, Tekin ]
}
personalEmails: [ gmail.com, hotmail.com, yahoo.com, outlook.com, icloud.com ]
companyNames: [ Holding, Şirket, Ticaret, Sanayi, Limited, Anonim, Bilişim, Otomotiv, Gıda, İnşaat, Tekstil, Lojistik, Turizm, Enerji, Medya, Sağlık, Eğitim, Banka, Sigorta, Mağaza, Market, Restoran, Kafe ]
companySuffixes: [ 'A.Ş.', 'Ltd. Şti.', 'Hizmetleri', 'Grubu', 'Dış Ticaret' ]
companyEmails: [ info, destek, satis, hello, merhaba ]
text: Bu bir deneme metnidir. Türkçe dil desteği için oluşturulmuştur. Bu sistem sayesinde rastgele Türkçe veriler üretebilirsiniz. Adresler, isimler, telefon numaraları ve daha fazlası artık jfairy ile mümkün. Teknolojinin getirdiği bu kolaylıklar sayesinde test süreçleriniz daha hızlı ve verimli hale gelecek.
telephone_number_formats: [ '+90 5## ### ## ##' ]
postal_code: [ '#####' ]
city: [ İstanbul, Ankara, İzmir, Bursa, Antalya, Adana, Konya, Gaziantep, Şanlıurfa, Mersin, Kocaeli, Diyarbakır, Hatay, Manisa, Kayseri, Samsun, Balıkesir, Kahramanmaraş, Van, Aydın ]
street: [ İstiklal Caddesi, Bağdat Caddesi, Cumhuriyet Caddesi, Atatürk Bulvarı, Vatan Caddesi, Ordu Caddesi, Halaskargazi Caddesi, Abdi İpekçi Caddesi, Nispetiye Caddesi, Barbaros Bulvarı, Turgut Özal Bulvarı, Mevlana Caddesi, Fevzi Çakmak Caddesi, Ziya Gökalp Caddesi, Mithatpaşa Caddesi, Tunalı Hilmi Caddesi, Bahçelievler 7. Cadde, Kenan Evren Bulvarı, Gazipaşa Bulvarı, Talatpaşa Bulvarı ]
country: [ 'Türkiye' ]
language: 'TR'
================================================
FILE: src/main/resources/jfairy_zh.yml
================================================
alphabet: abcdefghijklmnopqrstuvwxyz
domains: [com, cn, net, org]
firstNames: {
male: [俊杰, 亚波, 耀鸿, 旦冉, 国辉, 国富, 小明, 俊佳, 金城, 俊煜, 嘉斌, 泽民, 宸风, 雨泽, 云帆, 剑枫, 正宇],
female: [析丹, 小慧, 黛玉, 宝钗, 宝华, 祖英, 蒹葭, 瑶依, 沛菡, 曼文, 艾韵, 灵芸, 静琪, 碧琪, 雅芝, 安妮]
}
lastNames: {
male: [赵, 钱, 孙, 李, 周, 吴, 郑, 王, 冯, 陈, 楚, 卫, 苏, 蒋, 沈, 韩, 杨, 张, 黄, 徐, 刘],
female: [赵, 钱, 孙, 李, 周, 吴, 郑, 王, 冯, 陈, 楚, 卫, 苏, 蒋, 沈, 韩, 杨, 张, 黄, 徐, 刘]
}
personalEmails: [gmail.com, 163.com, 126.com, qq.com, sina.com, sohu.com]
companyNames: [数说故事, 网易之, 腾企鹅, 千度, 京西, 后海金融, 互动派, 塔布数据, 阿狸巴巴, 图匠]
companySuffixes: [科技有限公司, 股份有限公司, 集团, 有限公司, 金融投资有限公司]
companyEmails: [info, contact, company, office, org, com]
text: 我们 你好 工资 赚钱 是 非常 魅力 美丽 运动 自由 风雅 要求 感情 代码 研发 神奇 动物 魔法 忍术 你们 的 手机 小米 苹果 猫 狗 相信 很多 一样 梦想 随身 携带 操作 系统 无论 哪里 只要 电脑 可以 随时 运行 自己 配置 博文 一步步 如何 驱动 加载 想象 一个 场景 也许 使用 设置
telephone_number_formats: ['###-####-####', '###########', '########']
postal_code: ['######']
city: [广州, 深圳, 杭州, 北京, 南京, 天津, 重庆, 上海, 武汉, 西安, 珠海, 福州, 台北, 高雄, 长沙, 哈尔滨]
street: [中山大道, 环市东路, 内环路, 外环西路, 中山四路, 滨江路, 江海大道, 湖滨路, 朝阳大街, 人民路, 解放路, 沿江路, 海滨路, 新华路]
country: [中国, 美国, 法国, 英国, 德国, 西班牙, 意大利, 加拿大, 俄罗斯, 日本, 韩国, 巴西]
language: 'ZH'
================================================
FILE: src/test/groovy/com/devskiller/jfairy/FairyDeSpec.groovy
================================================
package com.devskiller.jfairy
import spock.lang.Specification
import com.devskiller.jfairy.producer.person.Person
/**
* @author Roland Weisleder
*/
class FairyDeSpec extends Specification {
private final int SEED = 186
private Fairy fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.GERMAN).build()
def "Should create German name"() {
when:
Person person = fairy.person()
then:
person.fullName == 'Timo Höfling' // well, that's german enough...
}
def "Should create German city"() {
when:
Person person = fairy.person()
then:
person.address.city == 'Hockenheim'
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/FairyFrSpec.groovy
================================================
package com.devskiller.jfairy
import spock.lang.Specification
import com.devskiller.jfairy.producer.person.Person
import com.devskiller.jfairy.producer.company.Company
/**
*
* Test suite for French locale.
*
* Note: Expected values reflect the random sequence for SEED 7 after
* introducing Luhn-compliant VAT and specific Passport providers.
*/
class FairyFrSpec extends Specification {
private final int SEED = 7
private Fairy fairy = Fairy.builder()
.withRandomSeed(SEED)
.withLocale(Locale.FRENCH)
.build()
def "Should create French name"() {
when:
Person person = fairy.person()
then:
person.fullName == 'Alexis Tanguy'
}
def "Should create French city"() {
when:
Person person = fairy.person()
then:
person.address.city == 'Saint-Denis'
}
def "Should create valid French passport number"() {
when:
Person person = fairy.person()
then:
person.passportNumber ==~ /\d{2}[A-Z]{2}\d{5}/
person.passportNumber == '28DO74569'
}
def "Should create valid French national identity card (CNI)"() {
when:
Person person = fairy.person()
then:
person.nationalIdentityCardNumber ==~ /88\d{2}050OLUQS/
}
def "Should create valid French VAT (TVA) number"() {
given:
Company company = fairy.company()
when:
String vat = company.vatIdentificationNumber
then:
vat == 'FR44489040287'
and: "verify TVA key logic"
String siren = vat.substring(4)
int key = Integer.parseInt(vat.substring(2, 4))
key == (12 + 3 * (Long.parseLong(siren) % 97)) % 97
}
def "Should satisfy Luhn algorithm for SIREN"() {
given:
Company company = fairy.company()
String siren = company.vatIdentificationNumber.substring(4)
when:
int sum = 0
siren.reverse().eachWithIndex { digits, i ->
int n = Integer.parseInt(digits)
if (i % 2 != 0) {
n *= 2
if (n > 9) n -= 9
}
sum += n
}
then:
sum % 10 == 0
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/FairyKaSpec.groovy
================================================
package com.devskiller.jfairy
import spock.lang.Specification
import com.devskiller.jfairy.producer.person.Person
class FairyKaSpec extends Specification {
private final int SEED = 2
private Locale geLocale = new Locale.Builder().setLanguage("ka").setRegion("ge").setScript("Geor").build()
private Fairy fairy = Fairy.builder().withRandomSeed(SEED).withLocale(geLocale).build()
def "Should create Georgian name"() {
when:
Person person = fairy.person()
then:
person.fullName == 'ბაადურ აბრამიძე' // Baadur Abramidze
}
def "Should create Georgian street"() {
when:
Person person = fairy.person()
then:
person.address.street == 'მეფე სოლომონ II-ის ქუჩა'
}
def "Should create Georgian city"() {
when:
Person person = fairy.person()
then:
person.address.city == 'ზუგდიდი'
}
def "Should create Georgian ID card"() {
when:
Person person = fairy.person()
then:
person.nationalIdentityCardNumber == 'Nს6819982'
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/FairyModuleSpec.groovy
================================================
package com.devskiller.jfairy
import spock.lang.Specification
import com.devskiller.jfairy.data.MapBasedDataMaster
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.DateProducer
import com.devskiller.jfairy.producer.person.locale.de.DeAddressProvider
import com.devskiller.jfairy.producer.person.locale.en.EnAddressProvider
import com.devskiller.jfairy.producer.person.locale.es.EsAddressProvider
import com.devskiller.jfairy.producer.person.locale.fr.FrAddressProvider
import com.devskiller.jfairy.producer.person.locale.ka.KaAddressProvider
import com.devskiller.jfairy.producer.person.locale.pl.PlAddressProvider
import com.devskiller.jfairy.producer.person.locale.sv.SvAddressProvider
import com.devskiller.jfairy.producer.person.locale.zh.ZhAddressProvider
class FairyModuleSpec extends Specification {
private MapBasedDataMaster mapBasedDataMaster = Stub(MapBasedDataMaster)
private BaseProducer baseProducer = Stub(BaseProducer)
private DateProducer dateProducer = Stub(DateProducer)
def "should create appropriate locale-specific providers for locale"() {
when:
LocaleSpecificProviders providers = LocaleSpecificProvidersFactory.createProvidersForLocale(
Locale.forLanguageTag(locale), mapBasedDataMaster, baseProducer, dateProducer)
then:
providers.addressProvider().getClass() == expectedAddressProvider
where:
locale | expectedAddressProvider
"en" | EnAddressProvider.class
"pl" | PlAddressProvider.class
"es" | EsAddressProvider.class
"fr" | FrAddressProvider.class
"it" | EnAddressProvider.class
"de" | DeAddressProvider.class
"sv" | SvAddressProvider.class
"ka" | KaAddressProvider.class
"zh" | ZhAddressProvider.class
}
def "should fall back to English providers for unknown locale"() {
when:
LocaleSpecificProviders providers = LocaleSpecificProvidersFactory.createProvidersForLocale(
Locale.forLanguageTag("xx"), mapBasedDataMaster, baseProducer, dateProducer)
then:
providers.addressProvider().getClass() == EnAddressProvider.class
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/FairySpec.groovy
================================================
package com.devskiller.jfairy
import java.util.function.Supplier
import spock.lang.Specification
import com.devskiller.jfairy.data.DataMaster
import com.devskiller.jfairy.producer.person.Person
class FairySpec extends Specification {
private static final String CUSTOM_STRING = 'Custom Data Master'
DataMaster customDataMaster = Stub(DataMaster) {
getString(_ as String) >> CUSTOM_STRING
getStringList(_ as String) >> Arrays.asList(CUSTOM_STRING)
getValuesOfType(_ as String, _ as String, String.class) >> CUSTOM_STRING
getRandomValue(_ as String) >> CUSTOM_STRING
}
Supplier customDataMasterProvider = Stub(Supplier) {
get() >> customDataMaster
}
def "Second person should be different without fairy instance"() {
given:
Person person = Fairy.create().person()
when:
person = Fairy.create().person()
then:
person.fullName != old(person.fullName)
}
def "Second person should be different with one fairy"() {
given:
Fairy fairy = Fairy.create()
Person person = fairy.person()
when:
person = fairy.person()
then:
person.fullName != old(person.fullName)
}
def "Second person should be the same with the same random seed"() {
given:
Fairy firstFairy = Fairy.builder().withRandomSeed(10).build()
Fairy secondFairy = Fairy.builder().withRandomSeed(10).build()
Person firstPerson = firstFairy.person()
Person secondPerson = secondFairy.person()
Person thirdPerson = firstFairy.person()
Person fourthPerson = secondFairy.person()
expect:
firstPerson.fullName == secondPerson.fullName
thirdPerson.fullName == fourthPerson.fullName
firstPerson.fullName != thirdPerson.fullName
}
def "Second person should be different with different random seeds"() {
given:
Fairy firstFairy = Fairy.builder().withRandomSeed(10).build()
Fairy secondFairy = Fairy.builder().withRandomSeed(20).build()
Person firstPerson = firstFairy.person()
Person secondPerson = secondFairy.person()
expect:
firstPerson.fullName != secondPerson.fullName
}
def "should use default DataMaster when custom not provided"() {
given:
Fairy fairy = Fairy.create()
when:
Person samplePerson = fairy.person()
then:
samplePerson.firstName && samplePerson.firstName != CUSTOM_STRING
}
def "should use custom DataMaster when provided"() {
given:
Fairy fairy = Fairy.create(customDataMasterProvider, Locale.forLanguageTag("EN"))
when:
Person samplePerson = fairy.person()
then:
samplePerson.firstName == CUSTOM_STRING
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/FairyZhSpec.groovy
================================================
package com.devskiller.jfairy
import spock.lang.Specification
import com.devskiller.jfairy.producer.company.Company
import com.devskiller.jfairy.producer.person.Person
/**
*
* com.devskiller.jfairy.FairyZhSpec
* @author lhfcws
* @since 2017/3/2
*/
class FairyZhSpec extends Specification {
private final int SEED = 1
private Fairy fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.CHINA).build()
/********************
* Person
*/
def "Should create Chinese name"() {
when:
Person person = fairy.person()
then:
person.fullName == '国富 钱'
}
def "Should create Chinese id card"() {
when:
Person person = fairy.person()
then:
person.nationalIdentityCardNumber.length() == 18
}
def "Should create empty since Chinese id number is the only citizen id in China"() {
when:
Person person = fairy.person()
then:
person.nationalIdentificationNumber.length() == 0
}
def "Should create Chinese address"() {
when:
Person person = fairy.person()
then:
person.address.addressLine1 == '南京市中山大道122号 101房'
}
def "Should create Chinese city"() {
when:
Person person = fairy.person()
then:
person.address.city == '南京'
}
/********************
* Company
*/
def "Should create Chinese company name"() {
when:
Company company = fairy.company()
then:
company.name == "后海金融"
}
def "Should create Chinese company url"() {
when:
Company company = fairy.company()
then:
company.url == "http://www.540e6d7791.org"
}
def "Should create Chinese company vat"() {
when:
Company company = fairy.company()
then:
company.vatIdentificationNumber.length() == 15
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/UniqueEnforcerSpec.groovy
================================================
package com.devskiller.jfairy
import java.util.function.Supplier
import com.devskiller.jfairy.producer.person.Person
import com.devskiller.jfairy.producer.company.Company
import spock.lang.Specification
class UniqueEnforcerSpec extends Specification {
private Fairy fairy = Fairy.create()
def "should generate unique persons by email"() {
given:
def unique = UniqueEnforcer.of(fairy.&person, { Person p -> p.email })
when:
def persons = (1..50).collect { unique.next() }
def emails = persons.collect { it.email }
then:
emails.toSet().size() == 50
}
def "should generate unique companies by name"() {
given:
def unique = UniqueEnforcer.of(fairy.&company, { Company c -> c.name })
when:
def companies = (1..20).collect { unique.next() }
def names = companies.collect { it.name }
then:
names.toSet().size() == 20
}
def "should throw after max retries with small pool"() {
given:
int counter = 0
def unique = UniqueEnforcer.of({ -> counter++ % 3 }, { it }, 100)
when:
unique.next() // 0
unique.next() // 1
unique.next() // 2
unique.next() // should fail - only 3 unique values possible
then:
thrown(UniqueGenerationException)
}
def "should reset tracked values"() {
given:
int counter = 0
def unique = UniqueEnforcer.of({ -> counter++ % 2 }, { it }, 100)
when:
unique.next() // 0
unique.next() // 1
unique.reset()
unique.next() // 0 again - OK after reset
then:
unique.size() == 1
}
def "should track size"() {
given:
def unique = UniqueEnforcer.of(fairy.&person, { Person p -> p.email })
when:
(1..10).each { unique.next() }
then:
unique.size() == 10
}
def "should allow custom max retries"() {
given:
def unique = UniqueEnforcer.of({ -> "same" }, { it }, 5)
when:
unique.next() // OK first time
unique.next() // should fail after 5 retries
then:
def e = thrown(UniqueGenerationException)
e.message.contains("5 retries")
}
def "should share seen set between default and custom suppliers"() {
given:
int counter = 0
def unique = UniqueEnforcer.of({ -> counter++ }, { it }, 100)
when:
unique.next() // 0 via default
unique.next({ -> counter++ } as Supplier) // 1 via custom
unique.next() // 2 via default
then:
unique.size() == 3
}
def "should reject zero maxRetries"() {
when:
UniqueEnforcer.of({ -> "x" }, { it }, 0)
then:
thrown(IllegalArgumentException)
}
def "should reject negative maxRetries"() {
when:
UniqueEnforcer.of({ -> "x" }, { it }, -1)
then:
thrown(IllegalArgumentException)
}
def "should reject null generator"() {
when:
UniqueEnforcer.of(null, { it })
then:
thrown(NullPointerException)
}
def "should reject null keyExtractor"() {
when:
UniqueEnforcer.of({ -> "x" }, null)
then:
thrown(NullPointerException)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/UniqueFairySpec.groovy
================================================
package com.devskiller.jfairy
import com.devskiller.jfairy.producer.person.PersonProperties
import spock.lang.Specification
class UniqueFairySpec extends Specification {
private Fairy fairy = Fairy.create()
def "should generate unique persons by email"() {
given:
def unique = fairy.unique()
when:
def persons = (1..50).collect { unique.person() }
def emails = persons.collect { it.email }
then:
emails.toSet().size() == 50
}
def "should generate unique persons with properties"() {
given:
def unique = fairy.unique()
when:
def persons = (1..20).collect { unique.person(PersonProperties.male()) }
def emails = persons.collect { it.email }
then:
emails.toSet().size() == 20
persons.every { it.male }
}
def "should track uniqueness across parameterized and non-parameterized calls"() {
given:
def unique = fairy.unique()
when:
def p1 = unique.person()
def p2 = unique.person(PersonProperties.male())
def p3 = unique.person()
then:
[p1, p2, p3].collect { it.email }.toSet().size() == 3
}
def "should generate unique companies by name"() {
given:
def unique = fairy.unique()
when:
def companies = (1..20).collect { unique.company() }
def names = companies.collect { it.name }
then:
names.toSet().size() == 20
}
def "should generate unique IBANs"() {
given:
def plFairy = Fairy.create(Locale.forLanguageTag("pl"))
def unique = plFairy.unique()
when:
def ibans = (1..10).collect { unique.iban() }
def numbers = ibans.collect { it.ibanNumber }
then:
numbers.toSet().size() == 10
}
def "should generate unique credit cards"() {
given:
def unique = fairy.unique()
when:
def cards = (1..10).collect { unique.creditCard() }
def numbers = cards.collect { it.cardNumber }
then:
numbers.toSet().size() == 10
}
def "should reset all trackers"() {
given:
def unique = fairy.unique()
(1..5).each { unique.person() }
(1..5).each { unique.company() }
when:
unique.reset()
unique.person()
unique.company()
then:
noExceptionThrown()
}
def "should support custom max retries"() {
given:
def unique = fairy.unique(500)
when:
unique.person()
then:
noExceptionThrown()
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/data/MapBasedDataMasterSpec.groovy
================================================
/*
* Copyright (c) 2013. Codearte
*/
package com.devskiller.jfairy.data
import spock.lang.Specification
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
import com.devskiller.jfairy.producer.person.PersonProvider
class MapBasedDataMasterSpec extends Specification {
private BaseProducer baseProducer = Spy(BaseProducer, constructorArgs: [new RandomGenerator()])
private MapBasedDataMaster data = Spy(MapBasedDataMaster, constructorArgs: [baseProducer])
def setup() {
baseProducer.randomBetween() >> 0
}
def "should read first names"() {
when:
DataMaster dataMaster = new MapBasedDataMaster()
dataMaster.readResources("jfairy_en.yml")
Map> firstNames = dataMaster.getData(PersonProvider.FIRST_NAME, Map.class)
then:
firstNames.size() > 0
firstNames.keySet().size() > 0
}
def "should return men"() {
setup:
data.getData(PersonProvider.FIRST_NAME, Map.class) >> [female: ['Ana', 'Ivon'], male: ['Mark']]
when:
String male = data.getValuesOfType(PersonProvider.FIRST_NAME, "male", String.class)
then:
male == "Mark"
}
def "should return one of women"() {
setup:
data.getData(PersonProvider.FIRST_NAME, Map.class) >> [female: ['Ana', 'Ivon'], male: ['Mark']]
when:
String female = data.getValuesOfType(PersonProvider.FIRST_NAME, "female", String.class)
then:
(female == "Ana") || (female == "Ivon")
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/BaseProducerSpec.groovy
================================================
/*
* Copyright (c) 2013. Codearte
*/
package com.devskiller.jfairy.producer
import spock.lang.Specification
import spock.lang.Unroll
class BaseProducerSpec extends Specification {
private BaseProducer baseProducer = Spy(BaseProducer, constructorArgs: [new RandomGenerator()])
def setup() {
baseProducer.randomBetween('0', '9') >> '7'
baseProducer.randomBetween('a', 'z') >> 'x'
}
def "should replace # with digit 7"() {
expect:
baseProducer.numerify("Tes#t#") == "Tes7t7"
}
def "should replace ? with letter x"() {
expect:
baseProducer.letterify("Tes?t?") == "Tesxtx"
}
def "should replace # and ? with 7 and x respectively"() {
expect:
baseProducer.bothify("Test?#") == "Testx7"
}
def "should replace ? with letter from desired range"() {
when:
String result = baseProducer.letterify("Test??", 'A' as char, 'A' as char)
then:
result == "TestAA"
}
@Unroll
def "should generate random number from given range #from - #to"() {
setup:
BaseProducer randomGenerator = new BaseProducer(new RandomGenerator())
expect:
double between = randomGenerator.randomBetween(from, to)
between >= from
between <= to
where:
from | to
5 | 9
1 | 2
1 | 3
0 | 4
48 | 57
2L | 3L
-5L | -2L
-3L | 2L
2.0 | 3.0
-2.0 | -1.0
}
def "should retrieve random enum element"() {
setup:
baseProducer.randomBetween(0, 2) >> 1
expect:
TestEnum.B == baseProducer.randomElement(TestEnum)
}
def "should retrieve random vararg element"() {
setup:
baseProducer.randomBetween(0, 2) >> 1
expect:
'B' == baseProducer.randomElement('A', 'B', 'C')
}
@Unroll("Should return #count elements")
def "should return declared numer of random elements"() {
given:
List words = Arrays.asList('1', '2', '3')
when:
List elements = baseProducer.randomElements(words, count)
then:
elements.size() == count
where:
count | _
1 | _
2 | _
3 | _
4 | _
5 | _
6 | _
7 | _
}
static enum TestEnum {
A, B, C
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/CompanySpec.groovy
================================================
package com.devskiller.jfairy.producer
import org.apache.commons.validator.routines.DomainValidator
import org.apache.commons.validator.routines.EmailValidator
import org.apache.commons.validator.routines.UrlValidator
import spock.lang.Specification
import com.devskiller.jfairy.Bootstrap
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.company.Company
import static com.devskiller.jfairy.producer.company.CompanyProperties.CompanyProperty.withDomain
import static com.devskiller.jfairy.producer.company.CompanyProperties.CompanyProperty.withEmail
import static com.devskiller.jfairy.producer.company.CompanyProperties.CompanyProperty.withName
import static com.devskiller.jfairy.producer.company.CompanyProperties.CompanyProperty.withVatIdentificationNumber
/**
* @author Codearte
* @since 2013-10-07
*/
class CompanySpec extends Specification {
private EmailValidator emailValidator = EmailValidator.getInstance()
private UrlValidator urlValidator = UrlValidator.getInstance()
private DomainValidator domainValidator = DomainValidator.getInstance()
private Fairy fairy = Bootstrap.create()
def "should instantiate Company producer"() {
when:
Company company = fairy.company()
then:
company
}
def "should be sure that data exists"() {
when:
Company company = fairy.company()
then:
company.name
domainValidator.isValid(company.domain)
emailValidator.isValid(company.email)
urlValidator.isValid(company.url)
company.vatIdentificationNumber
}
def "withName should create company with specific name"() {
when:
Company company = fairy.company(withName("Specific Name"))
then:
company.name == "Specific Name"
}
def "withDomain should create company with specific domain"() {
when:
Company company = fairy.company(withDomain("specificdomain.com"))
then:
company.domain == "specificdomain.com"
}
def "withEmail should create company with specific email"() {
when:
Company company = fairy.company(withEmail("specificemail"))
then:
company.email.startsWith("specificemail@")
}
def "withVatIdentificationNumber should create company with specific vat identification number"() {
when:
Company company = fairy.company(withVatIdentificationNumber("specificvatidentificationnumber"))
then:
company.vatIdentificationNumber == "specificvatidentificationnumber"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/DateProducerSpec.groovy
================================================
/*
* Copyright (c) 2013 Codearte and authors
*/
package com.devskiller.jfairy.producer
import java.time.LocalDateTime
import java.time.OffsetDateTime
import java.time.Period
import spock.lang.Specification
import spock.lang.Unroll
class DateProducerSpec extends Specification {
private static final int MAX_YEARS_IN_THE_PAST = 5
private static final LocalDateTime CURRENT_DATE = LocalDateTime.parse("2013-11-09T01:16:00")
private static final int CURRENT_YEAR = 2013
private static final OffsetDateTime LATEST_DATE_IN_THE_PAST = OffsetDateTime.parse("2013-11-09T01:15:59+00:00")
private static final OffsetDateTime SOME_DATE_IN_THE_PAST = OffsetDateTime.parse("2011-01-20T12:32:12+00:00")
private static final OffsetDateTime ONE_YEAR_LATER = OffsetDateTime.parse("2014-11-09T01:16:00+00:00")
private static final OffsetDateTime FIVE_YEARS_EARLIER_DATE = OffsetDateTime.parse("2008-11-09T01:16:00+00:00")
private static final long LATEST_DATE_IN_THE_PAST_IN_MILLIS = LATEST_DATE_IN_THE_PAST.toInstant().toEpochMilli()
private static final long SOME_DATE_IN_THE_PAST_IN_MILLIS = SOME_DATE_IN_THE_PAST.toInstant().toEpochMilli()
private static final long FIVE_YEARS_EARLIER_DATE_IN_MILLIS = FIVE_YEARS_EARLIER_DATE.toInstant().toEpochMilli()
private baseProducer = Spy(BaseProducer, constructorArgs: [new RandomGenerator()])
private timeProviderMock = Mock(TimeProvider)
private DateProducer sut = new DateProducer(baseProducer, timeProviderMock)
def setup() {
timeProviderMock.getCurrentTime() >> CURRENT_DATE
timeProviderMock.getCurrentYear() >> CURRENT_YEAR
}
def "should generate date in the past"() {
given:
baseProducer.randomBetween(FIVE_YEARS_EARLIER_DATE_IN_MILLIS, LATEST_DATE_IN_THE_PAST_IN_MILLIS) >>
SOME_DATE_IN_THE_PAST_IN_MILLIS
when:
LocalDateTime dateInThePast = sut.randomDateInThePast(MAX_YEARS_IN_THE_PAST)
then:
dateInThePast < CURRENT_DATE
dateInThePast > FIVE_YEARS_EARLIER_DATE.toLocalDateTime()
dateInThePast == SOME_DATE_IN_THE_PAST.toLocalDateTime()
}
def "should fail generate date in the past if passed value is negative"() {
given:
baseProducer.randomBetween(FIVE_YEARS_EARLIER_DATE_IN_MILLIS, LATEST_DATE_IN_THE_PAST_IN_MILLIS) >>
SOME_DATE_IN_THE_PAST_IN_MILLIS
when:
sut.randomDateInThePast(-MAX_YEARS_IN_THE_PAST)
then:
thrown IllegalArgumentException
}
def "should be able to reach minimum date for date in the past"() {
given:
baseProducer.randomBetween(FIVE_YEARS_EARLIER_DATE_IN_MILLIS, LATEST_DATE_IN_THE_PAST_IN_MILLIS) >>
FIVE_YEARS_EARLIER_DATE_IN_MILLIS
when:
LocalDateTime dateInThePast = sut.randomDateInThePast(MAX_YEARS_IN_THE_PAST)
then:
dateInThePast == FIVE_YEARS_EARLIER_DATE.toLocalDateTime()
}
def "maximum date should be before now with defined offset for date in the past"() {
given:
baseProducer.randomBetween(FIVE_YEARS_EARLIER_DATE_IN_MILLIS, LATEST_DATE_IN_THE_PAST_IN_MILLIS) >>
LATEST_DATE_IN_THE_PAST_IN_MILLIS
when:
LocalDateTime dateInThePast = sut.randomDateInThePast(MAX_YEARS_IN_THE_PAST)
then:
dateInThePast == LATEST_DATE_IN_THE_PAST.toLocalDateTime()
}
@Unroll
def "should generate date between years #fromYear - #toYear"() {
given:
baseProducer.randomBetween(_, _) >> {args -> (args[1] + args[0]) / 2}
expect:
sut.randomDateBetweenYears(fromYear, toYear) == expectedDate
where:
fromYear | toYear || expectedDate
2009 | 2010 || LocalDateTime.parse("2009-12-31T23:59:30")
2010 | 2010 || LocalDateTime.parse("2010-07-02T11:59:30")
2015 | 2020 || LocalDateTime.parse("2017-12-31T23:59:30")
}
def "should generate date between specified year and now"() {
given:
baseProducer.randomBetween(FIVE_YEARS_EARLIER_DATE_IN_MILLIS, LATEST_DATE_IN_THE_PAST_IN_MILLIS) >>
SOME_DATE_IN_THE_PAST_IN_MILLIS
when:
LocalDateTime dateInThePast = sut.randomDateBetweenYearAndNow(2008)
then:
dateInThePast < CURRENT_DATE
dateInThePast > FIVE_YEARS_EARLIER_DATE.toLocalDateTime()
dateInThePast == SOME_DATE_IN_THE_PAST.toLocalDateTime()
}
def "should generate date between now and specified period"() {
when:
LocalDateTime dateInFuturePeriod = sut.randomDateBetweenNowAndFuturePeriod(Period.ofMonths(12))
then:
dateInFuturePeriod >= CURRENT_DATE
dateInFuturePeriod <= ONE_YEAR_LATER.toLocalDateTime()
}
def "should generate date between now and future offset"() {
when:
LocalDateTime dateInFuturePeriod = sut.randomDateInTheFuture(1)
then:
dateInFuturePeriod >= CURRENT_DATE
dateInFuturePeriod <= ONE_YEAR_LATER.toLocalDateTime()
}
def "should generate date in future"() {
when:
LocalDateTime dateInFuturePeriod = sut.randomDateInTheFuture()
then:
dateInFuturePeriod >= CURRENT_DATE
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/TextSpec.groovy
================================================
package com.devskiller.jfairy.producer
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.text.TextProducer
class TextSpec extends Specification {
private TextProducer text
def setup() {
text = Fairy.create().textProducer()
}
def "should instantiate Text producer with Text object"() {
expect:
text instanceof TextProducer
}
def "should be sure that data exists"() {
expect:
text.loremIpsum()
text.text()
text.word()
text.word(100)
text.latinWord()
text.latinWord(100)
text.sentence()
text.sentence(100)
text.latinSentence()
text.latinSentence(100)
text.paragraph()
text.paragraph(100)
}
def "should limit generated text"() {
when:
text.limitedTo(10)
then:
text.loremIpsum().length() == 10
text.word(100).length() == 10
text.sentence(100).length() == 10
text.paragraph(100).length() == 10
}
def "should generate Lorem Ipsum"() {
expect:
text.loremIpsum()
}
def "should generate localised text"() {
expect:
text.text()
}
def "should generate word"() {
expect:
text.word()
}
def "should generate latin word"() {
expect:
text.latinWord()
}
def "should generate sentence"() {
expect:
text.sentence()
}
def "should generate latin sentence"() {
expect:
text.latinSentence()
}
def "should generate paragraph"() {
expect:
text.paragraph()
}
def "should create random string"() {
when:
String randomString = text.randomString(10)
then:
randomString.length() == 10
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/CompanyProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.company.locale
import spock.lang.Specification
import com.devskiller.jfairy.data.DataMaster
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.VATIdentificationNumberProvider
import com.devskiller.jfairy.producer.company.CompanyProvider
import com.devskiller.jfairy.producer.company.DefaultCompanyProvider
import static com.devskiller.jfairy.producer.company.CompanyProvider.COMPANY_EMAIL
import static com.devskiller.jfairy.producer.company.CompanyProvider.COMPANY_NAME
import static com.devskiller.jfairy.producer.company.CompanyProvider.DOMAIN
class CompanyProviderSpec extends Specification {
private BaseProducer baseProducer = Mock(BaseProducer)
private DataMaster dataMaster = Mock(DataMaster)
private VATIdentificationNumberProvider vatIdentificationNumberProvider = Mock(VATIdentificationNumberProvider)
def "should remove slashes in company email"() {
given:
baseProducer.trueOrFalse() >> false
dataMaster.getRandomValue(COMPANY_EMAIL) >> "info"
dataMaster.getRandomValue(COMPANY_NAME) >> "mercedes/bosch"
dataMaster.getRandomValue(DOMAIN) >> "com"
CompanyProvider companyProvider = new DefaultCompanyProvider(baseProducer, dataMaster, vatIdentificationNumberProvider)
when:
String email = companyProvider.get().email
then:
email == "info@mercedesbosch.com"
}
def "should lowercase letters in company email"() {
given:
baseProducer.trueOrFalse() >> false
dataMaster.getRandomValue(COMPANY_EMAIL) >> "info"
dataMaster.getRandomValue(COMPANY_NAME) >> "GOOGLE"
dataMaster.getRandomValue(DOMAIN) >> "com"
CompanyProvider companyProvider = new DefaultCompanyProvider(baseProducer, dataMaster, vatIdentificationNumberProvider)
when:
String email = companyProvider.get().email
then:
email == "info@google.com"
}
def "should strip dots and remove spaces in company email"() {
given:
baseProducer.trueOrFalse() >> false
dataMaster.getRandomValue(COMPANY_EMAIL) >> "info"
dataMaster.getRandomValue(COMPANY_NAME) >> "company inc."
dataMaster.getRandomValue(DOMAIN) >> "com"
CompanyProvider companyProvider = new DefaultCompanyProvider(baseProducer, dataMaster, vatIdentificationNumberProvider)
when:
String email = companyProvider.get().email
then:
email == "info@companyinc.com"
}
def "should strip accents in company email"() {
given:
baseProducer.trueOrFalse() >> false
dataMaster.getRandomValue(COMPANY_EMAIL) >> "info"
dataMaster.getRandomValue(COMPANY_NAME) >> "åäöéáąćęłńśóźż"
dataMaster.getRandomValue(DOMAIN) >> "com"
CompanyProvider companyProvider = new DefaultCompanyProvider(baseProducer, dataMaster, vatIdentificationNumberProvider)
when:
String email = companyProvider.get().email
then:
email == "info@aaoeaacelnsozz.com"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/br/BrVATIdentificationNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.company.locale.br
import com.devskiller.jfairy.Bootstrap
import com.devskiller.jfairy.Fairy
import spock.lang.Specification
class BrVATIdentificationNumberProviderSpec extends Specification {
private Fairy fairy = Fairy.create(Locale.forLanguageTag("br"))
def "Should generate CNPJ with correct format"() {
when:
String cnpj = fairy.company().vatIdentificationNumber
then:
cnpj ==~ /\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}/
}
def "Should always generate CNPJ with 18 characters"() {
expect:
fairy.company().vatIdentificationNumber.length() == 18
where:
i << (1..100)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/de/DeVATIdentificationNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.company.locale.de
import spock.lang.Specification
import spock.lang.Unroll
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
/**
* @author Roland Weisleder
*/
class DeVATIdentificationNumberProviderSpec extends Specification {
private DeVATIdentificationNumberProvider generator = new DeVATIdentificationNumberProvider(new BaseProducer(new RandomGenerator(42)))
@Unroll
def "Should validate #vatIdentificationNumber as #valid"() {
expect:
generator.isValid(vatIdentificationNumber) == valid
where:
vatIdentificationNumber | valid
'999999999' | true
'1234567890' | false
'000000000' | true
'18947440810' | false
}
def "Should always generate proper vatIdentificationNumber"() {
expect:
generator.isValid(generator.get())
where:
i << (1..100)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/en/EnVATIdentificationNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.company.locale.en
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
/**
* @author Olga Maciaszek-Sharma
* @since 21.03.15
*/
class EnVATIdentificationNumberProviderSpec extends Specification {
private Fairy fairy
private String vatIdentificationNumber
private final partsDividedAtChar = 2
private final int vatIdentificationNumberLength = 10
private final int areaPartBeginningIndex = 0
private final int serialPartBeginningIndex = 3
def setup() {
fairy = Fairy.create(Locale.forLanguageTag("en"))
vatIdentificationNumber = fairy.company().vatIdentificationNumber
}
def "should generate number with 10 characters"() {
expect:
vatIdentificationNumber.length() == vatIdentificationNumberLength
}
def "should generate number divided by hyphen"() {
expect:
vatIdentificationNumber.charAt(partsDividedAtChar) == ('-' as char)
}
def "should generate number with valid area part"() {
given:
String areaPart = vatIdentificationNumber.substring(areaPartBeginningIndex, partsDividedAtChar)
Integer areaNumber = Integer.parseInt(areaPart)
expect:
for (char digit : areaPart.toCharArray()) {
digit.isDigit()
}
!EnVATIdentificationNumberProvider.EXCLUDED_NUMBERS.contains(areaNumber)
}
def "should generate number with valid serial part"() {
given:
String serialPart = vatIdentificationNumber.substring(serialPartBeginningIndex, vatIdentificationNumberLength)
expect:
for (char digit : serialPart.toCharArray()) {
digit.isDigit()
}
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/es/EsVATIdentificationNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.company.locale.es
import spock.lang.Specification
import spock.lang.Unroll
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
/**
* @author graux
* @since 24/06/2015
*/
class EsVATIdentificationNumberProviderSpec extends Specification {
private EsVATIdentificationNumberProvider generator = new EsVATIdentificationNumberProvider(new BaseProducer(new RandomGenerator(73)))
@Unroll
def "Should validate #vatIdentificationNumber as #valid"() {
expect:
generator.isValid(vatIdentificationNumber) == valid
where:
vatIdentificationNumber | valid
"L17761800" | true
"31231231X" | false
"G2301257H" | true
"AB023023C" | false
}
def "Should always generate proper nip"() {
expect:
generator.isValid(generator.get())
where:
i << (1..100)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/ka/KaVATIdentificationNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.company.locale.ka
import spock.lang.Specification
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
class KaVATIdentificationNumberProviderSpec extends Specification {
private KaVATIdentificationNumberProvider provider
def setup() {
BaseProducer baseProducer = new BaseProducer(new RandomGenerator())
provider = new KaVATIdentificationNumberProvider(baseProducer)
}
private static final Set ALLOWED_PREFIXES = [ '2' ,'4' ].toSet()
def isVatIdValid(String id) {
return id.length() == 9 && ALLOWED_PREFIXES.contains( id[ 0..0 ] )
}
def "Should always generate proper VAT id number"() {
expect:
isVatIdValid(provider.get())
where:
i << (1..100)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/pl/PlVATIdentificationNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.company.locale.pl
import spock.lang.Specification
import spock.lang.Unroll
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
class PlVATIdentificationNumberProviderSpec extends Specification {
private BaseProducer baseProducer = new BaseProducer(new RandomGenerator())
private PlVATIdentificationNumberProvider generator = new PlVATIdentificationNumberProvider(baseProducer)
@Unroll
def "Should validate #vatIdentificationNumber as #valid"() {
expect:
generator.isValid(vatIdentificationNumber) == valid
where:
vatIdentificationNumber | valid
"2684494529" | true
"1234567890" | false
"0000000000" | true
"18947440810" | false
}
def "Should always generate proper vatIdentificationNumber"() {
expect:
generator.isValid(generator.get())
where:
i << (1..100)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/se/SvVATIdentificationNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.company.locale.se
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
import static com.devskiller.jfairy.producer.company.locale.sv.SvVATIdentificationNumberProvider.isValid
class SvVATIdentificationNumberProviderSpec extends Specification {
private static final int VAT_IDENTIFICATION_NUMBER_LENGTH = 14
private Fairy fairy
private String vatIdentificationNumber
def setup() {
fairy = Fairy.create(Locale.forLanguageTag("sv"))
vatIdentificationNumber = fairy.company().vatIdentificationNumber
}
def "should generate number with 14 characters"() {
expect:
vatIdentificationNumber.length() == VAT_IDENTIFICATION_NUMBER_LENGTH
}
def "should start with SE"() {
expect:
vatIdentificationNumber.startsWith("SE")
}
def "should generate number with valid Swedish VAT Identification Number"() {
expect:
isValid(vatIdentificationNumber)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/sk/SkVATIdentificationNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.company.locale.sk
import spock.lang.Specification
import spock.lang.Unroll
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
class SkVATIdentificationNumberProviderSpec extends Specification {
private BaseProducer baseProducer = new BaseProducer(new RandomGenerator())
private SkVATIdentificationNumberProvider generator = new SkVATIdentificationNumberProvider(baseProducer)
def "Should always generate proper vatIdentificationNumber"() {
expect:
generator.isValid(generator.get())
where:
i << (1..100)
}
def "Should generate vatIdentificationNumber with length 10"() {
when:
String vat = generator.get()
then:
vat.length() == 10
}
@Unroll
def "Should validate #vatIdentificationNumber as #valid"() {
expect:
generator.isValid(vatIdentificationNumber) == valid
where:
vatIdentificationNumber | valid
"2684494529" | true
"1234567890" | false
"0000000000" | true
"18947440810" | false
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/company/locale/tr/TrVATIdentificationNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.company.locale.tr
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
import spock.lang.Specification
class TrVATIdentificationNumberProviderSpec extends Specification {
def "should generate valid VKN"() {
given:
BaseProducer baseProducer = new BaseProducer(new RandomGenerator())
TrVATIdentificationNumberProvider provider = new TrVATIdentificationNumberProvider(baseProducer)
expect:
(1..100).each {
String vkn = provider.get()
assert vkn.length() == 10
int[] digits = vkn.chars().collect { Character.getNumericValue((char) it) }
int sum = 0
for (int i = 0; i < 9; i++) {
int p = (digits[i] + 10 - (i + 1)) % 10
if (p == 9) {
sum += 9
} else {
int q = (int) (p * Math.pow(2, 9 - i)) % 9
sum += q
}
}
int c1 = (10 - (sum % 10)) % 10
assert digits[9] == c1
}
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/net/NetworkSpec.groovy
================================================
package com.devskiller.jfairy.producer.net
import org.apache.commons.validator.routines.InetAddressValidator
import spock.lang.Specification
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
class NetworkSpec extends Specification {
private InetAddressValidator ipValidator = InetAddressValidator.getInstance()
private IPNumberProducer ipNumber = new IPNumberProducer(new BaseProducer(new RandomGenerator()))
private NetworkProducer network = new NetworkProducer(ipNumber)
def "Should generate proper ip number"() {
String ip = network.ipAddress()
expect:
ip
ipValidator.isValid(ip)
}
def "Should generate proper url"() {
String url = network.url(true)
expect:
url.startsWith("https://") && url.endsWith(".com")
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/payment/CreditCardProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.payment
import java.time.LocalDateTime
import spock.lang.Specification
import com.devskiller.jfairy.data.DataMaster
import com.devskiller.jfairy.data.MapBasedDataMaster
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.DateProducer
import com.devskiller.jfairy.producer.RandomGenerator
/**
* @author jkubrynski@gmail.com
* @since 2013-11-17
*/
class CreditCardProviderSpec extends Specification {
public static final LocalDateTime EXPIRY_DATE = LocalDateTime.parse("2009-02-11T23:59:59.999")
private DataMaster dataMaster
private DateProducer dateProducer
private CreditCardProvider creditCardProvider
private BaseProducer baseProducer
def setup() {
baseProducer = new BaseProducer(new RandomGenerator())
dataMaster = new MapBasedDataMaster(baseProducer)
dateProducer = Mock(DateProducer)
dataMaster.readResources("jfairy.yml")
creditCardProvider = new CreditCardProvider(dataMaster, baseProducer, dateProducer)
}
def "should return credit card basic data"() {
when:
CreditCard creditCard = creditCardProvider.get()
then:
creditCard.vendor == 'Visa'
creditCard.cardNumber.length() == 16
}
def "should return card expiry date"() {
given:
dateProducer.randomDateBetweenNowAndFuturePeriod(_) >> EXPIRY_DATE
when:
CreditCard creditCard = creditCardProvider.get()
then:
creditCard.expiryDate == EXPIRY_DATE
}
def "should return card expiry date string"() {
given:
dateProducer.randomDateBetweenNowAndFuturePeriod(_) >> EXPIRY_DATE
when:
CreditCard creditCard = creditCardProvider.get()
then:
creditCard.expiryDateAsString == "02/09"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/payment/IBANSpec.groovy
================================================
package com.devskiller.jfairy.producer.payment
import de.speedbanking.iban.IbanValidator
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.data.DataMaster
import com.devskiller.jfairy.data.MapBasedDataMaster
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
class IBANSpec extends Specification {
private DataMaster dataMaster
private BaseProducer baseProducer
def setup() {
baseProducer = new BaseProducer(new RandomGenerator())
dataMaster = new MapBasedDataMaster(baseProducer)
dataMaster.readResources("jfairy_pl.yml")
}
/**
* Austria 20 16n
* ATkk bbbb bccc cccc cccc
*
* b = National bank code
*/
def "should return valid iban"() {
when:
IBANProvider iban = new DefaultIBANProvider(
baseProducer,
dataMaster,
IBANProperties.country("AT")
)
then:
IbanValidator.validate(iban.get().ibanNumber)
}
/**
Poland 28 24n PLkk bbbs sssx cccc cccc cccc cccc b = National bank code
s = Branch code
x = National check digit
c = Account number,
PLkk bbbssssx cccccccccccccccc
PL60 11401010 1111000234573201
*/
def "should return valid polish iban"() {
when:
IBANProvider iban = new DefaultIBANProvider(baseProducer, dataMaster)
then:
IbanValidator.validate(iban.get().ibanNumber)
}
def "should be usable directly from Fairy"() {
when:
String number = Fairy.create().iban(IBANProperties.country("PL")).ibanNumber
then:
number.startsWith('PL')
}
def "should ignore countries not supporting iban"() {
when:
def iban = Fairy.create().iban(IBANProperties.country("US"))
then:
iban == null
}
def "should set proper country for specified language"() {
when:
String number = Fairy.create().iban(IBANProperties.language("DE")).ibanNumber
then:
number.startsWith('DE')
}
def "should set proper country for according to selected language"() {
when:
String number = Fairy.create(new Locale('SV')).iban().ibanNumber
then:
number.startsWith('SE')
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/CompanyEmailProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person
import spock.lang.Specification
import com.devskiller.jfairy.producer.company.Company
class CompanyEmailProviderSpec extends Specification {
def "should remove spaces from firstName and lastName and lowercase letters in company email"() {
given:
Company company = new Company(null, "companymail.com", null, null)
CompanyEmailProvider companyEmailProvider = new CompanyEmailProvider("Emilie Agneta", "Vojnov Allerstrand", company)
when:
String email = companyEmailProvider.get()
then:
email == "emilie.agneta.vojnov.allerstrand@companymail.com"
}
def "should strip accents from company email"() {
given:
Company company = new Company(null, "åäöéáąćęłńśóźż.com", null, null)
CompanyEmailProvider companyEmailProvider = new CompanyEmailProvider("åäöéáąćęłńśóźż", "åäöéáąćęłńśóźż", company)
when:
String email = companyEmailProvider.get()
then:
email == "aaoeaacelnsozz.aaoeaacelnsozz@aaoeaacelnsozz.com"
}
def "should strip sharp s from company email"() {
given:
Company company = new Company(null, "companymail.com", null, null)
CompanyEmailProvider companyEmailProvider = new CompanyEmailProvider("Thieß", "Weißmann", company)
when:
String email = companyEmailProvider.get()
then:
email == "thiess.weissmann@companymail.com"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/EmailProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person
import spock.lang.Specification
import com.devskiller.jfairy.data.DataMaster
import com.devskiller.jfairy.producer.BaseProducer
import static com.devskiller.jfairy.producer.person.PersonProvider.PERSONAL_EMAIL
class EmailProviderSpec extends Specification {
private DataMaster dataMaster = Mock(DataMaster)
private BaseProducer baseProducer = Mock(BaseProducer)
def setup() {
dataMaster.getRandomValue(PERSONAL_EMAIL) >> "mail.com"
}
def "should remove spaces from firstName and lastName in email"() {
given:
baseProducer.randomBetween(1, 3) >> 1
EmailProvider emailProvider = new EmailProvider(dataMaster, baseProducer, "Emilie Agneta", "Vojnov Allerstrand")
when:
String email = emailProvider.get()
then:
email == "emilieagnetavojnovallerstrand@mail.com"
}
def "should replace spaces with dots from firstName and lastName in email"() {
given:
baseProducer.randomBetween(1, 3) >> 2
EmailProvider emailProvider = new EmailProvider(dataMaster, baseProducer, "Emilie Agneta", "Vojnov Allerstrand")
when:
String email = emailProvider.get()
then:
email == "emilie.agneta.vojnov.allerstrand@mail.com"
}
def "should replace spaces with dots from lastName in email"() {
given:
baseProducer.randomBetween(1, 3) >> 3
EmailProvider emailProvider = new EmailProvider(dataMaster, baseProducer, "Emilie Agneta", "Vojnov Allerstrand")
when:
String email = emailProvider.get()
then:
email == "vojnovallerstrand@mail.com"
}
def "should strip accents from email"() {
given:
baseProducer.randomBetween(1, 3) >> 2
EmailProvider emailProvider = new EmailProvider(dataMaster, baseProducer, "åäöéáąćęłńśóźż", "åäöéáąćęłńśóźż")
when:
String email = emailProvider.get()
then:
email == "aaoeaacelnsozz.aaoeaacelnsozz@mail.com"
}
def "should strip sharp s from email"() {
given:
baseProducer.randomBetween(1, 3) >> 2
EmailProvider emailProvider = new EmailProvider(dataMaster, baseProducer, "Thieß", "Weißmann")
when:
String email = emailProvider.get()
then:
email == "thiess.weissmann@mail.com"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/PersonSpec.groovy
================================================
package com.devskiller.jfairy.producer.person
import java.time.LocalDate
import java.time.Period
import org.apache.commons.validator.routines.EmailValidator
import spock.lang.Ignore
import spock.lang.Specification
import com.devskiller.jfairy.Bootstrap
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.company.Company
import com.devskiller.jfairy.producer.person.locale.en.EnAddress
import com.devskiller.jfairy.producer.util.LanguageCode
import static com.devskiller.jfairy.producer.person.PersonProperties.ageBetween
import static com.devskiller.jfairy.producer.person.PersonProperties.female
import static com.devskiller.jfairy.producer.person.PersonProperties.male
import static com.devskiller.jfairy.producer.person.PersonProperties.maxAge
import static com.devskiller.jfairy.producer.person.PersonProperties.minAge
import static com.devskiller.jfairy.producer.person.PersonProperties.mobileTelephoneFormat
import static com.devskiller.jfairy.producer.person.PersonProperties.telephoneFormat
import static com.devskiller.jfairy.producer.person.PersonProperties.withAddress
import static com.devskiller.jfairy.producer.person.PersonProperties.withAge
import static com.devskiller.jfairy.producer.person.PersonProperties.withCompany
import static com.devskiller.jfairy.producer.person.PersonProperties.withCompanyEmail
import static com.devskiller.jfairy.producer.person.PersonProperties.withDateOfBirth
import static com.devskiller.jfairy.producer.person.PersonProperties.withEmail
import static com.devskiller.jfairy.producer.person.PersonProperties.withFirstName
import static com.devskiller.jfairy.producer.person.PersonProperties.withLastName
import static com.devskiller.jfairy.producer.person.PersonProperties.withMiddleName
import static com.devskiller.jfairy.producer.person.PersonProperties.withNationalIdentificationNumber
import static com.devskiller.jfairy.producer.person.PersonProperties.withNationalIdentityCardNumber
import static com.devskiller.jfairy.producer.person.PersonProperties.withJobTitle
import static com.devskiller.jfairy.producer.person.PersonProperties.withPassportNumber
import static com.devskiller.jfairy.producer.person.PersonProperties.withPassword
import static com.devskiller.jfairy.producer.person.PersonProperties.withTelephoneNumber
import static com.devskiller.jfairy.producer.person.PersonProperties.withMobileTelephoneNumber
import static com.devskiller.jfairy.producer.person.PersonProperties.withUsername
class PersonSpec extends Specification {
private EmailValidator emailValidator = EmailValidator.getInstance()
private Fairy fairy = Bootstrap.create()
def setup() {
Bootstrap.create()
}
def "should instantiate PersonProducer producer with person"() {
when:
Person person = fairy.person()
then:
person instanceof Person
}
def "should be sure that fullName is proper"() {
when:
Person person = fairy.person()
then:
"${person.firstName} ${person.lastName}" == person.fullName
}
def "second generated name should be different"() {
expect:
fairy.person().firstName != fairy.person().firstName
}
def "should be sure that data exists"() {
when:
Person person = fairy.person()
then:
person.firstName
person.lastName
person.fullName
person.email
person.male || person.female
person.nationalIdentityCardNumber
person.address
emailValidator.isValid(person.email)
}
def "should create female"() {
when:
Person person = fairy.person(female())
then:
person.female
}
def "should create male"() {
when:
Person person = fairy.person(male())
then:
person.male
}
def "should create person younger than 3 years"() {
when:
Person person = fairy.person(maxAge(3))
then:
person.age <= 3
}
def "should create nationality"() {
when:
Person person = fairy.person()
then:
Country.findCountryForLanguage(LanguageCode.EN)*.getCode().contains(person.nationality.code)
}
@Ignore("Properties are not cleaned")
def "should create person older than 98 years"() {
when:
Person person = Bootstrap.create().person(minAge(99))
then:
person.age > 98
}
@Ignore("Properties are not cleaned")
def "should create person older than 10 years and younger than 10 years"() {
when:
Person person = Bootstrap.create().person(minAge(10), maxAge(10))
then:
person.age == 10
}
def "birth date and age should be related"() {
when:
Person person = fairy.person(ageBetween(32, 32))
then:
person.age == 32
Period period = Period.between(person.getDateOfBirth(), LocalDate.now())
period.years == 32
}
def "should create telephone number"() {
when:
Person person = fairy.person()
then:
person.telephoneNumber
}
def "should create telephone number in defined format"() {
when:
Person person = fairy.person(telephoneFormat("###--###"))
then:
person.telephoneNumber ==~ /\d\d\d--\d\d\d/
}
def "should create mobile telephone number"() {
when:
Person person = fairy.person()
then:
person.mobileTelephoneNumber
}
def "should create mobile telephone number in defined format"() {
when:
Person person = fairy.person(mobileTelephoneFormat("###--###"))
then:
person.mobileTelephoneNumber ==~ /\d\d\d--\d\d\d/
}
def "should create birth date"() {
when:
Person person = fairy.person()
then:
person.dateOfBirth.isBefore(LocalDate.now())
}
def "should create age"() {
when:
Person person = fairy.person()
then:
person.age
}
def "should create company email"() {
given:
Fairy fairy = fairy
when:
Person person = fairy.person()
then:
person.companyEmail
emailValidator.isValid(person.companyEmail)
}
def "should create address"() {
given:
Person person = fairy.person()
when:
Address address = person.address
then:
address
}
def "should create address postal code"() {
given:
Person person = fairy.person()
when:
String postalCode = person.address.postalCode
then:
postalCode
}
def "should create address city"() {
given:
Person person = fairy.person()
when:
String city = person.address.city
then:
city
}
def "should create street address"() {
given:
Person person = fairy.person()
when:
Address address = person.address
then:
address.street
address.streetNumber.isNumber()
(address.apartmentNumber.isNumber() || address.apartmentNumber == "")
}
def "should generate middle name only sometimes"() {
given:
List persons = []
(1..100).each {persons.add(fairy.person())}
when:
List allWithoutMiddleName = persons.findAll {p -> p.middleName.isEmpty()}
List allWithMiddleName = persons.findAll {p -> !p.middleName.isEmpty()}
then:
allWithoutMiddleName.size() > 0
allWithMiddleName.size() > 0
}
def "should generate apartment number only sometimes"() {
given:
List persons = []
(1..50).each {persons.add(fairy.person())}
when:
List allWithoutApartmentNumber = persons.findAll {p -> p.address.apartmentNumber.isEmpty()}
List allWithApartmentNumber = persons.findAll {p -> !p.address.apartmentNumber.isEmpty()}
then:
allWithoutApartmentNumber.size() > 0
allWithApartmentNumber.size() > 0
}
def "should create passport number"() {
given:
Person person = fairy.person()
expect:
person.passportNumber
}
def "withFirstName should create person with specific first name"() {
when:
Person person = fairy.person(withFirstName("Specificfirstname"))
then:
person.firstName == "Specificfirstname"
}
def "withMiddleName should create person with specific middle name"() {
when:
Person person = fairy.person(withMiddleName("Specificmiddlename"))
then:
person.middleName == "Specificmiddlename"
}
def "withLastName should create person with specific last name"() {
when:
Person person = fairy.person(withLastName("Specificlastname"))
then:
person.lastName == "Specificlastname"
}
def "withEmail should create person with specific email"() {
when:
Person person = fairy.person(withEmail("specificemail@gmail.com"))
then:
person.email == "specificemail@gmail.com"
}
def "withUsername should create person with specific username"() {
when:
Person person = fairy.person(withUsername("specificusername"))
then:
person.username == "specificusername"
}
def "withTelephoneNumber should create person with specific telephoneNumber"() {
when:
Person person = fairy.person(withTelephoneNumber("01234556789"))
then:
person.telephoneNumber == "01234556789"
}
def "withTelephoneNumberFormat and telephoneFormat used together should create person with specific telephoneNumber"() {
when:
Person person = fairy.person(telephoneFormat("###--###"), withTelephoneNumber("01234556789"))
then:
person.telephoneNumber == "01234556789"
}
def "withMobileTelephoneNumber should create person with specific telephoneNumber"() {
when:
Person person = fairy.person(withMobileTelephoneNumber("01234556789"))
then:
person.telephoneNumber == "01234556789"
}
def "withMobileTelephoneNumberFormat and mobileTelephoneFormat used together should create person with specific telephoneNumber"() {
when:
Person person = fairy.person(mobileTelephoneFormat("###--###"), withMobileTelephoneNumber("01234556789"))
then:
person.telephoneNumber == "01234556789"
}
def "withDateOfBirth should create person with specific date of birth"() {
when:
Person person = fairy.person(withDateOfBirth(LocalDate.parse("2000-01-01")))
then:
person.dateOfBirth == LocalDate.parse("2000-01-01")
}
def "withAge should create person with specific age"() {
when:
Person person = fairy.person(withAge(0))
then:
person.age == 0
}
def "withPassword should create person with specific password"() {
when:
Person person = fairy.person(withPassword("specificpassword"))
then:
person.password == "specificpassword"
}
def "withCompanyEmail should create person with specific company email"() {
when:
Person person = fairy.person(withCompanyEmail("specificcompanyemail@company.com"))
then:
person.companyEmail == "specificcompanyemail@company.com"
}
def "withNationalIdentityCardNumber should create person with specific national identity card number"() {
when:
Person person = fairy.person(withNationalIdentityCardNumber("SpecificNationalIdentityCardNumber"))
then:
person.nationalIdentityCardNumber == "SpecificNationalIdentityCardNumber"
}
def "withNationalIdentificationNumber should create person with specific national identification number"() {
when:
Person person = fairy.person(withNationalIdentificationNumber("SpecificNationalIdentificationNumber"))
then:
person.nationalIdentificationNumber == "SpecificNationalIdentificationNumber"
}
def "withPassportNumber should create person with specific passport number"() {
when:
Person person = fairy.person(withPassportNumber("SpecificPassportNumber"))
then:
person.passportNumber == "SpecificPassportNumber"
}
def "should create person with job title"() {
given:
Person person = fairy.person()
expect:
person.jobTitle
}
def "withJobTitle should create person with specific job title"() {
when:
Person person = fairy.person(withJobTitle("Specific Job Title"))
then:
person.jobTitle == "Specific Job Title"
}
def "withCompany should create person with specific company"() {
when:
Company specificCompany = new Company("Company name", "domain.com", "company@emial.com", "VATNO")
Person person = fairy.person(withCompany(specificCompany))
then:
person.getCompany() == specificCompany
}
def "withAddress should create person with specific address"() {
when:
EnAddress specificAddress = new EnAddress("POSTALCODE", "City", "Streetname", "123", "10B")
Person person = fairy.person(withAddress(specificAddress))
then:
person.getAddress() == specificAddress
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/br/BrAddressSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.br
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.person.Person
import spock.lang.Specification
class BrAddressSpec extends Specification {
private Fairy fairy = Fairy.create(Locale.forLanguageTag("br"))
def "Should generate Brazilian address"() {
when:
Person person = fairy.person()
then:
person.address
person.address.city
person.address.street
person.address.postalCode ==~ /\d{5}-\d{3}/
}
def "Should generate address in continental format"() {
when:
Person person = fairy.person()
String line2 = person.address.addressLine2
then:
line2 ==~ /\d{5}-\d{3} .+/
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/br/BrNationalIdentityCardNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.br
import com.devskiller.jfairy.Fairy
import spock.lang.Specification
class BrNationalIdentityCardNumberProviderSpec extends Specification {
private Fairy fairy = Fairy.create(Locale.forLanguageTag("br"))
def "Should generate CPF with correct format"() {
when:
String cpf = fairy.person().nationalIdentityCardNumber
then:
cpf ==~ /\d{3}\.\d{3}\.\d{3}-\d{2}/
}
def "Should generate CPF with 14 characters"() {
expect:
fairy.person().nationalIdentityCardNumber.length() == 14
where:
i << (1..100)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/de/DeAddressSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.de
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.person.Address
class DeAddressSpec extends Specification {
private final int SEED = 8
private Fairy fairy
private Address address
def setup() {
fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.GERMAN).build()
address = fairy.person().address
}
def "should generate random street"() {
expect:
address.street == 'Thomas-Müntzer-Hof'
}
def "should generate random streetNumber"() {
expect:
address.streetNumber == '58'
}
def "should generate random apartmentNumber"() {
expect:
address.apartmentNumber == ''
}
def "should generate random postalCode"() {
expect:
address.postalCode == '00322'
}
def "should generate random city"() {
expect:
address.city == 'Sitzenroda'
}
def "should return addressLine1 in de locale format"() {
expect:
address.addressLine1 == 'Thomas-Müntzer-Hof 58'
}
def "should return addressLine2 in de locale format"() {
expect:
address.addressLine2 == '00322 Sitzenroda'
}
def "should return address in de locale format"() {
expect:
address.toString() == "Thomas-Müntzer-Hof 58${System.lineSeparator()}00322 Sitzenroda"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/de/DeNationalIdentityCardNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.de
import spock.lang.Specification
import spock.lang.Unroll
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
/**
* @author Roland Weisleder
*/
class DeNationalIdentityCardNumberProviderSpec extends Specification {
private BaseProducer baseProducer = new BaseProducer(new RandomGenerator())
private DeNationalIdentityCardNumberProvider generator = new DeNationalIdentityCardNumberProvider(baseProducer)
@Unroll
def "Should validate #nationalIdentityCardNumber as #valid"() {
expect:
generator.isValid(nationalIdentityCardNumber) == valid
where:
nationalIdentityCardNumber | valid
'T22000129' | true
'123456789' | false
'L00000000' | true
'A12345678' | false
}
def "Should always generate proper nationalIdentityCardNumber"() {
expect:
generator.isValid(generator.get())
where:
i << (1..100)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/de/DePassportNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.de
import spock.lang.Specification
import spock.lang.Unroll
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
/**
* @author Roland Weisleder
*/
class DePassportNumberProviderSpec extends Specification {
private BaseProducer baseProducer = new BaseProducer(new RandomGenerator())
private DePassportNumberProvider generator = new DePassportNumberProvider(baseProducer)
@Unroll
def "Should validate #passportNumber as #valid"() {
expect:
generator.isValid(passportNumber) == valid
where:
passportNumber | valid
'C22000129' | true
'123456789' | false
'H00000000' | true
'A12345678' | false
}
def "Should always generate proper passportNumber"() {
expect:
generator.isValid(generator.get())
where:
i << (1..100)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/en/EnAddressSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.en
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.person.Address
class EnAddressSpec extends Specification {
private final int SEED = 7
private Fairy fairy
private Address address
def setup() {
fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.forLanguageTag("EN")).build()
address = fairy.person().address
}
def "should generate random street"() {
expect:
address.street == "Highland Place"
}
def "should generate random streetNumber"() {
expect:
address.streetNumber == "136"
}
def "should generate random apartmentNumber"() {
expect:
address.apartmentNumber == "147"
}
def "should generate random postalCode"() {
expect:
address.postalCode == "25059"
}
def "should generate random city"() {
expect:
address.city == "San Francisco"
}
def "should return addressLine1 in en locale format"() {
expect:
address.addressLine1 == "136 Highland Place APT 147"
}
def "should return addressLine2 in en locale format"() {
expect:
address.addressLine2 == "San Francisco 25059"
}
def "should return address in en locale format"() {
expect:
address.toString() == "136 Highland Place APT 147" + System.lineSeparator() + "San Francisco 25059"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/en/EnNationalIdentityCardNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.en
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
/**
* @author Olga Maciaszek-Sharma
@since 15.03.15
*/
class EnNationalIdentityCardNumberProviderSpec extends Specification {
private Fairy fairy
private String nationalIdentityCardNumber
private final int nationalIdentityCardNumberLength = 11
private final int[] partsDividedAtChars = [3, 6]
private int areaPartBeginningIndex = 0
private final int groupPartBeginningIndex = 4
private int serialNumberBeginningIndex = 7
def setup() {
fairy = Fairy.create(Locale.forLanguageTag("en"))
nationalIdentityCardNumber = fairy.person().nationalIdentityCardNumber
}
def "should generate number with 11 characters"() {
expect:
nationalIdentityCardNumber.length() == nationalIdentityCardNumberLength
}
def "should generate number divided by hyphens"() {
expect:
for (int index : partsDividedAtChars) {
nationalIdentityCardNumber.charAt(index) == ('-' as char)
}
}
def "should generate number with valid area part"() {
given:
String areaPart = nationalIdentityCardNumber.substring(areaPartBeginningIndex, partsDividedAtChars[0])
Integer areaNumber = Integer.parseInt(areaPart)
int minAreaPartNumber = 1
int maxAreaPartNumber = 899
int incorrectAreaNumber = 666
expect:
for (char digit : areaPart.toCharArray()) {
digit.isDigit()
}
areaNumber >= minAreaPartNumber && areaNumber <= maxAreaPartNumber
areaNumber != incorrectAreaNumber
}
def "should generate number with valid group part"() {
given:
String groupPart = nationalIdentityCardNumber.substring(groupPartBeginningIndex, partsDividedAtChars[1])
Integer groupNumber = Integer.parseInt(groupPart)
int minGroupNumber = 1
int maxGroupNumber = 99
expect:
for (char digit : groupPart.toCharArray()) {
digit.isDigit()
}
groupNumber >= minGroupNumber && groupNumber <= maxGroupNumber
}
def "should generate number with valid serial part"() {
given:
String serialPart = nationalIdentityCardNumber.substring(serialNumberBeginningIndex, nationalIdentityCardNumberLength)
Integer serialNumber = Integer.parseInt(serialPart)
int minSerialNumber = 1
int maxSerialNumber = 9999
expect:
for (char digit : serialPart.toCharArray()) {
digit.isDigit()
}
serialNumber >= minSerialNumber && serialNumber <= maxSerialNumber
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/en/EnPassportNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.en
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
/**
* @author Olga Maciaszek-Sharma
@since 15.03.15
*/
class EnPassportNumberProviderSpec extends Specification {
private Fairy fairy
private String passportNumber
def setup() {
fairy = Fairy.create(Locale.forLanguageTag("en"))
passportNumber = fairy.person().passportNumber
}
def "should generate number with nine characters"() {
expect:
passportNumber.length() == 9
}
def "should contain only digits and letters"() {
for (Character character : passportNumber) {
expect:
character.isDigit() || character.isLetter()
}
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/es/EsAddressSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.es
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.person.Address
class EsAddressSpec extends Specification {
private final int SEED = 3
private Fairy fairy
private Address address
def setup() {
fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.forLanguageTag("ES")).build()
address = fairy.person().address
}
def "should generate random street"() {
expect:
address.street == "Gran Vía"
}
def "should generate random streetNumber"() {
expect:
address.streetNumber == "33"
}
def "should generate random apartmentNumber"() {
expect:
address.apartmentNumber == ""
}
def "should generate random postalCode"() {
expect:
address.postalCode == "52.095"
}
def "should generate random city"() {
expect:
address.city == "Jaén"
}
def "should return addressLine1 in es locale format"() {
expect:
address.addressLine1 == "Gran Vía, 33"
}
def "should return addressLine2 in es locale format"() {
expect:
address.addressLine2 == "52.095 Jaén"
}
def "should return address in es locale format"() {
expect:
address.toString() == "Gran Vía, 33" + System.lineSeparator() + "52.095 Jaén"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/es/EsNationalIdentityCardNumberProviderSpec.groovy
================================================
/*
* Copyright (c) 2013 Codearte and authors
*/
package com.devskiller.jfairy.producer.person.locale.es
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
/**
* @author graux
* @since 24/06/2015
*/
class EsNationalIdentityCardNumberProviderSpec extends Specification {
private Fairy fairy
private String esNationalIdentityCardNumber
private final int dniLength = 10
private final int hyphenPos = 8
def setup() {
fairy = Fairy.create(Locale.forLanguageTag("es"))
esNationalIdentityCardNumber = fairy.person().nationalIdentityCardNumber
}
def "should generate number with 10 characters: 8 digits, one hyphen and one letter"() {
expect:
esNationalIdentityCardNumber.length() == dniLength
}
def "should generate number divided by hyphens"() {
given:
char letter = esNationalIdentityCardNumber.charAt(hyphenPos)
expect:
letter == ('-' as char)
}
def "should generate number with all numbers before the hyphen"() {
given:
String numbers = esNationalIdentityCardNumber.substring(0, hyphenPos)
expect:
for (char digit : numbers.toCharArray()) {
digit.isDigit()
}
}
def "should generate number with letter after the hyphen"() {
given:
char letter = esNationalIdentityCardNumber.charAt(hyphenPos + 1)
expect:
letter.isLetter()
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/es/EsPassportNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.es
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
/**
* @author graux
* @since 24/06/2015
*/
class EsPassportNumberProviderSpec extends Specification {
private Fairy fairy
private String passportNumber
def setup() {
fairy = Fairy.create(Locale.forLanguageTag("es"))
passportNumber = fairy.person().passportNumber
}
def "should generate number with nine characters"() {
expect:
passportNumber.length() == 9
}
def "should contain only digits and letters"() {
for (Character character : passportNumber) {
expect:
character.isDigit() || character.isLetter()
}
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/ka/KaAddressSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.ka
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.person.Address
import static java.lang.System.lineSeparator
class KaAddressSpec extends Specification {
private final int SEED = 8
private Fairy fairy
private Address address
def setup() {
Locale geLocale = new Locale.Builder().setLanguage("ka").build()
fairy = Fairy.builder().withRandomSeed(SEED).withLocale(geLocale).build()
address = fairy.person().address
}
def "should generate random street"() {
expect:
address.street == "კაკუცა ჩოლოყაშვილის გამზირი"
}
def "should generate random streetNumber"() {
expect:
address.streetNumber == "74"
}
def "should generate random apartmentNumber"() {
expect:
address.apartmentNumber == ""
}
def "should generate random postalCode"() {
expect:
address.postalCode == "3220"
}
def "should generate random city"() {
expect:
address.city == "საგარეჯო"
}
def "should return addressLine1 in GE locale format"() {
expect:
address.addressLine1 == "3220, საგარეჯო" // ZIP, city
}
def "should return addressLine2 in GE locale format"() {
expect:
address.addressLine2 == "კაკუცა ჩოლოყაშვილის გამზირი №74" // street & number & appartment
}
def "should return address in GE locale format"() {
expect:
address.toString() == "3220, საგარეჯო${lineSeparator()}კაკუცა ჩოლოყაშვილის გამზირი №74"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/ka/KaNationalIdentityCardNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.ka
import spock.lang.Specification
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
class KaNationalIdentityCardNumberProviderSpec extends Specification {
private KaNationalIdentityCardNumberProvider provider
def setup() {
BaseProducer baseProducer = new BaseProducer(new RandomGenerator())
provider = new KaNationalIdentityCardNumberProvider(baseProducer)
}
private static boolean isOldIdCardNumber(String id) {
id.matches("N[ა-ჰ]\\d{7}")
}
private static boolean isNewIdCardNumber(String id) {
id.matches("\\d{2}\\p{Upper}{2}\\d{5}")
}
def isIdCardNumber(String id) {
isNewIdCardNumber(id) || isOldIdCardNumber(id)
}
def "Should always generate proper nationalIdentityCardNumber"() {
expect:
isIdCardNumber(provider.get())
where:
i << (1..100)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/ka/KaPassportNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.ka
import spock.lang.Specification
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
class KaPassportNumberProviderSpec extends Specification {
private KaPassportNumberProvider provider
def setup() {
BaseProducer baseProducer = new BaseProducer(new RandomGenerator())
provider = new KaPassportNumberProvider(baseProducer)
}
def isValidPassportNumber(String id) {
id.matches("\\d{11}")
}
def "Should always generate proper passport number"() {
expect:
isValidPassportNumber(provider.get())
where:
i << (1..100)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/pl/PlAddressSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.pl
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.person.Address
class PlAddressSpec extends Specification {
private final int SEED = 8
private Fairy fairy
private Address address
def setup() {
fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.forLanguageTag("PL")).build()
address = fairy.person().address
}
def "should generate random street"() {
expect:
address.street == "Ludwinowska"
}
def "should generate random streetNumber"() {
expect:
address.streetNumber == "11"
}
def "should generate random apartmentNumber"() {
expect:
address.apartmentNumber == ""
}
def "should generate random postalCode"() {
expect:
address.postalCode == "25-365"
}
def "should generate random city"() {
expect:
address.city == "Milicz"
}
def "should return addressLine1 in pl locale format"() {
expect:
address.addressLine1 == "Ludwinowska 11"
}
def "should return addressLine2 in pl locale format"() {
expect:
address.addressLine2 == "25-365 Milicz"
}
def "should return address in pl locale format"() {
expect:
address.toString() == "Ludwinowska 11" + System.lineSeparator() + "25-365 Milicz"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/pl/PlNationalIdentificationNumberSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.pl
import java.time.LocalDate
import spock.lang.Specification
import spock.lang.Unroll
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.DateProducer
import com.devskiller.jfairy.producer.person.NationalIdentificationNumber
import com.devskiller.jfairy.producer.person.Person
import static PlNationalIdentificationNumberProvider.isValid
import static com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties.dateOfBirth
import static com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties.sex
class PlNationalIdentificationNumberSpec extends Specification {
private BaseProducer randomGenerator = Mock(BaseProducer)
private DateProducer dateGenerator = Mock()
@Unroll
def "should validate #nationalIdentificationNumber as #valid"() {
expect:
isValid(nationalIdentificationNumber) == valid
where:
nationalIdentificationNumber | valid
"13881939620" | true
"00421297469" | true
"99010147513" | true
"44051401359" | true
"44051401358" | false
"44051401458" | true
"44052401458" | false
}
@Unroll
def "should generate good nationalIdentificationNumber"() {
expect:
PlNationalIdentificationNumberProvider generator = new PlNationalIdentificationNumberProvider(dateGenerator,
randomGenerator, dateOfBirth(LocalDate.parse(date)), sex(Person.Sex.MALE))
NationalIdentificationNumber nationalIdentificationNumber = generator.get()
nationalIdentificationNumber.getValue().startsWith(prefix)
isValid(nationalIdentificationNumber.getValue())
where:
date | prefix
"1999-01-01" | "990101"
"1900-12-31" | "001231"
"1800-01-31" | "008131"
"2100-11-01" | "005101"
"2199-01-11" | "994111"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/pl/PlNationalIdentityCardNumberProviderSpec.groovy
================================================
/*
* Copyright (c) 2013 Codearte and authors
*/
package com.devskiller.jfairy.producer.person.locale.pl
import java.time.LocalDate
import spock.lang.Specification
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.DateProducer
import static PlNationalIdentityCardNumberProvider.ISSUING_BEGIN
import static PlNationalIdentityCardNumberProvider.LETTER_WEIGHT
import static PlNationalIdentityCardNumberProvider.MAX_DIGITS_PART_VALUE
/**
* @author mariuszs
* @since 30.10.13.
*/
class PlNationalIdentityCardNumberProviderSpec extends Specification {
private BaseProducer baseProducer = Mock(BaseProducer)
private DateProducer dateGenerator = Mock(DateProducer)
/**
* http://en.wikipedia.org/wiki/Polish_identity_card
*/
void "should generate proper id number"() {
int max = (2013 - ISSUING_BEGIN) * LETTER_WEIGHT
setup:
baseProducer.randomBetween(max, (int) max + LETTER_WEIGHT) >> ('A'..'Z').size() // ABA
baseProducer.randomInt(MAX_DIGITS_PART_VALUE) >> 0
when:
PlNationalIdentityCardNumberProvider generator = new PlNationalIdentityCardNumberProvider(dateGenerator, baseProducer)
String id = generator.get(LocalDate.parse("2013-12-12"))
then:
id == "ABA300000"
generator.isValid(id)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/pl/PlPassportNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.pl
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
/**
* @author Olga Maciaszek-Sharma
@since 21.02.15
*/
class PlPassportNumberProviderSpec extends Specification {
private Fairy fairy
private String passportNumber
def setup() {
fairy = Fairy.create(Locale.forLanguageTag("pl"))
passportNumber = fairy.person().passportNumber
}
def "should generate number with correct length"() {
expect:
passportNumber.length() == 9
}
def "should generate number starting with series"() {
expect:
for (int i = 0; i < 2; i++)
passportNumber.charAt(i).isLetter()
}
def "should generate number ending with 6 digits"() {
expect:
for (int i = 8; i > 2; i--) {
passportNumber.charAt(i).isDigit()
}
}
def "should generate number with correct checksum"() {
expect:
PlPassportNumberProvider.isPassportCheckSumValid(passportNumber)
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/pl/PlPersonSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.pl
import spock.lang.Specification
import com.devskiller.jfairy.Bootstrap
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.person.Person
class PlPersonSpec extends Specification {
private Fairy fairy = Bootstrap.create(Locale.forLanguageTag("PL"))
def setup() {
Bootstrap.create()
}
def "should create nationality"() {
when:
Person person = fairy.person()
then:
person.nationality.code == 'PL'
}
def "should create nationalIdentificationNumber"() {
when:
Person person = fairy.person()
then:
person.nationalIdentificationNumber
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sk/SkAddressSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.sk
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.person.Address
class SkAddressSpec extends Specification {
private final int SEED = 7
private Fairy fairy
private Address address
def setup() {
fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.forLanguageTag("SK")).build()
address = fairy.person().address
}
def "should generate street"() {
expect:
address.street
}
def "should generate streetNumber"() {
expect:
address.streetNumber
}
def "should generate postalCode"() {
expect:
address.postalCode
}
def "should generate city"() {
expect:
address.city
}
def "should return address in continental format"() {
expect:
address.toString().contains(System.lineSeparator())
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sk/SkPersonSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.sk
import spock.lang.Specification
import com.devskiller.jfairy.Bootstrap
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.person.Person
class SkPersonSpec extends Specification {
private Fairy fairy = Bootstrap.create(Locale.forLanguageTag("SK"))
def setup() {
Bootstrap.create()
}
def "should create nationality"() {
when:
Person person = fairy.person()
then:
person.nationality.code == 'SK'
}
def "should create nationalIdentificationNumber"() {
when:
Person person = fairy.person()
then:
person.nationalIdentificationNumber
}
def "should create person with first name"() {
when:
Person person = fairy.person()
then:
person.firstName
}
def "should create person with last name"() {
when:
Person person = fairy.person()
then:
person.lastName
}
def "should create person with email"() {
when:
Person person = fairy.person()
then:
person.email
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sv/SvAddressSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.sv
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.person.Address
class SvAddressSpec extends Specification {
private final int SEED = 7
private Fairy fairy
private Address address
def setup() {
fairy = Fairy.builder().withRandomSeed(SEED).withLocale(Locale.forLanguageTag("SV")).build()
address = fairy.person().address
}
def "should generate random street"() {
expect:
address.street == "Styrmansgatan"
}
def "should generate random streetNumber"() {
expect:
address.streetNumber == "139"
}
def "should generate random apartmentNumber"() {
expect:
address.apartmentNumber == "321"
}
def "should generate random postalCode"() {
expect:
address.postalCode == "460 11"
}
def "should generate random city"() {
expect:
address.city == "Östhammar"
}
def "should return addressLine1 in sv locale format"() {
expect:
address.addressLine1 == "Styrmansgatan 139 Lgh 321"
}
def "should return addressLine2 in sv locale format"() {
expect:
address.addressLine2 == "460 11 Östhammar"
}
def "should return address in sv locale format"() {
expect:
address.toString() == "Styrmansgatan 139 Lgh 321" + System.lineSeparator() + "460 11 Östhammar"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sv/SvNationalIdentificationNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.sv
import java.time.LocalDate
import spock.lang.Specification
import spock.lang.Unroll
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.DateProducer
import com.devskiller.jfairy.producer.person.NationalIdentificationNumber
import com.devskiller.jfairy.producer.person.Person
import static SvNationalIdentificationNumberProvider.isValid
import static com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties.dateOfBirth
import static com.devskiller.jfairy.producer.person.NationalIdentificationNumberProperties.sex
class SvNationalIdentificationNumberProviderSpec extends Specification {
private BaseProducer randomGenerator = Mock(BaseProducer)
private DateProducer dateGenerator = Mock(DateProducer)
@Unroll
def "should validate #nationalIdentificationNumber as #valid"() {
expect:
isValid(nationalIdentificationNumber) == valid
where:
nationalIdentificationNumber | valid
"370612-1450" | true
"370612-9529" | true
"640401-1550" | true
"690509-3966" | true
"870727-2441" | false
"880418-9043" | false
"610219-6694" | false
}
@Unroll
def "should generate good nationalIdentificationNumber"() {
expect:
SvNationalIdentificationNumberProvider generator = new SvNationalIdentificationNumberProvider(dateGenerator,
randomGenerator, dateOfBirth(LocalDate.parse(date)), sex(Person.Sex.MALE))
NationalIdentificationNumber nationalIdentificationNumber = generator.get()
nationalIdentificationNumber.getValue().startsWith(prefix)
isValid(nationalIdentificationNumber.getValue())
where:
date | prefix
"1999-01-01" | "990101"
"1950-12-31" | "501231"
"1910-01-31" | "100131"
"2100-11-01" | "001101"
"2199-01-22" | "990122"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sv/SvNationalIdentityCardNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.sv
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
class SvNationalIdentityCardNumberProviderSpec extends Specification {
private Fairy fairy
private String nationalIdentityCardNumber
def setup() {
fairy = Fairy.create(Locale.forLanguageTag("sv"))
nationalIdentityCardNumber = fairy.person().nationalIdentityCardNumber
}
def "should generate number with 8 characters"() {
expect:
nationalIdentityCardNumber.length() == 8
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sv/SvPassportNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.sv
import spock.lang.Specification
import com.devskiller.jfairy.Fairy
class SvPassportNumberProviderSpec extends Specification {
private Fairy fairy
private String passportNumber
def setup() {
fairy = Fairy.create(Locale.forLanguageTag("sv"))
passportNumber = fairy.person().passportNumber
}
def "should generate number with 8 characters"() {
expect:
passportNumber.length() == 8
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/sv/SvPersonSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.sv
import spock.lang.Specification
import com.devskiller.jfairy.Bootstrap
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.person.Person
class SvPersonSpec extends Specification {
private Fairy fairy = Bootstrap.create(Locale.forLanguageTag("SV"))
def setup() {
Bootstrap.create()
}
def "should create nationality"() {
when:
Person person = fairy.person()
then:
person.nationality.code == 'SE'
}
def "should create nationalIdentificationNumber"() {
when:
Person person = fairy.person()
then:
person.nationalIdentificationNumber
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/tr/TrAddressSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.tr
import spock.lang.Specification
class TrAddressSpec extends Specification {
def "should format Turkish address correctly"() {
given:
TrAddress address = new TrAddress("10", "İstiklal Caddesi", "5", "34000", "İstanbul")
expect:
address.getAddressLine1() == "İstiklal Caddesi No: 10 Daire: 5"
address.getAddressLine2() == "34000 İstanbul"
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/person/locale/tr/TrNationalIdentityCardNumberProviderSpec.groovy
================================================
package com.devskiller.jfairy.producer.person.locale.tr
import com.devskiller.jfairy.producer.BaseProducer
import com.devskiller.jfairy.producer.RandomGenerator
import spock.lang.Specification
class TrNationalIdentityCardNumberProviderSpec extends Specification {
def "should generate valid T.C. Kimlik No"() {
given:
BaseProducer baseProducer = Mock()
TrNationalIdentityCardNumberProvider provider = new TrNationalIdentityCardNumberProvider(baseProducer)
when:
baseProducer.randomBetween(1, 9) >> 1
baseProducer.randomBetween(0, 9) >>> [2, 3, 4, 5, 6, 7, 8, 9]
String tckn = provider.get()
then:
tckn.length() == 11
tckn.startsWith("1")
// 1 2 3 4 5 6 7 8 9
// oddSum = 1+3+5+7+9 = 25
// evenSum = 2+4+6+8 = 20
// d10 = (25 * 7 - 20) % 10 = (175 - 20) % 10 = 155 % 10 = 5
// totalSum = 1+2+3+4+5+6+7+8+9+5 = 50
// d11 = 50 % 10 = 0
tckn == "12345678950"
}
def "should generate multiple valid T.C. Kimlik Nos"() {
given:
BaseProducer baseProducer = new BaseProducer(new RandomGenerator())
TrNationalIdentityCardNumberProvider provider = new TrNationalIdentityCardNumberProvider(baseProducer)
expect:
(1..100).each {
String tckn = provider.get()
assert tckn.length() == 11
assert !tckn.startsWith("0")
int[] digits = tckn.chars().collect { Character.getNumericValue((char) it) }
int oddSum = digits[0] + digits[2] + digits[4] + digits[6] + digits[8]
int evenSum = digits[1] + digits[3] + digits[5] + digits[7]
int d10 = ((oddSum * 7) - evenSum) % 10
if (d10 < 0) d10 += 10
assert digits[9] == d10
assert digits[10] == (digits[0..9].sum() % 10)
}
}
}
================================================
FILE: src/test/groovy/com/devskiller/jfairy/producer/util/AlphaNumberSystemSpec.groovy
================================================
/*
* Copyright (c) 2013 Codearte and authors
*/
package com.devskiller.jfairy.producer.util
import spock.lang.Specification
import spock.lang.Unroll
import static AlphaNumberSystem.convertToString
/**
* @author mariuszs
* @since 01.11.13.
*/
class AlphaNumberSystemSpec extends Specification {
@Unroll
void "Number #x should be converted to #y"() {
expect:
convertToString(x, ('A'..'Z').size()) == y
where:
x | y
0 | "A"
1 | "B"
2 | "C"
25 | "Z"
26 | "BA"
}
}
================================================
FILE: src/test/groovy/snippets/Foo.groovy
================================================
package snippets
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.person.Person
class Foo {
static void main(String[] args) {
Person person = Fairy.create(Locale.default).person()
println person.address
println person.address.postalCode
}
}
================================================
FILE: src/test/groovy/snippets/SampleSnippet.groovy
================================================
package snippets
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.company.Company
import com.devskiller.jfairy.producer.person.Person
import com.devskiller.jfairy.producer.person.PersonProperties
println "\n * With context"
Fairy fairy = Fairy.create(Locale.forLanguageTag("en"))
3.times {
Person person = fairy.person()
println "${person.fullName} <${person.email}>"
}
// Print word
println fairy.textProducer().word(3)
println fairy.textProducer().sentence(5)
println fairy.person().firstName
println fairy.person().firstName
Person person = fairy.person()
println ""
println " First name: " + person.firstName
println " Middle name: " + person.middleName
println " Last name: " + person.lastName
println " Username: " + person.username
println " Password: " + person.password
println " isMale: " + person.male
println " isFemale: " + person.female
println " Phone: " + person.telephoneNumber
println " Date of birth: " + person.dateOfBirth
println " Age: " + person.age
println " National Id No: " + person.nationalIdentificationNumber
println "National Id Card No: " + person.nationalIdentityCardNumber
println " Passport No: " + person.passportNumber
println " Postal Code: " + person.address.postalCode
println " City: " + person.address.city
println " Street: " + person.address.street
println " Street number: " + person.address.streetNumber
println " Full address: " + person.address.toString()
println ""
3.times {
println " Men: " + fairy.person(PersonProperties.male()).fullName
}
3.times {
println "Women: " + fairy.person(PersonProperties.female()).fullName
}
println fairy.person().nationalIdentityCardNumber
println fairy.person().nationalIdentificationNumber
Company company = fairy.company()
println "Company: " + company.name
println "URL: " + company.url
println "VAT: " + company.vatIdentificationNumber
company = fairy.company()
println "Company: " + company.name
println "URL: " + company.url
println "VAT: " + company.vatIdentificationNumber
================================================
FILE: src/test/groovy/snippets/TextSnippet.groovy
================================================
package snippets
import com.devskiller.jfairy.Fairy
import com.devskiller.jfairy.producer.text.TextProducer
TextProducer text = Fairy.create().textProducer()
println "* Lorem ipsum *"
println text.loremIpsum()
println "* Localised text *"
println text.text()
println "* Latin words *"
println text.latinWord(1)
println text.latinWord()
println text.latinWord(190)
println "* Words *"
println text.word(1)
println text.word()
println text.word(190)
println "* Latin sentences *"
println text.latinSentence(1)
println text.latinSentence()
println text.latinSentence(190)
println "* Sentences *"
println text.sentence()
println text.sentence(3)
println text.sentence(190)
println "* Paragraph *"
println text.paragraph()
println text.paragraph(190)
println text.limitedTo(10).paragraph(190)
println "* Random string *"
println text.randomString(10)
println text.randomString(20)
================================================
FILE: src/test/java/com/devskiller/jfairy/producer/RandomGeneratorTest.java
================================================
package com.devskiller.jfairy.producer;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
class RandomGeneratorTest {
private static final int SEED = 123;
@DisplayName("Should produce identical results for same seed (Determinism)")
@Test
void shouldBeDeterministic() {
RandomGenerator gen1 = new RandomGenerator(SEED);
RandomGenerator gen2 = new RandomGenerator(SEED);
assertEquals(gen1.randomAlphanumeric(20), gen2.randomAlphanumeric(20));
assertEquals(gen1.nextInt(0, 100), gen2.nextInt(0, 100));
assertEquals(gen1.randomNumeric(10), gen2.randomNumeric(10));
}
@DisplayName("Should generate strings of requested length")
@ParameterizedTest
@ValueSource(ints = {0, 1, 5, 50})
void shouldRespectLength(int length) {
RandomGenerator generator = new RandomGenerator();
assertEquals(length, generator.randomNumeric(length).length());
assertEquals(length, generator.randomAlphabetic(length).length());
assertEquals(length, generator.randomAlphanumeric(length).length());
}
@DisplayName("Should contain only allowed characters")
@Test
void shouldContainOnlyAllowedChars() {
RandomGenerator generator = new RandomGenerator();
assertTrue(generator.randomNumeric(100).matches("^[0-9]+$"));
assertTrue(generator.randomAlphabetic(100).matches("^[A-Z]+$"));
assertTrue(generator.randomAlphanumeric(100).matches("^[A-Z0-9]+$"));
}
@DisplayName("Should throw exception for negative length")
@Test
void shouldThrowOnNegativeLength() {
RandomGenerator generator = new RandomGenerator();
Exception exception = assertThrows(IllegalArgumentException.class, () ->
generator.randomNumeric(-1)
);
assertTrue(exception.getMessage().contains("length must be >= 0"));
}
}
================================================
FILE: src/test/java/com/devskiller/jfairy/producer/util/AlphaNumberSystemTest.java
================================================
package com.devskiller.jfairy.producer.util;
import java.util.List;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
class AlphaNumberSystemTest {
@DisplayName("Should generate a complete alphabet list from A to Z")
@Test
void shouldGenerateCompleteAlphabetList() {
List alphabet = AlphaNumberSystem.generateAlphabetList();
assertEquals(26, alphabet.size(), "Alphabet should have 26 characters");
assertEquals(Character.valueOf('A'), alphabet.get(0));
assertEquals(Character.valueOf('Z'), alphabet.get(25));
}
@DisplayName("Should return an immutable list")
@Test
void shouldReturnImmutableList() {
List alphabet = AlphaNumberSystem.generateAlphabetList();
assertThrows(UnsupportedOperationException.class, () -> alphabet.add('!'),
"The list should be unmodifiable");
}
@DisplayName("Should convert numbers to string correctly based on radix")
@ParameterizedTest(name = "Convert {0} with base {1} should result in {2}")
@CsvSource({
"0, 26, A",
"1, 26, B",
"25, 26, Z",
"26, 26, BA",
"0, 10, A",
"10, 10, BA"
})
void shouldConvertToStringCorrectly(int number, int base, String expected) {
String result = AlphaNumberSystem.convertToString(number, base);
assertEquals(expected, result);
}
@DisplayName("Should throw exception for invalid base")
@Test
void shouldThrowExceptionForInvalidBase() {
assertThrows(IllegalArgumentException.class, () -> AlphaNumberSystem.convertToString(10, 0),
"Base 0 should not be allowed");
assertThrows(IllegalArgumentException.class, () -> AlphaNumberSystem.convertToString(10, 27),
"Base > 26 should not be allowed");
}
}
================================================
FILE: src/test/java/com/devskiller/jfairy/producer/util/StringUtilsTest.java
================================================
package com.devskiller.jfairy.producer.util;
import java.util.List;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import org.junit.jupiter.params.provider.NullAndEmptySource;
import org.junit.jupiter.params.provider.ValueSource;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* Unit tests for {@link StringUtils}.
*/
@SuppressWarnings("checkstyle:MethodName")
@DisplayName("StringUtils")
class StringUtilsTest {
@Nested
@DisplayName("isNotBlank")
class IsNotBlank {
@ParameterizedTest(name = "''{0}'' → false")
@NullAndEmptySource
@ValueSource(strings = {" ", " ", "\t", "\n"})
void returnsFalse(String s) {
assertFalse(StringUtils.isNotBlank(s));
}
@ParameterizedTest(name = "''{0}'' → true")
@ValueSource(strings = {"Have you tried turning it off and on again?", " Moss ", "Roy"})
void returnsTrue(String s) {
assertTrue(StringUtils.isNotBlank(s));
}
}
@Nested
@DisplayName("isNotEmpty")
class IsNotEmpty {
@ParameterizedTest(name = "''{0}'' → false")
@NullAndEmptySource
void returnsFalse(String s) {
assertFalse(StringUtils.isNotEmpty(s));
}
@ParameterizedTest(name = "''{0}'' → true")
@ValueSource(strings = {" ", "I am the IT department"})
void returnsTrue(String s) {
assertTrue(StringUtils.isNotEmpty(s));
}
}
@Nested
@DisplayName("lowerCase")
class LowerCase {
@ParameterizedTest(name = "''{0}'' → ''{1}''")
@CsvSource(delimiter = '|', value = {
"MOSS | moss",
"Roy Trenneman | roy trenneman",
"IT CROWD | it crowd",
"Jen Barber | jen barber",
})
void convertsCorrectly(String input, String expected) {
assertEquals(expected, StringUtils.lowerCase(input));
}
}
@Nested
@DisplayName("capitalize / uncapitalize")
class CapitalizeUncapitalize {
@ParameterizedTest(name = "capitalize ''{0}'' → ''{1}''")
@CsvSource(delimiter = '|', value = {
"moss | Moss",
"REYNHOLM | REYNHOLM",
"i | I",
})
void capitalizeWorks(String input, String expected) {
assertEquals(expected, StringUtils.capitalize(input));
}
@Test
void capitalize_emptyString_returnsEmpty() {
assertEquals("", StringUtils.capitalize(""));
}
@ParameterizedTest(name = "uncapitalize ''{0}'' → ''{1}''")
@CsvSource(delimiter = '|', value = {
"Moss | moss",
"Roy | roy",
"INTERNET | iNTERNET",
})
void uncapitalizeWorks(String input, String expected) {
assertEquals(expected, StringUtils.uncapitalize(input));
}
@Test
void uncapitalize_emptyString_returnsEmpty() {
assertEquals("", StringUtils.uncapitalize(""));
}
}
@Nested
@DisplayName("leftPad")
class LeftPad {
@ParameterizedTest(name = "leftPad(''{0}'', {1}, ''0'') → ''{2}''")
@CsvSource(delimiter = '|', value = {
"0118999 | 10 | 0000118999",
"999 | 3 | 999",
"881999 | 4 | 881999",
})
void charVariant(String input, int size, String expected) {
assertEquals(expected, StringUtils.leftPad(input, size, '0'));
}
@ParameterizedTest(name = "leftPad(''{0}'', {1}, \"0\") → ''{2}''")
@CsvSource(delimiter = '|', value = {
"119725 | 10 | 0000119725",
"3 | 3 | 003",
"42 | 5 | 00042",
"hola | 3 | hola",
})
void stringVariant(String input, int size, String expected) {
assertEquals(expected, StringUtils.leftPad(input, size, "0"));
}
}
@Nested
@DisplayName("strip")
class Strip {
@ParameterizedTest(name = "strip(''{0}'', ''{1}'') → ''{2}''")
@CsvSource(delimiter = '|', value = {
"...Moss... | . | Moss",
"!!!Roy!!! | ! | Roy",
"Jen | . | Jen",
})
void stripsCorrectly(String input, String stripChars, String expected) {
assertEquals(expected, StringUtils.strip(input, stripChars));
}
}
@Nested
@DisplayName("deleteWhitespace")
class DeleteWhitespace {
@ParameterizedTest(name = "''{0}'' → ''{1}''")
@CsvSource(delimiter = '|', value = {
"Moss Mega Usher | MossMegaUsher",
"'Reynholm ' | Reynholm",
})
void removesWhitespace(String input, String expected) {
assertEquals(expected, StringUtils.deleteWhitespace(input));
}
@Test
void removesTabsAndNewlines() {
assertEquals("0118999881999119725or3", StringUtils.deleteWhitespace("0118 999\t881 999\n119725 or 3"));
}
}
@Nested
@DisplayName("left")
class Left {
@ParameterizedTest(name = "left(''{0}'', {1}) → ''{2}''")
@CsvSource(delimiter = '|', value = {
"Reynholm Industries | 8 | Reynholm",
"Moss | 20 | Moss",
"Roy | 3 | Roy",
})
void returnsCorrectSubstring(String input, int len, String expected) {
assertEquals(expected, StringUtils.left(input, len));
}
@Test
void zeroLength_returnsEmpty() {
assertEquals("", StringUtils.left("Moss", 0));
}
}
@Nested
@DisplayName("removeEnd / endsWith")
class RemoveEndEndsWith {
@ParameterizedTest(name = "removeEnd(''{0}'', ''{1}'') → ''{2}''")
@CsvSource(delimiter = '|', value = {
"Moss! | ! | Moss",
"Roy | ! | Roy",
})
void removeEndWorks(String input, String suffix, String expected) {
assertEquals(expected, StringUtils.removeEnd(input, suffix));
}
@ParameterizedTest(name = "endsWith(''{0}'', ''{1}'') → {2}")
@CsvSource(delimiter = '|', value = {
"Reynholm. | . | true",
"Moss | . | false",
})
void endsWithWorks(String input, String suffix, boolean expected) {
assertEquals(expected, StringUtils.endsWith(input, suffix));
}
}
@Nested
@DisplayName("replace / replaceChars")
class Replace {
@ParameterizedTest(name = "replace(''{0}'', ''{1}'', ''{2}'') → ''{3}''")
@CsvSource(delimiter = '|', value = {
"Have you tried turning it off and on again? | off and on | on and off | Have you tried turning it on and off again?",
"Moss | x | y | Moss",
"Roy Roy Roy | Roy | Jen | Jen Jen Jen",
})
void replaceWorks(String input, String search, String replacement, String expected) {
assertEquals(expected, StringUtils.replace(input, search, replacement));
}
@ParameterizedTest(name = "replaceChars(''{0}'', ''{1}'', ''{2}'') → ''{3}''")
@CsvSource(delimiter = '|', value = {
"Moss | eo | -- | M-ss", // both chars have replacements
"Moss | os | x | Mx", // one replacement, two removals
"Roy | xyz | 123 | Ro2", // one replacement
"Richard Ayoade | Aa | _ | Richrd _yode", // one replacement, one removal
})
void replaceCharsWorks(String input, String searchChars, String replaceChars, String expected) {
assertEquals(expected, StringUtils.replaceChars(input, searchChars, replaceChars));
}
}
@Nested
@DisplayName("latinize")
class Latinize {
@ParameterizedTest(name = "''{0}'' → ''{1}''")
@CsvSource(delimiter = '|', value = {
"Réynhölm | Reynholm",
"Möss | Moss",
"Straße | Strasse",
"Zażółć gęślą jaźń | Zazolc gesla jazn",
"łŁ | lL",
"ßß | ssss",
"Roy | Roy",
})
void latinizesCorrectly(String input, String expected) {
assertEquals(expected, StringUtils.latinize(input));
}
}
@Nested
@DisplayName("escapeNonAscii")
class EscapeNonAscii {
@Test
void null_returnsNull() {
assertNull(StringUtils.escapeNonAscii(null));
}
@ParameterizedTest(name = "''{0}'' → ''{1}''")
@CsvSource(delimiter = '|', value = {
"Moss | Moss",
"Möss | M\\u00f6ss",
"Réy | R\\u00e9y",
})
void escapesCorrectly(String input, String expected) {
assertEquals(expected, StringUtils.escapeNonAscii(input));
}
}
@Nested
@DisplayName("split")
class Split {
@Test
void bySpace_returnsCorrectParts() {
assertArrayEquals(new String[]{"Moss", "Roy", "Jen"},
StringUtils.split("Moss Roy Jen", ' '));
}
@Test
@DisplayName("trailing delimiter preserves trailing empty string")
void trailingDelimiter_preservesTrailingEmpty() {
assertArrayEquals(new String[]{"Moss", "Roy", ""},
StringUtils.split("Moss Roy ", ' '));
}
@Test
void noDelimiterPresent_returnsSingleElement() {
assertArrayEquals(new String[]{"Reynholm"}, StringUtils.split("Reynholm", ' '));
}
}
@Nested
@DisplayName("joinWithSpace")
class JoinWithSpace {
@Test
void multipleElements_joinedWithSpace() {
assertEquals("Moss Roy Jen", StringUtils.joinWithSpace(List.of("Moss", "Roy", "Jen")));
}
@Test
void singleElement_noSpaceAdded() {
assertEquals("Moss", StringUtils.joinWithSpace(List.of("Moss")));
}
@Test
void emptyList_returnsEmptyString() {
assertEquals("", StringUtils.joinWithSpace(List.of()));
}
}
}
================================================
FILE: src/test/java/com/devskiller/jfairy/producer/util/ValidateUtilsTest.java
================================================
package com.devskiller.jfairy.producer.util;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertSame;
import static org.junit.jupiter.api.Assertions.assertThrows;
/**
* Unit tests for {@link ValidateUtils}.
*/
@SuppressWarnings("checkstyle:MethodName")
@DisplayName("ValidateUtils")
class ValidateUtilsTest {
@Nested
@DisplayName("notNull")
class NotNull {
@Test
void nonNullValue_returnsValue() {
String value = "hello";
assertSame(value, ValidateUtils.notNull(value, "must not be null"));
}
@Test
void nullValue_throwsWithMessage() {
IllegalArgumentException ex = assertThrows(
IllegalArgumentException.class,
() -> ValidateUtils.notNull(null, "key cannot be null"));
assertEquals("key cannot be null", ex.getMessage());
}
@Test
void nullValue_withFormatArgs_includesArgsInMessage() {
IllegalArgumentException ex = assertThrows(
IllegalArgumentException.class,
() -> ValidateUtils.notNull(null, "param '%s' cannot be null", "myKey"));
assertEquals("param 'myKey' cannot be null", ex.getMessage());
}
}
@Nested
@DisplayName("isTrue")
class IsTrue {
@Test
void trueExpression_doesNotThrow() {
assertDoesNotThrow(() -> ValidateUtils.isTrue(true, "should not throw"));
}
@Test
void falseExpression_throwsWithMessage() {
IllegalArgumentException ex = assertThrows(
IllegalArgumentException.class,
() -> ValidateUtils.isTrue(false, "value must be >= 0"));
assertEquals("value must be >= 0", ex.getMessage());
}
@Test
void falseExpression_withFormatArgs_includesArgsInMessage() {
IllegalArgumentException ex = assertThrows(
IllegalArgumentException.class,
() -> ValidateUtils.isTrue(false, "%d has to be >= 0", -5));
assertEquals("-5 has to be >= 0", ex.getMessage());
}
}
}
================================================
FILE: src/test/resources/simplelogger.properties
================================================
# SLF4J's SimpleLogger configuration file
org.slf4j.simpleLogger.logFile = System.out
org.slf4j.simpleLogger.defaultLogLevel = info
# Date and time formatting
org.slf4j.simpleLogger.showDateTime = true
org.slf4j.simpleLogger.dateTimeFormat = yyyy-MM-dd HH:mm:ss.SSS
# Display settings for threads and logger names
org.slf4j.simpleLogger.showThreadName = true
org.slf4j.simpleLogger.showLogName = true
org.slf4j.simpleLogger.showShortLogName = true
org.slf4j.simpleLogger.levelInBrackets = false
# Specific logger levels
org.slf4j.simpleLogger.log.com.devskiller.jfairy = trace
================================================
FILE: src/test/resources/team/checkstyle-rules.xml
================================================