Skip to content

Commit a5e8cbf

Browse files
Guardiola31337zugaldia
authored andcommitted
Geojson raw array tests (#192)
* add tests for raw array construction into LineString * add tests for raw array construction into MultiLineString * fix typo in MultiLineString href javadoc * add tests for raw array construction into MultiPoint * add tests for raw array construction into MultiPolygon * add tests for raw array construction into Point * fix Polygon tests for raw array construction * add tests for raw array construction into Position * fix code style and formatting
1 parent be8b477 commit a5e8cbf

9 files changed

Lines changed: 322 additions & 35 deletions

File tree

libjava/lib/src/main/java/com/mapbox/services/commons/geojson/MultiLineString.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
/**
1212
* A MultiLineString is a type of {@link Geometry}.
1313
*
14-
* @see <a href='http://geojson.org/geojson-spec.html#multilinestringn'>Official GeoJSON MultiLineString Specifications</a>
14+
* @see <a href='http://geojson.org/geojson-spec.html#multilinestring'>Official GeoJSON MultiLineString Specifications</a>
1515
* @since 1.0.0
1616
*/
1717
public class MultiLineString implements Geometry<List<List<Position>>> {

libjava/lib/src/main/java/com/mapbox/services/commons/models/Position.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ public double getAltitude() {
6464
*/
6565
public double[] getCoordinates() {
6666
if (hasAltitude()) {
67-
return new double[] {getLongitude(), getLatitude(), getAltitude()};
67+
return new double[]{getLongitude(), getLatitude(), getAltitude()};
6868
} else {
69-
return new double[] {getLongitude(), getLatitude()};
69+
return new double[]{getLongitude(), getLatitude()};
7070
}
7171
}
7272

libjava/lib/src/test/java/com/mapbox/services/geojson/LineStringTest.java

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.mapbox.services.geojson;
22

33
import com.mapbox.services.commons.geojson.LineString;
4-
4+
import com.mapbox.services.commons.models.Position;
55
import org.junit.Test;
66

7+
import java.util.List;
8+
79
import static org.junit.Assert.assertEquals;
810
import static org.junit.Assert.assertFalse;
911

@@ -24,4 +26,42 @@ public void toJson() {
2426
compareJson(BaseGeoJSON.SAMPLE_LINESTRING, geo.toJson());
2527
}
2628

29+
@Test
30+
public void checksEqualityFromCoordinates() {
31+
LineString aLine = LineString.fromCoordinates(new double[][]{
32+
{100.0, 0.0}, {101.0, 1.0}
33+
});
34+
35+
String lineCoordinates = obtainLiteralCoordinatesFrom(aLine);
36+
37+
assertEquals("Line: \n"
38+
+ "Position [longitude=100.0, latitude=0.0, altitude=NaN]\n"
39+
+ "Position [longitude=101.0, latitude=1.0, altitude=NaN]\n",
40+
lineCoordinates);
41+
}
42+
43+
@Test
44+
public void checksJsonEqualityFromCoordinates() {
45+
LineString aLine = LineString.fromCoordinates(new double[][]{
46+
{100.0, 0.0}, {101.0, 1.0}
47+
});
48+
49+
String lineJsonCoordinates = aLine.toJson();
50+
51+
compareJson("{ \"type\": \"LineString\",\n"
52+
+ "\"coordinates\": [ [100.0, 0.0], [101.0, 1.0] ]\n}",
53+
lineJsonCoordinates);
54+
}
55+
56+
private String obtainLiteralCoordinatesFrom(LineString line) {
57+
List<Position> lineCoordinates = line.getCoordinates();
58+
StringBuilder literalCoordinates = new StringBuilder();
59+
literalCoordinates.append("Line: \n");
60+
for (Position point : lineCoordinates) {
61+
literalCoordinates.append(point.toString());
62+
literalCoordinates.append("\n");
63+
}
64+
return literalCoordinates.toString();
65+
}
66+
2767
}
Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package com.mapbox.services.geojson;
22

3+
import com.mapbox.services.commons.geojson.MultiLineString;
4+
import com.mapbox.services.commons.models.Position;
35
import org.junit.Test;
46

7+
import java.util.List;
8+
59
import static org.junit.Assert.assertEquals;
610
import static org.junit.Assert.assertFalse;
711

812
public class MultiLineStringTest extends BaseGeoJSON {
913

1014
@Test
1115
public void fromJson() {
12-
com.mapbox.services.commons.geojson.MultiLineString geo = com.mapbox.services.commons.geojson.MultiLineString.fromJson(BaseGeoJSON.SAMPLE_MULTILINESTRING);
16+
MultiLineString geo = MultiLineString.fromJson(BaseGeoJSON.SAMPLE_MULTILINESTRING);
1317
assertEquals(geo.getType(), "MultiLineString");
1418
assertEquals(geo.getCoordinates().get(0).get(0).getLongitude(), 100.0, 0.0);
1519
assertEquals(geo.getCoordinates().get(0).get(0).getLatitude(), 0.0, 0.0);
@@ -18,8 +22,58 @@ public void fromJson() {
1822

1923
@Test
2024
public void toJson() {
21-
com.mapbox.services.commons.geojson.MultiLineString geo = com.mapbox.services.commons.geojson.MultiLineString.fromJson(BaseGeoJSON.SAMPLE_MULTILINESTRING);
25+
MultiLineString geo = MultiLineString.fromJson(BaseGeoJSON.SAMPLE_MULTILINESTRING);
2226
compareJson(BaseGeoJSON.SAMPLE_MULTILINESTRING, geo.toJson());
2327
}
2428

29+
@Test
30+
public void checksEqualityFromCoordinates() {
31+
MultiLineString aMultiLine = MultiLineString.fromCoordinates(new double[][][]{
32+
{{100.0, 0.0}, {101.0, 1.0}},
33+
{{102.0, 2.0}, {103.0, 3.0}}
34+
});
35+
36+
String multiLineCoordinates = obtainLiteralCoordinatesFrom(aMultiLine);
37+
38+
assertEquals("Lines: \n"
39+
+ "Line: \n"
40+
+ "Position [longitude=100.0, latitude=0.0, altitude=NaN]\n"
41+
+ "Position [longitude=101.0, latitude=1.0, altitude=NaN]\n"
42+
+ "Line: \n"
43+
+ "Position [longitude=102.0, latitude=2.0, altitude=NaN]\n"
44+
+ "Position [longitude=103.0, latitude=3.0, altitude=NaN]\n",
45+
multiLineCoordinates);
46+
}
47+
48+
@Test
49+
public void checksJsonEqualityFromCoordinates() {
50+
MultiLineString aMultiLine = MultiLineString.fromCoordinates(new double[][][]{
51+
{{100.0, 0.0}, {101.0, 1.0}},
52+
{{102.0, 2.0}, {103.0, 3.0}}
53+
});
54+
55+
String multiLineJsonCoordinates = aMultiLine.toJson();
56+
57+
compareJson("{ \"type\": \"MultiLineString\",\n"
58+
+ "\"coordinates\": [\n"
59+
+ "[ [100.0, 0.0], [101.0, 1.0] ],\n"
60+
+ "[ [102.0, 2.0], [103.0, 3.0] ]\n"
61+
+ "]\n"
62+
+ "}", multiLineJsonCoordinates);
63+
}
64+
65+
private String obtainLiteralCoordinatesFrom(MultiLineString multiLine) {
66+
List<List<Position>> multiLineCoordinates = multiLine.getCoordinates();
67+
StringBuilder literalCoordinates = new StringBuilder();
68+
literalCoordinates.append("Lines: \n");
69+
for (List<Position> line : multiLineCoordinates) {
70+
literalCoordinates.append("Line: \n");
71+
for (Position point : line) {
72+
literalCoordinates.append(point.toString());
73+
literalCoordinates.append("\n");
74+
}
75+
}
76+
return literalCoordinates.toString();
77+
}
78+
2579
}
Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package com.mapbox.services.geojson;
22

3+
import com.mapbox.services.commons.geojson.MultiPoint;
4+
import com.mapbox.services.commons.models.Position;
35
import org.junit.Test;
46

7+
import java.util.List;
8+
59
import static org.junit.Assert.assertEquals;
610
import static org.junit.Assert.assertFalse;
711

812
public class MultiPointTest extends BaseGeoJSON {
913

1014
@Test
1115
public void fromJson() {
12-
com.mapbox.services.commons.geojson.MultiPoint geo = com.mapbox.services.commons.geojson.MultiPoint.fromJson(BaseGeoJSON.SAMPLE_MULTIPOINT);
16+
MultiPoint geo = MultiPoint.fromJson(BaseGeoJSON.SAMPLE_MULTIPOINT);
1317
assertEquals(geo.getType(), "MultiPoint");
1418
assertEquals(geo.getCoordinates().get(0).getLongitude(), 100.0, 0.0);
1519
assertEquals(geo.getCoordinates().get(0).getLatitude(), 0.0, 0.0);
@@ -18,8 +22,46 @@ public void fromJson() {
1822

1923
@Test
2024
public void toJson() {
21-
com.mapbox.services.commons.geojson.MultiPoint geo = com.mapbox.services.commons.geojson.MultiPoint.fromJson(BaseGeoJSON.SAMPLE_MULTIPOINT);
25+
MultiPoint geo = MultiPoint.fromJson(BaseGeoJSON.SAMPLE_MULTIPOINT);
2226
compareJson(BaseGeoJSON.SAMPLE_MULTIPOINT, geo.toJson());
2327
}
2428

29+
@Test
30+
public void checksEqualityFromCoordinates() {
31+
MultiPoint aMultiPoint = MultiPoint.fromCoordinates(new double[][]{
32+
{100.0, 0.0}, {101.0, 1.0}
33+
});
34+
35+
String multiPointCoordinates = obtainLiteralCoordinatesFrom(aMultiPoint);
36+
37+
assertEquals("Points: \n"
38+
+ "Position [longitude=100.0, latitude=0.0, altitude=NaN]\n"
39+
+ "Position [longitude=101.0, latitude=1.0, altitude=NaN]\n",
40+
multiPointCoordinates);
41+
}
42+
43+
@Test
44+
public void checksJsonEqualityFromCoordinates() {
45+
MultiPoint aMultiPoint = MultiPoint.fromCoordinates(new double[][]{
46+
{100.0, 0.0}, {101.0, 1.0}
47+
});
48+
49+
String multiPointJsonCoordinates = aMultiPoint.toJson();
50+
51+
compareJson("{ \"type\": \"MultiPoint\",\n"
52+
+ "\"coordinates\": [ [100.0, 0.0], [101.0, 1.0] ]\n"
53+
+ "}", multiPointJsonCoordinates);
54+
}
55+
56+
private String obtainLiteralCoordinatesFrom(MultiPoint multiPoint) {
57+
List<Position> multiPointCoordinates = multiPoint.getCoordinates();
58+
StringBuilder literalCoordinates = new StringBuilder();
59+
literalCoordinates.append("Points: \n");
60+
for (Position point : multiPointCoordinates) {
61+
literalCoordinates.append(point.toString());
62+
literalCoordinates.append("\n");
63+
}
64+
return literalCoordinates.toString();
65+
}
66+
2567
}

libjava/lib/src/test/java/com/mapbox/services/geojson/MultiPolygonTest.java

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.mapbox.services.geojson;
22

33
import com.mapbox.services.commons.geojson.MultiPolygon;
4-
4+
import com.mapbox.services.commons.models.Position;
55
import org.junit.Test;
66

7+
import java.util.List;
8+
79
import static org.junit.Assert.assertEquals;
810
import static org.junit.Assert.assertFalse;
911

@@ -24,4 +26,73 @@ public void toJson() {
2426
compareJson(BaseGeoJSON.SAMPLE_MULTIPOLYGON, geo.toJson());
2527
}
2628

29+
@Test
30+
public void checksEqualityFromCoordinates() {
31+
MultiPolygon aMultiPolygon = MultiPolygon.fromCoordinates(new double[][][][]{
32+
{{{102.0, 2.0}, {103.0, 2.0}, {103.0, 3.0}, {102.0, 3.0}, {102.0, 2.0}}},
33+
{{{100.0, 0.0}, {101.0, 0.0}, {101.0, 1.0}, {100.0, 1.0}, {100.0, 0.0}},
34+
{{100.2, 0.2}, {100.8, 0.2}, {100.8, 0.8}, {100.2, 0.8}, {100.2, 0.2}}}
35+
});
36+
37+
String multiPolygonCoordinates = obtainLiteralCoordinatesFrom(aMultiPolygon);
38+
39+
assertEquals("Polygons: \n"
40+
+ "Polygon: \n"
41+
+ "Lines: \n"
42+
+ "Position [longitude=102.0, latitude=2.0, altitude=NaN]\n"
43+
+ "Position [longitude=103.0, latitude=2.0, altitude=NaN]\n"
44+
+ "Position [longitude=103.0, latitude=3.0, altitude=NaN]\n"
45+
+ "Position [longitude=102.0, latitude=3.0, altitude=NaN]\n"
46+
+ "Position [longitude=102.0, latitude=2.0, altitude=NaN]\n"
47+
+ "Polygon: \n"
48+
+ "Lines: \n"
49+
+ "Position [longitude=100.0, latitude=0.0, altitude=NaN]\n"
50+
+ "Position [longitude=101.0, latitude=0.0, altitude=NaN]\n"
51+
+ "Position [longitude=101.0, latitude=1.0, altitude=NaN]\n"
52+
+ "Position [longitude=100.0, latitude=1.0, altitude=NaN]\n"
53+
+ "Position [longitude=100.0, latitude=0.0, altitude=NaN]\n"
54+
+ "Lines: \n"
55+
+ "Position [longitude=100.2, latitude=0.2, altitude=NaN]\n"
56+
+ "Position [longitude=100.8, latitude=0.2, altitude=NaN]\n"
57+
+ "Position [longitude=100.8, latitude=0.8, altitude=NaN]\n"
58+
+ "Position [longitude=100.2, latitude=0.8, altitude=NaN]\n"
59+
+ "Position [longitude=100.2, latitude=0.2, altitude=NaN]\n", multiPolygonCoordinates);
60+
}
61+
62+
@Test
63+
public void checksJsonEqualityFromCoordinates() {
64+
MultiPolygon aMultiPolygon = MultiPolygon.fromCoordinates(new double[][][][]{
65+
{{{102.0, 2.0}, {103.0, 2.0}, {103.0, 3.0}, {102.0, 3.0}, {102.0, 2.0}}},
66+
{{{100.0, 0.0}, {101.0, 0.0}, {101.0, 1.0}, {100.0, 1.0}, {100.0, 0.0}},
67+
{{100.2, 0.2}, {100.8, 0.2}, {100.8, 0.8}, {100.2, 0.8}, {100.2, 0.2}}}
68+
});
69+
70+
String multiPolygonJsonCoordinates = aMultiPolygon.toJson();
71+
72+
compareJson("{ \"type\": \"MultiPolygon\",\n"
73+
+ "\"coordinates\": [\n"
74+
+ "[[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]],\n"
75+
+ "[[[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]],\n"
76+
+ "[[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]]]\n"
77+
+ "]\n"
78+
+ "}", multiPolygonJsonCoordinates);
79+
}
80+
81+
private String obtainLiteralCoordinatesFrom(MultiPolygon multiPolygon) {
82+
List<List<List<Position>>> multiPolygonCoordinates = multiPolygon.getCoordinates();
83+
StringBuilder literalCoordinates = new StringBuilder();
84+
literalCoordinates.append("Polygons: \n");
85+
for (List<List<Position>> polygon : multiPolygonCoordinates) {
86+
literalCoordinates.append("Polygon: \n");
87+
for (List<Position> lines : polygon) {
88+
literalCoordinates.append("Lines: \n");
89+
for (Position point : lines) {
90+
literalCoordinates.append(point.toString());
91+
literalCoordinates.append("\n");
92+
}
93+
}
94+
}
95+
return literalCoordinates.toString();
96+
}
97+
2798
}
Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package com.mapbox.services.geojson;
22

3+
import com.mapbox.services.commons.geojson.Point;
4+
import com.mapbox.services.commons.models.Position;
35
import org.junit.Test;
46

5-
import static org.junit.Assert.*;
7+
import static org.junit.Assert.assertEquals;
8+
import static org.junit.Assert.assertFalse;
69

710
public class PointTest extends BaseGeoJSON {
811

912
@Test
1013
public void fromJson() {
11-
com.mapbox.services.commons.geojson.Point geo = com.mapbox.services.commons.geojson.Point.fromJson(BaseGeoJSON.SAMPLE_POINT);
14+
Point geo = Point.fromJson(BaseGeoJSON.SAMPLE_POINT);
1215
assertEquals(geo.getType(), "Point");
1316
assertEquals(geo.getCoordinates().getLongitude(), 100.0, 0.0);
1417
assertEquals(geo.getCoordinates().getLatitude(), 0.0, 0.0);
@@ -17,9 +20,39 @@ public void fromJson() {
1720

1821
@Test
1922
public void toJson() {
20-
com.mapbox.services.commons.geojson.Point geo = com.mapbox.services.commons.geojson.Point.fromJson(BaseGeoJSON.SAMPLE_POINT);
23+
Point geo = Point.fromJson(BaseGeoJSON.SAMPLE_POINT);
2124
compareJson(BaseGeoJSON.SAMPLE_POINT, geo.toJson());
2225
}
2326

27+
@Test
28+
public void checksEqualityFromCoordinates() {
29+
Point aPoint = Point.fromCoordinates(new double[]{100.0, 0.0});
30+
31+
String pointCoordinates = obtainLiteralCoordinatesFrom(aPoint);
32+
33+
assertEquals("Point: \n"
34+
+ "Position [longitude=100.0, latitude=0.0, altitude=NaN]\n", pointCoordinates);
35+
}
36+
37+
@Test
38+
public void checksJsonEqualityFromCoordinates() {
39+
Point aPoint = Point.fromCoordinates(new double[]{100.0, 0.0});
40+
41+
String pointJsonCoordinates = aPoint.toJson();
42+
43+
compareJson("{ \"type\": \"Point\", \"coordinates\": [100.0, 0.0] }", pointJsonCoordinates);
44+
}
45+
46+
private String obtainLiteralCoordinatesFrom(Point point) {
47+
Position thePoint = point.getCoordinates();
48+
StringBuilder literalCoordinates = new StringBuilder();
49+
literalCoordinates.append("Point: \n");
50+
51+
literalCoordinates.append(thePoint.toString());
52+
literalCoordinates.append("\n");
53+
54+
return literalCoordinates.toString();
55+
}
56+
2457
}
2558

0 commit comments

Comments
 (0)