package MCview; import static org.testng.AssertJUnit.assertEquals; import org.testng.Assert; import org.testng.annotations.Test; public class AtomTest { /** * Test the constructor that parses a PDB file format ATOM line. Fields are in * fixed column positions */ @Test(groups ={ "Functional" }) 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(groups ={ "Functional" }) 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(groups ={ "Functional" }) public void testStringConstructor_malformed() { try { new Atom( "ATOM 34N NE2 GLN A 48 22.290 8.595 17.680 1.00 14.30 N"); Assert.fail("Expected exception"); } catch (NumberFormatException e) { // expected } } }