ea53131c7cb30bdb089f8b7b80955d65ea086f8b
[jalview.git] / test / jalview / structure / AtomSpecTest.java
1 package jalview.structure;
2
3 import static org.testng.Assert.assertEquals;
4 import static org.testng.Assert.assertNull;
5 import static org.testng.Assert.fail;
6
7 import org.testng.annotations.Test;
8
9 public class AtomSpecTest
10 {
11   @Test
12   public void testFromChimeraAtomSpec()
13   {
14     AtomSpec as = AtomSpec.fromChimeraAtomspec("#1:12.B");
15     assertEquals(as.getModelNumber(), 1);
16     assertEquals(as.getPdbResNum(), 12);
17     assertEquals(as.getChain(), "B");
18     assertNull(as.getPdbFile());
19
20     // no model - default to zero
21     as = AtomSpec.fromChimeraAtomspec(":13.C");
22     assertEquals(as.getModelNumber(), 0);
23     assertEquals(as.getPdbResNum(), 13);
24     assertEquals(as.getChain(), "C");
25     assertNull(as.getPdbFile());
26
27     // model.submodel
28     as = AtomSpec.fromChimeraAtomspec("#3.2:15");
29     assertEquals(as.getModelNumber(), 3);
30     assertEquals(as.getPdbResNum(), 15);
31     assertEquals(as.getChain(), "");
32     assertNull(as.getPdbFile());
33
34     String spec = "3:12.B";
35     try
36     {
37       as = AtomSpec.fromChimeraAtomspec(spec);
38       fail("Expected exception for " + spec);
39     } catch (IllegalArgumentException e)
40     {
41       // ok
42     }
43
44     spec = "#3:12-14.B";
45     try
46     {
47       as = AtomSpec.fromChimeraAtomspec(spec);
48       fail("Expected exception for " + spec);
49     } catch (IllegalArgumentException e)
50     {
51       // ok
52     }
53
54     spec = "";
55     try
56     {
57       as = AtomSpec.fromChimeraAtomspec(spec);
58       fail("Expected exception for " + spec);
59     } catch (IllegalArgumentException e)
60     {
61       // ok
62     }
63
64     spec = null;
65     try
66     {
67       as = AtomSpec.fromChimeraAtomspec(spec);
68       fail("Expected exception for " + spec);
69     } catch (NullPointerException e)
70     {
71       // ok
72     }
73   }
74 }