Ignore:
Timestamp:
2014-03-24T00:48:17+01:00 (10 years ago)
Author:
Don-vip
Message:

fix #9667 - Verify addresses interpolation range/values via MapCSS (patch by simon04)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.groovy

    r6859 r6927  
    55import org.openstreetmap.TestUtils
    66import org.openstreetmap.josm.Main
    7 import org.openstreetmap.josm.data.Preferences
     7import org.openstreetmap.josm.data.coor.LatLon
     8import org.openstreetmap.josm.data.osm.DataSet
    89import org.openstreetmap.josm.data.osm.OsmPrimitive
    910import org.openstreetmap.josm.data.osm.Way
     11import org.openstreetmap.josm.data.projection.Projections
    1012import org.openstreetmap.josm.gui.mappaint.Environment
    1113import org.openstreetmap.josm.gui.mappaint.MultiCascade
    1214import org.openstreetmap.josm.gui.mappaint.mapcss.parsergen.MapCSSParser
    1315import org.openstreetmap.josm.tools.ColorHelper
    14 import org.openstreetmap.josm.tools.Utils
    1516
    1617import java.awt.Color
     
    3435    @Before
    3536    public void setUp() throws Exception {
    36         Main.pref = new Preferences()
     37        Main.initApplicationPreferences()
     38        Main.setProjection(Projections.getProjectionByCode("EPSG:3857"));
    3739    }
    3840
     
    252254        assert ColorHelper.html2color("#12345678") == new Color(0x12, 0x34, 0x56, 0x78)
    253255    }
     256
     257    @Test
     258    public void testSiblingSelector() throws Exception {
     259        def s1 = (Selector.ChildOrParentSelector) getParser("*[a?][parent_tag(\"highway\")=\"unclassified\"] + *[b?]").child_selector()
     260        def ds = new DataSet()
     261        def n1 = new org.openstreetmap.josm.data.osm.Node(new LatLon(1, 2))
     262        n1.put("a", "true")
     263        def n2 = new org.openstreetmap.josm.data.osm.Node(new LatLon(1.1, 2.2))
     264        n2.put("b", "true")
     265        def w = new Way()
     266        w.put("highway", "unclassified")
     267        ds.addPrimitive(n1)
     268        ds.addPrimitive(n2)
     269        ds.addPrimitive(w)
     270        w.addNode(n1)
     271        w.addNode(n2)
     272
     273        def e = new Environment().withPrimitive(n2)
     274        assert s1.matches(e)
     275        assert e.osm == n2
     276        assert e.child == n1
     277        assert e.parent == w
     278        assert !s1.matches(new Environment().withPrimitive(n1))
     279        assert !s1.matches(new Environment().withPrimitive(w))
     280    }
     281
     282    @Test
     283    public void testSiblingSelectorInterpolation() throws Exception {
     284        def s1 = (Selector.ChildOrParentSelector) getParser(
     285                "*[tag(\"addr:housenumber\") > child_tag(\"addr:housenumber\")][regexp_test(\"even|odd\", parent_tag(\"addr:interpolation\"))]" +
     286                        " + *[addr:housenumber]").child_selector()
     287        def ds = new DataSet()
     288        def n1 = new org.openstreetmap.josm.data.osm.Node(new LatLon(1, 2))
     289        n1.put("addr:housenumber", "10")
     290        def n2 = new org.openstreetmap.josm.data.osm.Node(new LatLon(1.1, 2.2))
     291        n2.put("addr:housenumber", "100")
     292        def n3 = new org.openstreetmap.josm.data.osm.Node(new LatLon(1.2, 2.3))
     293        n3.put("addr:housenumber", "20")
     294        def w = new Way()
     295        w.put("addr:interpolation", "even")
     296        ds.addPrimitive(n1)
     297        ds.addPrimitive(n2)
     298        ds.addPrimitive(n3)
     299        ds.addPrimitive(w)
     300        w.addNode(n1)
     301        w.addNode(n2)
     302        w.addNode(n3)
     303
     304        assert s1.right.matches(new Environment().withPrimitive(n3))
     305        assert s1.left.matches(new Environment().withPrimitive(n2).withChild(n3).withParent(w))
     306        assert s1.matches(new Environment().withPrimitive(n3))
     307        assert !s1.matches(new Environment().withPrimitive(n1))
     308        assert !s1.matches(new Environment().withPrimitive(n2))
     309        assert !s1.matches(new Environment().withPrimitive(w))
     310    }
    254311}
Note: See TracChangeset for help on using the changeset viewer.