mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
reformat
This commit is contained in:
parent
5051b6960b
commit
966dc6e901
63 changed files with 1447 additions and 1466 deletions
|
|
@ -171,7 +171,7 @@ public class RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_IT {
|
|||
*/
|
||||
Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1]))
|
||||
.setLocation(Location.newInstance(lineTokens[0])).build();
|
||||
/*
|
||||
/*
|
||||
* and add it to problem
|
||||
*/
|
||||
vrpBuilder.addJob(service);
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ public class RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_withTimeAndD
|
|||
*/
|
||||
Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1]))
|
||||
.setLocation(Location.newInstance(lineTokens[0])).build();
|
||||
/*
|
||||
/*
|
||||
* and add it to problem
|
||||
*/
|
||||
vrpBuilder.addJob(service);
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ public class RefuseCollection_IT {
|
|||
* create cost-matrix
|
||||
*/
|
||||
VehicleRoutingTransportCostsMatrix.Builder matrixBuilder = VehicleRoutingTransportCostsMatrix.Builder.newInstance(true);
|
||||
/*
|
||||
/*
|
||||
* read demand quantities
|
||||
*/
|
||||
readDemandQuantitiesAsServices(vrpBuilder);
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ public class JspritTest {
|
|||
|
||||
VehicleImpl v = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance(0, 0)).build();
|
||||
VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(s4).addJob(s3).addVehicle(v).addJob(s2).addJob(s).build();
|
||||
VehicleRoutingAlgorithm vra = Jsprit.Builder.newInstance(vrp).setProperty(Jsprit.Parameter.THREADS,"4").buildAlgorithm();
|
||||
VehicleRoutingAlgorithm vra = Jsprit.Builder.newInstance(vrp).setProperty(Jsprit.Parameter.THREADS, "4").buildAlgorithm();
|
||||
vra.setMaxIterations(100);
|
||||
final List<String> firstRecord = new ArrayList<String>();
|
||||
vra.addListener(new StrategySelectedListener() {
|
||||
|
|
@ -210,7 +210,7 @@ public class JspritTest {
|
|||
vra.searchSolutions();
|
||||
|
||||
RandomNumberGeneration.reset();
|
||||
VehicleRoutingAlgorithm second = Jsprit.Builder.newInstance(vrp).setProperty(Jsprit.Parameter.THREADS,"2").buildAlgorithm();
|
||||
VehicleRoutingAlgorithm second = Jsprit.Builder.newInstance(vrp).setProperty(Jsprit.Parameter.THREADS, "2").buildAlgorithm();
|
||||
second.setMaxIterations(100);
|
||||
final List<String> secondRecord = new ArrayList<String>();
|
||||
second.addListener(new StrategySelectedListener() {
|
||||
|
|
@ -242,7 +242,7 @@ public class JspritTest {
|
|||
VehicleImpl v = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance(0, 0)).build();
|
||||
VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(s4).addJob(s3).addVehicle(v).addJob(s2).addJob(s).build();
|
||||
VehicleRoutingAlgorithm vra = Jsprit.Builder.newInstance(vrp)
|
||||
.setProperty(Jsprit.Strategy.WORST_REGRET,"0.")
|
||||
.setProperty(Jsprit.Strategy.WORST_REGRET, "0.")
|
||||
.setProperty(Jsprit.Strategy.WORST_BEST, "0.")
|
||||
.setProperty(Jsprit.Parameter.THREADS, "2").buildAlgorithm();
|
||||
vra.setMaxIterations(100);
|
||||
|
|
@ -410,7 +410,7 @@ public class JspritTest {
|
|||
VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().setFleetSize(VehicleRoutingProblem.FleetSize.FINITE).addJob(s4).addJob(s3).addVehicle(v).addJob(s2).addJob(s).build();
|
||||
|
||||
VehicleRoutingAlgorithm vra = Jsprit.Builder.newInstance(vrp)
|
||||
.setProperty(Jsprit.Strategy.WORST_REGRET,"0.")
|
||||
.setProperty(Jsprit.Strategy.WORST_REGRET, "0.")
|
||||
.setProperty(Jsprit.Strategy.WORST_BEST, "0.")
|
||||
.setProperty(Jsprit.Parameter.THREADS, "4").buildAlgorithm();
|
||||
vra.setMaxIterations(100);
|
||||
|
|
@ -427,7 +427,7 @@ public class JspritTest {
|
|||
vra.searchSolutions();
|
||||
|
||||
VehicleRoutingAlgorithm second = Jsprit.Builder.newInstance(vrp)
|
||||
.setProperty(Jsprit.Strategy.WORST_REGRET,"0.")
|
||||
.setProperty(Jsprit.Strategy.WORST_REGRET, "0.")
|
||||
.setProperty(Jsprit.Strategy.WORST_BEST, "0.")
|
||||
.setProperty(Jsprit.Parameter.THREADS, "5").buildAlgorithm();
|
||||
second.setMaxIterations(100);
|
||||
|
|
@ -460,11 +460,11 @@ public class JspritTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void compare(){
|
||||
public void compare() {
|
||||
String s1 = "s2234";
|
||||
String s2 = "s1";
|
||||
int c = s1.compareTo(s2);
|
||||
Assert.assertEquals(1,c);
|
||||
Assert.assertEquals(1, c);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -411,7 +411,7 @@ public class TestLocalActivityInsertionCostsCalculator {
|
|||
/*
|
||||
activity start time delay at next act = start-time-old - start-time-new is always bigger than subsequent waiting time savings
|
||||
*/
|
||||
/*
|
||||
/*
|
||||
old = 10 + 30 + 10 = 50
|
||||
new = 80 + 0 - 10 - min{80,40} = 30
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ public class TestMixedServiceAndShipmentsProblemOnRouteLevel {
|
|||
|
||||
|
||||
/*
|
||||
* build deliveries, (implicitly picked up in the depot)
|
||||
* build deliveries, (implicitly picked up in the depot)
|
||||
* 1: (4,8)
|
||||
* 2: (4,12)
|
||||
* 3: (16,8)
|
||||
|
|
|
|||
|
|
@ -21,10 +21,10 @@ import java.util.List;
|
|||
public class RuinBreakTest {
|
||||
|
||||
@Test
|
||||
public void itShouldRuinBreaks(){
|
||||
public void itShouldRuinBreaks() {
|
||||
Break aBreak = Break.Builder.newInstance("break").build();
|
||||
VehicleImpl v = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("loc"))
|
||||
.setBreak(aBreak).build();
|
||||
.setBreak(aBreak).build();
|
||||
VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().setFleetSize(VehicleRoutingProblem.FleetSize.FINITE).addVehicle(v).build();
|
||||
VehicleRoute route = VehicleRoute.Builder.newInstance(v).setJobActivityFactory(vrp.getJobActivityFactory()).addService(aBreak).build();
|
||||
TourActivity tourActivity = route.getActivities().get(0);
|
||||
|
|
@ -32,8 +32,8 @@ public class RuinBreakTest {
|
|||
Assert.assertTrue(tourActivity instanceof BreakActivity);
|
||||
RuinBreaks ruinBreaks = new RuinBreaks();
|
||||
List<Job> unassigned = new ArrayList<Job>();
|
||||
ruinBreaks.ruinEnds(Arrays.asList(route),unassigned);
|
||||
Assert.assertEquals(1,unassigned.size());
|
||||
Assert.assertEquals(aBreak,unassigned.get(0));
|
||||
ruinBreaks.ruinEnds(Arrays.asList(route), unassigned);
|
||||
Assert.assertEquals(1, unassigned.size());
|
||||
Assert.assertEquals(aBreak, unassigned.get(0));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,33 +50,33 @@ public class RuinClustersTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void itShouldRuinTwoObviousClustersEvenThereAreBreaks(){
|
||||
public void itShouldRuinTwoObviousClustersEvenThereAreBreaks() {
|
||||
Service s0 = Service.Builder.newInstance("s0").setLocation(Location.newInstance(9, 0)).build();
|
||||
Service s1 = Service.Builder.newInstance("s1").setLocation(Location.newInstance(9, 1)).build();
|
||||
Service s2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance(9,10)).build();
|
||||
Service s3 = Service.Builder.newInstance("s3").setLocation(Location.newInstance(9,9)).build();
|
||||
Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance(9,16)).build();
|
||||
Service s5 = Service.Builder.newInstance("s5").setLocation(Location.newInstance(9,17)).build();
|
||||
Service s6 = Service.Builder.newInstance("s6").setLocation(Location.newInstance(9,15.5)).build();
|
||||
Service s7 = Service.Builder.newInstance("s7").setLocation(Location.newInstance(9,30)).build();
|
||||
Service s2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance(9, 10)).build();
|
||||
Service s3 = Service.Builder.newInstance("s3").setLocation(Location.newInstance(9, 9)).build();
|
||||
Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance(9, 16)).build();
|
||||
Service s5 = Service.Builder.newInstance("s5").setLocation(Location.newInstance(9, 17)).build();
|
||||
Service s6 = Service.Builder.newInstance("s6").setLocation(Location.newInstance(9, 15.5)).build();
|
||||
Service s7 = Service.Builder.newInstance("s7").setLocation(Location.newInstance(9, 30)).build();
|
||||
|
||||
VehicleImpl v = VehicleImpl.Builder.newInstance("v")
|
||||
.setBreak((Break) Break.Builder.newInstance("break").setServiceTime(10).setTimeWindow(TimeWindow.newInstance(20,30)).build())
|
||||
.setStartLocation(Location.newInstance(0, 0)).build();
|
||||
.setBreak((Break) Break.Builder.newInstance("break").setServiceTime(10).setTimeWindow(TimeWindow.newInstance(20, 30)).build())
|
||||
.setStartLocation(Location.newInstance(0, 0)).build();
|
||||
|
||||
VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(s1).addJob(s2).setFleetSize(VehicleRoutingProblem.FleetSize.FINITE)
|
||||
.addJob(s6).addJob(s7).addJob(s0).addJob(s3).addJob(s4).addJob(s5).addVehicle(v).build();
|
||||
.addJob(s6).addJob(s7).addJob(s0).addJob(s3).addJob(s4).addJob(s5).addVehicle(v).build();
|
||||
|
||||
VehicleRoute vr1 = VehicleRoute.Builder.newInstance(v).addService(s0).addService(v.getBreak()).addService(s1).addService(s2).addService(s3).setJobActivityFactory(vrp.getJobActivityFactory()).build();
|
||||
((BreakActivity)vr1.getActivities().get(1)).setLocation(Location.newInstance(9,1));
|
||||
((BreakActivity) vr1.getActivities().get(1)).setLocation(Location.newInstance(9, 1));
|
||||
VehicleRoute vr2 = VehicleRoute.Builder.newInstance(v)
|
||||
.addService(s6).addService(s7).addService(s4).addService(s5).setJobActivityFactory(vrp.getJobActivityFactory()).build();
|
||||
.addService(s6).addService(s7).addService(s4).addService(s5).setJobActivityFactory(vrp.getJobActivityFactory()).build();
|
||||
|
||||
JobNeighborhoods n = new JobNeighborhoodsFactory().createNeighborhoods(vrp,new AvgServiceAndShipmentDistance(vrp.getTransportCosts()));
|
||||
JobNeighborhoods n = new JobNeighborhoodsFactory().createNeighborhoods(vrp, new AvgServiceAndShipmentDistance(vrp.getTransportCosts()));
|
||||
n.initialise();
|
||||
RuinClusters rc = new RuinClusters(vrp,5,n);
|
||||
Collection<Job> ruined = rc.ruinRoutes(Arrays.asList(vr1,vr2));
|
||||
Assert.assertEquals(5,ruined.size());
|
||||
RuinClusters rc = new RuinClusters(vrp, 5, n);
|
||||
Collection<Job> ruined = rc.ruinRoutes(Arrays.asList(vr1, vr2));
|
||||
Assert.assertEquals(5, ruined.size());
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
******************************************************************************/
|
||||
package jsprit.core.problem.solution.route.activity;
|
||||
|
|
@ -26,81 +26,81 @@ import static org.junit.Assert.*;
|
|||
|
||||
|
||||
public class BreakActivityTest {
|
||||
|
||||
private Break service;
|
||||
|
||||
private BreakActivity serviceActivity;
|
||||
|
||||
@Before
|
||||
public void doBefore(){
|
||||
service = (Break) Break.Builder.newInstance("service")
|
||||
.setTimeWindow(TimeWindow.newInstance(1., 2.)).setServiceTime(3).build();
|
||||
serviceActivity = BreakActivity.newInstance(service);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenCallingCapacity_itShouldReturnCorrectCapacity(){
|
||||
assertEquals(0,serviceActivity.getSize().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasVariableLocationShouldBeTrue(){
|
||||
Break aBreak = (Break) serviceActivity.getJob();
|
||||
assertTrue(aBreak.hasVariableLocation());
|
||||
}
|
||||
private Break service;
|
||||
|
||||
|
||||
@Test
|
||||
public void whenStartIsIniWithEarliestStart_itShouldBeSetCorrectly(){
|
||||
assertEquals(1.,serviceActivity.getTheoreticalEarliestOperationStartTime(),0.01);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenStartIsIniWithLatestStart_itShouldBeSetCorrectly(){
|
||||
assertEquals(2.,serviceActivity.getTheoreticalLatestOperationStartTime(),0.01);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenSettingArrTime_itShouldBeSetCorrectly(){
|
||||
serviceActivity.setArrTime(4.0);
|
||||
assertEquals(4.,serviceActivity.getArrTime(),0.01);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenSettingEndTime_itShouldBeSetCorrectly(){
|
||||
serviceActivity.setEndTime(5.0);
|
||||
assertEquals(5.,serviceActivity.getEndTime(),0.01);
|
||||
}
|
||||
|
||||
private BreakActivity serviceActivity;
|
||||
|
||||
@Test
|
||||
public void whenCopyingStart_itShouldBeDoneCorrectly(){
|
||||
BreakActivity copy = (BreakActivity) serviceActivity.duplicate();
|
||||
assertEquals(1.,copy.getTheoreticalEarliestOperationStartTime(),0.01);
|
||||
assertEquals(2.,copy.getTheoreticalLatestOperationStartTime(),0.01);
|
||||
assertTrue(copy!=serviceActivity);
|
||||
}
|
||||
@Before
|
||||
public void doBefore() {
|
||||
service = (Break) Break.Builder.newInstance("service")
|
||||
.setTimeWindow(TimeWindow.newInstance(1., 2.)).setServiceTime(3).build();
|
||||
serviceActivity = BreakActivity.newInstance(service);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void whenTwoDeliveriesHaveTheSameUnderlyingJob_theyAreEqual(){
|
||||
Service s1 = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).build();
|
||||
Service s2 = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).build();
|
||||
|
||||
ServiceActivity d1 = ServiceActivity.newInstance(s1);
|
||||
ServiceActivity d2 = ServiceActivity.newInstance(s2);
|
||||
|
||||
assertTrue(d1.equals(d2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenTwoDeliveriesHaveTheDifferentUnderlyingJob_theyAreNotEqual(){
|
||||
Service s1 = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).build();
|
||||
Service s2 = Service.Builder.newInstance("s1").setLocation(Location.newInstance("loc")).build();
|
||||
|
||||
ServiceActivity d1 = ServiceActivity.newInstance(s1);
|
||||
ServiceActivity d2 = ServiceActivity.newInstance(s2);
|
||||
|
||||
assertFalse(d1.equals(d2));
|
||||
}
|
||||
@Test
|
||||
public void whenCallingCapacity_itShouldReturnCorrectCapacity() {
|
||||
assertEquals(0, serviceActivity.getSize().get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void hasVariableLocationShouldBeTrue() {
|
||||
Break aBreak = (Break) serviceActivity.getJob();
|
||||
assertTrue(aBreak.hasVariableLocation());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void whenStartIsIniWithEarliestStart_itShouldBeSetCorrectly() {
|
||||
assertEquals(1., serviceActivity.getTheoreticalEarliestOperationStartTime(), 0.01);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenStartIsIniWithLatestStart_itShouldBeSetCorrectly() {
|
||||
assertEquals(2., serviceActivity.getTheoreticalLatestOperationStartTime(), 0.01);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenSettingArrTime_itShouldBeSetCorrectly() {
|
||||
serviceActivity.setArrTime(4.0);
|
||||
assertEquals(4., serviceActivity.getArrTime(), 0.01);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenSettingEndTime_itShouldBeSetCorrectly() {
|
||||
serviceActivity.setEndTime(5.0);
|
||||
assertEquals(5., serviceActivity.getEndTime(), 0.01);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void whenCopyingStart_itShouldBeDoneCorrectly() {
|
||||
BreakActivity copy = (BreakActivity) serviceActivity.duplicate();
|
||||
assertEquals(1., copy.getTheoreticalEarliestOperationStartTime(), 0.01);
|
||||
assertEquals(2., copy.getTheoreticalLatestOperationStartTime(), 0.01);
|
||||
assertTrue(copy != serviceActivity);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void whenTwoDeliveriesHaveTheSameUnderlyingJob_theyAreEqual() {
|
||||
Service s1 = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).build();
|
||||
Service s2 = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).build();
|
||||
|
||||
ServiceActivity d1 = ServiceActivity.newInstance(s1);
|
||||
ServiceActivity d2 = ServiceActivity.newInstance(s2);
|
||||
|
||||
assertTrue(d1.equals(d2));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenTwoDeliveriesHaveTheDifferentUnderlyingJob_theyAreNotEqual() {
|
||||
Service s1 = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).build();
|
||||
Service s2 = Service.Builder.newInstance("s1").setLocation(Location.newInstance("loc")).build();
|
||||
|
||||
ServiceActivity d1 = ServiceActivity.newInstance(s1);
|
||||
ServiceActivity d2 = ServiceActivity.newInstance(s2);
|
||||
|
||||
assertFalse(d1.equals(d2));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,27 +30,25 @@ import static org.junit.Assert.*;
|
|||
public class VehicleImplTest {
|
||||
|
||||
|
||||
|
||||
@Test(expected=IllegalStateException.class)
|
||||
public void whenVehicleIsBuiltWithoutSettingNeitherLocationNorCoord_itThrowsAnIllegalStateException(){
|
||||
@SuppressWarnings("unused")
|
||||
Vehicle v = VehicleImpl.Builder.newInstance("v").build();
|
||||
}
|
||||
@Test(expected = IllegalStateException.class)
|
||||
public void whenVehicleIsBuiltWithoutSettingNeitherLocationNorCoord_itThrowsAnIllegalStateException() {
|
||||
@SuppressWarnings("unused")
|
||||
Vehicle v = VehicleImpl.Builder.newInstance("v").build();
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void whenAddingDriverBreak_itShouldBeAddedCorrectly(){
|
||||
VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("type").build();
|
||||
Break aBreak = (Break) Break.Builder.newInstance("break").setTimeWindow(TimeWindow.newInstance(100, 200)).setServiceTime(30).build();
|
||||
Vehicle v = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("start"))
|
||||
.setType(type1).setEndLocation(Location.newInstance("start"))
|
||||
.setBreak(aBreak).build();
|
||||
assertNotNull(v.getBreak());
|
||||
assertEquals(100.,v.getBreak().getTimeWindow().getStart(),0.1);
|
||||
assertEquals(200.,v.getBreak().getTimeWindow().getEnd(),0.1);
|
||||
assertEquals(30.,v.getBreak().getServiceDuration(),0.1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenAddingDriverBreak_itShouldBeAddedCorrectly() {
|
||||
VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("type").build();
|
||||
Break aBreak = (Break) Break.Builder.newInstance("break").setTimeWindow(TimeWindow.newInstance(100, 200)).setServiceTime(30).build();
|
||||
Vehicle v = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("start"))
|
||||
.setType(type1).setEndLocation(Location.newInstance("start"))
|
||||
.setBreak(aBreak).build();
|
||||
assertNotNull(v.getBreak());
|
||||
assertEquals(100., v.getBreak().getTimeWindow().getStart(), 0.1);
|
||||
assertEquals(200., v.getBreak().getTimeWindow().getEnd(), 0.1);
|
||||
assertEquals(30., v.getBreak().getServiceDuration(), 0.1);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue