@Override public Link createLink(Id<Link> id, Node from, Node to, Network network, double length, double freespeed, double capacity, double nOfLanes) { return NetworkUtils.createLink(id, from, to, network, length, freespeed, capacity, nOfLanes); }
Link newLink = NetworkUtils.createLink( link.getId(), newFromNode, newToNode, newNetwork, link.getLength(), link.getFreespeed(), link.getCapacity(), link.getNumberOfLanes());
network.addNode(node4); Link link1 = NetworkUtils.createLink(Id.create(1, Link.class), node1, node2, network, 1000, 100.0, 2000.0, 1.0); Link link1b = NetworkUtils.createLink(Id.create(1, Link.class), node2, node3, network, 1000, 100.0, 2000.0, 1.0); Link link2 = NetworkUtils.createLink(Id.create(2, Link.class), node2, node4, network, 1000, 100.0, 2000.0, 1.0); network.addLink(link1); Assert.assertEquals(1, network.getLinks().size());
@Test public void testAddLink_alsoInQuadTrees() { Network network = new NetworkImpl(); Node node1 = NetworkUtils.createNode(Id.create(1, Node.class), new Coord(100, 100)); Node node2 = NetworkUtils.createNode(Id.create(2, Node.class), new Coord(1000, 200)); Node node3 = NetworkUtils.createNode(Id.create(3, Node.class), new Coord(500, 700)); network.addNode(node1); network.addNode(node2); network.addNode(node3); Link link1 = NetworkUtils.createLink(Id.create(1, Link.class), node1, node2, network, 800, 13.4, 2000, 1); Link link2 = NetworkUtils.createLink(Id.create(2, Link.class), node2, node3, network, 800, 13.4, 2000, 1); Link link3 = NetworkUtils.createLink(Id.create(3, Link.class), node3, node1, network, 800, 13.4, 2000, 1); // do not yet add link1 network.addLink(link2); network.addLink(link3); Assert.assertEquals(2, network.getLinks().size()); Assert.assertEquals(link3, NetworkUtils.getNearestLink(network, new Coord(300, 200))); Assert.assertEquals(link3, NetworkUtils.getNearestLinkExactly(network, new Coord(300, 200))); // this will force the LinkQuadTree to be built network.addLink(link1); Assert.assertEquals(3, network.getLinks().size()); // check that the quad trees were correctly updated with the new link Assert.assertEquals(link1, NetworkUtils.getNearestLink(network, new Coord(300, 200))); Assert.assertEquals(link1, NetworkUtils.getNearestLinkExactly(network, new Coord(300, 200))); // this will force the LinkQuadTree to be built }
@Test public void testAddLink_intoEmptyQuadTree() { Network network = new NetworkImpl(); Assert.assertEquals(0, network.getLinks().size()); Assert.assertNull(NetworkUtils.getNearestLink(network, new Coord(300, 200))); // this will force the node QuadTree to be built Assert.assertNull(NetworkUtils.getNearestLinkExactly(network, new Coord(300, 200))); // this will force the LinkQuadTree to be built Node node1 = NetworkUtils.createNode(Id.create(1, Node.class), new Coord(100, 100)); Node node2 = NetworkUtils.createNode(Id.create(2, Node.class), new Coord(1000, 200)); Node node3 = NetworkUtils.createNode(Id.create(3, Node.class), new Coord(500, 700)); network.addNode(node1); network.addNode(node2); network.addNode(node3); Link link1 = NetworkUtils.createLink(Id.create(1, Link.class), node1, node2, network, 800, 13.4, 2000, 1); Link link2 = NetworkUtils.createLink(Id.create(2, Link.class), node2, node3, network, 800, 13.4, 2000, 1); Link link3 = NetworkUtils.createLink(Id.create(3, Link.class), node3, node1, network, 800, 13.4, 2000, 1); network.addLink(link1); network.addLink(link2); network.addLink(link3); Assert.assertEquals(3, network.getLinks().size()); Assert.assertEquals(link1, NetworkUtils.getNearestLink(network, new Coord(300, 200))); Assert.assertEquals(link1, NetworkUtils.getNearestLinkExactly(network, new Coord(300, 200))); // this will force the LinkQuadTree to be built } }
@Test public void testRemoveLink_alsoInQuadTrees() { Network network = new NetworkImpl(); Node node1 = NetworkUtils.createNode(Id.create(1, Node.class), new Coord(100, 100)); Node node2 = NetworkUtils.createNode(Id.create(2, Node.class), new Coord(1000, 200)); Node node3 = NetworkUtils.createNode(Id.create(3, Node.class), new Coord(500, 700)); network.addNode(node1); network.addNode(node2); network.addNode(node3); Link link1 = NetworkUtils.createLink(Id.create(1, Link.class), node1, node2, network, 800, 13.4, 2000, 1); Link link2 = NetworkUtils.createLink(Id.create(2, Link.class), node2, node3, network, 800, 13.4, 2000, 1); Link link3 = NetworkUtils.createLink(Id.create(3, Link.class), node3, node1, network, 800, 13.4, 2000, 1); network.addLink(link1); network.addLink(link2); network.addLink(link3); Assert.assertEquals(3, network.getLinks().size()); Assert.assertEquals(link1, NetworkUtils.getNearestLink(network, new Coord(300, 200))); Assert.assertEquals(link1, NetworkUtils.getNearestLinkExactly(network, new Coord(300, 200))); network.removeLink(link1.getId()); Assert.assertEquals(2, network.getLinks().size()); Assert.assertEquals(link3, NetworkUtils.getNearestLink(network, new Coord(300, 200))); Assert.assertEquals(link3, NetworkUtils.getNearestLinkExactly(network, new Coord(300, 200))); network.removeLink(link3.getId()); Assert.assertEquals(1, network.getLinks().size()); Assert.assertEquals(link2, NetworkUtils.getNearestLinkExactly(network, new Coord(300, 200))); network.removeLink(link2.getId()); Assert.assertEquals(0, network.getLinks().size()); Assert.assertNull(NetworkUtils.getNearestLink(network, new Coord(300, 200))); Assert.assertNull(NetworkUtils.getNearestLinkExactly(network, new Coord(300, 200))); }
public void testLinkEnterEventHandler() { EventsManager events = EventsUtils.createEventsManager(); MyLinkEnterEventHandler handler = new MyLinkEnterEventHandler(); events.addHandler(handler); Network network = NetworkUtils.createNetwork(); Node node1 = network.getFactory().createNode(Id.create(1, Node.class), new Coord((double) 0, (double) 0)); Node node2 = network.getFactory().createNode(Id.create(2, Node.class), new Coord((double) 1000, (double) 0)); final Node from = node1; final Node to = node2; final Network network1 = network; NetworkFactory r = network.getFactory(); Link link1 = NetworkUtils.createLink(Id.create(1, Link.class), from, to, network1, 1000.0, 10.0, 3600.0, (double) 0); events.processEvent(new LinkEnterEvent(8.0*3600, Id.create("veh", Vehicle.class), link1.getId())); assertEquals("expected number of handled events wrong.", 1, handler.counter); }