package de.westnordost.streetcomplete.data.meta;
import junit.framework.TestCase;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import de.westnordost.osmapi.map.data.OsmRelation;
import de.westnordost.osmapi.map.data.OsmWay;
import de.westnordost.osmapi.map.data.Way;
public class OsmAreasTest extends TestCase
{
public void testRelation()
{
assertFalse(OsmAreas.isArea(new OsmRelation(0,0, null, null)));
Map<String, String> tags = new HashMap<>();
tags.put("type","multipolygon");
assertTrue(OsmAreas.isArea(new OsmRelation(0, 0, null, tags)));
}
public void testWayNoTags()
{
assertFalse(OsmAreas.isArea(createWay(false, null)));
assertFalse(OsmAreas.isArea(createWay(true, null)));
}
public void testWaySimple()
{
Map<String, String> tags = new HashMap<>();
tags.put("area","yes");
assertFalse(OsmAreas.isArea(createWay(false, tags)));
assertTrue(OsmAreas.isArea(createWay(true, tags)));
}
public void testWayRuleException()
{
Map<String, String> tags = new HashMap<>();
tags.put("railway","something");
assertFalse(OsmAreas.isArea(createWay(true, tags)));
tags.put("railway","station");
assertTrue(OsmAreas.isArea(createWay(true, tags)));
}
public void testWayRuleRegex()
{
Map<String, String> tags = new HashMap<>();
tags.put("waterway","duck");
assertFalse(OsmAreas.isArea(createWay(true, tags)));
tags.put("waterway","dock");
assertTrue(OsmAreas.isArea(createWay(true, tags)));
}
private Way createWay(boolean ring, Map<String,String> tags)
{
List<Long> nodes = ring ? Arrays.asList(0L,1L,0L) : Arrays.asList(0L,1L);
return new OsmWay(0, 0, nodes, tags );
}
}