From e35da1c828499649cafccdf72d9faf7e7ec5fc5a Mon Sep 17 00:00:00 2001 From: Rijn Buve Date: Tue, 1 Nov 2016 11:46:19 +0100 Subject: [PATCH 1/2] Prepare for 2.4.1.0 --- README.md | 13 ++ deployment/pom.xml | 9 +- pom.xml | 6 +- service/pom.xml | 2 +- .../com/mapcode/services/dto/AlphabetDTO.java | 5 + .../mapcode/services/dto/AlphabetListDTO.java | 9 + .../mapcode/services/dto/AlphabetsDTO.java | 6 + .../mapcode/services/dto/TerritoryDTO.java | 46 +++- .../services/dto/TerritoryListDTO.java | 19 ++ .../implementation/MapcodeResourceImpl.java | 26 +-- .../mapcode/services/ApiAlphabetsTest.java | 51 +++-- .../java/com/mapcode/services/ApiDTOTest.java | 212 +++++++++--------- .../mapcode/services/ApiTerritoriesTest.java | 103 ++++++++- 13 files changed, 345 insertions(+), 162 deletions(-) diff --git a/README.md b/README.md index 40cf740..c1f2a44 100644 --- a/README.md +++ b/README.md @@ -241,6 +241,19 @@ self-hosting this service. ## Release Notes +### 2.4.1.0 + + +* Added scripts for Tifinagh (Berber), Tamil, Amharic, Telugu, Odia, Kannada, Gujarati. + +* Added `alphabets` element to `territories`, returning the most commonly used languages for the territory. + +* Renamed constant `HINDI` to `DEVANAGIRI`. + +* Improved some characters for Arabic and Devanagari. + +* Fixed Bengali to also support Assamese. + ### 2.4.0.0 * Updated to new Java library 2.4.0 with new scripts support. diff --git a/deployment/pom.xml b/deployment/pom.xml index 4a127e0..63bec85 100644 --- a/deployment/pom.xml +++ b/deployment/pom.xml @@ -22,7 +22,7 @@ com.mapcode mapcode-rest-service - 2.4.0.0 + 2.4.1.0 deployment @@ -219,6 +219,13 @@ org.jboss.resteasy resteasy-client + + + org.eclipse.jetty + jetty-server + ${maven-jetty-plugin.version} + test + diff --git a/pom.xml b/pom.xml index 1d623dd..fab6cb6 100755 --- a/pom.xml +++ b/pom.xml @@ -23,7 +23,7 @@ mapcode-rest-service pom - 2.4.0.0 + 2.4.1.0 Mapcode REST API Web Service @@ -70,7 +70,7 @@ 1.8 - 2.4.0 + 2.4.1 3.0.23 @@ -83,7 +83,7 @@ 3.5.1 2.19.1 2.10.4 - 8.1.22.v20160922 + 8.1.9.v20130131 2.9 2.7 3.0.1 diff --git a/service/pom.xml b/service/pom.xml index 0bea6cd..4b1893d 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -22,7 +22,7 @@ com.mapcode mapcode-rest-service - 2.4.0.0 + 2.4.1.0 service diff --git a/service/src/main/java/com/mapcode/services/dto/AlphabetDTO.java b/service/src/main/java/com/mapcode/services/dto/AlphabetDTO.java index f98090d..47dada4 100644 --- a/service/src/main/java/com/mapcode/services/dto/AlphabetDTO.java +++ b/service/src/main/java/com/mapcode/services/dto/AlphabetDTO.java @@ -18,6 +18,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.mapcode.Alphabet; import com.tomtom.speedtools.apivalidation.ApiDTO; import javax.annotation.Nonnull; @@ -47,6 +48,10 @@ public AlphabetDTO(@Nonnull final String name) { this.name = name; } + public AlphabetDTO(@Nonnull final Alphabet alphabet) { + this(alphabet.name()); + } + @SuppressWarnings("UnusedDeclaration") @Deprecated private AlphabetDTO() { diff --git a/service/src/main/java/com/mapcode/services/dto/AlphabetListDTO.java b/service/src/main/java/com/mapcode/services/dto/AlphabetListDTO.java index 3418f66..af3afce 100644 --- a/service/src/main/java/com/mapcode/services/dto/AlphabetListDTO.java +++ b/service/src/main/java/com/mapcode/services/dto/AlphabetListDTO.java @@ -34,13 +34,16 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.mapcode.Alphabet; import com.tomtom.speedtools.apivalidation.ApiListDTO; import javax.annotation.Nonnull; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; @SuppressWarnings({"NonFinalFieldReferenceInEquals", "NonFinalFieldReferencedInHashCode", "NullableProblems", "EqualsWhichDoesntCheckParameterClass"}) @JsonInclude(Include.NON_EMPTY) @@ -57,6 +60,12 @@ public AlphabetListDTO(@Nonnull final List alphabets) { super(alphabets); } + public AlphabetListDTO(@Nonnull final Alphabet[] alphabets) { + this(Arrays.asList(alphabets).stream().map(x -> { + return new AlphabetDTO(x); + }).collect(Collectors.toList())); + } + @SuppressWarnings("UnusedDeclaration") @Deprecated private AlphabetListDTO() { diff --git a/service/src/main/java/com/mapcode/services/dto/AlphabetsDTO.java b/service/src/main/java/com/mapcode/services/dto/AlphabetsDTO.java index d498226..d21a6ea 100644 --- a/service/src/main/java/com/mapcode/services/dto/AlphabetsDTO.java +++ b/service/src/main/java/com/mapcode/services/dto/AlphabetsDTO.java @@ -61,6 +61,12 @@ public AlphabetsDTO( this.alphabets = alphabets; } + public AlphabetsDTO( + final int total, + @Nonnull final Alphabet[] alphabets) { + this(total, new AlphabetListDTO(alphabets)); + } + @SuppressWarnings("UnusedDeclaration") @Deprecated private AlphabetsDTO() { diff --git a/service/src/main/java/com/mapcode/services/dto/TerritoryDTO.java b/service/src/main/java/com/mapcode/services/dto/TerritoryDTO.java index 93725aa..6a7ffe3 100644 --- a/service/src/main/java/com/mapcode/services/dto/TerritoryDTO.java +++ b/service/src/main/java/com/mapcode/services/dto/TerritoryDTO.java @@ -18,17 +18,15 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonUnwrapped; +import com.mapcode.Alphabet; import com.mapcode.services.ApiConstants; import com.tomtom.speedtools.apivalidation.ApiDTO; import javax.annotation.Nonnull; import javax.annotation.Nullable; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlElementWrapper; -import javax.xml.bind.annotation.XmlElements; -import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.*; @SuppressWarnings({"NonFinalFieldReferenceInEquals", "NonFinalFieldReferencedInHashCode", "NullableProblems", "EqualsWhichDoesntCheckParameterClass"}) @JsonInclude(Include.NON_EMPTY) @@ -66,6 +64,14 @@ public final class TerritoryDTO extends ApiDTO { @Nonnull private String[] fullNameAliases; + @JsonProperty("alphabets") + @JsonUnwrapped + @XmlElementWrapper(name = "alphabets") +// @XmlElements(@XmlElement(name = "alphabet")) + @XmlElement(name = "alphabet") + @Nonnull + private AlphabetListDTO alphabets; + @Override public void validate() { validator().start(); @@ -76,6 +82,7 @@ public void validate() { validator().checkString(false, "parentTerritory", parentTerritory, ApiConstants.API_NAME_LEN_MIN, ApiConstants.API_NAME_LEN_MAX); validator().checkNotNull(false, "aliases", aliases); validator().checkNotNull(false, "fullNameAliases", fullNameAliases); + validator().checkNotNullAndValidateAll(true, "alphabets", alphabets); validator().done(); } @@ -85,7 +92,8 @@ public TerritoryDTO(@Nonnull final String alphaCode, @Nonnull final String fullName, @Nullable final String parentTerritory, @Nonnull final String[] aliases, - @Nonnull final String[] fullNameAliases) { + @Nonnull final String[] fullNameAliases, + @Nonnull final AlphabetListDTO alphabets) { this.alphaCode = alphaCode; this.alphaCodeMinimalUnambiguous = alphaCodeMinimalUnambiguous; this.alphaCodeMinimal = alphaCodeMinimal; @@ -93,6 +101,19 @@ public TerritoryDTO(@Nonnull final String alphaCode, this.parentTerritory = parentTerritory; this.aliases = aliases; this.fullNameAliases = fullNameAliases; + this.alphabets = alphabets; + } + + public TerritoryDTO(@Nonnull final String alphaCode, + @Nonnull final String alphaCodeMinimalUnambiguous, + @Nonnull final String alphaCodeMinimal, + @Nonnull final String fullName, + @Nullable final String parentTerritory, + @Nonnull final String[] aliases, + @Nonnull final String[] fullNameAliases, + @Nonnull final Alphabet[] alphabets) { + this(alphaCode, alphaCodeMinimalUnambiguous, alphaCodeMinimal, fullName, parentTerritory, aliases, fullNameAliases, + new AlphabetListDTO(alphabets)); } @SuppressWarnings("UnusedDeclaration") @@ -185,4 +206,15 @@ public void setFullNameAliases(@Nonnull final String[] fullNameAliases) { assert fullNameAliases != null; this.fullNameAliases = fullNameAliases; } + + @Nonnull + public AlphabetListDTO getAlphabets() { + beforeGet(); + return alphabets; + } + + public void setAlphabets(@Nonnull final AlphabetListDTO alphabets) { + beforeSet(); + this.alphabets = alphabets; + } } diff --git a/service/src/main/java/com/mapcode/services/dto/TerritoryListDTO.java b/service/src/main/java/com/mapcode/services/dto/TerritoryListDTO.java index 9896ded..039d031 100644 --- a/service/src/main/java/com/mapcode/services/dto/TerritoryListDTO.java +++ b/service/src/main/java/com/mapcode/services/dto/TerritoryListDTO.java @@ -34,13 +34,17 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.mapcode.Territory; +import com.mapcode.Territory.AlphaCodeFormat; import com.tomtom.speedtools.apivalidation.ApiListDTO; import javax.annotation.Nonnull; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; @SuppressWarnings({"NonFinalFieldReferenceInEquals", "NonFinalFieldReferencedInHashCode", "NullableProblems", "EqualsWhichDoesntCheckParameterClass"}) @JsonInclude(Include.NON_EMPTY) @@ -57,6 +61,21 @@ public TerritoryListDTO(@Nonnull final List territories) { super(territories); } + public TerritoryListDTO(@Nonnull final Territory[] territories) { + this(Arrays.asList(territories).stream().map(x -> { + return new TerritoryDTO( + x.toString(), + x.toAlphaCode(AlphaCodeFormat.MINIMAL_UNAMBIGUOUS), + x.toAlphaCode(AlphaCodeFormat.MINIMAL), + x.getFullName(), + (x.getParentTerritory() == null) ? null : x.getParentTerritory().toString(), + x.getAliases(), + x.getFullNameAliases(), + x.getAlphabets() + ); + }).collect(Collectors.toList())); + } + @SuppressWarnings("UnusedDeclaration") @Deprecated private TerritoryListDTO() { diff --git a/service/src/main/java/com/mapcode/services/implementation/MapcodeResourceImpl.java b/service/src/main/java/com/mapcode/services/implementation/MapcodeResourceImpl.java index 59b5777..d6eb4e0 100644 --- a/service/src/main/java/com/mapcode/services/implementation/MapcodeResourceImpl.java +++ b/service/src/main/java/com/mapcode/services/implementation/MapcodeResourceImpl.java @@ -73,23 +73,8 @@ public class MapcodeResourceImpl implements MapcodeResource { private static final String API_ERROR_VALID_INCLUDES = Joiner.on('|').join(Arrays.asList(ParamInclude.values()).stream(). map(x -> x).collect(Collectors.toList())); - private static final List ALL_TERRITORY_DTO = Arrays.asList(Territory.values()).stream(). - map(x -> { - final Territory parentTerritory = x.getParentTerritory(); - return new TerritoryDTO( - x.toString(), - x.toAlphaCode(AlphaCodeFormat.MINIMAL_UNAMBIGUOUS), - x.toAlphaCode(AlphaCodeFormat.MINIMAL), - x.getFullName(), - (parentTerritory == null) ? null : parentTerritory.toString(), - x.getAliases(), - x.getFullNameAliases()); - }). - collect(Collectors.toList()); - - private static final List ALL_ALPHABET_DTO = Arrays.asList(Alphabet.values()).stream(). - map(x -> new AlphabetDTO(x.name())). - collect(Collectors.toList()); + private static final TerritoryListDTO ALL_TERRITORY_DTO = new TerritoryListDTO(Territory.values()); + private static final AlphabetListDTO ALL_ALPHABET_DTO = new AlphabetListDTO(Alphabet.values()); /** * The constructor is called by Google Guice at start-up time and gets a processor injected @@ -559,7 +544,8 @@ public void getTerritory( territory.getFullName(), (parentTerritory == null) ? null : parentTerritory.toString(), territory.getAliases(), - territory.getFullNameAliases() + territory.getFullNameAliases(), + territory.getAlphabets() ); // Validate the result (internal consistency check). @@ -651,7 +637,7 @@ public void getAlphabet( } // Return the right territory information. - final AlphabetDTO result = new AlphabetDTO(alphabet.name()); + final AlphabetDTO result = new AlphabetDTO(alphabet); // Validate the result (internal consistency check). result.validate(); @@ -778,7 +764,7 @@ void eventLatLonToMapcode(double latDeg, double lonDeg, @Nullable Territory terr // A request to translate a mapcode to a lat/lon is made. void eventMapcodeToLatLon(@Nonnull String code, @Nullable Territory territory, @Nonnull DateTime now, - @Nullable final String client); + @Nullable final String client); // A request to translate a lat/lon to a mapcode is made. @Deprecated diff --git a/service/src/test/java/com/mapcode/services/ApiAlphabetsTest.java b/service/src/test/java/com/mapcode/services/ApiAlphabetsTest.java index c2639d6..0dc5bae 100644 --- a/service/src/test/java/com/mapcode/services/ApiAlphabetsTest.java +++ b/service/src/test/java/com/mapcode/services/ApiAlphabetsTest.java @@ -62,19 +62,19 @@ public void checkAlphabetsJson() { Assert.assertNotNull(response); Assert.assertEquals(200, response.getStatus()); final String s = response.readEntity(String.class); - Assert.assertEquals("{\"total\":21,\"alphabets\":[{\"name\":\"ROMAN\"},{\"name\":\"GREEK\"},{\"name\":\"CYRILLIC\"},{\"name\":\"HEBREW\"},{\"name\":\"HINDI\"},{\"name\":\"MALAYALAM\"},{\"name\":\"GEORGIAN\"},{\"name\":\"KATAKANA\"},{\"name\":\"THAI\"},{\"name\":\"LAO\"},{\"name\":\"ARMENIAN\"},{\"name\":\"BENGALI\"},{\"name\":\"GURMUKHI\"},{\"name\":\"TIBETAN\"},{\"name\":\"ARABIC\"},{\"name\":\"KOREAN\"},{\"name\":\"BURMESE\"},{\"name\":\"KHMER\"},{\"name\":\"SINHALESE\"},{\"name\":\"THAANA\"},{\"name\":\"CHINESE\"}]}", + Assert.assertEquals("{\"total\":28,\"alphabets\":[{\"name\":\"ROMAN\"},{\"name\":\"GREEK\"},{\"name\":\"CYRILLIC\"},{\"name\":\"HEBREW\"},{\"name\":\"DEVANAGARI\"},{\"name\":\"MALAYALAM\"},{\"name\":\"GEORGIAN\"},{\"name\":\"KATAKANA\"},{\"name\":\"THAI\"},{\"name\":\"LAO\"},{\"name\":\"ARMENIAN\"},{\"name\":\"BENGALI\"},{\"name\":\"GURMUKHI\"},{\"name\":\"TIBETAN\"},{\"name\":\"ARABIC\"},{\"name\":\"KOREAN\"},{\"name\":\"BURMESE\"},{\"name\":\"KHMER\"},{\"name\":\"SINHALESE\"},{\"name\":\"THAANA\"},{\"name\":\"CHINESE\"},{\"name\":\"TIFINAGH\"},{\"name\":\"TAMIL\"},{\"name\":\"AMHARIC\"},{\"name\":\"TELUGU\"},{\"name\":\"ODIA\"},{\"name\":\"KANNADA\"},{\"name\":\"GUJARATI\"}]}", s); final AlphabetsDTO x = new Gson().fromJson(s, AlphabetsDTO.class); Assert.assertNotNull(x); - Assert.assertEquals(21, x.getTotal()); + Assert.assertEquals(28, x.getTotal()); Assert.assertEquals("ROMAN", x.getAlphabets().get(0).getName()); } @Test public void checkAlphabetsXml() { LOG.info("checkAlphabetsXml"); - final String expected = "21ROMANGREEKCYRILLICHEBREWHINDIMALAYALAMGEORGIANKATAKANATHAILAOARMENIANBENGALIGURMUKHITIBETANARABICKOREANBURMESEKHMERSINHALESETHAANACHINESE"; + final String expected = "28ROMANGREEKCYRILLICHEBREWDEVANAGARIMALAYALAMGEORGIANKATAKANATHAILAOARMENIANBENGALIGURMUKHITIBETANARABICKOREANBURMESEKHMERSINHALESETHAANACHINESETIFINAGHTAMILAMHARICTELUGUODIAKANNADAGUJARATI"; Response response = new ResteasyClientBuilder().build(). target(server.url("/mapcode/alphabets")). request(). @@ -103,7 +103,7 @@ public void checkAlphabetsCountJson() { accept(MediaType.APPLICATION_JSON_TYPE).get(); Assert.assertNotNull(response); Assert.assertEquals(200, response.getStatus()); - Assert.assertEquals("{\"total\":21,\"alphabets\":[{\"name\":\"ROMAN\"},{\"name\":\"GREEK\"}]}", + Assert.assertEquals("{\"total\":28,\"alphabets\":[{\"name\":\"ROMAN\"},{\"name\":\"GREEK\"}]}", response.readEntity(String.class)); } @@ -127,7 +127,7 @@ public void checkAlphabetsCountXml() { accept(MediaType.APPLICATION_XML_TYPE).get(); Assert.assertNotNull(response); Assert.assertEquals(200, response.getStatus()); - Assert.assertEquals("21ROMANGREEK", + Assert.assertEquals("28ROMANGREEK", response.readEntity(String.class)); } @@ -140,7 +140,7 @@ public void checkAlphabetsCountOffsetJson() { accept(MediaType.APPLICATION_JSON_TYPE).get(); Assert.assertNotNull(response); Assert.assertEquals(200, response.getStatus()); - Assert.assertEquals("{\"total\":21,\"alphabets\":[{\"name\":\"GREEK\"}]}", + Assert.assertEquals("{\"total\":28,\"alphabets\":[{\"name\":\"GREEK\"}]}", response.readEntity(String.class)); } @@ -153,7 +153,7 @@ public void checkAlphabetsCountOffsetXml() { accept(MediaType.APPLICATION_XML_TYPE).get(); Assert.assertNotNull(response); Assert.assertEquals(200, response.getStatus()); - Assert.assertEquals("21GREEK", + Assert.assertEquals("28GREEK", response.readEntity(String.class)); } @@ -166,7 +166,7 @@ public void checkAlphabetsCountOffsetFromEndJson() { accept(MediaType.APPLICATION_JSON_TYPE).get(); Assert.assertNotNull(response); Assert.assertEquals(200, response.getStatus()); - Assert.assertEquals("{\"total\":21,\"alphabets\":[{\"name\":\"CHINESE\"}]}", + Assert.assertEquals("{\"total\":28,\"alphabets\":[{\"name\":\"GUJARATI\"}]}", response.readEntity(String.class)); } @@ -179,7 +179,7 @@ public void checkAlphabetsCountOffsetFromEndXml() { accept(MediaType.APPLICATION_XML_TYPE).get(); Assert.assertNotNull(response); Assert.assertEquals(200, response.getStatus()); - Assert.assertEquals("21CHINESE", + Assert.assertEquals("28GUJARATI", response.readEntity(String.class)); } @@ -273,7 +273,8 @@ private void doCheckAlphabet( accept(mediaType).get(); Assert.assertNotNull(response); Assert.assertEquals(200, response.getStatus()); - Assert.assertEquals(expected, response.readEntity(String.class)); + final String s = response.readEntity(String.class); + Assert.assertEquals(expected, s); } private final static String[] EXPECTED_ALPHABETS_JSON = { @@ -281,45 +282,59 @@ private void doCheckAlphabet( "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ΠΛ0.ΚΡ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"LUX\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ΦΠ0Λ6.69Ρ1Ν\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ΑΑΑ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ΠΛ0.ΚΡ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"LUX\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"Ψ8ΨΝ.07Ζ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"LUX\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ΣΘ4.Ν8Ψ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"BEL\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"Ψ8ΨΝ.07Ζ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"BEL\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0Λ46.ΛΓ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"DEU\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"Ψ8ΨΝ.07Ζ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ΕΨΑ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ΦΠ0Λ6.69Ρ1Ν\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ΑΑΑ\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ПЛ0.КР\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ЛЭХ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ЧП0Л6.9РЗФ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ААА\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ПЛ0.КР\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ЛЭХ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"Я8ЯЗ.07Б\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ЛЭХ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ЦФВ.ЗЯ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ВЕЛ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"Я8ЯЗ.07Б\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ВЕЛ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0Л46.ЛГ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ДЕЭ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"Я8ЯЗ.07Б\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ЖЯА\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ЧП0Л6.9РЗФ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ААА\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"טך0.ים\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ךץר\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"צט0ך6.69ם1ל\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"אאא\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"טך0.ים\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ךץר\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"נ8נל.07ת\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ךץר\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"עמ4.ל8נ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"בףך\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"נ8נל.07ת\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"בףך\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ך46.ךז9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"דףץ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"נ8נל.07ת\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"הנא\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"צט0ך6.69ם1ל\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"אאא\"}]}", - "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ठत0.णन\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"तफस\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"लठ0त6.9नधप\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"अअअ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ठत0.णन\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"तफस\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"भ8भध.07ड\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"तफस\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"मपक.धभ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"कएत\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"भ8भध.07ड\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"कएत\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0त46.तज9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"घएफ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"भ8भध.07ड\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"चभअ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"लठ0त6.9नधप\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"अअअ\"}]}", + "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ठत0.णन\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"तफस\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"लठ0त6.9नधप\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"अअअ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ठत0.णन\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"तफस\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"भ8भध.07ब\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"तफस\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"मपक.धभ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"कएत\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"भ8भध.07ब\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"कएत\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0त46.तज9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"घएफ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"भ8भध.07ब\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"चभअ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"लठ0त6.9नधप\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"अअअ\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ഡഥ0.തന\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ഥഉശ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ഴഡ0ഥ6.9നധമ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ഒഒഒ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ഡഥ0.തന\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ഥഉശ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ര8രധ.07ഹ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ഥഉശ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"റമക.ധര3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"കഋഥ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ര8രധ.07ഹ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"കഋഥ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ഥ46.ഥജ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ഗഋഉ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ര8രധ.07ഹ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ചരഒ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ഴഡ0ഥ6.9നധമ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ഒഒഒ\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ႮႱ0.ႰႵ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ႱႨႽ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ႺႮ0Ⴑ6.9ႵႴႶ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ႠႠႠ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ႮႱ0.ႰႵ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ႱႨႽ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"Ⴗ8ႷႴ.07Ⴟ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ႱႨႽ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ႸႶႡ.ႴႷ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ႡႤႱ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"Ⴗ8ႷႴ.07Ⴟ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ႡႤႱ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0Ⴑ46.ႱႫ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ႦႤႨ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"Ⴗ8ႷႴ.07Ⴟ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ႩႷႠ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ႺႮ0Ⴑ6.9ႵႴႶ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ႠႠႠ\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"スト0.チヒ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"トエラ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"モス0ト6.9ヒヌフ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"アアア\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"スト0.チヒ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"トエラ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ヘ8ヘヌ.07ヲ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"トエラ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ホフカ.ヌヘ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"カオト\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ヘ8ヘヌ.07ヲ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"カオト\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ト46.トコ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"クオエ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ヘ8ヘヌ.07ヲ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ケヘア\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"モス0ト6.9ヒヌフ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"アアア\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ชด0.ฑธ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ดฬอ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ลช0ด6.9ธทบ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ะะะ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ชด0.ฑธ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ดฬอ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ผ8ผท.07ฯ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ดฬอ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"มบก.ทผ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"กาด\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ผ8ผท.07ฯ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"กาด\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ด46.ดจ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"คาฬ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ผ8ผท.07ฯ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"งผะ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ลช0ด6.9ธทบ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ะะะ\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ຍທ0.ດຜ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ທຽຫ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ວຍ0ທ6.9ຜບພ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ະະະ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ຍທ0.ດຜ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ທຽຫ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ມ8ມບ.07ຯ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ທຽຫ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ຢພກ.ບມ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ກໃທ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ມ8ມບ.07ຯ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ກໃທ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ທ46.ທຈ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ຄໃຽ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ມ8ມບ.07ຯ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ງມະ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ວຍ0ທ6.9ຜບພ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ະະະ\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ԽՀ0.ԿՇ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ՀՅՑ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ՏԽ0Հ6.9ՇՃՈ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ՖՖՖ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ԽՀ0.ԿՇ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ՀՅՑ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"Պ8ՊՃ.07Փ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ՀՅՑ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ՍՈԲ.ՃՊ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ԲԵՀ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"Պ8ՊՃ.07Փ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ԲԵՀ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0Հ46.ՀԹ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ԴԵՅ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"Պ8ՊՃ.07Փ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ԸՊՖ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ՏԽ0Հ6.9ՇՃՈ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ՖՖՖ\"}]}", - "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ঝড0.ঠত\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ডওয\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"বঝ0ড6.9তণথ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"অঅঅ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ঝড0.ঠত\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ডওয\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"দ8দণ.07হ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ডওয\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"নথঌ.ণদ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ঌএড\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"দ8দণ.07হ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ঌএড\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ড46.ডঙ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"খএও\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"দ8দণ.07হ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"গদঅ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"বঝ0ড6.9তণথ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"অঅঅ\"}]}", + "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ঝড0.ঠত\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ডটয\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"বঝ0ড6.9তণথ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"জজজ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ঝড0.ঠত\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ডটয\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"দ8দণ.07হ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ডটয\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"নথঘ.ণদ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ঘমড\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"দ8দণ.07হ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ঘমড\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ড46.ডঙ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"খমট\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"দ8দণ.07হ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"গদজ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"বঝ0ড6.9তণথ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"জজজ\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ਠਤ0.ਣਨ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ਤਫਸ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ਲਠ0ਤ6.9ਨਧਪ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ਅਅਅ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ਠਤ0.ਣਨ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ਤਫਸ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ਭ8ਭਧ.07ਡ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ਤਫਸ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ਮਪਕ.ਧਭ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ਕਏਤ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ਭ8ਭਧ.07ਡ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ਕਏਤ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ਤ46.ਤਜ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ਘਏਫ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ਭ8ਭਧ.07ਡ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ਚਭਅ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ਲਠ0ਤ6.9ਨਧਪ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ਅਅਅ\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ཇཕ0.ཉད\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ཕའར\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ཟཇ0ཕ6.9དཏན\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"མམམ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ཇཕ0.ཉད\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ཕའར\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"པ8པཏ.07ས\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ཕའར\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"བནཀ.ཏཔ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ཀཤཕ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"པ8པཏ.07ས\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ཀཤཕ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ཕ46.ཕཅ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"གཤའ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"པ8པཏ.07ས\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ངཔམ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ཟཇ0ཕ6.9དཏན\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"མམམ\"}]}", - "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"زش0.سط\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"شقم\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"كز0ش6.69ط1ض\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ببب\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"زش0.سط\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"شقم\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ع8عض.07و\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"شقم\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"غظ4.ض8ع3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"تىش\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ع8عض.07و\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"تىش\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ش46.شذ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"خىق\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ع8عض.07و\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"دعب\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"كز0ش6.69ط1ض\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ببب\"}]}", + "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"زش0.سط\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"شقم\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"جز0ش6.69ط1ض\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ببب\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"زش0.سط\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"شقم\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ع8عض.07و\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"شقم\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"غظ4.ض8ع3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"تثش\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ع8عض.07و\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"تثش\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ش46.شذ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"خثق\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ع8عض.07و\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"دعب\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"جز0ش6.69ط1ض\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ببب\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"타0.퍠\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ᅡᅴᄏ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ᄌᄐ0ᅡ6.69ᅤ1ᅣ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ᄒᄒᄒ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"타0.퍠\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ᅡᅴᄏ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ᅧ8ᅧᅣ.07ᅮ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ᅡᅴᄏ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ᅩᅥ4.ᅣ8ᅧ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"게ᅡ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ᅧ8ᅧᅣ.07ᅮ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"게ᅡ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ᅡ46.ᅡᄇ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"데ᅴ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ᅧ8ᅧᅣ.07ᅮ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"려ᄒ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ᄌᄐ0ᅡ6.69ᅤ1ᅣ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ᄒᄒᄒ\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ဇဍ0.ဌထ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ဍဖဘ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ဟဇ0ဍ6.9ထတဒ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"စစစ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ဇဍ0.ဌထ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ဍဖဘ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"သ8သတ.07လ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ဍဖဘ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"နဒက.တသ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ကဓဍ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"သ8သတ.07လ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ကဓဍ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ဍ46.ဍင9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ဂဓဖ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"သ8သတ.07လ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ဃသစ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ဟဇ0ဍ6.9ထတဒ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"စစစ\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ឈឌ0.ដទ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ឌសល\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ពឈ0ឌ6.9ទណធ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ញញញ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ឈឌ0.ដទ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ឌសល\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ន8នណ.07អ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ឌសល\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"បធក.ណន3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"កចឌ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ន8នណ.07អ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"កចឌ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ឌ46.ឌង9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"គចស\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ន8នណ.07អ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ឃនញ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ពឈ0ឌ6.9ទណធ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ញញញ\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ඬද0.තප\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"දඋව\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"රඬ0ද6.9පඳබ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"අඅඅ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ඬද0.තප\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"දඋව\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ම8මඳ.07හ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"දඋව\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ඹබක.ඳම3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"කඉද\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ම8මඳ.07හ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"කඉද\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ද46.දට9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ඟඉඋ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ම8මඳ.07හ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ජමඅ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"රඬ0ද6.9පඳබ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"අඅඅ\"}]}", "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ކވ0.އދ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ވޜޒ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ސކ0ވ6.9ދފތ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ޔޔޔ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ކވ0.އދ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ވޜޒ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ލ8ލފ.07ޱ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ވޜޒ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ގތހ.ފލ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ހޗވ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ލ8ލފ.07ޱ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ހޗވ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ވ46.ވބ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ނޗޜ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ލ8ލފ.07ޱ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ރލޔ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ސކ0ވ6.9ދފތ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ޔޔޔ\"}]}", - "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ㄋㄍ0.ㄌㄕ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ㄍㄓㄨ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ㄩㄋ0ㄍ6.9ㄕㄏㄖ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ㄣㄣㄣ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ㄋㄍ0.ㄌㄕ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ㄍㄓㄨ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ㄐ8ㄐㄏ.07ㄙ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ㄍㄓㄨ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ㄑㄖㄅ.ㄏㄐ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ㄅㄔㄍ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ㄐ8ㄐㄏ.07ㄙ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ㄅㄔㄍ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ㄍ46.ㄍㄉ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ㄆㄔㄓ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ㄐ8ㄐㄏ.07ㄙ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ㄇㄐㄣ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ㄩㄋ0ㄍ6.9ㄕㄏㄖ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ㄣㄣㄣ\"}]}" + "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ㄋㄍ0.ㄌㄕ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ㄍㄓㄨ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ㄩㄋ0ㄍ6.9ㄕㄏㄖ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ㄣㄣㄣ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ㄋㄍ0.ㄌㄕ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ㄍㄓㄨ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ㄐ8ㄐㄏ.07ㄙ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ㄍㄓㄨ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ㄑㄖㄅ.ㄏㄐ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ㄅㄔㄍ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ㄐ8ㄐㄏ.07ㄙ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ㄅㄔㄍ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ㄍ46.ㄍㄉ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ㄆㄔㄓ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ㄐ8ㄐㄏ.07ㄙ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ㄇㄐㄣ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ㄩㄋ0ㄍ6.9ㄕㄏㄖ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ㄣㄣㄣ\"}]}", + "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ⵃⵅ0.ⵄⵎ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ⵅⵢⵟ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ⵛⵃ0ⵅ6.9ⵎⵍⵕ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ⵉⵉⵉ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ⵃⵅ0.ⵄⵎ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ⵅⵢⵟ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ⵖ8ⵖⵍ.07ⵣ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ⵅⵢⵟ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ⵙⵕⴱ.ⵍⵖ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ⴱⵓⵅ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ⵖ8ⵖⵍ.07ⵣ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ⴱⵓⵅ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ⵅ46.ⵅⴽ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ⴷⵓⵢ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ⵖ8ⵖⵍ.07ⵣ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ⴼⵖⵉ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ⵛⵃ0ⵅ6.9ⵎⵍⵕ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ⵉⵉⵉ\"}]}", + "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"மர0.யழ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ரஓஏ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"உம0ர6.9ழவள\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ஙஙங\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"மர0.யழ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ரஓஏ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ற8றவ.07ஒ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ரஓஏ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"அளக.வற3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"கஆர\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ற8றவ.07ஒ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"கஆர\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ர46.ரந9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"டஆஓ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ற8றவ.07ஒ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"தறங\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"உம0ர6.9ழவள\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ஙஙங\"}]}", + "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"የለ0.ኬፔ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ለወቶ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ሦየ0ለ6.9ፔፐቀ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ማማማ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"የለ0.ኬፔ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ለወቶ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ቄ8ቄፐ.07ዜ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ለወቶ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ሬቀበ.ፐቄ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"በሞለ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ቄ8ቄፐ.07ዜ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"በሞለ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ለ46.ለገ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ደሞወ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ቄ8ቄፐ.07ዜ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ፊቄማ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ሦየ0ለ6.9ፔፐቀ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ማማማ\"}]}", + "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ఠణ0.డద\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ణభల\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"మఠ0ణ6.9దథధ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ఞఞఞ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ఠణ0.డద\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ణభల\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"న8నథ.07వ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ణభల\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"పధక.థన3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"కఫణ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"న8నథ.07వ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"కఫణ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ణ46.ణజ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ఙఫభ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"న8నథ.07వ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"చనఞ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"మఠ0ణ6.9దథధ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ఞఞఞ\"}]}", + "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ଟଢ0.ଡଦ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ଢହର\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ମଟ0ଢ6.9ଦଥଧ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ଝଝଝ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ଟଢ0.ଡଦ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ଢହର\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ନ8ନଥ.07ସ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ଢହର\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ପଧକ.ଥନ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"କଣଢ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ନ8ନଥ.07ସ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"କଣଢ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ଢ46.ଢଚ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ଗଣହ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ନ8ନଥ.07ସ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ଘନଝ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ମଟ0ଢ6.9ଦଥଧ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ଝଝଝ\"}]}", + "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ಜಡ0.ಠದ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ಡಇರ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ಬಜ0ಡ6.9ದತಧ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ಒಒಒ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ಜಡ0.ಠದ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ಡಇರ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ನ8ನತ.07ವ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"ಡಇರ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"ಪಧಕ.ತನ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ಕಎಡ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ನ8ನತ.07ವ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ಕಎಡ\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ಡ46.ಡಚ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ಗಎಇ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ನ8ನತ.07ವ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"ಙನಒ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ಬಜ0ಡ6.9ದತಧ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ಒಒಒ\"}]}", + "{\"local\":{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ચત0.ટર\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"તઉઝ\"},\"international\":{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ષચ0ત6.9રઠવ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ળળળ\"},\"mapcodes\":[{\"mapcode\":\"JL0.KP\",\"mapcodeInAlphabet\":\"ચત0.ટર\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"તઉઝ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ઞ8ઞઠ.07ભ\",\"territory\":\"LUX\",\"territoryInAlphabet\":\"તઉઝ\"},{\"mapcode\":\"SQB.NR3\",\"mapcodeInAlphabet\":\"મવગ.ઠઞ3\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ગઇત\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ઞ8ઞઠ.07ભ\",\"territory\":\"BEL\",\"territoryInAlphabet\":\"ગઇત\"},{\"mapcode\":\"0L46.LG9\",\"mapcodeInAlphabet\":\"0ત46.તબ9\",\"territory\":\"DEU\",\"territoryInAlphabet\":\"ડઇઉ\"},{\"mapcode\":\"R8RN.07Z\",\"mapcodeInAlphabet\":\"ઞ8ઞઠ.07ભ\",\"territory\":\"FRA\",\"territoryInAlphabet\":\"દઞળ\"},{\"mapcode\":\"VJ0L6.9PNQ\",\"mapcodeInAlphabet\":\"ષચ0ત6.9રઠવ\",\"territory\":\"AAA\",\"territoryInAlphabet\":\"ળળળ\"}]}", }; private final static String[] EXPECTED_ALPHABETS_XML = { "JL0.KPJL0.KPLUXLUXVJ0L6.9PNQVJ0L6.9PNQAAAAAAJL0.KPJL0.KPLUXLUXR8RN.07ZR8RN.07ZLUXLUXSQB.NR3SQB.NR3BELBELR8RN.07ZR8RN.07ZBELBEL0L46.LG90L46.LG9DEUDEUR8RN.07ZR8RN.07ZFRAFRAVJ0L6.9PNQVJ0L6.9PNQAAAAAA", "JL0.KPΠΛ0.ΚΡLUXLUXVJ0L6.9PNQΦΠ0Λ6.69Ρ1ΝAAAΑΑΑJL0.KPΠΛ0.ΚΡLUXLUXR8RN.07ZΨ8ΨΝ.07ΖLUXLUXSQB.NR3ΣΘ4.Ν8Ψ3BELBELR8RN.07ZΨ8ΨΝ.07ΖBELBEL0L46.LG90Λ46.ΛΓ9DEUDEUR8RN.07ZΨ8ΨΝ.07ΖFRAΕΨΑVJ0L6.9PNQΦΠ0Λ6.69Ρ1ΝAAAΑΑΑ", "JL0.KPПЛ0.КРLUXЛЭХVJ0L6.9PNQЧП0Л6.9РЗФAAAАААJL0.KPПЛ0.КРLUXЛЭХR8RN.07ZЯ8ЯЗ.07БLUXЛЭХSQB.NR3ЦФВ.ЗЯ3BELВЕЛR8RN.07ZЯ8ЯЗ.07БBELВЕЛ0L46.LG90Л46.ЛГ9DEUДЕЭR8RN.07ZЯ8ЯЗ.07БFRAЖЯАVJ0L6.9PNQЧП0Л6.9РЗФAAAААА", "JL0.KPטך0.יםLUXךץרVJ0L6.9PNQצט0ך6.69ם1לAAAאאאJL0.KPטך0.יםLUXךץרR8RN.07Zנ8נל.07תLUXךץרSQB.NR3עמ4.ל8נ3BELבףךR8RN.07Zנ8נל.07תBELבףך0L46.LG90ך46.ךז9DEUדףץR8RN.07Zנ8נל.07תFRAהנאVJ0L6.9PNQצט0ך6.69ם1לAAAאאא", - "JL0.KPठत0.णनLUXतफसVJ0L6.9PNQलठ0त6.9नधपAAAअअअJL0.KPठत0.णनLUXतफसR8RN.07Zभ8भध.07डLUXतफसSQB.NR3मपक.धभ3BELकएतR8RN.07Zभ8भध.07डBELकएत0L46.LG90त46.तज9DEUघएफR8RN.07Zभ8भध.07डFRAचभअVJ0L6.9PNQलठ0त6.9नधपAAAअअअ", + "JL0.KPठत0.णनLUXतफसVJ0L6.9PNQलठ0त6.9नधपAAAअअअJL0.KPठत0.णनLUXतफसR8RN.07Zभ8भध.07बLUXतफसSQB.NR3मपक.धभ3BELकएतR8RN.07Zभ8भध.07बBELकएत0L46.LG90त46.तज9DEUघएफR8RN.07Zभ8भध.07बFRAचभअVJ0L6.9PNQलठ0त6.9नधपAAAअअअ", "JL0.KPഡഥ0.തനLUXഥഉശVJ0L6.9PNQഴഡ0ഥ6.9നധമAAAഒഒഒJL0.KPഡഥ0.തനLUXഥഉശR8RN.07Zര8രധ.07ഹLUXഥഉശSQB.NR3റമക.ധര3BELകഋഥR8RN.07Zര8രധ.07ഹBELകഋഥ0L46.LG90ഥ46.ഥജ9DEUഗഋഉR8RN.07Zര8രധ.07ഹFRAചരഒVJ0L6.9PNQഴഡ0ഥ6.9നധമAAAഒഒഒ", "JL0.KPႮႱ0.ႰႵLUXႱႨႽVJ0L6.9PNQႺႮ0Ⴑ6.9ႵႴႶAAAႠႠႠJL0.KPႮႱ0.ႰႵLUXႱႨႽR8RN.07ZႷ8ႷႴ.07ႿLUXႱႨႽSQB.NR3ႸႶႡ.ႴႷ3BELႡႤႱR8RN.07ZႷ8ႷႴ.07ႿBELႡႤႱ0L46.LG90Ⴑ46.ႱႫ9DEUႦႤႨR8RN.07ZႷ8ႷႴ.07ႿFRAႩႷႠVJ0L6.9PNQႺႮ0Ⴑ6.9ႵႴႶAAAႠႠႠ", "JL0.KPスト0.チヒLUXトエラVJ0L6.9PNQモス0ト6.9ヒヌフAAAアアアJL0.KPスト0.チヒLUXトエラR8RN.07Zヘ8ヘヌ.07ヲLUXトエラSQB.NR3ホフカ.ヌヘ3BELカオトR8RN.07Zヘ8ヘヌ.07ヲBELカオト0L46.LG90ト46.トコ9DEUクオエR8RN.07Zヘ8ヘヌ.07ヲFRAケヘアVJ0L6.9PNQモス0ト6.9ヒヌフAAAアアア", "JL0.KPชด0.ฑธLUXดฬอVJ0L6.9PNQลช0ด6.9ธทบAAAะะะJL0.KPชด0.ฑธLUXดฬอR8RN.07Zผ8ผท.07ฯLUXดฬอSQB.NR3มบก.ทผ3BELกาดR8RN.07Zผ8ผท.07ฯBELกาด0L46.LG90ด46.ดจ9DEUคาฬR8RN.07Zผ8ผท.07ฯFRAงผะVJ0L6.9PNQลช0ด6.9ธทบAAAะะะ", "JL0.KPຍທ0.ດຜLUXທຽຫVJ0L6.9PNQວຍ0ທ6.9ຜບພAAAະະະJL0.KPຍທ0.ດຜLUXທຽຫR8RN.07Zມ8ມບ.07ຯLUXທຽຫSQB.NR3ຢພກ.ບມ3BELກໃທR8RN.07Zມ8ມບ.07ຯBELກໃທ0L46.LG90ທ46.ທຈ9DEUຄໃຽR8RN.07Zມ8ມບ.07ຯFRAງມະVJ0L6.9PNQວຍ0ທ6.9ຜບພAAAະະະ", "JL0.KPԽՀ0.ԿՇLUXՀՅՑVJ0L6.9PNQՏԽ0Հ6.9ՇՃՈAAAՖՖՖJL0.KPԽՀ0.ԿՇLUXՀՅՑR8RN.07ZՊ8ՊՃ.07ՓLUXՀՅՑSQB.NR3ՍՈԲ.ՃՊ3BELԲԵՀR8RN.07ZՊ8ՊՃ.07ՓBELԲԵՀ0L46.LG90Հ46.ՀԹ9DEUԴԵՅR8RN.07ZՊ8ՊՃ.07ՓFRAԸՊՖVJ0L6.9PNQՏԽ0Հ6.9ՇՃՈAAAՖՖՖ", - "JL0.KPঝড0.ঠতLUXডওযVJ0L6.9PNQবঝ0ড6.9তণথAAAঅঅঅJL0.KPঝড0.ঠতLUXডওযR8RN.07Zদ8দণ.07হLUXডওযSQB.NR3নথঌ.ণদ3BELঌএডR8RN.07Zদ8দণ.07হBELঌএড0L46.LG90ড46.ডঙ9DEUখএওR8RN.07Zদ8দণ.07হFRAগদঅVJ0L6.9PNQবঝ0ড6.9তণথAAAঅঅঅ", + "JL0.KPঝড0.ঠতLUXডটযVJ0L6.9PNQবঝ0ড6.9তণথAAAজজজJL0.KPঝড0.ঠতLUXডটযR8RN.07Zদ8দণ.07হLUXডটযSQB.NR3নথঘ.ণদ3BELঘমডR8RN.07Zদ8দণ.07হBELঘমড0L46.LG90ড46.ডঙ9DEUখমটR8RN.07Zদ8দণ.07হFRAগদজVJ0L6.9PNQবঝ0ড6.9তণথAAAজজজ", "JL0.KPਠਤ0.ਣਨLUXਤਫਸVJ0L6.9PNQਲਠ0ਤ6.9ਨਧਪAAAਅਅਅJL0.KPਠਤ0.ਣਨLUXਤਫਸR8RN.07Zਭ8ਭਧ.07ਡLUXਤਫਸSQB.NR3ਮਪਕ.ਧਭ3BELਕਏਤR8RN.07Zਭ8ਭਧ.07ਡBELਕਏਤ0L46.LG90ਤ46.ਤਜ9DEUਘਏਫR8RN.07Zਭ8ਭਧ.07ਡFRAਚਭਅVJ0L6.9PNQਲਠ0ਤ6.9ਨਧਪAAAਅਅਅ", "JL0.KPཇཕ0.ཉདLUXཕའརVJ0L6.9PNQཟཇ0ཕ6.9དཏནAAAམམམJL0.KPཇཕ0.ཉདLUXཕའརR8RN.07Zཔ8པཏ.07སLUXཕའརSQB.NR3བནཀ.ཏཔ3BELཀཤཕR8RN.07Zཔ8པཏ.07སBELཀཤཕ0L46.LG90ཕ46.ཕཅ9DEUགཤའR8RN.07Zཔ8པཏ.07སFRAངཔམVJ0L6.9PNQཟཇ0ཕ6.9དཏནAAAམམམ", - "JL0.KPزش0.سطLUXشقمVJ0L6.9PNQكز0ش6.69ط1ضAAAبببJL0.KPزش0.سطLUXشقمR8RN.07Zع8عض.07وLUXشقمSQB.NR3غظ4.ض8ع3BELتىشR8RN.07Zع8عض.07وBELتىش0L46.LG90ش46.شذ9DEUخىقR8RN.07Zع8عض.07وFRAدعبVJ0L6.9PNQكز0ش6.69ط1ضAAAببب", + "JL0.KPزش0.سطLUXشقمVJ0L6.9PNQجز0ش6.69ط1ضAAAبببJL0.KPزش0.سطLUXشقمR8RN.07Zع8عض.07وLUXشقمSQB.NR3غظ4.ض8ع3BELتثشR8RN.07Zع8عض.07وBELتثش0L46.LG90ش46.شذ9DEUخثقR8RN.07Zع8عض.07وFRAدعبVJ0L6.9PNQجز0ش6.69ط1ضAAAببب", "JL0.KP타0.퍠LUXᅡᅴᄏVJ0L6.9PNQᄌᄐ0ᅡ6.69ᅤ1ᅣAAAᄒᄒᄒJL0.KP타0.퍠LUXᅡᅴᄏR8RN.07Zᅧ8ᅧᅣ.07ᅮLUXᅡᅴᄏSQB.NR3ᅩᅥ4.ᅣ8ᅧ3BEL게ᅡR8RN.07Zᅧ8ᅧᅣ.07ᅮBEL게ᅡ0L46.LG90ᅡ46.ᅡᄇ9DEU데ᅴR8RN.07Zᅧ8ᅧᅣ.07ᅮFRA려ᄒVJ0L6.9PNQᄌᄐ0ᅡ6.69ᅤ1ᅣAAAᄒᄒᄒ", "JL0.KPဇဍ0.ဌထLUXဍဖဘVJ0L6.9PNQဟဇ0ဍ6.9ထတဒAAAစစစJL0.KPဇဍ0.ဌထLUXဍဖဘR8RN.07Zသ8သတ.07လLUXဍဖဘSQB.NR3နဒက.တသ3BELကဓဍR8RN.07Zသ8သတ.07လBELကဓဍ0L46.LG90ဍ46.ဍင9DEUဂဓဖR8RN.07Zသ8သတ.07လFRAဃသစVJ0L6.9PNQဟဇ0ဍ6.9ထတဒAAAစစစ", "JL0.KPឈឌ0.ដទLUXឌសលVJ0L6.9PNQពឈ0ឌ6.9ទណធAAAញញញJL0.KPឈឌ0.ដទLUXឌសលR8RN.07Zន8នណ.07អLUXឌសលSQB.NR3បធក.ណន3BELកចឌR8RN.07Zន8នណ.07អBELកចឌ0L46.LG90ឌ46.ឌង9DEUគចសR8RN.07Zន8នណ.07អFRAឃនញVJ0L6.9PNQពឈ0ឌ6.9ទណធAAAញញញ", "JL0.KPඬද0.තපLUXදඋවVJ0L6.9PNQරඬ0ද6.9පඳබAAAඅඅඅJL0.KPඬද0.තපLUXදඋවR8RN.07Zම8මඳ.07හLUXදඋවSQB.NR3ඹබක.ඳම3BELකඉදR8RN.07Zම8මඳ.07හBELකඉද0L46.LG90ද46.දට9DEUඟඉඋR8RN.07Zම8මඳ.07හFRAජමඅVJ0L6.9PNQරඬ0ද6.9පඳබAAAඅඅඅ", "JL0.KPކވ0.އދLUXވޜޒVJ0L6.9PNQސކ0ވ6.9ދފތAAAޔޔޔJL0.KPކވ0.އދLUXވޜޒR8RN.07Zލ8ލފ.07ޱLUXވޜޒSQB.NR3ގތހ.ފލ3BELހޗވR8RN.07Zލ8ލފ.07ޱBELހޗވ0L46.LG90ވ46.ވބ9DEUނޗޜR8RN.07Zލ8ލފ.07ޱFRAރލޔVJ0L6.9PNQސކ0ވ6.9ދފތAAAޔޔޔ", - "JL0.KPㄋㄍ0.ㄌㄕLUXㄍㄓㄨVJ0L6.9PNQㄩㄋ0ㄍ6.9ㄕㄏㄖAAAㄣㄣㄣJL0.KPㄋㄍ0.ㄌㄕLUXㄍㄓㄨR8RN.07Zㄐ8ㄐㄏ.07ㄙLUXㄍㄓㄨSQB.NR3ㄑㄖㄅ.ㄏㄐ3BELㄅㄔㄍR8RN.07Zㄐ8ㄐㄏ.07ㄙBELㄅㄔㄍ0L46.LG90ㄍ46.ㄍㄉ9DEUㄆㄔㄓR8RN.07Zㄐ8ㄐㄏ.07ㄙFRAㄇㄐㄣVJ0L6.9PNQㄩㄋ0ㄍ6.9ㄕㄏㄖAAAㄣㄣㄣ" + "JL0.KPㄋㄍ0.ㄌㄕLUXㄍㄓㄨVJ0L6.9PNQㄩㄋ0ㄍ6.9ㄕㄏㄖAAAㄣㄣㄣJL0.KPㄋㄍ0.ㄌㄕLUXㄍㄓㄨR8RN.07Zㄐ8ㄐㄏ.07ㄙLUXㄍㄓㄨSQB.NR3ㄑㄖㄅ.ㄏㄐ3BELㄅㄔㄍR8RN.07Zㄐ8ㄐㄏ.07ㄙBELㄅㄔㄍ0L46.LG90ㄍ46.ㄍㄉ9DEUㄆㄔㄓR8RN.07Zㄐ8ㄐㄏ.07ㄙFRAㄇㄐㄣVJ0L6.9PNQㄩㄋ0ㄍ6.9ㄕㄏㄖAAAㄣㄣㄣ", + "JL0.KPⵃⵅ0.ⵄⵎLUXⵅⵢⵟVJ0L6.9PNQⵛⵃ0ⵅ6.9ⵎⵍⵕAAAⵉⵉⵉJL0.KPⵃⵅ0.ⵄⵎLUXⵅⵢⵟR8RN.07Zⵖ8ⵖⵍ.07ⵣLUXⵅⵢⵟSQB.NR3ⵙⵕⴱ.ⵍⵖ3BELⴱⵓⵅR8RN.07Zⵖ8ⵖⵍ.07ⵣBELⴱⵓⵅ0L46.LG90ⵅ46.ⵅⴽ9DEUⴷⵓⵢR8RN.07Zⵖ8ⵖⵍ.07ⵣFRAⴼⵖⵉVJ0L6.9PNQⵛⵃ0ⵅ6.9ⵎⵍⵕAAAⵉⵉⵉ", + "JL0.KPமர0.யழLUXரஓஏVJ0L6.9PNQஉம0ர6.9ழவளAAAஙஙஙJL0.KPமர0.யழLUXரஓஏR8RN.07Zற8றவ.07ஒLUXரஓஏSQB.NR3அளக.வற3BELகஆரR8RN.07Zற8றவ.07ஒBELகஆர0L46.LG90ர46.ரந9DEUடஆஓR8RN.07Zற8றவ.07ஒFRAதறஙVJ0L6.9PNQஉம0ர6.9ழவளAAAஙஙங", + "JL0.KPየለ0.ኬፔLUXለወቶVJ0L6.9PNQሦየ0ለ6.9ፔፐቀAAAማማማJL0.KPየለ0.ኬፔLUXለወቶR8RN.07Zቄ8ቄፐ.07ዜLUXለወቶSQB.NR3ሬቀበ.ፐቄ3BELበሞለR8RN.07Zቄ8ቄፐ.07ዜBELበሞለ0L46.LG90ለ46.ለገ9DEUደሞወR8RN.07Zቄ8ቄፐ.07ዜFRAፊቄማVJ0L6.9PNQሦየ0ለ6.9ፔፐቀAAAማማማ", + "JL0.KPఠణ0.డదLUXణభలVJ0L6.9PNQమఠ0ణ6.9దథధAAAఞఞఞJL0.KPఠణ0.డదLUXణభలR8RN.07Zన8నథ.07వLUXణభలSQB.NR3పధక.థన3BELకఫణR8RN.07Zన8నథ.07వBELకఫణ0L46.LG90ణ46.ణజ9DEUఙఫభR8RN.07Zన8నథ.07వFRAచనఞVJ0L6.9PNQమఠ0ణ6.9దథధAAAఞఞఞ", + "JL0.KPଟଢ0.ଡଦLUXଢହରVJ0L6.9PNQମଟ0ଢ6.9ଦଥଧAAAଝଝଝJL0.KPଟଢ0.ଡଦLUXଢହରR8RN.07Zନ8ନଥ.07ସLUXଢହରSQB.NR3ପଧକ.ଥନ3BELକଣଢR8RN.07Zନ8ନଥ.07ସBELକଣଢ0L46.LG90ଢ46.ଢଚ9DEUଗଣହR8RN.07Zନ8ନଥ.07ସFRAଘନଝVJ0L6.9PNQମଟ0ଢ6.9ଦଥଧAAAଝଝଝ", + "JL0.KPಜಡ0.ಠದLUXಡಇರVJ0L6.9PNQಬಜ0ಡ6.9ದತಧAAAಒಒಒJL0.KPಜಡ0.ಠದLUXಡಇರR8RN.07Zನ8ನತ.07ವLUXಡಇರSQB.NR3ಪಧಕ.ತನ3BELಕಎಡR8RN.07Zನ8ನತ.07ವBELಕಎಡ0L46.LG90ಡ46.ಡಚ9DEUಗಎಇR8RN.07Zನ8ನತ.07ವFRAಙನಒVJ0L6.9PNQಬಜ0ಡ6.9ದತಧAAAಒಒಒ", + "JL0.KPચત0.ટરLUXતઉઝVJ0L6.9PNQષચ0ત6.9રઠવAAAળળળJL0.KPચત0.ટરLUXતઉઝR8RN.07Zઞ8ઞઠ.07ભLUXતઉઝSQB.NR3મવગ.ઠઞ3BELગઇતR8RN.07Zઞ8ઞઠ.07ભBELગઇત0L46.LG90ત46.તબ9DEUડઇઉR8RN.07Zઞ8ઞઠ.07ભFRAદઞળVJ0L6.9PNQષચ0ત6.9રઠવAAAળળળ" }; } diff --git a/service/src/test/java/com/mapcode/services/ApiDTOTest.java b/service/src/test/java/com/mapcode/services/ApiDTOTest.java index b32a175..59d80ab 100644 --- a/service/src/test/java/com/mapcode/services/ApiDTOTest.java +++ b/service/src/test/java/com/mapcode/services/ApiDTOTest.java @@ -16,6 +16,7 @@ package com.mapcode.services; +import com.mapcode.Alphabet; import com.mapcode.services.dto.*; import com.tomtom.speedtools.objects.Immutables; import org.junit.Test; @@ -31,167 +32,178 @@ public class ApiDTOTest { @Test public void checkAlphabetDTO() { LOG.info("checkAlphabetDTO"); - AlphabetDTO x1 = new AlphabetDTO("x"); - assertEquals("x", x1.getName()); + AlphabetDTO x = new AlphabetDTO("x"); + assertEquals("x", x.getName()); - AlphabetDTO x2 = new AlphabetDTO("x"); - x2.setName("y"); - assertEquals("y", x2.getName()); + x = new AlphabetDTO("x"); + x.setName("y"); + assertEquals("y", x.getName()); } @Test public void checkAlphabetListDTO() { LOG.info("checkAlphabetListDTO"); - AlphabetListDTO x1 = new AlphabetListDTO(Immutables.listOf(new AlphabetDTO("x"))); - assertEquals(1, x1.size()); - assertEquals("x", x1.get(0).getName()); + AlphabetListDTO x = new AlphabetListDTO(Immutables.listOf(new AlphabetDTO("x"))); + assertEquals(1, x.size()); + assertEquals("x", x.get(0).getName()); } @Test public void checkAlphabetsDTO() { LOG.info("checkAlphabetsDTO"); - AlphabetsDTO x1 = new AlphabetsDTO(1, new AlphabetListDTO(Immutables.listOf(new AlphabetDTO("x")))); - assertEquals(1, x1.getTotal()); - assertEquals(1, x1.getAlphabets().size()); - - AlphabetsDTO x2 = new AlphabetsDTO(1, new AlphabetListDTO(Immutables.listOf(new AlphabetDTO("x")))); - x2.setAlphabets(new AlphabetListDTO(Immutables.listOf(new AlphabetDTO("y")))); - x2.setTotal(12); - assertEquals(12, x2.getTotal()); - assertEquals(1, x2.getAlphabets().size()); - assertEquals("y", x2.getAlphabets().get(0).getName()); + AlphabetsDTO x = new AlphabetsDTO(1, new AlphabetListDTO(Immutables.listOf(new AlphabetDTO("x")))); + assertEquals(1, x.getTotal()); + assertEquals(1, x.getAlphabets().size()); + + x = new AlphabetsDTO(1, new AlphabetListDTO(Immutables.listOf(new AlphabetDTO("x")))); + x.setAlphabets(new AlphabetListDTO(Immutables.listOf(new AlphabetDTO("y")))); + x.setTotal(12); + assertEquals(12, x.getTotal()); + assertEquals(1, x.getAlphabets().size()); + assertEquals("y", x.getAlphabets().get(0).getName()); + + final Alphabet[] a = {Alphabet.ROMAN, Alphabet.GREEK, Alphabet.ARABIC}; + x = new AlphabetsDTO(a.length, new AlphabetListDTO(a)); + assertEquals(3, x.getTotal()); + assertEquals(3, x.getAlphabets().size()); + assertEquals("ROMAN", x.getAlphabets().get(0).getName()); + assertEquals("GREEK", x.getAlphabets().get(1).getName()); + assertEquals("ARABIC", x.getAlphabets().get(2).getName()); } @Test public void checkCoordinatesDTO() { LOG.info("checkCoordinatesDTO"); - CoordinatesDTO x1 = new CoordinatesDTO(1.0, 2.0); - assertEquals(1.0, x1.getLatDeg(), 0.01); - assertEquals(2.0, x1.getLonDeg(), 0.01); - - CoordinatesDTO x2 = new CoordinatesDTO(1.0, 2.0); - x2.setLatDeg(-90.0); - x2.setLonDeg(-180.0); - assertEquals(-90.0, x2.getLatDeg(), 0.01); - assertEquals(-180.0, x2.getLonDeg(), 0.01); + CoordinatesDTO x = new CoordinatesDTO(1.0, 2.0); + assertEquals(1.0, x.getLatDeg(), 0.01); + assertEquals(2.0, x.getLonDeg(), 0.01); + + x = new CoordinatesDTO(1.0, 2.0); + x.setLatDeg(-90.0); + x.setLonDeg(-180.0); + assertEquals(-90.0, x.getLatDeg(), 0.01); + assertEquals(-180.0, x.getLonDeg(), 0.01); } @Test public void checkMapcodeDTO() { LOG.info("checkMapcodeDTO"); - MapcodeDTO x1 = new MapcodeDTO("XX.XX", "YY.YY", "NLD", "BEL", 1.0); - assertEquals("XX.XX", x1.getMapcode()); - assertEquals("YY.YY", x1.getMapcodeInAlphabet()); - assertEquals("NLD", x1.getTerritory()); - assertEquals("BEL", x1.getTerritoryInAlphabet()); - assertEquals(1.0, x1.getOffsetMeters(), 0.01); - - MapcodeDTO x2 = new MapcodeDTO("XX.XX", "YY.YY", "NLD", "BEL", 1.0); - x2.setMapcode("11.11"); - x2.setMapcodeInAlphabet("\u0397\u03a0.\u03982-\u0411"); - x2.setTerritory("\u0393\u03a8\u039e"); - x2.setTerritoryInAlphabet("444"); - assertEquals("11.11", x2.getMapcode()); - assertEquals("\u0397\u03a0.\u03982-\u0411", x2.getMapcodeInAlphabet()); - assertEquals("\u0393\u03a8\u039e", x2.getTerritory()); - assertEquals("444", x2.getTerritoryInAlphabet()); - assertEquals(1.0, x1.getOffsetMeters(), 0.01); + MapcodeDTO x = new MapcodeDTO("XX.XX", "YY.YY", "NLD", "BEL", 1.0); + assertEquals("XX.XX", x.getMapcode()); + assertEquals("YY.YY", x.getMapcodeInAlphabet()); + assertEquals("NLD", x.getTerritory()); + assertEquals("BEL", x.getTerritoryInAlphabet()); + assertEquals(1.0, x.getOffsetMeters(), 0.01); + + x = new MapcodeDTO("XX.XX", "YY.YY", "NLD", "BEL", 1.0); + x.setMapcode("11.11"); + x.setMapcodeInAlphabet("\u0397\u03a0.\u03982-\u0411"); + x.setTerritory("\u0393\u03a8\u039e"); + x.setTerritoryInAlphabet("444"); + assertEquals("11.11", x.getMapcode()); + assertEquals("\u0397\u03a0.\u03982-\u0411", x.getMapcodeInAlphabet()); + assertEquals("\u0393\u03a8\u039e", x.getTerritory()); + assertEquals("444", x.getTerritoryInAlphabet()); + assertEquals(1.0, x.getOffsetMeters(), 0.01); } @Test public void checkMapcodeListDTO() { LOG.info("checkMapcodeListDTO"); - MapcodeListDTO x1 = new MapcodeListDTO(Immutables.listOf(new MapcodeDTO("XX.XX", "YY.YY", "NLD", "BEL", 1.0))); - assertEquals(1, x1.size()); - assertEquals("XX.XX", x1.get(0).getMapcode()); + MapcodeListDTO x = new MapcodeListDTO(Immutables.listOf(new MapcodeDTO("XX.XX", "YY.YY", "NLD", "BEL", 1.0))); + assertEquals(1, x.size()); + assertEquals("XX.XX", x.get(0).getMapcode()); } @Test public void checkMapcodesDTO() { LOG.info("checkMapcodesDTO"); - MapcodesDTO x1 = new MapcodesDTO( + MapcodesDTO x = new MapcodesDTO( new MapcodeDTO("AA.AA", "aa.aa", "USA", "usa", 1.0), new MapcodeDTO("BB.BB", "bb.bb", "CAN", "can", 1.0), new MapcodeListDTO(Immutables.listOf(new MapcodeDTO("XX.XX", "YY.YY", "NLD", "BEL", 1.0)))); - assertEquals("AA.AA", x1.getLocal().getMapcode()); - assertEquals("bb.bb", x1.getInternational().getMapcodeInAlphabet()); - assertEquals("BEL", x1.getMapcodes().get(0).getTerritoryInAlphabet()); + assertEquals("AA.AA", x.getLocal().getMapcode()); + assertEquals("bb.bb", x.getInternational().getMapcodeInAlphabet()); + assertEquals("BEL", x.getMapcodes().get(0).getTerritoryInAlphabet()); - MapcodesDTO x2 = new MapcodesDTO( + x = new MapcodesDTO( new MapcodeDTO("AA.AA", "aa.aa", "USA", "usa", 1.0), new MapcodeDTO("BB.BB", "bb.bb", "CAN", "can", 1.0), new MapcodeListDTO(Immutables.listOf(new MapcodeDTO("XX.XX", "YY.YY", "NLD", "BEL", 1.0)))); - x2.setLocal(new MapcodeDTO("11.11", "22.22", "333", "444", 1.0)); - x2.setInternational(new MapcodeDTO("10.10", "20.20", "300", "400", 1.0)); - x2.setMapcodes(new MapcodeListDTO(Immutables.listOf(new MapcodeDTO("12.34", "43.21", "USA", "CAN", 1.0)))); - assertEquals("11.11", x2.getLocal().getMapcode()); - assertEquals("20.20", x2.getInternational().getMapcodeInAlphabet()); - assertEquals("CAN", x2.getMapcodes().get(0).getTerritoryInAlphabet()); + x.setLocal(new MapcodeDTO("11.11", "22.22", "333", "444", 1.0)); + x.setInternational(new MapcodeDTO("10.10", "20.20", "300", "400", 1.0)); + x.setMapcodes(new MapcodeListDTO(Immutables.listOf(new MapcodeDTO("12.34", "43.21", "USA", "CAN", 1.0)))); + assertEquals("11.11", x.getLocal().getMapcode()); + assertEquals("20.20", x.getInternational().getMapcodeInAlphabet()); + assertEquals("CAN", x.getMapcodes().get(0).getTerritoryInAlphabet()); } @Test public void checkTerritoryDTO() { LOG.info("checkTerritoryDTO"); - TerritoryDTO x1 = new TerritoryDTO("a", "b", "c", "d", "e", new String[]{"f", "g"}, new String[]{"h", "i"}); - assertEquals("a", x1.getAlphaCode()); - assertEquals("b", x1.getAlphaCodeMinimalUnambiguous()); - assertEquals("c", x1.getAlphaCodeMinimal()); - assertEquals("d", x1.getFullName()); - assertEquals("e", x1.getParentTerritory()); - assertEquals(2, x1.getAliases().length); - assertEquals("f", x1.getAliases()[0]); - assertEquals("g", x1.getAliases()[1]); - assertEquals(2, x1.getFullNameAliases().length); - assertEquals("h", x1.getFullNameAliases()[0]); - assertEquals("i", x1.getFullNameAliases()[1]); - - TerritoryDTO x2 = new TerritoryDTO("a", "b", "c", "d", "e", new String[]{"f", "g"}, new String[]{"h", "i"}); - x2.setAlphaCode("1"); - x2.setAlphaCodeMinimalUnambiguous("2"); - x2.setAlphaCodeMinimal("3"); - x2.setFullName("4"); - x2.setParentTerritory("5"); - x2.setAliases(new String[]{"6"}); - x2.setFullNameAliases(new String[]{"7"}); - assertEquals("1", x2.getAlphaCode()); + final AlphabetListDTO a = new AlphabetListDTO(new Alphabet[]{Alphabet.ROMAN, Alphabet.GREEK, Alphabet.ARABIC}); + TerritoryDTO x = new TerritoryDTO("a", "b", "c", "d", "e", new String[]{"f", "g"}, new String[]{"h", "i"}, a); + assertEquals("a", x.getAlphaCode()); + assertEquals("b", x.getAlphaCodeMinimalUnambiguous()); + assertEquals("c", x.getAlphaCodeMinimal()); + assertEquals("d", x.getFullName()); + assertEquals("e", x.getParentTerritory()); + assertEquals(2, x.getAliases().length); + assertEquals("f", x.getAliases()[0]); + assertEquals("g", x.getAliases()[1]); + assertEquals(2, x.getFullNameAliases().length); + assertEquals("h", x.getFullNameAliases()[0]); + assertEquals("i", x.getFullNameAliases()[1]); + + x = new TerritoryDTO("a", "b", "c", "d", "e", new String[]{"f", "g"}, new String[]{"h", "i"}, a); + x.setAlphaCode("1"); + x.setAlphaCodeMinimalUnambiguous("2"); + x.setAlphaCodeMinimal("3"); + x.setFullName("4"); + x.setParentTerritory("5"); + x.setAliases(new String[]{"6"}); + x.setFullNameAliases(new String[]{"7"}); + assertEquals("1", x.getAlphaCode()); } @Test public void checkTerritoryListDTO() { LOG.info("checkTerritoryListDTO"); - TerritoryListDTO x1 = new TerritoryListDTO(Immutables.listOf( - new TerritoryDTO("a", "b", "c", "d", "e", new String[]{"f", "g"}, new String[]{"h", "i"}))); - assertEquals(1, x1.size()); - assertEquals("a", x1.get(0).getAlphaCode()); + final AlphabetListDTO a = new AlphabetListDTO(new Alphabet[]{Alphabet.ROMAN, Alphabet.GREEK, Alphabet.ARABIC}); + TerritoryListDTO x = new TerritoryListDTO(Immutables.listOf( + new TerritoryDTO("a", "b", "c", "d", "e", new String[]{"f", "g"}, new String[]{"h", "i"}, a))); + assertEquals(1, x.size()); + assertEquals("a", x.get(0).getAlphaCode()); } @Test public void checkTerritoriesDTO() { LOG.info("checkTerritoriesDTO"); - TerritoriesDTO x1 = new TerritoriesDTO(10, + final AlphabetListDTO a = new AlphabetListDTO(new Alphabet[]{Alphabet.ROMAN, Alphabet.GREEK, Alphabet.ARABIC}); + TerritoriesDTO x = new TerritoriesDTO(10, new TerritoryListDTO(Immutables.listOf( - new TerritoryDTO("a", "b", "c", "d", "e", new String[]{"f", "g"}, new String[]{"h", "i"})))); - assertEquals(10, x1.getTotal()); - assertEquals("a", x1.getTerritories().get(0).getAlphaCode()); + new TerritoryDTO("a", "b", "c", "d", "e", new String[]{"f", "g"}, new String[]{"h", "i"}, a)))); + assertEquals(10, x.getTotal()); + assertEquals("a", x.getTerritories().get(0).getAlphaCode()); - TerritoriesDTO x2 = new TerritoriesDTO(100, + x = new TerritoriesDTO(100, new TerritoryListDTO(Immutables.listOf( - new TerritoryDTO("a", "b", "c", "d", "e", new String[]{"f", "g"}, new String[]{"h", "i"})))); - x2.setTotal(12); - x2.setTerritories(new TerritoryListDTO(Immutables.listOf( - new TerritoryDTO("1", "2", "3", "4", "5", new String[]{"6"}, new String[]{"7"})))); - assertEquals(12, x2.getTotal()); - assertEquals("1", x2.getTerritories().get(0).getAlphaCode()); + new TerritoryDTO("a", "b", "c", "d", "e", new String[]{"f", "g"}, new String[]{"h", "i"}, a)))); + x.setTotal(12); + x.setTerritories(new TerritoryListDTO(Immutables.listOf( + new TerritoryDTO("1", "2", "3", "4", "5", new String[]{"6"}, new String[]{"7"}, a)))); + assertEquals(12, x.getTotal()); + assertEquals("1", x.getTerritories().get(0).getAlphaCode()); } @Test public void checkVersionDTO() { LOG.info("checkVersionDTO"); - VersionDTO x1 = new VersionDTO("x"); - assertEquals("x", x1.getVersion()); + VersionDTO x = new VersionDTO("x"); + assertEquals("x", x.getVersion()); - VersionDTO x2 = new VersionDTO("x"); - x2.setVersion("2"); - assertEquals("2", x2.getVersion()); + x = new VersionDTO("x"); + x.setVersion("2"); + assertEquals("2", x.getVersion()); } } diff --git a/service/src/test/java/com/mapcode/services/ApiTerritoriesTest.java b/service/src/test/java/com/mapcode/services/ApiTerritoriesTest.java index 44cc810..953ac5c 100644 --- a/service/src/test/java/com/mapcode/services/ApiTerritoriesTest.java +++ b/service/src/test/java/com/mapcode/services/ApiTerritoriesTest.java @@ -57,17 +57,17 @@ public void checkTerritories1Json() { Assert.assertTrue(r.length() > 500); final String sub1 = r.substring(0, 500); final String sub2 = r.substring(r.length() - 500, r.length()); - Assert.assertEquals("{\"total\":533,\"territories\":[{\"aliases\":[\"US\"],\"fullNameAliases\":[\"United States of America\",\"America\"],\"alphaCode\":\"USA\",\"alphaCodeMinimalUnambiguous\":\"USA\",\"alphaCodeMinimal\":\"USA\",\"fullName\":\"USA\"},{\"aliases\":[\"IN\"],\"alphaCode\":\"IND\",\"alphaCodeMinimalUnambiguous\":\"IND\",\"alphaCodeMinimal\":\"IND\",\"fullName\":\"India\"},{\"aliases\":[\"CA\"],\"alphaCode\":\"CAN\",\"alphaCodeMinimalUnambiguous\":\"CAN\",\"alphaCodeMinimal\":\"CAN\",\"fullName\":\"Canada\"},{\"aliases\":[\"AU\"],\"alphaCode\":\"AUS\",\"alphaCodeMinimalUnambiguous\"", + Assert.assertEquals("{\"total\":533,\"territories\":[{\"aliases\":[\"US\"],\"fullNameAliases\":[\"United States of America\",\"America\"],\"alphaCode\":\"USA\",\"alphaCodeMinimalUnambiguous\":\"USA\",\"alphaCodeMinimal\":\"USA\",\"fullName\":\"USA\",\"alphabets\":[{\"name\":\"ROMAN\"}]},{\"aliases\":[\"IN\"],\"alphaCode\":\"IND\",\"alphaCodeMinimalUnambiguous\":\"IND\",\"alphaCodeMinimal\":\"IND\",\"fullName\":\"India\",\"alphabets\":[{\"name\":\"DEVANAGARI\"},{\"name\":\"BENGALI\"},{\"name\":\"ROMAN\"}]},{\"aliases\":[\"CA\"],\"alphaCode\":\"CAN\",\"alphaCodeMinimalUnambiguous\":\"CAN\",\"alphaCo", sub1); - Assert.assertEquals("aCodeMinimal\":\"XJ\",\"fullName\":\"Xinjiang Uyghur\",\"parentTerritory\":\"CHN\"},{\"aliases\":[\"US-UM\",\"USA-UM\",\"JTN\"],\"alphaCode\":\"UMI\",\"alphaCodeMinimalUnambiguous\":\"UMI\",\"alphaCodeMinimal\":\"UMI\",\"fullName\":\"United States Minor Outlying Islands\"},{\"alphaCode\":\"CPT\",\"alphaCodeMinimalUnambiguous\":\"CPT\",\"alphaCodeMinimal\":\"CPT\",\"fullName\":\"Clipperton Island\"},{\"fullNameAliases\":[\"Worldwide\",\"Earth\"],\"alphaCode\":\"AAA\",\"alphaCodeMinimalUnambiguous\":\"AAA\",\"alphaCodeMinimal\":\"AAA\",\"fullName\":\"International\"}]}", + Assert.assertEquals("\"USA-UM\",\"JTN\"],\"alphaCode\":\"UMI\",\"alphaCodeMinimalUnambiguous\":\"UMI\",\"alphaCodeMinimal\":\"UMI\",\"fullName\":\"United States Minor Outlying Islands\",\"alphabets\":[{\"name\":\"ROMAN\"}]},{\"alphaCode\":\"CPT\",\"alphaCodeMinimalUnambiguous\":\"CPT\",\"alphaCodeMinimal\":\"CPT\",\"fullName\":\"Clipperton Island\",\"alphabets\":[{\"name\":\"ROMAN\"}]},{\"fullNameAliases\":[\"Worldwide\",\"Earth\"],\"alphaCode\":\"AAA\",\"alphaCodeMinimalUnambiguous\":\"AAA\",\"alphaCodeMinimal\":\"AAA\",\"fullName\":\"International\",\"alphabets\":[{\"name\":\"ROMAN\"}]}]}", sub2); } @Test public void checkTerritories1Xml() { LOG.info("checkTerritories1Xml"); - final String expected1 = "533USAUSAUSAUSAUSUnited States of AmericaAmericaINDIND533USAUSAUSAUSAUSUnited States of AmericaAmericaROMAN533AAAAAAAAAInternationalWorldwideEarth", + Assert.assertEquals("533AAAAAAAAAInternationalWorldwideEarthROMAN", r); } @@ -158,14 +158,65 @@ public void checkTerritoryJson() { accept(MediaType.APPLICATION_JSON_TYPE).get(); Assert.assertNotNull(response); Assert.assertEquals(200, response.getStatus()); - Assert.assertEquals("{\"alphaCode\":\"NLD\",\"alphaCodeMinimalUnambiguous\":\"NLD\",\"alphaCodeMinimal\":\"NLD\",\"fullName\":\"Netherlands\"}", + Assert.assertEquals("{\"alphaCode\":\"NLD\",\"alphaCodeMinimalUnambiguous\":\"NLD\",\"alphaCodeMinimal\":\"NLD\",\"fullName\":\"Netherlands\",\"alphabets\":[{\"name\":\"ROMAN\"}]}", response.readEntity(String.class)); } @Test - public void checkTerritoryXml() { - LOG.info("checkTerritoryXml"); - final String expected = "NLDNLDNLDNetherlands"; + public void checkTerritoryJson1() { + LOG.info("checkTerritoryJson1"); + final String expected = "{\"alphaCode\":\"NLD\",\"alphaCodeMinimalUnambiguous\":\"NLD\",\"alphaCodeMinimal\":\"NLD\",\"fullName\":\"Netherlands\",\"alphabets\":[{\"name\":\"ROMAN\"}]}"; + Response response = new ResteasyClientBuilder().build(). + target(server.url("/mapcode/territories/nld")). + request(). + accept(MediaType.APPLICATION_JSON_TYPE).get(); + Assert.assertNotNull(response); + Assert.assertEquals(200, response.getStatus()); + Assert.assertEquals(expected, + response.readEntity(String.class)); + + response = new ResteasyClientBuilder().build(). + target(server.url("/mapcode/territories/nld")). + request(). + get(); + Assert.assertNotNull(response); + Assert.assertEquals(200, response.getStatus()); + Assert.assertEquals(expected, + response.readEntity(String.class)); + } + + @Test + public void checkTerritoryJson2() { + LOG.info("checkTerritoryJson2"); + final String expected = "{\"alphaCode\":\"IN-PY\",\"alphaCodeMinimalUnambiguous\":\"PY\",\"alphaCodeMinimal\":\"PY\",\"fullName\":\"Puducherry\",\"parentTerritory\":\"IND\",\"alphabets\":[{\"name\":\"MALAYALAM\"},{\"name\":\"TELUGU\"},{\"name\":\"DEVANAGARI\"}]}"; + final Response response = new ResteasyClientBuilder().build(). + target(server.url("/mapcode/territories/in-py")). + request(). + accept(MediaType.APPLICATION_JSON_TYPE).get(); + Assert.assertNotNull(response); + Assert.assertEquals(200, response.getStatus()); + Assert.assertEquals(expected, + response.readEntity(String.class)); + } + + @Test + public void checkTerritoryJson3() { + LOG.info("checkTerritoryJson3"); + final String expected = "{\"fullNameAliases\":[\"Scotland\",\"Great Britain\",\"Northern Ireland\",\"Ireland, Northern\"],\"alphaCode\":\"GBR\",\"alphaCodeMinimalUnambiguous\":\"GBR\",\"alphaCodeMinimal\":\"GBR\",\"fullName\":\"United Kingdom\",\"alphabets\":[{\"name\":\"ROMAN\"}]}"; + final Response response = new ResteasyClientBuilder().build(). + target(server.url("/mapcode/territories/gbr")). + request(). + accept(MediaType.APPLICATION_JSON_TYPE).get(); + Assert.assertNotNull(response); + Assert.assertEquals(200, response.getStatus()); + Assert.assertEquals(expected, + response.readEntity(String.class)); + } + + @Test + public void checkTerritoryXml1() { + LOG.info("checkTerritoryXml1"); + final String expected = "NLDNLDNLDNetherlandsROMAN"; Response response = new ResteasyClientBuilder().build(). target(server.url("/mapcode/territories/nld")). request(). @@ -185,10 +236,38 @@ public void checkTerritoryXml() { response.readEntity(String.class)); } + @Test + public void checkTerritoryXml2() { + LOG.info("checkTerritoryXml2"); + final String expected = "IN-PYPYPYPuducherryINDMALAYALAMTELUGUDEVANAGARI"; + final Response response = new ResteasyClientBuilder().build(). + target(server.url("/mapcode/territories/in-py")). + request(). + accept(MediaType.APPLICATION_XML_TYPE).get(); + Assert.assertNotNull(response); + Assert.assertEquals(200, response.getStatus()); + Assert.assertEquals(expected, + response.readEntity(String.class)); + } + + @Test + public void checkTerritoryXml3() { + LOG.info("checkTerritoryXml3"); + final String expected = "GBRGBRGBRUnited KingdomScotlandGreat BritainNorthern IrelandIreland, NorthernROMAN"; + final Response response = new ResteasyClientBuilder().build(). + target(server.url("/mapcode/territories/gbr")). + request(). + accept(MediaType.APPLICATION_XML_TYPE).get(); + Assert.assertNotNull(response); + Assert.assertEquals(200, response.getStatus()); + Assert.assertEquals(expected, + response.readEntity(String.class)); + } + @Test public void checkTerritoryStateJson() { LOG.info("checkTerritoryStateJson"); - final String usIn = "{\"alphaCode\":\"US-IN\",\"alphaCodeMinimalUnambiguous\":\"US-IN\",\"alphaCodeMinimal\":\"IN\",\"fullName\":\"Indiana\",\"parentTerritory\":\"USA\"}"; + final String usIn = "{\"alphaCode\":\"US-IN\",\"alphaCodeMinimalUnambiguous\":\"US-IN\",\"alphaCodeMinimal\":\"IN\",\"fullName\":\"Indiana\",\"parentTerritory\":\"USA\",\"alphabets\":[{\"name\":\"ROMAN\"}]}"; Response response = new ResteasyClientBuilder().build(). target(server.url("/mapcode/territories/in")). request(). @@ -233,7 +312,7 @@ public void checkTerritoryStateJson() { accept(MediaType.APPLICATION_JSON_TYPE).get(); Assert.assertNotNull(response); Assert.assertEquals(200, response.getStatus()); - Assert.assertEquals("{\"alphaCode\":\"RU-IN\",\"alphaCodeMinimalUnambiguous\":\"RU-IN\",\"alphaCodeMinimal\":\"IN\",\"fullName\":\"Ingushetia Republic\",\"parentTerritory\":\"RUS\"}", + Assert.assertEquals("{\"alphaCode\":\"RU-IN\",\"alphaCodeMinimalUnambiguous\":\"RU-IN\",\"alphaCodeMinimal\":\"IN\",\"fullName\":\"Ingushetia Republic\",\"parentTerritory\":\"RUS\",\"alphabets\":[{\"name\":\"CYRILLIC\"},{\"name\":\"ROMAN\"}]}", response.readEntity(String.class)); } } From 423ecdd856f7eb2db5eddc510bbb77353233f4ed Mon Sep 17 00:00:00 2001 From: Rijn Buve Date: Tue, 1 Nov 2016 11:48:00 +0100 Subject: [PATCH 2/2] Prepare for 2.4.1.0 --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index c1f2a44..3253f6a 100644 --- a/README.md +++ b/README.md @@ -243,7 +243,6 @@ self-hosting this service. ### 2.4.1.0 - * Added scripts for Tifinagh (Berber), Tamil, Amharic, Telugu, Odia, Kannada, Gujarati. * Added `alphabets` element to `territories`, returning the most commonly used languages for the territory.