diff --git a/src/main/java/com/github/javafaker/Country.java b/src/main/java/com/github/javafaker/Country.java index 416d952d5..53a855c30 100644 --- a/src/main/java/com/github/javafaker/Country.java +++ b/src/main/java/com/github/javafaker/Country.java @@ -1,40 +1,85 @@ package com.github.javafaker; +/** + * Use to generate information of a same country. + * @author 韩霄 + * @date 2020/5/18 + */ public class Country { private final Faker faker; private final String flagUrl; + private final String[] countryTotal; protected Country(Faker faker) { this.faker = faker; this.flagUrl = "http://flags.fmcdn.net/data/flags/w580/"; + this.countryTotal = getCountryTotal().split("/"); } + /** + * Randomly fetch a total country information which seperated by "/" + * For example, ramdomly fetch "au/aus/Australia/Canberra/Australian Dollar/AUD" + * from country.yml + * @return a String, 5 "/"s and 6 information about a same country. + */ + private String getCountryTotal(){ + return faker.fakeValuesService().resolve("country.total", this, faker); + } + + /** + * generate a URL of the graph of the country's flag. + * @return a URL + */ public String flag() { - return flagUrl + faker.fakeValuesService().resolve("country.code2", this, faker) + ".png"; + return flagUrl + countryTotal[0] + ".png"; } + /** + * Generates a two-digit abbreviation of a country name + * @return a String of 2-bits. + */ public String countryCode2() { - return faker.fakeValuesService().resolve("country.code2", this, faker); + return countryTotal[0]; } + /** + * Generates a 3-digit abbreviation of a country name + * @return a String of 3-bits. + */ public String countryCode3() { - return faker.fakeValuesService().resolve("country.code3", this, faker); + return countryTotal[1]; + } + + /** + * Generates a total country name + * @return a String of name. + */ + public String name() { + return countryTotal[2]; } + /** + * Generates the name of capital of the country we just generated. + * @return a String of capital name. + */ public String capital() { - return faker.fakeValuesService().resolve("country.capital", this, faker); + return countryTotal[3]; } + /** + * Generates the currency of the country we just generated. + * @return a String currency name. + */ public String currency() { - return faker.fakeValuesService().resolve("country.currency", this, faker); + return countryTotal[4]; } + /** + * Generates the currency abbreviation of the country we just generated. + * @return a String currency abbreviation. + */ public String currencyCode() { - return faker.fakeValuesService().resolve("country.currency_code", this, faker); - } - - public String name() { - return faker.fakeValuesService().resolve("country.name", this, faker); + return countryTotal[5]; } } diff --git a/src/main/java/com/github/javafaker/Number.java b/src/main/java/com/github/javafaker/Number.java index 3afa93c34..4972ca1a3 100644 --- a/src/main/java/com/github/javafaker/Number.java +++ b/src/main/java/com/github/javafaker/Number.java @@ -28,9 +28,13 @@ public int randomDigitNotZero() { */ public int numberBetween(int min, int max) { if (min == max) return min; - - int value = decimalBetween(min,max).setScale(0, BigDecimal.ROUND_HALF_DOWN).intValue(); - return value == max ? value - 1 : value; + else if (min > max){ + int tmp = max; + max = min; + min = tmp; + } + int value = decimalBetween(min,max).setScale(0, BigDecimal.ROUND_HALF_UP).intValue(); + return value >= max ? value - 1 : value; } /** @@ -43,9 +47,13 @@ public int numberBetween(int min, int max) { */ public long numberBetween(long min, long max) { if (min == max) return min; - - long value = decimalBetween(min, max).setScale(0, BigDecimal.ROUND_HALF_DOWN).longValue(); - return value == max ? value - 1 : value; + else if (min > max){ + long tmp = max; + max = min; + min = tmp; + } + long value = decimalBetween(min, max).setScale(0, BigDecimal.ROUND_HALF_UP).longValue(); + return value >= max ? value - 1 : value; } /** @@ -101,12 +109,13 @@ private BigDecimal decimalBetween(long min, long max) { final double range = (double) trueMax - (double) trueMin; final double chunkCount = Math.sqrt(Math.abs(range)); - final double chunkSize = chunkCount; - final long randomChunk = faker.random().nextLong((long) chunkCount); + final long decimalChunkCount=(long)Math.ceil(chunkCount); + final long randomChunk = faker.random().nextLong(decimalChunkCount); + + final double chunkStart = trueMin + randomChunk * chunkCount; - final double chunkStart = trueMin + randomChunk * chunkSize; - final double adj = chunkSize * faker.random().nextDouble(); - return new BigDecimal(chunkStart + adj); + final double adj = chunkCount * faker.random().nextDouble(); + return chunkStart + adj >= trueMax ? new BigDecimal(trueMax -1) :new BigDecimal(chunkStart + adj); } public String digits(int count) { diff --git a/src/main/resources/en/country.yml b/src/main/resources/en/country.yml index c6330dc2c..e5726ed75 100644 --- a/src/main/resources/en/country.yml +++ b/src/main/resources/en/country.yml @@ -1,9 +1,170 @@ en: faker: country: - code2: ['af', 'al', 'dz', 'ad', 'ao', 'ag', 'ar', 'am', 'au', 'at', 'az', 'bs', 'bh', 'bd', 'bb', 'by', 'be', 'bz', 'bj', 'bt', 'bo', 'ba', 'bw', 'br', 'bn', 'bg', 'bf', 'bi', 'cv', 'kh', 'cm', 'ca', 'cf', 'td', 'cl', 'cn', 'co', 'km', 'cg', 'cd', 'cr', 'ci', 'hr', 'cu', 'cy', 'cz', 'dk', 'dj', 'dm', 'do', 'ec', 'eg', 'sv', 'gq', 'er', 'ee', 'sz', 'et', 'fj', 'fi', 'fr', 'ga', 'gm', 'ge', 'de', 'gh', 'gr', 'gd', 'gt', 'gn', 'gw', 'gy', 'ht', 'hn', 'hu', 'is', 'in', 'id', 'ir', 'iq', 'ie', 'il', 'it', 'jm', 'jp', 'jo', 'kz', 'ke', 'ki', 'kp', 'kr', 'kw', 'kg', 'la', 'lv', 'lb', 'ls', 'lr', 'ly', 'li', 'lt', 'lu', 'mk', 'mg', 'mw', 'my', 'mv', 'ml', 'mt', 'mh', 'mr', 'mu', 'mx', 'fm', 'md', 'mc', 'mn', 'me', 'ma', 'mz', 'mm', 'na', 'nr', 'np', 'nl', 'nz', 'ni', 'ne', 'ng', 'no', 'om', 'pk', 'pw', 'pa', 'pg', 'py', 'pe', 'ph', 'pl', 'pt', 'qa', 'ro', 'ru', 'rw', 'kn', 'lc', 'vc', 'ws', 'sm', 'st', 'sa', 'sn', 'rs', 'sc', 'sl', 'sg', 'sk', 'si', 'sb', 'so', 'za', 'ss', 'es', 'lk', 'sd', 'sr', 'se', 'ch', 'sy', 'tj', 'tz', 'th', 'tl', 'tg', 'to', 'tt', 'tn', 'tr', 'tm', 'tv', 'ug', 'ua', 'ae', 'gb', 'us', 'uy', 'uz', 'vu', 've', 'vn', 'ye', 'zm', 'zw'] - code3: ['afg', 'alb', 'dza', 'and', 'ago', 'atg', 'arg', 'arm', 'aus', 'aut', 'aze', 'bhs', 'bhr', 'bgd', 'brb', 'blr', 'bel', 'blz', 'ben', 'btn', 'bol', 'bih', 'bwa', 'bra', 'brn', 'bgr', 'bfa', 'bdi', 'cpv', 'khm', 'cmr', 'can', 'caf', 'tcd', 'chl', 'chn', 'col', 'com', 'cog', 'cod', 'cri', 'civ', 'hrv', 'cub', 'cyp', 'cze', 'dnk', 'dji', 'dma', 'dom', 'ecu', 'egy', 'slv', 'gnq', 'eri', 'est', 'swz', 'eth', 'fji', 'fin', 'fra', 'gab', 'gmb', 'geo', 'deu', 'gha', 'grc', 'grd', 'gtm', 'gin', 'gnb', 'guy', 'hti', 'hnd', 'hun', 'isl', 'ind', 'idn', 'irn', 'irq', 'irl', 'isr', 'ita', 'jam', 'jpn', 'jor', 'kaz', 'ken', 'kir', 'prk', 'kor', 'kwt', 'kgz', 'lao', 'lva', 'lbn', 'lso', 'lbr', 'lby', 'lie', 'ltu', 'lux', 'mkd', 'mdg', 'mwi', 'mys', 'mdv', 'mli', 'mlt', 'mhl', 'mrt', 'mus', 'mex', 'fsm', 'mda', 'mco', 'mng', 'mne', 'mar', 'moz', 'mmr', 'nam', 'nru', 'npl', 'nld', 'nzl', 'nic', 'ner', 'nga', 'nor', 'omn', 'pak', 'plw', 'pan', 'png', 'pry', 'per', 'phl', 'pol', 'prt', 'qat', 'rou', 'rus', 'rwa', 'kna', 'lca', 'vct', 'wsm', 'smr', 'stp', 'sau', 'sen', 'srb', 'syc', 'sle', 'sgp', 'svk', 'svn', 'slb', 'som', 'zaf', 'ssd', 'esp', 'lka', 'sdn', 'sur', 'swe', 'che', 'syr', 'tjk', 'tza', 'tha', 'tls', 'tgo', 'ton', 'tto', 'tun', 'tur', 'tkm', 'tuv', 'uga', 'ukr', 'are', 'gbr', 'usa', 'ury', 'uzb', 'vut', 'ven', 'vnm', 'yem', 'zmb', 'zwe'] - name: ["Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Antigua and Barbuda", "Argentina", "Armenia", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium", "Belize", "Benin", "Bhutan", "Bolivia (Plurinational State of)", "Bosnia and Herzegovina", "Botswana", "Brazil", "Brunei Darussalam", "Bulgaria", "Burkina Faso", "Burundi", "Cabo Verde", "Cambodia", "Cameroon", "Canada", "Central African Republic", "Chad", "Chile", "China", "Colombia", "Comoros", "Congo", "Congo, Democratic Republic of the", "Costa Rica", "C√¥te d'Ivoire", "Croatia", "Cuba", "Cyprus", "Czechia", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Eswatini", "Ethiopia", "Fiji", "Finland", "France", "Gabon", "Gambia", "Georgia", "Germany", "Ghana", "Greece", "Grenada", "Guatemala", "Guinea", "Guinea-Bissau", "Guyana", "Haiti", "Honduras", "Hungary", "Iceland", "India", "Indonesia", "Iran (Islamic Republic of)", "Iraq", "Ireland", "Israel", "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Korea (Democratic People's Republic of)", "Korea, Republic of", "Kuwait", "Kyrgyzstan", "Lao People's Democratic Republic", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macedonia, the former Yugoslav Republic of", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius", "Mexico", "Micronesia (Federated States of)", "Moldova, Republic of", "Monaco", "Mongolia", "Montenegro", "Morocco", "Mozambique", "Myanmar", "Namibia", "Nauru", "Nepal", "Netherlands", "New Zealand", "Nicaragua", "Niger", "Nigeria", "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Poland", "Portugal", "Qatar", "Romania", "Russian Federation", "Rwanda", "Saint Kitts and Nevis", "Saint Lucia", "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Sao Tome and Principe", "Saudi Arabia", "Senegal", "Serbia", "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Sudan", "Spain", "Sri Lanka", "Sudan", "Suriname", "Sweden", "Switzerland", "Syrian Arab Republic", "Tajikistan", "Tanzania, United Republic of", "Thailand", "Timor-Leste", "Togo", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey", "Turkmenistan", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom of Great Britain and Northern Ireland", "United States of America", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela (Bolivarian Republic of)", "Viet Nam", "Yemen", "Zambia", "Zimbabwe"] - capital: ["Hargeisa", "King Edward Point", "Port-aux-Fran√ßais", "Jerusalem", "Mariehamn", "Yaren", "Marigot", "Atafu", "El-Aai√∫n", "Kabul", "Tirana", "Algiers", "Pago Pago", "Andorra la Vella", "Luanda", "The Valley", "Saint John's", "Buenos Aires", "Yerevan", "Oranjestad", "Canberra", "Vienna", "Baku", "Nassau", "Manama", "Dhaka", "Bridgetown", "Minsk", "Brussels", "Belmopan", "Porto-Novo", "Hamilton", "Thimphu", "La Paz", "Sarajevo", "Gaborone", "Brasilia", "Road Town", "Bandar Seri Begawan", "Sofia", "Ouagadougou", "Rangoon", "Bujumbura", "Phnom Penh", "Yaounde", "Ottawa", "Praia", "George Town", "Bangui", "N'Djamena", "Santiago", "Beijing", "The Settlement", "West Island", "Bogota", "Moroni", "Kinshasa", "Brazzaville", "Avarua", "San Jose", "Yamoussoukro", "Zagreb", "Havana", "Willemstad", "Nicosia", "Prague", "Copenhagen", "Djibouti", "Roseau", "Santo Domingo", "Quito", "Cairo", "San Salvador", "Malabo", "Asmara", "Tallinn", "Addis Ababa", "Stanley", "Torshavn", "Suva", "Helsinki", "Paris", "Papeete", "Libreville", "Banjul", "Tbilisi", "Berlin", "Accra", "Gibraltar", "Athens", "Nuuk", "Saint George's", "Hagatna", "Guatemala City", "Saint Peter Port", "Conakry", "Bissau", "Georgetown", "Port-au-Prince", "Vatican City", "Tegucigalpa", "Budapest", "Reykjavik", "New Delhi", "Jakarta", "Tehran", "Baghdad", "Dublin", "Douglas", "Jerusalem", "Rome", "Kingston", "Tokyo", "Saint Helier", "Amman", "Astana", "Nairobi", "Tarawa", "Pyongyang", "Seoul", "Pristina", "Kuwait City", "Bishkek", "Vientiane", "Riga", "Beirut", "Maseru", "Monrovia", "Tripoli", "Vaduz", "Vilnius", "Luxembourg", "Skopje", "Antananarivo", "Lilongwe", "Kuala Lumpur", "Male", "Bamako", "Valletta", "Majuro", "Nouakchott", "Port Louis", "Mexico City", "Palikir", "Chisinau", "Monaco", "Ulaanbaatar", "Podgorica", "Plymouth", "Rabat", "Maputo", "Windhoek", "Kathmandu", "Amsterdam", "Noumea", "Wellington", "Managua", "Niamey", "Abuja", "Alofi", "Kingston", "Saipan", "Oslo", "Muscat", "Islamabad", "Melekeok", "Panama City", "Port Moresby", "Asuncion", "Lima", "Manila", "Adamstown", "Warsaw", "Lisbon", "San Juan", "Doha", "Bucharest", "Moscow", "Kigali", "Gustavia", "Jamestown", "Basseterre", "Castries", "Saint-Pierre", "Kingstown", "Apia", "San Marino", "Sao Tome", "Riyadh", "Dakar", "Belgrade", "Victoria", "Freetown", "Singapore", "Philipsburg", "Bratislava", "Ljubljana", "Honiara", "Mogadishu", "Pretoria", "Juba", "Madrid", "Colombo", "Khartoum", "Paramaribo", "Longyearbyen", "Mbabane", "Stockholm", "Bern", "Damascus", "Taipei", "Dushanbe", "Dar es Salaam", "Bangkok", "Dili", "Lome", "Nuku'alofa", "Port of Spain", "Tunis", "Ankara", "Ashgabat", "Grand Turk", "Funafuti", "Kampala", "Kyiv", "Abu Dhabi", "London", "Washington", "Montevideo", "Tashkent", "Port-Vila", "Caracas", "Hanoi", "Charlotte Amalie", "Mata-Utu", "Sanaa", "Lusaka", "Harare", "Washington", "North Nicosia", "Diego Garcia"] - currency: ["Afghani", "Euro", "Lek", "Algerian Dinar", "US Dollar", "Euro", "Kwanza", "East Caribbean Dollar", "No universal currency", "East Caribbean Dollar", "Argentine Peso", "Armenian Dram", "Aruban Florin", "Australian Dollar", "Euro", "Azerbaijan Manat", "Bahamian Dollar", "Bahraini Dinar", "Taka", "Barbados Dollar", "Belarusian Ruble", "Euro", "Belize Dollar", "CFA Franc BCEAO", "Bermudian Dollar", "Indian Rupee", "Ngultrum", "Boliviano", "Mvdol", "US Dollar", "Convertible Mark", "Pula", "Norwegian Krone", "Brazilian Real", "US Dollar", "Brunei Dollar", "Bulgarian Lev", "CFA Franc BCEAO", "Burundi Franc", "Cabo Verde Escudo", "Riel", "CFA Franc BEAC", "Canadian Dollar", "Cayman Islands Dollar", "CFA Franc BEAC", "CFA Franc BEAC", "Chilean Peso", "Unidad de Fomento", "Yuan Renminbi", "Australian Dollar", "Australian Dollar", "Colombian Peso", "Unidad de Valor Real", "Comorian Franc ", "Congolese Franc", "CFA Franc BEAC", "New Zealand Dollar", "Costa Rican Colon", "CFA Franc BCEAO", "Kuna", "Cuban Peso", "Peso Convertible", "Netherlands Antillean Guilder", "Euro", "Czech Koruna", "Danish Krone", "Djibouti Franc", "East Caribbean Dollar", "Dominican Peso", "US Dollar", "Egyptian Pound", "El Salvador Colon", "US Dollar", "CFA Franc BEAC", "Nakfa", "Euro", "Ethiopian Birr", "Euro", "Falkland Islands Pound", "Danish Krone", "Fiji Dollar", "Euro", "Euro", "Euro", "CFP Franc", "Euro", "CFA Franc BEAC", "Dalasi", "Lari", "Euro", "Ghana Cedi", "Gibraltar Pound", "Euro", "Danish Krone", "East Caribbean Dollar", "Euro", "US Dollar", "Quetzal", "Pound Sterling", "Guinean Franc", "CFA Franc BCEAO", "Guyana Dollar", "Gourde", "US Dollar", "Australian Dollar", "Euro", "Lempira", "Hong Kong Dollar", "Forint", "Iceland Krona", "Indian Rupee", "Rupiah", "SDR (Special Drawing Right)", "Iranian Rial", "Iraqi Dinar", "Euro", "Pound Sterling", "New Israeli Sheqel", "Euro", "Jamaican Dollar", "Yen", "Pound Sterling", "Jordanian Dinar", "Tenge", "Kenyan Shilling", "Australian Dollar", "North Korean Won", "Won", "Kuwaiti Dinar", "Som", "Lao Kip", "Euro", "Lebanese Pound", "Loti", "Rand", "Liberian Dollar", "Libyan Dinar", "Swiss Franc", "Euro", "Euro", "Pataca", "Denar", "Malagasy Ariary", "Malawi Kwacha", "Malaysian Ringgit", "Rufiyaa", "CFA Franc BCEAO", "Euro", "US Dollar", "Euro", "Ouguiya", "Mauritius Rupee", "Euro", "ADB Unit of Account", "Mexican Peso", "Mexican Unidad de Inversion (UDI)", "US Dollar", "Moldovan Leu", "Euro", "Tugrik", "Euro", "East Caribbean Dollar", "Moroccan Dirham", "Mozambique Metical", "Kyat", "Namibia Dollar", "Rand", "Australian Dollar", "Nepalese Rupee", "Euro", "CFP Franc", "New Zealand Dollar", "Cordoba Oro", "CFA Franc BCEAO", "Naira", "New Zealand Dollar", "Australian Dollar", "US Dollar", "Norwegian Krone", "Rial Omani", "Pakistan Rupee", "US Dollar", "No universal currency", "Balboa", "US Dollar", "Kina", "Guarani", "Sol", "Philippine Peso", "New Zealand Dollar", "Zloty", "Euro", "US Dollar", "Qatari Rial", "Euro", "Romanian Leu", "Russian Ruble", "Rwanda Franc", "Euro", "Saint Helena Pound", "East Caribbean Dollar", "East Caribbean Dollar", "Euro", "Euro", "East Caribbean Dollar", "Tala", "Euro", "Dobra", "Saudi Riyal", "CFA Franc BCEAO", "Serbian Dinar", "Seychelles Rupee", "Leone", "Singapore Dollar", "Netherlands Antillean Guilder", "Sucre", "Euro", "Euro", "Solomon Islands Dollar", "Somali Shilling", "Rand", "No universal currency", "South Sudanese Pound", "Euro", "Sri Lanka Rupee", "Sudanese Pound", "Surinam Dollar", "Norwegian Krone", "Lilangeni", "Swedish Krona", "Swiss Franc", "WIR Euro", "WIR Franc", "Syrian Pound", "New Taiwan Dollar", "Somoni", "Tanzanian Shilling", "Baht", "US Dollar", "CFA Franc BCEAO", "New Zealand Dollar", "Pa’anga", "Trinidad and Tobago Dollar", "Tunisian Dinar", "Turkish Lira", "Turkmenistan New Manat", "US Dollar", "Australian Dollar", "Uganda Shilling", "Hryvnia", "UAE Dirham", "Pound Sterling", "US Dollar", "US Dollar", "US Dollar (Next day)", "Peso Uruguayo", "Uruguay Peso en Unidades Indexadas (UI)", "Unidad Previsional", "Uzbekistan Sum", "Vatu", "Bolívar Soberano", "Dong", "US Dollar", "US Dollar", "CFP Franc", "Moroccan Dirham", "Yemeni Rial", "Zambian Kwacha", "Zimbabwe Dollar"] - currency_code: ["AFN", "EUR", "ALL", "DZD", "USD", "EUR", "AOA", "XCD", "XCD", "ARS", "AMD", "AWG", "AUD", "EUR", "AZN", "BSD", "BHD", "BDT", "BBD", "BYN", "EUR", "BZD", "XOF", "BMD", "INR", "BTN", "BOB", "BOV", "USD", "BAM", "BWP", "NOK", "BRL", "USD", "BND", "BGN", "XOF", "BIF", "CVE", "KHR", "XAF", "CAD", "KYD", "XAF", "XAF", "CLP", "CLF", "CNY", "AUD", "AUD", "COP", "COU", "KMF", "CDF", "XAF", "NZD", "CRC", "XOF", "HRK", "CUP", "CUC", "ANG", "EUR", "CZK", "DKK", "DJF", "XCD", "DOP", "USD", "EGP", "SVC", "USD", "XAF", "ERN", "EUR", "ETB", "EUR", "FKP", "DKK", "FJD", "EUR", "EUR", "EUR", "XPF", "EUR", "XAF", "GMD", "GEL", "EUR", "GHS", "GIP", "EUR", "DKK", "XCD", "EUR", "USD", "GTQ", "GBP", "GNF", "XOF", "GYD", "HTG", "USD", "AUD", "EUR", "HNL", "HKD", "HUF", "ISK", "INR", "IDR", "XDR", "IRR", "IQD", "EUR", "GBP", "ILS", "EUR", "JMD", "JPY", "GBP", "JOD", "KZT", "KES", "AUD", "KPW", "KRW", "KWD", "KGS", "LAK", "EUR", "LBP", "LSL", "ZAR", "LRD", "LYD", "CHF", "EUR", "EUR", "MOP", "MKD", "MGA", "MWK", "MYR", "MVR", "XOF", "EUR", "USD", "EUR", "MRU", "MUR", "EUR", "XUA", "MXN", "MXV", "USD", "MDL", "EUR", "MNT", "EUR", "XCD", "MAD", "MZN", "MMK", "NAD", "ZAR", "AUD", "NPR", "EUR", "XPF", "NZD", "NIO", "XOF", "NGN", "NZD", "AUD", "USD", "NOK", "OMR", "PKR", "USD", "PAB", "USD", "PGK", "PYG", "PEN", "PHP", "NZD", "PLN", "EUR", "USD", "QAR", "EUR", "RON", "RUB", "RWF", "EUR", "SHP", "XCD", "XCD", "EUR", "EUR", "XCD", "WST", "EUR", "STN", "SAR", "XOF", "RSD", "SCR", "SLL", "SGD", "ANG", "XSU", "EUR", "EUR", "SBD", "SOS", "ZAR", "SSP", "EUR", "LKR", "SDG", "SRD", "NOK", "SZL", "SEK", "CHF", "CHE", "CHW", "SYP", "TWD", "TJS", "TZS", "THB", "USD", "XOF", "NZD", "TOP", "TTD", "TND", "TRY", "TMT", "USD", "AUD", "UGX", "UAH", "AED", "GBP", "USD", "USD", "USN", "UYU", "UYI", "UYW", "UZS", "VUV", "VES", "VND", "USD", "USD", "XPF", "MAD", "YER", "ZMW", "ZWL"] + total: ["af/afg/Afghanistan/Kabul/Afghani/AFN", + "al/alb/Albania/Tirana/Lek/ALL", + "dz/dza/Algeria/Algiers/Dinar/DZD", + "ad/and/Andorra/Andorra la Vella/Euro/EUR", + "ao/ago/Angola/Luanda/Kwanza/AOA", + "ag/atg/Antigua and Barbuda/St.John's/East Caribbean dollar/XCD", + "ar/arg/Argentina/Buenos Aires/Peso/ARS", + "am/arm/Armenia/Yerevan/Dram/AMD", + "au/aus/Australia/Canberra/Australian Dollar/AUD", + "at/aut/Austria/Vienna/Euro/EUR", + "az/aze/Azerbaijan/Baku/Manat/AZN", + "bs/bhs/Bahamas/Nassau/Bahamian dollar/BSD", + "bh/bhr/Bahrain/Manama/Bahraini dinar/BHD", + "bd/bgd/Bangladesh/Dhaka/Bangladeshi taka/BDT", + "bb/brb/Barbados/Bridgetown/Barbadian dollar/BBD", + "by/blr/Belarus/Minsk/Belarusian ruble/BYN", + "be/bel/Belgium/Brussels/Euro/EUR", + "bz/blz/Belize/Belmopan/Belize dollar/BZD", + "bj/ben/Benin/Porto-Novo/West African CFA franc/XOF", + "bt/btn/Bhutan/Thimphu/Ngultrum/BTN", + "bo/bol/Bolivia/Sucre/Boliviano/BOB", + "ba/bih/Bosnia and Herzegovina/Sarajevo/Convertible mark/BAM", + "bw/bwa/Botswana/Gaborone/Botswana pula/BWP", + "br/bra/Brazil/Brasília/Real/BRL", + "bn/brn/Brunei Darussalam/Bandar Seri Begawan/Brunei dollar/BND", + "bg/bgr/Bulgaria/Sofia/Lev/BGN", + "bf/bfa/Burkina Faso/Ouagadougou/West African CFA franc/XOF", + "bi/bdi/Burundi/Gitega/Burundian franc/FBu", + "cv/cpv/Cabo Verde/Praia/Cape Verdean escudo/CVE", + "kh/khm/Cambodia/Phnom Penh/Riel/KHR", + "cm/cmr/Cameroon/Yaoundé/Central African CFA franc/XAF", + "ca/can/Canada/Ottawa/Canadian dollar/CAD", + "cf/caf/Central African Republic/Bangui/Central African CFA franc/XAF", + "td/tcd/Chad/N'Djamena/Central African CFA franc/XAF", + "cl/chl/Chile/Santiago/Peso/CLP", + "cn/chn/China/Beijing/Renminbi/CNY", + "co/col/Colombia/Bogotá/Peso/COP", + "km/com/Comoros/Moroni/Comorian franc/KMF", + "cg/cog/Congo/Brazzaville/Central African CFA franc/XAF", + "cr/cri/Costa Rica/San José/Costa Rican colón/CRC", + "hr/hrv/Croatia/Zagreb/Kuna/HRK", + "cu/cub/Cuba/Havana/Convertible peso/CUC", + "cy/cyp/Cyprus/Nicosia/Euro/EUR", + "cz/cze/Czechia/Prague/Czech koruna/CZK", + "dk/dnk/Denmark/Copenhagen/Danish krone/DKK", + "dj/dji/Djibouti/Djibouti/Djiboutian franc/DJF", + "dm/dma/Dominica/Roseau/East Caribbean dollar/XCD", + "do/dom/Dominican Republic/Santo Domingo/Peso/DOP", + "ec/ecu/Ecuador/Quito/United States dollar/USD", + "eg/egy/Egypt/Cairo/Egyptian pound/EGP", + "sv/slv/El Salvador/San Salvador/United States dollara/USD", + "gq/gnq/Equatorial Guinea/Malabo/Central African CFA franc/XAF", + "er/eri/Eritrea/Asmara/Nakfa/ERN", + "ee/est/Estonia/Tallinn/Euro/EUR", + "et/eth/Ethiopia/Addis Ababa/Birr/ETB", + "fj/fji/Fiji/Suva/Fijian dollar/FJD", + "fi/fin/Finland/Helsinki/Euro/EUR", + "fr/fra/France/Paris/Euro/EUR", + "ga/gab/Gabon/Libreville/Central African CFA franc/XAF", + "gm/gmb/Gambia/Banjul/Dalasi/GMD", + "ge/geo/Germany/Berlin/Euro/EUR", + "gh/gha/Ghana/Accra/Ghanaian cedi/GHS", + "gr/grc/Greece/Athens/Euro/EUR", + "gd/grd/Grenada/St. George's/East Caribbean dollar/XCD", + "gn/gin/Guinea/Conakry/Guinean franc/GNF", + "gw/gnb/Guinea-Bissau/Bissau/West African CFA franc/XOF", + "gy/guy/Guyana/Georgetown/Guyanese dollar/GYD", + "ht/hti/Haiti/Port-au-Prince/Haitian gourde/HTG", + "hn/hnd/Honduras/Tegucigalpa/Lempira/NHL", "hu/hun/Hungary/Budapest/Forint/HUF", + "is/isl/Iceland/Reykjavík/Icelandic króna/ISK", + "in/ind/India/New Delhi/Indian rupee/INR", + "id/idn/Indonesia/Jakarta/Indonesian rupiah/IDR", + "ir/irn/Iran (Islamic Republic of)/Tehran/Rial/IRR", + "iq/irq/Iraq/Baghdad/Iraqi dinar/IQD", + "it/ita/Italy/Rome/Euro/EUR", + "jm/jam/Jamaica/Kingston/Jamaican dollar/JMD", + "jp/jpn/Japan/Tokyo/Japanese yen/JPY", + "jo/jor/Jordan/Amman/Jordanian dinar/JOD", + "kz/kaz/Kazakhstan/Nur-Sultan/Tenge/KZT", + "ke/ken/Kenya/Nairobi/Kenyan shilling/KSH", + "ki/kir/Kiribati/Tarawa/Kiribati dollar and Australian dollar/AUD", + "kp/prk/Korea (Democratic People's Republic of)/Pyongyang/Korean People's won/KPW", + "kr/kor/Korea, Republic of/Seoul/Korean Republic won/KRW", + "kw/kwt/Kuwait/Kuwait City/Kuwaiti dinar/KWD", + "kg/kgz/Kyrgyzstan/Bishkek/Som/KGS", + "la/lao/Lao People's Democratic Republic/Vientiane/Kip/LAK", + "lb/lbn/Lebanon/Beirut/Lebanese pound/LBP", + "ls/lso/Lesotho/Maseru/South African rand/ZAR", + "lr/lbr/Liberia/Monrovia/Liberian dollar/LRD", + "ly/lby/Libya/Tripoli/Libyan dinar/LYD", + "li/lie/Liechtenstein/Vaduz/Swiss franc/CHF", + "lt/ltu/Lithuania/Vilnius/Euro/EUR", + "lu/lux/Luxembourg/Luxembourg City/Euro/EUR", + "mg/mdg/Madagascar/Antananarivo/Malagasy ariary/MGA", + "mw/mwi/Malawi/Lilongwe/Kwacha/MWK", + "my/mys/Malaysia/Kuala Lumpur and Putrajaya/Ringgit/MYR", + "mv/mdv/Maldives/Malé/Maldivian rufiyaa/MVR", + "ml/mli/Mali/Bamako/West African CFA franc/XOF", + "mt/mlt/Malta/Valletta/Euro/EUR", + "mh/mhl/Marshall Islands/Majuro/United States dollar/USD", + "mr/mrt/Mauritania/Nouakchott/Ouguiya/MRU", + "mx/mex/Mexico/Mexico City/Peso/MXN", + "md/mda/Moldova, Republic of/Chișinău/Leu/MDL", + "mc/mco/Monaco/Monte Carlo/Euro/EUR", + "mn/mng/Mongolia/Ulaanbaatar/Tögrög/MNT", + "mz/moz/Mozambique/Maputo/Mozambican metical/MZN", + "mm/mmr/Myanmar/Naypyidaw/Kyat/MMK", + "nr/nru/Nauru/Yaren/Australian dollar/AUD", + "np/npl/Nepal/Kathmandu/Nepalese rupee/NPR", + "nl/nld/Netherlands/Amsterdam/Euro/EUR", + "nz/nzl/New Zealand/Wellington/New Zealand dollar/NZD", + "ng/nga/Nigeria/Abuja/Naira/NGN", + "no/nor/Norway/Oslo/Norwegian krone/NOK", + "om/omn/Oman/Muscat/Rial/OMR", + "pk/pak/Pakistan/Islamabad/Pakistani rupee/PKR", + "pw/plw/Palau/Ngerulmud/United States dollar/USD", + "pa/pan/Panama/Panama City/United States dollar/USD", + "pg/png/Papua New Guinea/Port Moresby/Papua New Guinean kina/PGK", + "ph/phl/Philippines/Manila/Philippine peso/PHP", + "pl/pol/Poland/Warsaw/Polish złoty/PLN", + "pt/prt/Portugal/Lisbon/Euro/EUR", + "qa/qat/Qatar/Doha/Riyal/QAR", + "ro/rou/Romania/Bucharest/Romanian leu/RON", + "ru/rus/Russian Federation/Moscow/Russian ruble/RUB", + "rw/rwa/Rwanda/Kigali/Rwandan franc/RWF", + "lc/lca/Saint Lucia/Castries/East Caribbean dollar/XCD", + "sm/smr/San Marino/San Marino/Euro/EUR", + "st/stp/Sao Tome and Principe/São Tomé/Dobra/STN", + "sa/sau/Saudi Arabia/Riyadh/Saudi riyal/SAR", + "sn/sen/Senegal/Dakar/West African CFA franc/XOF", + "sr/srb/Serbia/Belgrade/Serbian dinar/RSD", + "sc/syc/Seychelles/Victoria/Seychellois rupee/SCR", + "sl/sle/Sierra Leone/Freetown/Leone/SLL", + "sg/sgp/Singapore/Singapore/Singapore dollar/SGD", + "sk/svk/Slovakia/Bratislava/Euro/EUR", + "sb/slb/Solomon Islands/Honiara/Solomon Islands dollar/SBD", + "so/som/Somalia/Mogadishu/Somali shilling/SOS", + "za/zaf/South Africa/Pretoria (executive), Bloemfontein (judicial), Cape Town (legislative)/South African rand/ZAR", + "ss/ssd/South Sudan/Juba/South Sudanese pound/SSP", + "es/esp/Spain/Madrid/Euro/EUR", + "lk/lka/Sri Lanka/Sri Jayawardenepura Kotte/Sri Lankan rupee/LKR", + "sd/sdn/Sudan/Khartoum/Sudanese pound/SDG", + "sr/sur/Suriname/Paramaribo/Surinamese dollar/SRD", + "se/swe/Sweden/Stockholm/Swedish krona/SEK", + "ch/che/Switzerland/None/Swiss franc/CHF", + "tj/tjk/Tajikistan/Dushanbe/Somoni/TJS", + "tz/tza/Tanzania, United Republic of/Dodoma/Tanzanian shilling/TZS", + "th/tha/Thailand/Bangkok/Baht/THB", + "tl/tls/Timor-Leste/Dili/United States dollar/USD", + "tg/tgo/Togo/Lomé/West African CFA franc/XOF", + "to/ton/Tonga/Nukuʻalofa/Paʻanga/TOP", + "tr/tur/Turkey/Ankara/Turkish lira/TRY", + "tm/tkm/Turkmenistan/Ashgabat/Turkmen new manat/TMT", + "tv/tuv/Tuvalu/Funafuti/Australian dollar/AUD", + "ug/uga/Uganda/Kampala/Ugandan shilling/UGX", + "ua/ukr/Ukraine/Kiev/Ukrainian hryvnia/UAH", + "ae/are/United Arab Emirates/Abu Dhabi/UAE dirham/AED", + "gb/gbr/United Kingdom of Great Britain and Northern Ireland/London/Pound sterling/GBP", + "us/usa/United States of America/Washington, D.C/United States dollar/USD", + "uy/ury/Uruguay/Montevideo/Uruguayan peso/UYU", + "uz/uzb/Uzbekistan/Tashkent/Uzbek som/UZS", + "vu/vut/Vanuatu/Port Vila/Vanuatu vatu/VUV", + "ve/ven/Venezuela (Bolivarian Republic of)/Caracas/Bolívar Soberano/VES", + "yvn/vnm/VietNam/Hanoi/đồng/VND", + "ye/yem/Yemen/Sana'a/Yemeni rial/YER", + "zm/zmb/Zambia/Lusaka/Zambian kwacha/ZMW", + "zw/zwe/Zimbabwe/Harare/Zimbabwean dollar/ZWD"] diff --git a/src/test/java/com/github/javafaker/NumberTest.java b/src/test/java/com/github/javafaker/NumberTest.java index c4aae787a..3f1e0c994 100644 --- a/src/test/java/com/github/javafaker/NumberTest.java +++ b/src/test/java/com/github/javafaker/NumberTest.java @@ -120,6 +120,26 @@ public void testNumberBetween() { long v1 = faker.number().numberBetween(min1, 980000000L); assertThat(v1, is(greaterThan((long) min1))); assertThat(v1, is(lessThan(980000000L))); + + boolean isFind = false; + for (int i = 0; i < 100000; i++) { + int r = faker.number().numberBetween(0, 7); + if (r == 6) { + isFind = true; + break; + } + } + assertThat(isFind,is(true)); + + isFind = false; + for (int i = 0; i < 100000; i++) { + long r = faker.number().numberBetween(0L, 7L); + if (r == 6) { + isFind = true; + break; + } + } + assertThat(isFind,is(true)); } @Test