/* * BioJava development code * * This code may be freely distributed and modified under the * terms of the GNU Lesser General Public Licence. This should * be distributed with the code. If you do not have a copy, * see: * * http://www.gnu.org/copyleft/lesser.html * * Copyright for this code is held jointly by the individual * authors. These should be listed in @author doc comments. * * For more information on the BioJava project and its aims, * or to join the biojava-l mailing list, visit the home page * at: * * http://www.biojava.org/ * */ package org.biojava.nbio.structure; import junit.framework.TestCase; import org.junit.*; import java.util.ArrayList; import java.util.List; /** * Tests functionality of Site class. * @author Jules Jacobsen <jacobsen@ebi.ac.uk> */ public class SiteTest extends TestCase { public static final String newline = System.getProperty("line.separator"); private static Site catSite; private static Site bindingSite; private static List<Group> bindingSiteGroups; public SiteTest() { // sites CAT and AC1 from PDB entry 1a4w //SITE 1 CAT 3 HIS H 57 ASP H 102 SER H 195 //SITE 1 AC1 6 ARG H 221A LYS H 224 HOH H 403 HOH H 460 //SITE 2 AC1 6 HOH H 464 HOH H 497 //groups for site CAT Chain chain = new ChainImpl(); chain.setName("H"); chain.setId("H"); Group his57 = new AminoAcidImpl(); // his57.setPDBCode("57"); his57.setResidueNumber("H", 57, ' '); his57.setPDBName("HIS"); his57.setChain(chain); Group asp102 = new AminoAcidImpl(); asp102.setResidueNumber("H", 102, ' '); asp102.setPDBName("ASP"); asp102.setChain(chain); Group ser195 = new AminoAcidImpl(); ser195.setResidueNumber("H", 195, ' '); ser195.setPDBName("SER"); ser195.setChain(chain); List<Group> catSiteGroups = new ArrayList<Group>(); catSiteGroups.add(his57); catSiteGroups.add(asp102); catSiteGroups.add(ser195); //make the catalytic site CAT catSite = new Site(); catSite.setSiteID("CAT"); catSite.setGroups(catSiteGroups); catSite.setEvCode("UNKNOWN"); catSite.setDescription("ACTIVE SITE"); //groups for site AC1 Group arg221a = new AminoAcidImpl(); arg221a.setResidueNumber("H", 221, 'A'); arg221a.setPDBName("ARG"); arg221a.setChain(chain); Group lys224 = new AminoAcidImpl(); lys224.setResidueNumber("H", 224, ' '); lys224.setPDBName("LYS"); lys224.setChain(chain); Group hoh403 = new HetatomImpl(); hoh403.setResidueNumber("H", 403, ' '); hoh403.setPDBName("HOH"); hoh403.setChain(chain); Group hoh460 = new HetatomImpl(); hoh460.setResidueNumber("H", 460, ' '); hoh460.setPDBName("HOH"); hoh460.setChain(chain); Group hoh464 = new HetatomImpl(); hoh464.setResidueNumber("H", 464, ' '); hoh464.setPDBName("HOH"); hoh464.setChain(chain); Group hoh497 = new HetatomImpl(); hoh497.setResidueNumber("H", 497, ' '); hoh497.setPDBName("HOH"); hoh497.setChain(chain); bindingSiteGroups = new ArrayList<Group>(); bindingSiteGroups.add(arg221a); bindingSiteGroups.add(lys224); bindingSiteGroups.add(hoh403); bindingSiteGroups.add(hoh460); bindingSiteGroups.add(hoh464); bindingSiteGroups.add(hoh497); //make the binding site AC1 bindingSite = new Site(); bindingSite.setSiteID("AC1"); bindingSite.setGroups(bindingSiteGroups); bindingSite.setEvCode("SOFTWARE"); bindingSite.setDescription("BINDING SITE FOR RESIDUE NA H 541"); } @BeforeClass public static void setUpClass() throws Exception { } @AfterClass public static void tearDownClass() throws Exception { } @Override @Before public void setUp() { } @Override @After public void tearDown() { } /** * Test of toPDB method, of class Site. */ @Test public void testToPDB_0args() { // System.out.println("toPDB_0args"); String expResult = "SITE 1 AC1 6 ARG H 221A LYS H 224 HOH H 403 HOH H 460 " + newline + "SITE 2 AC1 6 HOH H 464 HOH H 497 "+ newline; String result = bindingSite.toPDB(); // System.out.println("Expected:"); // System.out.println(expResult); // System.out.println("Got:"); // System.out.println(result); assertEquals(expResult, result); } /** * Test of toPDB method, of class Site. */ @Test public void testToPDB_StringBuffer() { // System.out.println("toPDB"); StringBuffer buf = new StringBuffer(""); String expResult = "SITE 1 AC1 6 ARG H 221A LYS H 224 HOH H 403 HOH H 460 " + newline + "SITE 2 AC1 6 HOH H 464 HOH H 497 "+ newline; bindingSite.toPDB(buf); String result = buf.toString(); // System.out.println("Expected:"); // System.out.println(expResult); // System.out.println("Got:"); // System.out.println(result); assertEquals(expResult, result); } /** * Test of toPDB method, of class Site. */ @Test public void testRemark800ToPDB_0args() { // System.out.println("remark800toPDB_0args"); String expResult = "REMARK 800 SITE_IDENTIFIER: CAT " + newline + "REMARK 800 EVIDENCE_CODE: UNKNOWN " + newline + "REMARK 800 SITE_DESCRIPTION: ACTIVE SITE " + newline; String result = catSite.remark800toPDB(); // System.out.println(result); assertEquals(expResult, result); } /** * Test of toPDB method, of class Site. */ @Test public void testRemark800ToPDB_StringBuffer() { // System.out.println("remark800toPDB"); StringBuffer buf = new StringBuffer(""); String expResult = "REMARK 800 SITE_IDENTIFIER: CAT " + newline + "REMARK 800 EVIDENCE_CODE: UNKNOWN " + newline + "REMARK 800 SITE_DESCRIPTION: ACTIVE SITE " + newline; catSite.remark800toPDB(buf); String result = buf.toString(); // System.out.println(result); assertEquals(expResult, result); } /** * Test of getSiteID method, of class Site. */ @Test public void testGetSiteID() { // System.out.println("getSiteID"); String expResult = "CAT"; String result = catSite.getSiteID(); assertEquals(expResult, result); } /** * Test of getGroups method, of class Site. */ @Test public void testGetGroups() { // System.out.println("getGroups"); List<Group> expResult = bindingSiteGroups; List<Group> result = bindingSite.getGroups(); assertEquals(expResult, result); } /** * Test to see how the groups have been set in the Groups list */ @Test public void testGroup() { List<Group> result = bindingSite.getGroups(); Group arg221 = result.get(0); ResidueNumber testResNum = new ResidueNumber("H", 221, 'A'); assertEquals(testResNum, arg221.getResidueNumber()); //test the chainId is also set assertEquals("H", arg221.getChainId()); Group hoh403 = null; for (Group group : result) { if (group.getResidueNumber().getSeqNum() == 403) { hoh403 = group; } } ResidueNumber testResNum2 = new ResidueNumber("H", 403, ' '); // testResNum2.setChainId("H"); // testResNum2.setSeqNum(403); // testResNum2.setInsCode(""); // System.out.println(hoh403); assertEquals(testResNum2, hoh403.getResidueNumber()); //test the chaiId is also set assertEquals("H", hoh403.getChainId()); } }