+
+ @Test(groups = "Functional")
+ public void testGetAtomSpec()
+ {
+ StructureCommandsI testee = new ChimeraXCommands();
+ AtomSpecModel model = new AtomSpecModel();
+ assertEquals(testee.getAtomSpec(model, false), "");
+ model.addRange(1, 2, 4, "A");
+ assertEquals(testee.getAtomSpec(model, false), "#1/A:2-4");
+ model.addRange(1, 8, 8, "A");
+ assertEquals(testee.getAtomSpec(model, false), "#1/A:2-4,8");
+ model.addRange(1, 5, 7, "B");
+ assertEquals(testee.getAtomSpec(model, false), "#1/A:2-4,8/B:5-7");
+ model.addRange(1, 3, 5, "A");
+ assertEquals(testee.getAtomSpec(model, false), "#1/A:2-5,8/B:5-7");
+ model.addRange(0, 1, 4, "B");
+ assertEquals(testee.getAtomSpec(model, false),
+ "#0/B:1-4|#1/A:2-5,8/B:5-7");
+ model.addRange(0, 5, 9, "C");
+ assertEquals(testee.getAtomSpec(model, false),
+ "#0/B:1-4/C:5-9|#1/A:2-5,8/B:5-7");
+ model.addRange(1, 8, 10, "B");
+ assertEquals(testee.getAtomSpec(model, false),
+ "#0/B:1-4/C:5-9|#1/A:2-5,8/B:5-10");
+ model.addRange(1, 8, 9, "B");
+ assertEquals(testee.getAtomSpec(model, false),
+ "#0/B:1-4/C:5-9|#1/A:2-5,8/B:5-10");
+ model.addRange(0, 3, 10, "C"); // subsumes 5-9
+ assertEquals(testee.getAtomSpec(model, false),
+ "#0/B:1-4/C:3-10|#1/A:2-5,8/B:5-10");
+ model.addRange(5, 25, 35, " ");
+ assertEquals(testee.getAtomSpec(model, false),
+ "#0/B:1-4/C:3-10|#1/A:2-5,8/B:5-10|#5/:25-35");
+ }
+
+ @Test(groups = "Functional")
+ public void testGetAtomSpec_alphaOnly()
+ {
+ StructureCommandsI testee = new ChimeraXCommands();
+ AtomSpecModel model = new AtomSpecModel();
+ assertEquals(testee.getAtomSpec(model, true), "");
+ model.addRange(1, 2, 4, "A");
+ assertEquals(testee.getAtomSpec(model, true), "#1/A:2-4@CA|P");
+ model.addRange(1, 8, 8, "A");
+ assertEquals(testee.getAtomSpec(model, true), "#1/A:2-4,8@CA|P");
+ model.addRange(1, 5, 7, "B");
+ assertEquals(testee.getAtomSpec(model, true), "#1/A:2-4,8/B:5-7@CA|P");
+ model.addRange(1, 3, 5, "A");
+ assertEquals(testee.getAtomSpec(model, true), "#1/A:2-5,8/B:5-7@CA|P");
+ model.addRange(0, 1, 4, "B");
+ assertEquals(testee.getAtomSpec(model, true),
+ "#0/B:1-4@CA|P|#1/A:2-5,8/B:5-7@CA|P");
+ model.addRange(0, 5, 9, "C");
+ assertEquals(testee.getAtomSpec(model, true),
+ "#0/B:1-4/C:5-9@CA|P|#1/A:2-5,8/B:5-7@CA|P");
+ model.addRange(1, 8, 10, "B");
+ assertEquals(testee.getAtomSpec(model, true),
+ "#0/B:1-4/C:5-9@CA|P|#1/A:2-5,8/B:5-10@CA|P");
+ model.addRange(1, 8, 9, "B");
+ assertEquals(testee.getAtomSpec(model, true),
+ "#0/B:1-4/C:5-9@CA|P|#1/A:2-5,8/B:5-10@CA|P");
+ model.addRange(0, 3, 10, "C"); // subsumes 5-9
+ assertEquals(testee.getAtomSpec(model, true),
+ "#0/B:1-4/C:3-10@CA|P|#1/A:2-5,8/B:5-10@CA|P");
+ model.addRange(5, 25, 35, " "); // empty chain code
+ assertEquals(testee.getAtomSpec(model, true),
+ "#0/B:1-4/C:3-10@CA|P|#1/A:2-5,8/B:5-10@CA|P|#5/:25-35@CA|P");
+ }
+
+ @Test(groups = "Functional")
+ public void testGetModelStartNo()
+ {
+ StructureCommandsI testee = new ChimeraXCommands();
+ assertEquals(testee.getModelStartNo(), 1);
+ }
+
+ @Test(groups = "Functional")
+ public void testGetResidueSpec()
+ {
+ ChimeraCommands testee = new ChimeraXCommands();
+ assertEquals(testee.getResidueSpec("ALA"), ":ALA");
+ }
+
+ @Test(groups = "Functional")
+ public void testShowBackbone()
+ {
+ ChimeraCommands testee = new ChimeraXCommands();
+ assertEquals(testee.showBackbone(), "~display all;show @CA|P pbonds");
+ }
+
+ @Test(groups = "Functional")
+ public void testOpenCommandFile()
+ {
+ ChimeraCommands testee = new ChimeraXCommands();
+ assertEquals(testee.openCommandFile("nowhere"), "open nowhere");
+ }
+
+ @Test(groups = "Functional")
+ public void testSaveSession()
+ {
+ ChimeraCommands testee = new ChimeraXCommands();
+ assertEquals(testee.saveSession("somewhere"), "save session somewhere");
+ }
+
+ @Test(groups = "Functional")
+ public void testGetColourCommand()
+ {
+ ChimeraCommands testee = new ChimeraXCommands();
+ assertEquals(testee.getColourCommand("something", Color.MAGENTA),
+ "color something #ff00ff");
+ }
+
+ @Test(groups = "Functional")
+ public void testSetAttribute()
+ {
+ ChimeraCommands testee = new ChimeraXCommands();
+ AtomSpecModel model = new AtomSpecModel();
+ model.addRange(1, 89, 92, "A");
+ model.addRange(2, 12, 20, "B");
+ model.addRange(2, 8, 9, "B");
+ assertEquals(testee.setAttribute("phi", "27.3", model),
+ "setattr #1/A:89-92|#2/B:8-9,12-20 res phi '27.3' create true");
+ }