X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=test%2Fjalview%2Fstructure%2FAtomSpecModelTest.java;fp=test%2Fjalview%2Fstructure%2FAtomSpecModelTest.java;h=394679f498fdf4b946d460cb56a2026c6545555c;hb=304e64fb34b32659be1bbfd39fb4e15b2f79586e;hp=0000000000000000000000000000000000000000;hpb=cfb79b69d9fa44595560659bd95d1d1cd27677ad;p=jalview.git diff --git a/test/jalview/structure/AtomSpecModelTest.java b/test/jalview/structure/AtomSpecModelTest.java new file mode 100644 index 0000000..394679f --- /dev/null +++ b/test/jalview/structure/AtomSpecModelTest.java @@ -0,0 +1,51 @@ +package jalview.structure; + +import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertTrue; + +import java.util.List; + +import org.testng.annotations.Test; + +public class AtomSpecModelTest +{ + @Test(groups="Functional") + public void testGetRanges() + { + AtomSpecModel model = new AtomSpecModel(); + assertFalse(model.getModels().iterator().hasNext()); + List ranges = model.getRanges("1", "A"); + assertTrue(ranges.isEmpty()); + + model.addRange("1", 12, 14, "A"); + assertTrue(model.getRanges("1", "B").isEmpty()); + assertTrue(model.getRanges("2", "A").isEmpty()); + ranges = model.getRanges("1", "A"); + assertEquals(ranges.size(), 1); + int[] range = ranges.get(0); + assertEquals(range[0], 12); + assertEquals(range[1], 14); + + /* + * add some ranges; they should be coalesced and + * ordered when retrieved + */ + model.addRange("1", 25, 25, "A"); + model.addRange("1", 20, 24, "A"); + model.addRange("1", 6, 8, "A"); + model.addRange("1", 13, 18, "A"); + model.addRange("1", 5, 6, "A"); + ranges = model.getRanges("1", "A"); + assertEquals(ranges.size(), 3); + range = ranges.get(0); + assertEquals(range[0], 5); + assertEquals(range[1], 8); + range = ranges.get(1); + assertEquals(range[0], 12); + assertEquals(range[1], 18); + range = ranges.get(2); + assertEquals(range[0], 20); + assertEquals(range[1], 25); + } +}