--- /dev/null
+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