1 package tim.prune.function.olc;
3 import static org.junit.jupiter.api.Assertions.*;
5 import org.junit.jupiter.api.Test;
8 * JUnit tests for decoding of Open Location Codes (Pluscodes)
14 void testDecodeStringsTooShort()
16 OlcArea area = OlcDecoder.decode(null);
17 assertEquals(area, null, "Decoding null gives null");
18 area = OlcDecoder.decode("");
19 assertEquals(area, null, "Decoding \"\" gives null");
20 area = OlcDecoder.decode("9");
21 assertEquals(area, null, "Decoding \"9\" gives null");
22 area = OlcDecoder.decode("9999999");
23 assertEquals(area, null, "Decoding \"9999999\" gives null");
27 void testDecodeStringsInvalid()
29 OlcArea area = OlcDecoder.decode("11111111");
30 assertEquals(area, null, "Decoding lots of 1s gives null");
31 area = OlcDecoder.decode("99999991");
32 assertEquals(area, null, "Decoding with a single 1 gives null");
33 area = OlcDecoder.decode("99999999");
34 assertNotEquals(area, null, "Decoding with all 9s gives non-null");
35 area = OlcDecoder.decode("00000000");
36 assertEquals(area, null, "Decoding with all padding gives null");
37 area = OlcDecoder.decode("99000000");
38 assertNotEquals(area, null, "Decoding with some padding gives non-null");
42 void testDecodeZeroes()
44 OlcArea area = OlcDecoder.decode("22000000");
45 assertNotEquals(area, null, "Decoding with padding gives non-null");
46 assertEquals(-90.0, area.minLat, 0.0, "South 90");
47 assertEquals(-70.0, area.maxLat, 0.0, "South 70");
48 assertEquals(-180.0, area.minLon, 0.0, "West 180");
49 assertEquals(-160.0, area.maxLon, 0.0, "West 160");
53 void testDecodeZeroes2()
55 OlcArea area = OlcDecoder.decode("22220000");
56 assertNotEquals(area, null, "Decoding with padding gives non-null");
57 assertEquals(-90.0, area.minLat, 0.0, "South 90");
58 assertEquals(-89.0, area.maxLat, 0.0, "South 89");
59 assertEquals(-180.0, area.minLon, 0.0, "West 180");
60 assertEquals(-179.0, area.maxLon, 0.0, "West 179");
64 void testMountainView()
66 OlcArea area = OlcDecoder.decode("6PH57VP3+PR6");
67 assertNotEquals(area, null, "Decoding with separator gives non-null");
68 System.out.println("Min lat: " + area.minLat);
69 System.out.println("Max lat: " + area.maxLat);
70 System.out.println("Min lon: " + area.minLon);
71 System.out.println("Max lon: " + area.maxLon);
72 assertTrue(area.maxLat > area.minLat, "latitude range");
73 assertTrue(area.maxLon > area.minLon, "longitude range");