public void handleEvent(ActivityStartEvent event) { Activity activity = PopulationUtils.createActivityFromLinkId(event.getActType(), event.getLinkId()); activity.setFacilityId(event.getFacilityId()); activity.setStartTime(event.getTime()); if(event.getActType().equals(FreightConstants.END)){ activity.setEndTime(Time.UNDEFINED_TIME); scoringFunction.handleActivity(activity); } else{ TourActivity tourActivity = getTourActivity(); assert activity.getLinkId().toString().equals(tourActivity.getLocation().toString()) : "linkId of activity is not equal to linkId of tourActivity. This must not be."; FreightActivity freightActivity = new FreightActivity(activity, tourActivity.getTimeWindow()); currentActivity = freightActivity; } }
ScoringFunction scoringFunction = ScoringFunctionsForPopulation.this.getScoringFunctionForAgent(agentId); if (scoringFunction != null) { scoringFunction.handleActivity(activity); TDoubleCollection partialScoresForAgent = this.partialScores.get(agentId); partialScoresForAgent.add(scoringFunction.getScore());
public void handleEvent(ActivityEndEvent event) { if (currentActivity == null) { Activity firstActivity = PopulationUtils.createActivityFromLinkId(event.getActType(), event.getLinkId()); firstActivity.setFacilityId(event.getFacilityId()); currentActivity = firstActivity; } currentActivity.setEndTime(event.getTime()); scoringFunction.handleActivity(currentActivity); activityFinished(event.getActType(), event.getTime()); }
scoringFunction.handleActivity( actTmp ); continue; scoringFunction.handleActivity( actTmp ); actTmp.setEndTime( Time.UNDEFINED_TIME ); scoringFunction.handleActivity( actTmp );
testee.handleActivity((Activity) f.plan.getPlanElements().get(0)); testee.handleLeg((Leg) f.plan.getPlanElements().get(1)); testee.handleActivity((Activity) f.plan.getPlanElements().get(2)); testee.handleLeg((Leg) f.plan.getPlanElements().get(3)); testee.handleActivity((Activity) f.plan.getPlanElements().get(0)); testee.handleLeg((Leg) f.plan.getPlanElements().get(1)); testee.handleActivity((Activity) f.plan.getPlanElements().get(2)); testee.handleLeg((Leg) f.plan.getPlanElements().get(3)); testee.agentStuck(16*3600 + 7.5*60);
@Test public void testActivitiesScoredDifferently() { final Scenario sc = createTestScenario(); final CharyparNagelScoringFunctionFactory functionFactory = new CharyparNagelScoringFunctionFactory( sc ); final ScoringFunction function1 = functionFactory.createNewScoringFunction( sc.getPopulation().getPersons().get( Id.createPersonId( 1 ) ) ); final ScoringFunction function2 = functionFactory.createNewScoringFunction( sc.getPopulation().getPersons().get( Id.createPersonId( 2 ) ) ); final Activity act = PopulationUtils.createActivityFromCoordAndLinkId("chill", null, null); act.setStartTime( 8 * 3600d ); act.setEndTime( 18 * 3600d ); function1.handleActivity( act ); function1.finish(); function2.handleActivity( act ); function2.finish(); Assert.assertFalse( "same score for legs of agents in different subpopulations", Math.abs( function1.getScore() - function2.getScore() ) < 1E-9 ); }
testee.handleActivity((Activity) f.plan.getPlanElements().get(0)); testee.handleLeg((Leg) f.plan.getPlanElements().get(1)); testee.handleActivity((Activity) f.plan.getPlanElements().get(2)); testee.finish();
private double calcScore(final Fixture f) { CharyparNagelScoringFunctionFactory charyparNagelScoringFunctionFactory = new CharyparNagelScoringFunctionFactory( f.scenario ); ScoringFunction testee = charyparNagelScoringFunctionFactory.createNewScoringFunction(PopulationUtils.getFactory().createPerson(Id.create("1", Person.class))); for (PlanElement planElement : f.plan.getPlanElements()) { if (planElement instanceof Activity) { testee.handleActivity((Activity) planElement); } else if (planElement instanceof Leg) { testee.handleLeg((Leg) planElement); } } testee.finish(); return testee.getScore(); }
act1b.setStartTime(f.secondLegStartTime + f.secondLegTravelTime); ScoringFunction sf1 = getScoringFunctionInstance(f, person1); sf1.handleActivity(act1a); sf1.handleLeg(leg1); sf1.handleActivity(act1b); sf2.handleActivity(act1a); sf2.addMoney(1.23); sf2.handleLeg(leg1); sf2.addMoney(-2.46); sf2.handleActivity(act1b); sf2.addMoney(4.86); sf2.addMoney(-0.28);