Ticket #10391: 0004-Add-unit-test-for-element-of-operator.patch

File 0004-Add-unit-test-for-element-of-operator.patch, 5.0 KB (added by GerdP, 7 years ago)

modified version 0001-Add-unit-test-for-element-of-operator.patch

  • data_nodist/buildings-in-residential.osm

     
     1<?xml version='1.0' encoding='UTF-8'?>
     2<osm version='0.6' generator='JOSM'>
     3  <node id='-39804' action='modify' visible='true' lat='-11.1381068304' lon='30.01079208962' />
     4  <node id='-39805' action='modify' visible='true' lat='-11.13804838855' lon='30.01083422008' />
     5  <node id='-39806' action='modify' visible='true' lat='-11.1380833706' lon='30.01088462689' />
     6  <node id='-39807' action='modify' visible='true' lat='-11.13814181244' lon='30.01084249643' />
     7  <node id='-39818' action='modify' visible='true' lat='-11.13790167136' lon='30.01090273127' />
     8  <node id='-39819' action='modify' visible='true' lat='-11.13791088227' lon='30.01096442208' />
     9  <node id='-39825' action='modify' visible='true' lat='-11.13789513304' lon='30.01096263651' />
     10  <node id='-39826' action='modify' visible='true' lat='-11.13788236978' lon='30.01095306438' />
     11  <node id='-39827' action='modify' visible='true' lat='-11.13787601238' lon='30.01093827054' />
     12  <node id='-39828' action='modify' visible='true' lat='-11.13787776432' lon='30.01092221898' />
     13  <node id='-39829' action='modify' visible='true' lat='-11.13788715616' lon='30.0109092107' />
     14  <node id='-39830' action='modify' visible='true' lat='-11.13791742059' lon='30.01090451684' />
     15  <node id='-39831' action='modify' visible='true' lat='-11.13793018385' lon='30.01091408896' />
     16  <node id='-39832' action='modify' visible='true' lat='-11.13793654125' lon='30.01092888281' />
     17  <node id='-39833' action='modify' visible='true' lat='-11.13793478931' lon='30.01094493437' />
     18  <node id='-39834' action='modify' visible='true' lat='-11.13792539748' lon='30.01095794264' />
     19  <node id='-39844' action='modify' visible='true' lat='-11.13819469613' lon='30.0107381907' />
     20  <node id='-39845' action='modify' visible='true' lat='-11.13819469613' lon='30.01093852581' />
     21  <node id='-39846' action='modify' visible='true' lat='-11.13798942497' lon='30.01101832099' />
     22  <node id='-39847' action='modify' visible='true' lat='-11.13782312864' lon='30.01101832099' />
     23  <node id='-39848' action='modify' visible='true' lat='-11.13782312864' lon='30.01084883235' />
     24  <node id='-39849' action='modify' visible='true' lat='-11.13799550484' lon='30.0107381907' />
     25  <way id='101' version='3' action='modify' visible='true'>
     26    <nd ref='-39804' />
     27    <nd ref='-39805' />
     28    <nd ref='-39806' />
     29    <nd ref='-39807' />
     30    <nd ref='-39804' />
     31    <tag k='building' v='yes' />
     32  </way>
     33  <way id='102' version='3' action='modify' visible='true'>
     34    <nd ref='-39819' />
     35    <nd ref='-39825' />
     36    <nd ref='-39826' />
     37    <nd ref='-39827' />
     38    <nd ref='-39828' />
     39    <nd ref='-39829' />
     40    <nd ref='-39818' />
     41    <nd ref='-39830' />
     42    <nd ref='-39831' />
     43    <nd ref='-39832' />
     44    <nd ref='-39833' />
     45    <nd ref='-39834' />
     46    <nd ref='-39819' />
     47    <tag k='building' v='yes' />
     48  </way>
     49  <way id='103' version='3' action='modify' visible='true'>
     50    <nd ref='-39844' />
     51    <nd ref='-39845' />
     52    <nd ref='-39846' />
     53    <nd ref='-39847' />
     54    <nd ref='-39848' />
     55    <nd ref='-39849' />
     56    <nd ref='-39844' />
     57    <tag k='landuse' v='residential' />
     58  </way>
     59</osm>
  • test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/ChildOrParentSelectorTest.java

     
    193193        assertTrue(css.matches(new Environment(ds.getPrimitiveById(123, OsmPrimitiveType.WAY))));
    194194        assertTrue(css.matches(new Environment(ds.getPrimitiveById(123, OsmPrimitiveType.RELATION))));
    195195    }
     196
     197    /**
     198     * Test the element of operator.
     199     *
     200     * See ticket #10391 (https://josm.openstreetmap.de/ticket/10391).
     201     */
     202    @Test
     203    public void testElementOfOperator() throws Exception {
     204        ds = OsmReader.parseDataSet(Files.newInputStream(Paths.get("data_nodist/buildings-in-residential.osm")), null);
     205        ChildOrParentSelector css = parse("area[building] ∈ area[landuse=residential][landuse] {}");
     206
     207        Environment e;
     208        e = new Environment(ds.getPrimitiveById(101, OsmPrimitiveType.WAY));
     209        assertFalse(css.matches(e));
     210
     211        e = new Environment(ds.getPrimitiveById(102, OsmPrimitiveType.WAY));
     212        assertFalse(css.matches(e));
     213
     214        e = new Environment(ds.getPrimitiveById(103, OsmPrimitiveType.WAY));
     215        assertTrue(css.matches(e));
     216        assertTrue(e.children != null);
     217        assertTrue(e.children.contains(ds.getPrimitiveById(101, OsmPrimitiveType.WAY)));
     218        assertTrue(e.children.contains(ds.getPrimitiveById(102, OsmPrimitiveType.WAY)));
     219    }
    196220}