package com.gisgraphy.importer; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Assert; import org.junit.Test; import com.gisgraphy.domain.geoloc.entity.GisFeature; import com.gisgraphy.domain.valueobject.GISSource; import com.gisgraphy.importer.MunicipalityDetector.MunicipalityDetectionStrategy; public class MunicipalityDetectorTest { @Test public void testIsMunicipalityForGisFeature() { IMunicipalityDetector d = new MunicipalityDetector(); GisFeature gisFeature = new GisFeature(); gisFeature.setAdm1Code("a"); gisFeature.setAdm2Code("a"); gisFeature.setAdm3Code("a"); gisFeature.setAdm4Code("a"); gisFeature.setAdm5Code("a"); gisFeature.setPopulation(1); assertFalse(d.isMunicipalityByGisFeature("",gisFeature)); assertFalse(d.isMunicipalityByGisFeature(null, gisFeature)); assertFalse(d.isMunicipalityByGisFeature("NOTEXISTING",gisFeature)); assertFalse(d.isMunicipalityByGisFeature("IT", null)); assertTrue(d.isMunicipalityByGisFeature("it", gisFeature)); assertTrue(d.isMunicipalityByGisFeature("IT", gisFeature)); } @Test public void testIsMunicipality(){ //test ALL IMunicipalityDetector d = new MunicipalityDetector(); Assert.assertTrue(d.isMunicipality(null, null, null, null)); Assert.assertTrue(d.isMunicipality("IN", null, null, GISSource.GEONAMES)); Assert.assertTrue(d.isMunicipality("IN", null, null, GISSource.OSM)); //test OSM Assert.assertFalse(d.isMunicipality("CN", null, null, GISSource.GEONAMES)); Assert.assertTrue(d.isMunicipality("CN", null, null, GISSource.OSM)); //test R Assert.assertFalse(d.isMunicipality("IT", null, null, GISSource.GEONAMES)); Assert.assertFalse("Even if it is R, it should be osm feature",d.isMunicipality("IT", null, "R", GISSource.GEONAMES)); Assert.assertFalse(d.isMunicipality("IT", null, null, GISSource.OSM)); Assert.assertFalse(d.isMunicipality("IT", null, "N", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("IT", null, "r", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("IT", null, "R", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("IT", null, "w", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("IT", null, "W", GISSource.OSM)); //N Assert.assertFalse(d.isMunicipality("FI", null, null, GISSource.GEONAMES)); Assert.assertFalse("Even if it is N, it should be osm feature",d.isMunicipality("FI", null, "N", GISSource.GEONAMES)); Assert.assertFalse(d.isMunicipality("PY", null, null, GISSource.OSM)); Assert.assertTrue(d.isMunicipality("PY", null, "n", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("PY", null, "N", GISSource.OSM)); //R_AND_N_CITY_VILLAGE_TOWN //R Assert.assertFalse(d.isMunicipality("SK", null, null, GISSource.GEONAMES)); Assert.assertFalse("Even if it is r, it should be osm feature",d.isMunicipality("SK", null, "R", GISSource.GEONAMES)); Assert.assertFalse("Even if it is N, it should be osm feature",d.isMunicipality("SK", null, "N", GISSource.GEONAMES)); Assert.assertTrue(d.isMunicipality("SK", null, "r", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("SK", null, "R", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("SK", null, "w", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("SK", null, "W", GISSource.OSM)); //N Assert.assertFalse("Geonames should be ignore",d.isMunicipality("SK", "CiTy", "N", GISSource.GEONAMES)); Assert.assertFalse("null type is not city,village,town",d.isMunicipality("SK", null, "N", GISSource.OSM)); Assert.assertFalse("foo type is not city,village,town",d.isMunicipality("SK", "foo", "N", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("SK", "CiTy", "N", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("SK", "ViLLaGe", "N", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("SK", "ToWn", "W", GISSource.OSM)); //N_CITY_VILLAGE_TOWN Assert.assertFalse("Geonames should be ignore",d.isMunicipality("TR", "CiTy", "N", GISSource.GEONAMES)); Assert.assertFalse("null type is not city,village,town",d.isMunicipality("TR", null, "N", GISSource.OSM)); Assert.assertFalse("foo type is not city,village,town",d.isMunicipality("TR", "foo", "N", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("TR", "CiTy", "N", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("TR", "ViLLaGe", "N", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("SK", "ToWn", "W", GISSource.OSM)); Assert.assertFalse("not a N",d.isMunicipality("TR", "CiTy", "R", GISSource.OSM)); //N_CITY_TOWN Assert.assertFalse("Geonames should be ignore",d.isMunicipality("TW", "CiTy", "N", GISSource.GEONAMES)); Assert.assertFalse("null type is not city,village,town",d.isMunicipality("TW", null, "N", GISSource.OSM)); Assert.assertFalse("foo type is not city,village,town",d.isMunicipality("TW", "foo", "N", GISSource.OSM)); Assert.assertTrue(d.isMunicipality("TW", "CiTy", "N", GISSource.OSM)); Assert.assertFalse(d.isMunicipality("TW", "ViLLaGe", "N", GISSource.OSM)); Assert.assertFalse("not a N",d.isMunicipality("TW", "ToWn", "W", GISSource.OSM)); Assert.assertFalse("not a N",d.isMunicipality("TW", "CiTy", "R", GISSource.OSM)); } @Test public void testIsMunicipality_internal() { MunicipalityDetector d = new MunicipalityDetector(); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION, 1, "", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.ADM1CODE, 0, "a", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.ADM1CODE, 1, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.ADM2CODE, 0, "", "a", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.ADM2CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.ADM3CODE, 0, "", "", "a", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.ADM3CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.ADM4CODE, 0, "", "", "", "a", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.ADM4CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.ADM5CODE, 0, "", "", "", "", "a")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.ADM5CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM1CODE, 0, "a", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM1CODE, 1, "a", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM1CODE, 1, "", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM1CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM2CODE, 0, "", "a", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM2CODE, 1, "", "a", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM2CODE, 1, "", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM2CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM3CODE, 0, "a", "", "a", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM3CODE, 1, "a", "", "a", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM3CODE, 1, "", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM3CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM4CODE, 0, "a", "", "", "a", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM4CODE, 1, "a", "", "", "a", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM4CODE, 1, "", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM4CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM5CODE, 0, "a", "", "", "", "a")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM5CODE, 1, "a", "", "", "", "a")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM5CODE, 1, "", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_OR_ADM5CODE, 0, "", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM1CODE, 0, "a", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM1CODE, 1, "", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM1CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM1CODE, 1, "a", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM2CODE, 0, "", "a", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM2CODE, 1, "", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM2CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM2CODE, 1, "", "a", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM3CODE, 0, "", "", "a", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM3CODE, 1, "", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM3CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM3CODE, 1, "", "", "a", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM4CODE, 0, "", "", "", "a", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM4CODE, 1, "", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM4CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM4CODE, 1, "", "", "", "a", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM5CODE, 0, "", "", "", "", "a")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM5CODE, 1, "", "", "", "", "")); assertFalse(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM5CODE, 0, "", "", "", "", "")); assertTrue(d.isMunicipality_internal(MunicipalityDetectionStrategy.POPULATION_AND_ADM5CODE, 1, "", "", "", "", "a")); } }