import jalview.datamodel.Sequence;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
+import jalview.datamodel.features.SequenceFeatures;
import jalview.gui.JvOptionPane;
-import java.util.Arrays;
-import java.util.Comparator;
+import java.util.List;
import java.util.Map;
import org.testng.Assert;
Edit ec = testee.new Edit(Action.CUT, seqs, 3, 4, al); // cols 3-6 base 0
EditCommand.cut(ec, new AlignmentI[] { al });
- SequenceFeature[] sfs = seq0.getSequenceFeatures();
- Arrays.sort(sfs, new Comparator<SequenceFeature>()
- {
- @Override
- public int compare(SequenceFeature o1, SequenceFeature o2)
- {
- return Integer.compare(o1.getBegin(), o2.getBegin());
- }
- });
- assertEquals(4, sfs.length); // feature internal to cut has been deleted
- SequenceFeature sf = sfs[0];
+ List<SequenceFeature> sfs = seq0.getSequenceFeatures();
+ SequenceFeatures.sortFeatures(sfs, true);
+
+ assertEquals(4, sfs.size()); // feature internal to cut has been deleted
+ SequenceFeature sf = sfs.get(0);
assertEquals("before", sf.getType());
assertEquals(1, sf.getBegin());
assertEquals(3, sf.getEnd());
- sf = sfs[1];
+ sf = sfs.get(1);
assertEquals("overlap left", sf.getType());
assertEquals(2, sf.getBegin());
assertEquals(3, sf.getEnd()); // truncated by cut
- sf = sfs[2];
+ sf = sfs.get(2);
assertEquals("overlap right", sf.getType());
assertEquals(4, sf.getBegin()); // shifted left by cut
assertEquals(5, sf.getEnd()); // truncated by cut
- sf = sfs[3];
+ sf = sfs.get(3);
assertEquals("after", sf.getType());
assertEquals(4, sf.getBegin()); // shifted left by cut
assertEquals(6, sf.getEnd()); // shifted left by cut
}
}
// sanity check
- SequenceFeature[] sfs = seq0.getSequenceFeatures();
- assertEquals(func(5), sfs.length);
+ List<SequenceFeature> sfs = seq0.getSequenceFeatures();
+ assertEquals(func(5), sfs.size());
/*
* now perform all possible cuts of subranges of 1-5 (followed by Undo)
else
{
assertEquals(msg + "wrong number of features left", func(5)
- - func(to - from + 1), sfs.length);
+ - func(to - from + 1), sfs.size());
}
/*
* undo ready for next cut
*/
testee.undoCommand(new AlignmentI[] { alignment });
- assertEquals(func(5), seq0.getSequenceFeatures().length);
+ assertEquals(func(5), seq0.getSequenceFeatures().size());
}
}
}
/*
* feature on CC(3-4) should now be on CC(1-2)
*/
- SequenceFeature[] sfs = seq0.getSequenceFeatures();
- assertEquals(1, sfs.length);
- SequenceFeature sf = sfs[0];
+ List<SequenceFeature> sfs = seq0.getSequenceFeatures();
+ assertEquals(1, sfs.size());
+ SequenceFeature sf = sfs.get(0);
assertEquals(1, sf.getBegin());
assertEquals(2, sf.getEnd());