clean up
[jalview.git] / test / MCview / AtomTest.java
diff --git a/test/MCview/AtomTest.java b/test/MCview/AtomTest.java
new file mode 100644 (file)
index 0000000..8c271b3
--- /dev/null
@@ -0,0 +1,63 @@
+package MCview;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import org.junit.Test;
+
+public class AtomTest
+{
+
+  /**
+   * Test the constructor that parses a PDB file format ATOM line. Fields are in
+   * fixed column positions
+   */
+  @Test
+  public void testStringConstructor()
+  {
+    Atom a = new Atom(
+            "ATOM    349  NE2 GLN A  48      22.290   8.595  17.680  1.00 14.30           N");
+    assertEquals(349, a.atomIndex);
+    assertEquals("NE", a.name);
+    assertEquals("GLN", a.resName);
+    assertEquals("A", a.chain);
+    assertEquals(48, a.resNumber);
+    assertEquals("48", a.resNumIns);
+    assertEquals(' ', a.insCode);
+    assertEquals(22.290, a.x, 0.00001);
+    assertEquals(8.595, a.y, 0.00001);
+    assertEquals(17.680, a.z, 0.00001);
+    assertEquals(1f, a.occupancy, 0.00001);
+    assertEquals(14.3, a.tfactor, 0.00001);
+  }
+
+  /**
+   * Test the case where occupancy and temp factor are blank - should default to
+   * 1
+   */
+  @Test
+  public void testStringConstructor_blankOccupancyTempFactor()
+  {
+    Atom a = new Atom(
+            "ATOM    349  NE2 GLN A  48      22.290   8.595  17.680                       N");
+    assertEquals(1f, a.occupancy, 0.00001);
+    assertEquals(1f, a.tfactor, 0.00001);
+  }
+
+  /**
+   * Parsing non-numeric data as Atom throws an exception
+   */
+  @Test
+  public void testStringConstructor_malformed()
+  {
+    try
+    {
+      new Atom(
+              "ATOM    34N  NE2 GLN A  48      22.290   8.595  17.680  1.00 14.30           N");
+      fail("Expected exception");
+    } catch (NumberFormatException e)
+    {
+      // expected
+    }
+  }
+}
\ No newline at end of file