public Fixture() { firstLegStartTime = 7 * 3600; firstLegTravelTime = 30 * 60; thirdLegTravelTime = 30 * 60; secondLegStartTime = 10 * 3600; secondLegTravelTime = 15 * 60; thirdLegStartTime = 13 * 3600; fourthLegStartTime = 16 * 3600; fourthLegTravelTime = 15 * 60; // home act end 7am // work 7:30 to 10:00 // work 10:15 to 13:00 // work 13:30 to 16:00 // home 15:15 to ... this.config = ConfigUtils.createConfig(); PlanCalcScoreConfigGroup scoring = this.config.planCalcScore(); scoring.setBrainExpBeta(2.0); scoring.setConstantCar(0.0); scoring.setConstantPt(0.0); scoring.setConstantWalk(0.0); scoring.setConstantBike(0.0); scoring.setEarlyDeparture_utils_hr(0.0); scoring.setLateArrival_utils_hr(0.0); scoring.setMarginalUtlOfWaiting_utils_hr(0.0); scoring.setPerforming_utils_hr(0.0); scoring.setTraveling_utils_hr(0.0); scoring.setTravelingPt_utils_hr(0.0); scoring.setTravelingWalk_utils_hr(0.0); scoring.setTravelingBike_utils_hr(0.0); scoring.setMarginalUtilityOfMoney(1.); scoring.setMonetaryDistanceCostRateCar(0.0); scoring.setMonetaryDistanceCostRatePt(0.0); // setup activity types h and w for scoring PlanCalcScoreConfigGroup.ActivityParams params = new PlanCalcScoreConfigGroup.ActivityParams("h"); params.setTypicalDuration(15 * 3600); scoring.addActivityParams(params); params = new PlanCalcScoreConfigGroup.ActivityParams("w"); params.setTypicalDuration(3 * 3600); scoring.addActivityParams(params); this.scenario = ScenarioUtils.createScenario(config); this.network = (NetworkImpl) this.scenario.getNetwork(); Node node1 = this.network.createAndAddNode(Id.create("1", Node.class), new CoordImpl(0.0, 0.0)); Node node2 = this.network.createAndAddNode(Id.create("2", Node.class), new CoordImpl(500.0, 0.0)); Node node3 = this.network.createAndAddNode(Id.create("3", Node.class), new CoordImpl(5500.0, 0.0)); Node node4 = this.network.createAndAddNode(Id.create("4", Node.class), new CoordImpl(6000.0, 0.0)); Node node5 = this.network.createAndAddNode(Id.create("5", Node.class), new CoordImpl(11000.0, 0.0)); Node node6 = this.network.createAndAddNode(Id.create("6", Node.class), new CoordImpl(11500.0, 0.0)); Node node7 = this.network.createAndAddNode(Id.create("7", Node.class), new CoordImpl(16500.0, 0.0)); Node node8 = this.network.createAndAddNode(Id.create("8", Node.class), new CoordImpl(17000.0, 0.0)); Node node9 = this.network.createAndAddNode(Id.create("9", Node.class), new CoordImpl(22000.0, 0.0)); Node node10 = this.network.createAndAddNode(Id.create("10", Node.class), new CoordImpl(22500.0, 0.0)); Link link1 = this.network.createAndAddLink(Id.create("1", Link.class), node1, node2, 500, 25, 3600, 1); Link link2 = this.network.createAndAddLink( Id.create("2", Link.class), node2, node3, 25000, 50, 3600, 1); Link link3 = this.network.createAndAddLink(Id.create("3", Link.class), node3, node4, 500, 25, 3600, 1); this.network.createAndAddLink(Id.create("4", Link.class), node4, node5, 5000, 50, 3600, 1); Link link5 = this.network.createAndAddLink(Id.create("5", Link.class), node5, node6, 500, 25, 3600, 1); this.network.createAndAddLink(Id.create("6", Link.class), node6, node7, 5000, 50, 3600, 1); Link link7 = this.network.createAndAddLink(Id.create("7", Link.class), node7, node8, 500, 25, 3600, 1); this.network.createAndAddLink(Id.create("8", Link.class), node8, node9, 5000, 50, 3600, 1); Link link9 = this.network.createAndAddLink( Id.create("9", Link.class), node9, node10, 500, 25, 3600, 1); this.person = new PersonImpl(Id.create("1", Person.class)); this.plan = this.person.createAndAddPlan(true); ActivityImpl firstActivity = this.plan.createAndAddActivity("h", link1.getId()); firstActivity.setEndTime(firstLegStartTime); Leg leg = this.plan.createAndAddLeg(TransportMode.car); leg.setDepartureTime(firstLegStartTime); leg.setTravelTime(firstLegTravelTime); NetworkRoute route1 = new LinkNetworkRouteImpl(link1.getId(), link3.getId()); route1.setLinkIds(link1.getId(), Arrays.asList(link2.getId()), link3.getId()); route1.setTravelTime(firstLegTravelTime); route1.setDistance(RouteUtils.calcDistance(route1, this.network)); leg.setRoute(route1); ActivityImpl secondActivity = this.plan.createAndAddActivity("w", link3.getId()); secondActivity.setStartTime(firstLegStartTime + firstLegTravelTime); secondActivity.setEndTime(secondLegStartTime); leg = this.plan.createAndAddLeg(TransportMode.pt); leg.setDepartureTime(secondLegStartTime); leg.setTravelTime(secondLegTravelTime); Route route2 = new GenericRouteImpl(link3.getId(), link5.getId()); route2.setTravelTime(secondLegTravelTime); route2.setDistance(20000.0); leg.setRoute(route2); ActivityImpl thirdActivity = this.plan.createAndAddActivity("w", link5.getId()); thirdActivity.setStartTime(secondLegStartTime + secondLegTravelTime); thirdActivity.setEndTime(thirdLegStartTime); leg = this.plan.createAndAddLeg(TransportMode.walk); leg.setDepartureTime(thirdLegStartTime); leg.setTravelTime(thirdLegTravelTime); Route route3 = new GenericRouteImpl(link5.getId(), link7.getId()); route3.setTravelTime(thirdLegTravelTime); route3.setDistance(CoordUtils.calcDistance(link5.getCoord(), link7.getCoord())); leg.setRoute(route3); ActivityImpl fourthActivity = this.plan.createAndAddActivity("w", link7.getId()); fourthActivity.setStartTime(thirdLegStartTime + thirdLegTravelTime); fourthActivity.setEndTime(fourthLegStartTime); leg = this.plan.createAndAddLeg(TransportMode.bike); leg.setDepartureTime(fourthLegStartTime); leg.setTravelTime(fourthLegTravelTime); Route route4 = new GenericRouteImpl(link7.getId(), link9.getId()); route4.setTravelTime(fourthLegTravelTime); route4.setDistance(CoordUtils.calcDistance(link7.getCoord(), link9.getCoord())); leg.setRoute(route4); ActivityImpl fifthActivity = this.plan.createAndAddActivity("h", link9.getId()); fifthActivity.setStartTime(fourthLegStartTime + fourthLegTravelTime); this.scenario.getPopulation().addPerson(this.person); }