@Override public double getTravelTime(final int timeSlice, final double now) { TimeStruct ts = this.travelTimes.get(IntegerCache.getInteger(timeSlice)); if (ts == null) { Link r = ((Link)this.link); return NetworkUtils.getFreespeedTravelTime(r, now) ; } return ts.timeSum / ts.cnt; }
@Test public void testSetAttributes() { Network network = new NetworkImpl(); network.setCapacityPeriod(3600.0); Node node1 = NetworkUtils.createAndAddNode(network, Id.create(1, Node.class), new Coord((double) 0, (double) 0)); Node node2 = NetworkUtils.createAndAddNode(network, Id.create(2, Node.class), new Coord((double) 50, (double) 50)); final Node fromNode = node1; final Node toNode = node2; Link link1 = (Link) NetworkUtils.createAndAddLink(network,Id.create(1, Link.class), fromNode, toNode, 500.0, 10.0, 1000.0, 1.0 ); Assert.assertEquals("wrong freespeed traveltime.", 50.0, NetworkUtils.getFreespeedTravelTime(link1), EPSILON); link1.setLength(1000.0); Assert.assertEquals("wrong freespeed traveltime.", 100.0, NetworkUtils.getFreespeedTravelTime(link1), EPSILON); link1.setFreespeed(20.0); Assert.assertEquals("wrong freespeed traveltime.", 50.0, NetworkUtils.getFreespeedTravelTime(link1), EPSILON); }
assertEquals(10.0, NetworkUtils.getFreespeedTravelTime(link, Time.UNDEFINED_TIME), EPSILON); assertEquals(10.0, NetworkUtils.getFreespeedTravelTime(link, Time.UNDEFINED_TIME), EPSILON); // and now the same tests for the travel time assertEquals(10.0, NetworkUtils.getFreespeedTravelTime(link, 7*3600.0 - 1.0), EPSILON); assertEquals(10.0, NetworkUtils.getFreespeedTravelTime(link, 7*3600.0 - 0.1), EPSILON); assertEquals(20.0, NetworkUtils.getFreespeedTravelTime(link, 7*3600.0), EPSILON); assertEquals(20.0, NetworkUtils.getFreespeedTravelTime(link, 8*3600.0), EPSILON); assertEquals(20.0, NetworkUtils.getFreespeedTravelTime(link, 24*3600.0), EPSILON); // also test if it "wraps around" on 24 hours, it shouldn't assertEquals(20.0, NetworkUtils.getFreespeedTravelTime(link, 30*3600.0), EPSILON); assertEquals(20.0, NetworkUtils.getFreespeedTravelTime(link, 36*3600.0), EPSILON);
(NetworkUtils.getFreespeedTravelTime(inLink) + NetworkUtils.getFreespeedTravelTime(outLink)) );
assertEquals(10.0, NetworkUtils.getFreespeedTravelTime(link, Time.UNDEFINED_TIME), EPSILON); assertEquals(10.0, NetworkUtils.getFreespeedTravelTime(link, Time.UNDEFINED_TIME), EPSILON); // and now the same tests for the travel time assertEquals(10.0, NetworkUtils.getFreespeedTravelTime(link, 7*3600.0 - 1.0), EPSILON); assertEquals(10.0, NetworkUtils.getFreespeedTravelTime(link, 7*3600.0 - 0.1), EPSILON); assertEquals(5.0, NetworkUtils.getFreespeedTravelTime(link, 7*3600.0), EPSILON); assertEquals(5.0, NetworkUtils.getFreespeedTravelTime(link, 8*3600.0), EPSILON); assertEquals(5.0, NetworkUtils.getFreespeedTravelTime(link, 24*3600.0), EPSILON); // also test if it "wraps around" on 24 hours, it shouldn't assertEquals(5.0, NetworkUtils.getFreespeedTravelTime(link, 30*3600.0), EPSILON); assertEquals(5.0, NetworkUtils.getFreespeedTravelTime(link, 36*3600.0), EPSILON);
double travelTimeLastLink = NetworkUtils.getFreespeedTravelTime(toLink, depTime + path.travelTime);
final Node toNode = NetworkUtils.createAndAddNode(network, Id.create("2", Node.class), new Coord(1000, 0)); Link link1 = NetworkUtils.createAndAddLink(network,Id.create("1", Link.class), fromNode, toNode, 1000.0, 100.0, 3600.0, 1.0 ); double freeSpeedTT = NetworkUtils.getFreespeedTravelTime(link1); Id<Vehicle> vehId = Id.create("1", Vehicle.class);
assertEquals(10.0, NetworkUtils.getFreespeedTravelTime(link, Time.UNDEFINED_TIME), EPSILON);