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

make capacity valid by limits (#72)

* make capacity valid by limits

* public

* public too

* remove public back
This commit is contained in:
kandelirina 2018-11-27 10:05:13 +00:00 committed by GitHub
parent d1368284ac
commit 3227aacae5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 31 additions and 0 deletions

View file

@ -309,4 +309,12 @@ public class Capacity {
public int hashCode() {
return Arrays.hashCode(dimensions);
}
public Capacity makeValid(Capacity capacityLimits) {
Capacity.Builder validCapacityBuilder = Capacity.Builder.newInstance();
for (int i = 0; i < Math.max(this.getNuOfDimensions(), capacityLimits.getNuOfDimensions()); i++) {
validCapacityBuilder.addDimension(i, Math.max(0, Math.min(this.get(i), capacityLimits.get(i))));
}
return validCapacityBuilder.build();
}
}

View file

@ -383,4 +383,27 @@ public class CapacityTest {
Capacity cap2 = Capacity.Builder.newInstance().addDimension(0,10).addDimension(2, 1000).addDimension(1,100).build();
Assert.assertTrue(cap1.equals(cap2));
}
@Test
public void makeValid() {
final Capacity limits = Capacity.Builder.newInstance()
.addDimension(0, 10)
.addDimension(0, 20)
.addDimension(0, 7)
.addDimension(0, 5).build();
final Capacity notValidCapacity = Capacity.Builder.newInstance()
.addDimension(0, 9)
.addDimension(0, 18)
.addDimension(0, 15)
.addDimension(0, -5).build();
final Capacity validCapacity = Capacity.Builder.newInstance()
.addDimension(0, 9)
.addDimension(0, 18)
.addDimension(0, 7)
.addDimension(0, 0).build();
assertEquals(validCapacity, notValidCapacity.makeValid(limits));
}
}