1
0
Fork 0
mirror of https://github.com/graphhopper/jsprit.git synced 2020-01-24 07:45:05 +01:00

fixed unit tests

This commit is contained in:
oblonski 2014-07-25 10:28:14 +02:00
parent 42570d69ac
commit 8ebae73847
2 changed files with 43 additions and 28 deletions

View file

@ -18,10 +18,14 @@
******************************************************************************/
package jsprit.core.algorithm.state;
import jsprit.core.problem.AbstractActivity;
import jsprit.core.problem.Capacity;
import jsprit.core.problem.JobActivityFactory;
import jsprit.core.problem.VehicleRoutingProblem;
import jsprit.core.problem.job.Job;
import jsprit.core.problem.job.Service;
import jsprit.core.problem.solution.route.VehicleRoute;
import jsprit.core.problem.solution.route.activity.ServiceActivity;
import jsprit.core.problem.solution.route.activity.TourActivity;
import jsprit.core.problem.solution.route.state.StateFactory;
import jsprit.core.problem.solution.route.state.StateFactory.StateId;
@ -31,19 +35,34 @@ import jsprit.core.problem.vehicle.VehicleType;
import jsprit.core.problem.vehicle.VehicleTypeImpl;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class StateManagerTest {
static class ActFac implements JobActivityFactory{
@Override
public List<AbstractActivity> createActivities(Job job) {
ServiceActivity act = mock(ServiceActivity.class);
when(act.getIndex()).thenReturn(1);
List<AbstractActivity> acts = new ArrayList<AbstractActivity>();
acts.add(act);
return acts;
}
}
private VehicleRoute getRoute(Vehicle vehicle) {
return VehicleRoute.Builder.newInstance(vehicle).addService(Service.Builder.newInstance("s").setLocationId("loc").build()).build();
return VehicleRoute.Builder.newInstance(vehicle).setJobActivityFactory(new ActFac()).addService(Service.Builder.newInstance("s").setLocationId("loc").build()).build();
}
@Test
public void whenRouteStateIsSetWithGenericMethodAndBoolean_itMustBeSetCorrectly(){
VehicleRoute route = getRoute(mock(Vehicle.class));
VehicleRoute route = getRoute(mock(Vehicle.class));
StateManager stateManager = new StateManager(mock(VehicleRoutingProblem.class));
StateId id = stateManager.createStateId("myState");
stateManager.putRouteState(route, id, true);
@ -77,6 +96,7 @@ public class StateManagerTest {
@Test
public void whenActivityStateIsSetWithGenericMethodAndBoolean_itMustBeSetCorrectly(){
TourActivity activity = mock(TourActivity.class);
when(activity.getIndex()).thenReturn(1);
StateManager stateManager = new StateManager(mock(VehicleRoutingProblem.class));
StateId id = stateManager.createStateId("myState");
stateManager.putActivityState(activity, id, true);
@ -86,6 +106,7 @@ public class StateManagerTest {
@Test
public void whenActivityStateIsSetWithGenericMethodAndInteger_itMustBeSetCorrectly(){
TourActivity activity = mock(TourActivity.class);
when(activity.getIndex()).thenReturn(1);
StateManager stateManager = new StateManager(mock(VehicleRoutingProblem.class));
StateId id = stateManager.createStateId("myState");
int load = 3;
@ -97,6 +118,7 @@ public class StateManagerTest {
@Test
public void whenActivityStateIsSetWithGenericMethodAndCapacity_itMustBeSetCorrectly(){
TourActivity activity = mock(TourActivity.class);
when(activity.getIndex()).thenReturn(1);
StateManager stateManager = new StateManager(mock(VehicleRoutingProblem.class));
StateId id = stateManager.createStateId("myState");
Capacity capacity = Capacity.Builder.newInstance().addDimension(0, 500).build();
@ -162,7 +184,8 @@ public class StateManagerTest {
@Test
public void whenCreatingAVehicleDependentRouteState_itShouldBeMemorized(){
Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("loc").build();
VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("loc").build();
VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addVehicle(vehicle).build();
VehicleRoute route = getRoute(vehicle);
StateManager stateManager = new StateManager(mock(VehicleRoutingProblem.class));
StateId id = stateManager.createStateId("myState");
@ -174,11 +197,13 @@ public class StateManagerTest {
@Test
public void whenCreatingAVehicleDependentActivityState_itShouldBeMemorized(){
Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("loc").build();
VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("loc").build();
VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addVehicle(vehicle).build();
StateManager stateManager = new StateManager(mock(VehicleRoutingProblem.class));
StateId id = stateManager.createStateId("myState");
Capacity capacity = Capacity.Builder.newInstance().addDimension(0, 500).build();
TourActivity act = mock(TourActivity.class);
when(act.getIndex()).thenReturn(1);
stateManager.putActivityState(act, vehicle, id, capacity);
Capacity getCap = stateManager.getActivityState(act, vehicle, id, Capacity.class);
assertEquals(500, getCap.get(0));
@ -186,7 +211,8 @@ public class StateManagerTest {
@Test
public void whenMemorizingVehicleInfo_itShouldBeMemorized(){
Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("loc").build();
VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("loc").build();
VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addVehicle(vehicle).build();
VehicleRoute route = getRoute(vehicle);
StateManager stateManager = new StateManager(mock(VehicleRoutingProblem.class));
StateId id = stateManager.createStateId("vehicleParam");
@ -226,7 +252,7 @@ public class StateManagerTest {
VehicleRoutingProblem vrp = vrpBuilder.addVehicle(vehicle).addVehicle(vehicle2).build();
TourActivity act = mock(TourActivity.class);
when(act.getIndex()).thenReturn(1);
StateManager stateManager = new StateManager(vrp);
StateId id = stateManager.createStateId("vehicleParam");
double distanceParam = vehicle.getType().getVehicleCostParams().perDistanceUnit;
@ -248,7 +274,7 @@ public class StateManagerTest {
VehicleRoutingProblem vrp = vrpBuilder.addVehicle(vehicle).addVehicle(vehicle2).build();
TourActivity act = mock(TourActivity.class);
when(act.getIndex()).thenReturn(1);
StateManager stateManager = new StateManager(vrp);
StateId id = stateManager.createStateId("vehicleParam");
double distanceParam = vehicle.getType().getVehicleCostParams().perDistanceUnit;

View file

@ -352,26 +352,15 @@ public class ServiceLoadRouteLevelConstraintTest {
@Test
public void whenNewVehicleCapacityIsNotSufficiant2_returnFalse(){
Pickup service = mock(Pickup.class);
when(service.getSize()).thenReturn(Capacity.Builder.newInstance().addDimension(0, 2).build());
Service serviceInRoute = createPickup("pick1",3);
VehicleRoute.Builder routeBuilder = VehicleRoute.Builder.newInstance(vehicle);
routeBuilder.addService(serviceInRoute);
VehicleRoute route = routeBuilder.build();
stateManager.informInsertionStarts(Arrays.asList(route), null);
VehicleType type = mock(VehicleType.class);
when(type.getCapacityDimensions()).thenReturn(Capacity.Builder.newInstance().addDimension(0, 2).build());
Vehicle vehicle = mock(Vehicle.class);
when(vehicle.getType()).thenReturn(type);
JobInsertionContext iContext = mock(JobInsertionContext.class);
when(iContext.getJob()).thenReturn(service);
when(iContext.getRoute()).thenReturn(route);
when(iContext.getNewVehicle()).thenReturn(vehicle);
Pickup service = (Pickup) createPickup("pick",2);
Service serviceInRoute = createPickup("pick1",3);
VehicleType type = VehicleTypeImpl.Builder.newInstance("type").addCapacityDimension(0,3).build();
VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setType(type).setStartLocationId("loc").build();
VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addVehicle(vehicle).addJob(service).addJob(serviceInRoute).build();
VehicleRoute route = VehicleRoute.Builder.newInstance(vehicle).setJobActivityFactory(vrp.getJobActivityFactory()).addService(serviceInRoute).build();
stateManager.informInsertionStarts(Arrays.asList(route), null);
JobInsertionContext iContext = new JobInsertionContext(route,service,vehicle,null,0.);
assertFalse(new ServiceLoadRouteLevelConstraint(stateManager).fulfilled(iContext));
}