@Test public void testRun_singleModeWithConnectivity() { MultimodalFixture2 f = new MultimodalFixture2(); Network network = f.scenario.getNetwork(); Assert.assertEquals(6, network.getNodes().size()); Assert.assertEquals(8, network.getLinks().size()); new MultimodalNetworkCleaner(network).run(Collections.singleton(TransportMode.walk), Collections.singleton(TransportMode.pt)); Assert.assertEquals(6, network.getNodes().size()); Assert.assertEquals(8, network.getLinks().size()); }
@Test public void testRun_withConnectivity_connectedSource() { MultimodalFixture2 f = new MultimodalFixture2(); Network network = f.scenario.getNetwork(); NetworkFactory nf = network.getFactory(); Node node4 = network.getNodes().get(f.nodeIds[4]); Node node5 = network.getNodes().get(f.nodeIds[5]); Node node7 = nf.createNode(f.nodeIds[7], new Coord((double) 600, (double) 100)); network.addNode(node7); network.addLink(nf.createLink(f.linkIds[10], node4, node7)); network.addLink(nf.createLink(f.linkIds[11], node7, node5)); network.getLinks().get(f.linkIds[10]).setAllowedModes(f.modesT); network.getLinks().get(f.linkIds[11]).setAllowedModes(f.modesW); Assert.assertEquals(7, network.getNodes().size()); Assert.assertEquals(10, network.getLinks().size()); new MultimodalNetworkCleaner(network).run(Collections.singleton(TransportMode.walk), Collections.singleton(TransportMode.pt)); Assert.assertEquals(7, network.getNodes().size()); Assert.assertEquals(10, network.getLinks().size()); }
@Test public void testRun_withConnectivity_unconnectedSink() { MultimodalFixture2 f = new MultimodalFixture2(); Network network = f.scenario.getNetwork(); NetworkFactory nf = network.getFactory(); Node node4 = network.getNodes().get(f.nodeIds[4]); Node node5 = network.getNodes().get(f.nodeIds[5]); Node node7 = nf.createNode(f.nodeIds[7], new Coord((double) 600, (double) 100)); network.addNode(node7); network.addLink(nf.createLink(f.linkIds[10], node4, node7)); network.addLink(nf.createLink(f.linkIds[11], node7, node5)); network.getLinks().get(f.linkIds[10]).setAllowedModes(f.modesW); network.getLinks().get(f.linkIds[11]).setAllowedModes(Collections.singleton("bike")); Assert.assertEquals(7, network.getNodes().size()); Assert.assertEquals(10, network.getLinks().size()); new MultimodalNetworkCleaner(network).run(Collections.singleton(TransportMode.walk), Collections.singleton(TransportMode.pt)); Assert.assertEquals(7, network.getNodes().size()); Assert.assertEquals(9, network.getLinks().size()); Assert.assertNull(network.getLinks().get(f.linkIds[10])); }
@Test public void testRun_withConnectivity_unconnectedSource() { MultimodalFixture2 f = new MultimodalFixture2(); Network network = f.scenario.getNetwork(); NetworkFactory nf = network.getFactory(); Node node4 = network.getNodes().get(f.nodeIds[4]); Node node5 = network.getNodes().get(f.nodeIds[5]); Node node7 = nf.createNode(f.nodeIds[7], new Coord((double) 600, (double) 100)); network.addNode(node7); network.addLink(nf.createLink(f.linkIds[10], node4, node7)); network.addLink(nf.createLink(f.linkIds[11], node7, node5)); network.getLinks().get(f.linkIds[10]).setAllowedModes(Collections.singleton("bike")); network.getLinks().get(f.linkIds[11]).setAllowedModes(f.modesW); Assert.assertEquals(7, network.getNodes().size()); Assert.assertEquals(10, network.getLinks().size()); new MultimodalNetworkCleaner(network).run(Collections.singleton(TransportMode.walk), Collections.singleton(TransportMode.pt)); Assert.assertEquals(7, network.getNodes().size()); Assert.assertEquals(9, network.getLinks().size()); Assert.assertNull(network.getLinks().get(f.linkIds[11])); }
@Test public void testRun_withConnectivity_connectedSink() { MultimodalFixture2 f = new MultimodalFixture2(); Network network = f.scenario.getNetwork(); NetworkFactory nf = network.getFactory(); Node node4 = network.getNodes().get(f.nodeIds[4]); Node node5 = network.getNodes().get(f.nodeIds[5]); Node node7 = nf.createNode(f.nodeIds[7], new Coord((double) 600, (double) 100)); network.addNode(node7); network.addLink(nf.createLink(f.linkIds[10], node4, node7)); network.addLink(nf.createLink(f.linkIds[11], node7, node5)); network.getLinks().get(f.linkIds[10]).setAllowedModes(f.modesW); network.getLinks().get(f.linkIds[11]).setAllowedModes(f.modesT); Assert.assertEquals(7, network.getNodes().size()); Assert.assertEquals(10, network.getLinks().size()); new MultimodalNetworkCleaner(network).run(Collections.singleton(TransportMode.walk), Collections.singleton(TransportMode.pt)); Assert.assertEquals(7, network.getNodes().size()); Assert.assertEquals(10, network.getLinks().size()); }
@Test public void testRun_unknownMode() { Fixture f = new Fixture(); Network network = f.scenario.getNetwork(); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network); cleaner.run(Collections.singleton(TransportMode.pt)); // nothing should have changed from the initialization Assert.assertEquals("wrong number of links.", 8, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 6, network.getNodes().size()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[1]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[2]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[3]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[4]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[5]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[6]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[7]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[8]).getAllowedModes()); }
@Test public void testRun_emptyModes() { Fixture f = new Fixture(); Network network = f.scenario.getNetwork(); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network); cleaner.run(new HashSet<String>()); // nothing should have changed from the initialization Assert.assertEquals("wrong number of links.", 8, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 6, network.getNodes().size()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[1]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[2]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[3]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[4]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[5]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[6]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[7]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[8]).getAllowedModes()); }
@Test public void testRemoveNodesWithoutLinks() { Fixture f = new Fixture(); Network network = f.scenario.getNetwork(); network.addNode(network.getFactory().createNode(f.nodeIds[10], new Coord((double) 300, (double) 300))); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network); Assert.assertEquals("wrong number of links.", 8, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 7, network.getNodes().size()); cleaner.run(createHashSet(TransportMode.walk)); Assert.assertEquals("wrong number of links after cleaning.", 8, network.getLinks().size()); Assert.assertEquals("empty node should not be removed by cleaning.", 7, network.getNodes().size()); cleaner.removeNodesWithoutLinks(); Assert.assertEquals("wrong number of links after cleaning.", 8, network.getLinks().size()); Assert.assertEquals("wrong number of nodes after cleaning.", 6, network.getNodes().size()); }
@Test public void testRun_singleMode() { Fixture f = new Fixture(); Network network = f.scenario.getNetwork(); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network); cleaner.run(createHashSet(TransportMode.car)); Assert.assertEquals("wrong number of links.", 8, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 6, network.getNodes().size()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[1]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[2]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[3]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[4]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[5]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[6]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[7]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[8]).getAllowedModes()); }
@Test public void testRun_singleInexistantMode() { Fixture f = new Fixture(); Network network = f.scenario.getNetwork(); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network); cleaner.run(createHashSet("other")); Assert.assertEquals("wrong number of links.", 8, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 6, network.getNodes().size()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[1]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[2]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[3]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[4]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[5]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[6]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[7]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[8]).getAllowedModes()); }
@Test public void testRun_multipleModes() { Fixture f = new MultimodeFixture(); Network network = f.scenario.getNetwork(); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network); cleaner.run(createHashSet(TransportMode.car, TransportMode.walk)); Assert.assertEquals("wrong number of links.", 12, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 9, network.getNodes().size()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[1]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[2]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[3]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[4]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[5]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[6]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[7]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[8]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[9]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[10]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[11]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[12]).getAllowedModes()); }
@Test public void testRun_singleLinkNetwork() { Scenario scenario = ScenarioUtils.createScenario(ConfigUtils.createConfig()); Network network = scenario.getNetwork(); NetworkFactory factory = network.getFactory(); Id<Node> id1 = Id.create(1, Node.class); Id<Node> id2 = Id.create(2, Node.class); Id<Link> linkId1 = Id.create(1, Link.class); Node node1 = factory.createNode(id1, new Coord((double) 0, (double) 100)); Node node2 = factory.createNode(id2, new Coord((double) 100, (double) 100)); network.addNode(node1); network.addNode(node2); network.addLink(factory.createLink(linkId1, node1, node2)); network.getLinks().get(linkId1).setAllowedModes(Collections.singleton(TransportMode.car)); new MultimodalNetworkCleaner(network).run(Collections.singleton(TransportMode.car)); /* a single link is no complete network, as the link's * from-node cannot be reached by the link's to-node * */ Assert.assertEquals("wrong number of links.", 0, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 0, network.getNodes().size()); }
network.getLinks().get(f.linkIds[8]).setAllowedModes(f.modesCW); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network); Assert.assertEquals("wrong number of links.", 8, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 6, network.getNodes().size());
Assert.assertEquals(10, network.getNodes().size()); Assert.assertEquals(12, network.getLinks().size()); new MultimodalNetworkCleaner(network).run(Collections.singleton(TransportMode.walk), Collections.singleton(TransportMode.pt)); Assert.assertEquals(8, network.getNodes().size()); Assert.assertEquals(9, network.getLinks().size());
@Test public void testRun_multipleModes_doubleSink() { Fixture f = new MultimodeFixture(); Network network = f.scenario.getNetwork(); Node node2 = network.getNodes().get(f.nodeIds[2]); Node node3 = network.getNodes().get(f.nodeIds[3]); Node node10 = network.getFactory().createNode(f.nodeIds[10], new Coord((double) 200, (double) 200)); network.addNode(node10); network.addLink(network.getFactory().createLink(f.linkIds[18], node2, node10)); network.addLink(network.getFactory().createLink(f.linkIds[19], node3, node10)); Assert.assertEquals("wrong number of links.", 14, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 10, network.getNodes().size()); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network); cleaner.run(createHashSet(TransportMode.car, TransportMode.walk)); Assert.assertEquals("wrong number of links.", 12, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 9, network.getNodes().size()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[1]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[2]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[3]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[4]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[5]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[6]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[7]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[8]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[9]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[10]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[11]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[12]).getAllowedModes()); }
@Test public void testRun_multipleModes_doubleSource() { Fixture f = new MultimodeFixture(); Network network = f.scenario.getNetwork(); Node node2 = network.getNodes().get(f.nodeIds[2]); Node node3 = network.getNodes().get(f.nodeIds[3]); Node node10 = network.getFactory().createNode(f.nodeIds[10], new Coord((double) 200, (double) 200)); network.addNode(node10); network.addLink(network.getFactory().createLink(f.linkIds[18], node10, node2)); network.addLink(network.getFactory().createLink(f.linkIds[19], node10, node3)); Assert.assertEquals("wrong number of links.", 14, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 10, network.getNodes().size()); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network); cleaner.run(createHashSet(TransportMode.car, TransportMode.walk)); Assert.assertEquals("wrong number of links.", 12, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 9, network.getNodes().size()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[1]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[2]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[3]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[4]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[5]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[6]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[7]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[8]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[9]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[10]).getAllowedModes()); Assert.assertEquals(f.modesC, network.getLinks().get(f.linkIds[11]).getAllowedModes()); Assert.assertEquals(f.modesW, network.getLinks().get(f.linkIds[12]).getAllowedModes()); }
network.getLinks().get(f.linkIds[11]).setAllowedModes(f.modesC); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network);
network.getLinks().get(f.linkIds[11]).setAllowedModes(f.modesW); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network); Assert.assertEquals("wrong number of links.", 10, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 8, network.getNodes().size());
network.getLinks().get(f.linkIds[11]).setAllowedModes(f.modesW); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network); Assert.assertEquals("wrong number of links.", 10, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 8, network.getNodes().size());
network.getLinks().get(f.linkIds[13]).setAllowedModes(f.modesW); MultimodalNetworkCleaner cleaner = new MultimodalNetworkCleaner(network); Assert.assertEquals("wrong number of links.", 12, network.getLinks().size()); Assert.assertEquals("wrong number of nodes.", 8, network.getNodes().size());