@Test
  public void testAStar_distance_tictac() {
    MapGraph mapGraph = new MapGraph();
    mapGraph.addRoad("Road 1", new Point2D.Double(0, 20), new Point2D.Double(100, 20), 35);
    mapGraph.addRoad("Road 2", new Point2D.Double(20, 0), new Point2D.Double(20, 100), 35);
    mapGraph.addRoad("Road 3", new Point2D.Double(0, 80), new Point2D.Double(100, 80), 35);
    LinkedList<Intersection> shortestPath1 =
        mapGraph.shortestPath_distance(
            mapGraph.getIntersectionByName("Road 1 + Road 2"),
            mapGraph.getIntersectionByName("Road 2 + Road 3"));
    if (shortestPath1 == null) fail();
    Iterator<Intersection> test = shortestPath1.iterator();
    assertEquals("Road 1 + Road 2", test.next().toString());
    assertEquals("Road 2 + Road 3", test.next().toString());
    assertFalse(test.hasNext());

    mapGraph.addRoad("Road 4", new Point2D.Double(80, 0), new Point2D.Double(80, 100), 35);

    LinkedList<Intersection> shortestPath1b =
        mapGraph.shortestPath_distance(
            mapGraph.getIntersectionByName("Road 1 + Road 2"),
            mapGraph.getIntersectionByName("Road 3 + Road 4"));
    if (shortestPath1b == null) fail();
    //		System.out.println(shortestPath1b);
    //		test = shortestPath1b.iterator();
    //		assertEquals("Road 1 + Road 2",test.next().toString());
    //		assertEquals("Road 2 + Road 3",test.next().toString());
    //		assertFalse(test.hasNext());
  }
  @Test
  public void testAStar_distance_slantedRoad() {
    MapGraph mapGraph = new MapGraph();
    mapGraph.addRoad("Road 1", new Point2D.Double(0, 20), new Point2D.Double(100, 20), 35);
    mapGraph.addRoad("Road 2", new Point2D.Double(20, 0), new Point2D.Double(20, 100), 35);
    mapGraph.addRoad("Road 3", new Point2D.Double(0, 80), new Point2D.Double(100, 80), 35);
    mapGraph.addRoad("Road 4", new Point2D.Double(80, 0), new Point2D.Double(80, 100), 35);
    mapGraph.addRoad("Slanted road", new Point2D.Double(25, 15), new Point2D.Double(75, 85), 35);

    GraphVisualizer gv = new GraphVisualizer(mapGraph);
    LinkedList<Intersection> shortestPath1 =
        mapGraph.shortestPath_distance(
            mapGraph.getIntersectionByName("Road 1 + Road 2"),
            mapGraph.getIntersectionByName("Road 1 + Slanted road"));
    if (shortestPath1 == null) fail();
    Iterator<Intersection> test = shortestPath1.iterator();
    assertEquals("Road 1 + Road 2", test.next().toString());
    assertEquals("Road 1 + Slanted road", test.next().toString());
    assertFalse(test.hasNext());

    LinkedList<Intersection> shortestPath2 =
        mapGraph.shortestPath_distance(
            mapGraph.getIntersectionByName("Road 1 + Road 2"),
            mapGraph.getIntersectionByName("Road 3 + Road 4"));
    if (shortestPath2 == null) fail();
    test = shortestPath2.iterator();
    assertEquals("Road 1 + Road 2", test.next().toString());
    assertEquals("Road 1 + Slanted road", test.next().toString());
    assertEquals("Road 3 + Slanted road", test.next().toString());
    assertEquals("Road 3 + Road 4", test.next().toString());
    assertFalse(test.hasNext());
  }
 @Test
 public void testaddRoad_simple() {
   MapGraph mapGraph = new MapGraph();
   mapGraph.addRoad("Road 1", new Point2D.Double(5, 0), new Point2D.Double(5, 10), 35);
   mapGraph.addRoad("Road 2", new Point2D.Double(0, 5), new Point2D.Double(10, 5), 35);
   mapGraph.addRoad("Road 3", new Point2D.Double(0, 7), new Point2D.Double(10, 7), 35);
 }
 @Test
 public void testAStar_time() {
   MapGraph mapGraph = new MapGraph();
   mapGraph.addRoad("Road 1", new Point2D.Double(0, 20), new Point2D.Double(100, 20), 35);
   mapGraph.addRoad("Road 2", new Point2D.Double(20, 0), new Point2D.Double(20, 100), 5);
   mapGraph.addRoad("Road 3", new Point2D.Double(0, 80), new Point2D.Double(100, 80), 35);
   mapGraph.addRoad("Road 4", new Point2D.Double(80, 0), new Point2D.Double(80, 100), 35);
   mapGraph.addRoad("Slanted road", new Point2D.Double(25, 15), new Point2D.Double(75, 85), 5);
   LinkedList<Intersection> shortestPath1 =
       mapGraph.shortestPath_time(
           mapGraph.getIntersectionByName("Road 3 + Road 4"),
           mapGraph.getIntersectionByName("Road 1 + Road 2"));
   if (shortestPath1 == null) fail();
   System.out.println(shortestPath1);
   Iterator<Intersection> test = shortestPath1.iterator();
   assertEquals("Road 3 + Road 4", test.next().toString());
   assertEquals("Road 1 + Road 4", test.next().toString());
   assertEquals("Road 1 + Slanted road", test.next().toString());
   assertEquals("Road 1 + Road 2", test.next().toString());
   assertFalse(test.hasNext());
 }