@Override public void addActivity(Activity act) { this.delegate.addActivity(act); }
public static Activity createAndAddActivity(Plan plan, String type) { Activity act = new ActivityImpl( type ) ; // (can't do this from the factory since factory method only exists with coord or with linkId. kai, jun'16) plan.addActivity(act); return act ; }
@Override synchronized public void handleActivity(PersonExperiencedActivity o) { // Has to be synchronized because the thing which sends Legs and the thing which sends Activities can run // on different threads. Will go away when/if we get a more Actor or Reactive Streams like event infrastructure. Id<Person> agentId = o.getAgentId(); Activity activity = o.getActivity(); Plan plan = agentRecords.get(agentId); if (plan != null) { agentRecords.get(agentId).addActivity(activity); } }
public static Activity createAndAddActivityFromCoord( Plan plan, String type, Coord coord ) { Activity act = getFactory().createActivityFromCoord(type, coord) ; plan.addActivity(act); act.setCoord(coord); return act ; } public static Activity createAndAddActivityFromLinkId( Plan plan, String type, Id<Link> linkId ) {
public static Activity createAndAddActivityFromLinkId( Plan plan, String type, Id<Link> linkId ) { Activity act = getFactory().createActivityFromLinkId(type, linkId) ; plan.addActivity(act); act.setLinkId(linkId); return act ; }
public void addTrip(NetworkRoute networkRoute, String transportMode) { Activity lastActivity; if (!plan.getPlanElements().isEmpty()) { lastActivity = (Activity) plan.getPlanElements().get(plan.getPlanElements().size()-1); assert lastActivity.getLinkId().equals(networkRoute.getStartLinkId()); } else { lastActivity = PopulationUtils.createActivityFromLinkId(activityType, networkRoute.getStartLinkId()); plan.addActivity(lastActivity); } Leg leg = PopulationUtils.createLeg(transportMode); leg.setRoute(networkRoute); plan.addLeg(leg); Activity activity = PopulationUtils.createActivityFromLinkId(activityType, networkRoute.getEndLinkId()); plan.addActivity(activity); }
@Override public Plan createNewPlanInstance() { final PopulationFactory fact = createPopulationFactory(); final Id<Link> id1 = Id.create( 1, Link.class ); final Id<Link> id3 = Id.create( 3, Link.class ); final Plan plan = fact.createPlan(); plan.addActivity( fact.createActivityFromLinkId( "h" , id1 ) ); plan.addLeg( fact.createLeg( TransportMode.walk ) ); plan.addActivity( fact.createActivityFromLinkId( "w" , id3 ) ); plan.addLeg( fact.createLeg( TransportMode.walk ) ); plan.addActivity( fact.createActivityFromLinkId( "h" , id1 ) ); return plan; } };
@Test public void addMultipleActs() { Plan p = PopulationUtils.createPlan(); p.addActivity(new ActivityImpl("h")); p.addLeg(PopulationUtils.createLeg(TransportMode.walk)); p.addActivity(new ActivityImpl("w")); p.addActivity(new ActivityImpl("l")); Assert.assertEquals(4, p.getPlanElements().size()); Assert.assertTrue(p.getPlanElements().get(0) instanceof Activity); Assert.assertTrue(p.getPlanElements().get(1) instanceof Leg); Assert.assertTrue(p.getPlanElements().get(2) instanceof Activity); Assert.assertTrue(p.getPlanElements().get(3) instanceof Activity); }
public void testWalkOnlyPlan() { Plan plan = PopulationUtils.createPlan(); Coord dummyCoord = new Coord((double) 0, (double) 0); plan.addActivity(PopulationUtils.createActivityFromCoord("h", dummyCoord)); plan.addLeg(PopulationUtils.createLeg(TransportMode.transit_walk)); plan.addActivity(PopulationUtils.createActivityFromCoord("w", dummyCoord)); new TransitActsRemover().run(plan); assertEquals(3, plan.getPlanElements().size()); assertEquals(TransportMode.pt, ((Leg) plan.getPlanElements().get(1)).getMode()); }
public void testNoTransitActPlan() { Plan plan = PopulationUtils.createPlan(); Coord dummyCoord = new Coord((double) 0, (double) 0); plan.addActivity(PopulationUtils.createActivityFromCoord("h", dummyCoord)); plan.addLeg(PopulationUtils.createLeg(TransportMode.car)); plan.addActivity(PopulationUtils.createActivityFromCoord("w", dummyCoord)); new TransitActsRemover().run(plan); assertEquals(3, plan.getPlanElements().size()); assertEquals(TransportMode.car, ((Leg) plan.getPlanElements().get(1)).getMode()); }
public void testPlanWithoutLegs() { Plan plan = PopulationUtils.createPlan(); Coord dummyCoord = new Coord((double) 0, (double) 0); plan.addActivity(PopulationUtils.createActivityFromCoord("h", dummyCoord)); new TransitActsRemover().run(plan); assertEquals(1, plan.getPlanElements().size()); // this mostly checks that there is no exception }
@Test( expected=NullPointerException.class ) public void testNPEWhenLocationNullInSubtourAnalysis() { // this may sound surprising, but for a long time the algorithm // was perfectly fine with that if assertions were disabled... final Plan plan = populationFactory.createPlan(); // link ids are null plan.addActivity( populationFactory.createActivityFromCoord( "type", new Coord((double) 0, (double) 0)) ); plan.addLeg( populationFactory.createLeg( "mode" ) ); plan.addActivity( populationFactory.createActivityFromCoord( "type", new Coord((double) 0, (double) 0)) ); TripStructureUtils.getSubtours( plan , EmptyStageActivityTypes.INSTANCE ); } }
@Test public void addMultipleLegs() { Plan p = PopulationUtils.createPlan(); p.addActivity(new ActivityImpl("h")); p.addLeg(PopulationUtils.createLeg(TransportMode.walk)); p.addLeg(PopulationUtils.createLeg(TransportMode.pt)); p.addLeg(PopulationUtils.createLeg(TransportMode.walk)); p.addActivity(new ActivityImpl("w")); Assert.assertEquals(5, p.getPlanElements().size()); Assert.assertTrue(p.getPlanElements().get(0) instanceof Activity); Assert.assertTrue(p.getPlanElements().get(1) instanceof Leg); Assert.assertTrue(p.getPlanElements().get(2) instanceof Leg); Assert.assertTrue(p.getPlanElements().get(3) instanceof Leg); Assert.assertTrue(p.getPlanElements().get(4) instanceof Activity); }
private Person createPersonWithPlan(PopulationFactory factory, String id, double homeX, double homeY, double workX, double workY) { Person person = factory.createPerson(Id.create(id, Person.class)); Plan plan = factory.createPlan(); person.addPlan(plan); Activity home1 = factory.createActivityFromCoord("home", new Coord(homeX, homeY)); home1.setEndTime(8*3600); Activity work = factory.createActivityFromCoord("work", new Coord(workX, workY)); work.setEndTime(17*3600); Activity home2 = factory.createActivityFromCoord("home", new Coord(homeX, homeY)); plan.addActivity(home1); plan.addLeg(factory.createLeg("car")); plan.addActivity(work); plan.addLeg(factory.createLeg("car")); plan.addActivity(home2); return person; }
private void createPopulation() { Population pop = this.scenario.getPopulation(); PopulationFactory f = pop.getFactory(); Person p = f.createPerson(Id.create(1, Person.class)); pop.addPerson(p); Plan plan = f.createPlan(); p.addPlan(plan); Activity act = f.createActivityFromLinkId("home", Id.create(1, Link.class)); act.setEndTime(2000.0); plan.addActivity(act); Leg leg = f.createLeg(TransportMode.car); plan.addLeg(leg); act = f.createActivityFromLinkId("home", Id.create(34, Link.class)); plan.addActivity(act); }
private Person createPerson2(Id<Person> personId, Fixture f) { final Id<Person> id = personId; Person p = PopulationUtils.getFactory().createPerson(id); Plan plan = PopulationUtils.createPlan(); p.addPlan(plan); plan.addActivity(PopulationUtils.createActivityFromLinkId("home", f.link1.getId())); Leg leg = PopulationUtils.createLeg(TransportMode.car); NetworkRoute route = RouteUtils.createLinkNetworkRouteImpl(f.link1.getId(), f.link2.getId()); route.setVehicleId(f.basicVehicle.getId()); leg.setRoute(route); plan.addLeg(leg); plan.addActivity(PopulationUtils.createActivityFromLinkId("work", f.link2.getId())); return p; }
private void createPopulation(){ for(int i=1;i<3;i++){ Id<Person> id = Id.createPersonId(i); Person p = population.getFactory().createPerson(id); Plan plan = population.getFactory().createPlan(); p.addPlan(plan); Activity a1 = population.getFactory().createActivityFromLinkId("h", link1.getId()); a1.setEndTime(0*3600); Leg leg = population.getFactory().createLeg(TransportMode.car); plan.addActivity(a1); plan.addLeg(leg); LinkNetworkRouteFactory factory = new LinkNetworkRouteFactory(); NetworkRoute route; List<Id<Link>> linkIds = new ArrayList<Id<Link>>(); route= (NetworkRoute) factory.createRoute(link1.getId(), link3.getId()); linkIds.add(link2.getId()); route.setLinkIds(link1.getId(), linkIds, link3.getId()); leg.setRoute(route); Activity a2 = population.getFactory().createActivityFromLinkId("w", link3.getId()); plan.addActivity(a2); population.addPerson(p); } } }
private Person createPerson(Scenario scenario, String id) { Person person = scenario.getPopulation().getFactory().createPerson(Id.create(id, Person.class)); Activity from = scenario.getPopulation().getFactory().createActivityFromLinkId("home", Id.create("l0", Link.class)); Leg leg = scenario.getPopulation().getFactory().createLeg(TransportMode.car); Activity to = scenario.getPopulation().getFactory().createActivityFromLinkId("home", Id.create("l2", Link.class)); from.setEndTime(8*3600); leg.setDepartureTime(8*3600); RouteFactory routeFactory = new LinkNetworkRouteFactory(); Id<Link> startLinkId = Id.create("l0", Link.class); Id<Link> endLinkId = Id.create("l2", Link.class); NetworkRoute route = (NetworkRoute) routeFactory.createRoute(startLinkId, endLinkId); List<Id<Link>> linkIds = new ArrayList<Id<Link>>(); linkIds.add(Id.create("l1", Link.class)); route.setLinkIds(startLinkId, linkIds, endLinkId); leg.setRoute(route); Plan plan = scenario.getPopulation().getFactory().createPlan(); plan.addActivity(from); plan.addLeg(leg); plan.addActivity(to); person.addPlan(plan); return person; }
@Test public void testLegAttributesIO() { final Population population = PopulationUtils.createPopulation(ConfigUtils.createConfig() ); final Person person = population.getFactory().createPerson(Id.createPersonId( "Donald Trump")); population.addPerson( person ); final Plan plan = population.getFactory().createPlan(); person.addPlan( plan ); final Leg leg = population.getFactory().createLeg( "SUV" ); plan.addActivity( population.getFactory().createActivityFromLinkId( "speech" , Id.createLinkId( 1 ))); plan.addLeg( leg ); plan.addActivity( population.getFactory().createActivityFromLinkId( "tweet" , Id.createLinkId( 2 ))); leg.getAttributes().putAttribute( "mpg" , 0.000001d ); final String file = utils.getOutputDirectory()+"/population.xml"; new PopulationWriter( population ).writeV6( file ); final Scenario readScenario = ScenarioUtils.createScenario( ConfigUtils.createConfig() ); new PopulationReader( readScenario ).readFile( file ); final Person readPerson = readScenario.getPopulation().getPersons().get( Id.createPersonId( "Donald Trump" ) ); final Leg readLeg = (Leg) readPerson.getSelectedPlan().getPlanElements().get( 1 ); Assert.assertEquals( "Unexpected Double attribute in " + readLeg.getAttributes(), leg.getAttributes().getAttribute( "mpg" ) , readLeg.getAttributes().getAttribute( "mpg" ) ); }
@Test public void testPlanAttributesIO() { final Population population = PopulationUtils.createPopulation(ConfigUtils.createConfig() ); final Person person = population.getFactory().createPerson(Id.createPersonId( "Donald Trump")); population.addPerson( person ); final Plan plan = population.getFactory().createPlan(); person.addPlan( plan ); final Leg leg = population.getFactory().createLeg( "SUV" ); plan.addActivity( population.getFactory().createActivityFromLinkId( "speech" , Id.createLinkId( 1 ))); plan.addLeg( leg ); plan.addActivity( population.getFactory().createActivityFromLinkId( "tweet" , Id.createLinkId( 2 ))); plan.getAttributes().putAttribute( "beauty" , 0.000001d ); final String file = utils.getOutputDirectory()+"/population.xml"; new PopulationWriter( population ).writeV6( file ); final Scenario readScenario = ScenarioUtils.createScenario( ConfigUtils.createConfig() ); new PopulationReader( readScenario ).readFile( file ); final Person readPerson = readScenario.getPopulation().getPersons().get( Id.createPersonId( "Donald Trump" ) ); final Plan readPlan = readPerson.getSelectedPlan() ; Assert.assertEquals( plan.getAttributes().getAttribute( "beauty" ) , readPlan.getAttributes().getAttribute( "beauty" ) ); }