diff --git a/lib/carto/tree/filterset.js b/lib/carto/tree/filterset.js index c4f1d6f8c..8298358a9 100644 --- a/lib/carto/tree/filterset.js +++ b/lib/carto/tree/filterset.js @@ -209,14 +209,6 @@ tree.Filterset.prototype.add = function(filter, env) { } else if (op === '=~') { this.filters[key + '=~' + filter.val] = filter; } else if (op === '>') { - // If there are other filters that are also > - // but are less than this one, they don't matter, so - // remove them. - for (var j in this.filters) { - if (this.filters[j].key == key && this.filters[j].val <= filter.val) { - delete this.filters[j]; - } - } this.filters[key + '>'] = filter; } else if (op === '>=') { for (var k in this.filters) { diff --git a/test/filterset.test.js b/test/filterset.test.js index 57500ae7f..935c6127d 100644 --- a/test/filterset.test.js +++ b/test/filterset.test.js @@ -225,12 +225,12 @@ describe('Filtersets', function() { f = new tree.Filterset(); f.add({ key: 'TOTAL', op: '!=', val: '11' }); f.add({ key: 'TOTAL', op: '>', val: 11 }); - assert.deepEqual(f.filters, { 'TOTAL>': { key: 'TOTAL', op: '>', val: 11 }}); + assert.deepEqual(f.filters, {"TOTAL!=11":{"key":"TOTAL","op":"!=","val":"11"},"TOTAL>":{"key":"TOTAL","op":">","val":11}}); f = new tree.Filterset(); f.add({ key: 'TOTAL', op: '!=', val: '11' }); f.add({ key: 'TOTAL', op: '>', val: 90 }); - assert.deepEqual(f.filters, { 'TOTAL>': { key: 'TOTAL', op: '>', val: 90 }}); + assert.deepEqual(f.filters, {"TOTAL!=11":{"key":"TOTAL","op":"!=","val":"11"},"TOTAL>":{"key":"TOTAL","op":">","val":90}}); f = new tree.Filterset(); f.add({ key: 'TOTAL', op: '!=', val: '11' }); diff --git a/test/rendering-mss/issue_370.mss b/test/rendering-mss/issue_370.mss new file mode 100644 index 000000000..6cd02b14a --- /dev/null +++ b/test/rendering-mss/issue_370.mss @@ -0,0 +1,3 @@ +[way_pixels < 192000][way_pixels > 3000] { + line-width: 1; +} \ No newline at end of file diff --git a/test/rendering-mss/issue_370.xml b/test/rendering-mss/issue_370.xml new file mode 100644 index 000000000..ef7c57320 --- /dev/null +++ b/test/rendering-mss/issue_370.xml @@ -0,0 +1,6 @@ +<Style name="style" filter-mode="first"> + <Rule> + <Filter>([way_pixels] < 192000) and ([way_pixels] > 3000)</Filter> + <LineSymbolizer stroke-width="1" /> + </Rule> +</Style> \ No newline at end of file diff --git a/test/rendering-mss/issue_370_b.mss b/test/rendering-mss/issue_370_b.mss new file mode 100644 index 000000000..97acbdc77 --- /dev/null +++ b/test/rendering-mss/issue_370_b.mss @@ -0,0 +1,3 @@ +[way_pixels <= 192000][way_pixels >= 3000] { + line-width: 1; +} \ No newline at end of file diff --git a/test/rendering-mss/issue_370_b.xml b/test/rendering-mss/issue_370_b.xml new file mode 100644 index 000000000..4c3a29d02 --- /dev/null +++ b/test/rendering-mss/issue_370_b.xml @@ -0,0 +1,6 @@ +<Style name="style" filter-mode="first"> + <Rule> + <Filter>([way_pixels] <= 192000) and ([way_pixels] >= 3000)</Filter> + <LineSymbolizer stroke-width="1" /> + </Rule> +</Style> \ No newline at end of file