@Override
    public final boolean accept(EdgeIteratorState iter) {
        if (!edgeFilter.accept(iter)) {
            return false;
        }

        if (pointHint.isEmpty()) {
            return true;
        }

        String name = iter.getName();
        if (name == null || name.isEmpty()) {
            return false;
        }

        BBox bbox = createBBox(iter);
        if (!pointCircle.intersects(bbox)) {
            return false;
        }

        name = removeRelation(name);
        String edgeName = prepareName(name);

        return isJaroWinklerSimilar(pointHint, edgeName);
    }
@Test
    public void curvedWayGeometry_issue2319() {
        // 0 - 1
        // |   |
        // |   |
        // -----
        //
        //    2 -- 3
        SimpleBooleanEncodedValue accessEnc = new SimpleBooleanEncodedValue("access", true);
        DecimalEncodedValue speedEnc = new DecimalEncodedValueImpl("speed", 5, 5, true);
        EncodingManager em = EncodingManager.start().add(accessEnc).add(speedEnc).build();
        BaseGraph graph = new BaseGraph.Builder(em).create();
        PointList pointList = new PointList(20, false);
        pointList.add(43.844377, -79.264005);
        pointList.add(43.843771, -79.263824);
        pointList.add(43.843743, -79.2638);
        pointList.add(43.843725, -79.26375);
        pointList.add(43.843724, -79.263676);
        pointList.add(43.843801, -79.263412);
        pointList.add(43.843866, -79.263);
        pointList.add(43.843873, -79.262838);
        pointList.add(43.843863, -79.262801);
        pointList.add(43.843781, -79.262729);
        pointList.add(43.842408, -79.262395);
        pointList.add(43.842363, -79.262397);
        pointList.add(43.842336, -79.262422);
        pointList.add(43.842168, -79.263186);
        pointList.add(43.842152, -79.263348);
        pointList.add(43.842225, -79.263421);
        pointList.add(43.842379, -79.263441);
        pointList.add(43.842668, -79.26352);
        pointList.add(43.842777, -79.263566);
        pointList.add(43.842832, -79.263627);
        pointList.add(43.842833, -79.263739);
        pointList.add(43.842807, -79.263802);
        pointList.add(43.842691, -79.264477);
        pointList.add(43.842711, -79.264588);
        graph.getNodeAccess().setNode(0, 43.844521, -79.263976);
        graph.getNodeAccess().setNode(1, 43.842775, -79.264649);

        EdgeIteratorState doubtfire = graph.edge(0, 1).setWayGeometry(pointList).set(accessEnc, true, true).
                set(speedEnc, 60, 60).setKeyValues(Map.of(STREET_NAME, new KValue("Doubtfire Crescent")));
        EdgeIteratorState golden = graph.edge(0, 1).set(accessEnc, true, true).set(speedEnc, 60, 60).
                setKeyValues(Map.of(STREET_NAME, new KValue("Golden Avenue")));

        graph.getNodeAccess().setNode(2, 43.841501560244744, -79.26366394602502);
        graph.getNodeAccess().setNode(3, 43.842247922172724, -79.2605663670726);
        PointList pointList2 = new PointList(1, false);
        pointList2.add(43.84191413615452, -79.261912128223);
        EdgeIteratorState denison = graph.edge(2, 3).setWayGeometry(pointList2).set(accessEnc, true, true).
                set(speedEnc, 60, 60).setKeyValues(Map.of(STREET_NAME, new KValue("Denison Street")));
        double qlat = 43.842122;
        double qLon = -79.262162;

        // if we use a very large radius we find doubtfire
        NameSimilarityEdgeFilter filter = new NameSimilarityEdgeFilter(EdgeFilter.ALL_EDGES, "doubtfire", new GHPoint(qlat, qLon), 1_000);
        assertFalse(filter.accept(golden));
        assertFalse(filter.accept(denison));
        assertTrue(filter.accept(doubtfire));

        // but also using a smaller radius should work, because the inner way geomerty of Doubtfire Crescent comes very
        // close to the marker even though the tower nodes are rather far away
        filter = new NameSimilarityEdgeFilter(EdgeFilter.ALL_EDGES, "doubtfire", new GHPoint(qlat, qLon), 100);
        assertFalse(filter.accept(golden));
        assertFalse(filter.accept(denison));
        assertTrue(filter.accept(doubtfire));
    }