ItEr49S04ValidacionEProbasFuncionaisItEr48S04: Fixing bug.
When searching the adjacent in the first step the previous intervals are search. It was searching also on the insertion position and this one is a posterior interval.
This commit is contained in:
parent
8f23971eb5
commit
956d8fd641
2 changed files with 15 additions and 5 deletions
|
|
@ -415,11 +415,9 @@ public class AvailabilityTimeLine {
|
|||
private List<Interval> getAdjacent(Interval toBeInserted) {
|
||||
final int insertionPoint = findInsertionPosition(toBeInserted);
|
||||
List<Interval> result = new ArrayList<Interval>();
|
||||
for (int i = insertionPoint; i >= 0
|
||||
&& (i == invalids.size() || at(i).overlaps(toBeInserted)); i--) {
|
||||
if (i < invalids.size()) {
|
||||
result.add(at(i));
|
||||
}
|
||||
assert insertionPoint <= invalids.size();
|
||||
for (int i = insertionPoint - 1; i >= 0 && at(i).overlaps(toBeInserted); i--) {
|
||||
result.add(at(i));
|
||||
}
|
||||
for (int i = insertionPoint; i < invalids.size()
|
||||
&& at(i).overlaps(toBeInserted); i++) {
|
||||
|
|
|
|||
|
|
@ -129,6 +129,18 @@ public class AvailabilityTimeLineTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void pointsAreMergedCorrectly() {
|
||||
AvailabilityTimeLine timeLine = AvailabilityTimeLine.allValid();
|
||||
|
||||
timeLine.invalidAt(new LocalDate(2010, 4, 7));
|
||||
timeLine.invalidAt(new LocalDate(2010, 4, 11));
|
||||
timeLine.invalidAt(new LocalDate(2010, 4, 8));
|
||||
timeLine.invalidAt(new LocalDate(2010, 4, 6));
|
||||
|
||||
assertFalse(timeLine.isValid(new LocalDate(2010, 4, 8)));
|
||||
}
|
||||
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void endMustBeAfterStart() {
|
||||
AvailabilityTimeLine timeLine = AvailabilityTimeLine.allValid();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue