Skip to content

Commit f073184

Browse files
authored
Added numberBetween for doubles. (#1392)
* Added numberBetween for doubles.
1 parent 87a3803 commit f073184

File tree

20 files changed

+67
-40
lines changed

20 files changed

+67
-40
lines changed

src/main/java/net/datafaker/providers/base/Number.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public int negative() {
5050
* @return a random number on faker.number() between min and max
5151
* if min = max, return min
5252
*/
53-
public int numberBetween(final int min, final int max) {
53+
public int numberBetween(int min, int max) {
5454
if (min == max) return min;
5555
final int realMin = Math.min(min, max);
5656
final int realMax = Math.max(min, max);
@@ -67,6 +67,16 @@ public int numberBetween(final int min, final int max) {
6767
* @return a random number on faker.number() between min and max
6868
* if min = max, return min
6969
*/
70+
public double numberBetween(double min, double max) {
71+
return faker.random().nextDouble(min, max);
72+
}
73+
74+
/**
75+
* @param min the lower bound (include min)
76+
* @param max the upper bound (not include max)
77+
* @return a random number on faker.number() between min and max
78+
* if min = max, return min
79+
*/
7080
public long numberBetween(long min, long max) {
7181
if (min == max) return min;
7282
final long realMin = Math.min(min, max);

src/test/java/net/datafaker/FakerTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,6 @@ void badExpressionCouldntCoerce() {
154154
void expression() {
155155
assertThat(faker.expression("#{options.option 'a','b','c','d'}")).matches("([abcd])");
156156
assertThat(faker.expression("#{options.option 'single'}")).isEqualTo("single");
157-
assertThat(faker.expression("#{options.option ''''}")).isEqualTo("'");
158157
assertThat(faker.expression("#{options.option '12','345','89','54321'}")).matches("(12|345|89|54321)");
159158
assertThat(faker.expression("#{regexify '(a|b){2,3}'}")).matches("([ab]){2,3}");
160159
assertThat(faker.expression("#{regexify '\\.\\*\\?\\+'}")).matches("\\.\\*\\?\\+");
@@ -163,7 +162,7 @@ void expression() {
163162
assertThat(faker.expression("#{letterify '????','true'}")).matches("[A-Z]{4}");
164163
assertThat(faker.expression("#{templatify '????','?','1','2','q','r'}")).matches("([12qr]){4}");
165164
assertThat(faker.expression("#{Name.first_name} #{Name.first_name} #{Name.last_name}")).matches("[a-zA-Z']+ [a-zA-Z']+ [a-zA-Z']+");
166-
assertThat(faker.expression("#{number.number_between '1','10'}")).matches("[1-9]");
165+
assertThat(faker.expression("#{number.number_between '1','10'}")).matches("[1-9](\\.[0-9]+)?");
167166
assertThat(faker.expression("#{color.name}")).matches("[a-z\\s]+");
168167
assertThat(faker.expression("#{date.past '15','SECONDS','dd/MM/yyyy hh:mm:ss'}"))
169168
.matches("[0-9]{2}/[0-9]{2}/[0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2}");
@@ -211,7 +210,7 @@ void testLimitForCsvExpression(int limit) {
211210

212211
@RepeatedTest(100)
213212
void numberBetweenRepeated() {
214-
assertThat(faker.expression("#{number.number_between '1','10'}")).matches("[1-9]");
213+
assertThat(faker.expression("#{number.number_between '1','10'}")).matches("[1-9](\\.[0-9]+)?");
215214
}
216215

217216
@Test

src/test/java/net/datafaker/providers/base/AddressTest.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,15 @@ void testStreetAddressIsANumber() {
7373
assertThat(streetAddressNumber).matches("[0-9]+");
7474
}
7575

76-
@RepeatedTest(100)
76+
@RepeatedTest(10)
7777
void testLatitude() {
7878
String latStr = faker.address().latitude().replace(decimalSeparator, '.');
7979
assertThat(latStr).is(IS_A_NUMBER);
8080
Double lat = Double.valueOf(latStr);
8181
assertThat(lat).isBetween(-90.0, 90.0);
8282
}
8383

84-
@RepeatedTest(100)
84+
@RepeatedTest(10)
8585
void testLongitude() {
8686
String longStr = faker.address().longitude().replace(decimalSeparator, '.');
8787
assertThat(longStr).is(IS_A_NUMBER);
@@ -232,25 +232,25 @@ void testZipPlus4IsNineDigits() {
232232
assertThat(zipCodeParts[1]).matches("[0-9]{4}");
233233
}
234234

235-
@RepeatedTest(100)
235+
@RepeatedTest(10)
236236
void testLatLonEnUs() {
237237
assertThat(US_FAKER.address().latLon())
238238
.matches(BI_LAT_LON_REGEX.apply(ESCAPED_DECIMAL_SEPARATOR.apply(US_FAKER.getContext().getLocale()), ","));
239239
}
240240

241-
@RepeatedTest(100)
241+
@RepeatedTest(10)
242242
void testLatLonNl() {
243243
assertThat(NL_FAKER.address().latLon())
244244
.matches(BI_LAT_LON_REGEX.apply(ESCAPED_DECIMAL_SEPARATOR.apply(NL_FAKER.getContext().getLocale()), ","));
245245
}
246246

247-
@RepeatedTest(100)
247+
@RepeatedTest(10)
248248
void testLonLatEnUs() {
249249
assertThat(US_FAKER.address().lonLat())
250250
.matches(BI_LON_LAT_REGEX.apply(ESCAPED_DECIMAL_SEPARATOR.apply(US_FAKER.getContext().getLocale()), ","));
251251
}
252252

253-
@RepeatedTest(100)
253+
@RepeatedTest(10)
254254
void testLonLatNl() {
255255
assertThat(NL_FAKER.address().lonLat())
256256
.matches(BI_LON_LAT_REGEX.apply(ESCAPED_DECIMAL_SEPARATOR.apply(NL_FAKER.getContext().getLocale()), ","));
@@ -275,28 +275,28 @@ void cyrillicStreetName(String locale) {
275275
assertThat(localFaker.address().streetName()).isNotEmpty().matches(CYRILLIC_LETTERS);
276276
}
277277

278-
@RepeatedTest(100)
278+
@RepeatedTest(10)
279279
void dutchAddress() {
280280
assertThat(NL_FAKER.address().stateAbbr()).matches("[A-Z]{2}");
281281
assertThat(NL_FAKER.address().fullAddress()).matches("[A-Z].+, [0-9]{4} [A-Z]{2}, [A-Z].+");
282282
}
283283

284-
@RepeatedTest(100)
284+
@RepeatedTest(10)
285285
void belgianSAddress() {
286286
assertThat(BELGIAN_FAKER.address().stateAbbr()).matches("[A-Z]{3}");
287287
assertThat(BELGIAN_FAKER.address().fullAddress()).matches("[A-Z].+, [0-9]{4}, [A-Z].+");
288288
}
289289

290-
@RepeatedTest(100)
290+
@RepeatedTest(10)
291291
void belgianZipcode() {
292292
assertThat(Integer.valueOf(BELGIAN_FAKER.address().zipCode())).isBetween(1000, 9992);
293293
}
294294

295-
@RepeatedTest(100)
295+
@RepeatedTest(10)
296296
void australiaAddress() {
297297
assertThat(AU_FAKER.address().fullAddress()).matches("(Unit|[0-9]).+, [A-Z].+, [A-Z]{2,3} [0-9]{4}");
298298
}
299-
@RepeatedTest(100)
299+
@RepeatedTest(10)
300300
void testCityCnSuffix() {
301301
assertThat(new Faker(Locale.CHINA).address().citySuffix()).matches("[\\u4e00-\\u9fa5]{1,7}(?:省|自治区)");
302302
}

src/test/java/net/datafaker/providers/base/AnimalTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@ protected Collection<TestSpec> providerListTest() {
1515
return List.of(TestSpec.of(animal::name, "creature.animal.name"));
1616
}
1717

18-
@RepeatedTest(100)
18+
@RepeatedTest(10)
1919
void scientificName() {
2020
assertThat(animal.scientificName()).matches("[A-Z][a-z]+ [a-z]+");
2121
}
2222

23-
@RepeatedTest(100)
23+
@RepeatedTest(10)
2424
void genus() {
2525
assertThat(animal.genus()).matches("[A-Z][a-z]+");
2626
}
2727

28-
@RepeatedTest(100)
28+
@RepeatedTest(10)
2929
void species() {
3030
assertThat(animal.species()).matches("[a-z]+");
3131
}

src/test/java/net/datafaker/providers/base/BoolTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
class BoolTest extends BaseFakerTest<BaseFaker> {
88

9-
@RepeatedTest(100)
9+
@RepeatedTest(10)
1010
void testBool() {
1111
assertThat(faker.bool().bool()).isIn(true, false);
1212
}

src/test/java/net/datafaker/providers/base/CNPJTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class CNPJTest extends BaseFakerTest<BaseFaker> {
1414
/**
1515
* A valid CNPJ is either a real number or a generated valid number.
1616
*/
17-
@RepeatedTest(1000)
17+
@RepeatedTest(10)
1818
void isValidCNPJ() {
1919
CNPJ cnpj = faker.cnpj();
2020
assertThat(isCNPJValid(cnpj.valid())).describedAs("Current value " + cnpj).isTrue();
@@ -23,7 +23,7 @@ void isValidCNPJ() {
2323
/**
2424
* A invalid CNPJ is that does not meet the requirements of the algorithm
2525
*/
26-
@RepeatedTest(1000)
26+
@RepeatedTest(10)
2727
void isInvalidCNPJ() {
2828
CNPJ cnpj = faker.cnpj();
2929
assertThat(isCNPJValid(cnpj.invalid())).describedAs("Current value " + cnpj).isFalse();
@@ -46,7 +46,7 @@ void valid_multiBranchIsTrue_shouldGenerateCNPJWithBranchNumberGreaterThan0001()
4646
assertThat(isCNPJValid(cnpj)).describedAs("Current value " + cnpj).isTrue();
4747
}
4848

49-
@RepeatedTest(1000)
49+
@RepeatedTest(10)
5050
void invalid_multiBranchIsTrue_shouldGenerateCNPJWithBranchNumberGreaterThan0001() {
5151
final CNPJ cnpj1 = faker.cnpj();
5252
String cnpj = cnpj1.invalid(true, true);

src/test/java/net/datafaker/providers/base/CompanyTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ void testLogo() {
4747
assertThat(company.logo()).matches("https://pigment.github.io/fake-logos/logos/medium/color/\\d+\\.png");
4848
}
4949

50-
@RepeatedTest(100)
50+
@RepeatedTest(10)
5151
void testUrl() {
5252
assertThat(company.url()).matches(URL_PATTERN);
5353
}

src/test/java/net/datafaker/providers/base/FamousLastWordsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
class FamousLastWordsTest extends BaseFakerTest<BaseFaker> {
88

9-
@RepeatedTest(1000)
9+
@RepeatedTest(10)
1010
void testLastWords() {
1111
assertThat(faker.famousLastWords().lastWords()).matches("^[A-Za-z- .,'!?-…]+$");
1212
}

src/test/java/net/datafaker/providers/base/LocalityTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ void localeStringRandom() {
6363
* Test to check Locality's localeStringWithRandom method. It verifies that the randomly selected
6464
* locale is within the set of all supported locales
6565
*/
66-
@RepeatedTest(100)
66+
@RepeatedTest(10)
6767
void localeStringWithRandom() {
6868
Random random = new Random();
6969
String randomLocale = locality.localeStringWithRandom(random);

src/test/java/net/datafaker/providers/base/MusicTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ void chord() {
2626
assertThat(faker.music().chord()).matches("([A-Z])+([b#])?+(-?[a-zA-Z0-9]{0,4})");
2727
}
2828

29-
@RepeatedTest(100)
29+
@RepeatedTest(10)
3030
void genre() {
3131
assertThat(faker.music().genre()).matches("[ -?\\w+]+");
3232
}

0 commit comments

Comments
 (0)