T getItem(T[] items, int probability, T defaultItem) {
- if (items == null) {
- throw new IllegalArgumentException("Item array cannot be null");
- }
- if (items.length == 0) {
- throw new IllegalArgumentException("Item array cannot be empty");
- }
- return chance(probability) ? items[random.nextInt(items.length)]
- : defaultItem;
- }
-
- /**
- * @return A random first name
- */
- public String getFirstName() {
- return getItem(nameDataValues.getFirstNames());
- }
-
- /**
- * Returns a combination of first and last name values in one string
- *
- * @return
- */
- public String getName() {
- return getItem(nameDataValues.getFirstNames()) + " "
- + getItem(nameDataValues.getLastNames());
- }
-
- /**
- * @return A random last name
- */
- public String getLastName() {
- return getItem(nameDataValues.getLastNames());
- }
-
- /**
- * @return A random street name
- */
- public String getStreetName() {
- return getItem(addressDataValues.getStreetNames());
- }
-
- /**
- * @return A random street suffix
- */
- public String getStreetSuffix() {
- return getItem(addressDataValues.getAddressSuffixes());
- }
-
- /**
- * Generates a random city value
- *
- * @return City as a string
- */
- public String getCity() {
- return getItem(addressDataValues.getCities());
- }
-
- /**
- * Generates an address value consisting of house number, street name and
- * street suffix. i.e. 543 Larkhill Road
- *
- * @return Address as a string
- */
- public String getAddress() {
- int num = 404 + random.nextInt(1400);
- return num + " " + getStreetName() + " " + getStreetSuffix();
- }
-
- /**
- * Generates line 2 for a street address (usually an Apt. or Suite #).
- * Returns null if the probabilty test fails.
- *
- * @param probability
- * Chance as % of have a value returned instead of null.
- * @return Street address line two or null if the probability test fails
- */
- public String getAddressLine2(int probability) {
- return getAddressLine2(probability, null);
- }
-
- /**
- * Generates line 2 for a street address (usually an Apt. or Suite #).
- * Returns default value if the probabilty test fails.
- *
- * @param probability
- * Chance as % of have a value returned instead of null.
- * @param defaultValue
- * Value to return if the probability test fails.
- * @return Street address line two or null if the probability test fails
- */
- public String getAddressLine2(int probability, String defaultValue) {
- return chance(probability) ? getAddressLine2() : defaultValue;
- }
-
- /**
- * Generates line 2 for a street address (usually an Apt. or Suite #).
- * Returns default value if the probabilty test fails.
- *
- * @return Street address line 2
- */
- public String getAddressLine2() {
- int test = random.nextInt(100);
- if (test < 50) {
- return "Apt #" + 100 + random.nextInt(1000);
- } else {
- return "Suite #" + 100 + random.nextInt(1000);
- }
- }
-
- /**
- * Creates a random birthdate within the range of 1955 to 1985
- *
- * @return Date representing a birthdate
- */
- public Date getBirthDate() {
- Date base = new Date(0);
- return getDate(base, -365 * 15, 365 * 15);
- }
-
- /**
- * Returns a random int value.
- *
- * @return random number
- */
- public int getNumber() {
- return getNumberBetween(Integer.MIN_VALUE, Integer.MAX_VALUE);
- }
-
- /**
- * Returns a random number between 0 and max
- *
- * @param max
- * Maximum value of result
- * @return random number no more than max
- */
- public int getNumberUpTo(int max) {
- return getNumberBetween(0, max);
- }
-
- /**
- * Returns a number betwen min and max
- *
- * @param min
- * minimum value of result
- * @param max
- * maximum value of result
- * @return Random number within range
- */
- public int getNumberBetween(int min, int max) {
-
- if (max < min) {
- throw new IllegalArgumentException(String.format(
- "Minimum must be less than minimum (min=%d, max=%d)", min,
- max));
- }
-
- return min + random.nextInt(max - min);
- }
-
- /**
- * Builds a date from the year, month, day values passed in
- *
- * @param year
- * The year of the final {@link Date} result
- * @param month
- * The month of the final {@link Date} result (from 1-12)
- * @param day
- * The day of the final {@link Date} result
- * @return Date representing the passed in values.
- */
- public Date getDate(int year, int month, int day) {
- Calendar cal = Calendar.getInstance();
- cal.clear();
- cal.set(year, month - 1, day, 0, 0, 0);
- return cal.getTime();
- }
-
- /**
- * Returns a random date which is in the range baseData +
- * minDaysFromData to baseData +
- * maxDaysFromData. This method does not alter the time
- * component and the time is set to the time value of the base date.
- *
- * @param baseDate
- * Date to start from
- * @param minDaysFromDate
- * minimum number of days from the baseDate the result can be
- * @param maxDaysFromDate
- * maximum number of days from the baseDate the result can be
- * @return A random date
- */
- public Date getDate(Date baseDate, int minDaysFromDate, int maxDaysFromDate) {
- Calendar cal = Calendar.getInstance();
- cal.setTime(baseDate);
- int diff = minDaysFromDate
- + (random.nextInt(maxDaysFromDate - minDaysFromDate));
- cal.add(Calendar.DATE, diff);
- return cal.getTime();
- }
-
- /**
- * Returns a random date between two dates. This method will alter the time
- * component of the dates
- *
- * @param minDate
- * Minimum date that can be returned
- * @param maxDate
- * Maximum date that can be returned
- * @return random date between these two dates.
- */
- public Date getDateBetween(Date minDate, Date maxDate) {
- // this can break if seconds is an int
- long seconds = (maxDate.getTime() - minDate.getTime()) / 1000;
- seconds = (long) (random.nextDouble() * seconds);
- Date result = new Date();
- result.setTime(minDate.getTime() + (seconds * 1000));
- return result;
- }
-
- /**
- * Returns random text made up of english words of length
- * length
- *
- * @param length
- * length of returned string
- *
- * @return string made up of actual words with length length
- */
- public String getRandomText(int length) {
- return getRandomText(length, length);
- }
-
- /**
- * Returns random text made up of english words
- *
- * @param minLength
- * minimum length of returned string
- * @param maxLength
- * maximum length of returned string
- * @return string of length between min and max length
- */
- public String getRandomText(int minLength, int maxLength) {
- validateMinMaxParams(minLength, maxLength);
-
- StringBuilder sb = new StringBuilder(maxLength);
- int length = minLength;
- if (maxLength != minLength) {
- length = length + random.nextInt(maxLength - minLength);
- }
- while (length > 0) {
- if (sb.length() != 0) {
- sb.append(" ");
- length--;
- }
- String word = getRandomWord(length);
- sb.append(word);
- length = length - word.length();
- }
- return sb.toString();
-
- }
-
- private void validateMinMaxParams(int minLength, int maxLength) {
- if (minLength < 0) {
- throw new IllegalArgumentException(
- "Minimum length must be a non-negative number");
- }
-
- if (maxLength < 0) {
- throw new IllegalArgumentException(
- "Maximum length must be a non-negative number");
- }
-
- if (maxLength < minLength) {
- throw new IllegalArgumentException(
- String.format(
- "Minimum length must be less than maximum length (min=%d, max=%d)",
- minLength, maxLength));
- }
- }
-
- /**
- * @return a random character
- */
- public char getRandomChar() {
- return (char) (random.nextInt(26) + 'a');
- }
-
- /**
- * Return a string containing length random characters
- *
- * @param length
- * number of characters to use in the string
- * @return A string containing length random characters
- */
- public String getRandomChars(int length) {
- return getRandomChars(length, length);
- }
-
- /**
- * Return a string containing between length random characters
- *
- * @param length
- * number of characters to use in the string
- * @return A string containing length random characters
- */
- public String getRandomChars(int minLength, int maxLength) {
- validateMinMaxParams(minLength, maxLength);
- StringBuilder sb = new StringBuilder(maxLength);
-
- int length = minLength;
- if (maxLength != minLength) {
- length = length + random.nextInt(maxLength - minLength);
- }
- while (length > 0) {
- sb.append(getRandomChar());
- length--;
- }
- return sb.toString();
- }
-
- /**
- * Returns a word of a length between 1 and 10 characters.
- *
- * @return A work of max length 10
- */
- public String getRandomWord() {
- return getItem(contentDataValues.getWords());
- }
-
- /**
- * Returns a valid word with a length of length
- * characters.
- *
- * @param length
- * maximum length of the word
- * @return a word of a length up to length characters
- */
- public String getRandomWord(int length) {
- return getRandomWord(length, length);
- }
-
- /**
- * Returns a valid word with a length of up to length
- * characters. If the exactLength parameter is set, then the
- * word will be exactly length characters in length.
- *
- * @param length
- * maximum length of the returned string
- * @param exactLength
- * indicates if the word should have a length of
- * length
- * @return a string with a length that matches the specified parameters.
- */
- public String getRandomWord(int length, boolean exactLength) {
- if (exactLength) {
- return getRandomWord(length, length);
- }
- return getRandomWord(0, length);
- }
-
- /**
- * Returns a valid word based on the length range passed in. The length will
- * always be between the min and max length range inclusive.
- *
- * @param minLength minimum length of the word
- * @param maxLength maximum length of the word
- * @return a word of a length between min and max length
- */
- public String getRandomWord(int minLength, int maxLength) {
- validateMinMaxParams(minLength, maxLength);
-
- // special case if we need a single char
- if (maxLength == 1) {
- if (chance(50)) {
- return "a";
- }
- return "I";
- }
-
- String value = null;
-
- // start from random pos and find the first word of the right size
- String[] words = contentDataValues.getWords();
- int pos = random.nextInt(words.length);
- for (int i = 0; i < words.length; i++) {
- int idx = (i + pos) % words.length;
- String test = words[idx];
- if (test.length() >= minLength && test.length() <= maxLength) {
- return test;
- }
- }
- // we haven't a word for this length so generate one
- return getRandomChars(minLength, maxLength);
- }
-
- /**
- *
- * @param chance
- * Chance of a suffix being returned
- * @return
- */
- public String getSuffix(int chance) {
- return getItem(nameDataValues.getSuffixes(), chance);
- }
-
- /**
- * Return a person prefix or null if the odds are too low.
- *
- * @param chance
- * Odds of a prefix being returned
- * @return Prefix string
- */
- public String getPrefix(int chance) {
- return getItem(nameDataValues.getPrefixes(), chance);
- }
-
- /**
- * Returns a string containing a set of numbers with a fixed number of
- * digits
- *
- * @param digits
- * number of digits in the final number
- * @return Random number as a string with a fixed length
- */
- public String getNumberText(int digits) {
- String result = "";
- for (int i = 0; i < digits; i++) {
- result = result + random.nextInt(10);
- }
- return result;
- }
-
- /**
- * Generates a random business name by taking a city name and additing a
- * business onto it.
- *
- * @return A random business name
- */
- public String getBusinessName() {
- return getCity() + " " + getItem(contentDataValues.getBusinessTypes());
- }
-
- /**
- * Generates an email address
- *
- * @return an email address
- */
- public String getEmailAddress() {
- int test = random.nextInt(100);
- String email = "";
- if (test < 50) {
- // name and initial
- email = getFirstName().charAt(0) + getLastName();
- } else {
- // 2 words
- email = getItem(contentDataValues.getWords())
- + getItem(contentDataValues.getWords());
- }
- if (random.nextInt(100) > 80) {
- email = email + random.nextInt(100);
- }
- email = email + "@" + getItem(contentDataValues.getEmailHosts()) + "."
- + getItem(contentDataValues.getTlds());
- return email.toLowerCase();
- }
-
- /**
- * Gives you a true/false based on a probability with a random number
- * generator. Can be used to optionally add elements.
- *
- *
- * if (DataFactory.chance(70)) {
- * // 70% chance of this code being executed
- * }
- *
- *
- * @param chance
- * % chance of returning true
- * @return
- */
- public boolean chance(int chance) {
- return random.nextInt(100) < chance;
- }
-
- public NameDataValues getNameDataValues() {
- return nameDataValues;
- }
-
- /**
- * Call randomize with a seed value to reset the random number generator. By
- * using the same seed over different tests, you will should get the same
- * results out for the same data generation calls.
- *
- * @param seed
- * Seed value to use to generate random numbers
- */
- public void randomize(int seed) {
- random = new Random(seed);
- }
-
- /**
- * Set this to provide your own list of name data values by passing it a
- * class that implements the {@link NameDataValues} interface which just
- * returns the String arrays to use for the test data.
- *
- * @param nameDataValues
- * Object holding the set of data values to use
- */
- public void setNameDataValues(NameDataValues nameDataValues) {
- this.nameDataValues = nameDataValues;
- }
-
- /**
- * Set this to provide your own list of address data values by passing it a
- * class that implements the {@link AddressDataValues} interface which just
- * returns the String arrays to use for the test data.
- *
- * @param addressDataValues
- * Object holding the set of data values to use
- */
- public void setAddressDataValues(AddressDataValues addressDataValues) {
- this.addressDataValues = addressDataValues;
- }
-
- /**
- * Set this to provide your own list of content data values by passing it a
- * class that implements the {@link ContentDataValues} interface which just
- * returns the String arrays to use for the test data.
- *
- * @param contentDataValues
- * Object holding the set of data values to use
- */
- public void setContentDataValues(ContentDataValues contentDataValues) {
- this.contentDataValues = contentDataValues;
- }
-
-}
+package org.fluttercode.datafactory.impl;
+
+/*
+ * Copyright 2011, Andrew M Gibson
+ *
+ * www.andygibson.net
+ *
+ * This file is part of DataFactory.
+ *
+ * DataValve is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * DataValve is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR a PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with DataValve. If not, see .
+ *
+ */
+
+import org.fluttercode.datafactory.AddressDataValues;
+import org.fluttercode.datafactory.ContentDataValues;
+import org.fluttercode.datafactory.NameDataValues;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * Class that provides a number of methods for generating test data through
+ * helper components. These components implement interfaces that provide an
+ * interface to accessing the test data. Components can be replaced with other
+ * components to allow more suitable data to be used.
+ *
+ * @author Andy Gibson, Bart Van Bos
+ */
+
+public final class DataFactory {
+
+ private static Random random = new Random(93285);
+
+ private NameDataValues nameDataValues = new DefaultNameDataValues();
+ private AddressDataValues addressDataValues = new
+ DefaultAddressDataValues();
+ private ContentDataValues contentDataValues = new
+ DefaultContentDataValues();
+
+ /**
+ * Returns a random item from a list of items.
+ *
+ * @param Item type in the list and to return
+ * @param items List of items to choose from
+ * @return Item from the list
+ */
+ public T getItem(List items) {
+ return getItem(items, 100, null);
+ }
+
+ /**
+ * Returns a random item from a list of items or the null depending on the
+ * probability parameter. The probability determines the chance (in %) of
+ * returning an item off the list versus null.
+ *
+ * @param Item type in the list and to return
+ * @param items List of items to choose from
+ * @param probability chance (in %, 100 being guaranteed) of returning an
+ * item from
+ * the list
+ * @return Item from the list or null if the probability test fails.
+ */
+ public T getItem(List items, int probability) {
+ return getItem(items, probability, null);
+ }
+
+ /**
+ * Returns a random item from a list of items or the defaultItem depending
+ * on the probability parameter. The probability determines the chance (in
+ * %) of returning an item off the list versus the default value.
+ *
+ * @param Item type in the list and to return
+ * @param items List of items to choose from
+ * @param probability chance (in %, 100 being guaranteed) of returning an
+ * item from
+ * the list
+ * @param defaultItem value to return if the probability test fails
+ * @return Item from the list or the default value
+ */
+ public T getItem(List items, int probability, T defaultItem) {
+ if (items == null) {
+ throw new IllegalArgumentException("Item list cannot be null");
+ }
+ if (items.isEmpty()) {
+ throw new IllegalArgumentException("Item list cannot be empty");
+ }
+
+ return chance(probability) ? items.get(random.nextInt(items.size()))
+ : defaultItem;
+ }
+
+ /**
+ * Returns a random item from an array of items.
+ *
+ * @param Array item type and the type to return
+ * @param items Array of items to choose from
+ * @return Item from the array
+ */
+ public T getItem(T[] items) {
+ return getItem(items, 100, null);
+ }
+
+ /**
+ * Returns a random item from an array of items or null depending on the
+ * probability parameter. The probability determines the chance (in %) of
+ * returning an item from the array versus null.
+ *
+ * @param Array item type and the type to return
+ * @param items Array of items to choose from
+ * @param probability chance (in %, 100 being guaranteed) of returning an
+ * item from
+ * the array
+ * @return Item from the array or the default value
+ */
+ public T getItem(T[] items, int probability) {
+ return getItem(items, probability, null);
+ }
+
+ /**
+ * Returns a random item from an array of items or the defaultItem depending
+ * on the probability parameter. The probability determines the chance (in
+ * %) of returning an item from the array versus the default value.
+ *
+ * @param Array item type and the type to return
+ * @param items Array of items to choose from
+ * @param probability chance (in %, 100 being guaranteed) of returning an
+ * item from
+ * the array
+ * @param defaultItem value to return if the probability test fails
+ * @return Item from the array or the default value
+ */
+ public T getItem(T[] items, int probability, T defaultItem) {
+ if (items == null) {
+ throw new IllegalArgumentException("Item array cannot be null");
+ }
+ if (items.length == 0) {
+ throw new IllegalArgumentException("Item array cannot be empty");
+ }
+ return chance(probability) ? items[random.nextInt(items.length)]
+ : defaultItem;
+ }
+
+ /**
+ * Get a random first name.
+ *
+ * @return a random first name
+ */
+ public String getFirstName() {
+ return getItem(nameDataValues.getFirstNames());
+ }
+
+ /**
+ * Returns a combination of first and last name values in one string.
+ *
+ * @return a combination of first and last name values
+ */
+ public String getName() {
+ return getItem(nameDataValues.getFirstNames()) + " "
+ + getItem(nameDataValues.getLastNames());
+ }
+
+ /**
+ * Get a random last name.
+ *
+ * @return a random last name
+ */
+ public String getLastName() {
+ return getItem(nameDataValues.getLastNames());
+ }
+
+ /**
+ * Get a random street name.
+ *
+ * @return a random street name
+ */
+ public String getStreetName() {
+ return getItem(addressDataValues.getStreetNames());
+ }
+
+ /**
+ * Get a random street suffix.
+ *
+ * @return a random street suffix
+ */
+ public String getStreetSuffix() {
+ return getItem(addressDataValues.getAddressSuffixes());
+ }
+
+ /**
+ * Generates a random city value.
+ *
+ * @return city as a string
+ */
+ public String getCity() {
+ return getItem(addressDataValues.getCities());
+ }
+
+ /**
+ * Generates an address value consisting of house number, street name and
+ * street suffix. i.e. 543 Larkhill Road.
+ *
+ * @return address as a string
+ */
+ public String getAddress() {
+ int num = 404 + random.nextInt(1400);
+ return num + " " + getStreetName() + " " + getStreetSuffix();
+ }
+
+ /**
+ * Generates line 2 for a street address (usually an Apt. or Suite #).
+ * Returns null if the probabilty test fails.
+ *
+ * @param probability Chance as % of have a value returned instead of null
+ * @return street address line two or null if the probability test fails
+ */
+ public String getAddressLine2(int probability) {
+ return getAddressLine2(probability, null);
+ }
+
+ /**
+ * Generates line 2 for a street address (usually an Apt. or Suite #).
+ * Returns default value if the probability test fails.
+ *
+ * @param probability Chance as % of have a value returned instead of null
+ * @param defaultValue Value to return if the probability test fails
+ * @return street address line two or null if the probability test fails
+ */
+ public String getAddressLine2(int probability, String defaultValue) {
+ return chance(probability) ? getAddressLine2() : defaultValue;
+ }
+
+ /**
+ * Generates line 2 for a street address (usually an Apt. or Suite #).
+ * Returns default value if the probabilty test fails.
+ *
+ * @return street address line 2
+ */
+ public String getAddressLine2() {
+ int test = random.nextInt(100);
+ if (test < 50) {
+ return "Apt #" + 100 + random.nextInt(1000);
+ } else {
+ return "Suite #" + 100 + random.nextInt(1000);
+ }
+ }
+
+ /**
+ * Generates a random country value.
+ *
+ * @return country as a string
+ */
+ public String getCountry() {
+ return getItem(addressDataValues.getCountries());
+ }
+
+ /**
+ * Generates a random country abbreviation value.
+ *
+ * @return country abbreviation as a string
+ */
+ public String getCountryShort() {
+ return getItem(addressDataValues.getCountriesShort());
+ }
+
+ /**
+ * Generates a random nationality value.
+ *
+ * @return nationality as a string
+ */
+ public String getNationality() {
+ return getItem(addressDataValues.getNationalities());
+ }
+
+ /**
+ * Creates a random birthdate within the range of 1955 to 1985.
+ *
+ * @return Date representing a birthdate
+ */
+ public Date getBirthDate() {
+ Date base = new Date(0);
+ return getDate(base, -365 * 15, 365 * 15);
+ }
+
+ /**
+ * Get a random occupation.
+ *
+ * @return a random occupation
+ */
+ public String getOccupation() {
+ return getItem(contentDataValues.getOccupations());
+ }
+
+ /**
+ * Returns a random int value.
+ *
+ * @return random integer number
+ */
+ public int getNumber() {
+ return getNumberBetween(Integer.MIN_VALUE, Integer.MAX_VALUE);
+ }
+
+ /**
+ * Returns a random number between 0 and max.
+ *
+ * @param max Maximum value of result
+ * @return random number no more than max
+ */
+ public int getNumberUpTo(int max) {
+ return getNumberBetween(0, max);
+ }
+
+ /**
+ * Returns a number between min and max.
+ *
+ * @param min minimum value of result
+ * @param max maximum value of result
+ * @return random number within range
+ */
+ public int getNumberBetween(int min, int max) {
+
+ if (max < min) {
+ throw new IllegalArgumentException(String.format(
+ "Minimum must be less than minimum (min=%d, max=%d)", min,
+ max));
+ }
+
+ return min + random.nextInt(max - min);
+ }
+
+ /**
+ * Builds a date from the year, month, day values passed in.
+ *
+ * @param year The year of the final {@link Date} result
+ * @param month The month of the final {@link Date} result (from 1-12)
+ * @param day The day of the final {@link Date} result
+ * @return Date representing the passed in values.
+ */
+ public Date getDate(int year, int month, int day) {
+ Calendar cal = Calendar.getInstance();
+ cal.clear();
+ cal.set(year, month - 1, day, 0, 0, 0);
+ return cal.getTime();
+ }
+
+ /**
+ * Returns a random date which is in the range baseData +
+ * minDaysFromData to baseData +
+ * maxDaysFromData. This method does not alter the time
+ * component and the time is set to the time value of the base date.
+ *
+ * @param baseDate Date to start from
+ * @param minDaysFromDate minimum number of days from the baseDate the
+ * result can be
+ * @param maxDaysFromDate maximum number of days from the baseDate the
+ * result can be
+ * @return a random date
+ */
+ public Date getDate(Date baseDate, int minDaysFromDate,
+ int maxDaysFromDate) {
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(baseDate);
+ int diff = minDaysFromDate
+ + (random.nextInt(maxDaysFromDate - minDaysFromDate));
+ cal.add(Calendar.DATE, diff);
+ return cal.getTime();
+ }
+
+ /**
+ * Returns a random date between two dates. This method will alter the time
+ * component of the dates.
+ *
+ * @param minDate Minimum date that can be returned
+ * @param maxDate Maximum date that can be returned
+ * @return random date between these two dates.
+ */
+ public Date getDateBetween(Date minDate, Date maxDate) {
+ // this can break if seconds is an int
+ long seconds = (maxDate.getTime() - minDate.getTime()) / 1000;
+ seconds = (long) (random.nextDouble() * seconds);
+ Date result = new Date();
+ result.setTime(minDate.getTime() + (seconds * 1000));
+ return result;
+ }
+
+ /**
+ * Returns random text made up of english words with given length.
+ *
+ * @param length length of returned string
+ * @return string made up of actual words with given length
+ */
+ public String getRandomText(int length) {
+ return getRandomText(length, length);
+ }
+
+ /**
+ * Returns random text made up of english words.
+ *
+ * @param minLength minimum length of returned string
+ * @param maxLength maximum length of returned string
+ * @return string of length between min and max length
+ */
+ public String getRandomText(int minLength, int maxLength) {
+ validateMinMaxParams(minLength, maxLength);
+
+ StringBuilder sb = new StringBuilder(maxLength);
+ int length = minLength;
+ if (maxLength != minLength) {
+ length = length + random.nextInt(maxLength - minLength);
+ }
+ while (length > 0) {
+ if (sb.length() != 0) {
+ sb.append(" ");
+ length--;
+ }
+ String word = getRandomWord(length);
+ sb.append(word);
+ length = length - word.length();
+ }
+ return sb.toString();
+
+ }
+
+ private void validateMinMaxParams(int minLength, int maxLength) {
+ if (minLength < 0) {
+ throw new IllegalArgumentException(
+ "Minimum length must be a non-negative number");
+ }
+
+ if (maxLength < 0) {
+ throw new IllegalArgumentException(
+ "Maximum length must be a non-negative number");
+ }
+
+ if (maxLength < minLength) {
+ throw new IllegalArgumentException(
+ String.format(
+ "Minimum length must be less than maximum length " +
+ "(min=%d, max=%d)",
+ minLength, maxLength));
+ }
+ }
+
+ /**
+ * Get a random character.
+ *
+ * @return a random character
+ */
+ public char getRandomChar() {
+ return (char) (random.nextInt(26) + 'a');
+ }
+
+ /**
+ * Return a string containing length random characters.
+ *
+ * @param length number of characters to use in the string
+ * @return a string containing length random characters
+ */
+ public String getRandomChars(int length) {
+ return getRandomChars(length, length);
+ }
+
+ /**
+ * Return a string containing between length random characters.
+ *
+ * @param minLength minimum number of characters to use in the string
+ * @param maxLength maximum number of characters to use in the string
+ * @return a string containing length random characters
+ */
+ public String getRandomChars(int minLength, int maxLength) {
+ validateMinMaxParams(minLength, maxLength);
+ StringBuilder sb = new StringBuilder(maxLength);
+
+ int length = minLength;
+ if (maxLength != minLength) {
+ length = length + random.nextInt(maxLength - minLength);
+ }
+ while (length > 0) {
+ sb.append(getRandomChar());
+ length--;
+ }
+ return sb.toString();
+ }
+
+ /**
+ * Returns a word of a length between 1 and 10 characters.
+ *
+ * @return a work of max length 10
+ */
+ public String getRandomWord() {
+ return getItem(contentDataValues.getWords());
+ }
+
+ /**
+ * Returns a valid word with a length of length
+ * characters.
+ *
+ * @param length maximum length of the word
+ * @return a word of a length up to length characters
+ */
+ public String getRandomWord(int length) {
+ return getRandomWord(length, length);
+ }
+
+ /**
+ * Returns a valid word with a length of up to length
+ * characters. If the exactLength parameter is set, then the
+ * word will be exactly length characters in length.
+ *
+ * @param length maximum length of the returned string
+ * @param exactLength indicates if the word should have a length of
+ * length
+ * @return a string with a length that matches the specified parameters
+ */
+ public String getRandomWord(int length, boolean exactLength) {
+ if (exactLength) {
+ return getRandomWord(length, length);
+ }
+ return getRandomWord(0, length);
+ }
+
+ /**
+ * Returns a valid word based on the length range passed in. The length will
+ * always be between the min and max length range inclusive.
+ *
+ * @param minLength minimum length of the word
+ * @param maxLength maximum length of the word
+ * @return a word of a length between min and max length
+ */
+ public String getRandomWord(int minLength, int maxLength) {
+ validateMinMaxParams(minLength, maxLength);
+
+ // special case if we need a single char
+ if (maxLength == 1) {
+ if (chance(50)) {
+ return "a";
+ }
+ return "I";
+ }
+
+ // start from random pos and find the first word of the right size
+ String[] words = contentDataValues.getWords();
+ int pos = random.nextInt(words.length);
+ for (int i = 0; i < words.length; i++) {
+ int idx = (i + pos) % words.length;
+ String test = words[idx];
+ if (test.length() >= minLength && test.length() <= maxLength) {
+ return test;
+ }
+ }
+ // we haven't a word for this length so generate one
+ return getRandomChars(minLength, maxLength);
+ }
+
+ /**
+ * Get a random name suffix.
+ *
+ * @param chance Chance of a suffix being returned
+ * @return a name suffix
+ */
+ public String getSuffix(int chance) {
+ return getItem(nameDataValues.getSuffixes(), chance);
+ }
+
+ /**
+ * Return a person prefix or null if the odds are too low.
+ *
+ * @param chance Odds of a prefix being returned
+ * @return Prefix string
+ */
+ public String getPrefix(int chance) {
+ return getItem(nameDataValues.getPrefixes(), chance);
+ }
+
+ /**
+ * Returns a string containing a set of numbers with a fixed number of
+ * digits.
+ *
+ * @param digits number of digits in the final number
+ * @return random number as a string with a fixed length
+ */
+ public String getNumberText(int digits) {
+ StringBuffer result = new StringBuffer();
+ for (int i = 0; i < digits; i++) {
+ result.append(random.nextInt(10));
+ }
+ return result.toString();
+ }
+
+ /**
+ * Returns a string containing a set of hexadecimals characters with a
+ * fixed length.
+ *
+ * @param length number of hex chars in the final number
+ * @return random number as a string with a fixed length
+ */
+ public String getHexText(int length) {
+ StringBuffer sb = new StringBuffer();
+ while (sb.length() < length) {
+ sb.append(Integer.toHexString(random.nextInt()));
+ }
+
+ return sb.toString().substring(0, length);
+ }
+
+ /**
+ * Generates a random business name by taking a city name and adding a
+ * business onto it.
+ *
+ * @return a random business name
+ */
+ public String getBusinessName() {
+ return getCity() + " " + getItem(contentDataValues.getBusinessTypes());
+ }
+
+ /**
+ * Generates a random email address.
+ *
+ * @return an email address
+ */
+ public String getEmailAddress() {
+ int test = random.nextInt(100);
+ String email = "";
+ if (test < 50) {
+ // name and initial
+ email = getFirstName().charAt(0) + getLastName();
+ } else {
+ // 2 words
+ email = getItem(contentDataValues.getWords())
+ + getItem(contentDataValues.getWords());
+ }
+ if (random.nextInt(100) > 80) {
+ email = email + random.nextInt(100);
+ }
+ email = email + "@" + getItem(contentDataValues.getEmailHosts()) + "."
+ + getItem(contentDataValues.getTlds());
+ return email.toLowerCase();
+ }
+
+ /**
+ * Gives you a true/false based on a probability with a random number
+ * generator. Can be used to optionally add elements.
+ *
+ *
+ * if (DataFactory.chance(70)) {
+ * // 70% chance of this code being executed
+ * }
+ *
+ *
+ * @param chance % chance of returning true
+ * @return a true/false based on a probability
+ */
+ public boolean chance(int chance) {
+ return random.nextInt(100) < chance;
+ }
+
+ public NameDataValues getNameDataValues() {
+ return nameDataValues;
+ }
+
+ /**
+ * Set this to provide your own list of name data values by passing it a
+ * class that implements the {@link NameDataValues} interface which just
+ * returns the String arrays to use for the test data.
+ *
+ * @param nameDataValues Object holding the set of data values to use
+ */
+ public void setNameDataValues(NameDataValues nameDataValues) {
+ this.nameDataValues = nameDataValues;
+ }
+
+ /**
+ * Call randomize with a seed value to reset the random number generator. By
+ * using the same seed over different tests, you will should get the same
+ * results out for the same data generation calls.
+ *
+ * @param seed Seed value to use to generate random numbers
+ */
+ public void randomize(int seed) {
+ random = new Random(seed);
+ }
+
+ /**
+ * Set this to provide your own list of address data values by passing it a
+ * class that implements the {@link AddressDataValues} interface which just
+ * returns the String arrays to use for the test data.
+ *
+ * @param addressDataValues Object holding the set of data values to use
+ */
+ public void setAddressDataValues(AddressDataValues addressDataValues) {
+ this.addressDataValues = addressDataValues;
+ }
+
+ /**
+ * Set this to provide your own list of content data values by passing it a
+ * class that implements the {@link ContentDataValues} interface which just
+ * returns the String arrays to use for the test data.
+ *
+ * @param contentDataValues Object holding the set of data values to use
+ */
+ public void setContentDataValues(ContentDataValues contentDataValues) {
+ this.contentDataValues = contentDataValues;
+ }
+
+}
diff --git a/src/main/java/org/fluttercode/datafactory/impl/DefaultAddressDataValues.java b/src/main/java/org/fluttercode/datafactory/impl/DefaultAddressDataValues.java
index 6ae758d..fb89b30 100644
--- a/src/main/java/org/fluttercode/datafactory/impl/DefaultAddressDataValues.java
+++ b/src/main/java/org/fluttercode/datafactory/impl/DefaultAddressDataValues.java
@@ -27,354 +27,476 @@
public class DefaultAddressDataValues implements AddressDataValues {
- private static String[] streetNames = { "Aberdeen", "Abington", "Academy",
- "Adair", "Adams", "Adamsville", "Aeryview", "Agines", "Airport",
- "Airwood", "Akron", "Alameda", "Albert", "Albright", "Alburn",
- "Alexis", "Alfred", "Alice", "Alkire", "Allen", "Allison", "Alvin",
- "Ambarassdor", "Amber", "Amhurst", "Amsterdam", "Antigua",
- "Applegate", "Arborwood", "Arcadia", "Arch", "Archer", "Arlington",
- "Armco", "Armstrong", "Arnold", "Arrowhead", "Arthur", "Ashburton",
- "Ashley", "Aspen", "Athena", "Athens", "Atlantic", "Auburn",
- "Austin", "Avalon", "Avon", "Axline", "Ayers", "Babbs", "Back",
- "Bagley", "Bailey", "Baird", "Baker", "Ball", "Ballard", "Ballov",
- "Bank", "Bardith", "Barkey", "Barkley", "Barnes", "Barr", "Basil",
- "Basin", "Bateman", "Baughman", "Beam", "Beard", "Beatty",
- "Beauty", "Beech", "Beechcreek", "Beechmont", "Beeline", "Belden",
- "Bell", "Bellflower", "Bellview", "Bellwood", "Belmont",
- "Benjamin", "Bennett", "Benwood", "Berkley", "Best", "Bethesda",
- "Beulah", "Beverly", "Bexley", "Billingsley", "Bissett", "Bisson",
- "Black", "Blackburn", "Blackrun", "Blackstone", "Blackwood",
- "Blaine", "Blalock", "Blandy", "Blennerhassett", "Blocksom",
- "Bloomfield", "Blossom", "Blue", "Bluff", "Bobby", "Bodmann",
- "Boggs", "Bolen", "Bolton", "Bonaparte", "Bonifield", "Bonnair",
- "Bonsels", "Boston", "Bottom", "Bowman", "Bowser", "Bowtown",
- "Bradington", "Branch", "Brandywine", "Breezewood", "Brewers",
- "Briarbush", "Briarcliff", "Briarleigh", "Brick", "Bridge",
- "Brighton", "Brill", "Bristol", "Britton", "Broad", "Broadvue",
- "Broadway", "Brookfield", "Brookover", "Brookside", "Brown",
- "Browns", "Bryan", "Buck", "Buckeye", "Buckingham", "Burbank",
- "Burlington", "Burnell", "Burnet", "Burns", "Busch", "Butler",
- "Butter", "Buttermilk", "Byrne", "Caleb", "Calvert", "Cambon",
- "Cambridge", "Camden", "Camp", "Campbell", "Canal", "Candlestick",
- "Canewood", "Canfield", "Cannelville", "Canneville", "Cannon",
- "Carbondale", "Carey", "Carl", "Carlisle", "Carlton", "Carlysle",
- "Carmen", "Carol", "Carpenter", "Carroll", "Carson", "Carver",
- "Cass", "Caston", "Castor", "Catalpa", "Cathy", "Catt", "Cattail",
- "Cattle", "Cecil", "Cedar", "Cedarhurst", "Celina", "Cementary",
- "Cemetery", "Center", "Central", "Ceramic", "Chalfant",
- "Chandlersville", "Chapman", "Chardon", "Charlene", "Charles",
- "Chase", "Chatauqua", "Chatham", "Cheney", "Cherlick", "Cherry",
- "Chesapeake", "Chester", "Chesterfield", "Chestnut", "Chevington",
- "Chewelah", "Childrens", "Chillicothe", "China", "Choctaw",
- "Christopher", "Christy", "Church", "Churchfield", "Circle",
- "Circleville", "Clairbourne", "Claire", "Clarence", "Clarendon",
- "Clarice", "Clark", "Clary", "Clay", "Claysville", "Clearcreek",
- "Clearey", "Clearport", "Clearview", "Cleve", "Cleveland",
- "Clevenger", "Cliffrock", "Cliffwood", "Clinton", "Clover",
- "Cloveridge", "Clyde", "Coburg", "Cochran", "Codell", "Cohen",
- "Colburn", "College", "Collingwood", "Collins", "Colony",
- "Columbia", "Columbus", "Comin", "Commissioner", "Commonwealth",
- "Conn", "Convers", "Coopermill", "Cooperriders", "Cooperwell",
- "Cornell", "Cornstill", "Coronado", "Corvus", "Corwin", "Cosgrave",
- "Coshocton", "Cottage", "Countiss", "Countryside", "Court", "Cove",
- "Coventry", "Cowden", "Cranfield", "Crawford", "Creamery",
- "Creedmoor", "Creekview", "Crestway", "Crock", "Crooks", "Crosier",
- "Cross", "Crossgate", "Crow", "Crown", "Culbertson", "Curtis",
- "Dads", "Daisy", "Dale", "Dallman", "Dana", "Daniels", "Danville",
- "Darcie", "Darla", "Darlington", "Date", "Davis", "Dawnlight",
- "Dawson", "Dearborn", "December", "Decrow", "Deer", "Deerfield",
- "Deerpath", "Deewood", "Dellwood", "Delmont", "Delwood", "Denbigh",
- "Denlinger", "Denmark", "Denning", "Dennis", "Denny", "Depot",
- "Detroit", "Devin", "Devlin", "Dewey", "Diagonal", "Dickinson",
- "Dickson", "Dietz", "Dillon", "Discovery", "Dixie", "Dixon",
- "Dogwood", "Dona", "Donald", "Dooleys", "Dorothy", "Doru",
- "Douglas", "Dowling", "Downard", "Downing", "Dragoo", "Dresden",
- "Dryden", "Dundee", "Dunham", "Dunzweiler", "Durban", "Duvall",
- "Dyer", "East", "Easter", "Eastern", "Eastfield", "Eastlawn",
- "Eastman", "Eastmoor", "Eastport", "Eastview", "Eastward",
- "Eastwood", "Eaton", "Echo", "Edalbert", "Eddie", "Eddy", "Ederer",
- "Edgewater", "Edison", "Edna", "Edward", "Edwards", "Eldwood",
- "Elfin", "Elida", "Elizabeth", "Ellen", "Eller", "Ellis",
- "Ellsworth", "Elmville", "Emily", "Englewood", "Enon", "Eppley",
- "Erie", "Erin", "Essex", "Euclid", "Evans", "Evansport", "Evelyn",
- "Evergreen", "Ewing", "Exchange", "Extension", "Fair", "Fairall",
- "Fairbanks", "Faircrest", "Fairmont", "Fairmount", "Fairview",
- "Fairway", "Fallsburg", "Falt", "Farson", "Fawn", "Faye",
- "Fayette", "Federal", "Ferncliff", "Fernstone", "Ferrell", "Fess",
- "Field", "Findley", "First", "Fishers", "Fitzgerald", "Fleek",
- "Fleming", "Flint", "Flintridge", "Flintwood", "Florence",
- "Forest", "Forry", "Foster", "Founds", "Fountain", "Fowlers",
- "Foxfire", "Frame", "Francis", "Franklin", "Frazeysburg",
- "Freeborn", "Freedom", "Frick", "Friendship", "Frisco", "Fritter",
- "Front", "Frontier", "Fulbrook", "Fulton", "Fultonrose",
- "Galbraith", "Galena", "Galigher", "Galighner", "Gallia", "Galway",
- "Gant", "Gantz", "Garden", "Gardenway", "Garey", "Garfield",
- "Garner", "Garrell", "Garrett", "Garst", "Gaslight", "Gayla",
- "Genessee", "George", "Gest", "Gibbard", "Gifford", "Gilbert",
- "Glade", "Glena", "Glenaven", "Glendale", "Glenhaven", "Glenn",
- "Glenwillow", "Glenwood", "Glessner", "Goddard", "Gomber",
- "Goosecreek", "Gordon", "Gorrell", "Gorsuch", "Goslen", "Grace",
- "Graffis", "Grand", "Grandview", "Granger", "Grant", "Granville",
- "Gratiot-Newark", "Gray", "Graylock", "Green", "Greenbriar",
- "Greenbrier", "Greengold", "Greenhouse", "Greenville", "Greenwood",
- "Greiner", "Grieves", "Grove", "Guava", "Haessler", "Hale", "Hall",
- "Hamburg", "Hamilton", "Hamline", "Hampton", "Hanawalt", "Hannah",
- "Hannawalt", "Hanover", "Hanson", "Harbor", "Hardesty", "Harding",
- "Hardy", "Harkers", "Harlan", "Harmon", "Harmony", "Harper",
- "Harris", "Harrison", "Harshman", "Hartford", "Hartman",
- "Hartville", "Hartwell", "Harvey", "Haught", "Hawk", "Hawkes",
- "Hayes", "Hazel", "Hazlett", "Heath", "Heber", "Hebron", "Heckak",
- "Heckel", "Hedgewood", "Helene", "Helpar", "Hendershot", "Henry",
- "Heritage", "Herron", "Hewitt", "Hickam", "Hickman", "Hickory",
- "Hicks", "Hideaway", "Higgins", "High", "Highland", "Highview",
- "Hilbish", "Hildreth", "Hill", "Hinman", "Hogans", "Hoge",
- "Hoiles", "Holbein", "Holbert", "Holliday", "Holmes", "Home",
- "Homeless", "Homer", "Homes", "Homestead", "Homewood", "Hoover",
- "Hopewell", "Hospital", "Howard", "Howell", "Hudson", "Huey",
- "Hughes", "Humphrey", "Hunt", "Hunter", "Hunterdon", "Huntington",
- "Idaho", "Idlewood", "Ildewood", "Iliamna", "Imlay",
- "Independence", "Indiana", "Indianola", "Inwood", "Ireland",
- "Iron", "Island", "Jackson", "James", "Jamestown", "Jannett",
- "Jefferson", "Jenkins", "Jensen", "Jessamine", "Jewett", "Jewitt",
- "Jody", "John", "Johnson", "Johnstown", "Jonathan", "Jones",
- "Jordan", "Joyce", "Juanita", "Julian", "Juniper", "Kahler",
- "Katherine", "Kauffman", "Kearns", "Keen", "Kegs", "Kelly",
- "Kennedy", "Kenny", "Kensington", "Kenton", "Kerri", "Kettering",
- "Kevrob", "Keystone", "Kibler", "Kimes", "King", "Kings",
- "Kingsley", "Kingswood", "Kinsman", "Kinzel", "Kirk", "Klotz",
- "Knipe", "Knox", "Kopchak", "Kossuch", "Lacon", "Lafayette",
- "Lagonda", "Lake", "Lakeside", "Lakewood", "Lambert", "Lancaster",
- "Lancaster-Chillicoth", "Lander", "Laneway", "Langan", "Lark",
- "Larkspur", "Larry", "Larzelere", "Lasalle", "Lashley", "Laurel",
- "Lavona", "Lawhead", "Lawn", "Lawndale", "Lawson", "Lawyers",
- "Layton", "Lazelere", "Lectric", "Ledbetter", "Leedom", "Leffler",
- "Lefter", "Legion", "Lenox", "Lent", "Leon", "Leonard",
- "Leonardville", "Leslie", "Lesslar", "Lewis", "Lexington",
- "Liberty", "Licking", "Lillian", "Lima", "Limestone", "Lincoln",
- "Lincolnway", "Lindale", "Lindbergh", "Linden", "Lindsay", "Linn",
- "Linwood", "Lisa", "Lithopolis", "Livingston", "Lock", "Locksmith",
- "Locust", "Lodge", "Lomita", "London", "Long", "Lookout", "Lost",
- "Loudon", "Louise", "Lovers", "Lubring", "Lucas", "Lucasburg",
- "Luck", "Lundgren", "Lutz", "Macedonia", "Mackenzie", "Madison",
- "Mailey", "Main", "Malibu", "Manning", "Manor", "Mansfield",
- "Maple", "Maplecraft", "Mapleview", "Maplewood", "Marchmont",
- "Marietta", "Marion", "Mark", "Market", "Marketing", "Marlo",
- "Marne", "Marsha", "Marshdale", "Martin", "Martinel", "Mary",
- "Mast", "Matthews", "Mayfair", "Maysville", "Mcarthur", "Mccarley",
- "Mccaslin", "Mcclain", "Mcclure", "Mcconnell", "Mcconnellsville",
- "Mcdaniel", "Mcdonald", "Mcfarland", "Mcintire", "Mckaig",
- "Mckeever", "Mckinley", "Mcmillan", "Mcowens", "Mead", "Meadow",
- "Meadowbrook", "Meadowhaven", "Meadowood", "Mechanicsburg", "Meek",
- "Melick", "Melrose", "Memory", "Meridian", "Meriwether", "Merlin",
- "Merriam", "Merrick", "Merrimac", "Merryhill", "Mershon",
- "Messimer", "Metro", "Miami", "Michael", "Michigan", "Middle",
- "Middlefork", "Middleton", "Midway", "Milagra", "Military", "Mill",
- "Miller", "Millers", "Milton", "Miner", "Missouri", "Mitchell",
- "Moccasin", "Mock", "Mohawk", "Mollysrock", "Mona", "Monroe",
- "Montague", "Montgomery", "Moonlight", "Moore", "Moorehead",
- "Moores", "Moorewood", "Morgan", "Morgantown", "Morganville",
- "Morningstar", "Morrison", "Morse", "Mound", "Moxadarla",
- "Moxahala", "Muirwood", "Mulberry", "Mundy", "Munson", "Murray",
- "Muskingum", "Musselman", "Myrtle", "Nancy", "Narrows", "National",
- "Navy", "Neal", "Neil", "Nelson", "Neptune", "Newark", "Newgate",
- "Newlon", "Newman", "Newport", "Nichalas", "Nolan", "None",
- "Nor-Bixbey", "Nora", "Norfield", "Normandy", "Norris", "North",
- "Northcrest", "Northland", "Norwich", "Norwood", "Nottingham",
- "Nottinghamshire", "Nugent", "Oakland", "Oakwood", "Obetz",
- "Odell", "Ohio", "Okey", "Olive", "Olney", "Ontario", "Opera",
- "Orange", "Orchard", "Orders", "Orton", "Osage", "Osceola",
- "Otterbein", "Overlook", "Owens", "Oxford", "Paint", "Palamino",
- "Pallas", "Palmer", "Palmeraway", "Palmwood", "Palomino",
- "Paragon", "Parish", "Park", "Parker", "Parks", "Parkview",
- "Parkway", "Parkwood", "Parliament", "Parry", "Partridge", "Patch",
- "Patricia", "Peachblow", "Pear", "Pearl", "Pembroke", "Penn",
- "Penney", "Pennisula", "Pennsylvania", "Penrick", "Perdue",
- "Perine", "Perkins", "Perry", "Perryton", "Pershing", "Peters",
- "Petersburg", "Peterson", "Pfeifer", "Pfeiffer", "Philadelphia",
- "Phillips", "Pickwick", "Pierce", "Pike", "Pine", "Pinecrest",
- "Pinetown", "Pineview", "Pinewood", "Pinkerton", "Pinkley",
- "Pioneer", "Piper", "Plainfield", "Plantation", "Playford",
- "Pleasant", "Pleasantview", "Pleasantville", "Pointe", "Poplar",
- "Portage", "Porter", "Portland", "Potters", "Potts", "Powell",
- "Prame", "Pratt", "Price", "Princeton", "Prior", "Prison",
- "Promway", "Prospect", "Pryor", "Public", "Purdy", "Purvis",
- "Putnam", "Quarry", "Quick", "Quincy", "Quinlan", "Race", "Radnor",
- "Raiders", "Railroad", "Rains", "Raintree", "Range", "Rankin",
- "Ransbottom", "Raven", "Ravenwood", "Rawson", "Reading", "Ream",
- "Redman", "Redondo", "Reed", "Reeves", "Rehl", "Restless",
- "Reynolds", "Rhonda", "Rice", "Richards", "Richey", "Richman",
- "Richmond", "Richvale", "Richwood", "Rider", "Ridge", "Ridgefield",
- "Ridgeland", "Ridgeview", "Ridgewood", "Rigby", "Riggin", "Rigny",
- "Ritchey", "Ritenour", "River", "Riverside", "Riverview",
- "Roadayle", "Robertson", "Robin", "Robinson", "Robinwood", "Rock",
- "Rockville", "Roemer", "Roland", "Rollins", "Rondayle",
- "Roosevelt", "Roper", "Rose", "Roseville", "Rosewood", "Rowland",
- "Royalton", "Royma", "Rucker", "Runyan", "Russell", "Rustle",
- "Ruth", "Ryan", "Salem", "Salgarber", "Sally", "Saltzgaber",
- "Sampson", "Samuel", "Sand", "Sandhurst", "Sandra", "Sandusky",
- "Sandvik", "Santoy", "Sarah", "Scarborough", "Scenic", "Schaum",
- "Schneider", "Scholl", "School", "Schuler", "Schultz", "Schwallie",
- "Scott", "Scout", "Sealover", "Seaman", "Seborn", "Sells",
- "Selsam", "Senator", "Seroco", "Sevall", "Severt", "Seward",
- "Seymore", "Shady", "Shagbark", "Shaliman", "Shandon", "Sharon",
- "Sharonwood", "Shasta", "Shaw", "Shawnee", "Sheandoah", "Sheila",
- "Shellhart", "Shenandoah", "Shepherd", "Sherborne", "Sheridan",
- "Sherman", "Sherwood", "Shindern", "Shinick", "Shinnick",
- "Shiplett", "Shoop", "Shore", "Short", "Shumaker", "Sibley",
- "Silliman", "Silmore", "Skyline", "Skyview", "Slack", "Smithfield",
- "Smithwood", "Snoke", "Snyder", "Sofin", "Solida", "Somers",
- "Somerset", "Sonora", "Souder", "South", "Southard", "Southeast",
- "Southern", "Southward", "Spangler", "Sparling", "Spellman",
- "Spence", "Spencer", "Spielbusch", "Spratt", "Spring",
- "Springdale", "Spruce", "Spry", "Stacy", "Stalder", "Stalling",
- "Stanley", "Stansberry", "Stanton", "Stanway", "State", "Steele",
- "Stein", "Stephens", "Stevens", "Stevy", "Stewart", "Stiers",
- "Stillmeadow", "Stillwell", "Stine", "Stiver", "Stokely", "Stone",
- "Stonecreek", "Stormont", "Stout", "Stoutsville", "Strawberry",
- "Street", "Sturtz", "Stygler", "Sudbury", "Sugargrove",
- "Sugartree", "Summit", "Sundale", "Sunflower", "Sunkel", "Sunray",
- "Sunrise", "Sunset", "Superior", "Surger", "Swans", "Swartz",
- "Swingle", "Sycamore", "Talford", "Talley", "Tamarron", "Tammy",
- "Tannehill", "Tarkman", "Taylor", "Teakwood", "Tedrick", "Temple",
- "Terrace", "Terry", "Theobald", "Third", "Thomas", "Thompson",
- "Thorn", "Thornberry", "Thornhill", "Thurman", "Tiffany",
- "Tileston", "Titus", "Todd", "Toni", "Towers", "Town", "Trabue",
- "Traci", "Traco", "Tranquility", "Treehouse", "Tremont", "Trend",
- "Tridelphia", "Tupedo", "Turner", "Turtle", "Tuscarawas",
- "Twimenhill", "Tyman", "Underwood", "Uneeda", "Union", "Unknown",
- "Valley", "Vance", "Vaughn", "Venture", "Venus", "Vernon",
- "Vetter", "Vicki", "Victory", "Villa", "Village", "Vine", "Vinsel",
- "Virginia", "Vista", "Vroom", "Wabash", "Wacker", "Wakatomika",
- "Waldolf", "Walker", "Wall", "Wallwork", "Walnut", "Walter",
- "Waltham", "Ward", "Wargo", "Warner", "Warners", "Warren",
- "Warwick", "Washington", "Water", "Waters", "Watkins", "Watson",
- "Watts", "Wayne", "Weaver", "Webb", "Webster", "Wedgewood",
- "Weedon", "Weller", "Wells", "Wentz", "Wessex", "West",
- "Westbourne", "Western", "Westmoor", "Westmore", "Westwood",
- "Wetsell", "Whaley", "Wheatland", "Wheelabout", "Wheeler",
- "Wheeling", "Whipple", "Whites", "Whitman", "Wilhelm", "Wilkins",
- "Williams", "Willis", "Willow", "Wilmer", "Wilmington", "Wilshire",
- "Wilson", "Winding", "Windmill", "Windsong", "Winfield",
- "Winlwood", "Winter", "Winton", "Wise", "Wisteria", "Wogan",
- "Wolfe", "Wolford", "Woodberry", "Woodbrook", "Woodland",
- "Woodlawn", "Woolper", "Workman", "Wortman", "Wrexham", "Yale",
- "Yingling", "Yost", "Young", "Zane", "Zanesville", "Zella"
+ private static String[] streetNames = {"Aberdeen", "Abington", "Academy",
+ "Adair", "Adams", "Adamsville", "Aeryview", "Agines", "Airport",
+ "Airwood", "Akron", "Alameda", "Albert", "Albright", "Alburn",
+ "Alexis", "Alfred", "Alice", "Alkire", "Allen", "Allison", "Alvin",
+ "Ambarassdor", "Amber", "Amhurst", "Amsterdam", "Antigua",
+ "Applegate", "Arborwood", "Arcadia", "Arch", "Archer", "Arlington",
+ "Armco", "Armstrong", "Arnold", "Arrowhead", "Arthur", "Ashburton",
+ "Ashley", "Aspen", "Athena", "Athens", "Atlantic", "Auburn",
+ "Austin", "Avalon", "Avon", "Axline", "Ayers", "Babbs", "Back",
+ "Bagley", "Bailey", "Baird", "Baker", "Ball", "Ballard", "Ballov",
+ "Bank", "Bardith", "Barkey", "Barkley", "Barnes", "Barr", "Basil",
+ "Basin", "Bateman", "Baughman", "Beam", "Beard", "Beatty",
+ "Beauty", "Beech", "Beechcreek", "Beechmont", "Beeline", "Belden",
+ "Bell", "Bellflower", "Bellview", "Bellwood", "Belmont",
+ "Benjamin", "Bennett", "Benwood", "Berkley", "Best", "Bethesda",
+ "Beulah", "Beverly", "Bexley", "Billingsley", "Bissett", "Bisson",
+ "Black", "Blackburn", "Blackrun", "Blackstone", "Blackwood",
+ "Blaine", "Blalock", "Blandy", "Blennerhassett", "Blocksom",
+ "Bloomfield", "Blossom", "Blue", "Bluff", "Bobby", "Bodmann",
+ "Boggs", "Bolen", "Bolton", "Bonaparte", "Bonifield", "Bonnair",
+ "Bonsels", "Boston", "Bottom", "Bowman", "Bowser", "Bowtown",
+ "Bradington", "Branch", "Brandywine", "Breezewood", "Brewers",
+ "Briarbush", "Briarcliff", "Briarleigh", "Brick", "Bridge",
+ "Brighton", "Brill", "Bristol", "Britton", "Broad", "Broadvue",
+ "Broadway", "Brookfield", "Brookover", "Brookside", "Brown",
+ "Browns", "Bryan", "Buck", "Buckeye", "Buckingham", "Burbank",
+ "Burlington", "Burnell", "Burnet", "Burns", "Busch", "Butler",
+ "Butter", "Buttermilk", "Byrne", "Caleb", "Calvert", "Cambon",
+ "Cambridge", "Camden", "Camp", "Campbell", "Canal", "Candlestick",
+ "Canewood", "Canfield", "Cannelville", "Canneville", "Cannon",
+ "Carbondale", "Carey", "Carl", "Carlisle", "Carlton", "Carlysle",
+ "Carmen", "Carol", "Carpenter", "Carroll", "Carson", "Carver",
+ "Cass", "Caston", "Castor", "Catalpa", "Cathy", "Catt", "Cattail",
+ "Cattle", "Cecil", "Cedar", "Cedarhurst", "Celina", "Cementary",
+ "Cemetery", "Center", "Central", "Ceramic", "Chalfant",
+ "Chandlersville", "Chapman", "Chardon", "Charlene", "Charles",
+ "Chase", "Chatauqua", "Chatham", "Cheney", "Cherlick", "Cherry",
+ "Chesapeake", "Chester", "Chesterfield", "Chestnut", "Chevington",
+ "Chewelah", "Childrens", "Chillicothe", "China", "Choctaw",
+ "Christopher", "Christy", "Church", "Churchfield", "Circle",
+ "Circleville", "Clairbourne", "Claire", "Clarence", "Clarendon",
+ "Clarice", "Clark", "Clary", "Clay", "Claysville", "Clearcreek",
+ "Clearey", "Clearport", "Clearview", "Cleve", "Cleveland",
+ "Clevenger", "Cliffrock", "Cliffwood", "Clinton", "Clover",
+ "Cloveridge", "Clyde", "Coburg", "Cochran", "Codell", "Cohen",
+ "Colburn", "College", "Collingwood", "Collins", "Colony",
+ "Columbia", "Columbus", "Comin", "Commissioner", "Commonwealth",
+ "Conn", "Convers", "Coopermill", "Cooperriders", "Cooperwell",
+ "Cornell", "Cornstill", "Coronado", "Corvus", "Corwin", "Cosgrave",
+ "Coshocton", "Cottage", "Countiss", "Countryside", "Court", "Cove",
+ "Coventry", "Cowden", "Cranfield", "Crawford", "Creamery",
+ "Creedmoor", "Creekview", "Crestway", "Crock", "Crooks", "Crosier",
+ "Cross", "Crossgate", "Crow", "Crown", "Culbertson", "Curtis",
+ "Dads", "Daisy", "Dale", "Dallman", "Dana", "Daniels", "Danville",
+ "Darcie", "Darla", "Darlington", "Date", "Davis", "Dawnlight",
+ "Dawson", "Dearborn", "December", "Decrow", "Deer", "Deerfield",
+ "Deerpath", "Deewood", "Dellwood", "Delmont", "Delwood", "Denbigh",
+ "Denlinger", "Denmark", "Denning", "Dennis", "Denny", "Depot",
+ "Detroit", "Devin", "Devlin", "Dewey", "Diagonal", "Dickinson",
+ "Dickson", "Dietz", "Dillon", "Discovery", "Dixie", "Dixon",
+ "Dogwood", "Dona", "Donald", "Dooleys", "Dorothy", "Doru",
+ "Douglas", "Dowling", "Downard", "Downing", "Dragoo", "Dresden",
+ "Dryden", "Dundee", "Dunham", "Dunzweiler", "Durban", "Duvall",
+ "Dyer", "East", "Easter", "Eastern", "Eastfield", "Eastlawn",
+ "Eastman", "Eastmoor", "Eastport", "Eastview", "Eastward",
+ "Eastwood", "Eaton", "Echo", "Edalbert", "Eddie", "Eddy", "Ederer",
+ "Edgewater", "Edison", "Edna", "Edward", "Edwards", "Eldwood",
+ "Elfin", "Elida", "Elizabeth", "Ellen", "Eller", "Ellis",
+ "Ellsworth", "Elmville", "Emily", "Englewood", "Enon", "Eppley",
+ "Erie", "Erin", "Essex", "Euclid", "Evans", "Evansport", "Evelyn",
+ "Evergreen", "Ewing", "Exchange", "Extension", "Fair", "Fairall",
+ "Fairbanks", "Faircrest", "Fairmont", "Fairmount", "Fairview",
+ "Fairway", "Fallsburg", "Falt", "Farson", "Fawn", "Faye",
+ "Fayette", "Federal", "Ferncliff", "Fernstone", "Ferrell", "Fess",
+ "Field", "Findley", "First", "Fishers", "Fitzgerald", "Fleek",
+ "Fleming", "Flint", "Flintridge", "Flintwood", "Florence",
+ "Forest", "Forry", "Foster", "Founds", "Fountain", "Fowlers",
+ "Foxfire", "Frame", "Francis", "Franklin", "Frazeysburg",
+ "Freeborn", "Freedom", "Frick", "Friendship", "Frisco", "Fritter",
+ "Front", "Frontier", "Fulbrook", "Fulton", "Fultonrose",
+ "Galbraith", "Galena", "Galigher", "Galighner", "Gallia", "Galway",
+ "Gant", "Gantz", "Garden", "Gardenway", "Garey", "Garfield",
+ "Garner", "Garrell", "Garrett", "Garst", "Gaslight", "Gayla",
+ "Genessee", "George", "Gest", "Gibbard", "Gifford", "Gilbert",
+ "Glade", "Glena", "Glenaven", "Glendale", "Glenhaven", "Glenn",
+ "Glenwillow", "Glenwood", "Glessner", "Goddard", "Gomber",
+ "Goosecreek", "Gordon", "Gorrell", "Gorsuch", "Goslen", "Grace",
+ "Graffis", "Grand", "Grandview", "Granger", "Grant", "Granville",
+ "Gratiot-Newark", "Gray", "Graylock", "Green", "Greenbriar",
+ "Greenbrier", "Greengold", "Greenhouse", "Greenville", "Greenwood",
+ "Greiner", "Grieves", "Grove", "Guava", "Haessler", "Hale", "Hall",
+ "Hamburg", "Hamilton", "Hamline", "Hampton", "Hanawalt", "Hannah",
+ "Hannawalt", "Hanover", "Hanson", "Harbor", "Hardesty", "Harding",
+ "Hardy", "Harkers", "Harlan", "Harmon", "Harmony", "Harper",
+ "Harris", "Harrison", "Harshman", "Hartford", "Hartman",
+ "Hartville", "Hartwell", "Harvey", "Haught", "Hawk", "Hawkes",
+ "Hayes", "Hazel", "Hazlett", "Heath", "Heber", "Hebron", "Heckak",
+ "Heckel", "Hedgewood", "Helene", "Helpar", "Hendershot", "Henry",
+ "Heritage", "Herron", "Hewitt", "Hickam", "Hickman", "Hickory",
+ "Hicks", "Hideaway", "Higgins", "High", "Highland", "Highview",
+ "Hilbish", "Hildreth", "Hill", "Hinman", "Hogans", "Hoge",
+ "Hoiles", "Holbein", "Holbert", "Holliday", "Holmes", "Home",
+ "Homeless", "Homer", "Homes", "Homestead", "Homewood", "Hoover",
+ "Hopewell", "Hospital", "Howard", "Howell", "Hudson", "Huey",
+ "Hughes", "Humphrey", "Hunt", "Hunter", "Hunterdon", "Huntington",
+ "Idaho", "Idlewood", "Ildewood", "Iliamna", "Imlay",
+ "Independence", "Indiana", "Indianola", "Inwood", "Ireland",
+ "Iron", "Island", "Jackson", "James", "Jamestown", "Jannett",
+ "Jefferson", "Jenkins", "Jensen", "Jessamine", "Jewett", "Jewitt",
+ "Jody", "John", "Johnson", "Johnstown", "Jonathan", "Jones",
+ "Jordan", "Joyce", "Juanita", "Julian", "Juniper", "Kahler",
+ "Katherine", "Kauffman", "Kearns", "Keen", "Kegs", "Kelly",
+ "Kennedy", "Kenny", "Kensington", "Kenton", "Kerri", "Kettering",
+ "Kevrob", "Keystone", "Kibler", "Kimes", "King", "Kings",
+ "Kingsley", "Kingswood", "Kinsman", "Kinzel", "Kirk", "Klotz",
+ "Knipe", "Knox", "Kopchak", "Kossuch", "Lacon", "Lafayette",
+ "Lagonda", "Lake", "Lakeside", "Lakewood", "Lambert", "Lancaster",
+ "Lancaster-Chillicoth", "Lander", "Laneway", "Langan", "Lark",
+ "Larkspur", "Larry", "Larzelere", "Lasalle", "Lashley", "Laurel",
+ "Lavona", "Lawhead", "Lawn", "Lawndale", "Lawson", "Lawyers",
+ "Layton", "Lazelere", "Lectric", "Ledbetter", "Leedom", "Leffler",
+ "Lefter", "Legion", "Lenox", "Lent", "Leon", "Leonard",
+ "Leonardville", "Leslie", "Lesslar", "Lewis", "Lexington",
+ "Liberty", "Licking", "Lillian", "Lima", "Limestone", "Lincoln",
+ "Lincolnway", "Lindale", "Lindbergh", "Linden", "Lindsay", "Linn",
+ "Linwood", "Lisa", "Lithopolis", "Livingston", "Lock", "Locksmith",
+ "Locust", "Lodge", "Lomita", "London", "Long", "Lookout", "Lost",
+ "Loudon", "Louise", "Lovers", "Lubring", "Lucas", "Lucasburg",
+ "Luck", "Lundgren", "Lutz", "Macedonia", "Mackenzie", "Madison",
+ "Mailey", "Main", "Malibu", "Manning", "Manor", "Mansfield",
+ "Maple", "Maplecraft", "Mapleview", "Maplewood", "Marchmont",
+ "Marietta", "Marion", "Mark", "Market", "Marketing", "Marlo",
+ "Marne", "Marsha", "Marshdale", "Martin", "Martinel", "Mary",
+ "Mast", "Matthews", "Mayfair", "Maysville", "Mcarthur", "Mccarley",
+ "Mccaslin", "Mcclain", "Mcclure", "Mcconnell", "Mcconnellsville",
+ "Mcdaniel", "Mcdonald", "Mcfarland", "Mcintire", "Mckaig",
+ "Mckeever", "Mckinley", "Mcmillan", "Mcowens", "Mead", "Meadow",
+ "Meadowbrook", "Meadowhaven", "Meadowood", "Mechanicsburg", "Meek",
+ "Melick", "Melrose", "Memory", "Meridian", "Meriwether", "Merlin",
+ "Merriam", "Merrick", "Merrimac", "Merryhill", "Mershon",
+ "Messimer", "Metro", "Miami", "Michael", "Michigan", "Middle",
+ "Middlefork", "Middleton", "Midway", "Milagra", "Military", "Mill",
+ "Miller", "Millers", "Milton", "Miner", "Missouri", "Mitchell",
+ "Moccasin", "Mock", "Mohawk", "Mollysrock", "Mona", "Monroe",
+ "Montague", "Montgomery", "Moonlight", "Moore", "Moorehead",
+ "Moores", "Moorewood", "Morgan", "Morgantown", "Morganville",
+ "Morningstar", "Morrison", "Morse", "Mound", "Moxadarla",
+ "Moxahala", "Muirwood", "Mulberry", "Mundy", "Munson", "Murray",
+ "Muskingum", "Musselman", "Myrtle", "Nancy", "Narrows", "National",
+ "Navy", "Neal", "Neil", "Nelson", "Neptune", "Newark", "Newgate",
+ "Newlon", "Newman", "Newport", "Nichalas", "Nolan", "None",
+ "Nor-Bixbey", "Nora", "Norfield", "Normandy", "Norris", "North",
+ "Northcrest", "Northland", "Norwich", "Norwood", "Nottingham",
+ "Nottinghamshire", "Nugent", "Oakland", "Oakwood", "Obetz",
+ "Odell", "Ohio", "Okey", "Olive", "Olney", "Ontario", "Opera",
+ "Orange", "Orchard", "Orders", "Orton", "Osage", "Osceola",
+ "Otterbein", "Overlook", "Owens", "Oxford", "Paint", "Palamino",
+ "Pallas", "Palmer", "Palmeraway", "Palmwood", "Palomino",
+ "Paragon", "Parish", "Park", "Parker", "Parks", "Parkview",
+ "Parkway", "Parkwood", "Parliament", "Parry", "Partridge", "Patch",
+ "Patricia", "Peachblow", "Pear", "Pearl", "Pembroke", "Penn",
+ "Penney", "Pennisula", "Pennsylvania", "Penrick", "Perdue",
+ "Perine", "Perkins", "Perry", "Perryton", "Pershing", "Peters",
+ "Petersburg", "Peterson", "Pfeifer", "Pfeiffer", "Philadelphia",
+ "Phillips", "Pickwick", "Pierce", "Pike", "Pine", "Pinecrest",
+ "Pinetown", "Pineview", "Pinewood", "Pinkerton", "Pinkley",
+ "Pioneer", "Piper", "Plainfield", "Plantation", "Playford",
+ "Pleasant", "Pleasantview", "Pleasantville", "Pointe", "Poplar",
+ "Portage", "Porter", "Portland", "Potters", "Potts", "Powell",
+ "Prame", "Pratt", "Price", "Princeton", "Prior", "Prison",
+ "Promway", "Prospect", "Pryor", "Public", "Purdy", "Purvis",
+ "Putnam", "Quarry", "Quick", "Quincy", "Quinlan", "Race", "Radnor",
+ "Raiders", "Railroad", "Rains", "Raintree", "Range", "Rankin",
+ "Ransbottom", "Raven", "Ravenwood", "Rawson", "Reading", "Ream",
+ "Redman", "Redondo", "Reed", "Reeves", "Rehl", "Restless",
+ "Reynolds", "Rhonda", "Rice", "Richards", "Richey", "Richman",
+ "Richmond", "Richvale", "Richwood", "Rider", "Ridge", "Ridgefield",
+ "Ridgeland", "Ridgeview", "Ridgewood", "Rigby", "Riggin", "Rigny",
+ "Ritchey", "Ritenour", "River", "Riverside", "Riverview",
+ "Roadayle", "Robertson", "Robin", "Robinson", "Robinwood", "Rock",
+ "Rockville", "Roemer", "Roland", "Rollins", "Rondayle",
+ "Roosevelt", "Roper", "Rose", "Roseville", "Rosewood", "Rowland",
+ "Royalton", "Royma", "Rucker", "Runyan", "Russell", "Rustle",
+ "Ruth", "Ryan", "Salem", "Salgarber", "Sally", "Saltzgaber",
+ "Sampson", "Samuel", "Sand", "Sandhurst", "Sandra", "Sandusky",
+ "Sandvik", "Santoy", "Sarah", "Scarborough", "Scenic", "Schaum",
+ "Schneider", "Scholl", "School", "Schuler", "Schultz", "Schwallie",
+ "Scott", "Scout", "Sealover", "Seaman", "Seborn", "Sells",
+ "Selsam", "Senator", "Seroco", "Sevall", "Severt", "Seward",
+ "Seymore", "Shady", "Shagbark", "Shaliman", "Shandon", "Sharon",
+ "Sharonwood", "Shasta", "Shaw", "Shawnee", "Sheandoah", "Sheila",
+ "Shellhart", "Shenandoah", "Shepherd", "Sherborne", "Sheridan",
+ "Sherman", "Sherwood", "Shindern", "Shinick", "Shinnick",
+ "Shiplett", "Shoop", "Shore", "Short", "Shumaker", "Sibley",
+ "Silliman", "Silmore", "Skyline", "Skyview", "Slack", "Smithfield",
+ "Smithwood", "Snoke", "Snyder", "Sofin", "Solida", "Somers",
+ "Somerset", "Sonora", "Souder", "South", "Southard", "Southeast",
+ "Southern", "Southward", "Spangler", "Sparling", "Spellman",
+ "Spence", "Spencer", "Spielbusch", "Spratt", "Spring",
+ "Springdale", "Spruce", "Spry", "Stacy", "Stalder", "Stalling",
+ "Stanley", "Stansberry", "Stanton", "Stanway", "State", "Steele",
+ "Stein", "Stephens", "Stevens", "Stevy", "Stewart", "Stiers",
+ "Stillmeadow", "Stillwell", "Stine", "Stiver", "Stokely", "Stone",
+ "Stonecreek", "Stormont", "Stout", "Stoutsville", "Strawberry",
+ "Street", "Sturtz", "Stygler", "Sudbury", "Sugargrove",
+ "Sugartree", "Summit", "Sundale", "Sunflower", "Sunkel", "Sunray",
+ "Sunrise", "Sunset", "Superior", "Surger", "Swans", "Swartz",
+ "Swingle", "Sycamore", "Talford", "Talley", "Tamarron", "Tammy",
+ "Tannehill", "Tarkman", "Taylor", "Teakwood", "Tedrick", "Temple",
+ "Terrace", "Terry", "Theobald", "Third", "Thomas", "Thompson",
+ "Thorn", "Thornberry", "Thornhill", "Thurman", "Tiffany",
+ "Tileston", "Titus", "Todd", "Toni", "Towers", "Town", "Trabue",
+ "Traci", "Traco", "Tranquility", "Treehouse", "Tremont", "Trend",
+ "Tridelphia", "Tupedo", "Turner", "Turtle", "Tuscarawas",
+ "Twimenhill", "Tyman", "Underwood", "Uneeda", "Union", "Unknown",
+ "Valley", "Vance", "Vaughn", "Venture", "Venus", "Vernon",
+ "Vetter", "Vicki", "Victory", "Villa", "Village", "Vine", "Vinsel",
+ "Virginia", "Vista", "Vroom", "Wabash", "Wacker", "Wakatomika",
+ "Waldolf", "Walker", "Wall", "Wallwork", "Walnut", "Walter",
+ "Waltham", "Ward", "Wargo", "Warner", "Warners", "Warren",
+ "Warwick", "Washington", "Water", "Waters", "Watkins", "Watson",
+ "Watts", "Wayne", "Weaver", "Webb", "Webster", "Wedgewood",
+ "Weedon", "Weller", "Wells", "Wentz", "Wessex", "West",
+ "Westbourne", "Western", "Westmoor", "Westmore", "Westwood",
+ "Wetsell", "Whaley", "Wheatland", "Wheelabout", "Wheeler",
+ "Wheeling", "Whipple", "Whites", "Whitman", "Wilhelm", "Wilkins",
+ "Williams", "Willis", "Willow", "Wilmer", "Wilmington", "Wilshire",
+ "Wilson", "Winding", "Windmill", "Windsong", "Winfield",
+ "Winlwood", "Winter", "Winton", "Wise", "Wisteria", "Wogan",
+ "Wolfe", "Wolford", "Woodberry", "Woodbrook", "Woodland",
+ "Woodlawn", "Woolper", "Workman", "Wortman", "Wrexham", "Yale",
+ "Yingling", "Yost", "Young", "Zane", "Zanesville", "Zella"
- };
+ };
- private static String[] addressSuffixes = { "Avenue", "Boulevard",
- "Circle", "Crescent", "Court", "Drive", "Heights", "Lane", "Park",
- "Path", "Parkway", "Place", "Road", "Ridge", "Run", "Square",
- "Street", "Station", "Terrace", "Trail", "Way", "Rd", "Ln", "St",
- "Blvd", "Ave", "Drv" };
+ private static String[] addressSuffixes = {"Avenue", "Boulevard",
+ "Circle", "Crescent", "Court", "Drive", "Heights", "Lane", "Park",
+ "Path", "Parkway", "Place", "Road", "Ridge", "Run", "Square",
+ "Street", "Station", "Terrace", "Trail", "Way", "Rd", "Ln", "St",
+ "Blvd", "Ave", "Drv"};
- private static String[] cities = { "Abba", "Abbeville", "Acworth",
- "Adairsville", "Adel", "Adrian", "Ailey", "Alamo", "Alapaha",
- "Albany", "Allenhurst", "Alma", "Alma", "Alpharetta", "Alston",
- "Amboy", "Ambrose", "Americus", "Appling", "Arlington", "Ashburn",
- "Athens", "Atkinson", "Atlanta", "Attapulgus", "Auburn", "Augusta",
- "Augusta-Richmond County", "Austell", "Avondale Estates", "Axson",
- "Baconton", "Baden", "Bainbridge", "Bainbridge", "Baldwin",
- "Bannockburn", "Barnesville", "Barney", "Barretts", "Barwick",
- "Baxley", "Bemiss", "Berkeley Lake", "Berlin", "Blackshear",
- "Blairsville", "Blakely", "Bloomingdale", "Blue Ridge", "Bogart",
- "Boston", "Bowdon", "Bowens Mill", "Bowman", "Braselton", "Bremen",
- "Brinson", "Bristol", "Bronwood", "Brookfield", "Brooklet",
- "Brooks", "Broxton", "Brunswick", "Buchanan", "Buena Vista",
- "Buford", "Bushnell", "Byromville", "Byron", "Cairo", "Camilla",
- "Canton", "Carnesville", "Carrollton", "Cartersville",
- "Cave Spring", "Cecil", "Cedartown", "Centerville", "Chamblee",
- "Chatsworth", "Chauncey", "Chester", "Chickamauga", "Chula",
- "Clarkston", "Claxton", "Clayton", "Cleveland", "Clyatteville",
- "Clyo", "Cobbtown", "Cochran", "Cogdell", "Cohutta", "Colesburg",
- "College Park", "Collins", "Colquitt", "Columbus", "Commerce",
- "Conyers", "Coolidge", "Cordele", "Cornelia", "Council",
- "Country Club Estate", "Coverdale", "Covington", "Cox",
- "Crawfordville", "Crescent", "Culloden", "Cumming", "Cusseta",
- "Cuthbert", "Dacula", "Dahlonega", "Daisy", "Dakota", "Dallas",
- "Dalton", "Damascus", "Danielsville", "Darien", "Dasher", "Dawson",
- "Dawsonville", "Decatur", "Denmark", "Dillard", "Dixie",
- "Dock Junction", "Doerun", "Donalsonville", "Doraville", "Douglas",
- "Douglasville", "Dover Bluff", "Dupont", "Dublin", "Dudley",
- "Duluth", "Dunwoody", "East Dublin", "East Point", "Eastman",
- "Eatonton", "Ebenezer", "Edison", "Edith", "Egypt", "Elberton",
- "Eldorado", "Ellabelle", "Ellaville", "Ellenton", "Ellijay",
- "Enigma", "Euharlee", "Eulonia", "Everitt", "Fairburn", "Fairmont",
- "Fargo", "Fayetteville", "Fitzgerald", "Flemington",
- "Flowery Branch", "Folkston", "Forest Park", "Forsyth",
- "Fort Gaines", "Fort Oglethorpe", "Fort Stewart", "Fort Valley",
- "Franklin", "Fruitland", "Funston", "Gainesville", "Garden City",
- "Garfield", "Geneva", "Georgetown", "Gibson", "Glennville",
- "Glenwood", "Glory", "Graham", "Gray", "Greensboro", "Greenville",
- "Griffin", "Grooverville", "Groveland", "Grovetown", "Gumbranch",
- "Guyton", "Hagan", "Hahira", "Hamilton", "Hampton", "Hapeville",
- "Harding", "Harding", "Hardwicke", "Harrietts Bluff", "Hartwell",
- "Hawkinsville", "Haylon", "Hazlehurst", "Helena", "Hepzibah",
- "Hiawassee", "Hickox", "Higgston", "Hinesville", "Hiram",
- "Hoboken", "Hogansville", "Holly Springs", "Holt", "Homeland",
- "Homer", "Homerville", "Hopeulikit", "Hortense", "Howell", "Inaha",
- "Iron City", "Irwinton", "Irwinville", "Isle Of Hope-Dutch Island",
- "Jackson", "Janis", "Jasper", "Jefferson", "Jeffersonville",
- "Jesup", "Johns Creek", "Jonesboro", "Keller", "Kennesaw",
- "Kinderlou", "Kings Bay Base", "Kingsland", "Kirkland", "Kite",
- "Lafayette", "Lagrange", "Lake City", "Lake Park", "Lakeland",
- "Lanier", "Lawrenceville", "Lax", "Leary", "Leefield", "Leesburg",
- "Lenox", "Lexington", "Lilburn", "Lincolnton", "Lithonia",
- "Locust Grove", "Loganville", "Lookout Mountain", "Louisville",
- "Lovejoy", "Ludowici", "Lulaton", "Lumber City", "Lumpkin",
- "Lyons", "Macon", "Madison", "Manassas", "Manchester", "Marietta",
- "Maxeys", "Mayday", "Mcdonough", "Mcintosh", "Mcintyre", "Mcrae",
- "Meigs", "Meldrim", "Mershon", "Metter", "Midway", "Milan",
- "Milledgeville", "Millen", "Milton", "Moniac", "Monroe",
- "Montezuma", "Montgomery", "Monticello", "Montrose", "Mora",
- "Morgan", "Morrow", "Morven", "Moultrie", "Mount Vernon",
- "Mount Zion", "Mountain Park", "Mystic", "Nahunta", "Nankin",
- "Nashville", "Needmore", "Nelson", "Nevils", "New Rock Hill",
- "Newnan", "Newton", "Nicholls", "Norcross", "Norman Park",
- "Oakwood", "Ochlocknee", "Ocilla", "Odum", "Offerman", "Offerman",
- "Oglethorpe", "Omega", "Osterfield", "Ousley", "Oxford",
- "Palmetto", "Parrott", "Patterson", "Peachtree City Website",
- "Pearson", "Pelham", "Pembroke", "Perry", "Phillipsburg",
- "Pine Lake", "Pineora", "Pineview", "Pooler", "Port Wentworth",
- "Portal", "Potter", "Poulan", "Powder Springs", "Preston",
- "Pridgen", "Pulaski", "Queensland", "Quitman", "Ray City",
- "Rebecca", "Register", "Reidsville", "Remerton", "Rentz",
- "Retreat", "Riceboro", "Richmond Hill", "Ridgeville", "Rincon",
- "Ringgold", "Riverdale", "Riverside", "Rochelle", "Rockingham",
- "Rockmart", "Rome", "Roswell", "Royston", "Rutledge",
- "Saint George", "Sale City", "Sandersville", "Sandy Springs",
- "Sasser", "Savannah", "Screven", "Senoia", "Sessoms", "Shawnee",
- "Shellman Bluff", "Sirmans", "Skidaway Island", "Smithville",
- "Smyrna", "Snellville", "Social Circle", "Soperton",
- "South Newport", "Sparks", "Sparta", "Springfield", "Strongsville",
- "St. Simons Island", "Statenville", "Statesboro", "Sterling",
- "Stillmore", "Stillwell", "Stilson", "Stockbridge", "Stockton",
- "Stone Mountain", "Sugar Hill", "Sumner", "Sunbury", "Sunsweet",
- "Surrency", "Suwanee", "Swainsboro", "Sycamore", "Sylvania",
- "Sylvester", "Talbotton", "Tallapoosa", "Tarboro", "Tarver",
- "Temple", "Thalman", "Thelma", "Thomaston", "Thomasville",
- "Thomson", "Thunderbolt", "Tifton", "Toccoa", "Toomsboro",
- "Townsend", "Trenton", "Trudie", "Tucker", "Twin City",
- "Twin Peaks", "Tybee Island", "Tyrone", "Unadilla", "Union City",
- "Unionville", "Upton", "Uvalda", "Valdosta", "Valona",
- "Vernonburg", "Vidalia", "Vienna", "Villa Rica", "Walthourville",
- "Warrenton", "Warwick", "Washington", "Waterloo", "Watkinsville",
- "Waverly", "Waycross", "Waynesboro", "Waynesville", "Weber",
- "West Green", "West Point", "Westwood", "Whigham", "White Oak",
- "Whitmarsh Island", "Willacoochee", "Wilmington Island", "Winder",
- "Winokur", "Withers", "Woodbine", "Woodstock", "Worth", "Wray",
- "Wrightsville" };
+ private static String[] cities = {"Abba", "Abbeville", "Acworth",
+ "Adairsville", "Adel", "Adrian", "Ailey", "Alamo", "Alapaha",
+ "Albany", "Allenhurst", "Alma", "Alma", "Alpharetta", "Alston",
+ "Amboy", "Ambrose", "Americus", "Appling", "Arlington", "Ashburn",
+ "Athens", "Atkinson", "Atlanta", "Attapulgus", "Auburn", "Augusta",
+ "Augusta-Richmond County", "Austell", "Avondale Estates", "Axson",
+ "Baconton", "Baden", "Bainbridge", "Bainbridge", "Baldwin",
+ "Bannockburn", "Barnesville", "Barney", "Barretts", "Barwick",
+ "Baxley", "Bemiss", "Berkeley Lake", "Berlin", "Blackshear",
+ "Blairsville", "Blakely", "Bloomingdale", "Blue Ridge", "Bogart",
+ "Boston", "Bowdon", "Bowens Mill", "Bowman", "Braselton", "Bremen",
+ "Brinson", "Bristol", "Bronwood", "Brookfield", "Brooklet",
+ "Brooks", "Broxton", "Brunswick", "Buchanan", "Buena Vista",
+ "Buford", "Bushnell", "Byromville", "Byron", "Cairo", "Camilla",
+ "Canton", "Carnesville", "Carrollton", "Cartersville",
+ "Cave Spring", "Cecil", "Cedartown", "Centerville", "Chamblee",
+ "Chatsworth", "Chauncey", "Chester", "Chickamauga", "Chula",
+ "Clarkston", "Claxton", "Clayton", "Cleveland", "Clyatteville",
+ "Clyo", "Cobbtown", "Cochran", "Cogdell", "Cohutta", "Colesburg",
+ "College Park", "Collins", "Colquitt", "Columbus", "Commerce",
+ "Conyers", "Coolidge", "Cordele", "Cornelia", "Council",
+ "Country Club Estate", "Coverdale", "Covington", "Cox",
+ "Crawfordville", "Crescent", "Culloden", "Cumming", "Cusseta",
+ "Cuthbert", "Dacula", "Dahlonega", "Daisy", "Dakota", "Dallas",
+ "Dalton", "Damascus", "Danielsville", "Darien", "Dasher", "Dawson",
+ "Dawsonville", "Decatur", "Denmark", "Dillard", "Dixie",
+ "Dock Junction", "Doerun", "Donalsonville", "Doraville", "Douglas",
+ "Douglasville", "Dover Bluff", "Dupont", "Dublin", "Dudley",
+ "Duluth", "Dunwoody", "East Dublin", "East Point", "Eastman",
+ "Eatonton", "Ebenezer", "Edison", "Edith", "Egypt", "Elberton",
+ "Eldorado", "Ellabelle", "Ellaville", "Ellenton", "Ellijay",
+ "Enigma", "Euharlee", "Eulonia", "Everitt", "Fairburn", "Fairmont",
+ "Fargo", "Fayetteville", "Fitzgerald", "Flemington",
+ "Flowery Branch", "Folkston", "Forest Park", "Forsyth",
+ "Fort Gaines", "Fort Oglethorpe", "Fort Stewart", "Fort Valley",
+ "Franklin", "Fruitland", "Funston", "Gainesville", "Garden City",
+ "Garfield", "Geneva", "Georgetown", "Gibson", "Glennville",
+ "Glenwood", "Glory", "Graham", "Gray", "Greensboro", "Greenville",
+ "Griffin", "Grooverville", "Groveland", "Grovetown", "Gumbranch",
+ "Guyton", "Hagan", "Hahira", "Hamilton", "Hampton", "Hapeville",
+ "Harding", "Harding", "Hardwicke", "Harrietts Bluff", "Hartwell",
+ "Hawkinsville", "Haylon", "Hazlehurst", "Helena", "Hepzibah",
+ "Hiawassee", "Hickox", "Higgston", "Hinesville", "Hiram",
+ "Hoboken", "Hogansville", "Holly Springs", "Holt", "Homeland",
+ "Homer", "Homerville", "Hopeulikit", "Hortense", "Howell", "Inaha",
+ "Iron City", "Irwinton", "Irwinville", "Isle Of Hope-Dutch Island",
+ "Jackson", "Janis", "Jasper", "Jefferson", "Jeffersonville",
+ "Jesup", "Johns Creek", "Jonesboro", "Keller", "Kennesaw",
+ "Kinderlou", "Kings Bay Base", "Kingsland", "Kirkland", "Kite",
+ "Lafayette", "Lagrange", "Lake City", "Lake Park", "Lakeland",
+ "Lanier", "Lawrenceville", "Lax", "Leary", "Leefield", "Leesburg",
+ "Lenox", "Lexington", "Lilburn", "Lincolnton", "Lithonia",
+ "Locust Grove", "Loganville", "Lookout Mountain", "Louisville",
+ "Lovejoy", "Ludowici", "Lulaton", "Lumber City", "Lumpkin",
+ "Lyons", "Macon", "Madison", "Manassas", "Manchester", "Marietta",
+ "Maxeys", "Mayday", "Mcdonough", "Mcintosh", "Mcintyre", "Mcrae",
+ "Meigs", "Meldrim", "Mershon", "Metter", "Midway", "Milan",
+ "Milledgeville", "Millen", "Milton", "Moniac", "Monroe",
+ "Montezuma", "Montgomery", "Monticello", "Montrose", "Mora",
+ "Morgan", "Morrow", "Morven", "Moultrie", "Mount Vernon",
+ "Mount Zion", "Mountain Park", "Mystic", "Nahunta", "Nankin",
+ "Nashville", "Needmore", "Nelson", "Nevils", "New Rock Hill",
+ "Newnan", "Newton", "Nicholls", "Norcross", "Norman Park",
+ "Oakwood", "Ochlocknee", "Ocilla", "Odum", "Offerman", "Offerman",
+ "Oglethorpe", "Omega", "Osterfield", "Ousley", "Oxford",
+ "Palmetto", "Parrott", "Patterson", "Peachtree City Website",
+ "Pearson", "Pelham", "Pembroke", "Perry", "Phillipsburg",
+ "Pine Lake", "Pineora", "Pineview", "Pooler", "Port Wentworth",
+ "Portal", "Potter", "Poulan", "Powder Springs", "Preston",
+ "Pridgen", "Pulaski", "Queensland", "Quitman", "Ray City",
+ "Rebecca", "Register", "Reidsville", "Remerton", "Rentz",
+ "Retreat", "Riceboro", "Richmond Hill", "Ridgeville", "Rincon",
+ "Ringgold", "Riverdale", "Riverside", "Rochelle", "Rockingham",
+ "Rockmart", "Rome", "Roswell", "Royston", "Rutledge",
+ "Saint George", "Sale City", "Sandersville", "Sandy Springs",
+ "Sasser", "Savannah", "Screven", "Senoia", "Sessoms", "Shawnee",
+ "Shellman Bluff", "Sirmans", "Skidaway Island", "Smithville",
+ "Smyrna", "Snellville", "Social Circle", "Soperton",
+ "South Newport", "Sparks", "Sparta", "Springfield", "Strongsville",
+ "St. Simons Island", "Statenville", "Statesboro", "Sterling",
+ "Stillmore", "Stillwell", "Stilson", "Stockbridge", "Stockton",
+ "Stone Mountain", "Sugar Hill", "Sumner", "Sunbury", "Sunsweet",
+ "Surrency", "Suwanee", "Swainsboro", "Sycamore", "Sylvania",
+ "Sylvester", "Talbotton", "Tallapoosa", "Tarboro", "Tarver",
+ "Temple", "Thalman", "Thelma", "Thomaston", "Thomasville",
+ "Thomson", "Thunderbolt", "Tifton", "Toccoa", "Toomsboro",
+ "Townsend", "Trenton", "Trudie", "Tucker", "Twin City",
+ "Twin Peaks", "Tybee Island", "Tyrone", "Unadilla", "Union City",
+ "Unionville", "Upton", "Uvalda", "Valdosta", "Valona",
+ "Vernonburg", "Vidalia", "Vienna", "Villa Rica", "Walthourville",
+ "Warrenton", "Warwick", "Washington", "Waterloo", "Watkinsville",
+ "Waverly", "Waycross", "Waynesboro", "Waynesville", "Weber",
+ "West Green", "West Point", "Westwood", "Whigham", "White Oak",
+ "Whitmarsh Island", "Willacoochee", "Wilmington Island", "Winder",
+ "Winokur", "Withers", "Woodbine", "Woodstock", "Worth", "Wray",
+ "Wrightsville"};
- public String[] getCities() {
- return cities;
- }
+ private static String[] countries = {"Andorra", "United Arab Emirates",
+ "Afghanistan", "Antigua and Barbuda", "Anguilla", "Albania",
+ "Armenia", "Angola", "Antarctica", "Argentina", "American Samoa",
+ "Austria", "Australia", "Aruba", "Azerbaijan", "Bosnia Herzegovina",
+ "Barbados", "Bangladesh", "Belgium", "Burkina Faso", "Bulgaria",
+ "Bahrain", "Burundi", "Benin", "Bermuda", "Brunei Darussalam",
+ "Bolivia", "Caribbean Netherlands ", "Brazil", "Bahamas", "Bhutan",
+ "Bouvet Island", "Botswana", "Belarus", "Belize", "Canada", "Congo",
+ "Central African Republic", "Congo", "Switzerland", "Cook Islands",
+ "Chile", "Cameroon", "China", "Colombia", "Costa Rica", "Cuba",
+ "Cape Verde", "Christmas Island", "Cyprus", "Czech Republic",
+ "Germany", "Djibouti", "Denmark", "Dominica", "Dominican Republic",
+ "Algeria", "Ecuador", "Estonia", "Egypt", "Western Sahara",
+ "Eritrea", "Spain", "Ethiopia", "Finland", "Fiji",
+ "Falkland Islands", "Faroe Islands", "France", "Gabon",
+ "United Kingdom", "Grenada", "Georgia", "French Guiana", "Guernsey",
+ "Ghana", "Gibraltar", "Greenland", "Gambia", "Guinea", "Guadeloupe",
+ "Equatorial Guinea", "Greece", "Guatemala", "Guam", "Guinea-Bissau",
+ "Guyana", "Hong Kong", "Honduras", "Croatia", "Haiti", "Hungary",
+ "Indonesia", "Ireland", "Israel", "Isle of Man", "India", "Iraq",
+ "Iran", "Iceland", "Italy", "Jersey", "Jamaica", "Jordan", "Japan",
+ "Kenya", "Kyrgyzstan", "Cambodia", "Kiribati", "Comoros",
+ "North Korea", "South Korea", "Kuwait", "Cayman Islands",
+ "Kazakhstan", "Lao People", "Lebanon", "Saint Lucia",
+ "Liechtenstein", "Sri Lanka", "Liberia", "Lesotho", "Lithuania",
+ "Luxembourg", "Latvia", "Libya", "Morocco", "Monaco", "Moldova",
+ "Montenegro", "Madagascar", "Marshall Islands", "Macedonia", "Mali",
+ "Myanmar", "Mongolia", "Macau", "Northern Mariana Islands",
+ "Martinique", "Mauritania", "Montserrat", "Malta", "Mauritius",
+ "Maldives", "Malawi", "Mexico", "Malaysia", "Mozambique", "Namibia",
+ "New Caledonia", "Niger", "Norfolk Island", "Nigeria", "Nicaragua",
+ "The Netherlands", "Norway", "Nepal", "Nauru", "Niue",
+ "New Zealand", "Oman", "Panama", "Peru", "French Polynesia",
+ "Papua New Guinea", "Philippines", "Pakistan", "Poland", "Pitcairn",
+ "Puerto Rico", "Palestine", "Portugal", "Palau", "Paraguay",
+ "Qatar", "Romania", "Serbia", "Russian Federation", "Rwanda",
+ "Saudi Arabia", "Solomon Islands", "Seychelles", "Sudan", "Sweden",
+ "Singapore", "Saint Helena", "Slovenia", "Slovakia", "Sierra Leone",
+ "San Marino", "Senegal", "Somalia", "Suriname", "South Sudan",
+ "El Salvador", "Sint Maarten", "Syria", "Swaziland", "Chad", "Togo",
+ "Thailand", "Tajikistan", "Tokelau", "Timor-Leste", "Turkmenistan",
+ "Tunisia", "Tonga", "Turkey", "Trinidad and Tobago", "Tuvalu",
+ "Taiwan", "Tanzania", "Ukraine", "Uganda", "United States",
+ "Uruguay", "Uzbekistan", "Vatican", "Venezuela", "Vietnam",
+ "Vanuatu", "Samoa", "Yemen", "Mayotte", "South Africa", "Zambia",
+ "Zimbabwe"};
- public String[] getStreetNames() {
- return streetNames;
- }
+ private static String[] countriesShort = {"AD", "AE", "AF", "AG", "AI",
+ "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AZ", "BA",
+ "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BM", "BN", "BO",
+ "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CD", "CF",
+ "CG", "CH", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CX",
+ "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG",
+ "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FO", "FR", "GA", "GB",
+ "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ",
+ "GR", "GT", "GU", "GW", "GY", "HK", "HN", "HR", "HT", "HU", "ID",
+ "IE", "IL", "IM", "IN", "IQ", "IR", "IS", "IT", "JE", "JM", "JO",
+ "JP", "KE", "KG", "KH", "KI", "KM", "KP", "KR", "KW", "KY", "KZ",
+ "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY",
+ "MA", "MC", "MD", "ME", "MG", "MH", "MK", "ML", "MM", "MN", "MO",
+ "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ",
+ "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU",
+ "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PN", "PR",
+ "PS", "PT", "PW", "PY", "QA", "RO", "RS", "RU", "RW", "SA", "SB",
+ "SC", "SD", "SE", "SG", "SH", "SI", "SK", "SL", "SM", "SN", "SO",
+ "SR", "SS", "SV", "SX", "SY", "SZ", "TD", "TG", "TH", "TJ", "TK",
+ "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG",
+ "US", "UY", "UZ", "VA", "VE", "VN", "VU", "WS", "YE", "YT", "ZA",
+ "ZM", "ZW"};
- public String[] getAddressSuffixes() {
- return addressSuffixes;
- }
+ private static String[] nationalities = {"Afghan", "Albanian", "Algerian",
+ "American", "Andorran", "Angolan", "Antiguans", "Argentinean",
+ "Armenian", "Australian", "Austrian", "Azerbaijani", "Bahamian",
+ "Bahraini", "Bangladeshi", "Barbadian", "Barbudans", "Batswana",
+ "Belarusian", "Belgian", "Belizean", "Beninese", "Bhutanese",
+ "Bolivian", "Bosnian", "Brazilian", "British", "Bruneian",
+ "Bulgarian", "Burkinabe", "Burmese", "Burundian", "Cambodian",
+ "Cameroonian", "Canadian", "Cape Verdean", "Central African",
+ "Chadian", "Chilean", "Chinese", "Colombian", "Comoran",
+ "Congolese", "Costa Rican", "Croatian", "Cuban", "Cypriot", "Czech",
+ "Danish", "Djibouti", "Dominican", "Dutch", "East Timorese",
+ "Ecuadorean", "Egyptian", "Emirian", "Equatorial Guinean",
+ "Eritrean", "Estonian", "Ethiopian", "Fijian", "Filipino",
+ "Finnish", "French", "Gabonese", "Gambian", "Georgian", "German",
+ "Ghanaian", "Greek", "Grenadian", "Guatemalan", "Guinea-Bissauan",
+ "Guinean", "Guyanese", "Haitian", "Herzegovinian", "Honduran",
+ "Hungarian", "Icelander", "Indian", "Indonesian", "Iranian",
+ "Iraqi", "Irish", "Israeli", "Italian", "Ivorian", "Jamaican",
+ "Japanese", "Jordanian", "Kazakhstani", "Kenyan",
+ "Kittian and Nevisian", "Kuwaiti", "Kyrgyz", "Laotian", "Latvian",
+ "Lebanese", "Liberian", "Libyan", "Liechtensteiner", "Lithuanian",
+ "Luxembourger", "Macedonian", "Malagasy", "Malawian", "Malaysian",
+ "Maldivan", "Malian", "Maltese", "Marshallese", "Mauritanian",
+ "Mauritian", "Mexican", "Micronesian", "Moldovan", "Monacan",
+ "Mongolian", "Moroccan", "Mosotho", "Motswana", "Mozambican",
+ "Namibian", "Nauruan", "Nepalese", "Netherlander", "New Zealander",
+ "Ni-Vanuatu", "Nicaraguan", "Nigerian", "Nigerien", "North Korean",
+ "Northern Irish", "Norwegian", "Omani", "Pakistani", "Palauan",
+ "Panamanian", "Papua New Guinean", "Paraguayan", "Peruvian",
+ "Polish", "Portuguese", "Qatari", "Romanian", "Russian", "Rwandan",
+ "Saint Lucian", "Salvadoran", "Samoan", "San Marinese",
+ "Sao Tomean", "Saudi", "Scottish", "Senegalese", "Serbian",
+ "Seychellois", "Sierra Leonean", "Singaporean", "Slovakian",
+ "Slovenian", "Solomon Islander", "Somali", "South African",
+ "South Korean", "Spanish", "Sri Lankan", "Sudanese", "Surinamer",
+ "Swazi", "Swedish", "Swiss", "Syrian", "Taiwanese", "Tajik",
+ "Tanzanian", "Thai", "Togolese", "Tongan",
+ "Trinidadian or Tobagonian", "Tunisian", "Turkish", "Tuvaluan",
+ "Ugandan", "Ukrainian", "Uruguayan", "Uzbekistani", "Venezuelan",
+ "Vietnamese", "Welsh", "Yemenite", "Zambian", "Zimbabwean"};
+ public String[] getCities() {
+ return cities;
+ }
+
+ public String[] getStreetNames() {
+ return streetNames;
+ }
+
+ public String[] getAddressSuffixes() {
+ return addressSuffixes;
+ }
+
+ public String[] getCountries() {
+ return countries;
+ }
+
+ public String[] getCountriesShort() {
+ return countriesShort;
+ }
+
+ public String[] getNationalities() {
+ return nationalities;
+ }
}
diff --git a/src/main/java/org/fluttercode/datafactory/impl/DefaultContentDataValues.java b/src/main/java/org/fluttercode/datafactory/impl/DefaultContentDataValues.java
index f7fa7fb..127f85f 100644
--- a/src/main/java/org/fluttercode/datafactory/impl/DefaultContentDataValues.java
+++ b/src/main/java/org/fluttercode/datafactory/impl/DefaultContentDataValues.java
@@ -27,56 +27,75 @@
public class DefaultContentDataValues implements ContentDataValues {
- public static String[] words = { "throw", "ball", "hat", "red", "worn",
- "list", "words", "computer", "in", "out", "hot", "cold", "warp",
- "speed", "captain", "assert", "hold", "room", "ship", "lost", "is",
- "television", "show", "about", "plane", "crash", "island",
- "monster", "trees", "banging", "smoke", "where", "are", "we",
- "was", "asked", "no", "rescue", "came", "build", "fire", "waited",
- "days", "moved", "to", "caves", "found", "with", "ghost", "dad",
- "in", "white", "rabbit", "lock", "discovered", "hatch", "with",
- "boon", "secretly", "hid", "it", "while", "trying", "to", "open",
- "it", "until", "sidekick", "died", "as", "sacrifice", "island",
- "demanded", "many", "had", "dreams", "or", "visions", "others",
- "came", "took", "people", "who", "are", "they", "what", "do",
- "they", "want", "light", "came", "on", "through", "window",
- "leader", "is", "a", "good", "man", "numbers", "in", "room",
- "enter", "keys", "computer", "end", "of", "world", "wicket",
- "magnetic", "pull", "shepherd", "always", "wrong", "much",
- "suspense", "what", "to", "do", "when", "it", "ends", "I", "will",
- "have", "to", "find", "something", "else", "to", "pique", "my",
- "interest", "or maybe", "write", "lots", "of", "code", "probably",
- "should", "have", "generated", "this", "text", "automatically",
- "so", "will", "from", "the", "web", "ending", "badly", "library",
- "handled", "books", "constantly", "headphones", "of", "ill", "on",
- "it's", "sill","sits","sofa" };
+ public static String[] words = {"throw", "ball", "hat", "red", "worn",
+ "list", "words", "computer", "in", "out", "hot", "cold", "warp",
+ "speed", "captain", "assert", "hold", "room", "ship", "lost", "is",
+ "television", "show", "about", "plane", "crash", "island",
+ "monster", "trees", "banging", "smoke", "where", "are", "we",
+ "was", "asked", "no", "rescue", "came", "build", "fire", "waited",
+ "days", "moved", "to", "caves", "found", "with", "ghost", "dad",
+ "in", "white", "rabbit", "lock", "discovered", "hatch", "with",
+ "boon", "secretly", "hid", "it", "while", "trying", "to", "open",
+ "it", "until", "sidekick", "died", "as", "sacrifice", "island",
+ "demanded", "many", "had", "dreams", "or", "visions", "others",
+ "came", "took", "people", "who", "are", "they", "what", "do",
+ "they", "want", "light", "came", "on", "through", "window",
+ "leader", "is", "a", "good", "man", "numbers", "in", "room",
+ "enter", "keys", "computer", "end", "of", "world", "wicket",
+ "magnetic", "pull", "shepherd", "always", "wrong", "much",
+ "suspense", "what", "to", "do", "when", "it", "ends", "I", "will",
+ "have", "to", "find", "something", "else", "to", "pique", "my",
+ "interest", "or maybe", "write", "lots", "of", "code", "probably",
+ "should", "have", "generated", "this", "text", "automatically",
+ "so", "will", "from", "the", "web", "ending", "badly", "library",
+ "handled", "books", "constantly", "headphones", "of", "ill", "on",
+ "it's", "sill", "sits", "sofa"};
- private static String[] businessTypes = { "Furnishings", "Bakery",
- "Accounting", "Textiles", "Manufacturing", "Industries",
- "Pro Services", "Landscaping", "Realty", "Travel",
- "Medical supplies", "Office supplies", "Insurance", "Software",
- "Motors", "Cafe", "Services", "Gymnasium", "Motor Services",
- "Signs", "Development", "Studios", "Engineering", "Development" };
+ private static String[] businessTypes = {"Furnishings", "Bakery",
+ "Accounting", "Textiles", "Manufacturing", "Industries",
+ "Pro Services", "Landscaping", "Realty", "Travel",
+ "Medical supplies", "Office supplies", "Insurance", "Software",
+ "Motors", "Cafe", "Services", "Gymnasium", "Motor Services",
+ "Signs", "Development", "Studios", "Engineering", "Development"};
- private static String[] emailHosts = { "gma1l", "hotma1l", "yah00",
- "somema1l", "everyma1l", "ma1lbox", "b1zmail", "ma1l2u" };
+ private static String[] emailHosts = {"gma1l", "hotma1l", "yah00",
+ "somema1l", "everyma1l", "ma1lbox", "b1zmail", "ma1l2u"};
- private static String[] tlds = { "org", "net", "com", "biz", "us", "co.uk" };
+ private static String[] tlds = {"org", "net", "com", "biz", "us", "co.uk"};
- public String[] getWords() {
- return words;
- }
+ private static String[] occupations = {"Accountant", "Auditor", "Actor",
+ "Actuary", "Anesthesiologist", "Archivist", "Astronomer",
+ "Audiologist", "Bailiff", "Baker", "Barber", "Bartender",
+ "Boilermaker", "Breeder", "Carpenter", "Cashier", "Chemist",
+ "Chiropractor", "Choreographer", "Clergy", "Concierge", "Curator",
+ "Dancer", "Dishwasher", "Economist", "Editor", "Electrician",
+ "Embalmer", "Epidemiologist", "Faller", "Firefighter", "Forester",
+ "Geographer", "Glazier", "Historian", "Hydrologist", "Lawyer",
+ "Legislator", "Librarian", "Logistician", "Machinist",
+ "Mathematician", "Microbiologist", "Model", "Optometrist",
+ "Orthodontist", "Paperhanger", "Pharmacist", "Photographer",
+ "Physicist", "Pipelayer", "Podiatrist", "Prosthodontist",
+ "Psychiatrist", "Rigger", "Roofer", "Shampooer", "Sociologist",
+ "Statistician", "Stonemason", "Surgeon", "Surveyor", "Taper",
+ "Telemarketer", "Teller", "Upholsterer", "Veterinarian"};
- public String[] getBusinessTypes() {
- return businessTypes;
- }
+ public String[] getWords() {
+ return words;
+ }
- public String[] getEmailHosts() {
- return emailHosts;
- }
+ public String[] getBusinessTypes() {
+ return businessTypes;
+ }
- public String[] getTlds() {
- return tlds;
- }
+ public String[] getEmailHosts() {
+ return emailHosts;
+ }
+ public String[] getTlds() {
+ return tlds;
+ }
+
+ public String[] getOccupations() {
+ return occupations;
+ }
}
diff --git a/src/main/java/org/fluttercode/datafactory/impl/DefaultNameDataValues.java b/src/main/java/org/fluttercode/datafactory/impl/DefaultNameDataValues.java
index 3c1fd80..b84df88 100644
--- a/src/main/java/org/fluttercode/datafactory/impl/DefaultNameDataValues.java
+++ b/src/main/java/org/fluttercode/datafactory/impl/DefaultNameDataValues.java
@@ -27,269 +27,269 @@
public class DefaultNameDataValues implements NameDataValues {
- private static String[] suffixes = { "II", "III", "Phd", "Jr", "Sr" };
- private static String[] prefixes = { "Mr", "Mrs", "Ms" };
- private static String[] firstNames = { "Aaron", "Abby", "Abigail", "Adam",
- "Alan", "Albert", "Alex", "Alexandra", "Alexis", "Alice", "Alicia",
- "Alisha", "Alissa", "Allen", "Allison", "Alyssa", "Amanda",
- "Amber", "Amy", "Andrea", "Andrew", "Andy", "Angel", "Angela",
- "Angie", "Anita", "Ann", "Anna", "Annette", "Anthony", "Antonio",
- "April", "Arthur", "Ashley", "Audrey", "Austin", "Autumn", "Baby",
- "Barb", "Barbara", "Becky", "Benjamin", "Beth", "Bethany", "Betty",
- "Beverly", "Bill", "Billie", "Billy", "Blake", "Bob", "Bobbie",
- "Bobby", "Bonnie", "Brad", "Bradley", "Brady", "Brandi", "Brandon",
- "Brandy", "Breanna", "Brenda", "Brent", "Brett", "Brian",
- "Brianna", "Brittany", "Brooke", "Brooklyn", "Bruce", "Bryan",
- "Caleb", "Cameron", "Candy", "Carl", "Carla", "Carmen", "Carol",
- "Carolyn", "Carrie", "Casey", "Cassandra", "Catherine", "Cathy",
- "Chad", "Charlene", "Charles", "Charlie", "Charlotte", "Chase",
- "Chasity", "Chastity", "Chelsea", "Cheryl", "Chester", "Cheyenne",
- "Chris", "Christian", "Christina", "Christine", "Christoph",
- "Christopher", "Christy", "Chuck", "Cindy", "Clara", "Clarence",
- "Clayton", "Clifford", "Clint", "Cody", "Colton", "Connie",
- "Corey", "Cory", "Courtney", "Craig", "Crystal", "Curtis",
- "Cynthia", "Dakota", "Dale", "Dallas", "Dalton", "Dan", "Dana",
- "Daniel", "Danielle", "Danny", "Darla", "Darlene", "Darrell",
- "Darren", "Dave", "David", "Dawn", "Dean", "Deanna", "Debbie",
- "Deborah", "Debra", "Denise", "Dennis", "Derek", "Derrick",
- "Destiny", "Devin", "Diana", "Diane", "Dillon", "Dixie", "Dominic",
- "Don", "Donald", "Donna", "Donnie", "Doris", "Dorothy", "Doug",
- "Douglas", "Drew", "Duane", "Dustin", "Dusty", "Dylan", "Earl",
- "Ed", "Eddie", "Edward", "Elaine", "Elizabeth", "Ellen", "Emily",
- "Eric", "Erica", "Erika", "Erin", "Ernest", "Ethan", "Eugene",
- "Eva", "Evelyn", "Everett", "Faith", "Father", "Felicia", "Floyd",
- "Francis", "Frank", "Fred", "Gabriel", "Gage", "Gail", "Gary",
- "Gene", "George", "Gerald", "Gina", "Ginger", "Glen", "Glenn",
- "Gloria", "Grace", "Greg", "Gregory", "Haley", "Hannah", "Harley",
- "Harold", "Harry", "Heath", "Heather", "Heidi", "Helen", "Herbert",
- "Holly", "Hope", "Howard", "Hunter", "Ian", "Isaac", "Jack",
- "Jackie", "Jacob", "Jade", "Jake", "James", "Jamie", "Jan", "Jane",
- "Janet", "Janice", "Jared", "Jasmine", "Jason", "Jay", "Jean",
- "Jeannie", "Jeff", "Jeffery", "Jeffrey", "Jenna", "Jennifer",
- "Jenny", "Jeremiah", "Jeremy", "Jerry", "Jesse", "Jessica",
- "Jessie", "Jill", "Jim", "Jimmy", "Joann", "Joanne", "Jodi",
- "Jody", "Joe", "Joel", "Joey", "John", "Johnathan", "Johnny",
- "Jon", "Jonathan", "Jonathon", "Jordan", "Joseph", "Josh",
- "Joshua", "Joyce", "Juanita", "Judy", "Julia", "Julie", "Justin",
- "Kaitlyn", "Karen", "Katelyn", "Katherine", "Kathleen", "Kathryn",
- "Kathy", "Katie", "Katrina", "Kay", "Kayla", "Kaylee", "Keith",
- "Kelly", "Kelsey", "Ken", "Kendra", "Kenneth", "Kenny", "Kevin",
- "Kim", "Kimberly", "Kris", "Krista", "Kristen", "Kristin",
- "Kristina", "Kristy", "Kyle", "Kylie", "Lacey", "Laken", "Lance",
- "Larry", "Laura", "Lawrence", "Leah", "Lee", "Leonard", "Leroy",
- "Leslie", "Levi", "Lewis", "Linda", "Lindsay", "Lindsey", "Lisa",
- "Lloyd", "Logan", "Lois", "Loretta", "Lori", "Louis", "Lynn",
- "Madison", "Mandy", "Marcus", "Margaret", "Maria", "Mariah",
- "Marie", "Marilyn", "Marion", "Mark", "Marlene", "Marsha",
- "Martha", "Martin", "Marty", "Marvin", "Mary", "Mary ann", "Mason",
- "Matt", "Matthew", "Max", "Megan", "Melanie", "Melinda", "Melissa",
- "Melody", "Michael", "Michelle", "Mickey", "Mike", "Mindy",
- "Miranda", "Misty", "Mitchell", "Molly", "Monica", "Morgan",
- "Mother", "Myron", "Nancy", "Natasha", "Nathan", "Nicholas",
- "Nick", "Nicole", "Nina", "Noah", "Norma", "Norman", "Olivia",
- "Paige", "Pam", "Pamela", "Pat", "Patricia", "Patrick", "Patty",
- "Paul", "Paula", "Peggy", "Penny", "Pete", "Phillip", "Phyllis",
- "Rachael", "Rachel", "Ralph", "Randall", "Randi", "Randy", "Ray",
- "Raymond", "Rebecca", "Regina", "Renee", "Rex", "Rhonda",
- "Richard", "Rick", "Ricky", "Rita", "Rob", "Robbie", "Robert",
- "Roberta", "Robin", "Rochelle", "Rocky", "Rod", "Rodney", "Roger",
- "Ron", "Ronald", "Ronda", "Ronnie", "Rose", "Roxanne", "Roy",
- "Russ", "Russell", "Rusty", "Ruth", "Ryan", "Sabrina", "Sally",
- "Sam", "Samantha", "Samuel", "Sandra", "Sandy", "Sara", "Sarah",
- "Savannah", "Scott", "Sean", "Seth", "Shanda", "Shane", "Shanna",
- "Shannon", "Sharon", "Shaun", "Shawn", "Shawna", "Sheila",
- "Shelly", "Sher", "Sherri", "Sherry", "Shirley", "Sierra",
- "Skyler", "Stacey", "Stacy", "Stanley", "Stephanie", "Stephen",
- "Steve", "Steven", "Sue", "Summer", "Susan", "Sydney", "Tabatha",
- "Tabitha", "Tamara", "Tammy", "Tara", "Tasha", "Tashia", "Taylor",
- "Ted", "Teresa", "Terri", "Terry", "Tessa", "Thelma", "Theresa",
- "Thomas", "Tia", "Tiffany", "Tim", "Timmy", "Timothy", "Tina",
- "Todd", "Tom", "Tommy", "Toni", "Tony", "Tonya", "Tracey",
- "Tracie", "Tracy", "Travis", "Trent", "Trevor", "Trey", "Trisha",
- "Tristan", "Troy", "Tyler", "Tyrone", "Unborn", "Valerie",
- "Vanessa", "Vernon", "Veronica", "Vicki", "Vickie", "Vicky",
- "Victor", "Victoria", "Vincent", "Virginia", "Vivian", "Walter",
- "Wanda", "Wayne", "Wendy", "Wesley", "Whitney", "William",
- "Willie", "Wyatt", "Zachary" };
+ private static String[] suffixes = {"II", "III", "Phd", "Jr", "Sr"};
+ private static String[] prefixes = {"Mr", "Mrs", "Ms"};
+ private static String[] firstNames = {"Aaron", "Abby", "Abigail", "Adam",
+ "Alan", "Albert", "Alex", "Alexandra", "Alexis", "Alice", "Alicia",
+ "Alisha", "Alissa", "Allen", "Allison", "Alyssa", "Amanda",
+ "Amber", "Amy", "Andrea", "Andrew", "Andy", "Angel", "Angela",
+ "Angie", "Anita", "Ann", "Anna", "Annette", "Anthony", "Antonio",
+ "April", "Arthur", "Ashley", "Audrey", "Austin", "Autumn", "Baby",
+ "Barb", "Barbara", "Becky", "Benjamin", "Beth", "Bethany", "Betty",
+ "Beverly", "Bill", "Billie", "Billy", "Blake", "Bob", "Bobbie",
+ "Bobby", "Bonnie", "Brad", "Bradley", "Brady", "Brandi", "Brandon",
+ "Brandy", "Breanna", "Brenda", "Brent", "Brett", "Brian",
+ "Brianna", "Brittany", "Brooke", "Brooklyn", "Bruce", "Bryan",
+ "Caleb", "Cameron", "Candy", "Carl", "Carla", "Carmen", "Carol",
+ "Carolyn", "Carrie", "Casey", "Cassandra", "Catherine", "Cathy",
+ "Chad", "Charlene", "Charles", "Charlie", "Charlotte", "Chase",
+ "Chasity", "Chastity", "Chelsea", "Cheryl", "Chester", "Cheyenne",
+ "Chris", "Christian", "Christina", "Christine", "Christoph",
+ "Christopher", "Christy", "Chuck", "Cindy", "Clara", "Clarence",
+ "Clayton", "Clifford", "Clint", "Cody", "Colton", "Connie",
+ "Corey", "Cory", "Courtney", "Craig", "Crystal", "Curtis",
+ "Cynthia", "Dakota", "Dale", "Dallas", "Dalton", "Dan", "Dana",
+ "Daniel", "Danielle", "Danny", "Darla", "Darlene", "Darrell",
+ "Darren", "Dave", "David", "Dawn", "Dean", "Deanna", "Debbie",
+ "Deborah", "Debra", "Denise", "Dennis", "Derek", "Derrick",
+ "Destiny", "Devin", "Diana", "Diane", "Dillon", "Dixie", "Dominic",
+ "Don", "Donald", "Donna", "Donnie", "Doris", "Dorothy", "Doug",
+ "Douglas", "Drew", "Duane", "Dustin", "Dusty", "Dylan", "Earl",
+ "Ed", "Eddie", "Edward", "Elaine", "Elizabeth", "Ellen", "Emily",
+ "Eric", "Erica", "Erika", "Erin", "Ernest", "Ethan", "Eugene",
+ "Eva", "Evelyn", "Everett", "Faith", "Father", "Felicia", "Floyd",
+ "Francis", "Frank", "Fred", "Gabriel", "Gage", "Gail", "Gary",
+ "Gene", "George", "Gerald", "Gina", "Ginger", "Glen", "Glenn",
+ "Gloria", "Grace", "Greg", "Gregory", "Haley", "Hannah", "Harley",
+ "Harold", "Harry", "Heath", "Heather", "Heidi", "Helen", "Herbert",
+ "Holly", "Hope", "Howard", "Hunter", "Ian", "Isaac", "Jack",
+ "Jackie", "Jacob", "Jade", "Jake", "James", "Jamie", "Jan", "Jane",
+ "Janet", "Janice", "Jared", "Jasmine", "Jason", "Jay", "Jean",
+ "Jeannie", "Jeff", "Jeffery", "Jeffrey", "Jenna", "Jennifer",
+ "Jenny", "Jeremiah", "Jeremy", "Jerry", "Jesse", "Jessica",
+ "Jessie", "Jill", "Jim", "Jimmy", "Joann", "Joanne", "Jodi",
+ "Jody", "Joe", "Joel", "Joey", "John", "Johnathan", "Johnny",
+ "Jon", "Jonathan", "Jonathon", "Jordan", "Joseph", "Josh",
+ "Joshua", "Joyce", "Juanita", "Judy", "Julia", "Julie", "Justin",
+ "Kaitlyn", "Karen", "Katelyn", "Katherine", "Kathleen", "Kathryn",
+ "Kathy", "Katie", "Katrina", "Kay", "Kayla", "Kaylee", "Keith",
+ "Kelly", "Kelsey", "Ken", "Kendra", "Kenneth", "Kenny", "Kevin",
+ "Kim", "Kimberly", "Kris", "Krista", "Kristen", "Kristin",
+ "Kristina", "Kristy", "Kyle", "Kylie", "Lacey", "Laken", "Lance",
+ "Larry", "Laura", "Lawrence", "Leah", "Lee", "Leonard", "Leroy",
+ "Leslie", "Levi", "Lewis", "Linda", "Lindsay", "Lindsey", "Lisa",
+ "Lloyd", "Logan", "Lois", "Loretta", "Lori", "Louis", "Lynn",
+ "Madison", "Mandy", "Marcus", "Margaret", "Maria", "Mariah",
+ "Marie", "Marilyn", "Marion", "Mark", "Marlene", "Marsha",
+ "Martha", "Martin", "Marty", "Marvin", "Mary", "Mary ann", "Mason",
+ "Matt", "Matthew", "Max", "Megan", "Melanie", "Melinda", "Melissa",
+ "Melody", "Michael", "Michelle", "Mickey", "Mike", "Mindy",
+ "Miranda", "Misty", "Mitchell", "Molly", "Monica", "Morgan",
+ "Mother", "Myron", "Nancy", "Natasha", "Nathan", "Nicholas",
+ "Nick", "Nicole", "Nina", "Noah", "Norma", "Norman", "Olivia",
+ "Paige", "Pam", "Pamela", "Pat", "Patricia", "Patrick", "Patty",
+ "Paul", "Paula", "Peggy", "Penny", "Pete", "Phillip", "Phyllis",
+ "Rachael", "Rachel", "Ralph", "Randall", "Randi", "Randy", "Ray",
+ "Raymond", "Rebecca", "Regina", "Renee", "Rex", "Rhonda",
+ "Richard", "Rick", "Ricky", "Rita", "Rob", "Robbie", "Robert",
+ "Roberta", "Robin", "Rochelle", "Rocky", "Rod", "Rodney", "Roger",
+ "Ron", "Ronald", "Ronda", "Ronnie", "Rose", "Roxanne", "Roy",
+ "Russ", "Russell", "Rusty", "Ruth", "Ryan", "Sabrina", "Sally",
+ "Sam", "Samantha", "Samuel", "Sandra", "Sandy", "Sara", "Sarah",
+ "Savannah", "Scott", "Sean", "Seth", "Shanda", "Shane", "Shanna",
+ "Shannon", "Sharon", "Shaun", "Shawn", "Shawna", "Sheila",
+ "Shelly", "Sher", "Sherri", "Sherry", "Shirley", "Sierra",
+ "Skyler", "Stacey", "Stacy", "Stanley", "Stephanie", "Stephen",
+ "Steve", "Steven", "Sue", "Summer", "Susan", "Sydney", "Tabatha",
+ "Tabitha", "Tamara", "Tammy", "Tara", "Tasha", "Tashia", "Taylor",
+ "Ted", "Teresa", "Terri", "Terry", "Tessa", "Thelma", "Theresa",
+ "Thomas", "Tia", "Tiffany", "Tim", "Timmy", "Timothy", "Tina",
+ "Todd", "Tom", "Tommy", "Toni", "Tony", "Tonya", "Tracey",
+ "Tracie", "Tracy", "Travis", "Trent", "Trevor", "Trey", "Trisha",
+ "Tristan", "Troy", "Tyler", "Tyrone", "Unborn", "Valerie",
+ "Vanessa", "Vernon", "Veronica", "Vicki", "Vickie", "Vicky",
+ "Victor", "Victoria", "Vincent", "Virginia", "Vivian", "Walter",
+ "Wanda", "Wayne", "Wendy", "Wesley", "Whitney", "William",
+ "Willie", "Wyatt", "Zachary"};
- private static String[] lastNames = { "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", "Smith", "Johnson", "Williams", "Jones", "Brown",
- "Davis", "Miller", "Wilson", "Moore", "Taylor", "Thomas",
- "Jackson", "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", "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", "Dawson", "Day", "Dean", "Decker", "Dejesus",
- "Delacruz", "Delaney", "Deleon", "Delgado", "Dennis", "Diaz",
- "Dickerson", "Dickinson", "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", "Harris", "Harrington", "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", "Jacobs", "Jacobson", "James", "Jarvis",
- "Jefferson", "Jenkins", "Jennings", "Jensen", "Jimenez", "Johns",
- "Johnston", "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", "Mills", "Miranda", "Mitchell",
- "Molina", "Monroe", "Montgomery", "Montoya", "Moody", "Moon",
- "Mooney", "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", "O'neal", "O'neil",
- "O'neill", "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", "Sanford", "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", "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", "Terrell", "Terry",
- "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",
- "Van halen", "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", "Williamson", "Willis",
- "Winters", "Wise", "Witt", "Wolf", "Wolfe", "Wong", "Wood",
- "Woodard", "Woods", "Woodward", "Wooten", "Workman", "Wright",
- "Wyatt", "Wynn", "Yang", "Yates", "York", "Young", "Zamora",
- "Zimmerman"
+ private static String[] lastNames = {"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", "Smith", "Johnson", "Williams", "Jones", "Brown",
+ "Davis", "Miller", "Wilson", "Moore", "Taylor", "Thomas",
+ "Jackson", "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", "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", "Dawson", "Day", "Dean", "Decker", "Dejesus",
+ "Delacruz", "Delaney", "Deleon", "Delgado", "Dennis", "Diaz",
+ "Dickerson", "Dickinson", "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", "Harris", "Harrington", "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", "Jacobs", "Jacobson", "James", "Jarvis",
+ "Jefferson", "Jenkins", "Jennings", "Jensen", "Jimenez", "Johns",
+ "Johnston", "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", "Mills", "Miranda", "Mitchell",
+ "Molina", "Monroe", "Montgomery", "Montoya", "Moody", "Moon",
+ "Mooney", "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", "O'neal", "O'neil",
+ "O'neill", "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", "Sanford", "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", "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", "Terrell", "Terry",
+ "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",
+ "Van halen", "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", "Williamson", "Willis",
+ "Winters", "Wise", "Witt", "Wolf", "Wolfe", "Wong", "Wood",
+ "Woodard", "Woods", "Woodward", "Wooten", "Workman", "Wright",
+ "Wyatt", "Wynn", "Yang", "Yates", "York", "Young", "Zamora",
+ "Zimmerman"
- };
+ };
- public String[] getFirstNames() {
- return firstNames;
- }
+ public String[] getFirstNames() {
+ return firstNames;
+ }
- public String[] getLastNames() {
- return lastNames;
- }
+ public String[] getLastNames() {
+ return lastNames;
+ }
- public String[] getPrefixes() {
- return prefixes;
- }
+ public String[] getPrefixes() {
+ return prefixes;
+ }
- public String[] getSuffixes() {
- return suffixes;
- }
+ public String[] getSuffixes() {
+ return suffixes;
+ }
}
diff --git a/src/test/java/org/fluttercode/datafactory/impl/DataFactoryTextTest.java b/src/test/java/org/fluttercode/datafactory/impl/DataFactoryTextTest.java
index 6b555c1..505eeaf 100644
--- a/src/test/java/org/fluttercode/datafactory/impl/DataFactoryTextTest.java
+++ b/src/test/java/org/fluttercode/datafactory/impl/DataFactoryTextTest.java
@@ -6,157 +6,162 @@
public class DataFactoryTextTest {
- private DataFactory dataFactory;
- private final int ITERATION_COUNT = 100000;
-
- @Before
- public void initTest() {
- dataFactory = new DataFactory();
- dataFactory.randomize(73438);
- }
-
- @Test
- public void shouldReturnRandomWordsOfVariedLength() {
- for (int i = 0; i < ITERATION_COUNT; i++) {
- int maxLength = dataFactory.getNumberUpTo(12);
-
- String word = dataFactory.getRandomWord(maxLength, false);
- Assert.assertTrue("Wrong size word", word.length() <= maxLength);
- }
- }
-
- @Test
- public void shouldReturnRandomWordsOfSpecificLength() {
- for (int i = 0; i < ITERATION_COUNT; i++) {
- int maxLength = dataFactory.getNumberUpTo(12);
-
- String word = dataFactory.getRandomWord(maxLength, true);
- Assert.assertTrue("Wrong size word", word.length() == maxLength);
- }
- }
-
- @Test
- public void shouldReturnRandomWordsOfSpecificLength2() {
- for (int i = 0; i < ITERATION_COUNT; i++) {
- int maxLength = dataFactory.getNumberUpTo(12);
-
- String word = dataFactory.getRandomWord(maxLength, true);
- Assert.assertTrue("Wrong size word", word.length() == maxLength);
- }
- }
-
- @Test
- public void shouldReturnTextOfSpecificLength() {
- for (int i = 0; i < ITERATION_COUNT; i++) {
- int len = dataFactory.getNumberUpTo(40);
- String text = dataFactory.getRandomText(len);
- Assert.assertNotNull(text);
- Assert.assertTrue(String.format(
- "Length does not match (%d, expected %d) '%s' ",
- text.length(), len, text), len == text.length());
-
- }
- }
-
- @Test
- public void shouldReturnTextWithinBoundedLengths() {
- for (int i = 0; i < ITERATION_COUNT; i++) {
- int minLen = 10 + dataFactory.getNumberUpTo(20);
- int maxLen = minLen + dataFactory.getNumberUpTo(10);
-
- String text = dataFactory.getRandomText(minLen, maxLen);
-
- Assert.assertNotNull(text);
-
- String msg = String
- .format("Length (%d) is less than expected minimum (%d) for iteration %d - text = '%s'",
- text.length(), minLen, i, text);
- Assert.assertTrue(msg, minLen <= text.length());
-
- msg = String
- .format("Length (%d) is more than expected (%d) for iteration %d - text = %s",
- text.length(), maxLen, i, text);
- Assert.assertTrue(msg, maxLen >= text.length());
-
- }
- }
-
- @Test
- public void shouldReturnRandomWordsUpToLength() {
- for (int i = 0; i < ITERATION_COUNT; i++) {
- int maxLength = dataFactory.getNumberUpTo(30);
-
- String word = dataFactory.getRandomWord(maxLength, false);
- Assert.assertTrue("Wrong size word", word.length() <= maxLength);
- }
-
- }
-
- //Test param checking on randomWord()
-
- @Test(expected=IllegalArgumentException.class)
- public void shouldErrorOnNegativeLengthForRandomWord() {
- dataFactory.getRandomWord(-1);
- }
-
- @Test(expected=IllegalArgumentException.class)
- public void shouldErrorOnNegativeMinLenForRandomWord() {
- dataFactory.getRandomWord(-1,10);
- }
- @Test(expected=IllegalArgumentException.class)
- public void shouldErrorOnNegativeMaxLenForRandomWord() {
- dataFactory.getRandomWord(0,-10);
- }
-
-
- @Test(expected=IllegalArgumentException.class)
- public void shouldErrorOnInvalidSizeLenForRandomWord() {
- dataFactory.getRandomWord(10,2);
- }
-
-
- //Test param checking on randomText()
-
- @Test(expected=IllegalArgumentException.class)
- public void shouldErrorOnNegativeLengthForRandomText() {
- dataFactory.getRandomText(-1);
- }
-
- @Test(expected=IllegalArgumentException.class)
- public void shouldErrorOnNegativeMinLenForRandomText() {
- dataFactory.getRandomText(-1,10);
- }
- @Test(expected=IllegalArgumentException.class)
- public void shouldErrorOnNegativeMaxLenForRandomText() {
- dataFactory.getRandomText(0,-10);
- }
-
-
- @Test(expected=IllegalArgumentException.class)
- public void shouldErrorOnInvalidSizeLenForRandomText() {
- dataFactory.getRandomText(10,2);
- }
-
-
- //Test param checking on randomChars()
-
- @Test(expected=IllegalArgumentException.class)
- public void shouldErrorOnNegativeLengthForRandomChars() {
- dataFactory.getRandomChars(-1);
- }
-
- @Test(expected=IllegalArgumentException.class)
- public void shouldErrorOnNegativeMinLenForRandomChars() {
- dataFactory.getRandomChars(-1,10);
- }
- @Test(expected=IllegalArgumentException.class)
- public void shouldErrorOnNegativeMaxLenForRandomChars() {
- dataFactory.getRandomChars(0,-10);
- }
-
-
- @Test(expected=IllegalArgumentException.class)
- public void shouldErrorOnInvalidSizeLenForRandomChars() {
- dataFactory.getRandomChars(10,2);
- }
+ private final int ITERATION_COUNT = 100000;
+ private DataFactory dataFactory;
+
+ @Before
+ public void initTest() {
+ dataFactory = new DataFactory();
+ dataFactory.randomize(73438);
+ }
+
+ @Test
+ public void shouldReturnRandomWordsOfVariedLength() {
+ for (int i = 0; i < ITERATION_COUNT; i++) {
+ int maxLength = dataFactory.getNumberUpTo(12);
+
+ String word = dataFactory.getRandomWord(maxLength, false);
+ Assert.assertTrue("Wrong size word", word.length() <= maxLength);
+ }
+ }
+
+ @Test
+ public void shouldReturnRandomWordsOfSpecificLength() {
+ for (int i = 0; i < ITERATION_COUNT; i++) {
+ int maxLength = dataFactory.getNumberUpTo(12);
+
+ String word = dataFactory.getRandomWord(maxLength, true);
+ Assert.assertTrue("Wrong size word", word.length() == maxLength);
+ }
+ }
+
+ @Test
+ public void shouldReturnRandomWordsOfSpecificLength2() {
+ for (int i = 0; i < ITERATION_COUNT; i++) {
+ int maxLength = dataFactory.getNumberUpTo(12);
+
+ String word = dataFactory.getRandomWord(maxLength, true);
+ Assert.assertTrue("Wrong size word", word.length() == maxLength);
+ }
+ }
+
+ @Test
+ public void shouldReturnTextOfSpecificLength() {
+ for (int i = 0; i < ITERATION_COUNT; i++) {
+ int len = dataFactory.getNumberUpTo(40);
+ String text = dataFactory.getRandomText(len);
+ Assert.assertNotNull(text);
+ Assert.assertTrue(String.format(
+ "Length does not match (%d, expected %d) '%s' ",
+ text.length(), len, text), len == text.length());
+
+ }
+ }
+
+ @Test
+ public void shouldReturnTextWithinBoundedLengths() {
+ for (int i = 0; i < ITERATION_COUNT; i++) {
+ int minLen = 10 + dataFactory.getNumberUpTo(20);
+ int maxLen = minLen + dataFactory.getNumberUpTo(10);
+
+ String text = dataFactory.getRandomText(minLen, maxLen);
+
+ Assert.assertNotNull(text);
+
+ String msg = String
+ .format("Length (%d) is less than expected minimum (%d) " +
+ "for iteration %d - text = '%s'",
+ text.length(), minLen, i, text);
+ Assert.assertTrue(msg, minLen <= text.length());
+
+ msg = String
+ .format("Length (%d) is more than expected (%d) for " +
+ "iteration %d - text = %s",
+ text.length(), maxLen, i, text);
+ Assert.assertTrue(msg, maxLen >= text.length());
+
+ }
+ }
+
+ @Test
+ public void shouldReturnRandomWordsUpToLength() {
+ for (int i = 0; i < ITERATION_COUNT; i++) {
+ int maxLength = dataFactory.getNumberUpTo(30);
+
+ String word = dataFactory.getRandomWord(maxLength, false);
+ Assert.assertTrue("Wrong size word", word.length() <= maxLength);
+ }
+
+ }
+
+ //Test param checking on randomWord()
+
+ @Test(expected = IllegalArgumentException.class)
+ public void shouldErrorOnNegativeLengthForRandomWord() {
+ dataFactory.getRandomWord(-1);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void shouldErrorOnNegativeMinLenForRandomWord() {
+ dataFactory.getRandomWord(-1, 10);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void shouldErrorOnNegativeMaxLenForRandomWord() {
+ dataFactory.getRandomWord(0, -10);
+ }
+
+
+ @Test(expected = IllegalArgumentException.class)
+ public void shouldErrorOnInvalidSizeLenForRandomWord() {
+ dataFactory.getRandomWord(10, 2);
+ }
+
+
+ //Test param checking on randomText()
+
+ @Test(expected = IllegalArgumentException.class)
+ public void shouldErrorOnNegativeLengthForRandomText() {
+ dataFactory.getRandomText(-1);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void shouldErrorOnNegativeMinLenForRandomText() {
+ dataFactory.getRandomText(-1, 10);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void shouldErrorOnNegativeMaxLenForRandomText() {
+ dataFactory.getRandomText(0, -10);
+ }
+
+
+ @Test(expected = IllegalArgumentException.class)
+ public void shouldErrorOnInvalidSizeLenForRandomText() {
+ dataFactory.getRandomText(10, 2);
+ }
+
+
+ //Test param checking on randomChars()
+
+ @Test(expected = IllegalArgumentException.class)
+ public void shouldErrorOnNegativeLengthForRandomChars() {
+ dataFactory.getRandomChars(-1);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void shouldErrorOnNegativeMinLenForRandomChars() {
+ dataFactory.getRandomChars(-1, 10);
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void shouldErrorOnNegativeMaxLenForRandomChars() {
+ dataFactory.getRandomChars(0, -10);
+ }
+
+
+ @Test(expected = IllegalArgumentException.class)
+ public void shouldErrorOnInvalidSizeLenForRandomChars() {
+ dataFactory.getRandomChars(10, 2);
+ }
}