def METHOD_NAME(self):
    a = TagRemove_Layer(None)
    a.init(None)
    assert not a.way(None, {"layer": "-1"}, None)
    self.check_err(a.way(None, {"layer": "-1", "landuse": "forest"}, None))
    assert not a.way(None, {"layer": "1", "natural": "wood"}, None)
    self.check_err(a.way(None, {"layer": "-1", "natural": "tree"}, None))
    # highway
    self.check_err(a.way(None, {"layer": "-1", "highway": "service"}, [1,2,3,4]))
    # highway with tunnel
    assert not a.way(None, {"layer": "-1", "tunnel": "yes", "highway": "service"}, None)
    self.check_err(a.way(None, {"layer": "-1", "tunnel": "no", "highway": "service"}, [1,2]))
    self.check_err(a.way(None, {"layer": "1", "tunnel": "yes", "highway": "service"}, [1,2]))
    self.check_err(a.way(None, {"layer": "1", "tunnel": "no", "highway": "service"}, [1,2]))
    # highway with bridge
    self.check_err(a.way(None, {"layer": "-1", "bridge": "no", "highway": "service"}, [1,2,3,4]))
    self.check_err(a.way(None, {"layer": "-1", "bridge": "yes", "highway": "service"}, [1,2,3,4]))
    self.check_err(a.way(None, {"layer": "-1", "bridge": "yes", "highway": "service"}, [1,2]))
    assert not a.way(None, {"layer": "1", "bridge": "yes", "highway": "service"}, None)
    self.check_err(a.way(None, {"layer": "1", "bridge": "no", "highway": "service"}, [1,2,3,4]))
    # other highways
    assert not a.way(None, {"layer": "-1", "indoor": "yes", "highway": "service"}, None)
    assert not a.way(None, {"layer": "-1", "highway": "steps"}, None)
    # waterways/water
    assert not a.way(None, {"layer": "1", "bridge": "aqueduct", "waterway": "canal"}, [1,2,3,4,5])
    assert not a.way(None, {"layer": "-1", "tunnel": "culvert", "natural": "water"}, [1,2])
    self.check_err(a.way(None, {"layer": "-1", "waterway": "ditch"}, [1,2,3]))
    self.check_err(a.way(None, {"layer": "1", "natural": "water"}, [1,2,3,4,5,6]))
    assert not a.way(None, {"layer": "-1", "waterway": "pressurised", "location": "underground"}, [1,2])