Skip to content

Commit ec5d799

Browse files
committed
Improved unit tests
1 parent 1738a72 commit ec5d799

File tree

3 files changed

+33
-23
lines changed

3 files changed

+33
-23
lines changed

src/main/java/com/mapcode/Mapcode.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -421,14 +421,14 @@ public int hashCode() {
421421
}
422422

423423
@Override
424-
public boolean equals(@Nullable final Object o) {
425-
if (this == o) {
424+
public boolean equals(@Nullable final Object obj) {
425+
if (this == obj) {
426426
return true;
427427
}
428-
if (!(o instanceof Mapcode)) {
428+
if (!(obj instanceof Mapcode)) {
429429
return false;
430430
}
431-
final Mapcode that = (Mapcode) o;
431+
final Mapcode that = (Mapcode) obj;
432432
return this.territory.equals(that.territory) &&
433433
this.codePrecision8.equals(that.codePrecision8);
434434
}

src/main/java/com/mapcode/Point.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,9 +277,12 @@ else if (lat > 180) {
277277
lat = 180;
278278
}
279279

280+
// Rounding factor.
281+
final double fractionRounding = 0.1;
282+
280283
// Lat now [0..180].
281284
lat = lat * LAT_TO_FRACTIONS_FACTOR;
282-
double latFractionOnly = Math.floor(lat + 0.1); // TODO: Check the + 0.1! Why?
285+
double latFractionOnly = Math.floor(lat + fractionRounding);
283286
latMicroDeg = (int) (latFractionOnly / LAT_MICRODEG_TO_FRACTIONS_FACTOR);
284287
latFractionOnly = latFractionOnly - ((double) latMicroDeg * LAT_MICRODEG_TO_FRACTIONS_FACTOR);
285288
latFractionOnlyDeg = (int) latFractionOnly;
@@ -293,7 +296,7 @@ else if (lat > 180) {
293296

294297
// Lon now in [0..360>.
295298
lon = lon * LON_TO_FRACTIONS_FACTOR;
296-
double lonFractionOnly = Math.floor(lon + 0.1); // TODO: Check the + 0.1! Why?
299+
double lonFractionOnly = Math.floor(lon + fractionRounding);
297300
lonMicroDeg = (int) (lonFractionOnly / LON_MICRODEG_TO_FRACTIONS_FACTOR);
298301
lonFractionOnly = lonFractionOnly - ((double) lonMicroDeg * LON_MICRODEG_TO_FRACTIONS_FACTOR);
299302
lonFractionOnlyDeg = (int) lonFractionOnly;
@@ -327,6 +330,7 @@ int getLatFraction() {
327330
/**
328331
* Package private construction, from integer fractions (no loss of precision).
329332
*/
333+
@SuppressWarnings("NumericCastThatLosesPrecision")
330334
@Nonnull
331335
static Point fromLatLonFractions(final double latFraction, final double lonFraction) {
332336
final Point p = new Point();

src/test/java/com/mapcode/EncoderTest.java

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
import static org.junit.Assert.assertEquals;
2626

27-
@SuppressWarnings({"OverlyBroadThrowsClause", "ProhibitedExceptionDeclared"})
27+
@SuppressWarnings({"OverlyBroadThrowsClause", "ProhibitedExceptionDeclared", "ValueOfIncrementOrDecrementUsed"})
2828
public class EncoderTest {
2929
private static final Logger LOG = LoggerFactory.getLogger(EncoderTest.class);
3030

@@ -173,21 +173,26 @@ public void encodeToShortest1() throws Exception {
173173

174174
// test extremely precise encoding
175175
{
176-
double lat2 = 52.3, lon2 = 4.908;
177-
Mapcode m = MapcodeCodec.encodeToShortest(lat2, lon2, Territory.fromString("NLD") );
178-
assertEquals("NLD GG.NBC-SHR33333", m.getCodeWithTerritory(8));
179-
lat2 = 52.3000004; lon2 = 4.9080004;
180-
m = MapcodeCodec.encodeToShortest(lat2, lon2, Territory.fromString("NLD") );
181-
assertEquals("NLD GG.NBC-SHSS1010", m.getCodeWithTerritory(8));
182-
lat2 = 52.299999999; lon2 = 4.907999999;
183-
m = MapcodeCodec.encodeToShortest(lat2, lon2, Territory.fromString("NLD") );
184-
assertEquals("NLD GG.NBC-SHLWXWQB", m.getCodeWithTerritory(8));
185-
lat2 = 52.29993200000; lon2 = 4.90786600000;
186-
m = MapcodeCodec.encodeToShortest(lat2, lon2, Territory.fromString("NLD") );
187-
assertEquals("NLD GG.NBC-00000000", m.getCodeWithTerritory(8));
188-
lat2 = 52.29993200000; lon2 = 4.9078659999999;
189-
m = MapcodeCodec.encodeToShortest(lat2, lon2, Territory.fromString("NLD") );
190-
assertEquals("NLD GG.N98-45454545", m.getCodeWithTerritory(8));
176+
double lat2 = 52.3;
177+
double lon2 = 4.908;
178+
Mapcode m = MapcodeCodec.encodeToShortest(lat2, lon2, Territory.fromString("NLD"));
179+
assertEquals("NLD GG.NBC-SHR33333", m.getCodeWithTerritory(8));
180+
lat2 = 52.3000004;
181+
lon2 = 4.9080004;
182+
m = MapcodeCodec.encodeToShortest(lat2, lon2, Territory.fromString("NLD"));
183+
assertEquals("NLD GG.NBC-SHSS1010", m.getCodeWithTerritory(8));
184+
lat2 = 52.299999999;
185+
lon2 = 4.907999999;
186+
m = MapcodeCodec.encodeToShortest(lat2, lon2, Territory.fromString("NLD"));
187+
assertEquals("NLD GG.NBC-SHLWXWQB", m.getCodeWithTerritory(8));
188+
lat2 = 52.29993200000;
189+
lon2 = 4.90786600000;
190+
m = MapcodeCodec.encodeToShortest(lat2, lon2, Territory.fromString("NLD"));
191+
assertEquals("NLD GG.NBC-00000000", m.getCodeWithTerritory(8));
192+
lat2 = 52.29993200000;
193+
lon2 = 4.9078659999999;
194+
m = MapcodeCodec.encodeToShortest(lat2, lon2, Territory.fromString("NLD"));
195+
assertEquals("NLD GG.N98-45454545", m.getCodeWithTerritory(8));
191196
}
192197
}
193198

@@ -223,13 +228,14 @@ public void encodeToShortest4() throws Exception {
223228
MapcodeCodec.encodeToShortest(lat, lon, Territory.NLD);
224229
}
225230

231+
@SuppressWarnings("MisorderedAssertEqualsArguments")
226232
@Test
227233
public void legalArguments() {
228234
LOG.info("legalArguments");
229235
assertEquals(MapcodeCodec.encode(-90, 0).size(), 3); // 2 x ATA and AAA
230236
assertEquals(MapcodeCodec.encode(-60, 0).size(), 2); // ATA and AAA
231237
assertEquals(MapcodeCodec.encode(90, 0).size(), 1); // AAA only
232-
assertEquals(MapcodeCodec.encode(0, -180),MapcodeCodec.encode(0, 180));
238+
assertEquals(MapcodeCodec.encode(0, -180), MapcodeCodec.encode(0, 180));
233239
assertEquals(MapcodeCodec.encode(-91, 0), MapcodeCodec.encode(-90, 0));
234240
assertEquals(MapcodeCodec.encode(91, 0), MapcodeCodec.encode(90, 0));
235241
assertEquals(MapcodeCodec.encode(0, -181), MapcodeCodec.encode(0, 179));

0 commit comments

Comments
 (0)