Skip to content

Commit 5dec9a1

Browse files
committed
Deprecated forgotten precision methods; improved unit tests
1 parent 01ac042 commit 5dec9a1

File tree

3 files changed

+19
-26
lines changed

3 files changed

+19
-26
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,23 @@
3030
* is not checked for validity, other than its syntax.
3131
*/
3232
public final class Mapcode {
33+
3334
@Nonnull
3435
private final String mapcodePrecision0;
36+
3537
@Nonnull
3638
private final String mapcodePrecision1;
39+
3740
@Nonnull
3841
private final String mapcodePrecision2;
42+
3943
@Nonnull
4044
private final Territory territory;
4145

46+
public static final double PRECISION_0_MAX_DELTA_METERS = 10.0;
47+
public static final double PRECISION_1_MAX_DELTA_METERS = 2.0;
48+
public static final double PRECISION_2_MAX_DELTA_METERS = 0.4;
49+
4250
public Mapcode(
4351
@Nonnull final String mapcode,
4452
@Nonnull final Territory territory) throws IllegalArgumentException {

src/test/java/com/mapcode/EncodeDecodeTest.java

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,6 @@ public class EncodeDecodeTest {
3737
private static final int NUMBER_OF_POINTS = 5000;
3838
private static final int LOG_LINE_EVERY = 100;
3939

40-
private static final double PRECISION_0_METERS = 10.0;
41-
private static final double PRECISION_1_METERS = 2.0;
42-
private static final double PRECISION_2_METERS = 0.4;
43-
4440
@Test
4541
public void encodeDecodeTestFixedSeed() throws Exception {
4642
LOG.info("encodeDecodeTestFixedSeed");
@@ -91,15 +87,17 @@ private static void doEncodeDecode(final long seed) throws UnknownMapcodeExcepti
9187
}
9288

9389
// Check if the territory matches.
90+
assertEquals(territory, result.getTerritory());
91+
92+
// Check max distance.
9493
final String mapcodePrecision0 = result.getMapcodePrecision(0);
9594
final String mapcodePrecision1 = result.getMapcodePrecision(1);
9695
final String mapcodePrecision2 = result.getMapcodePrecision(2);
97-
assertEquals(territory, result.getTerritory());
9896

99-
// Check max distance.
10097
final Point decodeLocationPrecision0 = MapcodeCodec.decode(mapcodePrecision0, territory);
10198
final Point decodeLocationPrecision1 = MapcodeCodec.decode(mapcodePrecision1, territory);
10299
final Point decodeLocationPrecision2 = MapcodeCodec.decode(mapcodePrecision2, territory);
100+
103101
final double distancePrecision0Meters = Point.distanceInMeters(encode, decodeLocationPrecision0);
104102
final double distancePrecision1Meters = Point.distanceInMeters(encode, decodeLocationPrecision1);
105103
final double distancePrecision2Meters = Point.distanceInMeters(encode, decodeLocationPrecision2);
@@ -108,12 +106,12 @@ private static void doEncodeDecode(final long seed) throws UnknownMapcodeExcepti
108106
maxDistancePrecision1Meters = Math.max(maxDistancePrecision1Meters, distancePrecision1Meters);
109107
maxDistancePrecision2Meters = Math.max(maxDistancePrecision2Meters, distancePrecision2Meters);
110108

111-
assertTrue("distancePrecision0Meters=" + distancePrecision0Meters + " >= " + PRECISION_0_METERS,
112-
distancePrecision0Meters < PRECISION_0_METERS);
113-
assertTrue("distancePrecision1Meters=" + distancePrecision1Meters + " >= " + PRECISION_1_METERS,
114-
distancePrecision1Meters < PRECISION_1_METERS);
115-
assertTrue("distancePrecision2Meters=" + distancePrecision2Meters + " >= " + PRECISION_2_METERS,
116-
distancePrecision2Meters < PRECISION_2_METERS);
109+
assertTrue("distancePrecision0Meters=" + distancePrecision0Meters + " >= " + Mapcode.PRECISION_0_MAX_DELTA_METERS,
110+
distancePrecision0Meters < Mapcode.PRECISION_0_MAX_DELTA_METERS);
111+
assertTrue("distancePrecision1Meters=" + distancePrecision1Meters + " >= " + Mapcode.PRECISION_1_MAX_DELTA_METERS,
112+
distancePrecision1Meters < Mapcode.PRECISION_1_MAX_DELTA_METERS);
113+
assertTrue("distancePrecision2Meters=" + distancePrecision2Meters + " >= " + Mapcode.PRECISION_2_MAX_DELTA_METERS,
114+
distancePrecision2Meters < Mapcode.PRECISION_2_MAX_DELTA_METERS);
117115

118116
if (showLogLine) {
119117
LOG.info("encodeDecodeTest: #{}/{}, result={}, mapcode={}, territory={} --> " +

src/test/java/com/mapcode/ReferenceFileTest.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ public class ReferenceFileTest {
5555
private static final String BOUNDARIES_REFERENCE_FILE_HP = "/boundaries_hp.txt";
5656

5757
private static final int LOG_LINE_EVERY = 25000;
58-
private static final double METERS_DELTA = 10.0;
5958

6059
@SuppressWarnings("JUnitTestMethodWithNoAssertions")
6160
@Test
@@ -147,17 +146,6 @@ private static void checkFile(@Nonnull final String baseFileName) throws Excepti
147146
++error;
148147
}
149148

150-
/**
151-
* Check encodeToShortest.
152-
*/
153-
final Mapcode resultShortest = MapcodeCodec.encodeToShortest(reference.point.getLatDeg(), reference.point.getLonDeg());
154-
final Mapcode expectedShortest = results.get(0);
155-
if (!resultShortest.asLocal().equals(expectedShortest.asLocal())) {
156-
LOG.error("checkFile: encodeToShortest fails, expected={}, got={} for reference",
157-
expectedShortest, resultShortest, reference);
158-
++error;
159-
}
160-
161149
/**
162150
* Check encodeToInternational.
163151
*/
@@ -169,7 +157,6 @@ private static void checkFile(@Nonnull final String baseFileName) throws Excepti
169157
++error;
170158
}
171159

172-
173160
// Check the size and order of the results with a single assertion.
174161
//
175162
assertEquals("Encode #" + i + " incorrect number of results:" +
@@ -241,7 +228,7 @@ private static void checkFile(@Nonnull final String baseFileName) throws Excepti
241228
final Point result = MapcodeCodec.decode(mapcodeRec.mapcode, mapcodeRec.territory);
242229
final double distanceMeters = Point.distanceInMeters(reference.point, result);
243230
maxdelta = Math.max(maxdelta, distanceMeters);
244-
if (distanceMeters > METERS_DELTA) {
231+
if (distanceMeters > Mapcode.PRECISION_0_MAX_DELTA_METERS) {
245232
LOG.error(
246233
"Mapcode {} {} was generated for point {}, but decodes to point {} which is {} meters from the original point.",
247234
mapcodeRec.territory, mapcodeRec.mapcode, reference.point, result, distanceMeters);

0 commit comments

Comments
 (0)