@Test public void copyStopsAtTheRightPointWhenRequired() { BasicInterval bi = new BasicInterval(DEFAULT_BEGIN, DEFAULT_END); CompoundInterval toCopy = new CompoundInterval(bi, null); BasicInterval bi2 = new BasicInterval(DEFAULT_END, DEFAULT_END + 1); BasicInterval bi3 = new BasicInterval(DEFAULT_END + 1, DEFAULT_END + 2); toCopy.add(bi2); toCopy.add(bi3); Register r = new Register(2); CompoundInterval copy = toCopy.copy(r, bi2); assertThat(copy.getRegister(), is(r)); assertThat(copy.contains(bi), is(true)); assertThat(copy.contains(bi2), is(true)); assertThat(copy.contains(bi3), is(false)); assertThat(copy.size(), is(2)); }
@Test public void copyCopiesAllIntervalsToNewCompoundIntervalWithRightRegister() { BasicInterval bi = new BasicInterval(DEFAULT_BEGIN, DEFAULT_END); CompoundInterval toCopy = new CompoundInterval(bi, null); BasicInterval bi2 = new BasicInterval(DEFAULT_END, DEFAULT_END + 1); BasicInterval bi3 = new BasicInterval(DEFAULT_END + 1, DEFAULT_END + 2); toCopy.add(bi2); toCopy.add(bi3); Register r = new Register(2); CompoundInterval copy = toCopy.copy(r); assertThat(copy.getRegister(), is(r)); assertThat(copy.contains(bi), is(true)); assertThat(copy.contains(bi2), is(true)); assertThat(copy.contains(bi3), is(true)); assertThat(copy.size(), is(3)); }
@Test public void removeIntervalsAndCacheWorksWhenOtherIntervalIsASubset() { CompoundInterval ci = createCompoundIntervalWithoutRegister(); ci.add(new MappedBasicInterval(DEFAULT_END + 1, DEFAULT_END + 2, null)); ci.add(new MappedBasicInterval(DEFAULT_END + 2, DEFAULT_END + 3, null)); ci.add(new MappedBasicInterval(DEFAULT_END + 1, DEFAULT_END + 4, null)); ci.add(new MappedBasicInterval(DEFAULT_BEGIN, DEFAULT_END + 1, null)); CompoundInterval toRemove = new CompoundInterval(DEFAULT_END + 1, DEFAULT_END + 2, null); toRemove.add(new MappedBasicInterval(DEFAULT_BEGIN, DEFAULT_END, null)); CompoundInterval cached = ci.removeIntervalsAndCache(toRemove); assertThat(cached.size(), is(2)); assertThat( cached.contains(new MappedBasicInterval(DEFAULT_BEGIN, DEFAULT_END, null)), is(true)); assertThat( cached.contains(new MappedBasicInterval(DEFAULT_END + 1, DEFAULT_END + 2, null)), is(true)); assertThat(ci.size(), is(3)); assertThat( ci.contains(new MappedBasicInterval(DEFAULT_BEGIN, DEFAULT_END + 1, null)), is(true)); assertThat( ci.contains(new MappedBasicInterval(DEFAULT_END + 1, DEFAULT_END + 4, null)), is(true)); assertThat( ci.contains(new MappedBasicInterval(DEFAULT_END + 2, DEFAULT_END + 3, null)), is(true)); }