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:
parent
d1368284ac
commit
3227aacae5
2 changed files with 31 additions and 0 deletions
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue