*/
Collections.sort(ranges, intervalSorter);
- List<SubList> sublists = buildSubranges(ranges);
+ List<Range> sublists = buildSubranges(ranges);
/*
* convert each subrange to an NCNode consisting of a range and
* (possibly) its contained NCList
*/
- for (SubList sublist : sublists)
+ for (Range sublist : sublists)
{
- subranges.add(new NCNode<T>(ranges.subList(sublist.startIndex,
- sublist.endIndex + 1)));
+ subranges.add(new NCNode<T>(ranges.subList(sublist.start,
+ sublist.end + 1)));
}
size = ranges.size();
* @param ranges
* @return
*/
- protected List<SubList> buildSubranges(List<T> ranges)
+ protected List<Range> buildSubranges(List<T> ranges)
{
- List<SubList> sublists = new ArrayList<SubList>();
+ List<Range> sublists = new ArrayList<Range>();
if (ranges.isEmpty())
{
* this interval is not contained in the preceding one
* close off the last sublist
*/
- sublists.add(new SubList(listStartIndex, i - 1));
+ sublists.add(new Range(listStartIndex, i - 1));
listStartIndex = i;
}
lastEndPos = nextEnd;
}
- sublists.add(new SubList(listStartIndex, ranges.size() - 1));
+ sublists.add(new Range(listStartIndex, ranges.size() - 1));
return sublists;
}
import java.util.List;
import java.util.Random;
+import junit.extensions.PA;
+
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
assertEquals(ncl.size(), features.size());
int toDelete = random.nextInt(features.size());
SequenceFeature entry = features.get(toDelete);
- String lastDeleted = "'" + entry.toString() + "'";
assertTrue(ncl.contains(entry), String.format(
- "NCList doesn't contain entry [%d] %s!", deleted,
- lastDeleted));
+ "NCList doesn't contain entry [%d] '%s'!", deleted,
+ entry.toString()));
+
ncl.delete(entry);
assertFalse(ncl.contains(entry), String.format(
- "NCList still contains deleted entry [%d] %s!", deleted,
- lastDeleted));
+ "NCList still contains deleted entry [%d] '%s'!", deleted,
+ entry.toString()));
features.remove(toDelete);
deleted++;
assertTrue(ncl.isValid(), String.format(
- "NCList invalid after %d deletions, last deleted was %s",
- deleted, lastDeleted));
+ "NCList invalid after %d deletions, last deleted was '%s'",
+ deleted, entry.toString()));
/*
* brute force check that deleting one entry didn't delete any others
{
SequenceFeature sf = features.get(i);
assertTrue(ncl.contains(sf), String.format(
- "NCList doesn't contain entry [%d] %s after deleting %s!",
- i, sf.toString(), lastDeleted));
+ "NCList doesn't contain entry [%d] %s after deleting '%s'!",
+ i, sf.toString(), entry.toString()));
}
}
assertEquals(ncl.size(), 0); // all gone
assertEquals(ncl.toString(), "[40-50 [42-44 [43-43], 46-48]]");
assertTrue(ncl.isValid());
- r1.start = 43;
+ PA.setValue(r1, "start", 43);
assertFalse(ncl.isValid()); // r2 not inside r1
- r1.start = 40;
+ PA.setValue(r1, "start", 40);
assertTrue(ncl.isValid());
- r3.start = 41;
+ PA.setValue(r3, "start", 41);
assertFalse(ncl.isValid()); // r3 should precede r2
- r3.start = 46;
+ PA.setValue(r3, "start", 46);
assertTrue(ncl.isValid());
- r4.start = 41;
+ PA.setValue(r4, "start", 41);
assertFalse(ncl.isValid()); // r4 not inside r2
- r4.start = 43;
+ PA.setValue(r4, "start", 43);
assertTrue(ncl.isValid());
- r4.start = 44;
+ PA.setValue(r4, "start", 44);
assertFalse(ncl.isValid()); // r4 has reverse range
}
import java.util.ArrayList;
import java.util.List;
+import junit.extensions.PA;
+
import org.testng.annotations.Test;
public class NCNodeTest
* NCList of [14-15, 16-17]
*/
assertTrue(node.isValid());
- r1.start = 15;
+ PA.setValue(r1, "start", 15);
assertFalse(node.isValid()); // r2 not within r1
- r1.start = 10;
+ PA.setValue(r1, "start", 10);
assertTrue(node.isValid());
- r1.end = 16;
+ PA.setValue(r1, "end", 16);
assertFalse(node.isValid()); // r3 not within r1
- r1.end = 20;
+ PA.setValue(r1, "end", 20);
assertTrue(node.isValid());
- r3.start = 12;
+ PA.setValue(r3, "start", 12);
assertFalse(node.isValid()); // r3 should precede r2
-
}
}