Skip to content

Commit

Permalink
Merge branch 'isadaqah-isaac/latitude_and_longitude'
Browse files Browse the repository at this point in the history
  • Loading branch information
Ricky committed Jun 25, 2014
2 parents d57d682 + 4f961ec commit 44d5a40
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 3 deletions.
10 changes: 10 additions & 0 deletions History.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,13 @@ faker.internet().url();
faker.options().option(String[]);
```

=======
* Added latitude and longitude

```
new Faker().address().latitude();
```

```
new Faker().address().longitude();
```
14 changes: 13 additions & 1 deletion src/main/java/com/github/javafaker/Address.java
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
package com.github.javafaker;

import com.github.javafaker.service.FakeValuesService;
import com.github.javafaker.service.RandomService;

public class Address {

private final Name name;
private final FakeValuesService fakeValuesService;
private final RandomService randomService;

public Address(Name name, FakeValuesService fakeValuesService) {
public Address(Name name, FakeValuesService fakeValuesService, RandomService randomService) {
this.name = name;
this.fakeValuesService = fakeValuesService;
this.randomService = randomService;
}

public String streetName() {
Expand Down Expand Up @@ -65,4 +68,13 @@ public String firstName() {
public String lastName() {
return name.lastName();
}

public String latitude() {
return String.format("%.8g", (randomService.nextDouble() * 180) - 90);
}

public String longitude() {
return String.format("%.8g", (randomService.nextDouble() * 360) - 180);
}

}
2 changes: 1 addition & 1 deletion src/main/java/com/github/javafaker/Faker.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public Faker(Locale locale, Random random) {
this.name = new Name(fakeValuesService);
this.internet = new Internet(name, fakeValuesService);
this.phoneNumber = new PhoneNumber(fakeValuesService);
this.address = new Address(name, fakeValuesService);
this.address = new Address(name, fakeValuesService, randomService);
this.business = new Business(fakeValuesService);
this.options = new Options(randomService);
this.code = new Code(randomService);
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/com/github/javafaker/service/RandomService.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,8 @@ public RandomService(Random random) {
public int nextInt(int n) {
return RandomUtils.nextInt(random, n);
}

public double nextDouble() {
return RandomUtils.nextDouble(random);
}
}
26 changes: 26 additions & 0 deletions src/test/java/com/github/javafaker/AddressTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,30 @@ public void testStreetAddressIsANumber() {
logger.info("Street Address Number: " + streetAddressNumber);
assertThat(streetAddressNumber, isANumber());
}

@Test
public void testLatitude() {
String latStr;
Double lat;
for (int i = 0; i < 100; i++) {
latStr = faker.address().latitude();
assertThat(latStr, isANumber());
lat = new Double(latStr);
assertThat("Latitude is less then -90", lat >= -90);
assertThat("Latitude is greater than 90", lat <= 90);
}
}

@Test
public void testLongitude() {
String longStr;
Double lon;
for (int i = 0; i < 100; i++) {
longStr = faker.address().longitude();
assertThat(longStr, isANumber());
lon = new Double(longStr);
assertThat("Longitude is less then -180", lon >= -180);
assertThat("Longitude is greater than 180", lon <= 180);
}
}
}
7 changes: 6 additions & 1 deletion src/test/java/com/github/javafaker/matchers/IsANumber.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,12 @@ public class IsANumber extends TypeSafeMatcher<String> {

@Override
protected boolean matchesSafely(String item) {
return item.matches("\\d+");
try {
new Double(item);
} catch (NumberFormatException nfe) {
return false;
}
return true;
}

@Override
Expand Down

0 comments on commit 44d5a40

Please sign in to comment.