### Question:
StreetMatcher { public StreetMatcher(Graph graph) { this.graph = graph; index = createIndex(); index.build(); } StreetMatcher(Graph graph); @SuppressWarnings("unchecked") List<Edge> match(Geometry routeGeometry);  }### Answer:
@Test public void testStreetMatcher() { LineString geometry = geometry(-122.385689, 47.669484, -122.387384, 47.669470); StreetMatcher matcher = new StreetMatcher(_graph); List<Edge> match = matcher.match(geometry); assertNotNull(match); assertEquals(1, match.size()); assertEquals("56th_24th", match.get(0).getToVertex().getLabel()); geometry = geometry(-122.385689, 47.669484, -122.387384, 47.669470, -122.387588, 47.669325); match = matcher.match(geometry); assertNotNull(match); assertEquals(2, match.size()); geometry = geometry(-122.385689, 47.669484, -122.387384, 47.669470, -122.387588, 47.669325, -122.387255, 47.668675); match = matcher.match(geometry); assertNotNull(match); assertEquals(3, match.size()); geometry = geometry(-122.384756, 47.669260, -122.384777, 47.667454, -122.383554, 47.666789, -122.3825, 47.666); match = matcher.match(geometry); assertNotNull(match); System.out.println(match); assertEquals(4, match.size()); assertEquals("ballard_20th", match.get(3).getToVertex().getLabel()); }